~ubuntu-branches/ubuntu/utopic/ibus-chewing/utopic-proposed

« back to all changes in this revision

Viewing changes to src/maker-dialog.c

  • Committer: Bazaar Package Importer
  • Author(s): LI Daobing, Asias He, LI Daobing
  • Date: 2010-06-07 21:25:30 UTC
  • mfrom: (1.1.8 upstream)
  • Revision ID: james.westby@ubuntu.com-20100607212530-glrdgp9lf6zvh52y
Tags: 1.3.4.20100605-1
[ Asias He ]
* debian/control:
  - set maintainer to pkg-ime, add LI Daobing <lidaobing@debian.org> 
    & Asias He <asias.hejun@gmail.com> to uploaders.
  - update Vcs-* fields.
* New upstream release.

[ LI Daobing ]
* debian/control: build depends on gob2 (>= 2.0.17) 

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Generated by GOB (v2.0.16)   (do not edit directly) */
2
 
 
3
 
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
4
 
 
5
 
 
6
 
#line 3 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
7
 
 
8
 
/*
9
 
 * Copyright © 2009  Red Hat, Inc. All rights reserved.
10
 
 * Copyright © 2009  Ding-Yi Chen <dchen at redhat.com>
11
 
 *
12
 
 * This file is part of the ibus-chewing Project.
13
 
 *
14
 
 * This program is free software; you can redistribute it and/or
15
 
 * modify it under the terms of the GNU General Public License
16
 
 * as published by the Free Software Foundation; either version 2
17
 
 * of the License, or (at your option) any later version.
18
 
 *
19
 
 * This program is distributed in the hope that it will be useful,
20
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22
 
 * GNU General Public License for more details.
23
 
 *
24
 
 * You should have received a copy of the GNU General Public License
25
 
 * along with this program; if not, write to the Free Software
26
 
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
27
 
 */
28
 
#include <stdlib.h>
29
 
#include <strings.h>
30
 
#include <gtk/gtk.h>
31
 
#include <glib/gi18n.h>
32
 
#include <locale.h>
33
 
 
34
 
#line 35 "maker-dialog.c"
35
 
#define GOB_VERSION_MAJOR 2
36
 
#define GOB_VERSION_MINOR 0
37
 
#define GOB_VERSION_PATCHLEVEL 16
38
 
 
39
 
#define selfp (self->_priv)
40
 
 
41
 
#include <string.h> /* memset() */
42
 
 
43
 
#include "maker-dialog.h"
44
 
 
45
 
#include "maker-dialog-private.h"
46
 
 
47
 
#ifdef G_LIKELY
48
 
#define ___GOB_LIKELY(expr) G_LIKELY(expr)
49
 
#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
50
 
#else /* ! G_LIKELY */
51
 
#define ___GOB_LIKELY(expr) (expr)
52
 
#define ___GOB_UNLIKELY(expr) (expr)
53
 
#endif /* G_LIKELY */
54
 
static const GEnumValue _maker_dialog_property_flag_values[] = {
55
 
        { MAKER_DIALOG_PROPERTY_FLAG_INVISIBLE, (char *)"MAKER_DIALOG_PROPERTY_FLAG_INVISIBLE", (char *)"invisible" },
56
 
        { MAKER_DIALOG_PROPERTY_FLAG_INSENSITIVE, (char *)"MAKER_DIALOG_PROPERTY_FLAG_INSENSITIVE", (char *)"insensitive" },
57
 
        { MAKER_DIALOG_PROPERTY_FLAG_INEDITABLE, (char *)"MAKER_DIALOG_PROPERTY_FLAG_INEDITABLE", (char *)"ineditable" },
58
 
        { MAKER_DIALOG_PROPERTY_FLAG_HAS_TRANSLATION, (char *)"MAKER_DIALOG_PROPERTY_FLAG_HAS_TRANSLATION", (char *)"has-translation" },
59
 
        { MAKER_DIALOG_PROPERTY_FLAG_TRANSLATION_WITH_CONTEXT, (char *)"MAKER_DIALOG_PROPERTY_FLAG_TRANSLATION_WITH_CONTEXT", (char *)"translation-with-context" },
60
 
        { 0, NULL, NULL }
61
 
};
62
 
 
63
 
GType
64
 
maker_dialog_property_flag_get_type (void)
65
 
{
66
 
        static GType type = 0;
67
 
        if ___GOB_UNLIKELY(type == 0)
68
 
                type = g_enum_register_static ("MakerDialogPropertyFlag", _maker_dialog_property_flag_values);
69
 
        return type;
70
 
}
71
 
 
72
 
 
73
 
#line 90 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
74
 
 
75
 
void G_DEBUG_MSG(gint level, const char *format, ...);
76
 
#include "MakerDialog-def.c"
77
 
 
78
 
#line 79 "maker-dialog.c"
79
 
/* self casting macros */
80
 
#define SELF(x) MAKER_DIALOG(x)
81
 
#define SELF_CONST(x) MAKER_DIALOG_CONST(x)
82
 
#define IS_SELF(x) MAKER_IS_DIALOG(x)
83
 
#define TYPE_SELF MAKER_TYPE_DIALOG
84
 
#define SELF_CLASS(x) MAKER_DIALOG_CLASS(x)
85
 
 
86
 
#define SELF_GET_CLASS(x) MAKER_DIALOG_GET_CLASS(x)
87
 
 
88
 
/* self typedefs */
89
 
typedef MakerDialog Self;
90
 
typedef MakerDialogClass SelfClass;
91
 
 
92
 
/* here are local prototypes */
93
 
#line 0 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
94
 
static void maker_dialog_class_init (MakerDialogClass * c) G_GNUC_UNUSED;
95
 
#line 96 "maker-dialog.c"
96
 
#line 117 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
97
 
static void maker_dialog_init (MakerDialog * self) G_GNUC_UNUSED;
98
 
#line 99 "maker-dialog.c"
99
 
#line 619 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
100
 
static void maker_dialog_widget_register (MakerDialog * self, GtkWidget * widget, const gchar * widget_label, const gchar * widget_type) G_GNUC_UNUSED;
101
 
#line 102 "maker-dialog.c"
102
 
 
103
 
/* pointer to the class of our parent */
104
 
static GtkDialogClass *parent_class = NULL;
105
 
 
106
 
/* Short form macros */
107
 
#define self_new maker_dialog_new
108
 
#define self_new_full maker_dialog_new_full
109
 
#define self_set_verbose_level maker_dialog_set_verbose_level
110
 
#define self_add_property_no_gui maker_dialog_add_property_no_gui
111
 
#define self_add_property maker_dialog_add_property
112
 
#define self_align_labels maker_dialog_align_labels
113
 
#define self_reload_property_value maker_dialog_reload_property_value
114
 
#define self_write_gconf_schemas_file maker_dialog_write_gconf_schemas_file
115
 
#define self_apply_widget_value maker_dialog_apply_widget_value
116
 
#define self_get_widget_value maker_dialog_get_widget_value
117
 
#define self_set_widget_value maker_dialog_set_widget_value
118
 
#define self_get_widget maker_dialog_get_widget
119
 
#define self_get_widget_by_key maker_dialog_get_widget_by_key
120
 
#define self_get_widget_by_id maker_dialog_get_widget_by_id
121
 
#define self_get_propertyContext_by_key maker_dialog_get_propertyContext_by_key
122
 
#define self_get_base_vbox maker_dialog_get_base_vbox
123
 
#define self_widget_register maker_dialog_widget_register
124
 
GType
125
 
maker_dialog_get_type (void)
126
 
{
127
 
        static GType type = 0;
128
 
 
129
 
        if ___GOB_UNLIKELY(type == 0) {
130
 
                static const GTypeInfo info = {
131
 
                        sizeof (MakerDialogClass),
132
 
                        (GBaseInitFunc) NULL,
133
 
                        (GBaseFinalizeFunc) NULL,
134
 
                        (GClassInitFunc) maker_dialog_class_init,
135
 
                        (GClassFinalizeFunc) NULL,
136
 
                        NULL /* class_data */,
137
 
                        sizeof (MakerDialog),
138
 
                        0 /* n_preallocs */,
139
 
                        (GInstanceInitFunc) maker_dialog_init,
140
 
                        NULL
141
 
                };
142
 
 
143
 
                type = g_type_register_static (GTK_TYPE_DIALOG, "MakerDialog", &info, (GTypeFlags)0);
144
 
        }
145
 
 
146
 
        return type;
147
 
}
148
 
 
149
 
/* a macro for creating a new object of our type */
150
 
#define GET_NEW ((MakerDialog *)g_object_new(maker_dialog_get_type(), NULL))
151
 
 
152
 
/* a function for creating a new object of our type */
153
 
#include <stdarg.h>
154
 
static MakerDialog * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
155
 
static MakerDialog *
156
 
GET_NEW_VARG (const char *first, ...)
157
 
{
158
 
        MakerDialog *ret;
159
 
        va_list ap;
160
 
        va_start (ap, first);
161
 
        ret = (MakerDialog *)g_object_new_valist (maker_dialog_get_type (), first, ap);
162
 
        va_end (ap);
163
 
        return ret;
164
 
}
165
 
 
166
 
 
167
 
static void
168
 
___finalize(GObject *obj_self)
169
 
{
170
 
#define __GOB_FUNCTION__ "Maker:Dialog::finalize"
171
 
        MakerDialog *self G_GNUC_UNUSED = MAKER_DIALOG (obj_self);
172
 
        gpointer priv G_GNUC_UNUSED = self->_priv;
173
 
        if(G_OBJECT_CLASS(parent_class)->finalize) \
174
 
                (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
175
 
#line 101 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
176
 
        if(self->dialog_notebook) { gtk_widget_destroy ((gpointer) self->dialog_notebook); self->dialog_notebook = NULL; }
177
 
#line 178 "maker-dialog.c"
178
 
#line 104 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
179
 
        if(self->_priv->widgetTable) { g_hash_table_destroy ((gpointer) self->_priv->widgetTable); self->_priv->widgetTable = NULL; }
180
 
#line 181 "maker-dialog.c"
181
 
#line 106 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
182
 
        if(self->_priv->notebookContentTable) { g_hash_table_destroy ((gpointer) self->_priv->notebookContentTable); self->_priv->notebookContentTable = NULL; }
183
 
#line 184 "maker-dialog.c"
184
 
#line 108 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
185
 
        if(self->_priv->widgetIds) { g_string_chunk_free ((gpointer) self->_priv->widgetIds); self->_priv->widgetIds = NULL; }
186
 
#line 187 "maker-dialog.c"
187
 
#define propList (self->_priv->propList)
188
 
#define VAR propList
189
 
        {
190
 
#line 110 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
191
 
        
192
 
        if (VAR){
193
 
            g_ptr_array_foreach(VAR,propList_free_deep_callback,NULL);
194
 
            g_ptr_array_free(VAR,TRUE);
195
 
        }
196
 
    }
197
 
#line 198 "maker-dialog.c"
198
 
        memset(&propList, 0, sizeof(propList));
199
 
#undef VAR
200
 
#undef propList
201
 
}
202
 
#undef __GOB_FUNCTION__
203
 
 
204
 
static void 
205
 
maker_dialog_class_init (MakerDialogClass * c G_GNUC_UNUSED)
206
 
{
207
 
#define __GOB_FUNCTION__ "Maker:Dialog::class_init"
208
 
        GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
209
 
 
210
 
        g_type_class_add_private(c,sizeof(MakerDialogPrivate));
211
 
 
212
 
        parent_class = g_type_class_ref (GTK_TYPE_DIALOG);
213
 
 
214
 
        g_object_class->finalize = ___finalize;
215
 
}
216
 
#undef __GOB_FUNCTION__
217
 
#line 117 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
218
 
static void 
219
 
maker_dialog_init (MakerDialog * self G_GNUC_UNUSED)
220
 
{
221
 
#line 222 "maker-dialog.c"
222
 
#define __GOB_FUNCTION__ "Maker:Dialog::init"
223
 
        self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MAKER_TYPE_DIALOG,MakerDialogPrivate);
224
 
#line 90 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
225
 
        self->vbox_homogeneous = TRUE;
226
 
#line 227 "maker-dialog.c"
227
 
#line 90 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
228
 
        self->hbox_spacing = 2;
229
 
#line 230 "maker-dialog.c"
230
 
#line 90 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
231
 
        self->vbox_spacing = 2;
232
 
#line 233 "maker-dialog.c"
233
 
#line 90 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
234
 
        self->dialog_notebook = NULL;
235
 
#line 236 "maker-dialog.c"
236
 
#line 103 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
237
 
        self->_priv->widgetTable = g_hash_table_new_full(g_str_hash,g_str_equal,NULL,NULL);
238
 
#line 239 "maker-dialog.c"
239
 
#line 105 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
240
 
        self->_priv->notebookContentTable = g_hash_table_new_full(g_str_hash,g_str_equal,NULL,NULL);
241
 
#line 242 "maker-dialog.c"
242
 
#line 107 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
243
 
        self->_priv->widgetIds = g_string_chunk_new(STRING_BUFFER_SIZE_DEFAULT);
244
 
#line 245 "maker-dialog.c"
245
 
#line 109 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
246
 
        self->_priv->propList = g_ptr_array_new();
247
 
#line 248 "maker-dialog.c"
248
 
}
249
 
