1 /* 2 * Copyright (C) 2004 John Ellis 3 * Copyright (C) 2008 - 2016 The Geeqie Team 4 * 5 * Author: Vladimir Nadvornik 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License along 18 * with this program; if not, write to the Free Software Foundation, Inc., 19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 20 */ 21 22 #ifndef BAR_H 23 #define BAR_H 24 25 typedef enum { 26 PANE_UNDEF = 0, 27 PANE_COMMENT, 28 PANE_EXIF, 29 PANE_HISTOGRAM, 30 PANE_KEYWORDS, 31 PANE_GPS 32 } PaneType; 33 34 typedef struct _PaneData PaneData; 35 36 struct _PaneData { 37 /* filled in by pane */ 38 void (*pane_set_fd)(GtkWidget *pane, FileData *fd); 39 void (*pane_notify_selection)(GtkWidget *pane, gint count); 40 gint (*pane_event)(GtkWidget *pane, GdkEvent *event); 41 void (*pane_write_config)(GtkWidget *pane, GString *outstr, gint indent); 42 GtkWidget *title; 43 gboolean expanded; 44 gchar *id; 45 PaneType type; 46 47 /* filled in by bar */ 48 GtkWidget *bar; 49 LayoutWindow *lw; 50 }; 51 52 53 54 55 GtkWidget *bar_new(LayoutWindow *lw); 56 GtkWidget *bar_new_from_config(LayoutWindow *lw, const gchar **attribute_names, const gchar **attribute_values); 57 GtkWidget *bar_update_from_config(GtkWidget *bar, const gchar **attribute_names, const gchar **attribute_values); 58 59 void bar_close(GtkWidget *bar); 60 61 void bar_write_config(GtkWidget *bar, GString *outstr, gint indent); 62 63 void bar_populate_default(GtkWidget *bar); 64 65 void bar_add(GtkWidget *bar, GtkWidget *pane); 66 GtkWidget *bar_find_pane_by_id(GtkWidget *bar, PaneType type, const gchar *id); 67 68 void bar_clear(GtkWidget *bar); 69 70 void bar_set_fd(GtkWidget *bar, FileData *fd); 71 void bar_notify_selection(GtkWidget *bar, gint count); 72 gboolean bar_event(GtkWidget *bar, GdkEvent *event); 73 74 gint bar_get_width(GtkWidget *bar); 75 76 GtkWidget *bar_pane_expander_title(const gchar *title); 77 void bar_update_expander(GtkWidget *pane); 78 gboolean bar_pane_translate_title(PaneType type, const gchar *id, gchar **title); 79 const gchar *bar_pane_get_default_config(const gchar *id); 80 81 #endif 82 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ 83