| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 #ifndef VIEWS_VIEW_H_ | 5 #ifndef VIEWS_VIEW_H_ |
| 6 #define VIEWS_VIEW_H_ | 6 #define VIEWS_VIEW_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
| 10 | 10 |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 const gfx::Point& p, | 71 const gfx::Point& p, |
| 72 bool is_mouse_gesture) = 0; | 72 bool is_mouse_gesture) = 0; |
| 73 | 73 |
| 74 protected: | 74 protected: |
| 75 virtual ~ContextMenuController() {} | 75 virtual ~ContextMenuController() {} |
| 76 }; | 76 }; |
| 77 | 77 |
| 78 // DragController is responsible for writing drag data for a view, as well as | 78 // DragController is responsible for writing drag data for a view, as well as |
| 79 // supplying the supported drag operations. Use DragController if you don't | 79 // supplying the supported drag operations. Use DragController if you don't |
| 80 // want to subclass. | 80 // want to subclass. |
| 81 | |
| 82 class DragController { | 81 class DragController { |
| 83 public: | 82 public: |
| 84 // Writes the data for the drag. | 83 // Writes the data for the drag. |
| 85 virtual void WriteDragData(View* sender, | 84 virtual void WriteDragData(View* sender, |
| 86 const gfx::Point& press_pt, | 85 const gfx::Point& press_pt, |
| 87 OSExchangeData* data) = 0; | 86 OSExchangeData* data) = 0; |
| 88 | 87 |
| 89 // Returns the supported drag operations (see DragDropTypes for possible | 88 // Returns the supported drag operations (see DragDropTypes for possible |
| 90 // values). A drag is only started if this returns a non-zero value. | 89 // values). A drag is only started if this returns a non-zero value. |
| 91 virtual int GetDragOperations(View* sender, const gfx::Point& p) = 0; | 90 virtual int GetDragOperations(View* sender, const gfx::Point& p) = 0; |
| 92 | 91 |
| 93 // Returns true if a drag operation can be started. | 92 // Returns true if a drag operation can be started. |
| 94 // |press_pt| represents the coordinates where the mouse was initially | 93 // |press_pt| represents the coordinates where the mouse was initially |
| 95 // pressed down. |p| is the current mouse coordinates. | 94 // pressed down. |p| is the current mouse coordinates. |
| 96 virtual bool CanStartDrag(View* sender, | 95 virtual bool CanStartDrag(View* sender, |
| 97 const gfx::Point& press_pt, | 96 const gfx::Point& press_pt, |
| 98 const gfx::Point& p) = 0; | 97 const gfx::Point& p) = 0; |
| 99 | 98 |
| 100 protected: | 99 protected: |
| 101 virtual ~DragController() {} | 100 virtual ~DragController() {} |
| 102 }; | 101 }; |
| 103 | 102 |
| 103 #if defined(TOUCH_UI) |
| 104 // TouchEventObserver observes the touch event for the completion of a touch |
| 105 // sequence. |
| 106 class TouchEventObserver { |
| 107 public: |
| 108 // Invoked when a touch sequence ends. |
| 109 virtual void OnTouchSequenceEnd() = 0; |
| 110 }; |
| 111 #endif |
| 112 |
| 104 ///////////////////////////////////////////////////////////////////////////// | 113 ///////////////////////////////////////////////////////////////////////////// |
| 105 // | 114 // |
| 106 // View class | 115 // View class |
| 107 // | 116 // |
| 108 // A View is a rectangle within the views View hierarchy. It is the base | 117 // A View is a rectangle within the views View hierarchy. It is the base |
| 109 // class for all Views. | 118 // class for all Views. |
| 110 // | 119 // |
| 111 // A View is a container of other Views (there is no such thing as a Leaf | 120 // A View is a container of other Views (there is no such thing as a Leaf |
| 112 // View - makes code simpler, reduces type conversion headaches, design | 121 // View - makes code simpler, reduces type conversion headaches, design |
| 113 // mistakes etc) | 122 // mistakes etc) |
| (...skipping 998 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1112 // Whether this view is enabled. | 1121 // Whether this view is enabled. |
| 1113 bool enabled_; | 1122 bool enabled_; |
| 1114 | 1123 |
| 1115 // Whether the view can be focused. | 1124 // Whether the view can be focused. |
| 1116 bool focusable_; | 1125 bool focusable_; |
| 1117 | 1126 |
| 1118 // Whether this view is focusable if the user requires full keyboard access, | 1127 // Whether this view is focusable if the user requires full keyboard access, |
| 1119 // even though it may not be normally focusable. | 1128 // even though it may not be normally focusable. |
| 1120 bool accessibility_focusable_; | 1129 bool accessibility_focusable_; |
| 1121 | 1130 |
| 1131 #if defined(TOUCH_UI) |
| 1132 // The touch event handler should notify the observer when a touch-sequence |
| 1133 // completely ends. |
| 1134 TouchEventObserver* touch_event_observer_; |
| 1135 #endif |
| 1136 |
| 1122 private: | 1137 private: |
| 1123 friend class RootView; | 1138 friend class RootView; |
| 1124 friend class FocusManager; | 1139 friend class FocusManager; |
| 1125 friend class ViewStorage; | 1140 friend class ViewStorage; |
| 1126 | 1141 |
| 1127 // Used to track a drag. RootView passes this into | 1142 // Used to track a drag. RootView passes this into |
| 1128 // ProcessMousePressed/Dragged. | 1143 // ProcessMousePressed/Dragged. |
| 1129 struct DragInfo { | 1144 struct DragInfo { |
| 1130 // Sets possible_drag to false and start_x/y to 0. This is invoked by | 1145 // Sets possible_drag to false and start_x/y to 0. This is invoked by |
| 1131 // RootView prior to invoke ProcessMousePressed. | 1146 // RootView prior to invoke ProcessMousePressed. |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1155 // method. If a drag is detected, DoDrag is invoked. | 1170 // method. If a drag is detected, DoDrag is invoked. |
| 1156 bool ProcessMousePressed(const MouseEvent& e, DragInfo* drop_info); | 1171 bool ProcessMousePressed(const MouseEvent& e, DragInfo* drop_info); |
| 1157 bool ProcessMouseDragged(const MouseEvent& e, DragInfo* drop_info); | 1172 bool ProcessMouseDragged(const MouseEvent& e, DragInfo* drop_info); |
| 1158 void ProcessMouseReleased(const MouseEvent& e, bool canceled); | 1173 void ProcessMouseReleased(const MouseEvent& e, bool canceled); |
| 1159 | 1174 |
| 1160 #if defined(TOUCH_UI) | 1175 #if defined(TOUCH_UI) |
| 1161 // RootView will invoke this with incoming TouchEvents. Returns the | 1176 // RootView will invoke this with incoming TouchEvents. Returns the |
| 1162 // the result of OnTouchEvent: true if the event was handled by the | 1177 // the result of OnTouchEvent: true if the event was handled by the |
| 1163 // callee. | 1178 // callee. |
| 1164 bool ProcessTouchEvent(const TouchEvent& e); | 1179 bool ProcessTouchEvent(const TouchEvent& e); |
| 1180 |
| 1181 // Set the touch event observer. |
| 1182 void set_touch_event_observer(TouchEventObserver* observer) { |
| 1183 touch_event_observer_ = observer; |
| 1184 } |
| 1165 #endif | 1185 #endif |
| 1166 | 1186 |
| 1167 // Starts a drag and drop operation originating from this view. This invokes | 1187 // Starts a drag and drop operation originating from this view. This invokes |
| 1168 // WriteDragData to write the data and GetDragOperations to determine the | 1188 // WriteDragData to write the data and GetDragOperations to determine the |
| 1169 // supported drag operations. When done, OnDragDone is invoked. | 1189 // supported drag operations. When done, OnDragDone is invoked. |
| 1170 void DoDrag(const MouseEvent& e, const gfx::Point& press_pt); | 1190 void DoDrag(const MouseEvent& e, const gfx::Point& press_pt); |
| 1171 | 1191 |
| 1172 // Removes |view| from the hierarchy tree. If |update_focus_cycle| is true, | 1192 // Removes |view| from the hierarchy tree. If |update_focus_cycle| is true, |
| 1173 // the next and previous focusable views of views pointing to this view are | 1193 // the next and previous focusable views of views pointing to this view are |
| 1174 // updated. If |update_tool_tip| is true, the tooltip is updated. If | 1194 // updated. If |update_tool_tip| is true, the tooltip is updated. If |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1329 // The default value for how long to wait (in ms) before showing a menu | 1349 // The default value for how long to wait (in ms) before showing a menu |
| 1330 // button on hover. This value is used if the OS doesn't supply one. | 1350 // button on hover. This value is used if the OS doesn't supply one. |
| 1331 static const int kShowFolderDropMenuDelay; | 1351 static const int kShowFolderDropMenuDelay; |
| 1332 | 1352 |
| 1333 DISALLOW_COPY_AND_ASSIGN(View); | 1353 DISALLOW_COPY_AND_ASSIGN(View); |
| 1334 }; | 1354 }; |
| 1335 | 1355 |
| 1336 } // namespace views | 1356 } // namespace views |
| 1337 | 1357 |
| 1338 #endif // VIEWS_VIEW_H_ | 1358 #endif // VIEWS_VIEW_H_ |
| OLD | NEW |