#undef __GOB_FUNCTION__
250
 
 
251
 
 
252
 
 
253
 
#line 120 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
254
 
MakerDialog * 
255
 
maker_dialog_new (void)
256
 
{
257
 
#line 258 "maker-dialog.c"
258
 
#define __GOB_FUNCTION__ "Maker:Dialog::new"
259
 
{
260
 
#line 120 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
261
 
        
262
 
        Self *self = GET_NEW;
263
 
        return self;
264
 
    }}
265
 
#line 266 "maker-dialog.c"
266
 
#undef __GOB_FUNCTION__
267
 
 
268
 
#line 125 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
269
 
MakerDialog * 
270
 
maker_dialog_new_full (const gchar * title, int notebook_pages, const gchar ** notebook_page_labels, int button_num, const gchar ** button_labels, GtkResponseType * button_responses)
271
 
{
272
 
#line 273 "maker-dialog.c"
273
 
#define __GOB_FUNCTION__ "Maker:Dialog::new_full"
274
 
{
275
 
#line 127 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
276
 
        
277
 
        Self *self = GET_NEW;
278
 
        GtkDialog *dialog=GTK_DIALOG(self);
279
 
        gtk_window_set_title(GTK_WINDOW(dialog),title);
280
 
        gtk_window_set_destroy_with_parent (GTK_WINDOW(dialog), TRUE);
281
 
        gtk_window_set_type_hint (GTK_WINDOW(dialog), GDK_WINDOW_TYPE_HINT_DIALOG);
282
 
 
283
 
        int i;
284
 
        for(i=0;i<button_num;i++){
285
 
            GtkWidget *button=gtk_dialog_add_button(dialog,button_labels[i],button_responses[i]);
286
 
            self_widget_register(self, button, button_labels[i], "button");
287
 
        }
288
 
 
289
 
        GtkWidget *dialog_vbox = GTK_DIALOG(dialog)->vbox;
290
 
        gtk_widget_show (dialog_vbox);
291
 
 
292
 
        if (notebook_pages>0){
293
 
            self->dialog_notebook = gtk_notebook_new();
294
 
            gtk_box_pack_start (GTK_BOX(dialog_vbox), self->dialog_notebook, TRUE, TRUE, 0);
295
 
            for (i=0;i<notebook_pages;i++){
296
 
                GtkWidget *label=gtk_label_new(_(notebook_page_labels[i]));
297
 
                self_widget_register(self, label, notebook_page_labels[i], "label");
298
 
                gtk_widget_show(label);
299
 
 
300
 
                GtkWidget *vbox=gtk_vbox_new(self->vbox_homogeneous,self->vbox_spacing);
301
 
                self_widget_register(self, vbox, notebook_page_labels[i], "vbox");
302
 
                gtk_widget_show(vbox);
303
 
                gtk_notebook_append_page (GTK_NOTEBOOK(self->dialog_notebook), vbox,label);
304
 
            }
305
 
        }
306
 
        return self;
307
 
    }}
308
 
#line 309 "maker-dialog.c"
309
 
#undef __GOB_FUNCTION__
310
 
 
311
 
#line 160 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
312
 
void 
313
 
maker_dialog_set_verbose_level (MakerDialog * self, gint level)
314
 
{
315
 
#line 316 "maker-dialog.c"
316
 
#define __GOB_FUNCTION__ "Maker:Dialog::set_verbose_level"
317
 
#line 160 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
318
 
        g_return_if_fail (self != NULL);
319
 
#line 160 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
320
 
        g_return_if_fail (MAKER_IS_DIALOG (self));
321
 
#line 322 "maker-dialog.c"
322
 
{
323
 
#line 160 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
324
 
        
325
 
        verboseLevel=level;
326
 
    }}
327
 
#line 328 "maker-dialog.c"
328
 
#undef __GOB_FUNCTION__
329
 
 
330
 
/**
331
 
 * maker_dialog_add_property_no_gui:
332
 
 * @self: A MakerDialog
333
 
 * @pSpec: A property spec to be added.
334
 
 * @user_data: user_data to be passed to callback functions.
335
 
 * @returns: A newly allocated PropertyContext.
336
 
 *
337
 
 * Add a property without GUI automation involved.
338
 
 **/
339
 
#line 173 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
340
 
PropertyContext * 
341
 
maker_dialog_add_property_no_gui (MakerDialog * self, PropertySpec * pSpec, gpointer user_data)
342
 
{
343
 
#line 344 "maker-dialog.c"
344
 
#define __GOB_FUNCTION__ "Maker:Dialog::add_property_no_gui"
345
 
#line 173 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
346
 
        g_return_val_if_fail (self != NULL, (PropertyContext * )0);
347
 
#line 173 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
348
 
        g_return_val_if_fail (MAKER_IS_DIALOG (self), (PropertyContext * )0);
349
 
#line 350 "maker-dialog.c"
350
 
{
351
 
#line 173 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
352
 
        
353
 
        G_DEBUG_MSG(2,"::add_property_no_gui(%s,-)",pSpec->key);
354
 
        PropertyContext *ctx=propertyContext_new(pSpec,user_data);
355
 
        g_ptr_array_add(self->_priv->propList,ctx);
356
 
        g_hash_table_insert(self->_priv->notebookContentTable, pSpec->key, pSpec->pageName);
357
 
        return ctx;
358
 
    }}
