~ubuntu-branches/ubuntu/maverick/uim/maverick

« back to all changes in this revision

Viewing changes to helper/pref-gtk.c

  • Committer: Bazaar Package Importer
  • Author(s): Masahito Omote
  • Date: 2009-03-01 12:57:00 UTC
  • mfrom: (1.1.10 upstream)
  • Revision ID: james.westby@ubuntu.com-20090301125700-0ykjdq0zgj55e3n3
Tags: 1:1.5.5-1
New upstream release and final upload by current maintainter.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
2
 
3
 
  Copyright (c) 2005-2008 uim Project http://code.google.com/p/uim/
 
3
  Copyright (c) 2005-2009 uim Project http://code.google.com/p/uim/
4
4
 
5
5
  All rights reserved.
6
6
 
62
62
 
63
63
enum
64
64
{
65
 
  GROUP_COLUMN=0,
66
 
  GROUP_WIDGET=1,
 
65
  GROUP_COLUMN = 0,
 
66
  GROUP_WIDGET = 1,
 
67
  GROUP_SYM = 2,
67
68
  NUM_COLUMNS
68
69
};
69
70
 
128
129
  GtkTreeStore *store;
129
130
  GtkTreeIter iter;
130
131
  GtkTreeModel *model;
131
 
  char *group_name;
 
132
  char *group_name, *group_sym;
132
133
  GtkWidget *group_widget;
133
134
 
134
135
/*
161
162
  gtk_tree_model_get(model, &iter,
162
163
                     GROUP_COLUMN, &group_name,
163
164
                     GROUP_WIDGET, &group_widget,
 
165
                     GROUP_SYM, &group_sym,
164
166
                     -1);
165
167
 
166
168
  if (group_name == NULL)
167
169
    return TRUE;
168
170
 
 
171
  if (group_widget == NULL) {
 
172
    group_widget = create_group_widget(group_sym);
 
173
    gtk_tree_store_set(store, &iter, GROUP_WIDGET, group_widget, -1);
 
174
  }
 
175
 
169
176
  /* hide current selected group's widget */
170
177
  if (current_group_widget)
171
178
    gtk_widget_hide(current_group_widget);
180
187
  current_group_widget = group_widget;
181
188
 
182
189
  free(group_name);
 
190
  free(group_sym);
183
191
  return TRUE;
184
192
}
185
193
 
231
239
  }
232
240
}
233
241
 
 
242
static gboolean
 
243
key_press_cb(GtkWidget *widget, GdkEventKey *event)
 
244
{
 
245
  if (event->keyval == GDK_Escape) {
 
246
    quit_confirm();
 
247
    return TRUE;
 
248
  }
 
249
 
 
250
  return FALSE;
 
251
}
 
252
 
234
253
static gint
235
254
delete_event_cb(GtkWidget *widget, gpointer data)
236
255
{
250
269
  GtkTreePath *first_path;
251
270
  tree_store = gtk_tree_store_new (NUM_COLUMNS,
252
271
                                   G_TYPE_STRING,
253
 
                                   GTK_TYPE_WIDGET);
 
272
                                   GTK_TYPE_WIDGET,
 
273
                                   G_TYPE_STRING);
254
274
 
255
275
  pref_tree_view = gtk_tree_view_new();
256
276
 
266
286
  for (grp = primary_groups; *grp; grp++) {
267
287
    struct uim_custom_group *group = uim_custom_group_get(*grp);
268
288
    gtk_tree_store_append (tree_store, &iter, NULL/* parent iter */);
269
 
    gtk_tree_store_set (tree_store, &iter,
270
 
                        GROUP_COLUMN, group->label,
271
 
                        GROUP_WIDGET, create_group_widget(*grp),
272
 
                        -1);
 
289
    /* only set the widget of the first row for now */
 
290
    if (grp == primary_groups) {
 
291
      gtk_tree_store_set (tree_store, &iter,
 
292
                          GROUP_COLUMN, group->label,
 
293
                          GROUP_WIDGET, create_group_widget(*grp),
 
294
                          GROUP_SYM, *grp,
 
295
                          -1);
 
296
    } else {
 
297
      gtk_tree_store_set (tree_store, &iter,
 
298
                          GROUP_COLUMN, group->label,
 
299
                          GROUP_WIDGET, NULL,
 
300
                          GROUP_SYM, *grp,
 
301
                          -1);
 
302
    }
273
303
    uim_custom_group_free(group);
274
304
  }
275
305
  uim_custom_symbol_list_free( primary_groups );
498
528
 
499
529
  g_signal_connect(G_OBJECT (window), "delete_event",
500
530
                   G_CALLBACK (delete_event_cb), NULL);
 
531
  g_signal_connect(G_OBJECT (window), "key_press_event",
 
532
                   G_CALLBACK (key_press_cb), NULL);
501
533
 
502
534
 
503
535
  pref_hbox = gtk_hbox_new(FALSE, 8);