Seite 1 von 1

Re: Mauszeiger ändern unter Linux

Verfasst: 02.01.2012 11:44
von Shardik
Kukulkan hat geschrieben:Man muss auch begreifen, dass das dann nicht dauerhaft gilt, sondern nur bis nur nächsten Bewegung. Daher muss man das immer im Haupt-Loop neu aufrufen.
Wenn man es richtig macht, ist dies nicht nötig... :wink:
Man kann an gdk_window_set_cursor_() nicht WindowID(1) direkt übergeben,
sondern muß über die Struktur Widget/window gehen:

Code: Alles auswählen

OpenWindow(0, 100, 100, 170, 160, "Cursor-Test")
ButtonGadget(0, 10, 10, WindowWidth(0) - 20, 24, "X-Cursor")
ButtonGadget(1, 10, 40, WindowWidth(0) - 20, 24, "O-Cursor")
ButtonGadget(2, 10, 70, WindowWidth(0) - 20, 24, "+-Cursor")
ButtonGadget(3, 10, 100, WindowWidth(0) - 20, 24, "Sprühflasche")
ButtonGadget(4, 10, 130, WindowWidth(0) - 20, 24, "Uhr")

Procedure ChangeCursor(CursorID.I)
  *Widget.GtkWidget = WindowID(0)
  *Cursor.GdkCursor = gdk_cursor_new_(CursorID)

  If *Cursor
    gdk_window_set_cursor_(*Widget\window, *Cursor)
  EndIf
EndProcedure

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Break
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 0
          ChangeCursor(#GDK_X_CURSOR)
        Case 1
          ChangeCursor(#GDK_CIRCLE)
        Case 2
          ChangeCursor(#GDK_TCROSS)
        Case 3
          ChangeCursor(#GDK_SPRAYCAN)
        Case 4
          ChangeCursor(#GDK_WATCH)
      EndSelect
  EndSelect
ForEver
Wer selbst entworfene Cursor verwenden möchte, sollte sich dieses
Beispiel von Erlend ansehen:
http://www.purebasic.fr/english/viewtop ... 09&start=1

GBeebe hat gezeigt, wie man ein PNG-Bild als Cursor einsetzt:
http://www.purebasic.fr/english/viewtop ... 12&t=41209