From 10e30f7dc7fd6746ede74fa9bda4e937c6e08ddc Mon Sep 17 00:00:00 2001 From: Sander Dijkhuis Date: Sun, 12 Jul 2009 23:44:06 +0200 Subject: [PATCH] Bug 588405 - Handle status menu button appearance in JavaScript Make the ClutterText and ClutterTexture from the status menu button available to JavaScript, and from there improve the font definition of the user name. shell-status-menu.[ch]: Add public get_name() and get_icon() functions that return the user name label and icon texture, remove the markup from update_name_text(). panel.js: Set the font for the button consistently with that of the other panel labels. --- js/ui/panel.js | 1 + src/shell-status-menu.c | 31 ++++++++++++++++++++++++++----- src/shell-status-menu.h | 3 +++ 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/js/ui/panel.js b/js/ui/panel.js index 24ac5d240..a7f682769 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js @@ -93,6 +93,7 @@ Panel.prototype = { let statusbox = new Big.Box(); let statusmenu = this._statusmenu = new Shell.StatusMenu(); + statusmenu.get_name().fontName = 'Sans Bold 16px'; statusbox.append(this._statusmenu, Big.BoxPackFlags.NONE); let statusbutton = new Button.Button(statusbox, PANEL_BUTTON_COLOR, PRESSED_BUTTON_BACKGROUND_COLOR, true, null, PANEL_HEIGHT); diff --git a/src/shell-status-menu.c b/src/shell-status-menu.c index fa0be00b9..4507d6a78 100644 --- a/src/shell-status-menu.c +++ b/src/shell-status-menu.c @@ -117,12 +117,9 @@ static void update_name_text (ShellStatusMenu *status) { ShellStatusMenuPrivate *priv = status->priv; - char *markup; - markup = g_markup_printf_escaped("%s", - gdm_user_get_real_name (GDM_USER (priv->user))); - clutter_text_set_markup (priv->name, markup); - g_free (markup); + clutter_text_set_text (priv->name, + gdm_user_get_real_name (GDM_USER (priv->user))); } static void @@ -655,3 +652,27 @@ shell_status_menu_toggle (ShellStatusMenu *status, ClutterEvent *event) status, 1, event->button.time); } } + +/** + * shell_status_menu_get_name: + * @menu: a #ShellStatusMenu + * + * Return value: (transfer none): the #ClutterText actor with the user's name. + */ +ClutterText * +shell_status_menu_get_name (ShellStatusMenu *menu) +{ + return menu->priv->name; +} + +/** + * shell_status_menu_get_icon: + * @menu: a #ShellStatusMenu + * + * Return value: (transfer none): the #ClutterTexture actor with the user icon. + */ +ClutterTexture * +shell_status_menu_get_icon (ShellStatusMenu *menu) +{ + return menu->priv->user_icon; +} diff --git a/src/shell-status-menu.h b/src/shell-status-menu.h index d31dca67b..983174187 100644 --- a/src/shell-status-menu.h +++ b/src/shell-status-menu.h @@ -37,6 +37,9 @@ GType shell_status_menu_get_type (void); void shell_status_menu_toggle (ShellStatusMenu *menu, ClutterEvent *event); +ClutterText *shell_status_menu_get_name (ShellStatusMenu *menu); +ClutterTexture *shell_status_menu_get_icon (ShellStatusMenu *menu); + G_END_DECLS #endif /* __SHELL_STATUS_MENU_H__ */