📄 mainform.h
字号:
/******************************************************************************** ** 文件名: MainForm.h ** 建立日期: 2002年7月20日 ** 作者: 何林强 ** 描述: 这是一个关于主窗口界面的文件.完成整个界面的绘制. *******************************************************************************/#ifndef HFTP_FORM#define HFTP_FORM/********************************** **记录多连接时每个连接信息的状态 ********************************/struct Shftp_connect_info{ Chftp_transfer *ftp_Connection; //一个具体的连接. int state; //该连接当前是否有效.}; /******************************************************************* ** 类名: Chftp_Form ** 建立日期: 2002年7月20日 ** 作者: 何林强 ** 描述: 这个类用于完成主窗口的绘制. *******************************************************************/class Chftp_Form{ private: GtkWidget *TheWindow; //主窗口框架的指针. Chftp_View *hftp_View; //窗口的整个客户区(包括菜单等所有因素) private: void hftp_Build_Form(const gchar *title,GtkWindowPosition position); //建立主窗口框架界面的函数. static void CloseTheApp(); //退出程序。
void hftp_init_pixmap(); public: Chftp_Form(gint argc,gchar **argv); ~Chftp_Form();};/****************************************************************** ** 类名: Chftp_View ** 建立日期: 2002年7月21日 ** 作者: 何林强 ** 描述: 这个类用于完成窗口客户区所有内容的绘制. *****************************************************************/class Chftp_View{ private: GtkWidget *TheView; //窗口客户区. Chftp_Menu *hftp_Menu; //菜单. static Chftp_Table *hftp_Table; //包装表. static Chftp_Toolbar *hftp_Toolbar; //输入工具栏. private: static void hftp_start_connect(); static void quick_connect(GtkWidget *widget, GdkEventButton *event,gpointer data); void hftp_Connect_Signal(); public: Chftp_View(GtkWidget *TheWindow); ~Chftp_View();};/************************************************************ ** 类名: Chftp_Menu ** 建立日期: 2002年7月21日 ** 作者: 何林强 ** 描述: 这是一个关于菜单的类,本该属于类Chftp_View的 ** 一部分,考虑到菜单较大,处理内容较多,将其独立出来. *************************************************************/class Chftp_Menu{ private: static GtkItemFactoryEntry MenuItems[5]; //菜单的所有内容. static void AboutDialog(); //菜单项的回调函数. static void ExitApp(); public: Chftp_Menu(GtkWidget *TheView);};/************************************************************* ** 类名: Chftp_Toolbar ** 建立日期: 2002年7月22日 ** 作者: 何林强 ** 描述: 这是关于输入主机名,端口号,用户,密码的一条工具栏的 ** 的类. ***************************************************************/class Chftp_Toolbar{ private: GtkWidget *connect_button; GtkWidget *InputBar; GtkWidget *Hostname; //输入主机地址的组合框. GtkWidget *Hostport; //输入主机端口的文本输入框. GtkWidget *User; //用户名. GtkWidget *Passwd; //密码. private: GtkWidget *sub_Build_InputBar(gchar *label_name,gint width,gint como); public: Chftp_Toolbar(GtkWidget *TheView); GtkWidget *hftp_GetHostname(){ return Hostname; } GtkWidget *hftp_GetHostport(){ return Hostport; } GtkWidget *hftp_GetUser(){ return User; } GtkWidget *hftp_GetPasswd(){ return Passwd; } GtkWidget *hftp_Getbutton(){ return connect_button; }};/********************************************************************* ** 类名: Chftp_Table ** 建立日期: 2002年7月23日 ** 作者: 何林强 ** 描述: 这是一个包装表类,对于整个界面,菜单和工具栏部分其高度是不能 ** 再改变的,但是接下来的文件列表框与消息输出框,其高度必须随着 ** 窗口的改变而改变(否则就会在窗口放大时留下空白区域),且两者 ** 的高度要保持一定比例,所以这两部分将放在一个包装表中. *********************************************************************/class Chftp_Table{ public: GtkWidget *table; //包装表本身, Chftp_Local *Local; //关于本地文件列表框的部分(还包括其他部分功能). Chftp_Remote *Remote; //远程文件列表框集(以一个属性页组合在一起). Chftp_State *StateBox; //下载状态输出框. GtkWidget *hpanel; public: Chftp_Table(GtkWidget *TheView); ~Chftp_Table();};/************************************************************************ ** 类名: Chftp_Local ** 建立日期 2002年7月23日 ** 作者: 何林强 ** 描述: 这是一个属性框(PropertyBox),共有两个选项,一个是本地文件列表 ** 框,另一个是服务器信息管理表(用户保存的一些常用服务器信息). *************************************************************************/class Chftp_Local{ public: static Chftp_Filedata *hftp_Localdata; //本地文件列表框中的有关数据. GList *directorys; static Chftp_Filelist *Local_Filelist; //本地文件列表框. Chftp_bookmark *bookmark; //书签内容. GtkWidget *marklist; //书签列表框. private: void hftp_Set_LocalFile(); //设定本地文件列表框的内容. static void hftp_list_dbclick(GtkWidget *widget, GdkEventButton *event,gpointer data); static void get_chdir(gpointer data); void hftp_Init_members(); //初始化类的成员变量. public: Chftp_Filelist *GetFilelist(){return Local_Filelist;} Chftp_Filedata *GetLocaldata(){return hftp_Localdata;} Chftp_Local(GtkWidget *hpanel,gint begin,gint end); ~Chftp_Local();};/*********************************************************************** ** 类名: Chftp_Remote ** 建立日期:2002年7月24日 ** 作者: 何林强 ** 描述: 这是一个属性框,为每个远程连接开辟一页,页内容为远程文件 ** 列表框. **********************************************************************/class Chftp_Remote{ private: GtkWidget *notebox; public: Chftp_Filelist *Remote_Filelist; public: Chftp_Remote(GtkWidget *hpanel,gint begin,gint end); ~Chftp_Remote(); GtkWidget *hftp_Getnotebox(){ return notebox; }};/********************************************************************* ** 类名: Chftp_Filelist ** 建立日期: 2002年7月22日 ** 作者: 何林强 ** 描述: 这是一个文件列表框,用于显示本地或远程服务器上的文件及其 ** 各项属性,再添加上一个组合框与滚动条. *********************************************************************/class Chftp_Filelist{ public: GtkWidget *FilepathComo; //位于列表框顶部用于显示路径的组合框. GtkWidget *FileList; //文件列表框. GtkWidget *MessageBox; GtkWidget *up_button; GtkWidget *fresh_button; GtkWidget *shut_button; private: void hftp_Create_Message_Box(GtkWidget *table,gint begin,gint end); public: Chftp_Filelist(GtkWidget *table,gint begin,gint end,gint index); void hftp_AddStringToList(gchar *textstring); GtkWidget *hftp_GetCombo() { return FilepathComo;} GtkWidget *hftp_GetClist(){ return FileList;} GtkWidget *hftp_GetBackButton(){ return up_button;} GtkWidget *hftp_GetFreshButton(){ return fresh_button;} GtkWidget *hftp_GetShutButton(){ return shut_button;}};/*********************************************************************** ** 类名: Chftp_State ** 建立日期: 2002年7月24日 ** 作者: 何林强 ** 描述: 这是一个下载状况输出框,通过这个框用户可以对下载状况进行 ** 控制. ***********************************************************************/class Chftp_State{ private: GtkWidget *StateBox; public: Chftp_State(GtkWidget *table); void Chftp_State::State_append(char **files); void State_updata(char **files,int position);}; #endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -