static WIDGET * notebook_endprop_get_widget(NotebookProperty *prop, PropDialog *dialog) { prop_dialog_container_pop(dialog); /* the page */ prop_dialog_container_pop(dialog); /* the notebook */ return NULL; }
static WIDGET * multicol_endprop_get_widget(MulticolProperty *prop, PropDialog *dialog) { prop_dialog_container_pop(dialog); /* the column */ prop_dialog_container_pop(dialog); /* the multicol */ return NULL; }
static void prop_dialog_add_properties(PropDialog *dialog, GPtrArray *props) { guint i; gboolean scrollable = (props->len > 16); if (scrollable) { GtkWidget *swin = gtk_scrolled_window_new (NULL, NULL); GtkWidget *vbox = gtk_vbox_new(FALSE,2); gtk_box_pack_start(GTK_BOX (dialog->widget), swin, TRUE, TRUE, 0); gtk_widget_show (swin); gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (swin), vbox); gtk_viewport_set_shadow_type(GTK_VIEWPORT(gtk_bin_get_child(GTK_BIN(swin))), GTK_SHADOW_NONE); gtk_widget_show (vbox); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); prop_dialog_container_push (dialog, swin); prop_dialog_container_push (dialog, vbox); } for (i = 0; i < props->len; i++) { Property *prop = (Property*)g_ptr_array_index(props,i); prop_dialog_add_property(dialog, prop); } if (scrollable) { GtkRequisition requisition; GtkWidget *vbox = prop_dialog_container_pop(dialog); GtkWidget *swin = prop_dialog_container_pop(dialog); GdkScreen *screen = gtk_widget_get_screen(swin); gint sheight = screen ? (2 * gdk_screen_get_height(screen)) / 3 : 400; gtk_widget_size_request (vbox, &requisition); /* I'd say default size calculation for scrollable is quite broken */ gtk_widget_set_size_request (swin, -1, requisition.height > sheight ? sheight : requisition.height); } }
static WIDGET * multicol_columnprop_get_widget(MulticolProperty *prop, PropDialog *dialog) { GtkWidget *col = gtk_vbox_new(FALSE,1); gtk_container_set_border_width (GTK_CONTAINER(col), 2); gtk_widget_show(col); prop_dialog_container_pop(dialog); /* NULL or the previous column */ gtk_box_pack_start(GTK_BOX(dialog->lastcont),col,TRUE,TRUE,0); prop_dialog_add_raw(dialog,NULL); /* to reset the internal table system */ prop_dialog_container_push(dialog,col); return NULL; }
static WIDGET * notebook_pageprop_get_widget(NotebookProperty *prop, PropDialog *dialog) { GtkWidget *page = gtk_vbox_new(FALSE,1); GtkWidget *label = gtk_label_new(_(prop->common.descr->description)); gtk_container_set_border_width (GTK_CONTAINER(page), 2); gtk_widget_show(page); gtk_widget_show(label); prop_dialog_container_pop(dialog); /* NULL or the previous page */ gtk_notebook_append_page(GTK_NOTEBOOK(dialog->lastcont),page,label); prop_dialog_add_raw(dialog,NULL); /* to reset the internal table system */ prop_dialog_container_push(dialog,page); return NULL; }
static WIDGET * frame_endprop_get_widget(FrameProperty *prop, PropDialog *dialog) { prop_dialog_container_pop(dialog); return NULL; }