summaryrefslogtreecommitdiffstats
path: root/chrome/views/decision.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/views/decision.cc')
-rw-r--r--chrome/views/decision.cc152
1 files changed, 0 insertions, 152 deletions
diff --git a/chrome/views/decision.cc b/chrome/views/decision.cc
deleted file mode 100644
index cbbea49..0000000
--- a/chrome/views/decision.cc
+++ /dev/null
@@ -1,152 +0,0 @@
-// Copyright (c) 2006-2008 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 <string>
-
-#include "chrome/views/decision.h"
-
-#include "chrome/common/resource_bundle.h"
-#include "chrome/views/label.h"
-#include "chrome/views/grid_layout.h"
-
-using namespace std;
-
-namespace views {
-
-static const int kPaddingEdge = 10;
-static const int kSpacingInfoBottom = 20;
-
-class Option : public View,
- public NativeButton::Listener {
- public:
- Option(int command_id,
- const std::wstring& description,
- const std::wstring& action,
- Controller* controller);
-
- // NativeButton::Listener methods:
- virtual void ButtonPressed(NativeButton* sender);
-
- private:
- int command_id_;
- Controller* controller_;
-};
-
-Decision::Decision(const std::wstring& title,
- const std::wstring& details,
- Controller* controller)
- : controller_(controller) {
- // The main message.
- title_label_ = new Label(title);
- title_label_->SetFont(
- ResourceBundle::GetSharedInstance().GetFont(ResourceBundle::LargeFont));
- title_label_->SetHorizontalAlignment(Label::ALIGN_LEFT);
- AddChildView(title_label_);
-
- // The detailed description.
- details_label_ = new Label(details);
- details_label_->SetHorizontalAlignment(Label::ALIGN_LEFT);
- details_label_->SetMultiLine(true);
- AddChildView(details_label_);
-}
-
-void Decision::AppendOption(int command_id,
- const std::wstring& description,
- const std::wstring& action) {
- Option* option = new Option(command_id, description, action, controller_);
- options_.push_back(option);
- AddChildView(option);
-}
-
-void Decision::ViewHierarchyChanged(bool is_add, View *parent, View *child) {
- if (is_add && child == this) {
- // Layout when this is added so that the buttons are laid out correctly.
- Layout();
- }
-}
-
-void Decision::Layout() {
- gfx::Rect lb = GetLocalBounds(false);
-
- // Resize for padding.
- lb.Inset(kPaddingEdge, kPaddingEdge);
- int width = lb.width();
-
- gfx::Point position = lb.origin();
- gfx::Size size = title_label_->GetPreferredSize();
- title_label_->SetBounds(position.x(), position.y(), width, size.height());
- position.set_y(position.y() + size.height() + kSpacingInfoBottom);
-
- size.set_height(details_label_->GetHeightForWidth(width));
- details_label_->SetBounds(position.x(), position.y(), width, size.height());
- position.set_y(position.y() + size.height() + kSpacingInfoBottom);
-
- for (std::vector<Option*>::const_iterator iter = options_.begin();
- iter != options_.end(); ++iter) {
- Option* option = *iter;
- size = option->GetPreferredSize();
- option->SetBounds(position.x(), position.y(), width, size.height());
- option->Layout();
- position.set_y(position.y() + size.height() + kSpacingInfoBottom);
- }
-}
-
-gfx::Size Decision::GetPreferredSize() {
- int width = 0;
- int height = 0;
-
- // We need to find the largest width from the title and the options, as the
- // details label is multi-line and we need to known its width in order to
- // compute its height.
- gfx::Size size = title_label_->GetPreferredSize();
- width = size.width();
- height = size.height() + kSpacingInfoBottom;
-
- for (std::vector<Option*>::const_iterator iter = options_.begin();
- iter != options_.end(); ++iter) {
- size = (*iter)->GetPreferredSize();
- if (size.width() > width)
- width = size.width();
- height += size.height() + kSpacingInfoBottom;
- }
-
- // Now we can compute the details label height.
- height += details_label_->GetHeightForWidth(width) + kSpacingInfoBottom;
-
- return gfx::Size(width + 2 * kPaddingEdge, height + 2 * kPaddingEdge);
-}
-
-Option::Option(int command_id,
- const std::wstring& description,
- const std::wstring& action,
- Controller* controller)
- : command_id_(command_id),
- controller_(controller) {
-
- GridLayout* layout = new GridLayout(this);
- SetLayoutManager(layout);
-
- ColumnSet* columns = layout->AddColumnSet(0);
- columns->AddColumn(GridLayout::FILL, GridLayout::CENTER,
- 1, GridLayout::USE_PREF, 0, 0);
- columns->AddPaddingColumn(0, 10);
- columns->AddColumn(GridLayout::TRAILING, GridLayout::CENTER,
- 0, GridLayout::USE_PREF, 0, 0);
-
- layout->StartRow(0, 0);
- Label* label = new Label(description);
- label->SetHorizontalAlignment(Label::ALIGN_LEFT);
- layout->AddView(label);
-
- // A button to perform the action.
- NativeButton* button = new NativeButton(action);
- button->SetListener(this);
- layout->AddView(button);
-}
-
-void Option::ButtonPressed(NativeButton* sender) {
- controller_->ExecuteCommand(command_id_);
-}
-
-} // namespace views