EditorGadgetCursorX/Y unter Linux?
Verfasst: 20.12.2024 12:02
Hallo,
habe hier mal einen Codeschnipsel für Windows "zusammengeklickt".
Hat jemand so etwas schon einmal für Linux umgesetzt?
Danke&Gruß
habe hier mal einen Codeschnipsel für Windows "zusammengeklickt".
Code: Alles auswählen
Procedure.i EditorGadgetCursorX(Gadget.i)
Protected GadgetID.i = GadgetID(Gadget), Range.CHARRANGE
SendMessage_(GadgetID, #EM_EXGETSEL, 0, @Range)
ProcedureReturn (Range\cpMax - (SendMessage_(GadgetID, #EM_LINEINDEX, SendMessage_(GadgetID, #EM_EXLINEFROMCHAR, 0, Range\cpMin), 0)) + 1)
EndProcedure
Procedure.i EditorGadgetCursorY(Gadget.i)
Protected GadgetID.i = GadgetID(Gadget), Range.CHARRANGE
SendMessage_(GadgetID, #EM_EXGETSEL, 0, @Range)
ProcedureReturn SendMessage_(GadgetID, #EM_EXLINEFROMCHAR, 0, Range\cpMin) + 1
EndProcedure
If OpenWindow(0, 0, 0, 200, 200, "Cursorpos [1,1]", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
EditorGadget(0,0,0,200,200)
SetGadgetText(0,"Zeile 1"+#CRLF$+"Zeile 2"+#CRLF$+"Zeile 3")
AddWindowTimer(0,1,200)
SetActiveGadget(0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Timer
If EventTimer() = 1
x.l=EditorGadgetCursorX(0)
y.l=EditorGadgetCursorY(0)
SetWindowTitle(0,"Cursorpos ["+Str(x)+","+Str(y)+"]")
EndIf
Case #PB_Event_CloseWindow
Quit.l = 1
EndSelect
Until Quit = 1
EndIf
End
Danke&Gruß