};
// SimpleLauncherApplet::SimpleLauncherApplet() : myMainSettings(myClient.getKey(SL_APPLET_GCONF_PATH)), myContext(NULL), myWidget(NULL), myParent(NULL) {
-SimpleLauncherApplet::SimpleLauncherApplet(const std::string& base) : myContext(NULL), myWidget(NULL), myParent(NULL), myTransparent(GConfKey(base), "transparent", false), myIconSize(GConfKey(base), "icon_size", 48) {
+SimpleLauncherApplet::SimpleLauncherApplet(const std::string& base) : myContext(NULL), myWidget(NULL), myParent(NULL), myValidItems(0), myTransparent(GConfKey(base), "transparent", false), myIconSize(GConfKey(base), "icon_size", 48) {
}
bool SimpleLauncherApplet::doInit(void *state_data, int *state_size) {
GtkSizeGroup *group = gtk_size_group_new(GTK_SIZE_GROUP_BOTH);
- int button_no = 0;
+ myValidItems = 0;
for (size_t i = 0 ; i < myItems.size() ; ++i) {
LauncherItem *item = myItems[i];
gtk_box_pack_start(GTK_BOX(myWidget), GTK_WIDGET(button), false, false, 0);
- ++button_no;
+ ++myValidItems;
}
}
g_object_unref(G_OBJECT(group));
- int totalSize = myIconSize.value();
-
- if (button_no == 0) {
- gtk_widget_set_size_request(myWidget, totalSize, totalSize);
- } else {
- gtk_widget_set_size_request(myWidget, button_no*totalSize, totalSize);
- }
+ gtk_widget_set_size_request(myWidget, getWidth(), getHeight());
gtk_widget_show_all(myWidget);
}
// newItems.clear(); // TODO: do I really need it?
}
+int SimpleLauncherApplet::getWidth() const {
+ if (myValidItems) {
+ return myIconSize.value() * myValidItems;
+ } else {
+ return myIconSize.value();
+ }
+}
+
+int SimpleLauncherApplet::getHeight() const {
+ return myIconSize.value();
+}
+
+void SimpleLauncherApplet::getBackgroundColour(double& red, double& green, double& blue, double alpha) const {
+ // white :)
+ red = 1.0; green = 1.0; blue = 1.0;
+
+ alpha = myTransparent.value() ? 0.0 : 1.0;
+}
+
// vim:ts=2:sw=2:et