📄 tab.cxx
字号:
if((ppw->gettype())==Input||(ppw->gettype())==SelectBrowser){ for(int i=2;i<Tab_N+1;i++){ if(old->geti()<Group_seq[i]){ (wi[Group_seq[i-1]]->getwidget())->redraw(); break; } else if(old->geti()>Group_seq[Tab_N]) (wi[Group_seq[Tab_N]]->getwidget())->redraw();} }return ppw; }Widget_Input* input_key(Widget_Input *ppw,Fl_Select_Browser* wwid,char c){Widget_Input *old=ppw;//wwid->labelcolor(OVER_COLOR);printf("==Fl_Select_Browser==\n"); switch(c){ case 'P': for(int i=2;i<Tab_N+1;i++){ if(ppw->geti()<Group_seq[i]){ (wi[Group_seq[i]]->getwidget())->show(); (wi[Group_seq[i-1]]->getwidget())->hide(); (wi[Group_seq[i]+1]->getwidget())->labelcolor(OVER_COLOR); (wi[Group_seq[i]+1]->getwidget())->redraw(); wwid->labelcolor(UNOVER_COLOR); wwid->redraw(); ppw=wi[Group_seq[i]+1]; break; } else if(ppw->geti()>Group_seq[Tab_N]){ (wi[Group_seq[1]]->getwidget())->show(); (wi[Group_seq[Tab_N]]->getwidget())->hide(); (wi[Group_seq[1]+1]->getwidget())->labelcolor(OVER_COLOR); (wi[Group_seq[1]+1]->getwidget())->redraw(); wwid->labelcolor(UNOVER_COLOR); wwid->redraw(); ppw=wi[Group_seq[1]+1]; break; } } break; case 'U':{ if(int i=search_pos(Group_seq,ppw->geti()-1,Tab_N+1)){ if(i==Tab_N){ wwid->labelcolor(UNOVER_COLOR); wwid->redraw(); (wi[widget_fact]->getwidget())->labelcolor(OVER_COLOR); (wi[widget_fact]->getwidget())->redraw(); ppw=wi[widget_fact]; } else{ wwid->labelcolor(UNOVER_COLOR); wwid->redraw(); (wi[Group_seq[i+1]-1]->getwidget())->labelcolor(OVER_COLOR); (wi[Group_seq[i+1]-1]->getwidget())->redraw(); ppw=wi[Group_seq[i+1]-1]; } } else{ wwid->labelcolor(UNOVER_COLOR); wwid->redraw(); (wi[ppw->geti()-1]->getwidget())->labelcolor(OVER_COLOR); (wi[ppw->geti()-1]->getwidget())->redraw(); ppw=wi[ppw->geti()-1]; } break;} case 'D':{ if(int i=search_pos(Group_seq,ppw->geti()+1,Tab_N+1)){ wwid->labelcolor(UNOVER_COLOR); wwid->redraw(); (wi[Group_seq[i-1]+1]->getwidget())->labelcolor(OVER_COLOR); (wi[Group_seq[i-1]+1]->getwidget())->redraw(); ppw=wi[Group_seq[i-1]+1]; } else if(ppw->geti()==widget_fact){ wwid->labelcolor(UNOVER_COLOR); wwid->redraw(); (wi[Group_seq[Tab_N]+1]->getwidget())->labelcolor(OVER_COLOR); (wi[Group_seq[Tab_N]+1]->getwidget())->redraw(); ppw=wi[Group_seq[Tab_N]+1]; } else{ wwid->labelcolor(UNOVER_COLOR); wwid->redraw(); (wi[ppw->geti()+1]->getwidget())->labelcolor(OVER_COLOR); (wi[ppw->geti()+1]->getwidget())->redraw(); ppw=wi[ppw->geti()+1]; } break;} default: break; }for(int i=2;i<Tab_N+1;i++){ if(old->geti()<Group_seq[i]){ (wi[Group_seq[i-1]]->getwidget())->redraw(); break; } else if(old->geti()>Group_seq[Tab_N]) (wi[Group_seq[Tab_N]]->getwidget())->redraw();} return ppw;}//ok_savevoid ok_save(){ for(int i=0;i<widget_fact+1;i++){ if((wi[i]->gettype())==Round){ wi[i]->setoldvalue(((Fl_Round_Button*)(wi[i]->getwidget()))->value()); } else if((wi[i]->gettype())==Check){ wi[i]->setoldvalue(((Fl_Check_Button*)(wi[i]->getwidget()))->value()); } else if((wi[i]->gettype())==Input){ int j=search_pos(Input_Group,i,Input_Group[0]+1); //wi[i]->setoldstring((char *)(((Fl_Input*)(wi[i]->getwidget()))->value())); char* oup1=(char *)(((Fl_Input *)(wi[i]->getwidget()))->value()); Input_Save[j]=(char *)malloc(sizeof(strlen(oup1)+1)); for(int k=0;k<=strlen(oup1);k++) Input_Save[j][k]=oup1[k]; printf("i=%d,Input_Save[%d]=%s\n",i,j,Input_Save[j]); } }}void cancel_restore(){ for(int i=0;i<widget_fact+1;i++){ if((wi[i]->gettype())==Round){ ((Fl_Round_Button*)(wi[i]->getwidget()))->value(wi[i]->getoldvalue()); } else if((wi[i]->gettype())==Check){ ((Fl_Check_Button*)(wi[i]->getwidget()))->value(wi[i]->getoldvalue()); } else if((wi[i]->gettype())==Input){ //((Fl_Input*)(wi[i]->getwidget()))->value(wi[i]->getoldstring()); int j=search_pos(Input_Group,i,Input_Group[0]+1); ((Fl_Input *)(wi[i]->getwidget()))->value(Input_Save[j]); } }}//calltimevoid calltime(void *p){static int flags=1;static int hh=1; Widget_Input* pw=(Widget_Input *)p; printf("flags=%d\n",flags); printf("===now in widget[%d]===\n",pw->geti()); printf("\ninput key:"); char c=getchar(); if(c=='\n'){printf("\\n\n");} else{ //printf("===%d===\n",pw->geti()); if(flags){ welcome->hide(); mainw->show(); flags=0; } else if(c=='O'){ printf("do OK\n"); ok_save(); mainw->hide(); welcome->show(); flags=1; } else if(c=='C'){ printf("do Cancel\n"); cancel_restore(); mainw->hide(); welcome->show(); flags=1; } else if(c=='A'){ printf("do Apply\n"); ok_save(); } else if(c=='H'){ printf("do Help\n"); if(hh){ help->show(); hh=0; } else{ help->hide(); hh=1; } } else if(hh){ if(pw->gettype()==Check){ Fl_Check_Button* wid=(Fl_Check_Button*)(pw->getwidget()); pw=input_key(pw,wid,c); } else if(pw->gettype()==Round){ Fl_Round_Button* wid=(Fl_Round_Button*)(pw->getwidget()); pw=input_key(pw,wid,c); } else if(pw->gettype()==Input){ Fl_Input* wid=(Fl_Input*)(pw->getwidget()); pw=input_key(pw,wid,c); } else if(pw->gettype()==Button){ Fl_Button* wid=(Fl_Button*)(pw->getwidget()); pw=input_key(pw,wid,c); } // else if(pw->gettype()==SelectBrowser){ Fl_Select_Browser* wid=(Fl_Select_Browser*)(pw->getwidget()); pw=input_key(pw,wid,c); } } } printf("go here!\n"); Fl::add_timeout(0.2,calltime,pw);//note!!!!!!!!!!!!!!,not repeat_time,found by zxf 2004-9-24 pm }//mainint main(int argc, char **argv) { int wi_i=1; int rg=1,ii=1; int gr1=1; //mainw {Fl_Window* o=new Fl_Window(350,400,"mainw"); o->label("my window!");o->set_modal(); mainw = o; { Fl_Tabs* o = new Fl_Tabs(10, 20, 340, 340); //Edit { Fl_Group* o = new Fl_Group(10, 30, 330, 320, " Edit "); wi[wi_i++]=new Widget_Input(o,wi_i-1,Group); Group_seq[1]=wi_i-1; o->hide(); { Fl_Check_Button* o=new Fl_Check_Button(20, 25, 125, 30, "Auto Indent"); o->value(1); wi[wi_i++]=new Widget_Input(o,wi_i-1,Check); } { Fl_Check_Button* o=new Fl_Check_Button(150, 25, 160, 30, "Disable Drag&Drop"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Check); } { Fl_Check_Button* o=new Fl_Check_Button(20, 45, 129, 30, "Allow Positioning Beyond Line End"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Check); } { Fl_Check_Button* o=new Fl_Check_Button(150, 45, 170, 30, "Home Key Always Goto Column 1"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Check); } { Fl_Select_Browser* o=new Fl_Select_Browser(30, 90, 200, 25, " Select Extension for Settings or Default:"); wi[wi_i++]=new Widget_Input(o,wi_i-1,SelectBrowser); o->align(FL_ALIGN_LEFT|FL_ALIGN_TOP); o->add("AAAAAAAAA1111111111"); o->add("BBBBBBBBB22222222222"); o->add("CCCCCCCCC3333333333"); o->position(1); } { Fl_Button* o = new Fl_Button(250, 90, 60, 20, "Change List..."); wi[wi_i++]=new Widget_Input(o,wi_i-1,Button); } Fl_Box* b1=new Fl_Box(50, 110, 250, 20, " Settings below are based upon the file extensions shown above"); b1->box(FL_THIN_DOWN_FRAME); { Fl_Input* o=new Fl_Input(120, 130, 110, 20, "Auto Complete File:"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Input); } /* Input_Group[gr1++]=wi_i-1; Input_Group[0]=1;*/ { Fl_Button* o = new Fl_Button(250, 130, 60, 20, "Browse..."); wi[wi_i++]=new Widget_Input(o,wi_i-1,Button); } { Fl_Check_Button* o=new Fl_Check_Button(20, 150, 200, 30, "Use spaces in place of Tabs"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Check); } { Fl_Input* o=new Fl_Input(110, 180, 90, 20, "Tab Stop Value:"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Input); o->static_value("8"); } /* Input_Group[gr1++]=wi_i-1; ++Input_Group[0]; */ { Fl_Input* o=new Fl_Input(270, 180, 70, 20, "Indent Spaces:"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Input); o->static_value("8"); } /* Input_Group[gr1++]=wi_i-1; ++Input_Group[0]; */ {Fl_Check_Button* o=new Fl_Check_Button(20, 210, 200, 30, "Default Word Wrap On for Each File"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Check); } { Fl_Round_Button* o=new Fl_Round_Button(30, 240, 150, 30, "Wrap at window edge"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Round); o->value(1); } // relation_widgest[rg][ii++]=wi_i-1; relation_widgest[rg][0]=1; { Fl_Round_Button* o=new Fl_Round_Button(30, 260, 150, 30, "Wrap after column#"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Round); } // relation_widgest[rg][ii++]=wi_i-1; ++relation_widgest[rg][0]; { Fl_Round_Button* o=new Fl_Round_Button(30, 280, 190, 30, "Wrap after column#,insert CR/LF"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Round); } // relation_widgest[rg][ii++]=wi_i-1; ++relation_widgest[rg][0]; { Fl_Input* o=new Fl_Input(230, 270, 90, 20, "Wrap Column#:"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Input); o->align(FL_ALIGN_LEFT|FL_ALIGN_TOP); o->static_value("80"); } /* Input_Group[gr1++]=wi_i-1; ++Input_Group[0]; */ { Fl_Check_Button* o= new Fl_Check_Button(50, 305, 260, 30, "Automatically insert CR/LF when file is opened."); wi[wi_i++]=new Widget_Input(o,wi_i-1,Check); } { Fl_Round_Button* o=new Fl_Round_Button(30, 330, 200, 30, "Absolute wrap after column#"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Round); } // relation_widgest[rg][ii]=wi_i-1; ++relation_widgest[rg][0]; o->end(); Fl_Group::current()->resizable(o); } //Find { Fl_Group* o = new Fl_Group(10, 30, 330, 320, " Find "); wi[wi_i++]=new Widget_Input(o,wi_i-1,Group); Group_seq[2]=wi_i-1; o->hide(); { Fl_Check_Button* o=new Fl_Check_Button(60, 90, 240, 40, "FlCheckButton1:"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Check); o->labelcolor(OVER_COLOR); } { Fl_Check_Button* o=new Fl_Check_Button(60, 110, 240, 40, "FlCheckButton2:"); o->value(1); wi[wi_i++]=new Widget_Input(o,wi_i-1,Check); } { Fl_Check_Button* o=new Fl_Check_Button(60,130, 240, 40, "FlCheckButton3:"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Check); } { Fl_Check_Button* o=new Fl_Check_Button(60, 150, 240, 40, "FlCheckButton4:"); o->value(1); wi[wi_i++]=new Widget_Input(o,wi_i-1,Check); } { Fl_Check_Button* o=new Fl_Check_Button(60, 170, 240, 40, "FlCheckButton5:"); o->value(1); wi[wi_i++]=new Widget_Input(o,wi_i-1,Check); } o->end(); } //Backup { Fl_Group* o = new Fl_Group(10, 30, 330, 320, " Backup "); wi[wi_i++]=new Widget_Input(o,wi_i-1,Group); Group_seq[3]=wi_i-1; o->labelfont(4); o->align(FL_ALIGN_LEFT|FL_ALIGN_TOP); o->box(FL_THIN_UP_FRAME); Fl_Box* b1=new Fl_Box(15, 45,280 ,110,"Backup File on Save:"); b1->box(FL_THIN_DOWN_FRAME); b1->align(FL_ALIGN_LEFT|FL_ALIGN_TOP|FL_ALIGN_CLIP); { Fl_Round_Button* o = new Fl_Round_Button(20, 60, 200, 30, "No Backup"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Round); o->labelcolor(OVER_COLOR); o->down_box(FL_ROUND_DOWN_BOX); o->value(1); } // rg++;ii=1; relation_widgest[rg][ii++]=wi_i-1; relation_widgest[rg][0]=1; { Fl_Round_Button* o = new Fl_Round_Button(20, 80, 200, 30, "Replace extension with .BAK"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Round); o->down_box(FL_ROUND_DOWN_BOX); } // relation_widgest[rg][ii++]=wi_i-1; ++relation_widgest[rg][0]; { Fl_Round_Button* o = new Fl_Round_Button(20, 100,200, 30, "Append .BAK to exixting extension"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Round); o->down_box(FL_ROUND_DOWN_BOX); } // relation_widgest[rg][ii]=wi_i-1; ++relation_widgest[rg][0]; { Fl_Input* o=new Fl_Input(20, 170, 200, 20, "Default Directory:(WHY NO change)"); o->align(FL_ALIGN_LEFT|FL_ALIGN_TOP); wi[wi_i++]=new Widget_Input(o,wi_i-1,Input); } /* Input_Group[gr1++]=wi_i-1; ++Input_Group[0]; */ { Fl_Button* o = new Fl_Button(240, 165, 60, 20, "Browse"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Button); } Fl_Box* b2=new Fl_Box(15, 200,280 ,110,"Automatic Save:" ); b2->box(FL_UP_BOX); b2->align(FL_ALIGN_LEFT|FL_ALIGN_TOP|FL_ALIGN_INSIDE); { Fl_Input* o=new Fl_Input(170, 220, 120, 20, "Time between automatic save:"); o->align(FL_ALIGN_LEFT); wi[wi_i++]=new Widget_Input(o,wi_i-1,Input); } /* Input_Group[gr1]=wi_i-1; ++Input_Group[0]; */ { Fl_Check_Button* o=new Fl_Check_Button(20, 240,200, 30, "Do not auto-save unnamed(new) files"); wi[wi_i++]=new Widget_Input(o,wi_i-1,Check); } { Fl_Check_Button* o=new Fl_Check_Button(20, 260, 200, 30, "Do not auto-save FTP files"); o->value(1); wi[wi_i++]=new Widget_Input(o,wi_i-1,Check); } o->end(); widget_fact=wi_i-1; } o->end(); Fl_Group::current()->resizable(o); } { Fl_Button* o = new Fl_Button(50, 370, 60, 20, "OK"); } { Fl_Button* o = new Fl_Return_Button(120, 370, 60, 20, "Cancel"); } { Fl_Button* o = new Fl_Button(190, 370, 60, 20, "Apply"); } { Fl_Button* o = new Fl_Button(260, 370, 60, 20, "Help"); } o->end(); o->make_current(); o->hide(); } ok_save();//welcomestruct jpeg* jp; jp=readtheimage("bmp/ESC.jpg"); welcome = new image_window(jp); welcome->end(); welcome->show(argc,argv);//help help= new Fl_Window(400,200,200,200,"help"); Fl_Group* oo = new Fl_Group(10, 20, 180, 160, " Help "); oo->box(FL_THIN_UP_FRAME); { Fl_Button* bbbb=new Fl_Button(60,30,85,85,""); uchar* image=make_image(75,75); (new Fl_Image(image, 75, 75))->label(bbbb); Fl_Box* bb1=new Fl_Box(10, 120,180 ,30,"@\tCopyright S.W.\t@"); bb1->box(FL_THIN_DOWN_FRAME); } oo->end(); Fl_Button bb(80,160,60,20,"End Help"); help->end(); help->hide();//Fl::add_timeout(1,calltime,wi[Group_seq[Tab_N]+1]);//first widget in last group is passed to calltime return Fl::run();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -