r1380 - in trunk/src/target/OM-2007/applications/openmoko-today: . src

dodji at sita.openmoko.org dodji at sita.openmoko.org
Thu Mar 15 23:25:18 CET 2007


Author: dodji
Date: 2007-03-15 23:25:14 +0100 (Thu, 15 Mar 2007)
New Revision: 1380

Modified:
   trunk/src/target/OM-2007/applications/openmoko-today/ChangeLog
   trunk/src/target/OM-2007/applications/openmoko-today/src/today-events-area.c
   trunk/src/target/OM-2007/applications/openmoko-today/src/today-events-area.h
   trunk/src/target/OM-2007/applications/openmoko-today/src/today-main.c
Log:
Add proper GObject properties for all the getters/setters

	* applications/openmoko-today/src/today-events-area.c,h:
	  add a bunch a GObject properties for all the getters/setters.
	  Use g_object_new() in the constructors.
	  Add a today_events_area_new_from_events() for better convenience.
	* applications/openmoko-today/src/today-main.c: use the
	  new today_events_area_new_from_events() method.


Modified: trunk/src/target/OM-2007/applications/openmoko-today/ChangeLog
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-today/ChangeLog	2007-03-15 15:38:45 UTC (rev 1379)
+++ trunk/src/target/OM-2007/applications/openmoko-today/ChangeLog	2007-03-15 22:25:14 UTC (rev 1380)
@@ -1,3 +1,12 @@
+Thu, 15 Mar 2007 23:20:45 +0100 Dodji Seketeli
+
+	* applications/openmoko-today/src/today-events-area.c,h:
+	  add a bunch a GObject properties for all the getters/setters.
+	  Use g_object_new() in the constructors.
+	  Add a today_events_area_new_from_events() for better convenience.
+	* applications/openmoko-today/src/today-main.c: use the
+	  new today_events_area_new_from_events() method.
+
 Thu, 15 Mar 2007 15:47:58 +0100 Dodji Seketeli
 
 	* applications/openmoko-today/src/today-events-area.c:

Modified: trunk/src/target/OM-2007/applications/openmoko-today/src/today-events-area.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-today/src/today-events-area.c	2007-03-15 15:38:45 UTC (rev 1379)
+++ trunk/src/target/OM-2007/applications/openmoko-today/src/today-events-area.c	2007-03-15 22:25:14 UTC (rev 1380)
@@ -55,6 +55,16 @@
   LAST_SIGNAL
 };
 
+enum TodayEventsAreaProps
+{
+  EVENTS_PROP=1,
+  NB_EVENTS_PROP,
+  NB_PAGES_PROP,
+  CUR_EVENT_PROP,
+  CUR_EVENT_INDEX_PROP,
+  MAX_VISIBLE_EVENTS_PROP
+};
+
 static guint signals[LAST_SIGNAL] ;
 
 static void     today_events_area_finalize  (GObject *a_obj);
@@ -80,6 +90,11 @@
 static void     events_added_signal       (TodayEventsArea *a_this,
                                            GList *a_index) ;
 
+static void     get_property (GObject *a_this, guint a_prop_id,
+                              GValue *a_val, GParamSpec *a_pspec) ;
+static void     set_property (GObject *a_this, guint a_prop_id,
+                              const GValue *a_value, GParamSpec *a_pspec) ;
+
 G_DEFINE_TYPE (TodayEventsArea, today_events_area, GTK_TYPE_TABLE)
 
 static void
@@ -89,11 +104,64 @@
 
   object_class = G_OBJECT_CLASS (a_class);
   object_class->finalize = today_events_area_finalize;
+  object_class->get_property = get_property ;
+  object_class->set_property = set_property ;
+
   g_type_class_add_private (object_class, sizeof (TodayEventsAreaPrivate));
 
   a_class->event_selected = event_selected_signal ;
   a_class->events_added = events_added_signal ;
 
+  g_object_class_install_property
+                    (object_class,
+                     EVENTS_PROP,
+                     g_param_spec_pointer ("events",
+                                           "events",
+                                           "a GList of calendar events"
+                                            ", instances of ECalComponent",
+                                           G_PARAM_READWRITE));
+  g_object_class_install_property
+                          (object_class,
+                           NB_EVENTS_PROP,
+                           g_param_spec_uint ("nb-events",
+                                              "nb-events",
+                                              "Number of events set",
+                                              0, G_MAXUINT, 0,
+                                              G_PARAM_READABLE)) ;
+  g_object_class_install_property
+                          (object_class,
+                           NB_PAGES_PROP,
+                           g_param_spec_uint ("nb-event-pages",
+                                              "nb-event-pages",
+                                              "Number of event pages",
+                                              0, G_MAXUINT, 0,
+                                              G_PARAM_READABLE)) ;
+  g_object_class_install_property
+                          (object_class,
+                           CUR_EVENT_PROP,
+                           g_param_spec_pointer ("cur-event",
+                                                 "cur-event",
+                                                 "Currently selected event",
+                                                 G_PARAM_READABLE)) ;
+  g_object_class_install_property
+                    (object_class,
+                     CUR_EVENT_INDEX_PROP,
+                     g_param_spec_uint ("cur-event-index",
+                                        "cur-event-index",
+                                        "The index of the currently "
+                                         "selected event",
+                                         0, G_MAXUINT, 0,
+                                        G_PARAM_READABLE)) ;
+  g_object_class_install_property
+                          (object_class,
+                           MAX_VISIBLE_EVENTS_PROP,
+                           g_param_spec_uint ("max-visible-events",
+                                              "max-visible-events",
+                                              "The max number of events in "
+                                              "a page",
+                                              0, G_MAXUINT, 0,
+                                              G_PARAM_READWRITE)) ;
+
   signals[EVENTS_ADDED_SIGNAL] =
     g_signal_new ("event-added",
                   TODAY_TYPE_EVENTS_AREA,
@@ -242,6 +310,66 @@
   gtk_widget_reset_rc_styles (GTK_WIDGET (a_this)) ;
 }
 
