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

Unified Diff: components/native_app_window/app_window_create_params.h

Issue 616253002: Extract NativeAppWindow from src/extensions Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: might fix athena. similarity=33 Created 6 years, 3 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
« no previous file with comments | « components/native_app_window/DEPS ('k') | components/native_app_window/app_window_create_params.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/native_app_window/app_window_create_params.h
diff --git a/components/native_app_window/app_window_create_params.h b/components/native_app_window/app_window_create_params.h
new file mode 100644
index 0000000000000000000000000000000000000000..29041fe5fd22f3d0043f7721418e34ca7e2726cb
--- /dev/null
+++ b/components/native_app_window/app_window_create_params.h
@@ -0,0 +1,128 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_NATIVE_APP_WINDOW_NATIVE_APP_WINDOW_CREATE_PARAMS_H_
+#define COMPONENTS_NATIVE_APP_WINDOW_NATIVE_APP_WINDOW_CREATE_PARAMS_H_
+
+#include "components/native_app_window/native_app_window_export.h"
+#include "third_party/skia/include/core/SkColor.h"
+#include "ui/base/ui_base_types.h"
+#include "ui/gfx/geometry/rect.h"
+#include "ui/gfx/geometry/size.h"
+
+namespace native_app_window {
+
+enum WindowType {
+ WINDOW_TYPE_DEFAULT = 1 << 0, // Default app window.
+ WINDOW_TYPE_PANEL = 1 << 1, // OS controlled panel window (Ash only).
+ WINDOW_TYPE_V1_PANEL = 1 << 2, // For apps v1 support in Ash; deprecate
+ // with v1 apps.
+};
+
+enum FullscreenType {
+ // Not fullscreen.
+ FULLSCREEN_TYPE_NONE = 0,
+
+ // Fullscreen entered by the app.window api.
+ FULLSCREEN_TYPE_WINDOW_API = 1 << 0,
+
+ // Fullscreen entered by HTML requestFullscreen().
+ FULLSCREEN_TYPE_HTML_API = 1 << 1,
+
+ // Fullscreen entered by the OS. ChromeOS uses this type of fullscreen to
+ // enter immersive fullscreen when the user hits the <F4> key.
+ FULLSCREEN_TYPE_OS = 1 << 2,
+
+ // Fullscreen mode that could not be exited by the user. ChromeOS uses
+ // this type of fullscreen to run an app in kiosk mode.
+ FULLSCREEN_TYPE_FORCED = 1 << 3,
+};
+
+enum Frame {
+ FRAME_CHROME, // Chrome-style window frame.
+ FRAME_NONE, // Frameless window.
+};
+
+struct NATIVE_APP_WINDOW_EXPORT BoundsSpecification {
+ // INT_MIN represents an unspecified position component.
+ static const int kUnspecifiedPosition;
+
+ BoundsSpecification();
+ ~BoundsSpecification();
+
+ // INT_MIN designates 'unspecified' for the position components, and 0
+ // designates 'unspecified' for 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. The minimum and
+ // maximum size constraints remain unchanged.
+ void ResetBounds();
+};
+
+class NATIVE_APP_WINDOW_EXPORT AppWindowCreateParams {
+ public:
+ AppWindowCreateParams();
+ ~AppWindowCreateParams();
+
+ WindowType window_type;
+ Frame frame;
+
+ bool has_frame_color;
+ SkColor active_frame_color;
+ SkColor inactive_frame_color;
+ bool alpha_enabled;
+ bool is_ime_window;
+
+ // The initial content/inner bounds specification (excluding any window
+ // decorations).
+ BoundsSpecification content_spec;
+
+ // The initial window/outer bounds specification (including window
+ // decorations).
+ BoundsSpecification window_spec;
+
+ std::string window_key;
+
+ // The process ID of the process that requested the create.
+ int32 creator_process_id;
+
+ // Initial state of the window.
+ ui::WindowShowState state;
+
+ // If true, don't show the window after creation.
+ bool hidden;
+
+ // If true, the window will be resizable by the user. Defaults to true.
+ bool resizable;
+
+ // If true, the window will be focused on creation. Defaults to true.
+ bool focused;
+
+ // 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;
+
+ // If true, the window will be visible on all workspaces. Defaults to false.
+ bool visible_on_all_workspaces;
+
+ // The API enables developers to specify content or window bounds. This
+ // function combines them into a single, constrained window size.
+ 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;
+};
+
+} // namespace native_app_window
+
+#endif // COMPONENTS_NATIVE_APP_WINDOW_NATIVE_APP_WINDOW_CREATE_PARAMS_H_
« no previous file with comments | « components/native_app_window/DEPS ('k') | components/native_app_window/app_window_create_params.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698