custom window level as string
This commit is contained in:
parent
b35bde662a
commit
783d47f78b
7 changed files with 28 additions and 12 deletions
|
@ -487,7 +487,7 @@ bool Window::IsClosable() {
|
|||
}
|
||||
|
||||
void Window::SetAlwaysOnTop(bool top, mate::Arguments* args) {
|
||||
int level = 0;
|
||||
std::string level = "floating";
|
||||
args->GetNext(&level);
|
||||
window_->SetAlwaysOnTop(top, level);
|
||||
}
|
||||
|
|
|
@ -118,7 +118,7 @@ class NativeWindow : public base::SupportsUserData,
|
|||
virtual bool IsFullScreenable() = 0;
|
||||
virtual void SetClosable(bool closable) = 0;
|
||||
virtual bool IsClosable() = 0;
|
||||
virtual void SetAlwaysOnTop(bool top, int level = 0) = 0;
|
||||
virtual void SetAlwaysOnTop(bool top, const std::string& level) = 0;
|
||||
virtual bool IsAlwaysOnTop() = 0;
|
||||
virtual void Center() = 0;
|
||||
virtual void SetTitle(const std::string& title) = 0;
|
||||
|
|
|
@ -64,7 +64,7 @@ class NativeWindowMac : public NativeWindow,
|
|||
bool IsFullScreenable() override;
|
||||
void SetClosable(bool closable) override;
|
||||
bool IsClosable() override;
|
||||
void SetAlwaysOnTop(bool top, int level) override;
|
||||
void SetAlwaysOnTop(bool top, const std::string& level) override;
|
||||
bool IsAlwaysOnTop() override;
|
||||
void Center() override;
|
||||
void SetTitle(const std::string& title) override;
|
||||
|
|
|
@ -943,11 +943,28 @@ bool NativeWindowMac::IsClosable() {
|
|||
return [window_ styleMask] & NSClosableWindowMask;
|
||||
}
|
||||
|
||||
void NativeWindowMac::SetAlwaysOnTop(bool top, int level) {
|
||||
if (!level) {
|
||||
level = NSFloatingWindowLevel;
|
||||
void NativeWindowMac::SetAlwaysOnTop(bool top, std::string level) {
|
||||
int intLevel;
|
||||
if (level == "normal") {
|
||||
intLevel = NSNormalWindowLevel;
|
||||
} else if (level == "floating") {
|
||||
intLevel = NSFloatingWindowLevel;
|
||||
} else if (level == "torn-off-menu") {
|
||||
intLevel = NSTornOffMenuWindowLevel;
|
||||
} else if (level == "modal-panel") {
|
||||
intLevel = NSModalPanelWindowLevel;
|
||||
} else if (level == "main-menu") {
|
||||
intLevel = NSMainMenuWindowLevel;
|
||||
} else if (level == "status") {
|
||||
intLevel = NSStatusWindowLevel;
|
||||
} else if (level == "pop-up-menu") {
|
||||
intLevel = NSPopUpMenuWindowLevel;
|
||||
} else if (level == "screen-saver") {
|
||||
intLevel = NSScreenSaverWindowLevel;
|
||||
} else if (level == "dock") {
|
||||
intLevel = NSDockWindowLevel;
|
||||
}
|
||||
[window_ setLevel:(top ? level : NSNormalWindowLevel)];
|
||||
[window_ setLevel:(top ? intLevel : NSNormalWindowLevel)];
|
||||
}
|
||||
|
||||
bool NativeWindowMac::IsAlwaysOnTop() {
|
||||
|
|
|
@ -682,7 +682,7 @@ bool NativeWindowViews::IsClosable() {
|
|||
#endif
|
||||
}
|
||||
|
||||
void NativeWindowViews::SetAlwaysOnTop(bool top, int level) {
|
||||
void NativeWindowViews::SetAlwaysOnTop(bool top, const std::string& level) {
|
||||
window_->SetAlwaysOnTop(top, level);
|
||||
}
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ class NativeWindowViews : public NativeWindow,
|
|||
bool IsFullScreenable() override;
|
||||
void SetClosable(bool closable) override;
|
||||
bool IsClosable() override;
|
||||
void SetAlwaysOnTop(bool top, int level) override;
|
||||
void SetAlwaysOnTop(bool top, const std::string& level) override;
|
||||
bool IsAlwaysOnTop() override;
|
||||
void Center() override;
|
||||
void SetTitle(const std::string& title) override;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue