use mnemonic names for the columns in the list storage
[simple-launcher] / sla-list.h
index 8944598..7f93552 100644 (file)
@@ -1,6 +1,6 @@
 // This file is a part of Simple Launcher
 //
-// Copyright (C) 2006, Mikhail Sobolev
+// Copyright (C) 2006, 2007, Mikhail Sobolev
 //
 // Simple Launcher is free software; you can redistribute it and/or modify it
 // under the terms of the GNU General Public License version 2 as published by
 
 #include <gtk/gtkliststore.h>
 #include <gtk/gtktreeview.h>
+#include <gtk/gtkbutton.h>
+#include <gtk/gtkcellrenderertoggle.h>
+
+#include "launcher-item.h"
 
 class SLAList {
 public:
-  SLAList(int);
+  SLAList(int, LauncherItems&);
  ~SLAList();
 
-  void addItem(GdkPixbuf *pixbuf, const char *name, bool active);
-
   GtkWidget *getWidget() { return myWidget; }
 
 private:
+  static void _selectionChanged(GtkTreeSelection *, gpointer);
+
+         void selectionChanged(GtkTreeSelection *);
+         void kickIt(GtkTreeIter *);
+
+  static void _renderText(GtkTreeViewColumn *column, GtkCellRenderer *cell, GtkTreeModel *model, GtkTreeIter *iter, gpointer self);
+  static void _renderBool(GtkTreeViewColumn *column, GtkCellRenderer *cell, GtkTreeModel *model, GtkTreeIter *iter, gpointer self);
+  static void _moveUp(GtkButton *, void *);
+  static void _moveDown(GtkButton *, void *);
+  static void _toggleBool(GtkCellRendererToggle *, const gchar *, void *);
+
+  void renderText(GtkTreeViewColumn *column, GtkCellRenderer *cell, GtkTreeModel *model, GtkTreeIter *iter);
+  void renderBool(GtkTreeViewColumn *column, GtkCellRenderer *cell, GtkTreeModel *model, GtkTreeIter *iter);
+  void moveUp(GtkButton *);
+  void moveDown(GtkButton *);
+  void toggleBool(GtkCellRendererToggle *, const gchar *);
+
+  void swap(GtkTreeIter& a, GtkTreeIter& b);
+
+private:
   GtkWidget *myWidget;
   GtkListStore *myStore;
   GtkTreeView *myView;
+  GtkTreeSelection *mySelection;
+
+  GtkTreeIter *myLastSelection;
+
+  LauncherItems& myItems;
 };
 
 #endif