// Copyright (c) 2013 GitHub, Inc. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef ATOM_BROWSER_API_ATOM_API_WINDOW_H_ #define ATOM_BROWSER_API_ATOM_API_WINDOW_H_ #include "browser/api/atom_api_event_emitter.h" namespace base { class DictionaryValue; } namespace atom { class NativeWindow; namespace api { class Window : public EventEmitter { public: virtual ~Window(); static void Initialize(v8::Handle target); NativeWindow* window() { return window_.get(); } protected: explicit Window(v8::Handle wrapper, base::DictionaryValue* options); private: static v8::Handle New(const v8::Arguments &args); static v8::Handle Destroy(const v8::Arguments &args); // APIs for NativeWindow. static v8::Handle Close(const v8::Arguments &args); static v8::Handle Focus(const v8::Arguments &args); static v8::Handle Show(const v8::Arguments &args); static v8::Handle Hide(const v8::Arguments &args); static v8::Handle Maximize(const v8::Arguments &args); static v8::Handle Unmaximize(const v8::Arguments &args); static v8::Handle Minimize(const v8::Arguments &args); static v8::Handle Restore(const v8::Arguments &args); static v8::Handle SetFullscreen(const v8::Arguments &args); static v8::Handle IsFullscreen(const v8::Arguments &args); static v8::Handle SetSize(const v8::Arguments &args); static v8::Handle GetSize(const v8::Arguments &args); static v8::Handle SetMinimumSize(const v8::Arguments &args); static v8::Handle SetMaximumSize(const v8::Arguments &args); static v8::Handle SetResizable(const v8::Arguments &args); static v8::Handle SetAlwaysOnTop(const v8::Arguments &args); static v8::Handle SetPosition(const v8::Arguments &args); static v8::Handle GetPosition(const v8::Arguments &args); static v8::Handle SetTitle(const v8::Arguments &args); static v8::Handle FlashFrame(const v8::Arguments &args); static v8::Handle SetKiosk(const v8::Arguments &args); static v8::Handle IsKiosk(const v8::Arguments &args); static v8::Handle ShowDevTools(const v8::Arguments &args); static v8::Handle CloseDevTools(const v8::Arguments &args); scoped_ptr window_; DISALLOW_COPY_AND_ASSIGN(Window); }; } // namespace api } // namespace atom #endif // ATOM_BROWSER_API_ATOM_API_WINDOW_H_