/ui/views/widget/widget_delegate.cc
C++ | 212 lines | 150 code | 51 blank | 11 comment | 7 complexity | a87dda33fc393cb59abc2bbf240581c7 MD5 | raw file
- // Copyright (c) 2012 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 "ui/views/widget/widget_delegate.h"
- #include "base/strings/utf_string_conversions.h"
- #include "ui/gfx/image/image_skia.h"
- #include "ui/views/bubble/bubble_delegate.h"
- #include "ui/views/view.h"
- #include "ui/views/views_delegate.h"
- #include "ui/views/widget/widget.h"
- #include "ui/views/window/client_view.h"
- namespace views {
- ////////////////////////////////////////////////////////////////////////////////
- // WidgetDelegate:
- WidgetDelegate::WidgetDelegate()
- : default_contents_view_(NULL),
- can_activate_(true) {
- }
- void WidgetDelegate::OnWidgetMove() {
- }
- void WidgetDelegate::OnDisplayChanged() {
- }
- void WidgetDelegate::OnWorkAreaChanged() {
- }
- View* WidgetDelegate::GetInitiallyFocusedView() {
- return NULL;
- }
- BubbleDelegateView* WidgetDelegate::AsBubbleDelegate() {
- return NULL;
- }
- DialogDelegate* WidgetDelegate::AsDialogDelegate() {
- return NULL;
- }
- bool WidgetDelegate::CanResize() const {
- return false;
- }
- bool WidgetDelegate::CanMaximize() const {
- return false;
- }
- bool WidgetDelegate::CanMinimize() const {
- return false;
- }
- bool WidgetDelegate::CanActivate() const {
- return can_activate_;
- }
- ui::ModalType WidgetDelegate::GetModalType() const {
- return ui::MODAL_TYPE_NONE;
- }
- ui::AXRole WidgetDelegate::GetAccessibleWindowRole() const {
- return ui::AX_ROLE_WINDOW;
- }
- base::string16 WidgetDelegate::GetAccessibleWindowTitle() const {
- return GetWindowTitle();
- }
- base::string16 WidgetDelegate::GetWindowTitle() const {
- return base::string16();
- }
- bool WidgetDelegate::ShouldShowWindowTitle() const {
- return true;
- }
- bool WidgetDelegate::ShouldShowCloseButton() const {
- return true;
- }
- bool WidgetDelegate::ShouldHandleSystemCommands() const {
- const Widget* widget = GetWidget();
- if (!widget)
- return false;
- return widget->non_client_view() != NULL;
- }
- gfx::ImageSkia WidgetDelegate::GetWindowAppIcon() {
- // Use the window icon as app icon by default.
- return GetWindowIcon();
- }
- // Returns the icon to be displayed in the window.
- gfx::ImageSkia WidgetDelegate::GetWindowIcon() {
- return gfx::ImageSkia();
- }
- bool WidgetDelegate::ShouldShowWindowIcon() const {
- return false;
- }
- bool WidgetDelegate::ExecuteWindowsCommand(int command_id) {
- return false;
- }
- std::string WidgetDelegate::GetWindowName() const {
- return std::string();
- }
- void WidgetDelegate::SaveWindowPlacement(const gfx::Rect& bounds,
- ui::WindowShowState show_state) {
- std::string window_name = GetWindowName();
- if (!ViewsDelegate::GetInstance() || window_name.empty())
- return;
- ViewsDelegate::GetInstance()->SaveWindowPlacement(GetWidget(), window_name,
- bounds, show_state);
- }
- bool WidgetDelegate::GetSavedWindowPlacement(
- const Widget* widget,
- gfx::Rect* bounds,
- ui::WindowShowState* show_state) const {
- std::string window_name = GetWindowName();
- if (!ViewsDelegate::GetInstance() || window_name.empty())
- return false;
- return ViewsDelegate::GetInstance()->GetSavedWindowPlacement(
- widget, window_name, bounds, show_state);
- }
- bool WidgetDelegate::ShouldRestoreWindowSize() const {
- return true;
- }
- View* WidgetDelegate::GetContentsView() {
- if (!default_contents_view_)
- default_contents_view_ = new View;
- return default_contents_view_;
- }
- ClientView* WidgetDelegate::CreateClientView(Widget* widget) {
- return new ClientView(widget, GetContentsView());
- }
- NonClientFrameView* WidgetDelegate::CreateNonClientFrameView(Widget* widget) {
- return NULL;
- }
- View* WidgetDelegate::CreateOverlayView() {
- return NULL;
- }
- bool WidgetDelegate::WillProcessWorkAreaChange() const {
- return false;
- }
- bool WidgetDelegate::WidgetHasHitTestMask() const {
- return false;
- }
- void WidgetDelegate::GetWidgetHitTestMask(gfx::Path* mask) const {
- DCHECK(mask);
- }
- bool WidgetDelegate::ShouldAdvanceFocusToTopLevelWidget() const {
- return false;
- }
- bool WidgetDelegate::ShouldDescendIntoChildForEventHandling(
- gfx::NativeView child,
- const gfx::Point& location) {
- return true;
- }
- ////////////////////////////////////////////////////////////////////////////////
- // WidgetDelegateView:
- // static
- const char WidgetDelegateView::kViewClassName[] = "WidgetDelegateView";
- WidgetDelegateView::WidgetDelegateView() {
- // A WidgetDelegate should be deleted on DeleteDelegate.
- set_owned_by_client();
- }
- WidgetDelegateView::~WidgetDelegateView() {
- }
- void WidgetDelegateView::DeleteDelegate() {
- delete this;
- }
- Widget* WidgetDelegateView::GetWidget() {
- return View::GetWidget();
- }
- const Widget* WidgetDelegateView::GetWidget() const {
- return View::GetWidget();
- }
- const char* WidgetDelegateView::GetClassName() const {
- return kViewClassName;
- }
- } // namespace views