make move up/down buttons to use stock images onlyl, without labels
[simple-launcher] / simple-launcher.cc
index b533a6d..82eacac 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "launcher-item.h"
 #include "sla-list.h"
+#include "launchable-item.h"
 
 #define SL_APPLET_DBUS_NAME  "simple-launcher"
 #define SL_APPLET_VERSION    "0.0"
 #define SL_APPLET_BORDER_SIZE  14
 #define SL_APPLET_CANVAS_SIZE  (SL_APPLET_BORDER_SIZE+SL_APPLET_BORDER_SIZE)
 
-class LaunchableItem {
-public:
-  LaunchableItem(LauncherItem *, bool);
- ~LaunchableItem();
-
-  GdkPixbuf *getIcon(int icon_size) const { return myItem->getIcon(icon_size); }
-
-  const std::string& getName() const { return myItem->getName(); }
-  const std::string& getComment() const { return myItem->getComment(); }
-  const std::string& getService() const { return myItem->getService(); }
-
-  bool isEnabled(void) const { return myEnabled; }
-
-  void enable() { myEnabled = true; }
-  void disable() { myEnabled = false; }
-
-  bool activate(osso_context_t *);
-
-private:
-  LauncherItem *myItem;
-  bool myEnabled;
-};
-
 class SimpleLauncherApplet {
 public:
   SimpleLauncherApplet();
@@ -83,8 +61,7 @@ private:
   GtkWidget *myWidget;
   GtkWindow *myParent;
 
-  typedef std::vector<std::pair<std::string, LaunchableItem *> > ItemList;
-  ItemList myItems;
+  LauncherItems myItems;
 
   static char *ourFiles[];
 };
@@ -150,10 +127,10 @@ bool SimpleLauncherApplet::doInit(void *state_data, int *state_size) {
   }
 
   for (int i = 0 ; ourFiles[i] != 0 ; ++i) {
-    LauncherItem *item = new LauncherItem();
+    LaunchableItem *item = new LaunchableItem();
 
     if (item->load(ourFiles[i])) {
-      myItems.push_back(std::pair<std::string, LaunchableItem *>(ourFiles[i], new LaunchableItem(item, true)));
+      myItems.push_back(std::pair<std::string, LauncherItem *>(ourFiles[i], item));
     } else {
       delete item;
     }
@@ -169,7 +146,7 @@ bool SimpleLauncherApplet::doInit(void *state_data, int *state_size) {
 }
 
 SimpleLauncherApplet::~SimpleLauncherApplet() {
-  for (ItemList::iterator it = myItems.begin(); it != myItems.end(); ++it) {
+  for (LauncherItems::iterator it = myItems.begin(); it != myItems.end(); ++it) {
     if (it->second != 0) {
       delete it->second;
       it->second = 0;
@@ -194,7 +171,7 @@ bool SimpleLauncherApplet::initWidget() {
 
   GtkToolbar *toolbar = GTK_TOOLBAR(gtk_toolbar_new());
 
-  for (ItemList::const_iterator it = myItems.begin(); it != myItems.end(); ++it) {
+  for (LauncherItems::const_iterator it = myItems.begin(); it != myItems.end(); ++it) {
     GtkToolItem *button = gtk_tool_button_new(gtk_image_new_from_pixbuf(it->second->getIcon(SL_APPLET_ICON_SIZE)), 0);
 
     gtk_object_set_user_data(GTK_OBJECT(button), it->second);
@@ -262,11 +239,7 @@ void SimpleLauncherApplet::_run_dialog(GtkMenuItem *, void *self) {
 }
 
 void SimpleLauncherApplet::runDialog() {
-  SLAList list(SL_APPLET_ICON_SIZE);
-
-  for (ItemList::const_iterator item = myItems.begin(); item != myItems.end(); ++item) {
-    list.addItem(item->first.c_str(), item->second->getIcon(SL_APPLET_ICON_SIZE), item->second->getComment().c_str(), item->second->isEnabled());
-  }
+  SLAList list(SL_APPLET_ICON_SIZE, myItems);
 
   GtkDialog *dialog = GTK_DIALOG(gtk_dialog_new_with_buttons("Launcher Settings", myParent, (GtkDialogFlags)(GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT), "OK", GTK_RESPONSE_OK, "Cancel", GTK_RESPONSE_CANCEL, 0));
 
@@ -290,17 +263,4 @@ void SimpleLauncherApplet::runDialog() {
   }
 }
 
-LaunchableItem::LaunchableItem(LauncherItem *item, bool enabled): myItem(item), myEnabled(enabled) {
-}
-
-LaunchableItem::~LaunchableItem() {
-  if (myItem != 0) {
-    delete myItem;
-  }
-}
-
-bool LaunchableItem::activate(osso_context_t *context) {
-  return osso_application_top(context, myItem->getService().c_str(), 0) == OSSO_OK;
-}
-
 // vim:ts=2:sw=2:et