int clip_GTK_COMBOBOXSETROWSPANCOLUMN(ClipMachine * cm) { C_widget *ccmb = _fetch_cw_arg(cm); gint row_span = _clip_parni(cm,2); CHECKCWID(ccmb,GTK_IS_COMBO_BOX); CHECKOPT(2, NUMERIC_t); gtk_combo_box_set_row_span_column(GTK_COMBO_BOX(ccmb->widget), row_span); return 0; err: return 1; }
//! mengambil combo box pilihan id static GtkWidget *modifGetPilihanId(GtkWidget *bagian){ gboolean status = FALSE; GtkWidget *dialog , *content_area; GtkWidget *label1; GtkWidget *table; dialog = gtk_dialog_new(); table = gtk_table_new(1, 1, FALSE); // content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); char *str = "<b>Id</b>"; label1 = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(label1), str); gtk_table_attach(GTK_TABLE(table), label1, 0, 1, 0, 1, GTK_FILL | GTK_SHRINK, GTK_FILL | GTK_SHRINK, 5, 5); //! isinya combobox GtkListStore *store; GtkTreeIter iter; GtkCellRenderer *cell; store = gtk_list_store_new ( 1, G_TYPE_STRING ); GValueArray* has = databaseGetDatasFromDb("select id from isi ", NULL , &status); gint i; for(i=0;i<has->n_values;i++){ GValue *ii = g_value_array_get_nth (has ,i ); gchar *tmp = g_strdup_printf ("%i", g_value_get_int(ii) ); gtk_list_store_append( store, &iter); gtk_list_store_set( store, &iter, 0, tmp, -1 ); //! free g_free(tmp); } // GtkWidget* bagian = gtk_combo_box_new_with_model( GTK_TREE_MODEL( store ) ); // bagian = gtk_combo_box_new_with_model( GTK_TREE_MODEL( store ) ); gtk_combo_box_set_model ( (GtkComboBox *) bagian,(GtkTreeModel *)store); gtk_combo_box_set_active( (GtkComboBox *) bagian,0); cell = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start( GTK_CELL_LAYOUT( bagian ), cell, TRUE ); gtk_cell_layout_set_attributes( GTK_CELL_LAYOUT( bagian ), cell, "text", 0, NULL ); gtk_combo_box_set_row_span_column(bagian,0); gtk_table_attach(GTK_TABLE(table), bagian , 1, 2 , 0, 1, GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_SHRINK, 5, 5); gtk_window_set_default_size(GTK_WINDOW(dialog), 250, 100); gtk_container_add (GTK_CONTAINER (content_area), table ); modifAddButton(dialog,GTK_RESPONSE_CANCEL); gchar *tmp = g_strdup_printf ("Pilih Id - %s", globalGetAppName()); gtk_window_set_title(GTK_WINDOW(dialog), tmp); gtk_dialog_set_has_separator(dialog,TRUE); // data = bagian; gtk_dialog_set_has_separator(dialog,TRUE); gtk_window_set_modal( GTK_WINDOW( dialog ), TRUE ); gtk_window_set_transient_for( GTK_WINDOW( dialog ),GTK_WINDOW( globalGetParent() ) ); //! free g_value_array_free (has); g_object_unref( G_OBJECT( store ) ); return dialog; }
static GtkWidget * create_combo_box_grid_demo (void) { GtkWidget *combo; GtkTreeIter iter; GdkPixbuf *pixbuf; GtkCellRenderer *cell = gtk_cell_renderer_pixbuf_new (); GtkListStore *store; store = gtk_list_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_INT, G_TYPE_INT); /* first row */ pixbuf = create_color_pixbuf ("red"); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, pixbuf, 1, 1, /* row span */ 2, 1, /* column span */ -1); g_object_unref (pixbuf); pixbuf = create_color_pixbuf ("green"); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, pixbuf, 1, 1, 2, 1, -1); g_object_unref (pixbuf); pixbuf = create_color_pixbuf ("blue"); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, pixbuf, 1, 1, 2, 1, -1); g_object_unref (pixbuf); /* second row */ pixbuf = create_color_pixbuf ("yellow"); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, pixbuf, 1, 1, 2, 2, /* Span 2 columns */ -1); g_object_unref (pixbuf); pixbuf = create_color_pixbuf ("black"); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, pixbuf, 1, 2, /* Span 2 rows */ 2, 1, -1); g_object_unref (pixbuf); /* third row */ pixbuf = create_color_pixbuf ("gray"); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, pixbuf, 1, 1, 2, 1, -1); g_object_unref (pixbuf); pixbuf = create_color_pixbuf ("magenta"); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, pixbuf, 1, 1, 2, 1, -1); g_object_unref (pixbuf); /* Create ComboBox after model to avoid gtk_menu_attach() warnings(?) */ combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store)); g_object_unref (store); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), cell, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), cell, "pixbuf", 0, NULL); /* Set wrap-width != 0 to enforce grid mode */ gtk_combo_box_set_wrap_width (GTK_COMBO_BOX (combo), 3); gtk_combo_box_set_row_span_column (GTK_COMBO_BOX (combo), 1); gtk_combo_box_set_column_span_column (GTK_COMBO_BOX (combo), 2); gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); return combo; }