I’m working with Xojo Web 1.0 and I have a WebListBox that displays a small PDF icon inside one of the cells. What I’d like to achieve is that when the user moves the mouse over that cell (or the icon), the cursor changes to the “finger pointer” (like it does for a link).
In the WebStyle editor I can’t find an option for setting the mouse cursor.
Here is a Method I wrote to set the cursor for either Desktop or Web. For Web you pass it the existing WebStyle and it adds the cursor:
Protected Sub doCursorSet(myObject As Object, NewCursor As String = "Finger", CurrentStyle As Object = Nil)
If myObject = Nil Then
Return
End If
#If TargetDesktop Then
If myObject IsA DesktopUIControl Then
Select Case NewCursor
Case "ArrowAllDirections"
DesktopUIControl(myObject).MouseCursor = System.Cursors.ArrowAllDirections
Case "ArrowEastWest"
DesktopUIControl(myObject).MouseCursor = System.Cursors.ArrowEastWest
Case "ArrowNortheastSouthwest"
DesktopUIControl(myObject).MouseCursor = System.Cursors.ArrowNortheastSouthwest
Case "ArrowNorthSouth"
DesktopUIControl(myObject).MouseCursor = System.Cursors.ArrowNorthSouth
Case "ArrowNorthwestSoutheast"
DesktopUIControl(myObject).MouseCursor = System.Cursors.ArrowNorthwestSoutheast
Case "Copy"
DesktopUIControl(myObject).MouseCursor = System.Cursors.Copy
Case "Finger", "FingerPointer"
DesktopUIControl(myObject).MouseCursor = System.Cursors.FingerPointer
Case "HandClosed"
DesktopUIControl(myObject).MouseCursor = System.Cursors.HandClosed
Case "HandOpen"
DesktopUIControl(myObject).MouseCursor = System.Cursors.HandOpen
Case "IBeam"
DesktopUIControl(myObject).MouseCursor = System.Cursors.IBeam
Case "InvisibleCursor"
DesktopUIControl(myObject).MouseCursor = System.Cursors.InvisibleCursor
Case "MagnifyLarger"
DesktopUIControl(myObject).MouseCursor = System.Cursors.MagnifyLarger
Case "MagnifySmaller"
DesktopUIControl(myObject).MouseCursor = System.Cursors.MagnifySmaller
Case "SplitterEastWest"
DesktopUIControl(myObject).MouseCursor = System.Cursors.SplitterEastWest
Case "SplitterNorthSouth"
DesktopUIControl(myObject).MouseCursor = System.Cursors.SplitterNorthSouth
Case "StandardPointer"
DesktopUIControl(myObject).MouseCursor = System.Cursors.StandardPointer
Case "Wait"
DesktopUIControl(myObject).MouseCursor = System.Cursors.Wait
'Case "XXXXXX"
'DesktopUIControl(myObject).MouseCursor = System.Cursors.XXXXXX
Case Else
Break
End Select
End If
#ElseIf TargetWeb Then
Var tempWebStyle As New WebStyle
Var isWebStyle As Boolean = False
If CurrentStyle <> Nil And CurrentStyle IsA WebStyle Then
tempWebStyle = WebStyle(CurrentStyle)
isWebStyle = True
Else
Break
Return
End If
Select Case NewCursor
Case ""
'do nothing
Case "CrossHair"
tempWebStyle.Cursor = WebStyle.Cursors.Crosshair
Case "Default"
tempWebStyle.Cursor = WebStyle.Cursors.Default
Case "Help"
tempWebStyle.Cursor = WebStyle.Cursors.Help
Case "Inherit"
tempWebStyle.Cursor = WebStyle.Cursors.Inherit
Case "Move"
tempWebStyle.Cursor = WebStyle.Cursors.Move
Case "NoDrop"
tempWebStyle.Cursor = WebStyle.Cursors.NoDrop
Case "None"
tempWebStyle.Cursor = WebStyle.Cursors.None
Case "NotAllowed"
tempWebStyle.Cursor = WebStyle.Cursors.NotAllowed
Case "Pointer", "Finger"
tempWebStyle.Cursor = WebStyle.Cursors.Pointer
Case "Progress"
tempWebStyle.Cursor = WebStyle.Cursors.Progress
Case "ResizeColumn"
tempWebStyle.Cursor = WebStyle.Cursors.ResizeColumn
Case "ResizeEast"
tempWebStyle.Cursor = WebStyle.Cursors.ResizeEast
Case "ResizeNorth"
tempWebStyle.Cursor = WebStyle.Cursors.ResizeNorth
Case "ResizeNorthEast"
tempWebStyle.Cursor = WebStyle.Cursors.ResizeNorthEast
Case "ResizeNorthWest"
tempWebStyle.Cursor = WebStyle.Cursors.ResizeNorthWest
Case "ResizeRow"
tempWebStyle.Cursor = WebStyle.Cursors.ResizeRow
Case "ResizeSouth"
tempWebStyle.Cursor = WebStyle.Cursors.ResizeSouth
Case "ResizeSouthEast"
tempWebStyle.Cursor = WebStyle.Cursors.ResizeSouthEast
Case "ResizeSouthWest"
tempWebStyle.Cursor = WebStyle.Cursors.ResizeSouthWest
Case "ResizeWest"
tempWebStyle.Cursor = WebStyle.Cursors.ResizeWest
Case "Text"
tempWebStyle.Cursor = WebStyle.Cursors.Text
Case "VerticalText"
tempWebStyle.Cursor = WebStyle.Cursors.VerticalText
Case "Wait"
tempWebStyle.Cursor = WebStyle.Cursors.Wait
Case Else
Break
End Select
'If myObject IsA WebLabel Then
'WebLabel(myObject).Style = tempWebStyle
'ElseIf myObject IsA WebTextField Then
'WebTextField(myObject).Style = tempWebStyle
'ElseIf myObject IsA WebTextArea Then
'WebTextArea(myObject).Style = tempWebStyle
'ElseIf myObject IsA GraffitiTextField Then
'Var tempGraffitiStyle As GraffitiStyle = GraffitiStyle.Create(Session, StyleName, GraffitiStyleContent)
'GraffitiTextField(myObject).FieldStyle = tempGraffitiStyle
'Else
'Break
'End If
If myObject IsA WebUIControl Then
WebUIControl(myObject).Style = tempWebStyle
Else
Break
End If
#ElseIf TargetiOS Then
'no cursors with Mobile?
#Else
Break
#EndIf
End Sub