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.
This commit is contained in:
Sander Dijkhuis 2009-07-12 23:44:06 +02:00
parent 177edc5444
commit 10e30f7dc7
3 changed files with 30 additions and 5 deletions

View File

@ -93,6 +93,7 @@ Panel.prototype = {
let statusbox = new Big.Box(); let statusbox = new Big.Box();
let statusmenu = this._statusmenu = new Shell.StatusMenu(); let statusmenu = this._statusmenu = new Shell.StatusMenu();
statusmenu.get_name().fontName = 'Sans Bold 16px';
statusbox.append(this._statusmenu, Big.BoxPackFlags.NONE); statusbox.append(this._statusmenu, Big.BoxPackFlags.NONE);
let statusbutton = new Button.Button(statusbox, PANEL_BUTTON_COLOR, PRESSED_BUTTON_BACKGROUND_COLOR, let statusbutton = new Button.Button(statusbox, PANEL_BUTTON_COLOR, PRESSED_BUTTON_BACKGROUND_COLOR,
true, null, PANEL_HEIGHT); true, null, PANEL_HEIGHT);

View File

@ -117,12 +117,9 @@ static void
update_name_text (ShellStatusMenu *status) update_name_text (ShellStatusMenu *status)
{ {
ShellStatusMenuPrivate *priv = status->priv; ShellStatusMenuPrivate *priv = status->priv;
char *markup;
markup = g_markup_printf_escaped("<b>%s</b>", clutter_text_set_text (priv->name,
gdm_user_get_real_name (GDM_USER (priv->user))); gdm_user_get_real_name (GDM_USER (priv->user)));
clutter_text_set_markup (priv->name, markup);
g_free (markup);
} }
static void static void
@ -655,3 +652,27 @@ shell_status_menu_toggle (ShellStatusMenu *status, ClutterEvent *event)
status, 1, event->button.time); 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;
}

View File

@ -37,6 +37,9 @@ GType shell_status_menu_get_type (void);
void shell_status_menu_toggle (ShellStatusMenu *menu, ClutterEvent *event); 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 G_END_DECLS
#endif /* __SHELL_STATUS_MENU_H__ */ #endif /* __SHELL_STATUS_MENU_H__ */