/* create_config_store() Create a configuration store and its descendants or die. The configuration store holds the user-specified configuration derived from the command line. */ void create_config_store( struct config **const out // out deref ) { struct config *config = NULL; FAIL_IF( !out ); FAIL_IF( *out ); /* allocate a config store */ config = must_calloc( 1, sizeof( *config ) ); /* allocate the list store for the linked list of desktops to filter */ create_list_store( &config->desklist ); /* allocate the list store for the linked list of hooks to filter */ create_list_store( &config->hooklist ); /* allocate the list store for the linked list of programs to filter */ create_list_store( &config->proglist ); /* allocate the list store for the linked list of test parameters */ create_list_store( &config->testlist ); *out = config; return; }
static GtkWidget * create_tree (gboolean rtl) { GtkWidget *sw; GtkWidget *treeview; GtkListStore *list_store; GtkTreeViewColumn *column; GtkCellRenderer *renderer; GdkPixbuf *pixbuf; sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_IN); gtk_widget_set_direction (sw, rtl ? GTK_TEXT_DIR_RTL : GTK_TEXT_DIR_LTR); list_store = create_list_store (); treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (list_store)); gtk_widget_set_direction (treeview, rtl ? GTK_TEXT_DIR_RTL : GTK_TEXT_DIR_LTR); gtk_container_add (GTK_CONTAINER (sw), treeview); /* Line number */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("#", renderer, "text", COL_LINE_NUM, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); /* Description */ renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "font", "monospace", NULL); column = gtk_tree_view_column_new_with_attributes ("Description", renderer, "text", 0, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); /* Test text */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("Test", renderer, "text", 1, "xpad", 2, "ypad", 3, "xalign", 4, "yalign", 5, "sensitive", 6, "width", 7, "height", 8, "width_chars", 9, "wrap_width", 10, "wrap_mode", 11, "single_paragraph_mode", 12, "ellipsize", 13, "alignment", 14, "cell_background", 15, NULL); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); /* Empty column */ pixbuf = gdk_pixbuf_new_from_file ("apple-red.png", NULL); renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "pixbuf", pixbuf, "xpad", 10, "ypad", 10, NULL); column = gtk_tree_view_column_new_with_attributes ("Empty", renderer, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); return sw; }