Если кому интересен 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)