📄 gftp-gtk.h
字号:
/*****************************************************************************//* gftp-gtk.h - include file for the gftp gtk+ 1.2 port *//* Copyright (C) 1998-2003 Brian Masney <masneyb@gftp.org> *//* *//* This program is free software; you can redistribute it and/or modify *//* it under the terms of the GNU General Public License as published by *//* the Free Software Foundation; either version 2 of the License, or *//* (at your option) any later version. *//* *//* This program is distributed in the hope that it will be useful, *//* but WITHOUT ANY WARRANTY; without even the implied warranty of *//* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *//* GNU General Public License for more details. *//* *//* You should have received a copy of the GNU General Public License *//* along with this program; if not, write to the Free Software *//* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *//*****************************************************************************//* $Id: gftp-gtk.h,v 1.39 2004/11/02 01:33:26 masneyb Exp $ */#ifndef __GFTP_GTK_H#define __GFTP_GTK_H#include "../../lib/gftp.h"#include "../uicommon/gftpui.h"#include <gtk/gtk.h>#include <gdk/gdkkeysyms.h>#include <pthread.h>#define GFTP_MENU_ITEM_ASCII 1#define GFTP_MENU_ITEM_BINARY 2#define GFTP_MENU_ITEM_WIN1 3#define GFTP_MENU_ITEM_WIN2 4#define IS_ONE_SELECTED(wdata) (GTK_CLIST ((wdata)->listbox)->selection && GTK_CLIST ((wdata)->listbox)->selection->next == NULL)#define IS_NONE_SELECTED(wdata) (GTK_CLIST ((wdata)->listbox)->selection == NULL)#define gftp_gtk_get_list_selection(wdata) (GTK_CLIST ((wdata)->listbox)->selection)#define GFTP_IS_SAME_HOST_START_TRANS(wdata,trequest) \ ((wdata) != NULL && (wdata)->request != NULL && \ (wdata)->request->datafd > 0 && !(wdata)->request->always_connected && \ !(wdata)->request->stopable && \ compare_request (trequest, (wdata)->request, 0))#define GFTP_IS_SAME_HOST_STOP_TRANS(wdata,trequest) \ ((wdata) != NULL && (wdata)->request != NULL && \ (wdata)->request->datafd < 0 && !(wdata)->request->always_connected && \ (wdata)->request->cached && !(wdata)->request->stopable && \ trequest->datafd > 0 && !trequest->always_connected && \ compare_request (trequest, (wdata)->request, 0))#if GTK_MAJOR_VERSION == 1 #define gtk_widget_set_size_request(widget, width, height) \ gtk_widget_set_usize (widget, width, height)#endif/* These 2 defines are for creating menu items with stock icons in GTK+ 2.0. If we are using version 1.2, it will disable the stock items since it's not supported */#if GTK_MAJOR_VERSION < 2#define MS_(a) NULL#define MN_(a) a#else#define MS_(a) "<StockItem>",a#define MN_(a) a,NULL#endif/* These are used for the MakeEditDialog function. I have these types to make it easier for creating dialogs with GTK+ 1.2 and GTK+ 2.0 */typedef enum gftp_dialog_button_tag{ gftp_dialog_button_create, gftp_dialog_button_change, gftp_dialog_button_connect, gftp_dialog_button_rename, gftp_dialog_button_ok} gftp_dialog_button;typedef struct gftp_window_data_tag{ GtkWidget *combo, /* Entry widget/history for the user to enter a directory */ *hoststxt, /* Show which directory we're in */ *listbox; /* Our listbox showing the files */ unsigned int sorted : 1, /* Is the output sorted? */ show_selected : 1, /* Show only selected files */ *histlen; /* Pointer to length of history */ char *filespec; /* Filespec for the listbox */ gftp_request * request; /* The host that we are connected to */ GList * files, /* Files in the listbox */ ** history; /* History of the directories */ GtkItemFactory *ifactory; /* This is for the menus that will come up when you right click */ pthread_t tid; /* Thread for the stop button */ char *prefix_col_str;} gftp_window_data;typedef struct _gftpui_gtk_thread_data{ void * (*func) (void *); gftpui_callback_data * cdata;} gftpui_gtk_thread_data;typedef struct gftp_graphic_tag{ char * filename; GdkPixmap * pixmap; GdkBitmap * bitmap;} gftp_graphic;typedef struct gftp_dialog_data_tag{ GtkWidget * dialog, * checkbox, * edit; void (*yesfunc) (); gpointer yespointer; void (*nofunc) (); gpointer nopointer;} gftp_dialog_data;typedef struct gftp_viewedit_data_tag { char *filename, /* File we are viewing/editing currently */ *remote_filename; /* The filename on the remote computer */ struct stat st; /* Vital file statistics */ pid_t pid; /* Our process id */ char **argv; /* Our arguments we passed to execvp. We will free it when the process terminates. This is the safest place to free this */ unsigned int view : 1, /* View or edit this file */ rm : 1, /* Delete this file after we're done with it */ dontupload : 1; /* Don't upload this file after we're done editing it */ gftp_window_data * fromwdata, /* The window we are viewing this file in */ * towdata; gftp_request * torequest;} gftp_viewedit_data;typedef struct gftp_save_dir_struct_tag{ GtkWidget * filew; gftp_window_data * wdata;} gftp_save_dir_struct;typedef struct gftp_textcomboedt_widget_data_tag{ GtkWidget * combo, * text; gftp_config_vars * cv; char * custom_edit_value;} gftp_textcomboedt_widget_data;typedef struct gftp_options_dialog_data_tag{ GtkWidget * dialog, * notebook, * box, * table; int tbl_col_num, tbl_row_num; gftp_option_type_enum last_option; gftp_bookmarks_var * bm;} gftp_options_dialog_data;extern gftp_window_data window1, window2, * other_wdata, * current_wdata;extern GtkWidget * stop_btn, * hostedit, * useredit, * passedit, * portedit, * logwdw, * dlwdw, * protocol_menu, * optionmenu, * gftpui_command_widget, * download_left_arrow, * upload_right_arrow, * openurl_btn;extern GtkTooltips * openurl_tooltip;extern GtkAdjustment * logwdw_vadj;#if GTK_MAJOR_VERSION > 1extern GtkTextMark * logwdw_textmark;#endifextern int local_start, remote_start, trans_start, log_start, tools_start;extern GHashTable * graphic_hash_table;extern GtkItemFactoryEntry * menus;extern GtkItemFactory * factory;extern pthread_mutex_t log_mutex;extern gftp_graphic * gftp_icon;extern pthread_t main_thread_id;extern GList * viewedit_processes;/* bookmarks.c */void run_bookmark ( gpointer data );void add_bookmark ( gpointer data );void edit_bookmarks ( gpointer data );void build_bookmarks_menu ( void );/* chmod_dialog.c */ void chmod_dialog ( gpointer data );/* delete_dialog.c */ void delete_dialog ( gpointer data );/* dnd.c */void openurl_get_drag_data ( GtkWidget * widget, GdkDragContext * context, gint x, gint y, GtkSelectionData * selection_data, guint info, guint32 clk_time, gpointer data );void listbox_drag ( GtkWidget * widget, GdkDragContext * context, GtkSelectionData * selection_data, guint info, guint32 clk_time, gpointer data );void listbox_get_drag_data ( GtkWidget * widget, GdkDragContext * context, gint x, gint y, GtkSelectionData * selection_data, guint info, guint32 clk_time, gpointer data );/* gftp-gtk.c */void toolbar_hostedit ( GtkWidget * widget, gpointer data );void sortrows ( GtkCList * clist, gint column, gpointer data );void stop_button ( GtkWidget * widget, gpointer data );void gftpui_show_or_hide_command ( void );/* gtkui.c */void gftpui_run_command ( GtkWidget * widget, gpointer data );void gftpui_run_function_callback ( gftp_window_data * wdata, gftp_dialog_data * ddata );void gftpui_run_function_cancel_callback ( gftp_window_data * wdata, gftp_dialog_data * ddata );void gftpui_mkdir_dialog ( gpointer data );void gftpui_rename_dialog ( gpointer data );void gftpui_site_dialog ( gpointer data );int gftpui_run_chdir ( gpointer uidata, char *directory );void gftpui_chdir_dialog ( gpointer data );char * gftpui_gtk_get_utf8_file_pos ( gftp_file * fle );/* menu_items.c */void change_filespec ( gpointer data );void save_directory_listing ( gpointer data );void show_selected ( gpointer data );void selectall ( gpointer data );void selectallfiles ( gpointer data );void deselectall ( gpointer data );int chdir_edit ( GtkWidget * widget, gpointer data );void clearlog ( gpointer data );void viewlog ( gpointer data );void savelog ( gpointer data );void clear_cache ( gpointer data );void compare_windows ( gpointer data );void about_dialog ( gpointer data );/* misc-gtk.c */void fix_display ( void );void remove_files_window ( gftp_window_data * wdata );void ftp_log ( gftp_logging_level level, gftp_request * request, const char *string, ... ) GFTP_LOG_FUNCTION_ATTRIBUTES;void update_window_info ( void );void update_window ( gftp_window_data * wdata );GtkWidget * toolbar_pixmap ( GtkWidget * widget, char *filename );gftp_graphic * open_xpm ( GtkWidget * widget, char *filename );void gftp_free_pixmap ( char *filename ); void gftp_get_pixmap ( GtkWidget * widget, char *filename, GdkPixmap ** pix, GdkBitmap ** bitmap );int check_status ( char *name, gftp_window_data * wdata, int check_other_stop, int only_one, int at_least_one, int func );GtkItemFactory *item_factory_new ( GtkType container_type, const char *path, GtkAccelGroup *accel_group, const char *strip_prefix );void create_item_factory ( GtkItemFactory * ifactory, guint n_entries, GtkItemFactoryEntry * entries, gpointer callback_data );void add_history ( GtkWidget * widget, GList ** history, unsigned int *histlen, const char *str );int check_reconnect ( gftp_window_data * wdata );void add_file_listbox ( gftp_window_data * wdata, gftp_file * fle );void destroy_dialog ( gftp_dialog_data * ddata );void MakeEditDialog ( char *diagtxt, char *infotxt, char *deftext, int passwd_item, char *checktext, gftp_dialog_button okbutton, void (*okfunc) (), void *okptr, void (*cancelfunc) (), void *cancelptr );void MakeYesNoDialog ( char *diagtxt, char *infotxt, void (*yesfunc) (), gpointer yespointer, void (*nofunc) (), gpointer nopointer );void update_directory_download_progress ( gftp_transfer * transfer );int progress_timeout ( gpointer data );void display_cached_logs ( void );char * get_xpm_path ( char *filename, int quit_on_err );/* options_dialog.c */void options_dialog ( gpointer data );void gftp_gtk_setup_bookmark_options ( GtkWidget * notebook, gftp_bookmarks_var * bm );void gftp_gtk_save_bookmark_options ( gftp_bookmarks_var * bm );/* transfer.c */int ftp_list_files ( gftp_window_data * wdata );int ftp_connect ( gftp_window_data * wdata, gftp_request * request, int getdir );gint update_downloads ( gpointer data );void get_files ( gpointer data );void put_files ( gpointer data );void transfer_window_files ( gftp_window_data * fromwdata, gftp_window_data * towdata );int gftp_gtk_get_subdirs ( gftp_transfer * transfer, pthread_t *tid );void *do_getdir_thread ( void * data );void start_transfer ( gpointer data );void stop_transfer ( gpointer data );void skip_transfer ( gpointer data );void remove_file_transfer ( gpointer data );void move_transfer_up ( gpointer data );void move_transfer_down ( gpointer data );/* view_dialog.c */void edit_dialog ( gpointer data );void view_dialog ( gpointer data );void view_file ( char *filename, int fd, int viewedit, int del_file, int start_pos, int dontupload, char *remote_filename, gftp_window_data * wdata );#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -