Index: apps/app_window.h |
diff --git a/apps/app_window.h b/apps/app_window.h |
index 8403153d2741abd098210fb20abbb51dbeebc66c..7288309e1ab029f401315c967fa44efa4250006f 100644 |
--- a/apps/app_window.h |
+++ b/apps/app_window.h |
@@ -116,6 +116,25 @@ class AppWindow : public content::NotificationObserver, |
FULLSCREEN_TYPE_FORCED = 1 << 3, |
}; |
+ struct BoundsSpecification { |
+ // INT_MIN represents an unspecified position component. |
+ static const int kUnspecifiedPosition; |
+ |
+ BoundsSpecification(); |
+ ~BoundsSpecification(); |
+ |
+ // INT_MIN designates 'unspecified' for the position components, and 0 for |
benwells
2014/03/05 02:33:30
Does INT_MIN mean 0 for size, or does 0 mean unspe
tmdiep
2014/03/05 03:06:47
I'll reword this comment.
INT_MIN means unspecifie
|
+ // the size components. When unspecified, they should be replaced with a |
+ // default value. |
+ gfx::Rect bounds; |
+ |
+ gfx::Size minimum_size; |
+ gfx::Size maximum_size; |
+ |
+ // Reset the bounds fields to their 'unspecified' values. |
tapted
2014/03/05 03:14:03
nit: mention that minimum/maximum size are unchang
|
+ void ResetBounds(); |
+ }; |
+ |
struct CreateParams { |
CreateParams(); |
~CreateParams(); |
@@ -127,14 +146,13 @@ class AppWindow : public content::NotificationObserver, |
SkColor frame_color; |
bool transparent_background; // Only supported on ash. |
- // Specify the initial content bounds of the window (excluding any window |
- // decorations). INT_MIN designates 'unspecified' for the position |
- // components, and 0 for the size components. When unspecified, they should |
- // be replaced with a default value. |
- gfx::Rect bounds; |
+ // The initial content/inner bounds specification (excluding any window |
+ // decorations). |
+ BoundsSpecification content_spec; |
- gfx::Size minimum_size; |
- gfx::Size maximum_size; |
+ // The initial window/outer bounds specification (including window |
+ // decorations). |
+ BoundsSpecification window_spec; |
std::string window_key; |
@@ -156,6 +174,19 @@ class AppWindow : public content::NotificationObserver, |
// If true, the window will stay on top of other windows that are not |
// configured to be always on top. Defaults to false. |
bool always_on_top; |
+ |
+ // The API enables developers to specify content or window bounds. This |
+ // function combines them into a single, constrained window size. Note that |
+ // until the frame insets are known, the returned value is just an estimate. |
benwells
2014/03/05 02:33:30
I don't understand the comment about frame insets.
tmdiep
2014/03/05 03:06:47
We need the window created first to get the real f
|
+ gfx::Rect GetInitialWindowBounds(const gfx::Insets& frame_insets) const; |
+ |
+ // The API enables developers to specify content or window size constraints. |
+ // These functions combine them so that we can work with one set of |
+ // constraints. |
+ gfx::Size GetContentMinimumSize(const gfx::Insets& frame_insets) const; |
+ gfx::Size GetContentMaximumSize(const gfx::Insets& frame_insets) const; |
+ gfx::Size GetWindowMinimumSize(const gfx::Insets& frame_insets) const; |
+ gfx::Size GetWindowMaximumSize(const gfx::Insets& frame_insets) const; |
}; |
class Delegate { |
@@ -289,9 +320,9 @@ class AppWindow : public content::NotificationObserver, |
// details. |
void ForcedFullscreen(); |
- // Set the minimum and maximum size that this window is allowed to be. |
- void SetMinimumSize(const gfx::Size& min_size); |
- void SetMaximumSize(const gfx::Size& max_size); |
+ // Set the minimum and maximum size of the content bounds. |
+ void SetContentMinimumSize(const gfx::Size& min_size); |
+ void SetContentMaximumSize(const gfx::Size& max_size); |
enum ShowType { SHOW_ACTIVE, SHOW_INACTIVE }; |
@@ -396,17 +427,16 @@ class AppWindow : public content::NotificationObserver, |
void SaveWindowPosition(); |
// Helper method to adjust the cached bounds so that we can make sure it can |
- // be visible on the screen. See http://crbug.com/145752 . |
+ // be visible on the screen. See http://crbug.com/145752. |
void AdjustBoundsToBeVisibleOnScreen(const gfx::Rect& cached_bounds, |
const gfx::Rect& cached_screen_bounds, |
const gfx::Rect& current_screen_bounds, |
const gfx::Size& minimum_size, |
gfx::Rect* bounds) const; |
- // Loads the appropriate default or cached window bounds and constrains them |
- // based on screen size and minimum/maximum size. Returns a new CreateParams |
- // that should be used to create the window. |
- CreateParams LoadDefaultsAndConstrain(CreateParams params) const; |
+ // Loads the appropriate default or cached window bounds. Returns a new |
+ // CreateParams that should be used to create the window. |
+ CreateParams LoadDefaults(CreateParams params) const; |
// Load the app's image, firing a load state change when loaded. |
void UpdateExtensionAppIcon(); |