Mercurial > geeqie.yaz
diff src/gqview.h @ 1:b3e0e515fabf
Initial revision
author | gqview |
---|---|
date | Mon, 03 Apr 2000 18:24:05 +0000 |
parents | |
children | c0e337a01cb7 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/gqview.h Mon Apr 03 18:24:05 2000 +0000 @@ -0,0 +1,354 @@ +/* + * GQview image viewer + * (C)1999 John Ellis + * + * Author: John Ellis + * + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "intl.h" + +/* + *------------------------------------- + * Standard library includes + *------------------------------------- + */ + +#include <pwd.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#include <unistd.h> +#include <sys/stat.h> +#include <dirent.h> + +/* + *------------------------------------- + * includes for glib / gtk / imlib + *------------------------------------- + */ + +#include <gdk/gdk.h> +#include <gtk/gtk.h> +#include <gdk_imlib.h> + +/* + *---------------------------------------------------------------------------- + * defines + *---------------------------------------------------------------------------- + */ + +#define RC_FILE_NAME ".gqviewrc" +#define RC_THUMB_DIR ".gqview_thmb" + +#define ZOOM_RESET_ORIGINAL 0 +#define ZOOM_RESET_FIT_WINDOW 1 +#define ZOOM_RESET_NONE 2 + +typedef struct _ImageWindow ImageWindow; +struct _ImageWindow +{ + GtkWidget *eventbox; + GtkWidget *table; + GtkWidget *viewport; + GtkWidget *image; + + gchar *image_path; + gchar *image_name; + + gint width; + gint height; + gint size; + + gint old_width; + gint old_height; + + gint unknown; + gint zoom; + + GdkPixmap *image_pixmap; + GdkImlibImage *image_data; + + gint in_drag; + gint drag_last_x; + gint drag_last_y; + gint drag_moved; + + gint artificial_size; + gint new_img; + + /* info, zoom labels & windows */ + + GtkWidget *top_window; /* window that gets title set to image filename */ + GtkWidget *info_label; /* label set to show image h x w , size */ + GtkWidget *zoom_label; /* label to display zoom */ + gchar *title; /* window title to display left of file name */ + gint show_title_zoom; /* option to include zoom in window title */ + + /* button functions */ + void (*func_btn1)(ImageWindow *, GdkEventButton *, gpointer); + void (*func_btn2)(ImageWindow *, GdkEventButton *, gpointer); + void (*func_btn3)(ImageWindow *, GdkEventButton *, gpointer); + + gpointer data_btn1; + gpointer data_btn2; + gpointer data_btn3; +}; + +/* image */ +extern ImageWindow *main_image; + +/* main window */ +extern GtkWidget *mainwindow; +extern GtkWidget *mainwindow_hbox; +extern GtkWidget *mainwindow_vbox; +extern GtkAccelGroup *mainwindow_accel_grp; + +extern GtkWidget *info_box; +extern GtkWidget *info_progress_bar; +extern GtkWidget *info_status; +extern GtkWidget *info_details; +extern GtkWidget *info_zoom; + +/* full screen */ +extern ImageWindow *normal_image; +extern ImageWindow *full_screen_image; +extern GtkWidget *full_screen_window; + +/* tools floating window */ +extern GtkWidget *toolwindow; + +/* tools */ +extern GtkWidget *tool_vbox; + +extern GtkWidget *path_entry; +extern GtkWidget *history_menu; + +extern GtkWidget *dir_clist; +extern GtkWidget *file_clist; + +extern GtkWidget *menu_file; +extern GtkWidget *menu_edit; +extern GtkWidget *menu_view; +extern GtkWidget *menu_help; +extern GtkWidget *menu_file_popup; +extern GtkWidget *menu_filelist_edit; +extern GtkWidget *menu_image_popup; +extern GtkWidget *menu_image_edit; +extern GtkWidget *menu_window_full; +extern GtkWidget *menu_window_full_edit; +extern GtkWidget *menu_window_view; +extern GtkWidget *menu_window_view_edit; + +extern GtkWidget *thumb_button; +extern GtkWidget *thumb_menu_item; + +/* lists */ +extern GList *dir_list; +extern GList *file_list; +extern gchar *current_path; + +extern GList *filename_filter; + +/* -- options -- */ +extern gint main_window_w; +extern gint main_window_h; +extern gint main_window_x; +extern gint main_window_y; + +extern gint float_window_w; +extern gint float_window_h; +extern gint float_window_x; +extern gint float_window_y; + +extern gint save_window_positions; +extern gint tools_float; +extern gint tools_hidden; +extern gint progressive_key_scrolling; + +extern gint startup_path_enable; +extern gchar *startup_path; +extern gint confirm_delete; +extern gint restore_tool; +extern gint zoom_mode; +extern gint fit_window; +extern gint limit_window_size; +extern gint max_window_size; +extern gint thumb_max_width; +extern gint thumb_max_height; +extern gint enable_thumb_caching; +extern gint use_xvpics_thumbnails; +extern gint show_dot_files; +extern gint file_filter_disable; +extern gint filter_include_jpg; +extern gint filter_include_xpm; +extern gint filter_include_tif; +extern gint filter_include_gif; +extern gint filter_include_png; +extern gint filter_include_ppm; +extern gint filter_include_pgm; +extern gint filter_include_pcx; +extern gint filter_include_bmp; +extern gchar *custom_filter; +extern gchar *editor_name[]; +extern gchar *editor_command[]; + +extern gint thumbnails_enabled; + +extern gint slideshow_delay; /* in seconds */ +extern gint slideshow_random; +extern gint slideshow_repeat; + +extern gint debug; + +/* logo & misc images */ +extern const int logo_width; +extern const int logo_height; +extern const unsigned char logo[]; + +/* -- functions -- */ + +/* main.c */ +gchar *filename_from_path(char *t); +gchar *remove_level_from_path(gchar *path); +void parse_out_relatives(gchar *path); +void start_editor_from_file(gint n, gchar *path); +void start_editor_from_image(gint n); +void start_editor_from_list(gint n); +void keyboard_scroll_calc(gint *x, gint *y, GdkEventKey *event); +gint key_press_cb(GtkWidget *widget, GdkEventKey *event); +void exit_gqview(); + +/* window.c */ +void toolwindow_float(); +void toolwindow_hide(); +void create_main_window(); + +/* menu.c */ +void add_menu_popup_item(GtkWidget *menu, gchar *label, + GtkSignalFunc func, gpointer data); +void add_menu_divider(GtkWidget *menu); +void update_edit_menus(GtkAccelGroup *accel_grp); +GtkWidget *create_menu_bar(GtkAccelGroup *accel_grp); +void create_menu_popups(); +GtkWidget *create_button_bar(GtkTooltips *tooltips); + +/* img-main.c */ +void full_screen_start(); +void full_screen_stop(); +void full_screen_toggle(); +void image_scroll(gint x, gint y); +void image_adjust_zoom(gint increment); +void image_set_zoom(gint zoom); +void image_set_path(gchar *path); +gchar *image_get_path(); +gchar *image_get_name(); +void image_change_to(gchar *path); +void image_set_labels(GtkWidget *info, GtkWidget *zoom); +GtkWidget *image_create(); + +/* filelist.c */ +void update_status_label(gchar *text); +void rebuild_file_filter(); +gint find_file_in_list(gchar *path); +GList *file_get_selected_list(); +void free_selected_list(GList *list); +gint file_clicked_is_selected(); +gchar *file_clicked_get_path(); +gint file_count(); +gint file_selection_count(); +gchar *file_get_path(gint row); +gint file_is_selected(gint row); +void file_image_change_to(gint row); +void file_next_image(); +void file_prev_image(); +void file_first_image(); +void file_last_image(); +void file_is_gone(gchar *path, GList *ignore_list); +void file_is_renamed(gchar *source, gchar *dest); +void dir_select_cb(GtkWidget *widget, gint row, gint col, + GdkEvent *event, gpointer data); +void dir_press_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer data); +void file_press_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer data); +void file_select_cb(GtkWidget *widget, gint row, gint col, + GdkEvent *event, gpointer data); +void file_unselect_cb(GtkWidget *widget, gint row, gint col, + GdkEvent *event, gpointer data); +void file_clist_highlight_set(); +void file_clist_highlight_unset(); +void path_entry_cb(gchar *newdir, gpointer data); +void interrupt_thumbs(); +void filelist_populate_clist(); +void filelist_refresh(); +void filelist_change_to(gchar *path); + +/* config.c */ +void show_config_window(); +void show_about_window(); + +/* rcfile.c */ +void save_options(); +void load_options(); + +/* tabcomp.c */ +GtkWidget *tab_completion_new_with_history(GtkWidget **entry, GtkWidget *window, gchar *text, + const gchar *history_key, gint max_levels, + void (*enter_func)(gchar *, gpointer), gpointer data); +gchar *tab_completion_set_to_last_history(GtkWidget *entry); +void tab_completion_append_to_history(GtkWidget *entry, gchar *path); + +GtkWidget *tab_completion_new(GtkWidget **entry, GtkWidget *window, gchar *text, + void (*enter_func)(gchar *, gpointer), gpointer data); +void tab_completion_add_to_entry(GtkWidget *entry, void (*enter_func)(gchar *, gpointer), gpointer data); +void tab_completion_add_tab_func(GtkWidget *entry, void (*tab_func)(gchar *, gpointer), gpointer data); +gchar *remove_trailing_slash(gchar *path); + +/* fileops.c */ +gchar *homedir(); +int isfile(char *s); +int isdir(char *s); +int filesize(char *s); +time_t filetime(gchar *s); +int copy_file(char *s, char *t); +int move_file(char *s, char *t); +gchar *get_current_dir(); + +/* dnd.c */ +void image_dnd_init(ImageWindow *imd); +void init_dnd(); + +/* pathsel.c */ +GtkWidget *destination_widget_new(gchar *path, GtkWidget *entry); +void destination_widget_sync_to_entry(GtkWidget *entry); + +#include "utildlg.h" + +/* utilops.c */ +void file_util_delete(gchar *source_path, GList *source_list); +void file_util_move(gchar *source_path, GList *source_list, gchar *dest_path); +void file_util_copy(gchar *source_path, GList *source_list, gchar *dest_path); +void file_util_rename(gchar *source_path, GList *source_list); +void file_util_create_dir(gchar *path); + +/* thumb.c */ +gint create_thumbnail(gchar *path, GdkPixmap **thumb_pixmap, GdkBitmap **thumb_mask); +gint maintain_thumbnail_dir(gchar *dir, gint recursive); + +/* slideshow.c */ +void slideshow_start(); +void slideshow_stop(); +void slideshow_toggle(); +gint slideshow_is_running(); + +/* img-view.c */ +void view_window_new(gchar *path); +void view_window_active_edit(gint n); +void create_menu_view_popup(); + + +