summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/bookmark_table_view.cc
diff options
context:
space:
mode:
authorsky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-11 03:59:44 +0000
committersky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-11 03:59:44 +0000
commitb24740e3b9555bc7b28b602a588a36665882602e (patch)
tree1f5714dc4f932b4707455717d68f1eced18c1052 /chrome/browser/views/bookmark_table_view.cc
parent4831051e6bce5f55c3954bea208c0ce118ea25ff (diff)
downloadchromium_src-b24740e3b9555bc7b28b602a588a36665882602e.zip
chromium_src-b24740e3b9555bc7b28b602a588a36665882602e.tar.gz
chromium_src-b24740e3b9555bc7b28b602a588a36665882602e.tar.bz2
Fixes a handful of related bookmark manager bugs/requests:
. Adds a search field before the text field. . When the search node is selected and there are no results or no search text, a descriptive label is drawn on top of the table telling the user what's happening. . In the bookmark menus Edit... is now Rename... for folders. BUG=5272 5319 5273 4165 TEST=see individual bugs Review URL: http://codereview.chromium.org/13724 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6777 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/bookmark_table_view.cc')
-rw-r--r--chrome/browser/views/bookmark_table_view.cc45
1 files changed, 45 insertions, 0 deletions
diff --git a/chrome/browser/views/bookmark_table_view.cc b/chrome/browser/views/bookmark_table_view.cc
index 33d92df..9241723f 100644
--- a/chrome/browser/views/bookmark_table_view.cc
+++ b/chrome/browser/views/bookmark_table_view.cc
@@ -10,9 +10,12 @@
#include "chrome/browser/bookmarks/bookmark_table_model.h"
#include "chrome/browser/profile.h"
#include "chrome/common/drag_drop_types.h"
+#include "chrome/common/gfx/chrome_canvas.h"
+#include "chrome/common/gfx/chrome_font.h"
#include "chrome/common/os_exchange_data.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/pref_service.h"
+#include "chrome/common/resource_bundle.h"
#include "chrome/views/view_constants.h"
#include "generated_resources.h"
@@ -128,6 +131,18 @@ void BookmarkTableView::SaveColumnConfiguration() {
}
}
+void BookmarkTableView::SetAltText(const std::wstring& alt_text) {
+ if (alt_text == alt_text_)
+ return;
+
+ alt_text_ = alt_text;
+ if (!GetNativeControlHWND())
+ return;
+
+ RECT alt_text_bounds = GetAltTextBounds().ToRECT();
+ InvalidateRect(GetNativeControlHWND(), &alt_text_bounds, FALSE);
+}
+
void BookmarkTableView::SetShowPathColumn(bool show_path_column) {
if (show_path_column == show_path_column_)
return;
@@ -139,6 +154,8 @@ void BookmarkTableView::SetShowPathColumn(bool show_path_column) {
}
void BookmarkTableView::PostPaint() {
+ PaintAltText();
+
if (!drop_info_.get() || drop_info_->position().index == -1 ||
drop_info_->position().on) {
return;
@@ -403,3 +420,31 @@ void BookmarkTableView::UpdateColumns() {
SetColumnVisibility(columns[i].id, true);
OnModelChanged();
}
+
+void BookmarkTableView::PaintAltText() {
+ if (alt_text_.empty())
+ return;
+
+ HDC dc = GetDC(GetNativeControlHWND());
+ ChromeFont font = GetAltTextFont();
+ gfx::Rect bounds = GetAltTextBounds();
+ ChromeCanvas canvas(bounds.width(), bounds.height(), false);
+ canvas.DrawStringInt(alt_text_, font, SK_ColorDKGRAY, 0, 0, bounds.width(),
+ bounds.height());
+ canvas.getTopPlatformDevice().drawToHDC(dc, bounds.x(), bounds.y(), NULL);
+ ReleaseDC(GetNativeControlHWND(), dc);
+}
+
+gfx::Rect BookmarkTableView::GetAltTextBounds() {
+ static const int kXOffset = 16;
+ DCHECK(GetNativeControlHWND());
+ CRect client_rect;
+ GetClientRect(GetNativeControlHWND(), client_rect);
+ ChromeFont font = GetAltTextFont();
+ return gfx::Rect(kXOffset, content_offset(), client_rect.Width() - kXOffset,
+ std::max(kImageSize, font.height()));
+}
+
+ChromeFont BookmarkTableView::GetAltTextFont() {
+ return ResourceBundle::GetSharedInstance().GetFont(ResourceBundle::BaseFont);
+}