359
 
#line 360 "maker-dialog.c"
360
 
#undef __GOB_FUNCTION__
361
 
 
362
 
/**
363
 
 * maker_dialog_add_property:
364
 
 * @self: A MakerDialog
365
 
 * @pSpec: A property spec to be added.
366
 
 * @initValue: Initial value of the property.
367
 
 * @user_data: user_data to be passed to callback functions.
368
 
 * @returns: TRUE if the property adding succeed; FALSE otherwise.
369
 
 *
370
 
 * Add a property to the dialog and corresponding Gtk widget will also be
371
 
 * set.
372
 
 * If @initValue is not NULL, it will be the initial value of the widget.
373
 
 **/
374
 
#line 193 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
375
 
gboolean 
376
 
maker_dialog_add_property (MakerDialog * self, PropertySpec * pSpec, const gchar * initValue, gpointer user_data)
377
 
{
378
 
#line 379 "maker-dialog.c"
379
 
#define __GOB_FUNCTION__ "Maker:Dialog::add_property"
380
 
#line 193 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
381
 
        g_return_val_if_fail (self != NULL, (gboolean )0);
382
 
#line 193 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
383
 
        g_return_val_if_fail (MAKER_IS_DIALOG (self), (gboolean )0);
384
 
#line 385 "maker-dialog.c"
385
 
{
386
 
#line 193 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
387
 
        
388
 
        G_DEBUG_MSG(2,"::add_property(%s,%s,-)",pSpec->key,initValue);
389
 
 
390
 
        GtkWidget *vbox=self_get_base_vbox(self, pSpec->pageName);
391
 
        g_assert(vbox);
392
 
 
393
 
        GtkWidget *hbox=gtk_hbox_new(FALSE,self->hbox_spacing);
394
 
        self_widget_register(self, hbox, pSpec->key, "hbox");
395
 
        GtkWidget *label=gtk_label_new(_(pSpec->label));
396
 
        self_widget_register(self, label, pSpec->key, "label");
397
 
        if (pSpec->tooltip){
398
 
            gtk_widget_set_tooltip_text (label,_(pSpec->tooltip));
399
 
        }
400
 
        gtk_widget_show(label);
401
 
        gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0);
402
 
 
403
 
        GtkWidget *widget=NULL;
404
 
        GtkAdjustment *gAdjust=NULL;
405
 
        PropertyContext *ctx=self_add_property_no_gui(self,pSpec,user_data);
406
 
        if (!ctx){
407
 
            return FALSE;
408
 
        }
409
 
 
410
 
        switch(pSpec->valueType){
411
 
            case G_TYPE_BOOLEAN:
412
 
                widget = gtk_check_button_new();
413
 
                self_widget_register(self, widget, pSpec->key, NULL);
414
 
                gboolean bValue=FALSE;
415
 
                if(initValue){
416
 
                    bValue=atob(initValue);
417
 
                }else if (pSpec->defaultValue){
418
 
                    bValue=atob(pSpec->defaultValue);
419
 
                }
420
 
                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),bValue);
421
 
                if (pSpec->setFunc){
422
 
                    g_signal_connect(widget, "toggled", G_CALLBACK(on_toggleButton_toggled_wrap),ctx);
423
 
                }
424
 
                break;
425
 
            case G_TYPE_UINT:
426
 
            case G_TYPE_INT:
427
 
                 gAdjust = (GtkAdjustment *)gtk_adjustment_new (atoi(pSpec->defaultValue),
428
 
                             pSpec->min, pSpec->max, 1.0, 0.0, 0.0);
429
 
                 widget = gtk_spin_button_new (gAdjust, 1.0, 0);
430
 
                 self_widget_register(self, widget, pSpec->key, NULL);
431
 
 
432
 
                 if(initValue){
433
 
                     gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),atoi(initValue));
434
 
                 }else if (pSpec->defaultValue){
435
 
                     gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),atoi(pSpec->defaultValue));
436
 
                 }
437
 
 
438
 
                 if (pSpec->setFunc){
439
 
                     g_signal_connect(widget, "value-changed", G_CALLBACK(on_spinButton_value_changed_wrap),ctx);
440
 
                 }
441
 
                 break;
442
 
            case G_TYPE_STRING:
443
 
                if (pSpec->validValues){
444
 
                    GtkListStore *listStore=NULL;
445
 
 
446
 
                    if (pSpec->propertyFlags & MAKER_DIALOG_PROPERTY_FLAG_HAS_TRANSLATION){
447
 
                        listStore=gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
448
 
                    }else{
449
 
                        listStore=gtk_list_store_new (1, G_TYPE_STRING);
450
 
                    }
451
 
                    int i;
452
 
 
453
 
                    for(i=0;pSpec->validValues[i]!=NULL;i++){
454
 
                        /* Add new item*/
455
 
                        listStore_append(listStore, pSpec->validValues[i],
456
 
                                pSpec->translationContext,pSpec->propertyFlags);
457
 
                    }
458
 
                    int index=-1;
459
 
 
460
 
                    if (initValue){
461
 
                        index=listStore_find_string(listStore,initValue,
462
 
                                pSpec->translationContext,pSpec->propertyFlags);
463
 
                    }
464
 
 
465
 
                    if (index<0 && pSpec->defaultValue){
466
 
                        index=listStore_find_string(listStore,pSpec->defaultValue,
467
 
                                pSpec->translationContext,pSpec->propertyFlags);
468
 
                    }
469
 
 
470
 
                    if (pSpec->propertyFlags & MAKER_DIALOG_PROPERTY_FLAG_INEDITABLE){
471
 
                        widget=gtk_combo_box_new_with_model (GTK_TREE_MODEL(listStore));
472
 
                        GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
473
 
                        gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(widget), renderer, FALSE);
474
 
                        if (pSpec->propertyFlags & MAKER_DIALOG_PROPERTY_FLAG_HAS_TRANSLATION){
475
 
                            gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(widget), renderer,
476
 
                                    "text", 1,
477
 
                                    NULL);
478
 
                        }else{
479
 
                            gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(widget), renderer,
480
 
                                    "text", 0,
481
 
                                    NULL);
