--- /home/yurik81/Desktop/src/gnome-commander/origin/gnome-cmd-file-selector.h 2010-02-13 22:39:25.000000000 +0200 +++ /var/cache/apt-build/build/gnome-commander-1.2.8.5/src/gnome-cmd-file-selector.h 2010-06-21 16:59:34.122766753 +0300 @@ -25,6 +25,10 @@ #define GNOME_CMD_FILE_SELECTOR_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gnome_cmd_file_selector_get_type (), GnomeCmdFileSelectorClass) #define GNOME_CMD_IS_FILE_SELECTOR(obj) GTK_CHECK_TYPE (obj, gnome_cmd_file_selector_get_type ()) +#define _GNOME_CMD_FILE_SELECTOR(obj) GTK_CHECK_CAST (obj, _gnome_cmd_file_selector_get_type (), _GnomeCmdFileSelector) +#define _GNOME_CMD_FILE_SELECTOR_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, _gnome_cmd_file_selector_get_type (), _GnomeCmdFileSelectorClass) +#define _GNOME_CMD_IS_FILE_SELECTOR(obj) GTK_CHECK_TYPE (obj, _gnome_cmd_file_selector_get_type ()) + struct GnomeCmdMainWin; #include "gnome-cmd-file-list.h" @@ -42,6 +46,79 @@ struct GnomeCmdFileSelector +{ + // variables + GtkNotebook notebook; + GtkVBox *vbox; + + GtkWidget *con_btns_hbox; + GtkWidget *con_hbox; + GtkWidget *dir_indicator; + GtkWidget *dir_label; + GtkWidget *scrolledwindow; + GtkWidget *info_label; + GtkWidget *list_widget; + GtkWidget *con_combo; + GtkWidget *vol_label; + GnomeCmdFileList *list; // copied pointer of list_widget + gboolean initialized; + FileSelectorID position; + guint cur_page_num; + + class Private; + + Private *priv; + + // methods + void new_tab(const gchar *in_dir); + + operator GtkWidget * () { return GTK_WIDGET (this); } + operator GtkNotebook * () { return GTK_NOTEBOOK (this); } + + GnomeCmdFileList *&file_list() { return list; } + + GnomeCmdDir *get_directory() { return file_list()->cwd; } + void set_directory(GnomeCmdDir *dir); + void goto_directory(const gchar *dir); + + void reload(); + + void first(); + void back(); + void forward(); + void last(); + + gboolean can_back(); + gboolean can_forward(); + + void set_active(gboolean value); + + GnomeCmdCon *get_connection() { return file_list()->con; } + void set_connection(GnomeCmdCon *con, GnomeCmdDir *start_dir=NULL); + + gboolean is_local() { return gnome_cmd_con_is_local (get_connection ()); } + gboolean is_active(); + + void show_filter(); + void update_files(); + void update_direntry(); + void update_selected_files_label(); + void update_style(); + void update_connections(); + void update_conbuttons_visibility(); + void update_concombo_visibility(); + + gboolean key_pressed(GdkEventKey *event); + + // private + void _change_state(guint page_num); + void _update_connections(); + void _set_connection(GnomeCmdCon *con, GnomeCmdDir *start_dir=NULL); + void _goto_directory(const gchar *in_dir); + void _update_cur_tab_title(); +}; + +struct _GnomeCmdFileSelector { GtkVBox vbox; @@ -55,15 +132,11 @@ GtkWidget *con_combo; GtkWidget *vol_label; - private: - GnomeCmdFileList *list; public: - class Private; - - Private *priv; + GnomeCmdFileSelector::Private *priv; operator GtkWidget * () { return GTK_WIDGET (this); } operator GtkBox * () { return GTK_BOX (this); } @@ -104,8 +177,10 @@ gboolean key_pressed(GdkEventKey *event); }; +void gnome_cmd_file_selector_change_state(GtkNotebook* notebook, guint page_num); GtkType gnome_cmd_file_selector_get_type (); +GtkType _gnome_cmd_file_selector_get_type (); GtkWidget *gnome_cmd_file_selector_new (); void gnome_cmd_file_selector_set_directory_to_opposite (GnomeCmdMainWin *mw, FileSelectorID fsID);