Hyperlink gadget that kind of works

BlitzMax Forums/BlitzMax GUI Programming/Hyperlink gadget that kind of works

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

Don't know enough about MaxGUI to finish it.

Strict

Framework maxgui.win32maxgui
Import maxgui.drivers
Import brl.eventqueue

Local window:TGadget

window=CreateWindow("My Window",40,40,640,480)

Local h:TWindowsHyperlink=New TWindowsHyperlink
h.Create(window,0)
h.SetArea 4,4,640,18


While True
	WaitEvent 
	Print CurrentEvent.ToString()
	Select EventID()
		Case EVENT_WINDOWCLOSE
			End
	End Select
Wend


Type TWindowsHyperlink Extends TWindowsGadget
	
	Field _style
	
	Method Create:TWindowsHyperlink(group:TGadget,style)	
		Local	xstyle,wstyle,hotkey
		Local	hwnd,parent
		
		wstyle=WS_CHILD|SS_NOPREFIX|WS_CLIPSIBLINGS|SS_NOTIFY
		
		Select style&24
			Case LABEL_LEFT wstyle:|SS_LEFT
			Case LABEL_RIGHT wstyle:|SS_RIGHT
			Case LABEL_CENTER wstyle:|SS_CENTER
		End Select
		Select style&7
			Case LABEL_FRAME wstyle:|WS_BORDER
			Case LABEL_SUNKENFRAME wstyle:|SS_SUNKEN
			Case LABEL_SEPARATOR wstyle:|SS_ETCHEDFRAME
		End Select
		
		wstyle=WS_VISIBLE | WS_CHILD | WS_TABSTOP
		
		parent=group.query(QUERY_HWND_CLIENT)
		hwnd=CreateWindowExW(xstyle,"SysLink","<A HREF=~qhttp://www.leadwerks.com\~q>www.leadwerks.com</A> ",wstyle,0,0,0,0,parent,hotkey,GetModuleHandleW(Null),Null)
		
		_style = style
		
		Register GADGET_BUTTON,hwnd					
		
		Return Self
	EndMethod
	
	Method SetArea(x,y,w,h)
		If ((_style & 7) = LABEL_SEPARATOR) Then
			If (w > h) Then h = 4 Else w = 4
		EndIf
		Return Super.SetArea(x,y,w,h)
	EndMethod
	
	Method WndProc(hwnd,msg,wp,lp)
		Local nmhdr:Int Ptr
		Print msg+", "+WM_NOTIFY
		Select msg
			Case WM_ERASEBKGND;Return 1
			Case WM_NOTIFY
				Notify 1
				Local nmhdr:Int Ptr=Int Ptr(lp)
				Select nmhdr[2]
					Case NM_RETURN
						Notify 1
				EndSelect
		EndSelect	
	EndMethod
	
	Method Class()
		Return GADGET_BUTTON
	EndMethod
					
EndType