'atom/browser/mac/atom_application_delegate.mm',
'atom/browser/native_window.cc',
'atom/browser/native_window.h',
- 'atom/browser/native_window_gtk.cc',
- 'atom/browser/native_window_gtk.h',
+ 'atom/browser/native_window_aura.cc',
+ 'atom/browser/native_window_aura.h',
+# 'atom/browser/native_window_gtk.cc',
+# 'atom/browser/native_window_gtk.h',
'atom/browser/native_window_mac.h',
'atom/browser/native_window_mac.mm',
'atom/browser/native_window_win.cc',
virtual void UpdateStates() = 0;
#endif
-#if defined(OS_WIN) || defined(TOOLKIT_GTK)
+#if defined(OS_WIN) || defined(OS_LINUX)
virtual void AttachToWindow(Window* window) = 0;
#endif
}
void MenuGtk::Popup(Window* window) {
+ /*
uint32_t triggering_event_time;
gfx::Point point;
menu_gtk_.reset(new ::MenuGtk(this, model_.get()));
menu_gtk_->PopupAsContext(point, triggering_event_time);
+ */
}
void MenuGtk::AttachToWindow(Window* window) {
- static_cast<NativeWindowGtk*>(window->window())->SetMenu(model_.get());
+ // static_cast<NativeWindowGtk*>(window->window())->SetMenu(model_.get());
}
// static
--- /dev/null
+// Copyright (c) 2014 GitHub, Inc. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+#include "atom/browser/native_window_aura.h"
+
+#include "content/public/browser/web_contents_view.h"
+#include "ui/aura/env.h"
+#include "ui/aura/layout_manager.h"
+#include "ui/aura/window.h"
+
+namespace atom {
+
+namespace {
+
+class FillLayout : public aura::LayoutManager {
+ public:
+ explicit FillLayout(aura::Window* root)
+ : root_(root) {
+ }
+
+ virtual ~FillLayout() {}
+
+ private:
+ // aura::LayoutManager:
+ virtual void OnWindowResized() OVERRIDE {
+ }
+
+ virtual void OnWindowAddedToLayout(aura::Window* child) OVERRIDE {
+ child->SetBounds(root_->bounds());
+ }
+
+ virtual void OnWillRemoveWindowFromLayout(aura::Window* child) OVERRIDE {
+ }
+
+ virtual void OnWindowRemovedFromLayout(aura::Window* child) OVERRIDE {
+ }
+
+ virtual void OnChildWindowVisibilityChanged(aura::Window* child,
+ bool visible) OVERRIDE {
+ }
+
+ virtual void SetChildBounds(aura::Window* child,
+ const gfx::Rect& requested_bounds) OVERRIDE {
+ SetChildBoundsDirect(child, requested_bounds);
+ }
+
+ aura::Window* root_;
+
+ DISALLOW_COPY_AND_ASSIGN(FillLayout);
+};
+
+} // namespace
+
+NativeWindowAura::NativeWindowAura(content::WebContents* web_contents,
+ const mate::Dictionary& options)
+ : NativeWindow(web_contents, options) {
+ aura::Env::CreateInstance();
+
+ host_.reset(aura::WindowTreeHost::Create(gfx::Rect(gfx::Size(800, 600))));
+ host_->InitHost();
+ host_->window()->SetLayoutManager(new FillLayout(host_->window()));
+ host_->window()->AddChild(web_contents->GetView()->GetNativeView());
+}
+
+NativeWindowAura::~NativeWindowAura() {
+}
+
+void NativeWindowAura::Close() {
+}
+
+void NativeWindowAura::CloseImmediately() {
+}
+
+void NativeWindowAura::Move(const gfx::Rect& pos) {
+}
+
+void NativeWindowAura::Focus(bool focus) {
+}
+
+bool NativeWindowAura::IsFocused() {
+ return false;
+}
+
+void NativeWindowAura::Show() {
+ host_->Show();
+}
+
+void NativeWindowAura::Hide() {
+ host_->Hide();
+}
+
+bool NativeWindowAura::IsVisible() {
+ return false;
+}
+
+void NativeWindowAura::Maximize() {
+}
+
+void NativeWindowAura::Unmaximize() {
+}
+
+void NativeWindowAura::Minimize() {
+}
+
+void NativeWindowAura::Restore() {
+}
+
+void NativeWindowAura::SetFullscreen(bool fullscreen) {
+}
+
+bool NativeWindowAura::IsFullscreen() {
+ return false;
+}
+
+void NativeWindowAura::SetSize(const gfx::Size& size) {
+}
+
+gfx::Size NativeWindowAura::GetSize() {
+ return gfx::Size();
+}
+
+void NativeWindowAura::SetContentSize(const gfx::Size& size) {
+}
+
+gfx::Size NativeWindowAura::GetContentSize() {
+ return gfx::Size();
+}
+
+void NativeWindowAura::SetMinimumSize(const gfx::Size& size) {
+}
+
+gfx::Size NativeWindowAura::GetMinimumSize() {
+ return gfx::Size();
+}
+
+void NativeWindowAura::SetMaximumSize(const gfx::Size& size) {
+}
+
+gfx::Size NativeWindowAura::GetMaximumSize() {
+ return gfx::Size();
+}
+
+void NativeWindowAura::SetResizable(bool resizable) {
+}
+
+bool NativeWindowAura::IsResizable() {
+ return false;
+}
+
+void NativeWindowAura::SetAlwaysOnTop(bool top) {
+}
+
+bool NativeWindowAura::IsAlwaysOnTop() {
+ return false;
+}
+
+void NativeWindowAura::Center() {
+}
+
+void NativeWindowAura::SetPosition(const gfx::Point& position) {
+}
+
+gfx::Point NativeWindowAura::GetPosition() {
+ return gfx::Point(0, 0);
+}
+
+void NativeWindowAura::SetTitle(const std::string& title) {
+}
+
+std::string NativeWindowAura::GetTitle() {
+ return "";
+}
+
+void NativeWindowAura::FlashFrame(bool flash) {
+}
+
+void NativeWindowAura::SetSkipTaskbar(bool skip) {
+}
+
+void NativeWindowAura::SetKiosk(bool kiosk) {
+}
+
+bool NativeWindowAura::IsKiosk() {
+ return false;
+}
+
+gfx::NativeWindow NativeWindowAura::GetNativeWindow() {
+ return NULL;
+}
+
+void NativeWindowAura::UpdateDraggableRegions(
+ const std::vector<DraggableRegion>& regions) {
+}
+
+// static
+NativeWindow* NativeWindow::Create(content::WebContents* web_contents,
+ const mate::Dictionary& options) {
+ return new NativeWindowAura(web_contents, options);
+}
+
+} // namespace atom
--- /dev/null
+// Copyright (c) 2014 GitHub, Inc. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+#ifndef ATOM_BROWSER_NATIVE_WINDOW_AURA_H_
+#define ATOM_BROWSER_NATIVE_WINDOW_AURA_H_
+
+#include "atom/browser/native_window.h"
+
+#include "ui/aura/window_tree_host.h"
+
+namespace atom {
+
+class NativeWindowAura : public NativeWindow {
+ public:
+ explicit NativeWindowAura(content::WebContents* web_contents,
+ const mate::Dictionary& options);
+ virtual ~NativeWindowAura();
+
+ // NativeWindow:
+ virtual void Close() OVERRIDE;
+ virtual void CloseImmediately() OVERRIDE;
+ virtual void Move(const gfx::Rect& pos) OVERRIDE;
+ virtual void Focus(bool focus) OVERRIDE;
+ virtual bool IsFocused() OVERRIDE;
+ virtual void Show() OVERRIDE;
+ virtual void Hide() OVERRIDE;
+ virtual bool IsVisible() OVERRIDE;
+ virtual void Maximize() OVERRIDE;
+ virtual void Unmaximize() OVERRIDE;
+ virtual void Minimize() OVERRIDE;
+ virtual void Restore() OVERRIDE;
+ virtual void SetFullscreen(bool fullscreen) OVERRIDE;
+ virtual bool IsFullscreen() OVERRIDE;
+ virtual void SetSize(const gfx::Size& size) OVERRIDE;
+ virtual gfx::Size GetSize() OVERRIDE;
+ virtual void SetContentSize(const gfx::Size& size) OVERRIDE;
+ virtual gfx::Size GetContentSize() OVERRIDE;
+ virtual void SetMinimumSize(const gfx::Size& size) OVERRIDE;
+ virtual gfx::Size GetMinimumSize() OVERRIDE;
+ virtual void SetMaximumSize(const gfx::Size& size) OVERRIDE;
+ virtual gfx::Size GetMaximumSize() OVERRIDE;
+ virtual void SetResizable(bool resizable) OVERRIDE;
+ virtual bool IsResizable() OVERRIDE;
+ virtual void SetAlwaysOnTop(bool top) OVERRIDE;
+ virtual bool IsAlwaysOnTop() OVERRIDE;
+ virtual void Center() OVERRIDE;
+ virtual void SetPosition(const gfx::Point& position) OVERRIDE;
+ virtual gfx::Point GetPosition() OVERRIDE;
+ virtual void SetTitle(const std::string& title) OVERRIDE;
+ virtual std::string GetTitle() OVERRIDE;
+ virtual void FlashFrame(bool flash) OVERRIDE;
+ virtual void SetSkipTaskbar(bool skip) OVERRIDE;
+ virtual void SetKiosk(bool kiosk) OVERRIDE;
+ virtual bool IsKiosk() OVERRIDE;
+ virtual gfx::NativeWindow GetNativeWindow() OVERRIDE;
+
+ private:
+ // NativeWindow:
+ virtual void UpdateDraggableRegions(
+ const std::vector<DraggableRegion>& regions) OVERRIDE;
+
+ scoped_ptr<aura::WindowTreeHost> host_;
+
+ DISALLOW_COPY_AND_ASSIGN(NativeWindowAura);
+};
+
+} // namespace atom
+
+#endif // ATOM_BROWSER_NATR_NATIVE_WINDOW_AURA_H_
else if (action == GTK_FILE_CHOOSER_ACTION_OPEN)
confirm_text = GTK_STOCK_OPEN;
- GtkWindow* window = parent_window ? parent_window->GetNativeWindow() : NULL;
+ // GtkWindow* window = parent_window ? parent_window->GetNativeWindow() : NULL;
+ GtkWindow* window = NULL;
dialog_ = gtk_file_chooser_dialog_new(
title.c_str(),
window,
const std::string& detail)
: cancel_id_(0),
dialog_scope_(new NativeWindow::DialogScope(parent_window)) {
- GtkWindow* window = parent_window ? parent_window->GetNativeWindow() : NULL;
+ // GtkWindow* window = parent_window ? parent_window->GetNativeWindow() : NULL;
+ GtkWindow* window = NULL;
dialog_ = gtk_dialog_new_with_buttons(
title.c_str(),
window,
['exclude', '(^|/)x/'],
],
}],
- ['OS!="win"', {
- 'sources/': [ ['exclude', '_views\\.(h|cc)$'] ]
+ ['OS!="linux"', {
+ 'sources/': [ ['exclude', '_aura\\.(h|cc)$'] ]
}],
]
}
-Subproject commit 1e41ef63ebd7ecb1ffb3a6fec74b5a5264f20092
+Subproject commit a348865e723b73cd01d0b976f2d0b8d9b836176d