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

📄 mainform.h

📁 这个是LINUX下的HFTP测试版本
💻 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 + -