put some methods toward proper wrapper
authormishas <mikhail.sobolev@gmail.com>
Wed, 7 Nov 2007 22:12:41 +0000 (22:12 +0000)
committermishas <mikhail.sobolev@gmail.com>
Wed, 7 Nov 2007 22:12:41 +0000 (22:12 +0000)
git-svn-id: file:///svnroot/simple-launcher/branches/new-items@252 3ba93dab-e023-0410-b42a-de7732cf370a

applet-wrapper.cc

index 0682f77..48932c8 100644 (file)
 
 #include "simple-launcher.h"
 
-#if 0
+  static void sla_wrapper_init(SLAWrapper *applet);
+  static void sla_wrapper_class_init(SLAWrapperClass *klass);
+  static void sla_wrapper_finalize(GObject *object);
+  static gboolean sla_wrapper_expose(GtkWidget *widget, GdkEventExpose *event);
+  static void sla_wrapper_size_allocate(GtkWidget *widget, GtkAllocation *alloc);
+  static void sla_wrapper_size_request(GtkWidget *widget, GtkRequisition *requisition);
+
 struct _SLAWrapperPrivate {
-  SimpleLauncherApplet *applet;
+  void *applet;
 };
-#endif
 
 HD_DEFINE_PLUGIN(SLAWrapper, sla_wrapper, HILDON_DESKTOP_TYPE_HOME_ITEM)
 
-static void simple_launcher_applet_init(SLAWrapper *applet) {
+static void sla_wrapper_init(SLAWrapper *applet) {
+  GdkColormap *colormap = NULL;
+
+  if ((colormap = gdk_screen_get_rgba_colormap(gdk_screen_get_default())) != NULL) {
+    gtk_widget_set_colormap(GTK_WIDGET(applet), colormap);
+  }
+}
+
+static void sla_wrapper_class_init(SLAWrapperClass *klass) {
+  GtkWidgetClass *widget_class;
+  GObjectClass *object_class;
+
+  widget_class = GTK_WIDGET_CLASS(klass);
+  object_class = G_OBJECT_CLASS(klass);
+
+  object_class->finalize = sla_wrapper_finalize;
+
+  widget_class->expose_event = sla_wrapper_expose;
+  widget_class->size_allocate = sla_wrapper_size_allocate;
+  widget_class->size_request = sla_wrapper_size_request;
+
+  g_type_class_add_private(klass, sizeof (SLAWrapperPrivate)); // Do I need this?
+}
+
+static void sla_wrapper_finalize(GObject *object) {
+#if 0
+  _SLAWrapperPrivate *priv = SLA_WRAPPER(object)->priv;
+
+  if (priv->background_pixmap != NULL) {
+    g_object_unref(priv->background_pixmap);
+    priv->background_pixmap = NULL;
+  }
+#endif
+}
+
+static gboolean sla_wrapper_expose(GtkWidget *widget, GdkEventExpose *event) {
+  if (GTK_WIDGET_DRAWABLE(widget)) {
+    return GTK_WIDGET_CLASS(sla_wrapper_parent_class)->expose_event(widget, event);
+  } else {
+    return FALSE;
+  }
+}
+
+static void sla_wrapper_size_allocate(GtkWidget *widget, GtkAllocation *alloc) {
+  GTK_WIDGET_CLASS(sla_wrapper_parent_class)->size_allocate(widget, alloc);
+}
+
+static void sla_wrapper_size_request(GtkWidget *widget, GtkRequisition *requisition) {
+#if 0
+  requisition->width = our_desired_width;
+  requisition->height = our_desired_height;
+#endif
 }
 
 // vim:ts=2:sw=2:et