PleasantNotify() - Beautiful popup msg, tooltip

Post your working scripts, libraries and tools for AHK v1.1 and older
User avatar
Soft
Posts: 174
Joined: 07 Jan 2015, 13:18
Location: Seoul
Contact:

PleasantNotify() - Beautiful popup msg, tooltip

22 Jan 2015, 01:54

PleasantNotify CornerNotify Continuation

CornerNotify > PleasantNotify
●Added Fade In, Fade Out animation when show, exit
●Round Corner
●Optimized SourceCode
●Added persistent mode for time parameter
●Can modify Width and Height


/ Tested on AutoHotkey_L 32bit v1.1.19.1
/ based on 'Corner Notify' by robertcollier4
/ Credits robertcollier4, Learning One, lagomorph, joedf and all AHK forum users
/ Last Modified by Soft 2015/01/23


Image

Instruction
● To Create PleasantNotification
PleasantNotify(Title, Messages, width, height, position, time)
*Title - you can use variable, else must be String
*Messages - same as Title
*width - GUI width for PleasantNotify, if omited 700
*height - GUI height for PleasantNotify, if omitted 300
*position - GUI postion for PleasantNotify, it omitted bottom right corner

position argument syntax is to create a string with the following:
t=top, vc= vertical center, b=bottom
l=left, hc=horizontal center, r=right

*time - remaining time for PleasantNotify, if omitted 10
write "P" for Persistent remain, Notify_Destroy() to destroy


● To Destroy PleasantNotification GUI
Notify_Destroy()

● To Modify PleasantNotify's Title and Message
pn_mod_title(title)
pn_mod_msg(message)


Lib File

Code: Select all

PleasantNotify(title, message, pnW=700, pnH=300, position="b r", time=10) {
    global pn_title, pn_msg, PN_hwnd, w, h
	Notify_Destroy()
	Gui, Notify: +AlwaysOnTop +ToolWindow -SysMenu -Caption +LastFound
	PN_hwnd := WinExist()
	WinSet, ExStyle, +0x20
	WinSet, Transparent, 0
	Gui, Notify: Color, 0xF2F2F0
	Gui, Notify: Font, c0x07D82F s18 wBold, Segoe UI
	Gui, Notify: Add, Text, % " x" 20 " y" 12 " w" pnW-20 " vpn_title", % title
	Gui, Notify: Font, cBlack s15 wRegular
	Gui, Notify: Add, Text, % " x" 20 " y" 56 " w" pnW-20 " h" pnH-56 " vpn_msg", % message
	RealW := pnW + 50
	RealH := pnH + 20
	Gui, Notify: Show, W%RealW% H%RealH% NoActivate
	WinMove(PN_hwnd, position)
	if A_ScreenDPI = 96
		WinSet, Region,0-0 w%pnW% h%pnH% R40-40,%A_ScriptName%
	/* For Screen text size 125%
	if A_ScreenDPI = 120
		WinSet, Region, 0-0 w800 h230 R40-40, %A_ScriptName%
	*/
	winfade("ahk_id " PN_hwnd,210,5)
	if (time <> "P")
	{
		Closetick := time*1000
		SetTimer, ByeNotify, % Closetick
	}
}

Notify_Destroy() {
	global PN_hwnd
	ByeNotify:
	SetTimer, ByeNotify, Off
    winfade("ahk_id " PN_hwnd,0,5)
    Gui, Notify: Destroy
	return
}

pn_mod_title(title) {
	global pn_title
	GuiControl, Notify: Text,pn_title, % title
}

pn_mod_msg(message) {
	global pn_msg
	GuiControl, Notify: Text,pn_msg, % message
}

WinMove(hwnd,position) {
   SysGet, Mon, MonitorWorkArea
   WinGetPos,ix,iy,w,h, ahk_id %hwnd%
   x := InStr(position,"l") ? MonLeft : InStr(position,"hc") ?  (MonRight-w)/2 : InStr(position,"r") ? MonRight - w : ix
   y := InStr(position,"t") ? MonTop : InStr(position,"vc") ?  (MonBottom-h)/2 : InStr(position,"b") ? MonBottom - h : iy
   WinMove, ahk_id %hwnd%,,x,y
}

winfade(w:="",t:=128,i:=1,d:=10) {
    w:=(w="")?("ahk_id " WinActive("A")):w
    t:=(t>255)?255:(t<0)?0:t
    WinGet,s,Transparent,%w%
    s:=(s="")?255:s ;prevent trans unset bug
    WinSet,Transparent,%s%,%w%
    i:=(s<t)?abs(i):-1*abs(i)
    while(k:=(i<0)?(s>t):(s<t)&&WinExist(w)) {
        WinGet,s,Transparent,%w%
        s+=i
        WinSet,Transparent,%s%,%w%
        sleep %d%
    }
}
Example Script just test it out! function included

Code: Select all

#SingleInstance force
#NoEnv
PleasantNotify("PleasantNotify", "position vc hc, 3 seconds" , 600, 210, "vc hc", "6")
Sleep, 3000
pn_mod_title("you can change titles")
pn_mod_msg("Also messages")
Sleep, 3000
PleasantNotify("PleasantNotify", "position t hc" , 600, 210, "t hc", "3")
Sleep, 3000
PleasantNotify("PleasantNotify", "position b hc" , 600, 210, "b hc", "3")
Sleep, 3000
PleasantNotify("PleasantNotify", "position default, b r" , 600, 210, "b r", "3")
Sleep, 3000
PleasantNotify("PleasantNotify", "position b l" , 600, 210, "b l", "3")
Sleep, 3000
PleasantNotify("PleasantNotify", "position t l" , 600, 210, "t l", "3")
Sleep, 3000
PleasantNotify("PleasantNotify", "position t r" , 600, 210, "t r", "3")
return

PleasantNotify(title, message, pnW=700, pnH=300, position="b r", time=10) {
    global pn_title, pn_msg, PN_hwnd, w, h
	Notify_Destroy()
	Gui, Notify: +AlwaysOnTop +ToolWindow -SysMenu -Caption +LastFound
	PN_hwnd := WinExist()
	WinSet, ExStyle, +0x20
	WinSet, Transparent, 0
	Gui, Notify: Color, 0xF2F2F0
	Gui, Notify: Font, c0x07D82F s18 wBold, Segoe UI
	Gui, Notify: Add, Text, % " x" 20 " y" 12 " w" pnW-20 " vpn_title", % title
	Gui, Notify: Font, cBlack s15 wRegular
	Gui, Notify: Add, Text, % " x" 20 " y" 56 " w" pnW-20 " h" pnH-56 " vpn_msg", % message
	RealW := pnW + 50
	RealH := pnH + 20
	Gui, Notify: Show, W%RealW% H%RealH% NoActivate
	WinMove(PN_hwnd, position)
	if A_ScreenDPI = 96
		WinSet, Region,0-0 w%pnW% h%pnH% R40-40,%A_ScriptName%
	/* For Screen text size 125%
	if A_ScreenDPI = 120
		WinSet, Region, 0-0 w800 h230 R40-40, %A_ScriptName%
	*/
	winfade("ahk_id " PN_hwnd,210,5)
	if (time <> "P")
	{
		Closetick := time*1000
		SetTimer, ByeNotify, % Closetick
	}
}

Notify_Destroy() {
	global PN_hwnd
	ByeNotify:
	SetTimer, ByeNotify, Off
    winfade("ahk_id " PN_hwnd,0,5)
    Gui, Notify: Destroy
	return
}

pn_mod_title(title) {
	global pn_title
	GuiControl, Notify: Text,pn_title, % title
}

pn_mod_msg(message) {
	global pn_msg
	GuiControl, Notify: Text,pn_msg, % message
}

WinMove(hwnd,position) {
   SysGet, Mon, MonitorWorkArea
   WinGetPos,ix,iy,w,h, ahk_id %hwnd%
   x := InStr(position,"l") ? MonLeft : InStr(position,"hc") ?  (MonRight-w)/2 : InStr(position,"r") ? MonRight - w : ix
   y := InStr(position,"t") ? MonTop : InStr(position,"vc") ?  (MonBottom-h)/2 : InStr(position,"b") ? MonBottom - h : iy
   WinMove, ahk_id %hwnd%,,x,y
}

winfade(w:="",t:=128,i:=1,d:=10) {
    w:=(w="")?("ahk_id " WinActive("A")):w
    t:=(t>255)?255:(t<0)?0:t
    WinGet,s,Transparent,%w%
    s:=(s="")?255:s ;prevent trans unset bug
    WinSet,Transparent,%s%,%w%
    i:=(s<t)?abs(i):-1*abs(i)
    while(k:=(i<0)?(s>t):(s<t)&&WinExist(w)) {
        WinGet,s,Transparent,%w%
        s+=i
        WinSet,Transparent,%s%,%w%
        sleep %d%
    }
}
Ideas are welcome! :D

Reference
CornerNotify http://www.autohotkey.com/board/topic/9 ... nernotify/
WinMove http://www.autohotkey.com/board/topic/7 ... ntry461385
Winfade http://ahkscript.org/boards/viewtopic.php?f=6&t=512
Last edited by Soft on 22 Jan 2015, 21:56, edited 5 times in total.
AutoHotkey & AutoHotkey_H v1.1.22.07
User avatar
joedf
Posts: 8940
Joined: 29 Sep 2013, 17:08
Location: Canada
Contact:

Re: PleasantNotify() - Beautiful popup msg, tooltip

22 Jan 2015, 11:35

Nice script! also you're using winfade (http://ahkscript.org/boards/viewtopic.php?f=6&t=512) ! Awesome! ;)
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x16GB Kingston FURY Beast - DDR4 3200 MHz | [About Me] | [About the AHK Foundation] | [Courses on AutoHotkey]
[ASPDM - StdLib Distribution] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library]
User avatar
boiler
Posts: 16768
Joined: 21 Dec 2014, 02:44

Re: PleasantNotify() - Beautiful popup msg, tooltip

22 Jan 2015, 11:59

Very nice. It looks like it's easily modifiable for different colors and to position it where I want, such as over the main gui of the calling script, or at least on the same monitor that the main gui is in. Since you're looking for ideas, you might consider adding color parameters and perhaps an optional parameter that would be the hwnd of a window, and it will appear over that window, positioned relative to the extents of that window by the position parameter (t hc, b hc, etc.).
User avatar
Soft
Posts: 174
Joined: 07 Jan 2015, 13:18
Location: Seoul
Contact:

Re: PleasantNotify() - Beautiful popup msg, tooltip

22 Jan 2015, 21:44

joedf wrote:Nice script! also you're using winfade (http://ahkscript.org/boards/viewtopic.php?f=6&t=512) ! Awesome! ;)
oh thank you! I missed it
AutoHotkey & AutoHotkey_H v1.1.22.07
User avatar
Chef
Posts: 50
Joined: 14 Nov 2013, 13:01

Re: PleasantNotify() - Beautiful popup msg, tooltip

22 Jan 2015, 22:27

GDI is the only way to get eye-candy in ahk

This doesn't look good :/
Image
User avatar
Soft
Posts: 174
Joined: 07 Jan 2015, 13:18
Location: Seoul
Contact:

Re: PleasantNotify() - Beautiful popup msg, tooltip

22 Jan 2015, 22:53

Chef wrote:GDI is the only way to get eye-candy in ahk

This doesn't look good :/
Image
Agree :cry:
I'm trying to implement this to GDI right now

@boiler
OK
AutoHotkey & AutoHotkey_H v1.1.22.07
User avatar
evilC
Posts: 4822
Joined: 27 Feb 2014, 12:30

Re: PleasantNotify() - Beautiful popup msg, tooltip

23 Jan 2015, 06:44

Nice, I may well have a use for this in the future.

May I make a suggestion regarding the GUI?

What I would suggest is something like this:

Gui, New, HwndPopupHwnd
Gui, % PopupHwnd ":Add" ....

This would allow any number of notify windows to be on-screen at one time.
Last edited by evilC on 23 Jan 2015, 06:50, edited 1 time in total.
vasili111
Posts: 747
Joined: 21 Jan 2014, 02:04
Location: Georgia

Re: PleasantNotify() - Beautiful popup msg, tooltip

23 Jan 2015, 08:52

DRAKON-AutoHotkey: Visual programming for AutoHotkey.
User avatar
Soft
Posts: 174
Joined: 07 Jan 2015, 13:18
Location: Seoul
Contact:

Re: PleasantNotify() - Beautiful popup msg, tooltip

23 Jan 2015, 14:48

@evilC - hmm.. okay
@vasili111 - I did! thank you
AutoHotkey & AutoHotkey_H v1.1.22.07
User avatar
evilC
Posts: 4822
Joined: 27 Feb 2014, 12:30

Re: PleasantNotify() - Beautiful popup msg, tooltip

23 Jan 2015, 15:22

Here you go - this is the direction I think you should go with this project.

This sample code is part-classified - I just made the gui creation part into a class and used the HWND of the GUI as the unique identifier for the GUI.

So as you can see, you can have loads of notifications on-screen at one time.
They still all share the global variables though, so you would need to make it use versions of those variables from the class instance instead.

Code: Select all

#SingleInstance force
#NoEnv
new PleasantNotify("PleasantNotify", "position vc hc, 3 seconds" , 600, 210, "vc hc", "6")
;Sleep, 3000
;pn_mod_title("you can change titles")
;pn_mod_msg("Also messages")
;Sleep, 3000
new PleasantNotify("PleasantNotify", "position t hc" , 600, 210, "t hc", "3")
new PleasantNotify("PleasantNotify", "position b hc" , 600, 210, "b hc", "3")
;Sleep, 3000
new PleasantNotify("PleasantNotify", "position default, b r" , 600, 210, "b r", "3")
;Sleep, 3000
new PleasantNotify("PleasantNotify", "position b l" , 600, 210, "b l", "3")
;Sleep, 3000
new PleasantNotify("PleasantNotify", "position t l" , 600, 210, "t l", "3")
;Sleep, 3000
new PleasantNotify("PleasantNotify", "position t r" , 600, 210, "t r", "3")
return

Class PleasantNotify {
	__New(title, message, pnW=700, pnH=300, position="b r", time=10) {
		global pn_title, pn_msg, PN_hwnd, w, h
		Gui, New, HwndPN_hwnd
		Notify_Destroy()
		Gui, % PN_hwnd ": +AlwaysOnTop +ToolWindow -SysMenu -Caption +LastFound"
		;PN_hwnd := WinExist()
		WinSet, ExStyle, +0x20
		WinSet, Transparent, 0
		Gui, % PN_hwnd ": Color", 0xF2F2F0
		Gui, % PN_hwnd ": Font", c0x07D82F s18 wBold, Segoe UI
		Gui, % PN_hwnd ": Add", Text, % " x" 20 " y" 12 " w" pnW-20 " vpn_title", % title
		Gui, % PN_hwnd ": Font", cBlack s15 wRegular
		Gui, % PN_hwnd ": Add", Text, % " x" 20 " y" 56 " w" pnW-20 " h" pnH-56 " vpn_msg", % message
		RealW := pnW + 50
		RealH := pnH + 20
		Gui, % PN_hwnd ": Show", W%RealW% H%RealH% NoActivate
		WinMove(PN_hwnd, position)
		if A_ScreenDPI = 96
			WinSet, Region,0-0 w%pnW% h%pnH% R40-40,%A_ScriptName%
		/* For Screen text size 125%
		if A_ScreenDPI = 120
			WinSet, Region, 0-0 w800 h230 R40-40, %A_ScriptName%
		*/
		winfade("ahk_id " PN_hwnd,210,5)
		if (time <> "P")
		{
			Closetick := time*1000
			SetTimer, ByeNotify, % Closetick
		}
	}
}
PleasantNotify(title, message, pnW=700, pnH=300, position="b r", time=10) {
}

Notify_Destroy() {
    global PN_hwnd
    ByeNotify:
    SetTimer, ByeNotify, Off
    winfade("ahk_id " PN_hwnd,0,5)
    Gui, Notify: Destroy
    return
}

pn_mod_title(title) {
    global pn_title
    GuiControl, Notify: Text,pn_title, % title
}

pn_mod_msg(message) {
    global pn_msg
    GuiControl, Notify: Text,pn_msg, % message
}

WinMove(hwnd,position) {
   SysGet, Mon, MonitorWorkArea
   WinGetPos,ix,iy,w,h, ahk_id %hwnd%
   x := InStr(position,"l") ? MonLeft : InStr(position,"hc") ?  (MonRight-w)/2 : InStr(position,"r") ? MonRight - w : ix
   y := InStr(position,"t") ? MonTop : InStr(position,"vc") ?  (MonBottom-h)/2 : InStr(position,"b") ? MonBottom - h : iy
   WinMove, ahk_id %hwnd%,,x,y
}

winfade(w:="",t:=128,i:=1,d:=10) {
    w:=(w="")?("ahk_id " WinActive("A")):w
    t:=(t>255)?255:(t<0)?0:t
    WinGet,s,Transparent,%w%
    s:=(s="")?255:s ;prevent trans unset bug
    WinSet,Transparent,%s%,%w%
    i:=(s<t)?abs(i):-1*abs(i)
    while(k:=(i<0)?(s>t):(s<t)&&WinExist(w)) {
        WinGet,s,Transparent,%w%
        s+=i
        WinSet,Transparent,%s%,%w%
        sleep %d%
    }
}
User avatar
evilC
Posts: 4822
Joined: 27 Feb 2014, 12:30

Re: PleasantNotify() - Beautiful popup msg, tooltip

23 Jan 2015, 15:25

Also, the code as-is changes the default GUI.
So, for example, if your code got called mid-way through adding some stuff to a ListView, you would break that code.

So before you start messing with any GUIs, store the current "LastFound" HWND:

lastfound := WinExist()

then when done creating and adding to GUIs, execute:

Gui, % lastfound ":+Lastfound"

You might even want to declare Critical to stop it being interrupted.
User avatar
evilC
Posts: 4822
Joined: 27 Feb 2014, 12:30

Re: PleasantNotify() - Beautiful popup msg, tooltip

23 Jan 2015, 17:03

Here's what I have so far:

As much encapsulated inside a class as possible - minimum stuff in the global scope.
Old version used global vars such as w

Only uses PleasantNotify class name and function names _NotifyTimer and _NotifyOK

Unlimited number of notifications active at one time.

OK button for persistent notifications.

It lacks changing title or text for now, but those could be added quite easily

Code: Select all

#SingleInstance force
#NoEnv

new PleasantNotify("PleasantNotify", "Permanent" , 600, 210, "t r", "P")

new PleasantNotify("PleasantNotify", "position vc hc, 3 seconds" , 600, 210, "vc hc", 6)
;Sleep, 3000
;pn_mod_title("you can change titles")
;pn_mod_msg("Also messages")
;Sleep, 3000
new PleasantNotify("PleasantNotify", "position t hc" , 600, 210, "t hc", 3)
new PleasantNotify("PleasantNotify", "position b hc" , 600, 210, "b hc", 3)
;Sleep, 3000
new PleasantNotify("PleasantNotify", "position default, b r" , 600, 210, "b r", 3)
new PleasantNotify("PleasantNotify", "position b l" , 600, 210, "b l", 3)
new PleasantNotify("PleasantNotify", "position t l" , 600, 210, "t l", 3)
new PleasantNotify("PleasantNotify", "position t r" , 600, 210, "t r", 3)
return

Class PleasantNotify {
	__New(title, message, pnW=700, pnH=300, position="b r", time=10) {
		Critical
		lastfound := WinExist()
		
		Gui, New, % "HwndPN_hwnd"
		this.PN_hwnd := PN_hwnd
		Gui, % PN_hwnd ": Default"
		Gui, % PN_hwnd ": +AlwaysOnTop +ToolWindow -SysMenu -Caption +LastFound"
		;WinSet, ExStyle, +0x20
		WinSet, Transparent, 0
		Gui, % PN_hwnd ": Color", 0xF2F2F0
		Gui, % PN_hwnd ": Font", c0x07D82F s18 wBold, Segoe UI
		Gui, % PN_hwnd ": Add", Text, % " x" 20 " y" 12 " w" pnW-20 " hwndTitleHwnd", % title
		this.TitleHwnd := TitleHwnd
		Gui, % PN_hwnd ": Font", cBlack s15 wRegular
		Gui, % PN_hwnd ": Add", Text, % " x" 20 " y" 56 " w" pnW-20 " h" pnH-56 " hwndMessageHwnd", % message
		if (time = "P"){
			Gui, % PN_hwnd ": Add", Button, % " x" pnW - 80 " y" pnH - 50 " w50 h25 ", OK
			; When OK is clicked, call this instance of the class
			fn := bind("_NotifyOK", this)
			GuiControl +g, OK, %fn%
		}
		this.MessageHwnd := MessageHwnd
		RealW := pnW + 50
		RealH := pnH + 20
		Gui, % PN_hwnd ": Show", W%RealW% H%RealH% NoActivate
		this.WinMove(PN_hwnd, position)
		;Gui, % PN_Hwnd ": +Parent" A_ScriptHwnd
		if A_ScreenDPI = 96
			WinSet, Region,0-0 w%pnW% h%pnH% R40-40,%A_ScriptName%
		/* For Screen text size 125%
		if A_ScreenDPI = 120
			WinSet, Region, 0-0 w800 h230 R40-40, %A_ScriptName%
		*/
		Critical Off
		this.winfade("ahk_id " PN_hwnd,210,5)
		if (time != "P")
		{
			; Bind this class to the timer.
			fn := bind("_NotifyTimer", this)
			SetTimer %fn%, % time * -1000
		}
		
		if (WinExist(lastfound)){
			Gui, % lastfound ":Default"
		}
	}
	
	__Delete(){
		this.Destroy()
	}
	
	TimerExpired(){
		this.winfade("ahk_id " this.PN_hwnd,0,5)
		Gui, % this.PN_Hwnd ": Destroy"
	}
	
	OKClicked(){
		this.Destroy()
	}
	
	Destroy(){
		this.winfade("ahk_id " PN_hwnd,0,5)
		Gui, % this.PN_Hwnd ": Destroy"
	}

	WinMove(hwnd,position) {
	   SysGet, Mon, MonitorWorkArea
	   WinGetPos,ix,iy,w,h, ahk_id %hwnd%
	   x := InStr(position,"l") ? MonLeft : InStr(position,"hc") ?  (MonRight-w)/2 : InStr(position,"r") ? MonRight - w : ix
	   y := InStr(position,"t") ? MonTop : InStr(position,"vc") ?  (MonBottom-h)/2 : InStr(position,"b") ? MonBottom - h : iy
	   WinMove, ahk_id %hwnd%,,x,y
	}

	winfade(w:="",t:=128,i:=1,d:=10) {
		w:=(w="")?("ahk_id " WinActive("A")):w
		t:=(t>255)?255:(t<0)?0:t
		WinGet,s,Transparent,%w%
		s:=(s="")?255:s ;prevent trans unset bug
		WinSet,Transparent,%s%,%w%
		i:=(s<t)?abs(i):-1*abs(i)
		while(k:=(i<0)?(s>t):(s<t)&&WinExist(w)) {
			WinGet,s,Transparent,%w%
			s+=i
			WinSet,Transparent,%s%,%w%
			sleep %d%
		}
	}

}

