📄 mytabs.cxx
字号:
// generated by Fast Light User Interface Designer (fluid) version 1.0011#include "mytabs.h"int Tabs_group_num[Tabs_N+1]={0,1,5,9};//0 is good to array,1--->first group,5--->second groupint Tabs_group_widget_num[Tabs_N+1]={0,4,3,3};//int widget_seq[Widget_N+1]={0,1,2,13,3,4,5,6,7,8,9,10,11,12};//need you to fill in,sequence of widgest in Tabs,0--->Tabs,1---->first group,......int relation_widgest[Re_Group+1][Max_Re_G+1];int group_i=Tabs_group_num[Tabs_N];//last group showint widget_i=group_i;int Radio_Group[3]={2,2,13};int Check_Group[2]={1,3};int Input_Group[3]={2,4,7};Fl_Tabs_input* Widgest_in_Tab[Widget_N];//int widgest_type(int widget_ii){ if(search_pos(Radio_Group,widget_ii,3)) return Radio; if(search_pos(Check_Group,widget_ii,2)) return Check; if(search_pos(Input_Group,widget_ii,3)) return Input; }//void Fl_Tabs_input::input_key(char c){ int i=search_pos(Tabs_group_num,group_i,Tabs_N+1);// int j=search_pos(widget_seq,group_i,Widget_N+1);//position of group_i in widget_seq array int k=Tabs_group_widget_num[i]; static char* input_string;switch(c){ case 'P':{ Widgest_in_Tab[group_i]->widget->hide(); Widgest_in_Tab[widget_i]->widget->labelcolor(UNOVER_COLOR);// int m; if(i==Tabs_N)m=1; else m++; group_i=Tabs_group_num[m]; widget_i=group_i;// Widgest_in_Tab[group_i]->widget->show(); int jj=search_pos(widget_seq,group_i,Widget_N+1); int ii=search_pos(Tabs_group_num,group_i,Tabs_N+1); int k=Tabs_group_widget_num[ii]; if(k>=1){ widget_i=widget_seq[jj+1]; Widgest_in_Tab[widget_i]->widget->labelcolor(OVER_COLOR); } break;} case 'D':{ if(k<2){}//'D' is disable else {if(widget_i==group_i){ widget_i=widget_seq[j+1]; Widgest_in_Tab[widget_i]->widget->labelcolor(UNOVER_COLOR); widget_i=widget_seq[j+2]; Widgest_in_Tab[widget_i]->widget->labelcolor(OVER_COLOR); } else{ if(widget_i==widget_seq[j+k]){//last widget in that page Widgest_in_Tab[widget_i]->widget->labelcolor(UNOVER_COLOR); widget_i=widget_seq[j+1]; Widgest_in_Tab[widget_i]->widget->labelcolor(OVER_COLOR); } else { Widgest_in_Tab[widget_i]->widget->labelcolor(UNOVER_COLOR); int n=search_pos(widget_seq,widget_i,Widget_N+1); widget_i=widget_seq[n+1]; Widgest_in_Tab[widget_i]->widget->labelcolor(OVER_COLOR); } } } break;} case 'U':{ if(k<2){}//'U' is disable else {if(widget_i==group_i){ widget_i=widget_seq[j+1]; Widgest_in_Tab[widget_i]->widget->labelcolor(UNOVER_COLOR); widget_i=widget_seq[j+k]; Widgest_in_Tab[widget_i]->widget->labelcolor(OVER_COLOR); } else{ if(widget_i==widget_seq[j+1]){//first widget in that page Widgest_in_Tab[widget_i]->widget->labelcolor(UNOVER_COLOR); widget_i=widget_seq[j+k]; Widgest_in_Tab[widget_i]->widget->labelcolor(OVER_COLOR); } else { Widgest_in_Tab[widget_i]->widget->labelcolor(UNOVER_COLOR); int n=search_pos(widget_seq,widget_i,Widget_N+1); widget_i=widget_seq[n-1]; Widgest_in_Tab[widget_i]->widget->labelcolor(OVER_COLOR); } } } break;} case ' ':{ if(k<1){}//' ' is disable else {if(widget_i==group_i){ widget_i=widget_seq[j+1]; } if(widgest_type(widget_i)==Radio){ ((Fl_Round_Button*)(Widgest_in_Tab[widget_i]->widget))->value(1); int gr=0; //other radios related with it should be value(0) for(int i;i<Re_Group+1;i++) for(int j=1;j<=relation_widgest[i][0];j++) if(widget_i==relation_widgest[i][j])gr=i; if(gr!=0){ for(int j=1;j<=relation_widgest[gr][0];j++) if(widget_i!=relation_widgest[gr][j]) ((Fl_Round_Button*)(Widgest_in_Tab[relation_widgest[gr][j]]->widget))->value(0); } } if(widgest_type(widget_i)==Check){ int check_value=((Fl_Check_Button*)(Widgest_in_Tab[widget_i]->widget))->value(); check_value=check_value^1;//1--0,0---1 ((Fl_Check_Button*)(Widgest_in_Tab[widget_i]->widget))->value(check_value); } if(widgest_type(widget_i)==Input){ input_string=str_cat(input_string,' ');////// ((Fl_Input*)(Widgest_in_Tab[widget_i]->widget))->value(input_string); } } break;} default:{ if(widget_i==group_i){ widget_i=widget_seq[j+1]; } if(widgest_type(widget_i)==Input){ input_string=str_cat(input_string,c);///// ((Fl_Input*)(Widgest_in_Tab[widget_i]->widget))->value(input_string); } break; } } }void calltime(void *){ char c=getchar(); if(c=='O'){ printf("do OK\n"); return; } if(c=='C'){ printf("do CAncel\n"); return; } if(c=='A'){ printf("do Apply\n"); return; } if(c=='H'){ printf("do Help\n"); return; } Widgest_in_Tab[widget_i]->input_key(c); }Fl_Window *foo_window=(Fl_Window *)0;static void cb_cancel(Fl_Button*, void*) { exit(1);}static void cb_OK(Fl_Return_Button*, void*) { exit(0);}int main(int argc, char **argv) {//relation_widgest[1][0]=2;// relation_widgest[1][1]=13;relation_widgest[1][2]=3;relation_widgest[2][0]=3;// relation_widgest[2][1]=10;relation_widgest[2][2]=11;relation_widgest[2][3]=12; Fl_Window* w; { Fl_Window* o = foo_window = new Fl_Window(321, 324); w = o; { Fl_Tabs* o = new Fl_Tabs(10, 10, 300, 200); Widgest_in_Tab[0]->widget=o;// o->selection_color(15); // { Fl_Group* o = new Fl_Group(10, 30, 300, 180, "Label1"); Widgest_in_Tab[1]->widget=o;// o->hide(); { Fl_Round_Button* o=new Fl_Round_Button(60, 50, 240, 40, "Fl_Round_Button:"); Widgest_in_Tab[2]->widget=o;// o->labelcolor(OVER_COLOR); } { Fl_Round_Button* o=new Fl_Round_Button(60, 70, 240, 40, "Fl_Round_Button:"); Widgest_in_Tab[13]->widget=o;// o->labelcolor(OVER_COLOR); } { Fl_Check_Button* o=new Fl_Check_Button(60, 90, 240, 30, "Fl_Check_Button:"); Widgest_in_Tab[3]->widget=o;// } { Fl_Input* o=new Fl_Input(60, 120, 240, 80, "input3:"); Widgest_in_Tab[4]->widget=o;// } o->end(); Fl_Group::current()->resizable(o); } // { Fl_Group* o = new Fl_Group(10, 30, 300, 180, "tab2"); Widgest_in_Tab[5]->widget=o;// o->hide(); { Fl_Button* o=new Fl_Button(20, 60, 100, 30, "button1"); Widgest_in_Tab[6]->widget=o;// o->labelcolor(OVER_COLOR); } { Fl_Input* o=new Fl_Input(140, 100, 100, 30, "input in box2"); Widgest_in_Tab[7]->widget=o;// } { Fl_Button* o=new Fl_Button(30, 140, 260, 30, "This is stuff inside the Fl_Group \"tab2\""); Widgest_in_Tab[8]->widget=o;// } o->end(); } { Fl_Group* o = new Fl_Group(10, 30, 300, 180, "tab3"); Widgest_in_Tab[9]->widget=o;// { Fl_Button* o=new Fl_Button(20, 60, 60, 80, "button2"); Widgest_in_Tab[10]->widget=o;// o->labelcolor(OVER_COLOR); } { Fl_Button* o=new Fl_Button(80, 60, 60, 80, "button"); Widgest_in_Tab[11]->widget=o;// } { Fl_Button* o=new Fl_Button(140, 60, 60, 80, "button"); Widgest_in_Tab[12]->widget=o;// } o->end(); } /* { Fl_Group* o = new Fl_Group(10, 30, 300, 180, "tab4"); o->labelfont(2); o->hide(); new Fl_Button(20, 50, 60, 110, "button2"); new Fl_Button(80, 50, 60, 110, "button"); new Fl_Button(140, 50, 60, 110, "button"); o->end(); } { Fl_Group* o = new Fl_Group(10, 30, 300, 180, " tab5 "); o->labeltype(FL_ENGRAVED_LABEL); o->hide(); new Fl_Button(20, 80, 60, 80, "button2"); new Fl_Button(90, 90, 60, 80, "button"); { Fl_Clock* o = new Fl_Clock(160, 50, 100, 100, "Make sure this clock does not use processor time when this tab is hidden or w\indow is iconized"); o->box(FL_OSHADOW_BOX); o->color(238); o->selection_color(0); o->labelfont(8); o->labelsize(10); o->align(130); } o->end(); } */ o->end(); Fl_Group::current()->resizable(o); } //new Fl_Input(60, 220, 130, 30, "inputA:"); //new Fl_Input(60, 250, 250, 30, "inputB:"); { Fl_Button* o = new Fl_Button(180, 290, 60, 30, "cancel"); o->callback((Fl_Callback*)cb_cancel); } { Fl_Return_Button* o = new Fl_Return_Button(250, 290, 60, 30, "OK"); o->callback((Fl_Callback*)cb_OK); } o->end(); } w->show(argc, argv); Fl::add_timeout(0.2,calltime); return Fl::run();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -