summaryrefslogtreecommitdiffstats
path: root/chrome/views/controls/button/native_button2.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/views/controls/button/native_button2.cc')
-rw-r--r--chrome/views/controls/button/native_button2.cc150
1 files changed, 0 insertions, 150 deletions
diff --git a/chrome/views/controls/button/native_button2.cc b/chrome/views/controls/button/native_button2.cc
deleted file mode 100644
index 0a12e59..0000000
--- a/chrome/views/controls/button/native_button2.cc
+++ /dev/null
@@ -1,150 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this
-// source code is governed by a BSD-style license that can be found in the
-// LICENSE file.
-
-#include "chrome/views/controls/button/native_button2.h"
-
-#include "base/logging.h"
-#include "chrome/common/l10n_util.h"
-
-namespace views {
-
-static int kButtonBorderHWidth = 8;
-
-// static
-const char NativeButton2::kViewClassName[] = "chrome/views/NativeButton";
-
-////////////////////////////////////////////////////////////////////////////////
-// NativeButton, public:
-
-NativeButton2::NativeButton2(ButtonListener* listener)
- : Button(listener),
- native_wrapper_(NULL),
- is_default_(false),
- ignore_minimum_size_(false),
- minimum_size_(50, 14) {
- // The min size in DLUs comes from
- // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwue/html/ch14e.asp
- InitBorder();
-}
-
-NativeButton2::NativeButton2(ButtonListener* listener,
- const std::wstring& label)
- : Button(listener),
- native_wrapper_(NULL),
- label_(label),
- is_default_(false),
- ignore_minimum_size_(false),
- minimum_size_(50, 14) {
- // The min size in DLUs comes from
- // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwue/html/ch14e.asp
- InitBorder();
-}
-
-NativeButton2::~NativeButton2() {
-}
-
-void NativeButton2::SetLabel(const std::wstring& label) {
- label_ = label;
-
- // Even though we create a flipped HWND for a native button when the locale
- // is right-to-left, Windows does not render text for the button using a
- // right-to-left context (perhaps because the parent HWND is not flipped).
- // The result is that RTL strings containing punctuation marks are not
- // displayed properly. For example, the string "...ABC" (where A, B and C are
- // Hebrew characters) is displayed as "ABC..." which is incorrect.
- //
- // In order to overcome this problem, we mark the localized Hebrew strings as
- // RTL strings explicitly (using the appropriate Unicode formatting) so that
- // Windows displays the text correctly regardless of the HWND hierarchy.
- std::wstring localized_label;
- if (l10n_util::AdjustStringForLocaleDirection(label_, &localized_label))
- label_ = localized_label;
-
- if (native_wrapper_)
- native_wrapper_->UpdateLabel();
-}
-
-void NativeButton2::SetIsDefault(bool is_default) {
- if (is_default == is_default_)
- return;
- is_default_ = is_default;
- if (native_wrapper_)
- native_wrapper_->UpdateDefault();
-}
-
-void NativeButton2::ButtonPressed() {
- RequestFocus();
-
- // TODO(beng): obtain mouse event flags for native buttons someday.
- NotifyClick(mouse_event_flags());
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// NativeButton, View overrides:
-
-gfx::Size NativeButton2::GetPreferredSize() {
- gfx::Size sz = native_wrapper_->GetView()->GetPreferredSize();
-
- // Add in the border size. (Do this before clamping the minimum size in case
- // that clamping causes an increase in size that would include the borders.
- gfx::Insets border = GetInsets();
- sz.set_width(sz.width() + border.left() + border.right());
- sz.set_height(sz.height() + border.top() + border.bottom());
-
- // Clamp the size returned to at least the minimum size.
- if (!ignore_minimum_size_) {
- if (minimum_size_.width()) {
- int min_width = font_.horizontal_dlus_to_pixels(minimum_size_.width());
- sz.set_width(std::max(static_cast<int>(sz.width()), min_width));
- }
- if (minimum_size_.height()) {
- int min_height = font_.vertical_dlus_to_pixels(minimum_size_.height());
- sz.set_height(std::max(static_cast<int>(sz.height()), min_height));
- }
- }
-
- return sz;
-}
-
-void NativeButton2::Layout() {
- if (native_wrapper_) {
- native_wrapper_->GetView()->SetBounds(0, 0, width(), height());
- native_wrapper_->GetView()->Layout();
- }
-}
-
-void NativeButton2::ViewHierarchyChanged(bool is_add, View* parent,
- View* child) {
- if (is_add && !native_wrapper_ && GetWidget()) {
- CreateWrapper();
- AddChildView(native_wrapper_->GetView());
- }
-}
-
-std::string NativeButton2::GetClassName() const {
- return kViewClassName;
-}
-
-bool NativeButton2::AcceleratorPressed(const Accelerator& accelerator) {
- if (IsEnabled()) {
- NotifyClick(mouse_event_flags());
- return true;
- }
- return false;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// NativeButton, protected:
-
-void NativeButton2::CreateWrapper() {
- native_wrapper_ = NativeButtonWrapper::CreateNativeButtonWrapper(this);
- native_wrapper_->UpdateLabel();
-}
-
-void NativeButton2::InitBorder() {
- set_border(Border::CreateEmptyBorder(0, kButtonBorderHWidth, 0,
- kButtonBorderHWidth));
-}
-
-} // namespace views