Merge authors: Ted Gould (ted) Related merge proposals: https://code.launchpad.net/~ted/indicator-applet/code-unification/+merge/16809 proposed by: Ted Gould (ted) review: Approve - Robert Collins (lifeless) ------------------------------------------------------------ revno: 337 [merge] committer: Ted Gould <[email protected]> branch nick: applet timestamp: Tue 2010-01-05 21:48:24 -0600 message: Making all of the build targets be built from src/applet-main.c with compiler flags to set defines for the various differences. Adding a build target for an indicator applet that has all the indicators in it. removed: src-session/ src-session/Makefile.am src-session/applet-main.c added: data/GNOME_IndicatorAppletComplete.server.in.in modified: .bzrignore Makefile.am configure.ac data/Makefile.am po/POTFILES.in src/Makefile.am src/applet-main.c
-- lp:indicator-applet https://code.launchpad.net/~indicator-applet-developers/indicator-applet/applet Your team ayatana-commits is subscribed to branch lp:indicator-applet. To unsubscribe from this branch go to https://code.launchpad.net/~indicator-applet-developers/indicator-applet/applet/+edit-subscription.
=== modified file '.bzrignore' --- .bzrignore 2009-08-18 15:50:35 +0000 +++ .bzrignore 2010-01-04 19:26:05 +0000 @@ -104,3 +104,6 @@ data/GNOME_IndicatorAppletSUS.server.in src-session/indicator-applet-no-sus src-session/indicator-applet-session +src/indicator-applet-complete +src/indicator-applet-session +data/GNOME_IndicatorAppletComplete.server === modified file 'Makefile.am' --- Makefile.am 2009-08-24 18:22:32 +0000 +++ Makefile.am 2010-01-04 18:47:50 +0000 @@ -1,7 +1,6 @@ SUBDIRS = \ src \ - src-session \ data \ po === modified file 'configure.ac' --- configure.ac 2009-12-10 17:27:22 +0000 +++ configure.ac 2010-01-04 18:47:50 +0000 @@ -124,7 +124,6 @@ AC_OUTPUT([ Makefile src/Makefile -src-session/Makefile data/Makefile po/Makefile.in ]) === added file 'data/GNOME_IndicatorAppletComplete.server.in.in' --- data/GNOME_IndicatorAppletComplete.server.in.in 1970-01-01 00:00:00 +0000 +++ data/GNOME_IndicatorAppletComplete.server.in.in 2010-01-04 20:35:15 +0000 @@ -0,0 +1,28 @@ +<oaf_info> + <oaf_server iid="OAFIID:GNOME_IndicatorAppletComplete_Factory" type="exe" + location="@LIBEXECDIR@/indicator-applet-complete"> + + <oaf_attribute name="repo_ids" type="stringv"> + <item value="IDL:Bonobo/GenericFactory:1.0"/> + <item value="IDL:Bonobo/Unknown:1.0"/> + </oaf_attribute> + <oaf_attribute name="name" type="string" value="Indicator Applet Complete Factory"/> + <oaf_attribute name="description" type="string" value="Indicator Applet Complete Factory"/> + <oaf_attribute name="bonobo:environment" type="stringv"> + <item value="DBUS_SESSION_BUS_ADDRESS"/> + </oaf_attribute> + </oaf_server> + + <oaf_server iid="OAFIID:GNOME_IndicatorAppletComplete" type="factory" + location="OAFIID:GNOME_IndicatorAppletComplete_Factory"> + + <oaf_attribute name="repo_ids" type="stringv"> + <item value="IDL:GNOME/Vertigo/PanelAppletShell:1.0"/> + <item value="IDL:Bonobo/Control:1.0"/> + <item value="IDL:Bonobo/Unknown:1.0"/> + </oaf_attribute> + <oaf_attribute name="name" type="string" _value="Indicator Applet Complete"/> + <oaf_attribute name="description" type="string" _value="A unified applet containing all of the indicators."/> + <oaf_attribute name="panel:icon" type="string" value="indicator-applet"/> + </oaf_server> +</oaf_info> === modified file 'data/Makefile.am' --- data/Makefile.am 2009-08-07 17:47:02 +0000 +++ data/Makefile.am 2010-01-04 19:26:05 +0000 @@ -8,6 +8,7 @@ $(libdir)/bonobo/servers server_in_files = \ GNOME_IndicatorApplet.server.in \ + GNOME_IndicatorAppletComplete.server.in \ GNOME_FastUserSwitchApplet.server.in server_DATA = \ $(server_in_files:.server.in=.server) @@ -68,6 +69,7 @@ EXTRA_DIST = \ $(icons_DATA) \ GNOME_IndicatorApplet.server.in.in \ + GNOME_IndicatorAppletComplete.server.in.in \ GNOME_FastUserSwitchApplet.server.in.in \ $(schema_in_files) === modified file 'po/POTFILES.in' --- po/POTFILES.in 2009-08-18 16:03:40 +0000 +++ po/POTFILES.in 2010-01-04 19:34:23 +0000 @@ -1,6 +1,6 @@ [encoding: UTF-8] data/GNOME_IndicatorApplet.server.in.in +data/GNOME_IndicatorAppletComplete.server.in.in data/GNOME_FastUserSwitchApplet.server.in.in data/indicator-applet.schemas.in src/applet-main.c -src-session/applet-main.c === removed directory 'src-session' === removed file 'src-session/Makefile.am' --- src-session/Makefile.am 2009-08-24 18:22:32 +0000 +++ src-session/Makefile.am 1970-01-01 00:00:00 +0000 @@ -1,17 +0,0 @@ - -libexec_PROGRAMS = \ - indicator-applet-session - -indicator_applet_session_CFLAGS = \ - -DG_LOG_DOMAIN=\""Indicator-Applet"\" \ - -DDATADIR=\""$(datadir)"\" \ - -DINDICATOR_DIR=\""$(INDICATORDIR)"\" \ - -DINDICATOR_ICONS_DIR=\""$(INDICATORICONSDIR)"\" \ - -I$(srcdir)/.. \ - $(APPLET_CFLAGS) - -indicator_applet_session_SOURCES = \ - applet-main.c - -indicator_applet_session_LDADD = \ - $(APPLET_LIBS) === removed file 'src-session/applet-main.c' --- src-session/applet-main.c 2009-12-24 16:43:37 +0000 +++ src-session/applet-main.c 1970-01-01 00:00:00 +0000 @@ -1,320 +0,0 @@ -/* -A small wrapper utility to load indicators and put them as menu items -into the gnome-panel using it's applet interface. - -Copyright 2009 Canonical Ltd. - -Authors: - Ted Gould <[email protected]> - -This program is free software: you can redistribute it and/or modify it -under the terms of the GNU General Public License version 3, as published -by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranties of -MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include <config.h> -#include <panel-applet.h> - -#include "libindicator/indicator-object.h" - -static gboolean applet_fill_cb (PanelApplet * applet, const gchar * iid, gpointer data); - - -static void cw_panel_background_changed (PanelApplet *applet, - PanelAppletBackgroundType type, - GdkColor *colour, - GdkPixmap *pixmap, - GtkWidget *menubar); - -/************* - * main - * ***********/ - -PANEL_APPLET_BONOBO_FACTORY ("OAFIID:GNOME_FastUserSwitchApplet_Factory", - PANEL_TYPE_APPLET, - "indicator-applet-session", "0", - applet_fill_cb, NULL); - -/************* - * init function - * ***********/ -static gboolean -load_module (const gchar * name, GtkWidget * menu) -{ - g_debug("Looking at Module: %s", name); - g_return_val_if_fail(name != NULL, FALSE); - - if (!g_str_has_suffix(name, G_MODULE_SUFFIX)) { - return FALSE; - } - - g_debug("Loading Module: %s", name); - - gchar * fullpath = g_build_filename(INDICATOR_DIR, name, NULL); - IndicatorObject * io = indicator_object_new_from_file(fullpath); - g_free(fullpath); - - GList * entries = indicator_object_get_entries(io); - GList * entry = NULL; - - for (entry = entries; entry != NULL; entry = g_list_next(entry)) { - IndicatorObjectEntry * entrydata = (IndicatorObjectEntry *)entry->data; - - GtkWidget * menuitem = gtk_menu_item_new(); - GtkWidget * hbox = gtk_hbox_new(FALSE, 3); - if (entrydata->image != NULL) { - gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(entrydata->image), FALSE, FALSE, 0); - } - if (entrydata->label != NULL) { - gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(entrydata->label), FALSE, FALSE, 0); - } - gtk_container_add(GTK_CONTAINER(menuitem), hbox); - gtk_widget_show(hbox); - - if (entrydata->menu != NULL) { - gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), GTK_WIDGET(entrydata->menu)); - } - - gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); - gtk_widget_show(menuitem); - } - - g_list_free(entries); - - return TRUE; -} - -static gboolean -menubar_press (GtkWidget * widget, - GdkEventButton *event, - gpointer data) -{ - if (event->button != 1) { - g_signal_stop_emission_by_name(widget, "button-press-event"); - } - - return FALSE; -} - -static gboolean -menubar_on_expose (GtkWidget * widget, - GdkEventExpose *event, - GtkWidget * menubar) -{ - if (GTK_WIDGET_HAS_FOCUS(menubar)) - gtk_paint_focus(widget->style, widget->window, GTK_WIDGET_STATE(menubar), - NULL, widget, "menubar-applet", 0, 0, -1, -1); - - return FALSE; -} - -static void -about_cb (BonoboUIComponent *ui_container, - gpointer data, - const gchar *cname) -{ - static const gchar *authors[] = { - "Ted Gould <[email protected]>", - NULL - }; - - static gchar *license[] = { - N_("This program is free software: you can redistribute it and/or modify it " - "under the terms of the GNU General Public License version 3, as published " - "by the Free Software Foundation."), - N_("This program is distributed in the hope that it will be useful, but " - "WITHOUT ANY WARRANTY; without even the implied warranties of " - "MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR " - "PURPOSE. See the GNU General Public License for more details."), - N_("You should have received a copy of the GNU General Public License along " - "with this program. If not, see <http://www.gnu.org/licenses/>."), - NULL - }; - gchar *license_i18n; - - license_i18n = g_strconcat (_(license[0]), "\n\n", _(license[1]), "\n\n", _(license[2]), NULL); - - gtk_show_about_dialog(NULL, - "version", VERSION, - "copyright", "Copyright \xc2\xa9 2009 Canonical, Ltd.", - "comments", _("A place to adjust your status, change users or exit your session."), - "authors", authors, - "license", license_i18n, - "wrap-license", TRUE, - "translator-credits", _("translator-credits"), - "logo-icon-name", "indicator-applet", - "icon-name", "indicator-applet", - "website", "http://launchpad.net/indicator-applet", - "website-label", _("Indicator Applet Website"), - NULL - ); - - g_free (license_i18n); - - return; -} - -#ifdef N_ -#undef N_ -#endif -#define N_(x) x - -static gboolean -applet_fill_cb (PanelApplet * applet, const gchar * iid, gpointer data) -{ - static const BonoboUIVerb menu_verbs[] = { - BONOBO_UI_VERB ("IndicatorAppletAbout", about_cb), - BONOBO_UI_VERB_END - }; - static const gchar * menu_xml = - "<popup name=\"button3\">" - "<menuitem name=\"About Item\" verb=\"IndicatorAppletAbout\" _label=\"" N_("_About") "\" pixtype=\"stock\" pixname=\"gtk-about\"/>" - "</popup>"; - - GtkWidget *menubar; - gint i; - gint indicators_loaded = 0; - static gboolean first_time = FALSE; - - /* check if we are running stracciatella session */ - if (g_strcmp0(g_getenv("GDMSESSION"), "gnome-stracciatella") == 0) { - g_debug("Running stracciatella GNOME session, disabling myself"); - return TRUE; - } - - if (!first_time) - { - first_time = TRUE; - g_set_application_name(_("Indicator Applet Session")); - } - - /* Set panel options */ - gtk_container_set_border_width(GTK_CONTAINER (applet), 0); - panel_applet_set_flags(applet, PANEL_APPLET_EXPAND_MINOR); - panel_applet_setup_menu(applet, menu_xml, menu_verbs, NULL); - atk_object_set_name (gtk_widget_get_accessible (GTK_WIDGET (applet)), - "indicator-applet-session"); - - /* Init some theme/icon stuff */ - gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), - INDICATOR_ICONS_DIR); - /* g_debug("Icons directory: %s", INDICATOR_ICONS_DIR); */ - gtk_rc_parse_string ( - "style \"indicator-applet-style\"\n" - "{\n" - " GtkMenuBar::shadow-type = none\n" - " GtkMenuBar::internal-padding = 0\n" - " GtkWidget::focus-line-width = 0\n" - " GtkWidget::focus-padding = 0\n" - "}\n" - "style \"indicator-applet-menubar-style\"\n" - "{\n" - " GtkMenuBar::shadow-type = none\n" - " GtkMenuBar::internal-padding = 0\n" - " GtkWidget::focus-line-width = 0\n" - " GtkWidget::focus-padding = 0\n" - " GtkMenuItem::horizontal-padding = 0\n" - "}\n" - "style \"indicator-applet-menuitem-style\"\n" - "{\n" - " GtkWidget::focus-line-width = 0\n" - " GtkWidget::focus-padding = 0\n" - " GtkMenuItem::horizontal-padding = 0\n" - "}\n" - "widget \"*.fast-user-switch-applet\" style \"indicator-applet-style\"" - "widget \"*.fast-user-switch-menuitem\" style \"indicator-applet-menuitem-style\"" - "widget \"*.fast-user-switch-menubar\" style \"indicator-applet-menubar-style\""); - //gtk_widget_set_name(GTK_WIDGET (applet), "indicator-applet-menubar"); - gtk_widget_set_name(GTK_WIDGET (applet), "fast-user-switch-applet"); - - /* Build menubar */ - menubar = gtk_menu_bar_new(); - GTK_WIDGET_SET_FLAGS (menubar, GTK_WIDGET_FLAGS(menubar) | GTK_CAN_FOCUS); - gtk_widget_set_name(GTK_WIDGET (menubar), "fast-user-switch-menubar"); - g_signal_connect(menubar, "button-press-event", G_CALLBACK(menubar_press), NULL); - g_signal_connect_after(menubar, "expose-event", G_CALLBACK(menubar_on_expose), menubar); - gtk_container_set_border_width(GTK_CONTAINER(menubar), 0); - - /* load 'em */ - if (g_file_test(INDICATOR_DIR, (G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))) { - GDir * dir = g_dir_open(INDICATOR_DIR, 0, NULL); - - const gchar * name; - while ((name = g_dir_read_name(dir)) != NULL) { - if (g_strcmp0(name, "libsession.so") && g_strcmp0(name, "libme.so")) { - continue; - } - if (load_module(name, menubar)) { - indicators_loaded++; - } - } - g_dir_close (dir); - } - - if (indicators_loaded == 0) { - /* A label to allow for click through */ - GtkWidget * item = gtk_label_new(_("No Indicators")); - gtk_container_add(GTK_CONTAINER(applet), item); - gtk_widget_show(item); - } else { - gtk_container_add(GTK_CONTAINER(applet), menubar); - panel_applet_set_background_widget(applet, menubar); - gtk_widget_show(menubar); - } - - /* Background of applet */ - g_signal_connect(applet, "change-background", - G_CALLBACK(cw_panel_background_changed), menubar); - - gtk_widget_show(GTK_WIDGET(applet)); - - return TRUE; -} - -static void -cw_panel_background_changed (PanelApplet *applet, - PanelAppletBackgroundType type, - GdkColor *colour, - GdkPixmap *pixmap, - GtkWidget *menubar) -{ - GtkRcStyle *rc_style; - GtkStyle *style; - - /* reset style */ - gtk_widget_set_style(GTK_WIDGET (applet), NULL); - gtk_widget_set_style(menubar, NULL); - rc_style = gtk_rc_style_new (); - gtk_widget_modify_style(GTK_WIDGET (applet), rc_style); - gtk_widget_modify_style(menubar, rc_style); - gtk_rc_style_unref(rc_style); - - switch (type) - { - case PANEL_NO_BACKGROUND: - break; - case PANEL_COLOR_BACKGROUND: - gtk_widget_modify_bg(GTK_WIDGET (applet), GTK_STATE_NORMAL, colour); - gtk_widget_modify_bg(menubar, GTK_STATE_NORMAL, colour); - break; - - case PANEL_PIXMAP_BACKGROUND: - style = gtk_style_copy(GTK_WIDGET (applet)->style); - if (style->bg_pixmap[GTK_STATE_NORMAL]) - g_object_unref(style->bg_pixmap[GTK_STATE_NORMAL]); - style->bg_pixmap[GTK_STATE_NORMAL] = g_object_ref (pixmap); - gtk_widget_set_style(GTK_WIDGET (applet), style); - gtk_widget_set_style(GTK_WIDGET (menubar), style); - g_object_unref(style); - break; - } -} - === modified file 'src/Makefile.am' --- src/Makefile.am 2009-08-24 18:22:32 +0000 +++ src/Makefile.am 2010-01-04 18:47:50 +0000 @@ -1,17 +1,50 @@ libexec_PROGRAMS = \ - indicator-applet + indicator-applet \ + indicator-applet-session \ + indicator-applet-complete indicator_applet_CFLAGS = \ -DG_LOG_DOMAIN=\""Indicator-Applet"\" \ -DDATADIR=\""$(datadir)"\" \ -DINDICATOR_DIR=\""$(INDICATORDIR)"\" \ -DINDICATOR_ICONS_DIR=\""$(INDICATORICONSDIR)"\" \ + -DINDICATOR_APPLET \ -I$(srcdir)/.. \ $(APPLET_CFLAGS) -indicator_applet_SOURCES = \ +indicator_applet_SOURCES = \ applet-main.c indicator_applet_LDADD = \ $(APPLET_LIBS) + +indicator_applet_session_CFLAGS = \ + -DG_LOG_DOMAIN=\""Indicator-Applet-Session"\" \ + -DDATADIR=\""$(datadir)"\" \ + -DINDICATOR_DIR=\""$(INDICATORDIR)"\" \ + -DINDICATOR_ICONS_DIR=\""$(INDICATORICONSDIR)"\" \ + -DINDICATOR_APPLET_SESSION \ + -I$(srcdir)/.. \ + $(APPLET_CFLAGS) + +indicator_applet_session_SOURCES = \ + applet-main.c + +indicator_applet_session_LDADD = \ + $(APPLET_LIBS) + +indicator_applet_complete_CFLAGS = \ + -DG_LOG_DOMAIN=\""Indicator-Applet-Complete"\" \ + -DDATADIR=\""$(datadir)"\" \ + -DINDICATOR_DIR=\""$(INDICATORDIR)"\" \ + -DINDICATOR_ICONS_DIR=\""$(INDICATORICONSDIR)"\" \ + -DINDICATOR_APPLET_COMPLETE \ + -I$(srcdir)/.. \ + $(APPLET_CFLAGS) + +indicator_applet_complete_SOURCES = \ + applet-main.c + +indicator_applet_complete_LDADD = \ + $(APPLET_LIBS) === modified file 'src/applet-main.c' --- src/applet-main.c 2010-01-04 02:23:10 +0000 +++ src/applet-main.c 2010-01-04 19:21:21 +0000 @@ -40,10 +40,24 @@ * main * ***********/ +#ifdef INDICATOR_APPLET PANEL_APPLET_BONOBO_FACTORY ("OAFIID:GNOME_IndicatorApplet_Factory", PANEL_TYPE_APPLET, "indicator-applet", "0", applet_fill_cb, NULL); +#endif +#ifdef INDICATOR_APPLET_SESSION +PANEL_APPLET_BONOBO_FACTORY ("OAFIID:GNOME_FastUserSwitchApplet_Factory", + PANEL_TYPE_APPLET, + "indicator-applet-session", "0", + applet_fill_cb, NULL); +#endif +#ifdef INDICATOR_APPLET_COMPLETE +PANEL_APPLET_BONOBO_FACTORY ("OAFIID:GNOME_IndicatorAppletComplete_Factory", + PANEL_TYPE_APPLET, + "indicator-applet-complete", "0", + applet_fill_cb, NULL); +#endif /************* * init function @@ -188,7 +202,11 @@ gtk_show_about_dialog(NULL, "version", VERSION, "copyright", "Copyright \xc2\xa9 2009 Canonical, Ltd.", +#ifdef INDICATOR_APPLET_SESSION + "comments", _("A place to adjust your status, change users or exit your session."), +#else "comments", _("An applet to hold all of the system indicators."), +#endif "authors", authors, "license", license_i18n, "wrap-license", TRUE, @@ -227,18 +245,44 @@ gint indicators_loaded = 0; static gboolean first_time = FALSE; +#ifdef INDICATOR_APPLET_SESSION + /* check if we are running stracciatella session */ + if (g_strcmp0(g_getenv("GDMSESSION"), "gnome-stracciatella") == 0) { + g_debug("Running stracciatella GNOME session, disabling myself"); + return TRUE; + } +#endif + if (!first_time) { first_time = TRUE; +#ifdef INDICATOR_APPLET g_set_application_name(_("Indicator Applet")); +#endif +#ifdef INDICATOR_APPLET_SESSION + g_set_application_name(_("Indicator Applet Session")); +#endif +#ifdef INDICATOR_APPLET_COMPLETE + g_set_application_name(_("Indicator Applet Complete")); +#endif } /* Set panel options */ gtk_container_set_border_width(GTK_CONTAINER (applet), 0); panel_applet_set_flags(applet, PANEL_APPLET_EXPAND_MINOR); panel_applet_setup_menu(applet, menu_xml, menu_verbs, NULL); - atk_object_set_name (gtk_widget_get_accessible (GTK_WIDGET (applet)), - "indicator-applet"); +#ifdef INDICATOR_APPLET + atk_object_set_name (gtk_widget_get_accessible (GTK_WIDGET (applet)), + "indicator-applet"); +#endif +#ifdef INDICATOR_APPLET_SESSION + atk_object_set_name (gtk_widget_get_accessible (GTK_WIDGET (applet)), + "indicator-applet-session"); +#endif +#ifdef INDICATOR_APPLET_COMPLETE + atk_object_set_name (gtk_widget_get_accessible (GTK_WIDGET (applet)), + "indicator-applet-complete"); +#endif /* Init some theme/icon stuff */ gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), @@ -286,12 +330,19 @@ const gchar * name; while ((name = g_dir_read_name(dir)) != NULL) { +#ifdef INDICATOR_APPLET if (!g_strcmp0(name, "libsession.so")) { continue; } if (!g_strcmp0(name, "libme.so")) { continue; } +#endif +#ifdef INDICATOR_APPLET_SESSION + if (g_strcmp0(name, "libsession.so") && g_strcmp0(name, "libme.so")) { + continue; + } +#endif if (load_module(name, menubar)) { indicators_loaded++; }
_______________________________________________ Mailing list: https://launchpad.net/~ayatana-commits Post to : [email protected] Unsubscribe : https://launchpad.net/~ayatana-commits More help : https://help.launchpad.net/ListHelp

