started implementation of the settings dialog list
[simple-launcher] / sla-list.cc
1 // This file is a part of Simple Launcher
2 //
3 // Copyright (C) 2006, Mikhail Sobolev
4 //
5 // Simple Launcher is free software; you can redistribute it and/or modify it
6 // under the terms of the GNU General Public License version 2 as published by
7 // the Free Software Foundation.
8 //
9 // This program is distributed in the hope that it will be useful, but WITHOUT
10 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12 // more details.
13 //
14 // You should have received a copy of the GNU General Public License along with
15 // this program; if not, write to the Free Software Foundation, Inc., 51
16 // Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
17
18 #include <gtk/gtkscrolledwindow.h>
19 #include <gtk/gtkcellrendererpixbuf.h>
20 #include <gtk/gtkcellrenderertext.h>
21 #include <gtk/gtkcellrenderertoggle.h>
22
23 #include "sla-list.h"
24
25 SLAList::SLAList(int icon_size): myWidget(0), myStore(0), myView(0) {
26   GtkTreeViewColumn *column;
27   GtkCellRenderer *renderer;
28
29   myStore = gtk_list_store_new(3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_BOOLEAN);
30   myView = GTK_TREE_VIEW(gtk_tree_view_new_with_model(GTK_TREE_MODEL(myStore)));
31
32   gtk_tree_view_set_headers_visible(myView, FALSE);
33
34   renderer = gtk_cell_renderer_pixbuf_new();
35   g_object_set(renderer, "yalign", 0.0, 0);
36   gtk_cell_renderer_set_fixed_size(renderer, icon_size+4, -1);
37   column = GTK_TREE_VIEW_COLUMN(gtk_tree_view_column_new_with_attributes("", renderer, "pixbuf", 0, 0));
38
39   gtk_tree_view_insert_column(myView, column, -1);
40
41   renderer = gtk_cell_renderer_text_new();
42   g_object_set(renderer, "yalign", 0.0, 0);
43   column = GTK_TREE_VIEW_COLUMN(gtk_tree_view_column_new_with_attributes("", renderer, "text", 1, 0));
44   gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
45   gtk_tree_view_column_set_expand(column, TRUE);
46
47   gtk_tree_view_insert_column(myView, column, -1);
48
49   renderer = gtk_cell_renderer_toggle_new();
50   column = GTK_TREE_VIEW_COLUMN(gtk_tree_view_column_new_with_attributes("", renderer, "active", 2, 0));
51
52   gtk_tree_view_insert_column(myView, column, -1);
53
54   myWidget = gtk_scrolled_window_new(0, 0);
55
56   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(myWidget), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
57   gtk_container_add(GTK_CONTAINER(myWidget), GTK_WIDGET(myView));
58 }
59
60 void SLAList::addItem(GdkPixbuf *pixbuf, const char *name, bool active) {
61   GtkTreeIter iter;
62   
63   gtk_list_store_append(myStore, &iter);
64
65   gtk_list_store_set(myStore, &iter, 0, pixbuf, 1, name, 2, active, -1);
66 }
67
68 // vim:ts=2:sw=2:et