Skip to content

Commit

Permalink
Implement native macOS menu-bar (closes #23)
Browse files Browse the repository at this point in the history
  • Loading branch information
iamgio committed Dec 7, 2021
1 parent d8d1f36 commit 8295bd7
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import org.chorusmc.chorus.file.LocalFile;
import org.chorusmc.chorus.menubar.MenuBarMainButton;
import org.chorusmc.chorus.nodes.Tab;
import org.chorusmc.chorus.util.Os;

import java.net.URL;
import java.util.List;
Expand Down Expand Up @@ -62,6 +63,8 @@ public void initialize(URL location, ResourceBundle resources) {
}
});

if(Os.isMac()) menuBar.setUseSystemMenuBar(true);

List<MenuBarMainButton> menuBarButtons = org.chorusmc.chorus.menubar.MenuBar.INSTANCE.getMenuBarButtons();
menuBarButtons.forEach(button -> {
menuBar.getMenus().add(button);
Expand Down
27 changes: 27 additions & 0 deletions src/main/java/org/chorusmc/chorus/util/OsUtils.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
@file:JvmName("Os")
package org.chorusmc.chorus.util

// OS-related utilities

enum class OsType {
WINDOWS, OSX, LINUX, UNKNOWN;
}

val os: OsType by lazy {
val sys = System.getProperty("os.name").toLowerCase()
when {
"win" in sys -> OsType.WINDOWS
"nix" in sys || "nux" in sys || "aix" in sys || "sunos" in sys -> OsType.LINUX
"mac" in sys -> OsType.OSX
else -> OsType.UNKNOWN
}
}

val isWindows: Boolean
get() = os == OsType.WINDOWS

val isMac: Boolean
get() = os == OsType.OSX

val isLinux: Boolean
get() = os == OsType.LINUX

0 comments on commit 8295bd7

Please sign in to comment.