+static void
+get_property (GObject *a_this, guint a_prop_id,
+              GValue *a_val, GParamSpec *a_pspec)
+{
+  TodayEventsArea *area ;
+  g_return_if_fail (a_this && TODAY_IS_EVENTS_AREA (a_this)) ;
+  g_return_if_fail (a_val && a_pspec) ;
+
+  area = TODAY_EVENTS_AREA (area) ;
+
+  switch (a_prop_id)
+  {
+    case EVENTS_PROP:
+      g_value_set_pointer (a_val, today_events_area_get_events (area)) ;
+      break ;
+    case NB_EVENTS_PROP:
+      g_value_set_uint (a_val, today_events_area_get_nb_events (area)) ;
+      break ;
+    case NB_PAGES_PROP:
+      g_value_set_uint (a_val, today_events_area_get_nb_pages (area)) ;
+      break ;
+    case CUR_EVENT_PROP:
+      g_value_set_pointer (a_val, today_events_area_get_cur_event (area)) ;
+      break ;
+    case CUR_EVENT_INDEX_PROP:
+      g_value_set_uint (a_val, today_events_area_get_cur_event_index (area)) ;
+      break ;
+    case MAX_VISIBLE_EVENTS_PROP:
+      g_value_set_uint (a_val, today_events_area_get_max_visible_events (area));
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (a_this, a_prop_id, a_pspec) ;
+      break ;
+  }
+}
+
+static void
+set_property (GObject *a_this, guint a_prop_id,
+              const GValue *a_val, GParamSpec *a_pspec)
+{
+  TodayEventsArea * area ;
+  g_return_if_fail (a_this && TODAY_IS_EVENTS_AREA (a_this)) ;
+  g_return_if_fail (a_val && a_pspec) ;
+
+  area = TODAY_EVENTS_AREA (a_this) ;
+
+  switch (a_prop_id)
+  {
+    case EVENTS_PROP:
+      today_events_area_set_events (area, g_value_get_pointer (a_val)) ;
+      break ;
+    case MAX_VISIBLE_EVENTS_PROP:
+      today_events_area_set_max_visible_events (area, g_value_get_uint (a_val));
+      break ;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (a_this, a_prop_id, a_pspec) ;
+      break ;
+  }
+}
+
 /**
  * e_cal_component_list_free:
  * @list: the list ECalComooment to free
@@ -647,12 +775,24 @@
 today_events_area_new ()
 {
   GObject *result;
-  result = g_object_new (TODAY_TYPE_EVENTS_AREA, NULL) ;
-  /*provide gobject param getter/setter for this*/
-  today_events_area_set_max_visible_events (TODAY_EVENTS_AREA (result), 4) ;
+  result = g_object_new (TODAY_TYPE_EVENTS_AREA,
+                         "max-visible-events", 4,
+                         NULL) ;
   return GTK_WIDGET (result);
 }
 
+GtkWidget*
+today_events_area_new_with_events (GList *a_events)
+{
+  GObject *result ;
+
+  result = g_object_new (TODAY_TYPE_EVENTS_AREA,
+                         "max-visible-events", 4,
+                         "events", a_events,
+                         NULL) ;
+  return GTK_WIDGET (result) ;
+}
+
 /**
  *today_events_area_set_events:
  *@a_this: current instance of TodayEventsArea
@@ -722,10 +862,6 @@
                         a_this->priv,
                         -1);
 
-  g_message ("page size: %d, nb events %d",
-             a_this->priv->max_visible_events,
-             a_this->priv->nb_events) ;
-
   if (!a_this->priv->max_visible_events)
     return 0 ;
 

Modified: trunk/src/target/OM-2007/applications/openmoko-today/src/today-events-area.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-today/src/today-events-area.h	2007-03-15 15:38:45 UTC (rev 1379)
+++ trunk/src/target/OM-2007/applications/openmoko-today/src/today-events-area.h	2007-03-15 22:25:14 UTC (rev 1380)
@@ -63,6 +63,7 @@
 
 GType          today_events_area_get_type (void);
 GtkWidget*     today_events_area_new ();
+GtkWidget*     today_events_area_new_with_events (GList *events);
 void           today_events_area_set_events (TodayEventsArea *self,
                                              GList *a_events);
 GList*         today_events_area_get_events (TodayEventsArea *self);

Modified: trunk/src/target/OM-2007/applications/openmoko-today/src/today-main.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-today/src/today-main.c	2007-03-15 15:38:45 UTC (rev 1379)
+++ trunk/src/target/OM-2007/applications/openmoko-today/src/today-main.c	2007-03-15 22:25:14 UTC (rev 1380)
@@ -308,8 +308,7 @@
   GList            *events;
 
   events = today_get_today_events () ;
-  events_area = today_events_area_new () ;
-  today_events_area_set_events (TODAY_EVENTS_AREA (events_area), events) ;
+  events_area = today_events_area_new_with_events (events) ;
 
   return events_area;
 }





More information about the commitlog mailing list