Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(418)

Side by Side Diff: chrome/browser/gtk/create_application_shortcuts_dialog_gtk.cc

Issue 5760001: [gtk] fix line wrap issue on app shortcut dialog (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: resizable=false Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/gtk/create_application_shortcuts_dialog_gtk.h" 5 #include "chrome/browser/gtk/create_application_shortcuts_dialog_gtk.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "base/environment.h" 10 #include "base/environment.h"
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 void CreateApplicationShortcutsDialogGtk::CreateDialogBox(GtkWindow* parent) { 80 void CreateApplicationShortcutsDialogGtk::CreateDialogBox(GtkWindow* parent) {
81 // Build the dialog. 81 // Build the dialog.
82 create_dialog_ = gtk_dialog_new_with_buttons( 82 create_dialog_ = gtk_dialog_new_with_buttons(
83 l10n_util::GetStringUTF8(IDS_CREATE_SHORTCUTS_TITLE).c_str(), 83 l10n_util::GetStringUTF8(IDS_CREATE_SHORTCUTS_TITLE).c_str(),
84 parent, 84 parent,
85 (GtkDialogFlags) (GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR), 85 (GtkDialogFlags) (GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR),
86 GTK_STOCK_CANCEL, 86 GTK_STOCK_CANCEL,
87 GTK_RESPONSE_REJECT, 87 GTK_RESPONSE_REJECT,
88 NULL); 88 NULL);
89 gtk_widget_realize(create_dialog_); 89 gtk_widget_realize(create_dialog_);
90 gtk_util::SetWindowSizeFromResources(GTK_WINDOW(create_dialog_), 90 gtk_window_set_resizable(GTK_WINDOW(create_dialog_), false);
91 IDS_CREATE_SHORTCUTS_DIALOG_WIDTH_CHARS,
92 -1, // height
93 false); // resizable
94 gtk_util::AddButtonToDialog(create_dialog_, 91 gtk_util::AddButtonToDialog(create_dialog_,
95 l10n_util::GetStringUTF8(IDS_CREATE_SHORTCUTS_COMMIT).c_str(), 92 l10n_util::GetStringUTF8(IDS_CREATE_SHORTCUTS_COMMIT).c_str(),
96 GTK_STOCK_APPLY, GTK_RESPONSE_ACCEPT); 93 GTK_STOCK_APPLY, GTK_RESPONSE_ACCEPT);
97 94
98 GtkWidget* content_area = GTK_DIALOG(create_dialog_)->vbox; 95 GtkWidget* content_area = GTK_DIALOG(create_dialog_)->vbox;
99 gtk_box_set_spacing(GTK_BOX(content_area), gtk_util::kContentAreaSpacing); 96 gtk_box_set_spacing(GTK_BOX(content_area), gtk_util::kContentAreaSpacing);
100 97
101 GtkWidget* vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); 98 GtkWidget* vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing);
102 gtk_container_add(GTK_CONTAINER(content_area), vbox); 99 gtk_container_add(GTK_CONTAINER(content_area), vbox);
103 100
104 // Create a box containing basic information about the new shortcut: an image 101 // Create a box containing basic information about the new shortcut: an image
105 // on the left, and a description on the right. 102 // on the left, and a description on the right.
106 GtkWidget* hbox = gtk_hbox_new(FALSE, gtk_util::kControlSpacing); 103 GtkWidget* hbox = gtk_hbox_new(FALSE, gtk_util::kControlSpacing);
107 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 104 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
108 gtk_container_set_border_width(GTK_CONTAINER(hbox), 105 gtk_container_set_border_width(GTK_CONTAINER(hbox),
109 gtk_util::kControlSpacing); 106 gtk_util::kControlSpacing);
110 107
111 // Put the icon preview in place. 108 // Put the icon preview in place.
112 GtkWidget* favicon_image = gtk_image_new_from_pixbuf(favicon_pixbuf_); 109 GtkWidget* favicon_image = gtk_image_new_from_pixbuf(favicon_pixbuf_);
113 gtk_box_pack_start(GTK_BOX(hbox), favicon_image, FALSE, FALSE, 0); 110 gtk_box_pack_start(GTK_BOX(hbox), favicon_image, FALSE, FALSE, 0);
114 111
115 // Create the label with application shortcut description. 112 // Create the label with application shortcut description.
116 GtkWidget* description_label = gtk_label_new(NULL); 113 GtkWidget* description_label = gtk_label_new(NULL);
117 gtk_box_pack_start(GTK_BOX(hbox), description_label, FALSE, FALSE, 0); 114 gtk_box_pack_start(GTK_BOX(hbox), description_label, FALSE, FALSE, 0);
118 gtk_label_set_line_wrap(GTK_LABEL(description_label), TRUE); 115 gtk_label_set_line_wrap(GTK_LABEL(description_label), TRUE);
119 gtk_widget_realize(description_label); 116 gtk_widget_realize(description_label);
120 int label_height; 117
121 gtk_util::GetWidgetSizeFromCharacters(description_label, -1, 118 // Set the size request on the label so it knows where to line wrap. The width
122 kDescriptionLabelHeightLines, NULL, 119 // is the desired size of the dialog less the space reserved for padding and
123 &label_height); 120 // the image.
124 gtk_widget_set_size_request(description_label, -1, label_height); 121 int label_width, label_height;
122 gtk_util::GetWidgetSizeFromResources(
123 description_label,
124 IDS_CREATE_SHORTCUTS_DIALOG_WIDTH_CHARS, -1, &label_width, NULL);
125 label_width -= gtk_util::kControlSpacing * 3 +
126 gdk_pixbuf_get_width(favicon_pixbuf_);
127 gtk_util::GetWidgetSizeFromCharacters(
128 description_label, -1, kDescriptionLabelHeightLines, NULL, &label_height);
129 gtk_widget_set_size_request(description_label, label_width, label_height);
125 gtk_misc_set_alignment(GTK_MISC(description_label), 0, 0.5); 130 gtk_misc_set_alignment(GTK_MISC(description_label), 0, 0.5);
126 std::string description(UTF16ToUTF8(shortcut_info_.description)); 131 std::string description(UTF16ToUTF8(shortcut_info_.description));
127 std::string title(UTF16ToUTF8(shortcut_info_.title)); 132 std::string title(UTF16ToUTF8(shortcut_info_.title));
128 gtk_label_set_text(GTK_LABEL(description_label), 133 gtk_label_set_text(GTK_LABEL(description_label),
129 (description.empty() ? title : description).c_str()); 134 (description.empty() ? title : description).c_str());
130 135
131 // Label on top of the checkboxes. 136 // Label on top of the checkboxes.
132 GtkWidget* checkboxes_label = gtk_label_new( 137 GtkWidget* checkboxes_label = gtk_label_new(
133 l10n_util::GetStringUTF8(IDS_CREATE_SHORTCUTS_LABEL).c_str()); 138 l10n_util::GetStringUTF8(IDS_CREATE_SHORTCUTS_LABEL).c_str());
134 gtk_misc_set_alignment(GTK_MISC(checkboxes_label), 0, 0); 139 gtk_misc_set_alignment(GTK_MISC(checkboxes_label), 0, 0);
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 SkBitmap* image, ExtensionResource resource, int index) { 321 SkBitmap* image, ExtensionResource resource, int index) {
317 if (image->isNull()) { 322 if (image->isNull()) {
318 NOTREACHED() << "Corrupt image in profile?"; 323 NOTREACHED() << "Corrupt image in profile?";
319 return; 324 return;
320 } 325 }
321 shortcut_info_.favicon = *image; 326 shortcut_info_.favicon = *image;
322 327
323 CreateIconPixBuf(*image); 328 CreateIconPixBuf(*image);
324 CreateDialogBox(parent_); 329 CreateDialogBox(parent_);
325 } 330 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698