; Obj is the instance of the class that the timer expired on.
_NotifyTimer(obj){
	obj.TimerExpired()
}

; Obj is the instance of the class that OK was clicked in.
_NotifyOK(obj){
	obj.OKClicked()
}

pn_mod_title(title) {
    global pn_title
    GuiControl, Notify: Text,pn_title, % title
}

pn_mod_msg(message) {
    global pn_msg
    GuiControl, Notify: Text,pn_msg, % message
}

; bind v1.1 by Lexikos
; Requires test build of AHK? Will soon become part of AHK
; See http://ahkscript.org/boards/viewtopic.php?f=24&t=5802
bind(fn, args*) {
    try bound := fn.bind(args*)  ; Func.Bind() not yet implemented.
    return bound ? bound : new BoundFunc(fn, args*)
}

class BoundFunc {
    __New(fn, args*) {
        this.fn := IsObject(fn) ? fn : Func(fn)
        this.args := args
    }
    __Call(callee) {
        if (callee = "" || callee = "call" || IsObject(callee)) {  ; IsObject allows use as a method.
            fn := this.fn
            return %fn%(this.args*)
        }
    }
}
User avatar
boiler
Posts: 16768
Joined: 21 Dec 2014, 02:44

Re: PleasantNotify() - Beautiful popup msg, tooltip

23 Jan 2015, 17:35

I was going to suggest an OK button. Very useful. If it could just show up in the same monitor as the gui from the calling script (if there is one), it would be great.

However, it's not useful (to me) yet if it's only usable with the new test build of AHK.
User avatar
evilC
Posts: 4822
Joined: 27 Feb 2014, 12:30

Re: PleasantNotify() - Beautiful popup msg, tooltip

23 Jan 2015, 17:41

boiler wrote:I was going to suggest an OK button. Very useful. If it could just show up in the same monitor as the gui from the calling script (if there is one), it would be great.

However, it's not useful (to me) yet if it's only usable with the new test build of AHK.
You mean requiring the test build is an issue, or requiring the newest AHK version when this is merged into the main branch?
User avatar
boiler
Posts: 16768
Joined: 21 Dec 2014, 02:44

Re: PleasantNotify() - Beautiful popup msg, tooltip

23 Jan 2015, 17:43

It will be fine when it is merged into the main branch. I guess if that's happening soon, then it's fine.
User avatar
Relayer
Posts: 160
Joined: 30 Sep 2013, 13:09
Location: Delaware, USA

Re: PleasantNotify() - Beautiful popup msg, tooltip

23 Jan 2015, 17:59

evilC,

The bind() function works just fine in v1.1.16.05

Relayer

Return to “Scripts and Functions (v1)”

Who is online

Users browsing this forum: gwarble and 106 guests