diff options
author | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-11 03:59:44 +0000 |
---|---|---|
committer | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-11 03:59:44 +0000 |
commit | b24740e3b9555bc7b28b602a588a36665882602e (patch) | |
tree | 1f5714dc4f932b4707455717d68f1eced18c1052 /chrome/browser/views/bookmark_table_view.cc | |
parent | 4831051e6bce5f55c3954bea208c0ce118ea25ff (diff) | |
download | chromium_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.cc | 45 |
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); +} |