Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3337)

Unified Diff: ash/wm/workspace/frame_maximize_button.h

Issue 10823025: Adding new maximize menu according to spec (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fixed merging issues Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ash/wm/workspace/frame_maximize_button.h
diff --git a/ash/wm/workspace/frame_maximize_button.h b/ash/wm/workspace/frame_maximize_button.h
index 0124c2f4159d92d5c4799c1e4a4688c292e3a654..67559b96a88b05b5f56e95c8ea68e8f5cd9ce5be 100644
--- a/ash/wm/workspace/frame_maximize_button.h
+++ b/ash/wm/workspace/frame_maximize_button.h
@@ -21,9 +21,21 @@ class PhantomWindowController;
class SnapSizer;
}
+class MaximizeBubble;
+
// Button used for the maximize control on the frame. Handles snapping logic.
class ASH_EXPORT FrameMaximizeButton : public views::ImageButton {
public:
+ // Where to snap to.
+ enum SnapType {
+ SNAP_LEFT,
+ SNAP_RIGHT,
+ SNAP_MAXIMIZE,
+ SNAP_MINIMIZE,
+ SNAP_RESTORE,
+ SNAP_NONE
+ };
+
FrameMaximizeButton(views::ButtonListener* listener,
views::NonClientFrameView* frame);
virtual ~FrameMaximizeButton();
@@ -38,6 +50,22 @@ class ASH_EXPORT FrameMaximizeButton : public views::ImageButton {
virtual ui::GestureStatus OnGestureEvent(
const views::GestureEvent& event) OVERRIDE;
+ // Updates |snap_type_| based on a a given snap type. This is used by
+ // external hover events from the button menu.
+ void SnapButtonHovered(SnapType type);
+
+ // The user clicked the |type| button.
+ void SnapButtonClicked(SnapType type);
+
+ // The menu should reflect the user selected type.
+ void UpdateVisibleMenu(SnapType type);
+
+ // Remove the maximize menu from the screen (and destroy it).
+ void DestroyMaximizeMenu();
+
+ // Returns true when the user clicks and drags the button.
+ bool is_snap_enabled() { return is_snap_enabled_; }
+
protected:
// ImageButton overrides:
virtual gfx::ImageSkia GetImageToPaint() OVERRIDE;
@@ -45,16 +73,6 @@ class ASH_EXPORT FrameMaximizeButton : public views::ImageButton {
private:
class EscapeEventFilter;
- // Where to snap to.
- enum SnapType {
- SNAP_LEFT,
- SNAP_RIGHT,
- SNAP_MAXIMIZE,
- SNAP_MINIMIZE,
- SNAP_RESTORE,
- SNAP_NONE
- };
-
// Initializes the snap-gesture based on the event. This should only be called
// when the event is confirmed to have started a snap gesture.
void ProcessStartEvent(const views::LocatedEvent& event);
@@ -118,6 +136,8 @@ class ASH_EXPORT FrameMaximizeButton : public views::ImageButton {
base::OneShotTimer<FrameMaximizeButton> update_timer_;
+ scoped_ptr<MaximizeBubble> maximizer_;
+
DISALLOW_COPY_AND_ASSIGN(FrameMaximizeButton);
};

Powered by Google App Engine
This is Rietveld 408576698