Code archives/BlitzPlus Gui/Hyperlink label
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| Adds blue hyperlink labels to your BlitzPlus programs, which, when clicked, will execute the file specified. Note: Requires "GetSystemColor()"'s functions and userlib addons, and "Change Cursor Icon"'s userlib addons. Here's how you'll use the functions: "CreateHyperlink( label$ , x , y , width , height , link$ , parent [, style] ) label$ - text to be displayed x,y,width,height - position and size of hyperlink link$ - file to execute when clicking. Can be a file, folder, or internet adress. parent - parent gadget style - this optional flag doesn't do anything. Function will create a hyperlink label and return it's handle. The hyperlinks will black out when they get moved, but they should come back up right after. Also, they can have up to two lines of text (only happens if text is longer than size)." "UpdateHyperlinks( ) Updates all hyperlink texts by keeping them displayed correctly, changing the mouse cursor, and executing the link. Needs to go in your main program loop, just before a WaitEvent() command." | |||||
Type hyperlink
Field canvas
Field href$
End Type
Function CreateHyperlink(txt$,x,y,w,h,link$,parent,style=0)
canvas=CreateCanvas(x,y,w,h,parent)
SetBuffer CanvasBuffer(canvas)
font=LoadFont("tahoma",13,0,0,1)
ClsColor getsyscolorr(15),getsyscolorg(15),getsyscolorb(15)
Cls
Color 0,0,255
SetFont font
If StringWidth(txt)>w
txt2$=txt
Repeat
txt2=Left(txt2,Len(txt2)-1)
Until StringWidth(txt2)<w
Text 0,0,txt2
Text 0,13,Right$(txt,Len(txt2)-3)
Else
Text 0,0,txt
EndIf
FlipCanvas canvas
l.hyperlink=New hyperlink
l\canvas=canvas
l\href=link
Return l\canvas
End Function
Function UpdateHyperlinks()
For l.hyperlink=Each hyperlink
If EventSource()=l\canvas
If EventID()=$203
SetCursor helpcursor
Else If EventID()=$201
ExecFile(l\href)
EndIf
EndIf
FlipCanvas l\canvas
Next
End Function |
Comments
| ||
| where do i find the getsyscolor and change cursor icon userlibs or in which dll are the in?? |
| ||
| Alright, I'll just give them to you here: Userlib additions: .lib "user32.dll" GetSysColor%(Color%):"GetSysColor" LoadCursor%( ID, Cursor ):"LoadCursorA" SetCursor%( ID ):"SetCursor" Added functions:
Function GetSysColorR(SystemColor)
Return (GetSysColor(SystemColor) And $000000FF)
End Function
Function GetSysColorG(SystemColor)
Return (GetSysColor(SystemColor) And $0000FF00) Shr 8
End Function
Function GetSysColorB(SystemColor)
Return (GetSysColor(SystemColor) And $00FF0000) Shr 16
End Function
Add those in and it should work. |
Code Archives Forum