We’ve had several calls discussing Dark Themed GUIs so I thought I’d create a page discussing them.
During the October 8thLive AutoHotkey Support, Dimitri Geertz showed us some of the cool work he’s done code he got that updates GUIs with a style.
I demonstrated in this video with the following download
Here’s a handy Resizable GUI in AutoHotkey Function in AutoHotkey that I used to use a lot more (before I had access to the Debug window in AHK Studio and Output Window in SciTE4AutoHotkey)
I was helping someone in an AutoHotkey Facebook group this morning. The original request was how to have a HotString without requiring an ending character (tab, space, return, etc.). This is solved by simply putting an asterisk in between the first two colons.
i.e. :*:jg::Joe@the-Automator.com
However someone else mentioned a function they use to display a list of items and select from them. He didn’t share his function but I found something similar on the AutoHotkey forum. The example used the “Loop” and StringSplit commands. I decided to adapt it to use a for Loop and StrSplit function.
HotString to bring up a GUI with multiple text selections in AutoHotkey
Here’s the code to use a HotString to bring up a GUI with multiple text selections in AutoHotkey
#SingleInstance,Force ;make sure it only runs once
:*:jg::Joe@the-Automator.com ;This does solve initial request
:*:gg:: ;when I type gg bring up the menu (* means don't wait for an end charachter)
TextMenu("This is, cool¦But I like¦to do more¦with these¦But that's about`n`nit")
return
:*:ff:: ;when I type gg bring up the menu (* means don't wait for an end charachter)
TextMenu("this¦is from the ¦ff choice I typed¦Pretty cool¦huh")
return
TextMenu(TextOptions){
for k, MenuItems in StrSplit(TextOptions,"¦") ;parse the data on the weird pipe charachter
Menu, MyMenu,Add,% MenuItems,Action ;Add each item to the Menu
Menu, MyMenu, Show ;Display the GUI and wait for action
Menu, MyMenu, DeleteAll ;Delete all the menu items
}
Action:
ClipboardBackup:=ClipboardAll ;backup clipboard
Clipboard:=A_ThisMenuItem ;Shove what was selected into the clipboard
Send, ^v ;paste the text
sleep, 50 ;Remember to sleep before restoring clipboard or it will fail
Clipboard:=ClipboardBackup ;Restore clipboard
return
In this walk through I demonstrate using Maestrith’s Notify class. To me, it’s much simpler and easier to use than the notify function I demonstrated the other day from gwarble.
Walk through of Maestrith’s Notify AutoHotkey class
Walk through of Maestrith’s Notify AutoHotkey class
#SingleInstance,Force
;Notify:=Notify() ;instantiate the object (make sure you do this once, not each time you press a hotkey)
;**************************************
;https://github.com/maestrith/Notify
Notify(60).AddWindow("First",{Animate:"Center",ShowDelay:1000,Icon:300,IconSize:15,Title:"Hello World",Color:"0x00FF00",TitleColor:"0xFF0000"})
;Notify().AddWindow("Second",{Animate:"Center",ShowDelay:1000,Icon:300,IconSize:50,Title:"Hello World",TitleSize:14,Size:12,Time:5000,Background:0x00FF00})
;Notify().AddWindow("Third",{Animate:"Center",ShowDelay:1000,Icon:300,IconSize:50,Title:"Hello World",TitleSize:14,Size:12,Time:6000,Background:0x0000FF})
;Notify.AddWindow("Your Text Here",{Icon:300,Background:"0xFF00AA",Title:"my Title",TitleSize:16,size:13,Time:3000,Hide:"Top,Left",ShowDelay:1500,sound:"C:\Windows\media\Alarm05.wav"})
;Notify.AddWindow("Your Text Here",{Icon:300,Background:"0x1100AA",Ident:"MyID",Title:"My first title",TitleSize:16,size:14,radius:50,buttons:"one,two,three or more"})
;Notify.AddWindow("Your Text Here",{Icon:300,Background:"0x1100AA",Ident:"MyID2",Title:"This is cool",TitleSize:16,size:14,radius:75})
return
;If you've defined a function called "click" with one parameter- then when you click the notification, info about the GUI will be stored in the parameter as an object
click(obj){
m(obj)
MsgBox % obj.button
if(Obj.Ident="MyID")
MsgBox,% ("You clicked on the first")
if(Obj.Ident="MyID2")
MsgBox,% ("You clicked on the Second")
}