2014-10-31 11:17:05 -07:00
|
|
|
// Copyright (c) 2013 GitHub, Inc.
|
2014-04-25 17:49:37 +08:00
|
|
|
// Use of this source code is governed by the MIT license that can be
|
2013-04-18 20:50:58 +08:00
|
|
|
// found in the LICENSE file.
|
|
|
|
|
2019-06-19 13:56:58 -07:00
|
|
|
#ifndef SHELL_BROWSER_NATIVE_WINDOW_OBSERVER_H_
|
|
|
|
#define SHELL_BROWSER_NATIVE_WINDOW_OBSERVER_H_
|
2013-04-18 20:50:58 +08:00
|
|
|
|
2013-07-01 21:56:46 +08:00
|
|
|
#include <string>
|
2013-04-18 20:50:58 +08:00
|
|
|
|
2018-10-25 17:43:50 +11:00
|
|
|
#include "base/observer_list_types.h"
|
2014-10-27 16:56:28 +08:00
|
|
|
#include "base/strings/string16.h"
|
2017-02-28 15:37:15 -08:00
|
|
|
#include "base/values.h"
|
2014-11-04 17:59:15 +08:00
|
|
|
#include "ui/base/window_open_disposition.h"
|
2014-10-27 16:56:28 +08:00
|
|
|
#include "url/gurl.h"
|
|
|
|
|
2015-10-27 03:12:01 +02:00
|
|
|
#if defined(OS_WIN)
|
|
|
|
#include <windows.h>
|
|
|
|
#endif
|
|
|
|
|
2018-07-27 11:53:01 +02:00
|
|
|
namespace gfx {
|
|
|
|
class Rect;
|
|
|
|
}
|
|
|
|
|
2019-06-19 14:23:04 -07:00
|
|
|
namespace electron {
|
2013-04-18 20:50:58 +08:00
|
|
|
|
2018-10-25 17:43:50 +11:00
|
|
|
class NativeWindowObserver : public base::CheckedObserver {
|
2013-04-18 20:50:58 +08:00
|
|
|
public:
|
2018-10-25 17:43:50 +11:00
|
|
|
~NativeWindowObserver() override {}
|
2013-04-18 20:50:58 +08:00
|
|
|
|
2014-10-27 16:56:28 +08:00
|
|
|
// Called when the web page in window wants to create a popup window.
|
|
|
|
virtual void WillCreatePopupWindow(const base::string16& frame_name,
|
|
|
|
const GURL& target_url,
|
2014-11-04 17:59:15 +08:00
|
|
|
const std::string& partition_id,
|
|
|
|
WindowOpenDisposition disposition) {}
|
2014-10-27 16:56:28 +08:00
|
|
|
|
2014-12-17 14:40:19 -08:00
|
|
|
// Called when user is starting an navigation in web page.
|
|
|
|
virtual void WillNavigate(bool* prevent_default, const GURL& url) {}
|
|
|
|
|
2013-05-01 16:33:19 +08:00
|
|
|
// Called when the window is gonna closed.
|
|
|
|
virtual void WillCloseWindow(bool* prevent_default) {}
|
|
|
|
|
2018-03-06 12:03:12 +09:00
|
|
|
// Called when the window wants to know the preferred width.
|
|
|
|
virtual void RequestPreferredWidth(int* width) {}
|
|
|
|
|
2018-02-22 16:15:21 +09:00
|
|
|
// Called when closed button is clicked.
|
|
|
|
virtual void OnCloseButtonClicked(bool* prevent_default) {}
|
|
|
|
|
2013-05-01 16:33:19 +08:00
|
|
|
// Called when the window is closed.
|
|
|
|
virtual void OnWindowClosed() {}
|
2013-05-24 17:51:15 +08:00
|
|
|
|
2017-04-24 11:49:21 -07:00
|
|
|
// Called when Windows sends WM_ENDSESSION message
|
|
|
|
virtual void OnWindowEndSession() {}
|
|
|
|
|
2013-05-24 17:51:15 +08:00
|
|
|
// Called when window loses focus.
|
|
|
|
virtual void OnWindowBlur() {}
|
2013-06-06 19:45:48 +08:00
|
|
|
|
2014-05-21 13:46:13 -04:00
|
|
|
// Called when window gains focus.
|
|
|
|
virtual void OnWindowFocus() {}
|
|
|
|
|
2016-03-08 09:36:41 -08:00
|
|
|
// Called when window is shown.
|
|
|
|
virtual void OnWindowShow() {}
|
|
|
|
|
|
|
|
// Called when window is hidden.
|
|
|
|
virtual void OnWindowHide() {}
|
|
|
|
|
2014-11-25 12:43:25 +08:00
|
|
|
// Called when window state changed.
|
|
|
|
virtual void OnWindowMaximize() {}
|
|
|
|
virtual void OnWindowUnmaximize() {}
|
|
|
|
virtual void OnWindowMinimize() {}
|
|
|
|
virtual void OnWindowRestore() {}
|
2018-07-27 11:53:01 +02:00
|
|
|
virtual void OnWindowWillResize(const gfx::Rect& new_bounds,
|
|
|
|
bool* prevent_default) {}
|
2015-05-09 21:25:10 +05:30
|
|
|
virtual void OnWindowResize() {}
|
2018-08-28 09:44:10 -04:00
|
|
|
virtual void OnWindowWillMove(const gfx::Rect& new_bounds,
|
|
|
|
bool* prevent_default) {}
|
2015-05-09 21:25:10 +05:30
|
|
|
virtual void OnWindowMove() {}
|
2015-05-20 14:07:13 +05:30
|
|
|
virtual void OnWindowMoved() {}
|
2016-01-21 16:31:09 -08:00
|
|
|
virtual void OnWindowScrollTouchBegin() {}
|
|
|
|
virtual void OnWindowScrollTouchEnd() {}
|
2016-03-23 15:20:11 +00:00
|
|
|
virtual void OnWindowSwipe(const std::string& direction) {}
|
2017-04-20 10:31:25 -07:00
|
|
|
virtual void OnWindowSheetBegin() {}
|
|
|
|
virtual void OnWindowSheetEnd() {}
|
2014-11-25 12:43:25 +08:00
|
|
|
virtual void OnWindowEnterFullScreen() {}
|
|
|
|
virtual void OnWindowLeaveFullScreen() {}
|
2015-05-17 02:31:30 +05:30
|
|
|
virtual void OnWindowEnterHtmlFullScreen() {}
|
|
|
|
virtual void OnWindowLeaveHtmlFullScreen() {}
|
2018-10-04 11:02:16 -07:00
|
|
|
virtual void OnWindowAlwaysOnTopChanged() {}
|
2017-02-28 15:37:15 -08:00
|
|
|
virtual void OnTouchBarItemResult(const std::string& item_id,
|
|
|
|
const base::DictionaryValue& details) {}
|
2017-06-11 01:19:01 -07:00
|
|
|
virtual void OnNewWindowForTab() {}
|
2014-11-25 12:43:25 +08:00
|
|
|
|
2018-04-17 21:44:10 -04:00
|
|
|
// Called when window message received
|
|
|
|
#if defined(OS_WIN)
|
2015-10-29 10:53:48 +08:00
|
|
|
virtual void OnWindowMessage(UINT message, WPARAM w_param, LPARAM l_param) {}
|
2018-04-17 21:44:10 -04:00
|
|
|
#endif
|
2015-10-27 03:12:01 +02:00
|
|
|
|
2015-06-17 17:15:02 -07:00
|
|
|
// Called on Windows when App Commands arrive (WM_APPCOMMAND)
|
2018-12-05 09:35:59 -08:00
|
|
|
// Some commands are implemented on on other platforms as well
|
|
|
|
virtual void OnExecuteAppCommand(const std::string& command_name) {}
|
2013-04-18 20:50:58 +08:00
|
|
|
};
|
|
|
|
|
2019-06-19 14:23:04 -07:00
|
|
|
} // namespace electron
|
2013-04-18 20:50:58 +08:00
|
|
|
|
2019-06-19 13:56:58 -07:00
|
|
|
#endif // SHELL_BROWSER_NATIVE_WINDOW_OBSERVER_H_
|