[Galago-commits] r1994 - in trunk/xfce4-galago: . src

galago-commits at freedesktop.org galago-commits at freedesktop.org
Mon Jun 27 15:23:58 PDT 2005


Author: grim
Date: 2005-06-27 15:23:52 -0700 (Mon, 27 Jun 2005)
New Revision: 1994

Modified:
   trunk/xfce4-galago/ChangeLog
   trunk/xfce4-galago/Makefile.am
   trunk/xfce4-galago/configure.ac
   trunk/xfce4-galago/src/Makefile.am
   trunk/xfce4-galago/src/xfce_galago.c
Log:
Added orientation support
Removed all i18n support until we determine how to handle it
Made the so unversioned and stopped building the static library
			


Modified: trunk/xfce4-galago/ChangeLog
===================================================================
--- trunk/xfce4-galago/ChangeLog	2005-06-26 02:52:35 UTC (rev 1993)
+++ trunk/xfce4-galago/ChangeLog	2005-06-27 22:23:52 UTC (rev 1994)
@@ -1,3 +1,9 @@
+Mon Jun 27 17:16:14 CDT 2005  Gary Kramlich <grim at reaperworld.com>
+
+	* Added orientation support
+	* Removed all i18n support until we determine how to handle it
+	* Made the so unversioned and stopped building the static library
+
 Sat Jun 25 21:51:00 CDT 2005  Gary Kramlich <grim at reaperworld.com>
 
 	* Plugged a memory leak

Modified: trunk/xfce4-galago/Makefile.am
===================================================================
--- trunk/xfce4-galago/Makefile.am	2005-06-26 02:52:35 UTC (rev 1993)
+++ trunk/xfce4-galago/Makefile.am	2005-06-27 22:23:52 UTC (rev 1994)
@@ -1,5 +1,4 @@
-SUBDIRS = po src
-#intl 
+SUBDIRS =src
 
 EXTRA_DIST = \
 	AUTHORS \

Modified: trunk/xfce4-galago/configure.ac
===================================================================
--- trunk/xfce4-galago/configure.ac	2005-06-26 02:52:35 UTC (rev 1993)
+++ trunk/xfce4-galago/configure.ac	2005-06-27 22:23:52 UTC (rev 1994)
@@ -8,6 +8,7 @@
 AC_CANONICAL_SYSTEM
 AC_CONFIG_SRCDIR(config.h.in)
 AC_COPYRIGHT([Copyright 2005 Gary Kramlich])
+AC_DISABLE_STATIC
 
 dnl ################################################################
 dnl # Initialize automake
@@ -108,8 +109,6 @@
 dnl # Finish up
 dnl #######################################################################
 AC_OUTPUT([Makefile
-		   intl/Makefile
-		   po/Makefile.in
 		   src/Makefile
 		  ])
 

Modified: trunk/xfce4-galago/src/Makefile.am
===================================================================
--- trunk/xfce4-galago/src/Makefile.am	2005-06-26 02:52:35 UTC (rev 1993)
+++ trunk/xfce4-galago/src/Makefile.am	2005-06-27 22:23:52 UTC (rev 1994)
@@ -11,6 +11,8 @@
 	$(GTK_LIBS) \
 	$(XFCE_LIBS)
 
+libxfce4_galago_la_LDFLAGS = -module -avoid-version
+
 AM_CPPFLAGS = \
 	-DVERSION=\"$(VERSION)\" \
 	-DLIBDIR=\"$(XFCE_PANEL_PLUGINS_DIR)\" \

Modified: trunk/xfce4-galago/src/xfce_galago.c
===================================================================
--- trunk/xfce4-galago/src/xfce_galago.c	2005-06-26 02:52:35 UTC (rev 1993)
+++ trunk/xfce4-galago/src/xfce_galago.c	2005-06-27 22:23:52 UTC (rev 1994)
@@ -37,16 +37,22 @@
 #define XG_NAME				"xfce-galago"
 #define XFCE_GALAGO(obj)	((XfceGalago *)(obj))
 
