Commit 438dfd74 authored by akuegel@chromium.org's avatar akuegel@chromium.org

Adjust avatar menu and avatar label to the look on windows.

This CL adjusts the look of the avatar menu for managed users
to how it looks like on other platforms like windows. A
screenshot can be found at the end of the bug description.

BUG=241387

Review URL: https://chromiumcodereview.appspot.com/17544002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208073 0039d316-1c4b-4281-b951-d872f2087c98
parent 02904044
...@@ -124,17 +124,6 @@ void AvatarMenuBubbleGtk::OnSwitchProfileLinkClicked(GtkWidget* link) { ...@@ -124,17 +124,6 @@ void AvatarMenuBubbleGtk::OnSwitchProfileLinkClicked(GtkWidget* link) {
OnAvatarMenuModelChanged(avatar_menu_model_.get()); OnAvatarMenuModelChanged(avatar_menu_model_.get());
} }
void AvatarMenuBubbleGtk::OnRealize(GtkWidget* parent_widget) {
if (!managed_user_info_ || !theme_service_->UsingNativeTheme())
return;
// Use the same background color for the GtkTextView as the background color
// of the enclosing widget.
GtkStyle* style = gtk_widget_get_style(parent_widget);
GdkColor bg_color = style->bg[GTK_STATE_NORMAL];
gtk_widget_modify_base(managed_user_info_, GTK_STATE_NORMAL, &bg_color);
}
void AvatarMenuBubbleGtk::InitMenuContents() { void AvatarMenuBubbleGtk::InitMenuContents() {
size_t profile_count = avatar_menu_model_->GetNumberOfItems(); size_t profile_count = avatar_menu_model_->GetNumberOfItems();
GtkWidget* items_vbox = gtk_vbox_new(FALSE, ui::kContentAreaSpacing); GtkWidget* items_vbox = gtk_vbox_new(FALSE, ui::kContentAreaSpacing);
...@@ -183,40 +172,29 @@ void AvatarMenuBubbleGtk::InitManagedUserContents() { ...@@ -183,40 +172,29 @@ void AvatarMenuBubbleGtk::InitManagedUserContents() {
gtk_box_pack_start(GTK_BOX(inner_contents_), gtk_box_pack_start(GTK_BOX(inner_contents_),
gtk_hseparator_new(), TRUE, TRUE, 0); gtk_hseparator_new(), TRUE, TRUE, 0);
// Add information about managed users. // Add information about managed users within a hbox.
managed_user_info_ = gtk_text_view_new(); GtkWidget* managed_user_info = gtk_hbox_new(FALSE, 5);
gtk_text_view_set_editable(GTK_TEXT_VIEW(managed_user_info_), FALSE);
gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(managed_user_info_), FALSE);
GtkTextBuffer* text_buffer =
gtk_text_view_get_buffer(GTK_TEXT_VIEW(managed_user_info_));
std::string info =
UTF16ToUTF8(avatar_menu_model_->GetManagedUserInformation());
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(managed_user_info_), GTK_WRAP_WORD);
// Insert the managed user icon. Insert it inside a hbox in order to be able
// to define a padding around it.
GtkTextIter start_iter;
gtk_text_buffer_get_start_iter(text_buffer, &start_iter);
GtkWidget* icon_box = gtk_hbox_new(FALSE, 0);
GdkPixbuf* limited_user_pixbuf = GdkPixbuf* limited_user_pixbuf =
avatar_menu_model_->GetManagedUserIcon().ToGdkPixbuf(); avatar_menu_model_->GetManagedUserIcon().ToGdkPixbuf();
GtkWidget* limited_user_img = gtk_image_new_from_pixbuf(limited_user_pixbuf); GtkWidget* limited_user_img = gtk_image_new_from_pixbuf(limited_user_pixbuf);
gtk_box_pack_start(GTK_BOX(icon_box), limited_user_img, FALSE, FALSE, 5); GtkWidget* icon_align = gtk_alignment_new(0, 0, 0, 0);
GtkTextChildAnchor* anchor = gtk_container_add(GTK_CONTAINER(icon_align), limited_user_img);
gtk_text_buffer_create_child_anchor(text_buffer, &start_iter); gtk_box_pack_start(GTK_BOX(managed_user_info), icon_align, FALSE, FALSE, 0);
gtk_text_view_add_child_at_anchor( GtkWidget* status_label =
GTK_TEXT_VIEW(managed_user_info_), icon_box, anchor); theme_service_->BuildLabel(std::string(), ui::kGdkBlack);
char* markup = g_markup_printf_escaped(
// Insert the information text. "<span size='small'>%s</span>",
GtkTextIter end_iter; UTF16ToUTF8(avatar_menu_model_->GetManagedUserInformation()).c_str());
gtk_text_buffer_get_end_iter(text_buffer, &end_iter); const int kLabelWidth = 150;
GtkTextTag* text_tag = gtk_text_buffer_create_tag( gtk_widget_set_size_request(status_label, kLabelWidth, -1);
text_buffer, NULL, "size-set", TRUE, "size", 10 * PANGO_SCALE, NULL); gtk_label_set_markup(GTK_LABEL(status_label), markup);
gtk_text_buffer_insert_with_tags( gtk_label_set_line_wrap(GTK_LABEL(status_label), TRUE);
text_buffer, &end_iter, info.c_str(), info.size(), text_tag, NULL); gtk_misc_set_alignment(GTK_MISC(status_label), 0, 0);
g_free(markup);
gtk_box_pack_start(GTK_BOX(managed_user_info), status_label, FALSE, FALSE, 0);
gtk_box_pack_start( gtk_box_pack_start(
GTK_BOX(inner_contents_), managed_user_info_, FALSE, FALSE, 0); GTK_BOX(inner_contents_), managed_user_info, FALSE, FALSE, 0);
gtk_box_pack_start( gtk_box_pack_start(
GTK_BOX(inner_contents_), gtk_hseparator_new(), TRUE, TRUE, 0); GTK_BOX(inner_contents_), gtk_hseparator_new(), TRUE, TRUE, 0);
...@@ -226,14 +204,10 @@ void AvatarMenuBubbleGtk::InitManagedUserContents() { ...@@ -226,14 +204,10 @@ void AvatarMenuBubbleGtk::InitManagedUserContents() {
g_signal_connect(switch_profile_link, "clicked", g_signal_connect(switch_profile_link, "clicked",
G_CALLBACK(OnSwitchProfileLinkClickedThunk), this); G_CALLBACK(OnSwitchProfileLinkClickedThunk), this);
GtkWidget* link_align = gtk_alignment_new(0, 0, 0, 0); GtkWidget* link_align = gtk_alignment_new(0.5, 0, 0, 0);
gtk_alignment_set_padding(GTK_ALIGNMENT(link_align),
0, 0, kNewProfileLinkLeftPadding, 0);
gtk_container_add(GTK_CONTAINER(link_align), switch_profile_link); gtk_container_add(GTK_CONTAINER(link_align), switch_profile_link);
gtk_box_pack_start(GTK_BOX(inner_contents_), link_align, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(inner_contents_), link_align, FALSE, FALSE, 0);
g_signal_connect(
inner_contents_, "realize", G_CALLBACK(OnRealizeThunk), this);
} }
void AvatarMenuBubbleGtk::InitContents() { void AvatarMenuBubbleGtk::InitContents() {
......
...@@ -51,7 +51,6 @@ class AvatarMenuBubbleGtk : public BubbleDelegateGtk, ...@@ -51,7 +51,6 @@ class AvatarMenuBubbleGtk : public BubbleDelegateGtk,
GtkRequisition*); GtkRequisition*);
CHROMEGTK_CALLBACK_0(AvatarMenuBubbleGtk, void, OnNewProfileLinkClicked); CHROMEGTK_CALLBACK_0(AvatarMenuBubbleGtk, void, OnNewProfileLinkClicked);
CHROMEGTK_CALLBACK_0(AvatarMenuBubbleGtk, void, OnSwitchProfileLinkClicked); CHROMEGTK_CALLBACK_0(AvatarMenuBubbleGtk, void, OnSwitchProfileLinkClicked);
CHROMEGTK_CALLBACK_0(AvatarMenuBubbleGtk, void, OnRealize);
// Create all widgets in this bubble. // Create all widgets in this bubble.
void InitContents(); void InitContents();
...@@ -75,10 +74,6 @@ class AvatarMenuBubbleGtk : public BubbleDelegateGtk, ...@@ -75,10 +74,6 @@ class AvatarMenuBubbleGtk : public BubbleDelegateGtk,
// widgets in the bubble. // widgets in the bubble.
GtkWidget* inner_contents_; GtkWidget* inner_contents_;
// A weak pointer to the GtkTextView which holds general information about
// managed users.
GtkWidget* managed_user_info_;
// A weak pointer to the bubble window. // A weak pointer to the bubble window.
BubbleGtk* bubble_; BubbleGtk* bubble_;
......
...@@ -784,7 +784,7 @@ void BrowserTitlebar::UpdateAvatarLabel() { ...@@ -784,7 +784,7 @@ void BrowserTitlebar::UpdateAvatarLabel() {
gtk_widget_modify_bg( gtk_widget_modify_bg(
GTK_WIDGET(avatar_label_bg_), GTK_STATE_NORMAL, &label_background); GTK_WIDGET(avatar_label_bg_), GTK_STATE_NORMAL, &label_background);
char* markup = g_markup_printf_escaped( char* markup = g_markup_printf_escaped(
"<span size='small' weight='bold'>%s</span>", "<span size='small'>%s</span>",
l10n_util::GetStringUTF8(IDS_MANAGED_USER_AVATAR_LABEL).c_str()); l10n_util::GetStringUTF8(IDS_MANAGED_USER_AVATAR_LABEL).c_str());
gtk_label_set_markup(GTK_LABEL(avatar_label_), markup); gtk_label_set_markup(GTK_LABEL(avatar_label_), markup);
g_free(markup); g_free(markup);
...@@ -820,7 +820,7 @@ void BrowserTitlebar::UpdateAvatar() { ...@@ -820,7 +820,7 @@ void BrowserTitlebar::UpdateAvatar() {
Profile* profile = browser_window_->browser()->profile(); Profile* profile = browser_window_->browser()->profile();
if (ManagedUserService::ProfileIsManaged(profile)) { if (ManagedUserService::ProfileIsManaged(profile)) {
avatar_label_ = gtk_label_new(NULL); avatar_label_ = gtk_label_new(NULL);
gtk_misc_set_padding(GTK_MISC(avatar_label_), 2, 2); gtk_misc_set_padding(GTK_MISC(avatar_label_), 10, 2);
avatar_label_bg_ = gtk_event_box_new(); avatar_label_bg_ = gtk_event_box_new();
gtk_container_add(GTK_CONTAINER(avatar_label_bg_), avatar_label_); gtk_container_add(GTK_CONTAINER(avatar_label_bg_), avatar_label_);
g_signal_connect(avatar_label_bg_, "button-press-event", g_signal_connect(avatar_label_bg_, "button-press-event",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment