TwoCanoe Posted December 18, 2024 Posted December 18, 2024 Hello again. I'm trying to create a sidebar gui. Creating the gui is simple enough, (permanently) reserving the desktop space is the problem. I searched all the sidebar (or taskbar like) related posts, but don't see anything about reserving space. Resizing each and every window that opens is likely to be a pain. One possibility, is there perhaps a reg key that sets the maximum window size or width?
argumentum Posted December 19, 2024 Posted December 19, 2024 2 hours ago, TwoCanoe said: I'm trying to create a sidebar gui Make it topmost and visible if the mouse single click the edge ?. As a side bar, it would be functional and unintrusive. My 2 cents Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting.
TwoCanoe Posted December 19, 2024 Author Posted December 19, 2024 (edited) What I am trying to do is have a list of macro keys in the sidebar, see the attached screenshot. The bar on the right-hand side is (the beginings of) my sidebar. The contents of the sidebar will depend on the active window. Running Office will display a different list of keys, and so on. I use a Razer Tarturus as a macro pad. Thats around 120 keys available for each application that I might run. The bar in the screenshot is a list of keys and their commands. I would like the sidebar to be constantly present. There are two ways of doing that: 1) Resize every windows that opens. 2) Reserve space for the sidebar. Forcing any windows that open fit between the taskbar and the sidebar. Option 2 would be far easier. I just don't now any way to force all windows to open between the taskbar and the sidebar. I hope all that makes sense. Sorry about uploading pics, don't know how else to explain. Edited December 19, 2024 by TwoCanoe Apology
argumentum Posted December 19, 2024 Posted December 19, 2024 49 minutes ago, TwoCanoe said: Sorry about uploading pics, don't know how else to explain. Actually, thanks for that. I could not make sense of what you wanted. Now I see what you're up to. I don't have the answers you're looking for. If memory serves, it was possible in XP but don't remember where I've seen it ( here in this forum ). And am not sure if the other program ( Notepad++ in this case ) would accept a max/min, just as you would with your own code. It is a head scratcher ( for me anyway ). I don't have the time to look into it but I'd try to make the other a child om a GUI of mine, if that don't work, then an API. Else, resize it when is maximized. 🤷♂️ Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting.
TwoCanoe Posted December 19, 2024 Author Posted December 19, 2024 I have tried making the sidebar a child and resizing, but gets messy. I also had a look at '_WinAPI_SystemParametersInfo' with '$SPI_GETWORKAREA' and '$SPI_SETWORKAREA', but not sure if that would work - way above my head! In the meantime, I'll keep scratching...
ioa747 Posted December 19, 2024 Posted December 19, 2024 Take a look for an idea. 209312-side-scrollribon twothirtyone 1 I know that I know nothing
TwoCanoe Posted December 19, 2024 Author Posted December 19, 2024 Hello again ioa747. Tried running your script in SciTE several times, but my mouse cursor becomes unstable/uncontrolable.
argumentum Posted December 19, 2024 Posted December 19, 2024 $hRibonForm = GUICreate("RibonForm", $FW, $FH, $hWinPos[0], ($hWinPos[1] - $FH) / 2, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW) GUISetBkColor(0x666600) ; <---- added this to see it Nice. Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting.
Solution ioa747 Posted December 19, 2024 Solution Posted December 19, 2024 (edited) There is definitely room for improvement (exploring the scrolling) and that's why I said it as an idea. The idea where you can use one of this type (auto-hide) where no extra space is needed (as its purpose is only to call a command) expandcollapse popup#include <WindowsConstants.au3> #include <StaticConstants.au3> #include <GUIConstantsEx.au3> Global $g_bAutoHide = True Global $idBtnAutoHide Global $g_hTriggerGUI, $g_hRibonGUI ;~ $g_hTriggerGUI = TriggerGUI() $g_hTriggerGUI = TriggerGUI(0xF0F0F0, 15, 100, 250) $g_hRibonGUI = RibonGUI() ;********************************** While Sleep(50) TriggerCheck() WEnd ;********************************** ;---------------------------------------------------------------------------------------- Func GoToExit() ; exit Exit EndFunc ;==>GoToExit ;---------------------------------------------------------------------------------------- Func TriggerGUI($BkColor = 0xF0F0F0, $Width = 12, $Height = 50, $Trans = 50) Local $hWnd = GUICreate("TriggerGUI", $Width, $Height, -7, (@DesktopHeight - $Height) * 0.4, $WS_POPUP, BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST)) GUISetBkColor($BkColor) WinSetTrans($hWnd, "", $Trans) GUICtrlCreateLabel("", 0, 0, $Width, $Height) WinSetState($hWnd, "", @SW_SHOW) Return $hWnd EndFunc ;==>TriggerGUI ;---------------------------------------------------------------------------------------- Func TriggerCheck() ;if mouse over Trigger Local $aTrigger = GUIGetCursorInfo($g_hTriggerGUI) If $aTrigger[4] Then ;Make the RibonGUI Local $WinPos = WinGetPos($g_hRibonGUI) Local $BakPos = $WinPos WinMove($g_hRibonGUI, "", $WinPos[0], $WinPos[1], $WinPos[2], $WinPos[3]) GUISetState(@SW_SHOW, $g_hRibonGUI) ;Show the RibonGUI For $i = 1 To $WinPos[2] Step 5 WinMove($g_hRibonGUI, "", $WinPos[0], $WinPos[1], $i, $WinPos[3]) Next Local $aRibon ;********************************** While 1 $aRibon = GUIGetCursorInfo($g_hRibonGUI) If $aRibon[4] = 0 And $g_bAutoHide = True Then ExitLoop Sleep(100) WEnd ;********************************** ;Hide the RibonGUI For $i = $WinPos[2] To 1 Step -5 WinMove($g_hRibonGUI, "", $WinPos[0], $WinPos[1], $i, $WinPos[3]) Next GUISetState(@SW_HIDE, $g_hRibonGUI) WinMove($g_hRibonGUI, "", $BakPos[0], $BakPos[1], $BakPos[2], $BakPos[3]) EndIf EndFunc ;==>TriggerCheck ;---------------------------------------------------------------------------------------- Func RibonGUI() ; Ribon make Opt("GUIOnEventMode", 1) ;0=disabled, 1=OnEvent mode enabled GUISetOnEvent($GUI_EVENT_CLOSE, "GoToExit") ConsoleWrite("@DesktopWidth=" & @DesktopWidth & @CRLF) ConsoleWrite("@DesktopHeight=" & @DesktopHeight & @CRLF) ConsoleWrite("@OSVersion=" & @OSVersion & @CRLF) ConsoleWrite("@AutoItX64=" & @AutoItX64 & @CRLF) Local $Width = 320 Local $Height = @DesktopHeight - 40 ; $DTs[1] Local $hWnd = GUICreate("RibonGUI", $Width, $Height, -7, -1, $WS_POPUPWINDOW, BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST)) ; $idLblHead = GUICtrlCreateLabel("", 0, 0, $Width, 32) ; GUICtrlSetBkColor(-1, 0x004A7F) Local $iStep = 2 $idBtnAutoHide = GUICtrlCreateButton("◀", $Width - 30, $iStep, 28, 28) GUICtrlSetFont(-1, 14) GUICtrlSetTip(-1, "Auto Hide ") GUICtrlSetOnEvent(-1, "Ribon_BtnAutoHide") $iStep += 50 GUICtrlCreateLabel("$idInput1", 10, $iStep, 300, 15) $iStep += 15 $idInput1 = GUICtrlCreateInput("Tex1", 10, $iStep, 305, 22) GUICtrlSetFont(-1, 12, 400, 0, "DejaVuSansMono") $iStep += 40 GUICtrlCreateLabel("$idInput2", 10, $iStep, 300, 15) $iStep += 15 $idInput2 = GUICtrlCreateInput("Tex2", 10, $iStep, 305, 22) GUICtrlSetFont(-1, 12, 400, 0, "DejaVuSansMono") $iStep += 40 GUICtrlCreateLabel("$idInput3", 10, $iStep, 300, 15) $iStep += 15 $idInput3 = GUICtrlCreateInput("Tex3", 10, $iStep, 305, 22) GUICtrlSetFont(-1, 12, 400, 0, "DejaVuSansMono") $iStep += 40 GUICtrlCreateLabel("$idInput4", 10, $iStep, 300, 15) $iStep += 15 $idInput4 = GUICtrlCreateInput("Tex4", 10, $iStep, 305, 22) GUICtrlSetFont(-1, 12, 400, 0, "DejaVuSansMono") GUICtrlCreateLabel("", 0, 0, $Width, $Height, $SS_GRAYFRAME) Return $hWnd EndFunc ;==>RibonGUI ;---------------------------------------------------------------------------------------- Func Ribon_BtnAutoHide() If $g_bAutoHide = True Then $g_bAutoHide = False GUICtrlSetData($idBtnAutoHide, "⏸️") Else $g_bAutoHide = True GUICtrlSetData($idBtnAutoHide, "◀️") EndIf EndFunc ;==>Ribon_BtnAutoHide ;---------------------------------------------------------------------------------------- Edited December 19, 2024 by ioa747 update argumentum and CYCho 2 I know that I know nothing
TwoCanoe Posted December 19, 2024 Author Posted December 19, 2024 Added the line argumentum added (after line 117). I now see a vertical bar in the SciTE number column, tried to hover over it, but nothing. Mouse cursor still had a life of its own.
TwoCanoe Posted December 19, 2024 Author Posted December 19, 2024 (edited) ioa747. Tried the script you posted above. Mouse cursor is a lot better, but when I hover over the bar, I get a flickering bar a few pixels high and maybe 200 pixels wide. Edited December 19, 2024 by TwoCanoe
ioa747 Posted December 19, 2024 Posted December 19, 2024 I modified the above, try it and tell me. I know that I know nothing
TwoCanoe Posted December 19, 2024 Author Posted December 19, 2024 Success! Admittedly I wasn't looking to use a hidden gui window but would save me some desktop space. Thanks. ioa747 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now