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