summaryrefslogtreecommitdiff
path: root/src/gtkutils.h
diff options
context:
space:
mode:
authorSimeon Simeonov2018-02-26 11:23:00 +0100
committerSimeon Simeonov2018-02-26 11:23:00 +0100
commit0b3cbf57875fd692e4ba0b336fefa4bee1ed00dc (patch)
treeaf916a30553c78ce9d4f2d8658656a175c5b6921 /src/gtkutils.h
Initial commit for sylpheed 3.7.0
Diffstat (limited to 'src/gtkutils.h')
-rw-r--r--src/gtkutils.h238
1 files changed, 238 insertions, 0 deletions
diff --git a/src/gtkutils.h b/src/gtkutils.h
new file mode 100644
index 0000000..1872e67
--- /dev/null
+++ b/src/gtkutils.h
@@ -0,0 +1,238 @@
1/*
2 * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
3 * Copyright (C) 1999-2014 Hiroyuki Yamamoto
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 */
19
20#ifndef __GTKUTILS_H__
21#define __GTKUTILS_H__
22
23#ifdef HAVE_CONFIG_H
24# include "config.h"
25#endif
26
27#include <glib.h>
28#include <gdk/gdk.h>
29#include <gtk/gtkmain.h>
30#include <gtk/gtkwidget.h>
31#include <gtk/gtkcontainer.h>
32#include <gtk/gtkeditable.h>
33#include <gtk/gtkctree.h>
34#include <gtk/gtktreemodel.h>
35#include <gtk/gtktreestore.h>
36#include <gtk/gtktreeview.h>
37#include <gtk/gtkcombo.h>
38#include <gtk/gtkscrolledwindow.h>
39#include <gtk/gtktextview.h>
40#include <gtk/gtkitemfactory.h>
41#include <gtk/gtkentry.h>
42#include <gtk/gtkstock.h>
43
44#include <stdlib.h>
45
46typedef struct _ComboButton ComboButton;
47
48struct _ComboButton
49{
50 GtkWidget *arrow;
51 GtkWidget *button;
52 GtkWidget *menu;
53 GtkItemFactory *factory;
54 gpointer data;
55};
56
57#define GTK_EVENTS_FLUSH() \
58{ \
59 while (gtk_events_pending()) \
60 gtk_main_iteration(); \
61}
62
63#define PIXMAP_CREATE(widget, pixmap, mask, xpm_d) \
64{ \
65 if (!pixmap) { \
66 GtkStyle *style = gtk_widget_get_style(widget); \
67 pixmap = gdk_pixmap_create_from_xpm_d \
68 (widget->window, &mask, \
69 &style->bg[GTK_STATE_NORMAL], xpm_d); \
70 } \
71}
72
73#define GTK_WIDGET_PTR(wid) (*(GtkWidget **)wid)
74
75#define GTKUT_CTREE_NODE_SET_ROW_DATA(node, d) \
76{ \
77 GTK_CTREE_ROW(node)->row.data = d; \
78}
79
80#define GTKUT_CTREE_NODE_GET_ROW_DATA(node) \
81 (GTK_CTREE_ROW(node)->row.data)
82
83#define GTKUT_CTREE_REFRESH(clist) \
84 GTK_CLIST_GET_CLASS(clist)->refresh(clist)
85
86gboolean gtkut_get_str_size (GtkWidget *widget,
87 const gchar *str,
88 gint *width,
89 gint *height);
90gboolean gtkut_get_font_size (GtkWidget *widget,
91 gint *width,
92 gint *height);
93PangoFontDescription *gtkut_get_default_font_desc
94 (void);
95void gtkut_widget_set_small_font_size (GtkWidget *widget);
96
97gboolean gtkut_font_can_load (const gchar *str);
98
99gdouble gtkut_get_dpi (void);
100gdouble gtkut_get_dpi_multiplier (void);
101void gtkut_set_dpi (gdouble dpi);
102
103void gtkut_convert_int_to_gdk_color (gint rgbvalue,
104 GdkColor *color);
105
106void gtkut_stock_button_set_set_reverse (gboolean reverse);
107void gtkut_stock_button_set_create (GtkWidget **bbox,
108 GtkWidget **button1,
109 const gchar *label1,
110 GtkWidget **button2,
111 const gchar *label2,
112 GtkWidget **button3,
113 const gchar *label3);
114
115void gtkut_box_set_reverse_order (GtkBox *box,
116 gboolean reverse);
117
118ComboButton *gtkut_combo_button_create (GtkWidget *button,
119 GtkItemFactoryEntry *entries,
120 gint n_entries,
121 const gchar *path,
122 gpointer data);
123
124/* CTree functions */
125
126gint gtkut_ctree_get_nth_from_node (GtkCTree *ctree,
127 GtkCTreeNode *node);
128void gtkut_ctree_set_focus_row (GtkCTree *ctree,
129 GtkCTreeNode *node);
130void gtkut_clist_set_focus_row (GtkCList *clist,
131 gint row);
132void gtkut_clist_set_redraw (GtkCList *clist);
133
134/* TreeView functions */
135
136gboolean gtkut_tree_model_next (GtkTreeModel *model,
137 GtkTreeIter *iter);
138gboolean gtkut_tree_model_prev (GtkTreeModel *model,
139 GtkTreeIter *iter);
140
141gboolean gtkut_tree_model_get_iter_last (GtkTreeModel *model,
142 GtkTreeIter *iter);
143
144gboolean gtkut_tree_model_find_by_column_data
145 (GtkTreeModel *model,
146 GtkTreeIter *iter,
147 GtkTreeIter *start,
148 gint col,
149 gpointer data);
150
151void gtkut_tree_model_foreach (GtkTreeModel *model,
152 GtkTreeIter *start,
153 GtkTreeModelForeachFunc func,
154 gpointer user_data);
155
156gboolean gtkut_tree_row_reference_get_iter
157 (GtkTreeModel *model,
158 GtkTreeRowReference *ref,
159 GtkTreeIter *iter);
160gboolean gtkut_tree_row_reference_equal (GtkTreeRowReference *ref1,
161 GtkTreeRowReference *ref2);
162
163void gtkut_tree_sortable_unset_sort_column_id
164 (GtkTreeSortable *sortable);
165
166gboolean gtkut_tree_view_find_collapsed_parent
167 (GtkTreeView *treeview,
168 GtkTreeIter *parent,
169 GtkTreeIter *iter);
170void gtkut_tree_view_expand_parent_all (GtkTreeView *treeview,
171 GtkTreeIter *iter);
172
173void gtkut_tree_view_vertical_autoscroll(GtkTreeView *treeview);
174
175void gtkut_tree_view_scroll_to_cell (GtkTreeView *treeview,
176 GtkTreePath *path,
177 gboolean align_center);
178
179void gtkut_tree_view_fast_clear (GtkTreeView *treeview,
180 GtkTreeStore *store);
181
182void gtkut_combo_set_items (GtkCombo *combo,
183 const gchar *str1, ...);
184
185gchar *gtkut_editable_get_selection (GtkEditable *editable);
186void gtkut_editable_disable_im (GtkEditable *editable);
187
188void gtkut_entry_strip_text (GtkEntry *entry);
189
190void gtkut_container_remove (GtkContainer *container,
191 GtkWidget *widget);
192
193void gtkut_scrolled_window_reset_position
194 (GtkScrolledWindow *window);
195
196/* TextView functions */
197
198gboolean gtkut_text_buffer_match_string (GtkTextBuffer *buffer,
199 const GtkTextIter *iter,
200 gunichar *wcs,
201 gint len,
202 gboolean case_sens);
203gboolean gtkut_text_buffer_find (GtkTextBuffer *buffer,
204 const GtkTextIter *iter,
205 const gchar *str,
206 gboolean case_sens,
207 GtkTextIter *match_pos);
208gboolean gtkut_text_buffer_find_backward(GtkTextBuffer *buffer,
209 const GtkTextIter *iter,
210 const gchar *str,
211 gboolean case_sens,
212 GtkTextIter *match_pos);
213
214void gtkut_text_buffer_insert_with_tag_by_name
215 (GtkTextBuffer *buffer,
216 GtkTextIter *iter,
217 const gchar *text,
218 gint len,
219 const gchar *tag);
220
221gchar *gtkut_text_view_get_selection (GtkTextView *textview);
222
223void gtkut_window_popup (GtkWidget *window);
224gboolean gtkut_window_modal_exist (void);
225
226void gtkut_window_move (GtkWindow *window,
227 gint x,
228 gint y);
229
230void gtkut_widget_get_uposition (GtkWidget *widget,
231 gint *px,
232 gint *py);
233void gtkut_widget_draw_now (GtkWidget *widget);
234void gtkut_widget_init (void);
235
236void gtkut_events_flush (void);
237
238#endif /* __GTKUTILS_H__ */