OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <windows.h> | 5 #include <windows.h> |
6 #include <atlbase.h> | 6 #include <atlbase.h> |
7 #include <atlapp.h> | 7 #include <atlapp.h> |
8 #include <atlcrack.h> | 8 #include <atlcrack.h> |
9 #include <atlmisc.h> | 9 #include <atlmisc.h> |
10 | 10 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 : ColorView(SK_ColorMAGENTA), | 81 : ColorView(SK_ColorMAGENTA), |
82 c1_(new ColorView(SK_ColorGREEN)), | 82 c1_(new ColorView(SK_ColorGREEN)), |
83 c2_(new ColorView(SK_ColorRED)) { | 83 c2_(new ColorView(SK_ColorRED)) { |
84 AddChildView(c1_); | 84 AddChildView(c1_); |
85 AddChildView(c2_); | 85 AddChildView(c2_); |
86 } | 86 } |
87 virtual ~FancyPantsView() {} | 87 virtual ~FancyPantsView() {} |
88 | 88 |
89 // Overridden from ui::View: | 89 // Overridden from ui::View: |
90 virtual void Layout() { | 90 virtual void Layout() { |
91 c1_->SetBounds(20, 20, width() - 40, height() - 40); | 91 c1_->SetBounds(gfx::Rect(20, 20, std::max(width() - 40, 0), |
92 c2_->SetBounds(50, 50, 50, 50); | 92 std::max(height() - 40, 0))); |
| 93 c2_->SetBounds(gfx::Rect(50, 50, 50, 50)); |
93 Invalidate(); | 94 Invalidate(); |
94 } | 95 } |
95 virtual bool OnMousePressed(const ui::MouseEvent& event) { | 96 virtual bool OnMousePressed(const ui::MouseEvent& event) { |
96 old_color_ = color(); | 97 old_color_ = color(); |
97 set_color(SK_ColorWHITE); | 98 set_color(SK_ColorWHITE); |
98 mouse_offset_ = event.location(); | 99 mouse_offset_ = event.location(); |
99 return true; | 100 return true; |
100 } | 101 } |
101 virtual bool OnMouseDragged(const ui::MouseEvent& event) { | 102 virtual bool OnMouseDragged(const ui::MouseEvent& event) { |
102 gfx::Rect old_bounds = bounds(); | 103 gfx::Rect old_bounds = bounds(); |
103 SetPosition(gfx::Point(event.x() - mouse_offset_.x(), | 104 SetOrigin(gfx::Point(event.x() - mouse_offset_.x(), |
104 event.y() - mouse_offset_.y())); | 105 event.y() - mouse_offset_.y())); |
105 gfx::Rect new_bounds = bounds(); | 106 gfx::Rect new_bounds = bounds(); |
106 parent()->InvalidateRect(old_bounds.Union(new_bounds)); | 107 parent()->InvalidateRect(old_bounds.Union(new_bounds)); |
107 return true; | 108 return true; |
108 } | 109 } |
109 virtual void OnMouseReleased(const ui::MouseEvent& event) { | 110 virtual void OnMouseReleased(const ui::MouseEvent& event) { |
110 set_color(old_color_); | 111 set_color(old_color_); |
111 } | 112 } |
112 virtual void OnMouseCaptureLost() { | 113 virtual void OnMouseCaptureLost() { |
113 set_color(SK_ColorYELLOW); | 114 set_color(SK_ColorYELLOW); |
114 } | 115 } |
(...skipping 13 matching lines...) Expand all Loading... |
128 class ContentsView : public ColorView { | 129 class ContentsView : public ColorView { |
129 public: | 130 public: |
130 ContentsView() | 131 ContentsView() |
131 : c1_(new ColorView(SK_ColorBLUE)), | 132 : c1_(new ColorView(SK_ColorBLUE)), |
132 c2_(new ColorView(SK_ColorGREEN)), | 133 c2_(new ColorView(SK_ColorGREEN)), |
133 c3_(new FancyPantsView()), | 134 c3_(new FancyPantsView()), |
134 ColorView(SK_ColorRED) { | 135 ColorView(SK_ColorRED) { |
135 set_parent_owned(false); | 136 set_parent_owned(false); |
136 AddChildView(c1_); | 137 AddChildView(c1_); |
137 AddChildView(c2_); | 138 AddChildView(c2_); |
138 c3_->SetPosition(gfx::Point(200, 200)); | 139 c3_->SetOrigin(gfx::Point(200, 200)); |
139 AddChildView(c3_); | 140 AddChildView(c3_); |
140 } | 141 } |
141 | 142 |
142 virtual ~ContentsView() {} | 143 virtual ~ContentsView() {} |
143 | 144 |
144 void Init() { | 145 void Init() { |
145 //c3_->SetHasLayer(true); | 146 //c3_->SetHasLayer(true); |
146 } | 147 } |
147 | 148 |
148 private: | 149 private: |
149 // Overridden from ui::View: | 150 // Overridden from ui::View: |
150 virtual void Layout() { | 151 virtual void Layout() { |
151 c1_->SetBounds(20, 20, width() - 40, height() - 40); | 152 c1_->SetBounds(gfx::Rect(20, 20, std::max(width() - 40, 0), |
152 c2_->SetBounds(50, 50, 50, 50); | 153 std::max(height() - 40, 0))); |
| 154 c2_->SetBounds(gfx::Rect(50, 50, 50, 50)); |
153 c3_->SetSize(gfx::Size(75, 75)); | 155 c3_->SetSize(gfx::Size(75, 75)); |
154 Invalidate(); | 156 Invalidate(); |
155 } | 157 } |
156 | 158 |
157 View* c1_; | 159 View* c1_; |
158 View* c2_; | 160 View* c2_; |
159 FancyPantsView* c3_; | 161 FancyPantsView* c3_; |
160 }; | 162 }; |
161 | 163 |
162 int main(int argc, char **argv) { | 164 int main(int argc, char **argv) { |
163 OleInitialize(NULL); | 165 OleInitialize(NULL); |
164 base::AtExitManager exit_manager; | 166 base::AtExitManager exit_manager; |
165 MessageLoop main_message_loop(MessageLoop::TYPE_UI); | 167 MessageLoop main_message_loop(MessageLoop::TYPE_UI); |
166 | 168 |
167 ContentsView cv; | 169 ContentsView cv; |
168 ui::Widget widget(&cv); | 170 ui::Widget widget(&cv); |
169 widget.InitWithNativeViewParent(NULL, gfx::Rect(20, 20, 400, 400)); | 171 widget.InitWithNativeViewParent(NULL, gfx::Rect(20, 20, 400, 400)); |
170 cv.Init(); | 172 cv.Init(); |
171 widget.Show(); | 173 widget.Show(); |
172 | 174 |
173 V2DemoDispatcher dispatcher; | 175 V2DemoDispatcher dispatcher; |
174 MessageLoopForUI::current()->Run(&dispatcher); | 176 MessageLoopForUI::current()->Run(&dispatcher); |
175 | 177 |
176 OleUninitialize(); | 178 OleUninitialize(); |
177 } | 179 } |
OLD | NEW |