first try to journal_store_get_latest_id() for sqlite
[k8lowj.git] / src / util-gtk.h
blob9e608e40ccb2709db0e4f9eecb2e0f8ca276c151
1 /* logjam - a GTK client for LiveJournal.
2 * Copyright (C) 2005 Evan Martin <evan@livejournal.com>
3 */
4 #ifndef __LOGJAM_UTIL_GTK_H__
5 #define __LOGJAM_UTIL_GTK_H__
6 #ifdef HAVE_GTK
8 #include "gtk-all.h"
10 #include "conf.h"
12 #define STACK(type, var) type actual_##var = {0}, *var = &actual_##var
13 #define UNREF_AND_NULL(x) if (x) { g_object_unref(G_OBJECT(x)); x = NULL; }
16 typedef enum {
17 JAM_MSG_INFO,
18 JAM_MSG_WARNING,
19 JAM_MSG_ERROR
20 } MessageType;
23 extern gchar *gettext_translate_func (const gchar *path, gpointer data);
25 extern GtkWidget *jam_table_new (int rows, int cols);
26 extern GtkWidget *jam_table_label (GtkTable *table, int row, const char *text);
27 extern void jam_table_content (GtkTable *table, int row, GtkWidget *content);
28 extern void jam_table_label_content (GtkTable *table, int row, const char *text, GtkWidget *content);
29 extern void jam_table_label_content_mne (GtkTable *table, int row, const char *text, GtkWidget *content, GtkWidget *mne);
30 extern void jam_table_fillrow (GtkTable *table, int row, GtkWidget *content);
31 extern void jam_spin_button_set (GtkSpinButton *w, gboolean numeric, gdouble range_low, gdouble range_high, gdouble increment_single, gdouble increment_page, gint digits);
33 /* if width or height <= 0, then we make up a reasonable size. */
34 extern void jam_win_set_size (GtkWindow *win, int width, int height);
36 extern GtkWidget *jam_dialog_set_contents (GtkDialog *dlg, GtkWidget *contents);
38 extern GtkWidget *jam_dialog_buttonbox_new (void);
39 extern void jam_dialog_buttonbox_add (GtkWidget *box, GtkWidget *button);
40 extern GtkWidget *jam_dialog_buttonbox_button_with_label (GtkWidget *box, const char *label);
41 extern GtkWidget *jam_dialog_buttonbox_button_from_stock (GtkWidget *box, const char *id);
42 extern void jam_dialog_set_contents_buttonbox (GtkWidget *dlg, GtkWidget *contents, GtkWidget *buttonbox);
44 extern int jam_confirm (GtkWindow *parent, const char *title, const char *msg);
45 extern void jam_message (GtkWindow *parent, MessageType type, gboolean forgettable, const char *title, const char *message, ...) __attribute__((format(printf,5,6)));
46 extern void jam_messagebox (GtkWindow *parent, const char *title, const char *message);
47 extern void jam_warning (GtkWindow *parent, const char *msg, ...) __attribute__((format(printf,2,3)));
50 gdk_color_parse() does exactly this:
51 void hex_to_gdkcolor(const char *buf, GdkColor *c);
53 extern void gdkcolor_to_hex (GdkColor *color, char *buf);
55 /* wrap this widget in a scrollarea */
56 extern GtkWidget *scroll_wrap (GtkWidget *w);
58 /* tie a geometry struct to a window */
59 extern void geometry_tie (GtkWidget *win, GeometryType g);
60 extern void geometry_tie_full (GeometryType g, GtkWindow *win, GtkPaned *paned);
62 extern gint text_sort_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer data);
64 extern void jam_widget_set_visible (GtkWidget *w, gboolean visible);
65 extern void jam_widget_set_font (GtkWidget *w, const gchar *font_name);
67 /* produces an hbox that has a label and a widget, with optional
68 * sizegroup, expansion setting, and mnemonic widget. */
69 extern GtkWidget *labelled_box_new_all (const char *caption, GtkWidget *w, gboolean expand, GtkSizeGroup *sg, GtkWidget *mne);
70 #define labelled_box_new_sg(c, w, sg) labelled_box_new_all(c, w, TRUE, sg, NULL)
71 #define labelled_box_new_expand(c, w, e) labelled_box_new_all(c, w, e, NULL, NULL)
72 #define labelled_box_new(c, w) labelled_box_new_all(c, w, TRUE, NULL, NULL)
74 /* like gtk_label_new, but appropriate for a form. */
75 extern GtkWidget *jam_form_label_new (const char *text);
78 typedef struct {
79 GtkWidget *box;
80 GtkWidget *view;
81 GtkListStore *store;
82 GtkWidget *add, *edit, *remove;
83 } JamReorderable;
86 extern void jam_reorderable_make (JamReorderable *jr);
88 extern gchar *jam_clipboard_wait_for_text_timeout (GtkClipboard *clipboard, gint timeout);
91 #endif
92 #endif