482
 
                        }
483
 
 
484
 
                    }else{
485
 
                        widget=gtk_combo_box_entry_new_with_model (GTK_TREE_MODEL(listStore),
486
 
                                (pSpec->propertyFlags & MAKER_DIALOG_PROPERTY_FLAG_HAS_TRANSLATION)? 1:0);
487
 
                    }
488
 
 
489
 
                    self_widget_register(self, widget, pSpec->key, NULL);
490
 
                    gtk_combo_box_set_active(GTK_COMBO_BOX(widget),index);
491
 
 
492
 
 
493
 
                    if (pSpec->setFunc){
494
 
                        g_signal_connect(widget, "changed", G_CALLBACK(on_comboBox_changed_wrap),ctx);
495
 
                    }
496
 
 
497
 
                }else{
498
 
                    widget=gtk_entry_new();
499
 
                    self_widget_register(self, widget, pSpec->key, NULL);
500
 
                    if (pSpec->max>=0){
501
 
                        gtk_entry_set_max_length(GTK_ENTRY(widget),pSpec->max);
502
 
                    }
503
 
 
504
 
                    const char *sValue=NULL;
505
 
 
506
 
                    if(initValue){
507
 
                        sValue=initValue;
508
 
                    }else if (pSpec->defaultValue){
509
 
                        sValue=pSpec->defaultValue;
510
 
                    }else{
511
 
                        sValue="";
512
 
                    }
513
 
                    gtk_entry_set_text(GTK_ENTRY(widget),sValue);
514
 
                    gtk_editable_set_editable (GTK_EDITABLE(widget),
515
 
                            !(pSpec->propertyFlags & MAKER_DIALOG_PROPERTY_FLAG_INEDITABLE));
516
 
 
517
 
                    if (pSpec->setFunc){
518
 
                        g_signal_connect(widget, "activate", G_CALLBACK(on_entry_activate_wrap),ctx);
519
 
                    }
520
 
                }
521
 
                break;
522
 
            default:
523
 
                break;
524
 
        }
525
 
        if (!widget){
526
 
            return FALSE;
527
 
        }
528
 
 
529
 
        gtk_box_pack_start (GTK_BOX(hbox), widget, FALSE, FALSE, 0);
530
 
        gtk_box_pack_start (GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
531
 
 
532
 
        return TRUE;
533
 
    }}
534
 
#line 535 "maker-dialog.c"
535
 
#undef __GOB_FUNCTION__
536
 
 
537
 
/**
538
 
 * maker_dialog_align_labels:
539
 
 * @self: A MakerDialog.
540
 
 * @pageName: Name of notebook page to be apply, can be NULL.
541
 
 * @xalign: x align of labels. 0.0f for LEFT, 0.5f for CENTER, 1.0f for RIGHT.
542
 
 * @yalign: y align of labels. 0.0f for TOP, 0.5f for CENTER, 1.0f for BOTTOM.
543
 
 *
544
 
 * Align labels for better dialog appearance.
545
 
 *
546
 
 * Labels that associate with value setting widget are stretched into same width.
547
 
 * If @pageName is not NULL, only the labels in the page are stretched,
548
 
 * otherwise, all labels will be stretched.
549
 
 *
550
 
 * Moreover, the horizontal and vertical alignment can set by @xalign and @yalign, respectively.
551
 
 **/
552
 
#line 356 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
553
 
void 
554
 
maker_dialog_align_labels (MakerDialog * self, const gchar * pageName, gfloat xalign, gfloat yalign)
555
 
{
556
 
#line 557 "maker-dialog.c"
557
 
#define __GOB_FUNCTION__ "Maker:Dialog::align_labels"
558
 
#line 356 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
559
 
        g_return_if_fail (self != NULL);
560
 
#line 356 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
561
 
        g_return_if_fail (MAKER_IS_DIALOG (self));
562
 
#line 563 "maker-dialog.c"
563
 
{
564
 
#line 356 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
565
 
        
566
 
        WidgetAlignment wAlignment;
567
 
        wAlignment.self=self;
568
 
        wAlignment.currentMaxWidth=0;
569
 
        wAlignment.pageName=pageName;
570
 
        wAlignment.xalign=xalign;
571
 
        wAlignment.yalign=yalign;
572
 
        g_hash_table_foreach(self->_priv->notebookContentTable,
573
 
                caculate_max_label_width_callback, (gpointer) &wAlignment);
574
 
        g_hash_table_foreach(self->_priv->notebookContentTable,
575
 
                set_label_width_callback, (gpointer) &wAlignment);
576
 
        gtk_widget_show_all(GTK_WIDGET(self));
577
 
    }}
578
 
#line 579 "maker-dialog.c"
579
 
#undef __GOB_FUNCTION__
580
 
 
581
 
#line 370 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
582
 
void 
583
 
maker_dialog_reload_property_value (MakerDialog * self, const gchar * key)
584
 
{
585
 
#line 586 "maker-dialog.c"
586
 
#define __GOB_FUNCTION__ "Maker:Dialog::reload_property_value"
587
 
#line 370 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
588
 
        g_return_if_fail (self != NULL);
589
 
#line 370 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
590
 
        g_return_if_fail (MAKER_IS_DIALOG (self));
591
 
#line 592 "maker-dialog.c"
592
 
{
593
 
#line 370 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
594
 
        
595
 
        gboolean boolValue;
596
 
        gint intValue;
597
 
        gint uintValue;
598
 
        const gchar *stringValue;
599
 
 
600
 
        PropertyContext *ctx=self_get_propertyContext_by_key(self,key);
601
 
        PropertySpec *pSpec=ctx->spec;
602
 
        GtkWidget *widget=self_get_widget_by_key(self,pSpec->key);
603
 
        GValue *gValue;
604
 
 
605
 
        if (pSpec->getFunc){
606
 
            gValue=pSpec->getFunc(ctx);
607
 
 
608
 
            switch(pSpec->valueType){
609
 
                case G_TYPE_BOOLEAN:
610
 
                    boolValue=g_value_get_boolean(gValue);
611
 
                    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),boolValue);
612
 
                    break;
613
 
                case G_TYPE_INT:
614
 
                    intValue=g_value_get_int(gValue);
615
 
                    gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),(gdouble) intValue);
