Mercurial > geeqie.yaz
view src/gqview.h @ 3:c0e337a01cb7
0.8.0
author | gqview |
---|---|
date | Thu, 13 Apr 2000 12:55:19 +0000 |
parents | b3e0e515fabf |
children | e149abcda4eb |
line wrap: on
line source
/* * GQview image viewer * (C)2000 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(); void image_to_root(); /* 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_tab_cb(gchar *newpath, gpointer data); 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_next(); void slideshow_prev(); void slideshow_toggle(); gint slideshow_is_running(); /* img-view.c */ void view_window_new(gchar *path); void view_window_active_edit(gint n); void view_window_active_to_root(gint n); void create_menu_view_popup();