-
- }
- if (ctrl->generic.label) {
- GtkWidget *label, *container;
-
- label = gtk_label_new(ctrl->generic.label);
-
- container = columns_new(4);
- if (ctrl->listbox.percentwidth == 100) {
- columns_add(COLUMNS(container), label, 0, 1);
- columns_force_left_align(COLUMNS(container), label);
- columns_add(COLUMNS(container), w, 0, 1);
- } else {
- gint percentages[2];
- percentages[1] = ctrl->listbox.percentwidth;
- percentages[0] = 100 - ctrl->listbox.percentwidth;
- columns_set_cols(COLUMNS(container), 2, percentages);
- columns_add(COLUMNS(container), label, 0, 1);
- columns_force_left_align(COLUMNS(container), label);
- columns_add(COLUMNS(container), w, 1, 1);
- }
- gtk_widget_show(label);
- gtk_widget_show(w);
- shortcut_add(scs, label, ctrl->listbox.shortcut,
- SHORTCUT_UCTRL, uc);
- w = container;
- uc->label = label;
- }
-
-#else /* !GTK_CHECK_VERSION(2,0,0) */
- /*
- * GTK 2 list box setup.
- */
- /*
- * First construct the list data store, with the right
- * number of columns.
- */
- {
- GType *types;
- int i;
- int cols;
-
- cols = ctrl->listbox.ncols;
- cols = cols ? cols : 1;
- types = snewn(1 + cols, GType);
-
- types[0] = G_TYPE_INT;
- for (i = 0; i < cols; i++)
- types[i+1] = G_TYPE_STRING;
-
- uc->listmodel = gtk_list_store_newv(1 + cols, types);
-
- sfree(types);
- }
-
- /*
- * Drop-down lists are done completely differently.
- */
- if (ctrl->listbox.height == 0) {
- GtkCellRenderer *cr;
-
- /*
- * Create a non-editable GtkComboBox (that is, not
- * its subclass GtkComboBoxEntry).
- */
- w = gtk_combo_box_new_with_model
- (GTK_TREE_MODEL(uc->listmodel));
- uc->combo = w;
-
- /*
- * Tell it how to render a list item (i.e. which
- * column to look at in the list model).
- */
- cr = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(w), cr, TRUE);
- gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(w), cr,
- "text", 1, NULL);
-