soylent r61 - trunk/src
- From: treitter svn gnome org
- To: svn-commits-list gnome org
- Subject: soylent r61 - trunk/src
- Date: Fri, 1 Feb 2008 07:20:52 +0000 (GMT)
Author: treitter
Date: Fri Feb 1 07:20:51 2008
New Revision: 61
URL: http://svn.gnome.org/viewvc/soylent?rev=61&view=rev
Log:
Do some more signal setup factoring in soylent-browser.c
Modified:
trunk/src/soylent-browser.c
trunk/src/soylent-utils.h
Modified: trunk/src/soylent-browser.c
==============================================================================
--- trunk/src/soylent-browser.c (original)
+++ trunk/src/soylent-browser.c Fri Feb 1 07:20:51 2008
@@ -75,11 +75,7 @@
EmpathyContact *empathy_contact);
static gboolean soylent_browser_widget_setup (SoylentBrowser *browser);
-static gboolean soylent_browser_dialog_signals_setup (SoylentBrowser *browser);
-static void soylent_browser_person_actions_signals_setup
- (SoylentBrowser *browser);
-static void soylent_browser_person_icons_signals_setup
- (SoylentBrowser *browser);
+static gboolean soylent_browser_simple_signals_setup (SoylentBrowser *browser);
static void soylent_browser_person_info_avatar_signals_setup
(SoylentBrowser *browser);
static void soylent_browser_person_info_email_signals_setup
@@ -96,7 +92,6 @@
(SoylentBrowser *browser);
static void soylent_browser_person_detail_add_signals_setup
(SoylentBrowser *browser);
-static void soylent_browser_presence_signals_setup (SoylentBrowser *browser);
static gboolean soylent_browser_signals_setup (SoylentBrowser *browser);
/* Instantiate the main SoylentBrowser */
@@ -1633,23 +1628,45 @@
*
* Return TRUE for success, for FALSE for any failure */
static gboolean
-soylent_browser_dialog_signals_setup (SoylentBrowser *browser)
+soylent_browser_simple_signals_setup (SoylentBrowser *browser)
{
widget_signal_args_t signal_handlers[] =
{
+ /* Main app window */
+ {"window_main", "delete-event", soylent_browser_delete_cb, browser},
+
+ /* People icons in main icon view */
+ {"iv_people", "selection-changed",
+ soylent_browser_person_selection_changed_cb, browser},
+ {"iv_people", "item_activated", soylent_browser_person_icon_activated_cb,
+ browser},
+
+ /* Set Online Presence combo box */
+ {"cbox_presence", "changed", soylent_browser_presence_set_cb, browser},
+
+ /* Person action buttons */
+ {"btn_new_person", "clicked", soylent_browser_person_action_new_person_cb,
+ browser},
+ {"btn_delete_people", "clicked",
+ soylent_browser_person_action_delete_selected_cb, browser},
+ {"btn_edit_person", "clicked",
+ soylent_browser_person_action_edit_selected_cb, browser},
+ {"btntb_email", "clicked",
+ soylent_browser_person_action_email_menu_tool_button_cb, browser},
+ {"btntb_chat", "clicked",
+ soylent_browser_person_action_chat_menu_tool_button_cb, browser},
+
+ /* "Save Changes?" dialog */
{"btn_delete_person_cancel", "clicked",
soylent_browser_person_action_delete_selected_hide_dialog_cb, browser,},
-
{"btn_delete_person_confirm", "clicked",
soylent_browser_person_action_delete_selected_finalize_cb, browser},
-
{"dia_delete_person_confirm", "delete-event", gtk_widget_hide_on_delete,
browser},
};
-
gboolean retval = FALSE;
GladeXML *wtree = NULL;
- const guint signals_num = WIDGET_SIGNAL_ARGS_LEN (signal_handlers);
+ guint signals_num = -1;
guint i = -1;
g_return_val_if_fail (browser != NULL, retval);
@@ -1657,6 +1674,9 @@
g_return_val_if_fail (SOYLENT_IS_BROWSER (browser), retval);
*/
+ wtree = browser->main_window;
+ signals_num = ARRAY_LEN (signal_handlers);
+
/* invert usual logic to simplify the loop below */
retval = TRUE;
@@ -1682,6 +1702,7 @@
}
/* Hook up handlers for actions related to setting our own presence */
+/*
static void
soylent_browser_presence_signals_setup (SoylentBrowser *browser)
{
@@ -1694,8 +1715,10 @@
g_signal_connect (G_OBJECT (cbox_presence), "changed",
G_CALLBACK (soylent_browser_presence_set_cb), browser);
}
+*/
/* Hook up the action button/menu handlers */
+/*
static void
soylent_browser_person_actions_signals_setup (SoylentBrowser *browser)
{
@@ -1736,8 +1759,10 @@
G_CALLBACK (soylent_browser_person_action_chat_menu_tool_button_cb),
browser);
}
+*/
/* Hook up signals dealing with actions on people representations (icons) */
+/*
static void
soylent_browser_person_icons_signals_setup (SoylentBrowser *browser)
{
@@ -1751,6 +1776,7 @@
G_CALLBACK (soylent_browser_person_selection_changed_cb),
browser);
}
+*/
/* Hook up handlers for peoples' existing image edits */
static void
@@ -1923,6 +1949,7 @@
wtree = browser->main_window;
+ /* FIXME: replace this sizeof calculation with ARRAY_LEN() */
for (context = 0; context < sizeof (e_contact_fields) / sizeof (const guint*);
context++)
{
@@ -2035,6 +2062,8 @@
G_CALLBACK (soylent_browser_person_view_save_finalize_cb),
browser);
+ /* FIXME: factor these a little more, and push their contents into this
+ * function; use an array like in *_dialog_signals_setup() */
soylent_browser_person_info_avatar_signals_setup (browser);
soylent_browser_person_info_email_signals_setup (browser);
soylent_browser_person_info_phone_signals_setup (browser);
@@ -2050,28 +2079,22 @@
soylent_browser_signals_setup (SoylentBrowser *browser)
{
gboolean retval = FALSE;
- gboolean dialog_signals_retval = FALSE;
+ gboolean simple_signals_retval = FALSE;
GladeXML *wtree = NULL;
- GtkWidget *widget = NULL;
+
+ g_return_val_if_fail (browser != NULL, retval);
+ /* FIXME: uncomment once SoylentBrowser is a GObject:
+ g_return_val_if_fail (SOYLENT_IS_BROWSER (browser), retval);
+ */
wtree = browser->main_window;
- dialog_signals_retval = soylent_browser_dialog_signals_setup (browser);
- soylent_browser_person_actions_signals_setup (browser);
- soylent_browser_person_icons_signals_setup (browser);
+ /* FIXME: check this return value, etc. */
+ simple_signals_retval = soylent_browser_simple_signals_setup (browser);
+
+ /* FIXME: simplify these like simple_signals_setup, above */
soylent_browser_person_info_signals_setup (browser);
soylent_browser_person_detail_add_signals_setup (browser);
- soylent_browser_presence_signals_setup (browser);
-
- widget = glade_xml_get_widget (wtree, "iv_people");
- g_signal_connect (G_OBJECT (widget), "item_activated",
- G_CALLBACK (soylent_browser_person_icon_activated_cb),
- browser);
-
- /* Have the delete event (window close) end the program */
- widget = glade_xml_get_widget (wtree, "window_main");
- g_signal_connect (G_OBJECT (widget), "delete-event",
- G_CALLBACK (soylent_browser_delete_cb), browser);
/* FIXME: only set this if everything above succeeds */
retval = TRUE;
Modified: trunk/src/soylent-utils.h
==============================================================================
--- trunk/src/soylent-utils.h (original)
+++ trunk/src/soylent-utils.h Fri Feb 1 07:20:51 2008
@@ -30,7 +30,7 @@
#define STRING_NULL_OR_EMPTY(x) ((!(x)) || (g_str_equal ((x), "")))
-#define WIDGET_SIGNAL_ARGS_LEN(x) ((sizeof (x)) / sizeof (widget_signal_args_t))
+#define ARRAY_LEN(x) ((sizeof (x)) / sizeof (x[0]))
typedef struct widget_signal_args_tag widget_signal_args_t;
struct widget_signal_args_tag
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]