# toggleMenubar plugin v1.0.0
#
# example keybinding:
# <binding key="leftalt+m" command="toggleMenubar"/>
#
# Known issues:
# menu hidden by fullscreen mode can't be shown again
# saving any file makes toggleMenubar backup hwnd, hmenu and show
import sublime, sublimeplugin, os
from ctypes import *
firstRun = 1
show = 1
hwnd = windll.User32.GetActiveWindow()
hmenu = windll.User32.GetMenu(hwnd)
def loadGlobals():
if os.path.isfile("toggleMenubar.tmp"):
file = open("toggleMenubar.tmp", 'r')
try:
globals()["hmenu"] = int(file.readline())
globals()["hwnd"] = int(file.readline())
globals()["show"] = int(file.readline())
except:
pass
file.close()
os.remove("toggleMenubar.tmp")
else:
globals()["hwnd"] = windll.User32.GetActiveWindow()
globals()["hmenu"] = windll.User32.GetMenu(globals()["hwnd"])
class toggleMenubarCommand(sublimeplugin.TextCommand):
def run(self, view, args):
if globals()["firstRun"]:
globals()["firstRun"] = 0
globals()["show"] = 1
globals()["hwnd"] = windll.User32.GetActiveWindow()
globals()["hmenu"] = windll.User32.GetMenu(globals()["hwnd"])
if globals()["hmenu"] == 0 or globals()["hwnd"] == 0:
loadGlobals()
newMenu = windll.User32.GetMenu(hwnd)
if newMenu != 0 and newMenu != globals()["hmenu"]:
globals()["hmenu"] = newMenu
if show:
windll.User32.SetMenu(globals()["hwnd"], 0)
globals()["show"] = 0
else:
windll.User32.SetMenu(globals()["hwnd"], globals()["hmenu"])
globals()["show"] = 1
class toggleMenubarSecure(sublimeplugin.Plugin):
def onPreSave(self, view):
file = open("toggleMenubar.tmp", 'w')
file.write(str(globals()["hmenu"]))
file.write("\n")
file.write(str(globals()["hwnd"]))
file.write("\n")
file.write(str(globals()["show"]))
file.close()