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ß