diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-28 18:37:36 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-28 18:37:36 +0000 |
commit | a6d1a8dd3f462cd7ac8d300bb9ee338df83ae9f6 (patch) | |
tree | a9a84b79888722e1d49176622403b3519bbbd9be /views/controls/scrollbar/native_scroll_bar_gtk.cc | |
parent | 3f88476f268065d212ac567ceb3a8c2501905f93 (diff) | |
download | chromium_src-a6d1a8dd3f462cd7ac8d300bb9ee338df83ae9f6.zip chromium_src-a6d1a8dd3f462cd7ac8d300bb9ee338df83ae9f6.tar.gz chromium_src-a6d1a8dd3f462cd7ac8d300bb9ee338df83ae9f6.tar.bz2 |
Revert "gtk implemenation of Scrollbar."
This reverts commit 27381 (build break).
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27384 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/controls/scrollbar/native_scroll_bar_gtk.cc')
-rw-r--r-- | views/controls/scrollbar/native_scroll_bar_gtk.cc | 215 |
1 files changed, 0 insertions, 215 deletions
diff --git a/views/controls/scrollbar/native_scroll_bar_gtk.cc b/views/controls/scrollbar/native_scroll_bar_gtk.cc deleted file mode 100644 index 54f68e2..0000000 --- a/views/controls/scrollbar/native_scroll_bar_gtk.cc +++ /dev/null @@ -1,215 +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 "views/controls/scrollbar/native_scroll_bar_gtk.h" - -#include <gtk/gtk.h> - -#include "base/keyboard_codes_linux.h" -#include "views/controls/scrollbar/native_scroll_bar.h" -#include "views/controls/scrollbar/scroll_bar.h" - -namespace views { - -//////////////////////////////////////////////////////////////////////////////// -// NativeScrollBarGtk, public: - -NativeScrollBarGtk::NativeScrollBarGtk(NativeScrollBar* scroll_bar) - : NativeControlGtk(), - native_scroll_bar_(scroll_bar) { - set_focus_view(scroll_bar); -} - -NativeScrollBarGtk::~NativeScrollBarGtk() { -} - -//////////////////////////////////////////////////////////////////////////////// -// NativeScrollBarGtk, View overrides: - -void NativeScrollBarGtk::Layout() { - SetBounds(native_scroll_bar_->GetLocalBounds(true)); - NativeControlGtk::Layout(); -} - -gfx::Size NativeScrollBarGtk::GetPreferredSize() { - if (native_scroll_bar_->IsHorizontal()) - return gfx::Size(0, GetHorizontalScrollBarHeight()); - return gfx::Size(GetVerticalScrollBarWidth(), 0); -} - -// TODO(oshima|jcampan): key/mouse events are not delievered and -// the following code is not tested. It requires the focus manager to be fully -// implemented. -bool NativeScrollBarGtk::OnKeyPressed(const KeyEvent& event) { - if (!native_view()) - return false; - switch (event.GetCharacter()) { - case base::VKEY_UP: - if (!native_scroll_bar_->IsHorizontal()) - MoveStep(false /* negative */); - break; - case base::VKEY_DOWN: - if (!native_scroll_bar_->IsHorizontal()) - MoveStep(true /* positive */); - break; - case base::VKEY_LEFT: - if (native_scroll_bar_->IsHorizontal()) - MoveStep(false /* negative */); - break; - case base::VKEY_RIGHT: - if (native_scroll_bar_->IsHorizontal()) - MoveStep(true /* positive */); - break; - case base::VKEY_PRIOR: - MovePage(false /* negative */); - break; - case base::VKEY_NEXT: - MovePage(true /* positive */); - break; - case base::VKEY_HOME: - MoveTo(0); - break; - case base::VKEY_END: - MoveToBottom(); - break; - default: - return false; - } - return true; -} - -bool NativeScrollBarGtk::OnMouseWheel(const MouseWheelEvent& e) { - if (!native_view() || native_scroll_bar_->IsHorizontal()) - return false; - MoveBy(e.GetOffset()); - return true; -} - -//////////////////////////////////////////////////////////////////////////////// -// NativeScrollBarGtk, NativeControlGtk overrides: - -void NativeScrollBarGtk::CreateNativeControl() { - GtkObject* adj = gtk_adjustment_new(native_scroll_bar_->GetMinPosition(), - native_scroll_bar_->GetMinPosition(), - native_scroll_bar_->GetMaxPosition(), - 10, 10, - 0); - GtkWidget* widget; - if (native_scroll_bar_->IsHorizontal()) { - widget = gtk_hscrollbar_new(GTK_ADJUSTMENT(adj)); - } else { - widget = gtk_vscrollbar_new(GTK_ADJUSTMENT(adj)); - } - - gtk_range_set_update_policy(GTK_RANGE(widget), GTK_UPDATE_CONTINUOUS); - - g_signal_connect(G_OBJECT(adj), "value-changed", - G_CALLBACK(CallValueChanged), this); - - NativeControlCreated(widget); -} - -//////////////////////////////////////////////////////////////////////////////// -// NativeScrollBarGtk, NativeScrollBarWrapper overrides: - -int NativeScrollBarGtk::GetPosition() const { - return static_cast<int>(gtk_range_get_value(GTK_RANGE(native_view()))); -} - -View* NativeScrollBarGtk::GetView() { - return this; -} - -void NativeScrollBarGtk::Update(int viewport_size, - int content_size, - int current_pos) { - if (!native_view()) - return; - - if (content_size < 0) - content_size = 0; - - if (current_pos < 0) - current_pos = 0; - - if (current_pos > content_size) - current_pos = content_size; - - ScrollBarController* controller = native_scroll_bar_->GetController(); - int step = controller->GetScrollIncrement(native_scroll_bar_, - false /* step */, - true /* positive */); - int page = controller->GetScrollIncrement(native_scroll_bar_, - true /* page */, true); - GtkObject* adj = gtk_adjustment_new(current_pos, - native_scroll_bar_->GetMinPosition(), - content_size, - step, page, - viewport_size); - gtk_range_set_adjustment(GTK_RANGE(native_view()), GTK_ADJUSTMENT(adj)); - g_signal_connect(G_OBJECT(adj), "value-changed", - G_CALLBACK(CallValueChanged), this); -} - -//////////////////////////////////////////////////////////////////////////////// -// NativeScrollBarGtk, private: - -void NativeScrollBarGtk::ValueChanged() { - ScrollBarController* controller = native_scroll_bar_->GetController(); - controller->ScrollToPosition(native_scroll_bar_, GetPosition()); -} - -// static -void NativeScrollBarGtk::CallValueChanged(GtkWidget* widget, - NativeScrollBarGtk* scroll_bar) { - scroll_bar->ValueChanged(); -} - -void NativeScrollBarGtk::MoveBy(int o) { - MoveTo(GetPosition() + o); -} - -void NativeScrollBarGtk::MovePage(bool positive) { - ScrollBarController* controller = native_scroll_bar_->GetController(); - MoveBy(controller->GetScrollIncrement(native_scroll_bar_, true, positive)); -} - -void NativeScrollBarGtk::MoveStep(bool positive) { - ScrollBarController* controller = native_scroll_bar_->GetController(); - MoveBy(controller->GetScrollIncrement(native_scroll_bar_, false, positive)); -} - -void NativeScrollBarGtk::MoveTo(int p) { - GtkAdjustment* adj = gtk_range_get_adjustment(GTK_RANGE(native_view())); - gtk_adjustment_set_value(adj, p); -} - -void NativeScrollBarGtk::MoveToBottom() { - GtkAdjustment* adj = gtk_range_get_adjustment(GTK_RANGE(native_view())); - MoveTo(adj->upper); -} - -//////////////////////////////////////////////////////////////////////////////// -// NativewScrollBarWrapper, public: - -// static -NativeScrollBarWrapper* NativeScrollBarWrapper::CreateWrapper( - NativeScrollBar* scroll_bar) { - return new NativeScrollBarGtk(scroll_bar); -} - -// static -int NativeScrollBarWrapper::GetHorizontalScrollBarHeight() { - // TODO(oshima): get this from gtk's widget property "slider-width". - return 20; -} - -// static -int NativeScrollBarWrapper::GetVerticalScrollBarWidth() { - // TODO(oshima): get this from gtk's widget property "slider-width". - return 20; -} - -} // namespace views - |