int main(int argc, char *argv[]) { if (uim_init() < 0) { fprintf(stderr, "uim_init() failed.\n"); return -1; } if (uim_custom_enable()) { char **primary_groups, **grp; primary_groups = uim_custom_primary_groups(); for (grp = primary_groups; *grp; grp++) { dump_group(*grp); } uim_custom_symbol_list_free(primary_groups); } else { fprintf(stderr, "uim_custom_enable() failed.\n"); uim_quit(); return -1; } uim_quit(); return 0; }
void UimPrefDialog::createGroupWidgets() { char **primary_groups = uim_custom_primary_groups(); char **grp = 0; for( grp = primary_groups; *grp; grp++ ) { struct uim_custom_group *group = uim_custom_group_get( *grp ); if( group == 0 ) continue; /* insert item in uim's order */ m_groupListView->addTopLevelItem( new QTreeWidgetItem( QStringList() << _FU8(group->label) ) ); GroupPageWidget *w = new GroupPageWidget( m_groupWidgetStack, *grp ); if ( grp == primary_groups ) w->setupWidgets(); connect( w, SIGNAL(customValueChanged()), this, SLOT(slotCustomValueChanged()) ); m_groupWidgetsDict.insert( _FU8(group->label), w ); m_groupWidgetStack->addWidget( w ); uim_custom_group_free( group ); } uim_custom_symbol_list_free( primary_groups ); m_rightSideWidget->setWidget( m_groupWidgetStack ); }
static GtkWidget * create_pref_treeview(void) { GtkTreeStore *tree_store; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeIter iter; char **primary_groups, **grp; GtkTreeSelection *selection; GtkTreePath *first_path; tree_store = gtk_tree_store_new (NUM_COLUMNS, G_TYPE_STRING, GTK_TYPE_WIDGET, G_TYPE_STRING); pref_tree_view = gtk_tree_view_new(); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(_("Group"), renderer, "text", GROUP_COLUMN, (const gchar *)NULL); gtk_tree_view_column_set_sort_column_id(column, 0); gtk_tree_view_append_column(GTK_TREE_VIEW(pref_tree_view), column); primary_groups = uim_custom_primary_groups(); for (grp = primary_groups; *grp; grp++) { struct uim_custom_group *group = uim_custom_group_get(*grp); gtk_tree_store_append (tree_store, &iter, NULL/* parent iter */); /* only set the widget of the first row for now */ if (grp == primary_groups) { gtk_tree_store_set (tree_store, &iter, GROUP_COLUMN, group->label, GROUP_WIDGET, create_group_widget(*grp), GROUP_SYM, *grp, -1); } else { gtk_tree_store_set (tree_store, &iter, GROUP_COLUMN, group->label, GROUP_WIDGET, NULL, GROUP_SYM, *grp, -1); } uim_custom_group_free(group); } uim_custom_symbol_list_free( primary_groups ); gtk_tree_view_set_model (GTK_TREE_VIEW(pref_tree_view), GTK_TREE_MODEL(tree_store)); g_object_unref (tree_store); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW(pref_tree_view), TRUE); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (pref_tree_view)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); g_signal_connect (G_OBJECT(selection), "changed", G_CALLBACK(pref_tree_selection_changed), NULL); first_path = gtk_tree_path_new_from_indices (0, -1); gtk_tree_view_set_cursor(GTK_TREE_VIEW(pref_tree_view), first_path, NULL, FALSE); return pref_tree_view; }