+#include <stdio.h>
+
 /******************************************************************************
  * Xfce Galago Stuff
  *****************************************************************************/
 typedef struct {
 	GtkWidget *ebox;
-	GtkWidget *hbox;
+	GtkWidget *box;
 
 	GtkWidget *icon;
 	GtkWidget *label;
 
+	gint orientation;
+
+	GalagoAccount *account;
+
 	/* this is used only so we don't request the dialog more than once at a
 	 * time since it takes a second to come up.
 	 */
@@ -55,10 +61,16 @@
 
 static void
 xfce_galago_update(XfceGalago *xg, GalagoAccount *account) {
+	GalagoService *service;
+
 	galago_gtk_presence_icon_set_account(GALAGO_GTK_PRESENCE_ICON(xg->icon),
 										 account);
 	galago_gtk_presence_label_set_account(GALAGO_GTK_PRESENCE_LABEL(xg->label),
 										  account);
+
+	service = galago_account_get_service(account);
+
+	xg->account = account;
 }
 
 static void
@@ -101,29 +113,51 @@
 
 	ret = g_new0(XfceGalago, 1);
 
+	ret->orientation = -1;
+
 	ret->ebox = gtk_event_box_new();
 	g_signal_connect(G_OBJECT(ret->ebox), "button-press-event",
 					 G_CALLBACK(xfce_galago_clicked_cb), ret);
 	gtk_widget_show(ret->ebox);
 
-	ret->hbox = gtk_hbox_new(FALSE, 6);
-	gtk_widget_show(ret->hbox);
-	gtk_container_add(GTK_CONTAINER(ret->ebox), ret->hbox);
-
+	/* we add ref counts to the icon and label so we can destroy the container
+	 * and not lose the widgets.
+	 */
 	ret->icon = galago_gtk_presence_icon_new();
+	g_object_ref(G_OBJECT(ret->icon));
 	galago_gtk_presence_icon_set_size(GALAGO_GTK_PRESENCE_ICON(ret->icon),
 									  GTK_ICON_SIZE_LARGE_TOOLBAR);
 	gtk_widget_show(ret->icon);
-	gtk_box_pack_start(GTK_BOX(ret->hbox), ret->icon, FALSE, FALSE, 0);
 
 	ret->label = galago_gtk_presence_label_new();
-	gtk_label_set_text(GTK_LABEL(ret->label), "No presence selected");
+	g_object_ref(G_OBJECT(ret->label));
+	gtk_label_set_text(GTK_LABEL(ret->label), "(Select presence)");
 	gtk_widget_show(ret->label);
-	gtk_box_pack_start(GTK_BOX(ret->hbox), ret->label, FALSE, FALSE, 0);
 
 	return ret;
 }
 
+static void
+xfce_galago_pack(XfceGalago *xg, gint orientation) {
+	if(xg->orientation == orientation)
+		return;
+
+	if(GTK_IS_WIDGET(xg->box))
+		gtk_widget_destroy(xg->box);
+
+	if(orientation == VERTICAL)
+		xg->box = gtk_vbox_new(FALSE, 4);
+	else
+		xg->box = gtk_hbox_new(FALSE, 4);
+
+	gtk_container_set_border_width(GTK_CONTAINER(xg->box), 4);
+	gtk_widget_show(xg->box);
+	gtk_container_add(GTK_CONTAINER(xg->ebox), xg->box);
+
+	gtk_box_pack_start(GTK_BOX(xg->box), xg->icon, FALSE, FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(xg->box), xg->label, FALSE, FALSE, 0);
+}
+
 /******************************************************************************
  * Xfce Panel Plugin Stuff
  *****************************************************************************/
@@ -147,6 +181,9 @@
 
 	g_return_if_fail(xg);
 
+	g_object_unref(G_OBJECT(xg->icon));
+	g_object_unref(G_OBJECT(xg->label));
+
 	g_free(xg);
 	xg = NULL;
 }
@@ -157,7 +194,7 @@
 {
 	XfceGalago *xg = XFCE_GALAGO(control->data);
 
-    g_signal_connect (xg->ebox, signal, callback, data);
+    g_signal_connect(xg->ebox, signal, callback, data);
 }
 
 static void
@@ -188,6 +225,36 @@
 	gtk_widget_queue_resize(xg->ebox);
 }
 
+static void
+xfce_galago_set_orientation(Control *control, gint orientation) {
+	XfceGalago *xg = XFCE_GALAGO(control->data);
+
+	xfce_galago_pack(xg, orientation);
+}
+
+static void
+xfce_galago_read_config(Control *control, xmlNodePtr node) {
+	
+}
+
+static void
+xfce_galago_write_config(Control *control, xmlNodePtr node) {
+#if 0
+	XfceGalago *xg = XFCE_GALAGO(control->data);
+	GalagoAccount *account;
+	GalagoService *service;
+	const gchar *username, *servicename;
+
+	account = galago_gtk_presence_label_get_account(
+		GALAGO_GTK_PRESENCE_LABEL(xg->label));
+
+	username = galago_account_get_username(account);
+	service = galago_account_get_service(account);
+	servicename = galago_service_get_name(service);
+
+#endif
+}
+
 G_MODULE_EXPORT void
 xfce_control_class_init(ControlClass *cc) {
 	/* required overrides */
@@ -201,7 +268,11 @@
 
 	/* optional overrides */
 	cc->set_size = xfce_galago_set_size;
+	cc->set_orientation = xfce_galago_set_orientation;
 
+	cc->read_config = xfce_galago_read_config;
+	cc->write_config = xfce_galago_write_config;
+
 	/* initialize galago */
 	galago_glib_init(XG_NAME, FALSE, NULL);
 }



More information about the galago-commits mailing list