| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "ui/oak/oak_aura_window_display.h" | |
| 6 | |
| 7 #include "base/logging.h" | |
| 8 #include "base/strings/string_util.h" | |
| 9 #include "base/strings/stringprintf.h" | |
| 10 #include "base/strings/utf_string_conversions.h" | |
| 11 #include "ui/aura/window.h" | |
| 12 #include "ui/base/models/table_model_observer.h" | |
| 13 #include "ui/oak/oak_pretty_print.h" | |
| 14 #include "ui/views/corewm/window_util.h" | |
| 15 | |
| 16 namespace oak { | |
| 17 namespace internal { | |
| 18 namespace { | |
| 19 enum { | |
| 20 ROW_ID = 0, | |
| 21 ROW_DELEGATE, | |
| 22 ROW_TYPE, | |
| 23 ROW_NAME, | |
| 24 ROW_TITLE, | |
| 25 ROW_TRANSPARENT, | |
| 26 ROW_LAYER, | |
| 27 ROW_VISIBLE, | |
| 28 ROW_BOUNDS, | |
| 29 ROW_BOUNDSINROOTWINDOW, | |
| 30 ROW_TRANSFORM, | |
| 31 ROW_PARENT, | |
| 32 ROW_ROOTWINDOW, | |
| 33 ROW_TRANSIENTCHILDREN, | |
| 34 ROW_TRANSIENTPARENT, | |
| 35 ROW_USERDATA, | |
| 36 ROW_IGNOREEVENTS, | |
| 37 ROW_CANFOCUS, | |
| 38 ROW_HITTESTBOUNDSOVERRIDEINNER, | |
| 39 ROW_COUNT | |
| 40 }; | |
| 41 | |
| 42 // aura::Window-specific pretty printing. | |
| 43 base::string16 PropertyWithWindowType(int type) { | |
| 44 std::string property = "Type: "; | |
| 45 switch (type) { | |
| 46 case ui::wm::WINDOW_TYPE_UNKNOWN: | |
| 47 property.append("WINDOW_TYPE_UNKNOWN"); | |
| 48 break; | |
| 49 case ui::wm::WINDOW_TYPE_NORMAL: | |
| 50 property.append("WINDOW_TYPE_NORMAL"); | |
| 51 break; | |
| 52 case ui::wm::WINDOW_TYPE_POPUP: | |
| 53 property.append("WINDOW_TYPE_POPUP"); | |
| 54 break; | |
| 55 case ui::wm::WINDOW_TYPE_CONTROL: | |
| 56 property.append("WINDOW_TYPE_CONTROL"); | |
| 57 break; | |
| 58 case ui::wm::WINDOW_TYPE_PANEL: | |
| 59 property.append("WINDOW_TYPE_PANEL"); | |
| 60 break; | |
| 61 case ui::wm::WINDOW_TYPE_MENU: | |
| 62 property.append("WINDOW_TYPE_MENU"); | |
| 63 break; | |
| 64 case ui::wm::WINDOW_TYPE_TOOLTIP: | |
| 65 property.append("WINDOW_TYPE_TOOLTIP"); | |
| 66 break; | |
| 67 default: | |
| 68 NOTREACHED(); | |
| 69 break; | |
| 70 } | |
| 71 return base::ASCIIToUTF16(property); | |
| 72 } | |
| 73 | |
| 74 } // namespace | |
| 75 | |
| 76 //////////////////////////////////////////////////////////////////////////////// | |
| 77 // OakAuraWindowDisplay, public: | |
| 78 | |
| 79 OakAuraWindowDisplay::OakAuraWindowDisplay() : observer_(NULL), window_(NULL) { | |
| 80 } | |
| 81 | |
| 82 OakAuraWindowDisplay::~OakAuraWindowDisplay() { | |
| 83 } | |
| 84 | |
| 85 //////////////////////////////////////////////////////////////////////////////// | |
| 86 // OakAuraWindowDisplay, OakDetailsModel overrides: | |
| 87 | |
| 88 void OakAuraWindowDisplay::SetValue(aura::Window* window) { | |
| 89 window_ = window; | |
| 90 observer_->OnModelChanged(); | |
| 91 } | |
| 92 | |
| 93 //////////////////////////////////////////////////////////////////////////////// | |
| 94 // OakAuraWindowDisplay, ui::TableModel implementation: | |
| 95 | |
| 96 int OakAuraWindowDisplay::RowCount() { | |
| 97 return ROW_COUNT; | |
| 98 } | |
| 99 | |
| 100 base::string16 OakAuraWindowDisplay::GetText(int row, int column_id) { | |
| 101 if (!window_) | |
| 102 return base::string16(); | |
| 103 | |
| 104 base::string16 text; | |
| 105 switch (row) { | |
| 106 case ROW_ID: | |
| 107 return PropertyWithInteger("Id: ", window_->id()); | |
| 108 case ROW_DELEGATE: | |
| 109 return PropertyWithVoidStar("Delegate: ", window_->delegate()); | |
| 110 case ROW_TYPE: | |
| 111 return PropertyWithWindowType(window_->type()); | |
| 112 case ROW_NAME: | |
| 113 return base::ASCIIToUTF16("Name: " + window_->name()); | |
| 114 case ROW_TITLE: | |
| 115 return base::ASCIIToUTF16("Title: ") + window_->title(); | |
| 116 case ROW_TRANSPARENT: | |
| 117 return PropertyWithBool("Transparent: ", window_->transparent()); | |
| 118 case ROW_LAYER: | |
| 119 return PropertyWithVoidStar("Layer: ", window_->layer()); | |
| 120 case ROW_VISIBLE: | |
| 121 return PropertyWithBool("Visible: ", window_->IsVisible()); | |
| 122 case ROW_BOUNDS: | |
| 123 return PropertyWithBounds("Bounds: ", window_->bounds()); | |
| 124 case ROW_BOUNDSINROOTWINDOW: | |
| 125 return PropertyWithBounds("Bounds in Root Window: ", | |
| 126 window_->GetBoundsInRootWindow()); | |
| 127 case ROW_TRANSFORM: | |
| 128 return base::ASCIIToUTF16("Transform:"); | |
| 129 case ROW_PARENT: | |
| 130 return PropertyWithVoidStar("Parent: ", window_->parent()); | |
| 131 case ROW_ROOTWINDOW: | |
| 132 return PropertyWithVoidStar("Root Window: ", window_->GetRootWindow()); | |
| 133 case ROW_TRANSIENTCHILDREN: | |
| 134 return PropertyWithInteger( | |
| 135 "Transient Children: ", | |
| 136 views::corewm::GetTransientChildren(window_).size()); | |
| 137 case ROW_TRANSIENTPARENT: | |
| 138 return PropertyWithVoidStar("Transient Parent: ", | |
| 139 views::corewm::GetTransientParent(window_)); | |
| 140 case ROW_USERDATA: | |
| 141 return PropertyWithVoidStar("User Data: ", window_->user_data()); | |
| 142 case ROW_IGNOREEVENTS: | |
| 143 return PropertyWithBool("Can receive events: ", | |
| 144 window_->CanReceiveEvents()); | |
| 145 case ROW_CANFOCUS: | |
| 146 return PropertyWithBool("Can Focus: ", window_->CanFocus()); | |
| 147 case ROW_HITTESTBOUNDSOVERRIDEINNER: | |
| 148 return PropertyWithInsets("Hit test bounds override inner: ", | |
| 149 window_->hit_test_bounds_override_inner()); | |
| 150 default: | |
| 151 NOTREACHED(); | |
| 152 break; | |
| 153 } | |
| 154 return base::string16(); | |
| 155 } | |
| 156 | |
| 157 void OakAuraWindowDisplay::SetObserver(ui::TableModelObserver* observer) { | |
| 158 observer_ = observer; | |
| 159 } | |
| 160 | |
| 161 } // namespace internal | |
| 162 } // namespace oak | |
| OLD | NEW |