616
 
                    break;
617
 
                case G_TYPE_UINT:
618
 
                    uintValue=g_value_get_uint(gValue);
619
 
                    gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),(gdouble) uintValue);
620
 
                    break;
621
 
                case G_TYPE_STRING:
622
 
                    stringValue=g_value_get_string(gValue);
623
 
                    if (pSpec->validValues){
624
 
                        int index=-1;
625
 
                        if (stringValue){
626
 
                            index=combo_find_string_index(GTK_COMBO_BOX(widget),stringValue,
627
 
                                    pSpec->translationContext,
628
 
                                    ctx->spec->propertyFlags);
629
 
                        }
630
 
                        if (index<0 && pSpec->defaultValue){
631
 
                            index=combo_find_string_index(GTK_COMBO_BOX(widget),pSpec->defaultValue,
632
 
                                    pSpec->translationContext,
633
 
                                    ctx->spec->propertyFlags);
634
 
                        }
635
 
                        gtk_combo_box_set_active(GTK_COMBO_BOX(widget),index);
636
 
 
637
 
                    }else{
638
 
                        gtk_entry_set_text(GTK_ENTRY(widget),stringValue);
639
 
                    }
640
 
                    break;
641
 
                default:
642
 
                    break;
643
 
            }
644
 
        }
645
 
    }}
646
 
#line 647 "maker-dialog.c"
647
 
#undef __GOB_FUNCTION__
648
 
 
649
 
/**
650
 
 * maker_dialog_write_gconf_schemas_file:
651
 
 * @self: A MakerDialog.
652
 
 * @filename: Filename for output.
653
 
 * @owner: Owner of the schemas.
654
 
 * @schemasHome: The "home direcory" of schemas.
655
 
 * @locales: Supported locales, use ';' as delimiter.
656
 
 * @returns: TRUE if succeed; FALSE otherwise.
657
 
 *
658
 
 * Output the parameters as GConf schemes file.
659
 
 **/
660
 
#line 434 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
661
 
gboolean 
662
 
maker_dialog_write_gconf_schemas_file (MakerDialog * self, const gchar * filename, const gchar * owner, const gchar * schemasHome, const gchar * locales)
663
 
{
664
 
#line 665 "maker-dialog.c"
665
 
#define __GOB_FUNCTION__ "Maker:Dialog::write_gconf_schemas_file"
666
 
#line 434 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
667
 
        g_return_val_if_fail (self != NULL, (gboolean )0);
668
 
#line 434 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
669
 
        g_return_val_if_fail (MAKER_IS_DIALOG (self), (gboolean )0);
670
 
#line 671 "maker-dialog.c"
671
 
{
672
 
#line 435 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
673
 
        
674
 
        G_DEBUG_MSG(2,"::output_gconf_schemes_file(%s)",filename);
675
 
        FILE *outF=fopen(filename,"w");
676
 
        if (outF==NULL){
677
 
            G_DEBUG_MSG(1,"::output_gconf_schemes_file(%s) file %s cannot be written!",
678
 
                    filename,filename);
679
 
            return FALSE;
680
 
        }
681
 
        xml_tags_write(outF,"gconfschemafile",XML_TAG_TYPE_BEGIN_ONLY,NULL,NULL);
682
 
        xml_tags_write(outF,"schemalist",XML_TAG_TYPE_BEGIN_ONLY,NULL,NULL);
683
 
        SchemasFileData sData;
684
 
        sData.schemasHome=schemasHome;
685
 
        sData.owner=owner;
686
 
        sData.locales=locales;
687
 
        sData.outF=outF;
688
 
        g_ptr_array_foreach(self->_priv->propList,ctx_write_callback,&sData);
689
 
        xml_tags_write(outF,"schemalist",XML_TAG_TYPE_END_ONLY,NULL,NULL);
690
 
        xml_tags_write(outF,"gconfschemafile",XML_TAG_TYPE_END_ONLY,NULL,NULL);
691
 
        if (fclose(outF))
692
 
            return FALSE;
693
 
        G_DEBUG_MSG(2,"::output_gconf_schemes_file(%s) ... done.",filename);
694
 
        return TRUE;
695
 
    }}
696
 
#line 697 "maker-dialog.c"
697
 
#undef __GOB_FUNCTION__
698
 
 
699
 
/**
700
 
 * maker_dialog_apply_widget_value:
701
 
 * @self: A MakerDialog.
702
 
 * @key: The key of a property.
703
 
 *
704
 
 * Apply the value shown in widget to the property.
705
 
 * Note that a set callback function is needed in PropertySpec to apply the value to property.
706
 
 *
707
 
 * @see_also: set_widget_value()
708
 
 **/
709
 
#line 469 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
710
 
void 
711
 
maker_dialog_apply_widget_value (MakerDialog * self, const gchar * key)
712
 
{
713
 
#line 714 "maker-dialog.c"
714
 
#define __GOB_FUNCTION__ "Maker:Dialog::apply_widget_value"
715
 
#line 469 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
716
 
        g_return_if_fail (self != NULL);
717
 
#line 469 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
718
 
        g_return_if_fail (MAKER_IS_DIALOG (self));
719
 
#line 720 "maker-dialog.c"
720
 
{
721
 
#line 469 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
722
 
        
723
 
        G_DEBUG_MSG(2,"::apply_widget_value(%s)",key);
724
 
        PropertyContext *ctx=self_get_propertyContext_by_key(self,key);
725
 
        if (!ctx){
726
 
            /* Not found */
727
 
            g_warning("%s: no such PropertyContext",key);
728
 
            return;
729
 
        }
730
 
        GValue gValue={0};
731
 
 
732
 
        self_get_widget_value(self,key,&gValue);
733
 
 
734
 
        if (ctx->spec->setFunc){
735
 
            ctx->spec->setFunc(ctx,&gValue);
736
 
        }
737
 
        g_value_unset(&gValue);
738
 
    }}
739
 
