// This file is a part of Simple Launcher
//
-// Copyright (C) 2006, 2007, Mikhail Sobolev
+// Copyright (C) 2006, 2007, 2008 Mikhail Sobolev <mss@mawhrin.net>
//
// 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/gtk.h>
-#include <libosso.h>
-
-#include "launcher-item.h"
-#include "launchable-item.h"
-#include "settings-dialog.h"
-#include "gconf-wrapper.h"
+#include "simple-launcher.h"
#define SL_APPLET_DBUS_NAME "simple-launcher"
#define SL_APPLET_VERSION "0.0"
-#define SL_APPLET_GCONF_PATH "/apps/simple-launcher"
-
-// A copy of interface functions from hildon-home-plugin-interface (new hildon desktop does not have it) {{{
-
-extern "C" {
-
- void *hildon_home_applet_lib_initialize(void *state_data, int *state_size, GtkWidget **widget);
- int hildon_home_applet_lib_save_state(void *applet_data, void **state_data, int *state_size);
- void hildon_home_applet_lib_background(void *applet_data);
- void hildon_home_applet_lib_foreground(void *applet_data);
- void hildon_home_applet_lib_deinitialize(void *applet_data);
- GtkWidget *hildon_home_applet_lib_settings(void *applet_data, GtkWindow *parent);
-
-};
-
-// }}}
-
-class SimpleLauncherApplet {
-public:
- SimpleLauncherApplet(const GConfKey&);
- ~SimpleLauncherApplet();
-
- bool doInit(void *state_data, int *state_size);
-
- void background() {}
- void foreground() {}
- int saveState(void **state_data, int *state_size);
- GtkWidget *settings(GtkWindow *parent);
-
- GtkWidget *getWidget() { return myWidget; }
-
-private:
- static void addItem(LauncherItems&, const std::string&, bool);
-
- void loadConfig();
- void saveConfig();
-
- static void updateItems(LauncherItems&);
- static void processDirectory(LauncherItems&, const std::string&);
-
- bool initWidget();
- void updateWidget();
-
- void buttonPressed(GtkWidget *button, GdkEventButton *event);
- void runDialog();
-
- static void _button_pressed(GtkWidget *button, GdkEventButton *event, void *self);
- static void _run_dialog(GtkMenuItem *, void *);
-
-private:
- // GConfClientWrapper myClient;
- // GConfKey myMainSettings;
-
- osso_context_t *myContext;
-
- GtkWidget *myWidget;
- GtkWindow *myParent;
-
- LauncherItems myItems;
-
- GConfBooleanOption myTransparent;
- // bool myShowInfobanner; // FIXME: to implement
- GConfIntegerOption myIconSize;
-
- static char *ourDirs[];
-};
-
// Hildon home applet interface functions
void *hildon_home_applet_lib_initialize(void *state_data, int *state_size, GtkWidget **widget) {
- GConfKey baseKey(SL_APPLET_GCONF_PATH);
-
- SimpleLauncherApplet *applet = new SimpleLauncherApplet(baseKey);
+ SimpleLauncherApplet *applet = new SimpleLauncherApplet(SL_APPLET_GCONF_PATH);
if (applet != NULL) {
if (applet->doInit(state_data, state_size)) {
delete applet;
}
-void hildon_home_applet_lib_background(void *applet_data) {
- ((SimpleLauncherApplet *)applet_data)->background();
-}
-
-void hildon_home_applet_lib_foreground (void *applet_data) {
- ((SimpleLauncherApplet *)applet_data)->foreground();
-}
-
GtkWidget *hildon_home_applet_lib_settings(void *applet_data, GtkWindow *parent) {
return ((SimpleLauncherApplet *)applet_data)->settings(parent);
}
};
// SimpleLauncherApplet::SimpleLauncherApplet() : myMainSettings(myClient.getKey(SL_APPLET_GCONF_PATH)), myContext(NULL), myWidget(NULL), myParent(NULL) {
-SimpleLauncherApplet::SimpleLauncherApplet(const GConfKey& base) : myContext(NULL), myWidget(NULL), myParent(NULL), myTransparent(base, "transparent", false), myIconSize(base, "icon_size", 48) {
+SimpleLauncherApplet::SimpleLauncherApplet(const std::string& base) : myContext(NULL), myWidget(NULL), myParent(NULL), myTransparent(GConfKey(base), "transparent", false), myIconSize(GConfKey(base), "icon_size", 48) {
}
bool SimpleLauncherApplet::doInit(void *state_data, int *state_size) {
}
}
+// {{{ Configuration file managment
static const gchar *getConfigFileName() {
static gchar *configFileName = NULL;
}
}
+// }}}
+
void SimpleLauncherApplet::updateItems(LauncherItems& items) {
for (int i = 0 ; ourDirs[i] != NULL ; ++i) {
processDirectory(items, ourDirs[i]);
}
bool SimpleLauncherApplet::initWidget() {
- myWidget = gtk_hbox_new(false, 2);
+ myWidget = gtk_hbox_new(false, 0);
if (myWidget != NULL) {
updateWidget();