Statistics
| Revision:

root / src / gtkutils.h @ 2815

History | View | Annotate | Download (6.3 kB)

1
/*
2
 * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
3
 * Copyright (C) 1999-2008 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
46
typedef struct _ComboButton        ComboButton;
47
48
struct _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
86
gboolean gtkut_get_str_size                (GtkWidget        *widget,
87
                                         const gchar        *str,
88
                                         gint                *width,
89
                                         gint                *height);
90
gboolean gtkut_get_font_size                (GtkWidget        *widget,
91
                                         gint                *width,
92
                                         gint                *height);
93
PangoFontDescription *gtkut_get_default_font_desc
94
                                        (void);
95
void gtkut_widget_set_small_font_size        (GtkWidget        *widget);
96
97
gboolean gtkut_font_can_load                (const gchar        *str);
98
99
void gtkut_convert_int_to_gdk_color        (gint                 rgbvalue,
100
                                         GdkColor        *color);
101
102
void gtkut_stock_button_set_set_reverse        (gboolean         reverse);
103
void gtkut_stock_button_set_create        (GtkWidget        **bbox,
104
                                         GtkWidget        **button1,
105
                                         const gchar         *label1,
106
                                         GtkWidget        **button2,
107
                                         const gchar         *label2,
108
                                         GtkWidget        **button3,
109
                                         const gchar         *label3);
110
111
void gtkut_box_set_reverse_order        (GtkBox                *box,
112
                                         gboolean         reverse);
113
114
ComboButton *gtkut_combo_button_create        (GtkWidget                *button,
115
                                         GtkItemFactoryEntry        *entries,
116
                                         gint                         n_entries,
117
                                         const gchar                *path,
118
                                         gpointer                 data);
119
120
/* CTree functions */
121
122
gint gtkut_ctree_get_nth_from_node        (GtkCTree        *ctree,
123
                                         GtkCTreeNode        *node);
124
void gtkut_ctree_set_focus_row                (GtkCTree        *ctree,
125
                                         GtkCTreeNode        *node);
126
void gtkut_clist_set_focus_row                (GtkCList        *clist,
127
                                         gint                 row);
128
void gtkut_clist_set_redraw                (GtkCList        *clist);
129
130
/* TreeView functions */
131
132
gboolean gtkut_tree_model_next                (GtkTreeModel        *model,
133
                                         GtkTreeIter        *iter);
134
gboolean gtkut_tree_model_prev                (GtkTreeModel        *model,
135
                                         GtkTreeIter        *iter);
136
137
gboolean gtkut_tree_model_get_iter_last        (GtkTreeModel        *model,
138
                                         GtkTreeIter        *iter);
139
140
gboolean gtkut_tree_model_find_by_column_data
141
                                        (GtkTreeModel        *model,
142
                                         GtkTreeIter        *iter,
143
                                         GtkTreeIter        *start,
144
                                         gint                 col,
145
                                         gpointer         data);
146
147
void gtkut_tree_model_foreach                (GtkTreeModel                *model,
148
                                         GtkTreeIter                *start,
149
                                         GtkTreeModelForeachFunc func,
150
                                         gpointer                 user_data);
151
152
gboolean gtkut_tree_row_reference_get_iter
153
                                        (GtkTreeModel                *model,
154
                                         GtkTreeRowReference        *ref,
155
                                         GtkTreeIter                *iter);
156
gboolean gtkut_tree_row_reference_equal        (GtkTreeRowReference        *ref1,
157
                                         GtkTreeRowReference        *ref2);
158
159
void gtkut_tree_sortable_unset_sort_column_id
160
                                        (GtkTreeSortable        *sortable);
161
162
gboolean gtkut_tree_view_find_collapsed_parent
163
                                        (GtkTreeView        *treeview,
164
                                         GtkTreeIter        *parent,
165
                                         GtkTreeIter        *iter);
166
void gtkut_tree_view_expand_parent_all        (GtkTreeView        *treeview,
167
                                         GtkTreeIter        *iter);
168
169
void gtkut_tree_view_vertical_autoscroll(GtkTreeView        *treeview);
170
171
void gtkut_tree_view_scroll_to_cell        (GtkTreeView        *treeview,
172
                                         GtkTreePath        *path,
173
                                         gboolean         align_center);
174
175
void gtkut_tree_view_fast_clear                (GtkTreeView        *treeview,
176
                                         GtkTreeStore        *store);
177
178
void gtkut_combo_set_items                (GtkCombo        *combo,
179
                                         const gchar        *str1, ...);
180
181
gchar *gtkut_editable_get_selection        (GtkEditable        *editable);
182
void gtkut_editable_disable_im                (GtkEditable        *editable);
183
184
void gtkut_entry_strip_text                (GtkEntry        *entry);
185
186
void gtkut_container_remove                (GtkContainer        *container,
187
                                         GtkWidget        *widget);
188
189
void gtkut_scrolled_window_reset_position
190
                                        (GtkScrolledWindow        *window);
191
192
/* TextView functions */
193
194
gboolean gtkut_text_buffer_match_string        (GtkTextBuffer                *buffer,
195
                                         const GtkTextIter        *iter,
196
                                         gunichar                *wcs,
197
                                         gint                         len,
198
                                         gboolean                 case_sens);
199
gboolean gtkut_text_buffer_find                (GtkTextBuffer                *buffer,
200
                                         const GtkTextIter        *iter,
201
                                         const gchar                *str,
202
                                         gboolean                 case_sens,
203
                                         GtkTextIter                *match_pos);
204
gboolean gtkut_text_buffer_find_backward(GtkTextBuffer                *buffer,
205
                                         const GtkTextIter        *iter,
206
                                         const gchar                *str,
207
                                         gboolean                 case_sens,
208
                                         GtkTextIter                *match_pos);
209
210
void gtkut_text_buffer_insert_with_tag_by_name
211
                                        (GtkTextBuffer                *buffer,
212
                                         GtkTextIter                *iter,
213
                                         const gchar                *text,
214
                                         gint                         len,
215
                                         const gchar                *tag);
216
217
gchar *gtkut_text_view_get_selection        (GtkTextView        *textview);
218
219
void gtkut_window_popup                        (GtkWidget        *window);
220
gboolean gtkut_window_modal_exist        (void);
221
222
void gtkut_window_move                        (GtkWindow        *window,
223
                                         gint                 x,
224
                                         gint                 y);
225
226
void gtkut_widget_get_uposition                (GtkWidget        *widget,
227
                                         gint                *px,
228
                                         gint                *py);
229
void gtkut_widget_draw_now                (GtkWidget        *widget);
230
void gtkut_widget_init                        (void);
231
232
void gtkut_events_flush                        (void);
233
234
#endif /* __GTKUTILS_H__ */