#line 740 "maker-dialog.c"
740
 
#undef __GOB_FUNCTION__
741
 
 
742
 
#line 488 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
743
 
GValue * 
744
 
maker_dialog_get_widget_value (MakerDialog * self, const gchar * key, GValue * gValue)
745
 
{
746
 
#line 747 "maker-dialog.c"
747
 
#define __GOB_FUNCTION__ "Maker:Dialog::get_widget_value"
748
 
#line 488 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
749
 
        g_return_val_if_fail (self != NULL, (GValue * )0);
750
 
#line 488 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
751
 
        g_return_val_if_fail (MAKER_IS_DIALOG (self), (GValue * )0);
752
 
#line 753 "maker-dialog.c"
753
 
{
754
 
#line 488 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
755
 
        
756
 
        G_DEBUG_MSG(2,"::get_widget_value(%s)",key);
757
 
        PropertyContext *ctx=self_get_propertyContext_by_key(self,key);
758
 
        if (!ctx){
759
 
            /* Not found */
760
 
            return NULL;
761
 
        }
762
 
        GtkWidget *widget=self_get_widget_by_key(self,key);
763
 
        if (ctx->spec->valueType!=G_TYPE_STRING){
764
 
            g_value_init(gValue,ctx->spec->valueType);
765
 
        }
766
 
        switch(ctx->spec->valueType){
767
 
            case G_TYPE_BOOLEAN:
768
 
                g_value_set_boolean(gValue, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(widget)));
769
 
                break;
770
 
            case G_TYPE_INT:
771
 
                g_value_set_int(gValue, (gint) gtk_spin_button_get_value (GTK_SPIN_BUTTON(widget)));
772
 
                break;
773
 
            case G_TYPE_UINT:
774
 
                g_value_set_uint(gValue, (guint) gtk_spin_button_get_value (GTK_SPIN_BUTTON(widget)));
775
 
                break;
776
 
            case G_TYPE_STRING:
777
 
                if (ctx->spec->validValues){
778
 
                    const char *str=combo_get_active_text (GTK_COMBO_BOX(widget),gValue);
779
 
                    G_DEBUG_MSG(3,"::get_widget_value(%s) %s",
780
 
                            key,str);
781
 
                }else{
782
 
                    g_value_set_string(gValue, gtk_entry_get_text (GTK_ENTRY(widget)));
783
 
                }
784
 
 
785
 
                break;
786
 
            default:
787
 
                break;
788
 
        }
789
 
        return gValue;
790
 
    }}
791
 
#line 792 "maker-dialog.c"
792
 
#undef __GOB_FUNCTION__
793
 
 
794
 
/**
795
 
 * maker_dialog_set_widget_value:
796
 
 * @self: A MakerDialog.
797
 
 * @key: The key of a property.
798
 
 * @value: Value to be shown in widget.
799
 
 *
800
 
 * Set value for widget display.
801
 
 * However, the property value is not set.
802
 
 * Use apply_widget_value() to do it.
803
 
 * @see_also: apply_widget_value()
804
 
 **/
805
 
#line 536 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
806
 
void 
807
 
maker_dialog_set_widget_value (MakerDialog * self, const gchar * key, GValue * value)
808
 
{
809
 
#line 810 "maker-dialog.c"
810
 
#define __GOB_FUNCTION__ "Maker:Dialog::set_widget_value"
811
 
#line 536 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
812
 
        g_return_if_fail (self != NULL);
813
 
#line 536 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
814
 
        g_return_if_fail (MAKER_IS_DIALOG (self));
815
 
#line 816 "maker-dialog.c"
816
 
{
817
 
#line 536 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
818
 
        
819
 
        int index;
820
 
        PropertyContext *ctx=self_get_propertyContext_by_key(self,key);
821
 
        if (!ctx){
822
 
            /* Not found */
823
 
            return;
824
 
        }
825
 
        GtkWidget *widget=self_get_widget_by_key(self,key);
826
 
        switch(ctx->spec->valueType){
827
 
            case G_TYPE_BOOLEAN:
828
 
                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(widget),g_value_get_boolean(value));
829
 
                break;
830
 
            case G_TYPE_INT:
831
 
                gtk_spin_button_set_value (GTK_SPIN_BUTTON(widget),(gdouble) g_value_get_int(value));
832
 
                break;
833
 
            case G_TYPE_UINT:
834
 
                gtk_spin_button_set_value (GTK_SPIN_BUTTON(widget),(gdouble) g_value_get_uint(value));
835
 
                break;
836
 
            case G_TYPE_STRING:
837
 
                if (ctx->spec->validValues){
838
 
                    const gchar *str=g_value_get_string(value);
839
 
                    index=combo_find_string_index(GTK_COMBO_BOX(widget),str,
840
 
                            ctx->spec->translationContext,ctx->spec->propertyFlags);
841
 
                    gtk_combo_box_set_active (GTK_COMBO_BOX(widget),index);
842
 
                }else{
843
 
                    g_value_set_string(value, gtk_entry_get_text (GTK_ENTRY(widget)));
844
 
                }
845
 
                break;
846
 
            default:
847
 
                break;
848
 
        }
849
 
    }}
850
 
#line 851 "maker-dialog.c"
851
 
#undef __GOB_FUNCTION__
852
 
 
853
 
#line 570 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
854
 
GtkWidget * 
855
 
maker_dialog_get_widget (MakerDialog * self, const gchar * widget_key, const gchar * widget_type)
856
 
{
857
 
#line 858 "maker-dialog.c"
858
 
#define __GOB_FUNCTION__ "Maker:Dialog::get_widget"
859
 
#line 570 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
860
 
        g_return_val_if_fail (self != NULL, (GtkWidget * )0);
861
 
#line 570 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
862
 
        g_return_val_if_fail (MAKER_IS_DIALOG (self), (GtkWidget * )0);
863
 
#line 864 "maker-dialog.c"
864
 
{
865
 
#line 571 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
866
 
        
867
 
        gchar buf[STRING_BUFFER_SIZE_DEFAULT];
868
 
        widget_get_id(buf, STRING_BUFFER_SIZE_DEFAULT, widget_key, widget_type);
869
 
        return self_get_widget_by_id(self, buf);
870
 
    }}
