From 483988f814c642216220afedb699db161d6f5ff4 Mon Sep 17 00:00:00 2001 From: Kamil Chojnowski Date: Fri, 10 Nov 2017 17:03:34 +0100 Subject: [PATCH 1/2] Add a keyboard shortcut to toggle topmenu visibility --- modules/client_topmenu/topmenu.lua | 19 +++++++++++++++++++ modules/game_interface/gameinterface.otui | 3 +-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/modules/client_topmenu/topmenu.lua b/modules/client_topmenu/topmenu.lua index a11fa587..7ba90832 100644 --- a/modules/client_topmenu/topmenu.lua +++ b/modules/client_topmenu/topmenu.lua @@ -51,6 +51,8 @@ function init() pingLabel = topMenu:getChildById('pingLabel') fpsLabel = topMenu:getChildById('fpsLabel') + g_keyboard.bindKeyDown('Ctrl+Shift+T', toggle) + if g_game.isOnline() then online() end @@ -164,3 +166,20 @@ end function getTopMenu() return topMenu end + +function toggle() + local menu = getTopMenu() + if not menu then + return + end + + if menu:isVisible() then + menu:hide() + modules.client_background.getBackground():addAnchor(AnchorTop, 'parent', AnchorTop) + modules.game_interface.getRootPanel():addAnchor(AnchorTop, 'parent', AnchorTop) + else + menu:show() + modules.client_background.getBackground():addAnchor(AnchorTop, 'topMenu', AnchorBottom) + modules.game_interface.getRootPanel():addAnchor(AnchorTop, 'topMenu', AnchorBottom) + end +end diff --git a/modules/game_interface/gameinterface.otui b/modules/game_interface/gameinterface.otui index 9196a223..9676d4b4 100644 --- a/modules/game_interface/gameinterface.otui +++ b/modules/game_interface/gameinterface.otui @@ -1,4 +1,3 @@ - GameSidePanel < UIMiniWindowContainer image-source: /images/ui/panel_side image-border: 4 @@ -73,4 +72,4 @@ UIWidget UIWidget id: mouseGrabber focusable: false - visible: false \ No newline at end of file + visible: false From 68371c98d4f38fb407b4a9f5379460d43f1956fe Mon Sep 17 00:00:00 2001 From: Kamil Chojnowski Date: Sun, 19 Nov 2017 02:00:02 +0100 Subject: [PATCH 2/2] Add a button to show the top menu when it's hidden --- modules/client_topmenu/topmenu.lua | 2 ++ modules/game_interface/gameinterface.lua | 10 ++++++++++ modules/game_interface/gameinterface.otui | 8 ++++++++ 3 files changed, 20 insertions(+) diff --git a/modules/client_topmenu/topmenu.lua b/modules/client_topmenu/topmenu.lua index 7ba90832..bb8632f9 100644 --- a/modules/client_topmenu/topmenu.lua +++ b/modules/client_topmenu/topmenu.lua @@ -177,9 +177,11 @@ function toggle() menu:hide() modules.client_background.getBackground():addAnchor(AnchorTop, 'parent', AnchorTop) modules.game_interface.getRootPanel():addAnchor(AnchorTop, 'parent', AnchorTop) + modules.game_interface.getShowTopMenuButton():show() else menu:show() modules.client_background.getBackground():addAnchor(AnchorTop, 'topMenu', AnchorBottom) modules.game_interface.getRootPanel():addAnchor(AnchorTop, 'topMenu', AnchorBottom) + modules.game_interface.getShowTopMenuButton():hide() end end diff --git a/modules/game_interface/gameinterface.lua b/modules/game_interface/gameinterface.lua index 1ad1a205..0040bb59 100644 --- a/modules/game_interface/gameinterface.lua +++ b/modules/game_interface/gameinterface.lua @@ -5,6 +5,7 @@ gameMapPanel = nil gameRightPanel = nil gameLeftPanel = nil gameBottomPanel = nil +showTopMenuButton = nil logoutButton = nil mouseGrabberWidget = nil countWindow = nil @@ -55,6 +56,11 @@ function init() logoutButton = modules.client_topmenu.addLeftButton('logoutButton', tr('Exit'), '/images/topbuttons/logout', tryLogout, true) + showTopMenuButton = gameMapPanel:getChildById('showTopMenuButton') + showTopMenuButton.onClick = function() + modules.client_topmenu.toggle() + end + setupViewMode(0) bindKeys() @@ -800,6 +806,10 @@ function getBottomPanel() return gameBottomPanel end +function getShowTopMenuButton() + return showTopMenuButton +end + function onLeftPanelVisibilityChange(leftPanel, visible) if not visible and g_game.isOnline() then local children = leftPanel:getChildren() diff --git a/modules/game_interface/gameinterface.otui b/modules/game_interface/gameinterface.otui index 9676d4b4..7be46a07 100644 --- a/modules/game_interface/gameinterface.otui +++ b/modules/game_interface/gameinterface.otui @@ -32,6 +32,14 @@ UIWidget anchors.bottom: gameBottomPanel.top focusable: false + Button + id: showTopMenuButton + anchors.top: parent.top + anchors.left: parent.left + !text: tr('Show Top Menu') + height: 32 + visible: false + GameBottomPanel id: gameBottomPanel anchors.left: gameLeftPanel.right