⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tab.cxx

📁 一个TAB页
💻 CXX
📖 第 1 页 / 共 2 页
字号:
//assemble each group have widgest#include "tab.h"#define Tab_N 3#define Widget_N 100#define OVER_COLOR FL_GREEN#define UNOVER_COLOR FL_BLACK#define Round 1#define Check 2#define Input 3#define Button 4#define Value 5#define Int_Input 6#define Group 7#define SelectBrowser 8#define Re_Group 2//sum of Relation-Group#define Max_Re_G 4//Max numbers in all Relation-Groups//#define charmax 100#define Input_num 6int relation_widgest[Re_Group+1][Max_Re_G+1];int Group_seq[Tab_N+1];int widget_fact;int Input_Group[Input_num+1]={Input_num,8,11,12,17,30,32};char* Input_Save[Input_num+1];Fl_Window* mainw;image_window* welcome;Fl_Window* help;	class Widget_Input{	int i;	int type;	//char oldstring[charmax];	int oldvalue;	Fl_Widget* widget;public:	int geti(){return i;}	int gettype(){return type;}	void setoldvalue(int v){oldvalue=v;}	int getoldvalue(){return oldvalue;}	//void setoldstring(char *st){		//oldstring=(char *)malloc(sizeof(char)*(strlen(st)+1));		//strcpy(oldstring,st);	//	oldstring=st;	//}	//char *getoldstring(){return oldstring;}	Fl_Widget* getwidget(){return widget;}	Widget_Input* input_key(Widget_Input *,Fl_Round_Button*,char);	Widget_Input* input_key(Widget_Input *,Fl_Check_Button*,char);	Widget_Input* input_key(Widget_Input *,Fl_Input*,char);	Widget_Input* input_key(Widget_Input *,Fl_Button*,char);	Widget_Input* input_key(Widget_Input *,Fl_Select_Browser*,char);	Widget_Input(Fl_Widget* o,int i1,int type1){		widget=o;		i=i1;		type=type1;			}};Widget_Input *wi[Widget_N+1];//Fl_Round_ButtonWidget_Input* input_key(Widget_Input *ppw,Fl_Round_Button* wwid,char c){Widget_Input *old=ppw;//wwid->labelcolor(OVER_COLOR);printf("==Fl_Round_Button==\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;}	case ' ':{		if((wwid->value())==0){			wwid->value(1);			int gr=0;		  	//other radios related with it should be value(0) 		  	for(int i=1;i<Re_Group+1;i++)		  		for(int j=1;j<=relation_widgest[i][0];j++)		  			if((ppw->geti())==relation_widgest[i][j])gr=i;		  	if(gr!=0){		  		for(int j=1;j<=relation_widgest[gr][0];j++)		  			if((ppw->geti())!=relation_widgest[gr][j])		  				((Fl_Round_Button *)(wi[relation_widgest[gr][j]]->getwidget()))->value(0);			}		}								break;}	default:		break;  }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;}//Fl_Check_ButtonWidget_Input* input_key(Widget_Input *ppw,Fl_Check_Button* wwid,char c){Widget_Input *old=ppw;//wwid->labelcolor(OVER_COLOR);printf("==Fl_Check_Button==\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;}	case ' ':{		  wwid->value((wwid->value())^1);					break;}	default:		break;  }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;	}//Fl_InputWidget_Input* input_key(Widget_Input *ppw,Fl_Input* wwid,char c){Widget_Input *old=ppw;//wwid->labelcolor(OVER_COLOR);printf("==Fl_Input==\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:		if((c>='0'&&c<='9')||(c>='a'&&c<='z'))			{			//if(c>='A'&&c<='Z')c=c+32;			char *input_string=(char *)(wwid->value());			input_string=str_cat(input_string,c);/////			wwid->value(input_string);			}				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;}//Fl_Button()Widget_Input* input_key(Widget_Input *ppw,Fl_Button* wwid,char c){Widget_Input *old=ppw;//wwid->labelcolor(OVER_COLOR);printf("==Fl_Button==\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;}	case ' ':		printf("do file_chooser\n");		break;	default:		break;  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -