Если кому интересен linux и его системные вызовы, предлагаю в данной ветке делиться примерами использования API в пурике.

Вот для начала окно которое не отображается в панели задач

Код:

OpenWindow(0, 0, 0, 300, 200, "Test", #PB_Window_SystemMenu|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget)
gtk_window_set_skip_taskbar_hint_ (WindowID (0), #True)
Repeat
  Event = WindowEvent()
Until Event = #PB_Event_CloseWindow
End

окно без рамки

Код:

OpenWindow(0, 0, 0, 300, 200, "Test", #PB_Window_SystemMenu|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget)
Wnd = WindowID(0)
If Wnd <> 0
ButtonGadget(0, 10, 10, 280, 20, "Status")
    *Window1.GTKWindow = Wnd
    gtk_window_set_decorated_(*Window1, #False)
      Repeat
        Event = WindowEvent()
      Until Event = #PB_Event_CloseWindow
EndIf
End

изменение вида курсора

Код:

; maus = gdk_cursor_new_(#GDK_TOP_LEFT_ARROW)
; maus = gdk_cursor_new_(#GDK_TCROSS)
; maus = gdk_cursor_new_(#GDK_SB_V_DOUBLE_ARROW)
; maus = gdk_cursor_new_(#GDK_SB_H_DOUBLE_ARROW)
maus = gdk_cursor_new_(#GDK_CROSSHAIR)
OpenWindow(0,100,100,400,300,"")
ButtonGadget(0,50,100,200,30,"Mauszeiger verändern")
ButtonGadget(1,50,200,200,30,"Beenden")
*Widget.GtkWidget = WindowID(0)
Repeat
  ev = WaitWindowEvent()
  If ev = #PB_Event_Gadget
     Select EventGadget()
       Case 0
         gdk_window_set_cursor_(*Widget\window,maus)
       Case 1
         End
     EndSelect   
  EndIf
Until ev = #PB_Event_CloseWindow

нажатие мышкой и одновременное нажатие Ctrl

Код:

OpenWindow(0, 0, 0, 300, 200, "Test", #PB_Window_SystemMenu|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget)
Wnd = WindowID(0)
If Wnd <> 0
ButtonGadget(0, 10, 10, 280, 20, "Status")
Gad=GadgetID(0)
    *Window1.GTKWindow = Wnd
    gdkWnd = *Window1\bin\child\window
Repeat
  Event = WindowEvent()
   gdk_window_get_pointer_(gdkWnd, @x, @y, @mask)
  If (mask & #GDK_BUTTON1_MASK) And (mask & #GDK_CONTROL_MASK)
      Debug x
      Debug y
      Debug "L"
  ElseIf (mask & #GDK_BUTTON2_MASK)
      Debug x
      Debug y
      Debug "S"
  ElseIf (mask & #GDK_BUTTON3_MASK)
      Debug x
      Debug y
      Debug "P"
  EndIf 
  Delay(100)
Until Event = #PB_Event_CloseWindow
EndIf
End

Теги: PureBasic

Отредактировано AnonDio (2018-04-23 12:34:05)