return window_->IsVisible();
}
+void Window::Disable() {
+ window_->Disable();
+}
+
+void Window::Enable() {
+ window_->Enable();
+}
+
+bool Window::IsEnabled() {
+ return window_->IsEnabled();
+}
+
void Window::Maximize() {
window_->Maximize();
}
.SetMethod("showInactive", &Window::ShowInactive)
.SetMethod("hide", &Window::Hide)
.SetMethod("isVisible", &Window::IsVisible)
+ .SetMethod("enable", &Window::Enable)
+ .SetMethod("disable", &Window::Disable)
+ .SetMethod("isEnabled", &Window::IsEnabled)
.SetMethod("maximize", &Window::Maximize)
.SetMethod("unmaximize", &Window::Unmaximize)
.SetMethod("isMaximized", &Window::IsMaximized)
void ShowInactive();
void Hide();
bool IsVisible();
+ void Disable();
+ void Enable();
+ bool IsEnabled();
void Maximize();
void Unmaximize();
bool IsMaximized();
virtual void ShowInactive() = 0;
virtual void Hide() = 0;
virtual bool IsVisible() = 0;
+ virtual void Disable() = 0;
+ virtual void Enable() = 0;
+ virtual bool IsEnabled() = 0;
virtual void Maximize() = 0;
virtual void Unmaximize() = 0;
virtual bool IsMaximized() = 0;
void ShowInactive() override;
void Hide() override;
bool IsVisible() override;
+ void Disable() override;
+ void Enable() override;
+ bool IsEnabled() override;
void Maximize() override;
void Unmaximize() override;
bool IsMaximized() override;
@property BOOL acceptsFirstMouse;
@property BOOL disableAutoHideCursor;
@property BOOL disableKeyOrMainWindow;
+@property BOOL disableMouseEvents;
- (void)setShell:(atom::NativeWindowMac*)shell;
- (void)setEnableLargerThanScreen:(bool)enable;
return !self.disableKeyOrMainWindow;
}
+- (void)sendEvent:(NSEvent*)event {
+ // Drop all mouse events.
+ if (self.disableMouseEvents) {
+ switch([event type]) {
+ case NSLeftMouseUp:
+ case NSLeftMouseDown:
+ case NSRightMouseDown:
+ case NSRightMouseUp:
+ case NSOtherMouseUp:
+ case NSLeftMouseDragged:
+ case NSRightMouseDragged:
+ case NSOtherMouseDragged:
+ case NSMouseMoved:
+ case NSScrollWheel:
+ return;
+ default:
+ break;
+ }
+ }
+
+ [super sendEvent:event];
+}
+
@end
@interface ControlRegionView : NSView
backing:NSBackingStoreBuffered
defer:YES]);
[window_ setShell:this];
+ [window_ setDisableMouseEvents:NO];
[window_ setEnableLargerThanScreen:enable_larger_than_screen()];
window_delegate_.reset([[AtomNSWindowDelegate alloc] initWithShell:this]);
return [window_ isVisible];
}
+void NativeWindowMac::Disable() {
+ [window_ setDisableKeyOrMainWindow:YES];
+ [window_ setDisableMouseEvents:YES];
+}
+
+void NativeWindowMac::Enable() {
+ [window_ setDisableKeyOrMainWindow:NO];
+ [window_ setDisableMouseEvents:NO];
+}
+
+bool NativeWindowMac::IsEnabled() {
+ return ![window_ disableMouseEvents];
+}
+
void NativeWindowMac::Maximize() {
if (IsMaximized())
return;
return window_->IsVisible();
}
+void NativeWindowViews::Disable() {
+}
+
+void NativeWindowViews::Enable() {
+}
+
+bool NativeWindowViews::IsEnabled() {
+ return true;
+}
+
void NativeWindowViews::Maximize() {
if (IsVisible())
window_->Maximize();
void ShowInactive() override;
void Hide() override;
bool IsVisible() override;
+ void Disable() override;
+ void Enable() override;
+ bool IsEnabled() override;
void Maximize() override;
void Unmaximize() override;
bool IsMaximized() override;