871
 
#line 872 "maker-dialog.c"
872
 
#undef __GOB_FUNCTION__
873
 
 
874
 
#line 577 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
875
 
GtkWidget * 
876
 
maker_dialog_get_widget_by_key (MakerDialog * self, const gchar * key)
877
 
{
878
 
#line 879 "maker-dialog.c"
879
 
#define __GOB_FUNCTION__ "Maker:Dialog::get_widget_by_key"
880
 
#line 577 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
881
 
        g_return_val_if_fail (self != NULL, (GtkWidget * )0);
882
 
#line 577 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
883
 
        g_return_val_if_fail (MAKER_IS_DIALOG (self), (GtkWidget * )0);
884
 
#line 885 "maker-dialog.c"
885
 
{
886
 
#line 577 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
887
 
        
888
 
        return self_get_widget(self,key,NULL);
889
 
    }}
890
 
#line 891 "maker-dialog.c"
891
 
#undef __GOB_FUNCTION__
892
 
 
893
 
#line 581 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
894
 
GtkWidget * 
895
 
maker_dialog_get_widget_by_id (MakerDialog * self, const gchar * id)
896
 
{
897
 
#line 898 "maker-dialog.c"
898
 
#define __GOB_FUNCTION__ "Maker:Dialog::get_widget_by_id"
899
 
#line 581 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
900
 
        g_return_val_if_fail (self != NULL, (GtkWidget * )0);
901
 
#line 581 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
902
 
        g_return_val_if_fail (MAKER_IS_DIALOG (self), (GtkWidget * )0);
903
 
#line 904 "maker-dialog.c"
904
 
{
905
 
#line 581 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
906
 
        
907
 
        G_DEBUG_MSG(3,"*** get_widget_by_id(%s)",id);
908
 
        return (GtkWidget *) g_hash_table_lookup (self->_priv->widgetTable, id);
909
 
    }}
910
 
#line 911 "maker-dialog.c"
911
 
#undef __GOB_FUNCTION__
912
 
 
913
 
#line 586 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
914
 
PropertyContext * 
915
 
maker_dialog_get_propertyContext_by_key (MakerDialog * self, const gchar * key)
916
 
{
917
 
#line 918 "maker-dialog.c"
918
 
#define __GOB_FUNCTION__ "Maker:Dialog::get_propertyContext_by_key"
919
 
#line 586 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
920
 
        g_return_val_if_fail (self != NULL, (PropertyContext * )0);
921
 
#line 586 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
922
 
        g_return_val_if_fail (MAKER_IS_DIALOG (self), (PropertyContext * )0);
923
 
#line 924 "maker-dialog.c"
924
 
{
925
 
#line 586 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
926
 
        
927
 
        int i=0;
928
 
        PropertyContext *ctx=NULL;
929
 
        for(i=0; i<self->_priv->propList->len;i++){
930
 
            ctx=g_ptr_array_index(self->_priv->propList,i);
931
 
            if (strcmp(ctx->spec->key,key)==0){
932
 
                break;
933
 
            }
934
 
        }
935
 
        if (i>=self->_priv->propList->len){
936
 
            /* Not found */
937
 
            return NULL;
938
 
        }
939
 
        return ctx;
940
 
    }}
941
 
#line 942 "maker-dialog.c"
942
 
#undef __GOB_FUNCTION__
943
 
 
944
 
#line 603 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
945
 
GtkWidget * 
946
 
maker_dialog_get_base_vbox (MakerDialog * self, const gchar * notebook_page_label)
947
 
{
948
 
#line 949 "maker-dialog.c"
949
 
#define __GOB_FUNCTION__ "Maker:Dialog::get_base_vbox"
950
 
#line 603 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
951
 
        g_return_val_if_fail (self != NULL, (GtkWidget * )0);
952
 
#line 603 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
953
 
        g_return_val_if_fail (MAKER_IS_DIALOG (self), (GtkWidget * )0);
954
 
#line 955 "maker-dialog.c"
955
 
{
956
 
#line 603 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
957
 
        
958
 
        gchar buf[STRING_BUFFER_SIZE_DEFAULT];
959
 
        GtkWidget *ret;
960
 
        if (notebook_page_label){
961
 
            widget_get_id(buf, STRING_BUFFER_SIZE_DEFAULT, notebook_page_label, "vbox");
962
 
            ret=self_get_widget(self, notebook_page_label, "vbox");
963
 
        }else{
964
 
            ret=GTK_DIALOG(self)->vbox;
965
 
        }
966
 
        if (!ret){
967
 
            ret=GTK_DIALOG(self)->vbox;
968
 
        }
969
 
        return ret;
970
 
    }}
971
 
#line 972 "maker-dialog.c"
972
 
#undef __GOB_FUNCTION__
973
 
 
974
 
#line 619 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
975
 
static void 
976
 
maker_dialog_widget_register (MakerDialog * self, GtkWidget * widget, const gchar * widget_label, const gchar * widget_type)
977
 
{
978
 
#line 979 "maker-dialog.c"
979
 
#define __GOB_FUNCTION__ "Maker:Dialog::widget_register"
980
 
#line 619 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
981
 
        g_return_if_fail (self != NULL);
982
 
#line 619 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
983
 
        g_return_if_fail (MAKER_IS_DIALOG (self));
984
 
#line 985 "maker-dialog.c"
985
 
{
986
 
#line 620 "/home/dchen/ibus-chewing/src/MakerDialog.gob"
987
 
        
988
 
        gchar buf[STRING_BUFFER_SIZE_DEFAULT];
989
 
        widget_get_id(buf, STRING_BUFFER_SIZE_DEFAULT, widget_label, widget_type);
990
 
        gchar *chunk_ret=g_string_chunk_insert(self->_priv->widgetIds,buf);
991
 
        g_hash_table_insert(self->_priv->widgetTable, chunk_ret,widget);
992
 
        G_DEBUG_MSG(3,"*** widget_register(-,%s,%s) widget registered as %s",
993
 
                widget_label,(widget_type)? (widget_type) : "", chunk_ret);
994
 
    }}
995
 
#line 996 "maker-dialog.c"
996
 
#undef __GOB_FUNCTION__