├── libs └── .gitignore ├── headers ├── 400-GtkListBase.h ├── 400-GtkActivateAction.h ├── 400-GtkListItemFactory.h ├── 400-GtkMnemonicAction.h ├── 400-GtkNeverTrigger.h ├── 400-GtkNothingAction.h ├── 400-GtkShortcutsGroup.h ├── 400-GtkShortcutsSection.h ├── 400-GtkShortcutsWindow.h ├── 400-GtkConstraintLayoutChild.h ├── 400-GtkParamSpecExpression.h ├── 400-GtkShortcutsShortcut.h ├── 400-GtkAnyFilter.h ├── 400-GtkEmojiChooser.h ├── 400-GtkVolumeButton.h ├── 400-GtkBinLayout.h ├── 400-GtkEveryFilter.h ├── 400-GtkFixedLayout.h ├── 400-GtkGestureClick.h ├── 400-GtkOverlayLayout.h ├── 400-GtkCellRendererSpin.h ├── 400-GtkColorChooserWidget.h ├── 400-GtkFontChooserWidget.h ├── 400-GtkSeparator.h ├── 400-GtkCellRendererAccel.h ├── 400-GtkCellRendererCombo.h ├── 400-GtkCellRendererPixbuf.h ├── 400-GtkPasswordEntryBuffer.h ├── 110-glib.h ├── 400-GtkCellRendererProgress.h ├── 400-GtkCellRendererSpinner.h ├── 400-GtkNotebookPage.h ├── 400-GtkAssistantPage.h ├── 400-GtkEventControllerLegacy.h ├── 400-GtkSignalListItemFactory.h ├── 400-GtkFileChooserWidget.h ├── 400-GtkSettings.h ├── 400-GtkColorChooserDialog.h ├── 400-GtkFontChooserDialog.h ├── 400-GtkCallbackAction.h ├── 300-gtk.h ├── 400-GtkGestureZoom.h ├── 400-GtkClosureExpression.h ├── 400-GtkGestureRotate.h ├── 400-GtkDragIcon.h ├── 400-GtkNamedAction.h ├── 400-GtkStringObject.h ├── 400-GtkCustomLayout.h ├── 400-GtkMnemonicTrigger.h ├── 400-GtkFileChooserDialog.h ├── 400-GtkObjectExpression.h ├── 400-GtkMultiFilter.h ├── 400-GtkSignalAction.h ├── 400-GtkGestureSwipe.h ├── 400-GtkLayoutChild.h ├── 400-GtkCellRendererText.h ├── 400-GtkFixedLayoutChild.h ├── 400-GtkStackSidebar.h ├── 400-GtkCClosureExpression.h ├── 400-GtkFilter.h ├── 400-GtkMultiSorter.h ├── 400-GtkWindowHandle.h ├── 400-GtkNoSelection.h ├── 400-GtkStackSwitcher.h ├── 400-GtkSorter.h ├── 400-GtkSearchEntry.h ├── 100-g.h ├── 400-GtkLockButton.h ├── 400-GtkGestureDrag.h ├── 400-GtkIMMulticontext.h ├── 400-GtkMultiSelection.h ├── 400-GtkWidgetPaintable.h ├── 400-GtkGesturePan.h ├── 400-GtkKeyvalTrigger.h ├── 400-GtkConstantExpression.h ├── 400-GtkEventControllerFocus.h ├── 400-GtkGestureLongPress.h ├── 400-GtkScrollbar.h ├── 400-GtkEventControllerMotion.h ├── 400-GtkMediaControls.h ├── 400-GtkTextTag.h ├── 400-GtkCustomSorter.h ├── 400-GtkTreeListRowSorter.h ├── 400-GtkCustomFilter.h ├── 400-GtkATContext.h ├── 400-GtkEditableLabel.h ├── 400-GtkIMContextSimple.h ├── 400-GtkSpinner.h ├── 400-GtkSwitch.h ├── 400-GtkAlternativeTrigger.h ├── 400-GtkSelectionFilterModel.h ├── 400-GtkIconPaintable.h ├── 400-GtkWindowGroup.h ├── 110-gMainLoop.h ├── 400-GtkEventControllerScroll.h ├── 400-GtkDropControllerMotion.h ├── 400-GtkTextChildAnchor.h ├── 400-GtkFlattenListModel.h ├── 400-GtkPadController.h ├── 400-GtkShortcutAction.h ├── 400-GtkBoolFilter.h ├── 400-GtkOverlayLayoutChild.h ├── 400-GtkPropertyExpression.h ├── 400-GtkViewport.h ├── 400-GtkPasswordEntry.h ├── 400-GtkFlowBoxChild.h ├── 400-GtkStringSorter.h ├── 400-GtkColorButton.h ├── 400-GtkNumericSorter.h ├── 400-GtkShortcutLabel.h ├── 400-GtkBuilderCScope.h ├── 400-GtkPopoverMenuBar.h ├── 400-GtkCellAreaBox.h ├── 400-GtkGestureStylus.h ├── 400-GtkLinkButton.h ├── 400-GtkEventControllerKey.h ├── 400-GtkSizeGroup.h ├── 400-GtkMountOperation.h ├── 400-GtkTextTagTable.h ├── 400-GtkTextMark.h ├── 400-GtkWindowControls.h ├── 400-GtkAppChooserDialog.h ├── 400-GtkStatusbar.h ├── 400-GtkDrawingArea.h ├── 400-GtkStringList.h ├── 000-type.h ├── 400-GtkMapListModel.h ├── 400-GtkBuilderListItemFactory.h ├── 400-GtkPageSetupUnixDialog.h ├── 400-GtkPopoverMenu.h ├── 400-GtkToggleButton.h ├── 400-GtkApplicationWindow.h ├── 400-GtkDropTargetAsync.h ├── 400-GtkFixed.h ├── 400-GtkBookmarkList.h ├── 400-GtkFileChooserNative.h ├── 400-GtkSliceListModel.h ├── 400-GtkTooltip.h ├── 400-GtkBoxLayout.h ├── 400-GtkFrame.h ├── 400-GtkCellRendererToggle.h ├── 400-GtkCssProvider.h ├── 400-GtkActionBar.h ├── 400-GtkDragSource.h ├── 400-GtkExpression.h ├── 400-GtkTreeExpander.h ├── 400-GtkListItem.h ├── 400-GtkGridLayoutChild.h ├── 400-GtkSortListModel.h ├── 400-GtkLayoutManager.h ├── 400-GtkGestureSingle.h ├── 400-GtkShortcut.h ├── 400-GtkTreeListRow.h ├── 400-GtkFilterListModel.h ├── 400-GtkCenterBox.h ├── 400-GtkTreeListModel.h ├── 400-GtkOverlay.h ├── 400-GtkScaleButton.h ├── 400-GtkMessageDialog.h ├── 400-GtkNativeDialog.h ├── 400-GtkSearchBar.h ├── 400-GtkFileFilter.h ├── 400-GtkShortcutController.h ├── 400-GtkHeaderBar.h ├── 400-GtkStringFilter.h ├── 400-GtkFontButton.h ├── 400-GtkRevealer.h ├── 400-GtkShortcutTrigger.h ├── 400-GtkBox.h ├── 400-GtkAspectFrame.h ├── 400-GtkSingleSelection.h ├── 400-GtkListBoxRow.h ├── 400-GtkRecentManager.h ├── 400-GtkDirectoryList.h ├── 400-GtkDropTarget.h ├── 400-GtkListView.h ├── 400-GtkCalendar.h ├── 400-GtkCheckButton.h ├── 400-GtkMediaFile.h ├── 400-GtkCenterLayout.h ├── 400-GtkComboBoxText.h ├── 400-GtkPrintContext.h ├── 400-GtkButton.h ├── 400-GtkStackPage.h ├── 400-GtkEntryBuffer.h ├── 400-GtkTreeModelSort.h ├── 400-GtkVideo.h ├── 400-GtkCellView.h ├── 400-GtkConstraintGuide.h ├── 400-GtkDialog.h ├── 400-GtkGridView.h ├── 400-GtkGridLayout.h ├── 400-GtkProgressBar.h ├── 400-GtkLevelBar.h ├── 400-GtkAppChooserButton.h ├── 400-GtkCellAreaContext.h ├── 400-GtkConstraintLayout.h ├── 400-GtkEventController.h ├── 400-GtkAppChooserWidget.h ├── 400-GtkScale.h ├── 400-GtkTreeModelFilter.h ├── 400-GtkPaned.h ├── 400-GtkGLArea.h ├── 400-GtkExpander.h ├── 400-GtkConstraint.h ├── 400-GtkDropDown.h ├── 400-GtkPicture.h ├── 400-GtkIconTheme.h ├── 400-GtkGesture.h ├── 400-GtkIMContext.h ├── 400-GtkInfoBar.h ├── 400-GtkAdjustment.h ├── 400-GtkApplication.h ├── 400-GtkImage.h ├── 400-GtkPopover.h ├── 400-GtkRange.h ├── 400-GtkColumnViewColumn.h ├── 400-GtkStyleContext.h ├── 400-GtkColumnView.h ├── 400-GtkPrinter.h ├── 400-GtkGrid.h ├── 400-GtkPrintUnixDialog.h ├── 400-GtkStack.h ├── 400-GtkTreeSelection.h ├── 400-GtkListStore.h ├── 400-GtkAssistant.h ├── 400-GtkMenuButton.h ├── 400-GtkComboBox.h └── 400-GtkSpinButton.h ├── img └── win.png ├── example ├── simple │ ├── image │ │ ├── 158776.png │ │ └── image.php │ ├── entry │ │ └── main.php │ ├── button │ │ └── link.php │ └── hello_world │ │ └── main.php └── layout_containers │ ├── headerBar │ ├── main.php │ └── HeaderBarWindow.php │ ├── listBox │ ├── main.php │ └── ListBoxRowWithData.php │ ├── boxes │ ├── main.php │ └── BoxWindow.php │ ├── stack │ ├── main.php │ └── StackWindow.php │ └── grid │ └── main.php ├── .gitignore ├── src ├── Gtk │ ├── Enum │ │ ├── ConnectFlags.php │ │ ├── Orientation.php │ │ ├── PolicyType.php │ │ ├── SelectionMode.php │ │ └── StackTransitionType.php │ ├── WidgetInterface.php │ ├── PasswordEntryBuffer.php │ ├── Breaker.php │ ├── ComboBoxText.php │ ├── CheckButton.php │ ├── ListBoxRow.php │ ├── StackSwitcher.php │ ├── Box.php │ ├── ListBox.php │ ├── LinkButton.php │ ├── Image.php │ ├── EntryBuffer.php │ ├── Text.php │ ├── ToggleButton.php │ ├── ButtonIcon.php │ ├── Widget.php │ ├── Stack.php │ ├── Entry.php │ ├── Button.php │ ├── Grid.php │ ├── Label.php │ ├── HeaderBar.php │ └── Window.php ├── Enum │ └── Version.php ├── Configuration.php ├── GLib │ ├── functions.php │ ├── MainContext.php │ └── MainLoop.php ├── GDK │ └── GObject.php └── Gtk.php ├── composer.json ├── phpunit.xml ├── psalm.xml ├── tests └── Unit │ └── Gtk │ ├── WindowTest.php │ └── LinkButtonTest.php └── README.md /libs/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | * -------------------------------------------------------------------------------- /headers/400-GtkListBase.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /headers/400-GtkActivateAction.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /headers/400-GtkListItemFactory.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /headers/400-GtkMnemonicAction.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /headers/400-GtkNeverTrigger.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /headers/400-GtkNothingAction.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /headers/400-GtkShortcutsGroup.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /headers/400-GtkShortcutsSection.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /headers/400-GtkShortcutsWindow.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /headers/400-GtkConstraintLayoutChild.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /headers/400-GtkParamSpecExpression.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /headers/400-GtkShortcutsShortcut.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /img/win.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHP-GTK/gtk/HEAD/img/win.png -------------------------------------------------------------------------------- /headers/400-GtkAnyFilter.h: -------------------------------------------------------------------------------- 1 | extern GtkAnyFilter* gtk_any_filter_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkEmojiChooser.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_emoji_chooser_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkVolumeButton.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_volume_button_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkBinLayout.h: -------------------------------------------------------------------------------- 1 | extern GtkLayoutManager* gtk_bin_layout_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkEveryFilter.h: -------------------------------------------------------------------------------- 1 | extern GtkEveryFilter* gtk_every_filter_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkFixedLayout.h: -------------------------------------------------------------------------------- 1 | extern GtkLayoutManager* gtk_fixed_layout_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkGestureClick.h: -------------------------------------------------------------------------------- 1 | extern GtkGesture* gtk_gesture_click_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkOverlayLayout.h: -------------------------------------------------------------------------------- 1 | extern GtkLayoutManager* gtk_overlay_layout_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkCellRendererSpin.h: -------------------------------------------------------------------------------- 1 | extern GtkCellRenderer* gtk_cell_renderer_spin_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkColorChooserWidget.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_color_chooser_widget_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkFontChooserWidget.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_font_chooser_widget_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkSeparator.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_separator_new ( GtkOrientation orientation ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkCellRendererAccel.h: -------------------------------------------------------------------------------- 1 | extern GtkCellRenderer* gtk_cell_renderer_accel_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkCellRendererCombo.h: -------------------------------------------------------------------------------- 1 | extern GtkCellRenderer* gtk_cell_renderer_combo_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkCellRendererPixbuf.h: -------------------------------------------------------------------------------- 1 | extern GtkCellRenderer* gtk_cell_renderer_pixbuf_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkPasswordEntryBuffer.h: -------------------------------------------------------------------------------- 1 | extern GtkEntryBuffer* gtk_password_entry_buffer_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/110-glib.h: -------------------------------------------------------------------------------- 1 | extern guint g_timeout_add_seconds (guint interval,GSourceFunc function,gpointer data); -------------------------------------------------------------------------------- /headers/400-GtkCellRendererProgress.h: -------------------------------------------------------------------------------- 1 | extern GtkCellRenderer* gtk_cell_renderer_progress_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkCellRendererSpinner.h: -------------------------------------------------------------------------------- 1 | extern GtkCellRenderer* gtk_cell_renderer_spinner_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkNotebookPage.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_notebook_page_get_child ( GtkNotebookPage* page ); 2 | -------------------------------------------------------------------------------- /example/simple/image/158776.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PHP-GTK/gtk/HEAD/example/simple/image/158776.png -------------------------------------------------------------------------------- /headers/400-GtkAssistantPage.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_assistant_page_get_child ( GtkAssistantPage* page ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkEventControllerLegacy.h: -------------------------------------------------------------------------------- 1 | extern GtkEventController* gtk_event_controller_legacy_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkSignalListItemFactory.h: -------------------------------------------------------------------------------- 1 | extern GtkListItemFactory* gtk_signal_list_item_factory_new ( void ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkFileChooserWidget.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_file_chooser_widget_new ( GtkFileChooserAction action ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkSettings.h: -------------------------------------------------------------------------------- 1 | extern void gtk_settings_reset_property ( GtkSettings* settings, const char* name ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkColorChooserDialog.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_color_chooser_dialog_new ( const char* title, GtkWindow* parent ); 2 | -------------------------------------------------------------------------------- /headers/400-GtkFontChooserDialog.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_font_chooser_dialog_new ( const char* title, GtkWindow* parent ); 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/ 2 | test.php 3 | composer.lock 4 | .phpunit.result.cache 5 | .idea 6 | parser.php 7 | simple_html_dom.php 8 | -------------------------------------------------------------------------------- /src/Gtk/Enum/ConnectFlags.php: -------------------------------------------------------------------------------- 1 | run(); 10 | -------------------------------------------------------------------------------- /headers/400-GtkFixedLayoutChild.h: -------------------------------------------------------------------------------- 1 | extern GskTransform* gtk_fixed_layout_child_get_transform ( GtkFixedLayoutChild* child ); 2 | extern void gtk_fixed_layout_child_set_transform ( GtkFixedLayoutChild* child, GskTransform* transform ); 3 | -------------------------------------------------------------------------------- /src/Gtk/Enum/SelectionMode.php: -------------------------------------------------------------------------------- 1 | run(); 12 | -------------------------------------------------------------------------------- /headers/400-GtkNoSelection.h: -------------------------------------------------------------------------------- 1 | extern void gtk_no_selection_set_model ( GtkNoSelection* self, GListModel* model ); 2 | extern GListModel* gtk_no_selection_get_model ( GtkNoSelection* self ); 3 | extern GtkNoSelection* gtk_no_selection_new ( GListModel* model ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkStackSwitcher.h: -------------------------------------------------------------------------------- 1 | extern GtkStack* gtk_stack_switcher_get_stack ( GtkStackSwitcher* switcher ); 2 | extern GtkWidget* gtk_stack_switcher_new ( void ); 3 | extern void gtk_stack_switcher_set_stack ( GtkStackSwitcher* switcher, GtkStack* stack ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkSorter.h: -------------------------------------------------------------------------------- 1 | extern GtkOrdering gtk_sorter_compare ( GtkSorter* self, GObject* item1, GObject* item2 ); 2 | extern void gtk_sorter_changed ( GtkSorter* self, GtkSorterChange change ); 3 | extern GtkSorterOrder gtk_sorter_get_order ( GtkSorter* self ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkSearchEntry.h: -------------------------------------------------------------------------------- 1 | extern void gtk_search_entry_set_key_capture_widget ( GtkSearchEntry* entry, GtkWidget* widget ); 2 | extern GtkWidget* gtk_search_entry_new ( void ); 3 | extern GtkWidget* gtk_search_entry_get_key_capture_widget ( GtkSearchEntry* entry ); 4 | -------------------------------------------------------------------------------- /headers/100-g.h: -------------------------------------------------------------------------------- 1 | gboolean g_main_context_iteration(GMainContext* context, gboolean may_block); 2 | gulong g_signal_connect_data(GObject* instance, const gchar* detailed_signal, GCallback c_handler, gpointer data, GClosureNotify destroy_data, GConnectFlags connect_flags); 3 | -------------------------------------------------------------------------------- /example/layout_containers/listBox/main.php: -------------------------------------------------------------------------------- 1 | run(); -------------------------------------------------------------------------------- /headers/400-GtkLockButton.h: -------------------------------------------------------------------------------- 1 | extern GPermission* gtk_lock_button_get_permission ( GtkLockButton* button ); 2 | extern GtkWidget* gtk_lock_button_new ( GPermission* permission ); 3 | extern void gtk_lock_button_set_permission ( GtkLockButton* button, GPermission* permission ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkGestureDrag.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_gesture_drag_get_start_point ( GtkGestureDrag* gesture, double* x, double* y ); 2 | extern gboolean gtk_gesture_drag_get_offset ( GtkGestureDrag* gesture, double* x, double* y ); 3 | extern GtkGesture* gtk_gesture_drag_new ( void ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkIMMulticontext.h: -------------------------------------------------------------------------------- 1 | extern void gtk_im_multicontext_set_context_id ( GtkIMMulticontext* context, const char* context_id ); 2 | extern const char* gtk_im_multicontext_get_context_id ( GtkIMMulticontext* context ); 3 | extern GtkIMContext* gtk_im_multicontext_new ( void ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkMultiSelection.h: -------------------------------------------------------------------------------- 1 | extern void gtk_multi_selection_set_model ( GtkMultiSelection* self, GListModel* model ); 2 | extern GListModel* gtk_multi_selection_get_model ( GtkMultiSelection* self ); 3 | extern GtkMultiSelection* gtk_multi_selection_new ( GListModel* model ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkWidgetPaintable.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_widget_paintable_get_widget ( GtkWidgetPaintable* self ); 2 | extern void gtk_widget_paintable_set_widget ( GtkWidgetPaintable* self, GtkWidget* widget ); 3 | extern GdkPaintable* gtk_widget_paintable_new ( GtkWidget* widget ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkGesturePan.h: -------------------------------------------------------------------------------- 1 | extern GtkOrientation gtk_gesture_pan_get_orientation ( GtkGesturePan* gesture ); 2 | extern GtkGesture* gtk_gesture_pan_new ( GtkOrientation orientation ); 3 | extern void gtk_gesture_pan_set_orientation ( GtkGesturePan* gesture, GtkOrientation orientation ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkKeyvalTrigger.h: -------------------------------------------------------------------------------- 1 | extern GdkModifierType gtk_keyval_trigger_get_modifiers ( GtkKeyvalTrigger* self ); 2 | extern guint gtk_keyval_trigger_get_keyval ( GtkKeyvalTrigger* self ); 3 | extern GtkShortcutTrigger* gtk_keyval_trigger_new ( guint keyval, GdkModifierType modifiers ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkConstantExpression.h: -------------------------------------------------------------------------------- 1 | extern GtkExpression* gtk_constant_expression_new_for_value ( const GValue* value ); 2 | extern GtkExpression* gtk_constant_expression_new ( GType value_type, ... ); 3 | extern const GValue* gtk_constant_expression_get_value ( GtkExpression* expression ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkEventControllerFocus.h: -------------------------------------------------------------------------------- 1 | extern GtkEventController* gtk_event_controller_focus_new ( void ); 2 | extern gboolean gtk_event_controller_focus_is_focus ( GtkEventControllerFocus* self ); 3 | extern gboolean gtk_event_controller_focus_contains_focus ( GtkEventControllerFocus* self ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkGestureLongPress.h: -------------------------------------------------------------------------------- 1 | extern GtkGesture* gtk_gesture_long_press_new ( void ); 2 | extern double gtk_gesture_long_press_get_delay_factor ( GtkGestureLongPress* gesture ); 3 | extern void gtk_gesture_long_press_set_delay_factor ( GtkGestureLongPress* gesture, double delay_factor ); 4 | -------------------------------------------------------------------------------- /example/layout_containers/boxes/main.php: -------------------------------------------------------------------------------- 1 | run(); 13 | -------------------------------------------------------------------------------- /headers/400-GtkScrollbar.h: -------------------------------------------------------------------------------- 1 | extern void gtk_scrollbar_set_adjustment ( GtkScrollbar* self, GtkAdjustment* adjustment ); 2 | extern GtkAdjustment* gtk_scrollbar_get_adjustment ( GtkScrollbar* self ); 3 | extern GtkWidget* gtk_scrollbar_new ( GtkOrientation orientation, GtkAdjustment* adjustment ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkEventControllerMotion.h: -------------------------------------------------------------------------------- 1 | extern GtkEventController* gtk_event_controller_motion_new ( void ); 2 | extern gboolean gtk_event_controller_motion_contains_pointer ( GtkEventControllerMotion* self ); 3 | extern gboolean gtk_event_controller_motion_is_pointer ( GtkEventControllerMotion* self ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkMediaControls.h: -------------------------------------------------------------------------------- 1 | extern GtkMediaStream* gtk_media_controls_get_media_stream ( GtkMediaControls* controls ); 2 | extern void gtk_media_controls_set_media_stream ( GtkMediaControls* controls, GtkMediaStream* stream ); 3 | extern GtkWidget* gtk_media_controls_new ( GtkMediaStream* stream ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkTextTag.h: -------------------------------------------------------------------------------- 1 | extern int gtk_text_tag_get_priority ( GtkTextTag* tag ); 2 | extern void gtk_text_tag_changed ( GtkTextTag* tag, gboolean size_changed ); 3 | extern void gtk_text_tag_set_priority ( GtkTextTag* tag, int priority ); 4 | extern GtkTextTag* gtk_text_tag_new ( const char* name ); 5 | -------------------------------------------------------------------------------- /example/layout_containers/stack/main.php: -------------------------------------------------------------------------------- 1 | widget->show(); 9 | while (true) { 10 | \PGtk\Gtk\GLib\MainContext::iteration(true); 11 | } 12 | -------------------------------------------------------------------------------- /headers/400-GtkCustomSorter.h: -------------------------------------------------------------------------------- 1 | extern void gtk_custom_sorter_set_sort_func ( GtkCustomSorter* self, GCompareDataFunc sort_func, gpointer user_data, GDestroyNotify user_destroy ); 2 | extern GtkCustomSorter* gtk_custom_sorter_new ( GCompareDataFunc sort_func, gpointer user_data, GDestroyNotify user_destroy ); 3 | -------------------------------------------------------------------------------- /headers/400-GtkTreeListRowSorter.h: -------------------------------------------------------------------------------- 1 | extern GtkTreeListRowSorter* gtk_tree_list_row_sorter_new ( GtkSorter* sorter ); 2 | extern GtkSorter* gtk_tree_list_row_sorter_get_sorter ( GtkTreeListRowSorter* self ); 3 | extern void gtk_tree_list_row_sorter_set_sorter ( GtkTreeListRowSorter* self, GtkSorter* sorter ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkCustomFilter.h: -------------------------------------------------------------------------------- 1 | extern GtkCustomFilter* gtk_custom_filter_new ( GtkCustomFilterFunc match_func, gpointer user_data, GDestroyNotify user_destroy ); 2 | extern void gtk_custom_filter_set_filter_func ( GtkCustomFilter* self, GtkCustomFilterFunc match_func, gpointer user_data, GDestroyNotify user_destroy ); 3 | -------------------------------------------------------------------------------- /src/Configuration.php: -------------------------------------------------------------------------------- 1 | setChild($label); 10 | } 11 | } -------------------------------------------------------------------------------- /headers/400-GtkEditableLabel.h: -------------------------------------------------------------------------------- 1 | extern void gtk_editable_label_stop_editing ( GtkEditableLabel* self, gboolean commit ); 2 | extern GtkWidget* gtk_editable_label_new ( const char* str ); 3 | extern void gtk_editable_label_start_editing ( GtkEditableLabel* self ); 4 | extern gboolean gtk_editable_label_get_editing ( GtkEditableLabel* self ); 5 | -------------------------------------------------------------------------------- /headers/400-GtkIMContextSimple.h: -------------------------------------------------------------------------------- 1 | extern GtkIMContext* gtk_im_context_simple_new ( void ); 2 | extern void gtk_im_context_simple_add_compose_file ( GtkIMContextSimple* context_simple, const char* compose_file ); 3 | extern void gtk_im_context_simple_add_table ( GtkIMContextSimple* context_simple, guint16* data, int max_seq_len, int n_seqs ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkSpinner.h: -------------------------------------------------------------------------------- 1 | extern void gtk_spinner_start ( GtkSpinner* spinner ); 2 | extern void gtk_spinner_set_spinning ( GtkSpinner* spinner, gboolean spinning ); 3 | extern GtkWidget* gtk_spinner_new ( void ); 4 | extern gboolean gtk_spinner_get_spinning ( GtkSpinner* spinner ); 5 | extern void gtk_spinner_stop ( GtkSpinner* spinner ); 6 | -------------------------------------------------------------------------------- /headers/400-GtkSwitch.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_switch_new ( void ); 2 | extern void gtk_switch_set_active ( GtkSwitch* self, gboolean is_active ); 3 | extern gboolean gtk_switch_get_state ( GtkSwitch* self ); 4 | extern gboolean gtk_switch_get_active ( GtkSwitch* self ); 5 | extern void gtk_switch_set_state ( GtkSwitch* self, gboolean state ); 6 | -------------------------------------------------------------------------------- /headers/400-GtkAlternativeTrigger.h: -------------------------------------------------------------------------------- 1 | extern GtkShortcutTrigger* gtk_alternative_trigger_new ( GtkShortcutTrigger* first, GtkShortcutTrigger* second ); 2 | extern GtkShortcutTrigger* gtk_alternative_trigger_get_second ( GtkAlternativeTrigger* self ); 3 | extern GtkShortcutTrigger* gtk_alternative_trigger_get_first ( GtkAlternativeTrigger* self ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkSelectionFilterModel.h: -------------------------------------------------------------------------------- 1 | extern GtkSelectionModel* gtk_selection_filter_model_get_model ( GtkSelectionFilterModel* self ); 2 | extern GtkSelectionFilterModel* gtk_selection_filter_model_new ( GtkSelectionModel* model ); 3 | extern void gtk_selection_filter_model_set_model ( GtkSelectionFilterModel* self, GtkSelectionModel* model ); 4 | -------------------------------------------------------------------------------- /src/GLib/functions.php: -------------------------------------------------------------------------------- 1 | g_timeout_add_seconds( 6 | $secund, 7 | function () use ($fun, $data): bool { 8 | return $fun(...$data) ?? false; 9 | }, 10 | null 11 | ); 12 | } -------------------------------------------------------------------------------- /headers/400-GtkIconPaintable.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_icon_paintable_is_symbolic ( GtkIconPaintable* self ); 2 | extern GtkIconPaintable* gtk_icon_paintable_new_for_file ( GFile* file, int size, int scale ); 3 | extern GFile* gtk_icon_paintable_get_file ( GtkIconPaintable* self ); 4 | extern const char* gtk_icon_paintable_get_icon_name ( GtkIconPaintable* self ); 5 | -------------------------------------------------------------------------------- /headers/400-GtkWindowGroup.h: -------------------------------------------------------------------------------- 1 | extern GList* gtk_window_group_list_windows ( GtkWindowGroup* window_group ); 2 | extern void gtk_window_group_remove_window ( GtkWindowGroup* window_group, GtkWindow* window ); 3 | extern GtkWindowGroup* gtk_window_group_new ( void ); 4 | extern void gtk_window_group_add_window ( GtkWindowGroup* window_group, GtkWindow* window ); 5 | -------------------------------------------------------------------------------- /headers/110-gMainLoop.h: -------------------------------------------------------------------------------- 1 | extern GMainLoop* g_main_loop_new (GMainContext* context, gboolean is_running); 2 | extern void g_main_loop_run(GMainLoop* loop); 3 | extern void g_main_loop_quit(GMainLoop* loop); 4 | extern gboolean g_main_loop_is_running(GMainLoop* loop); 5 | extern GMainLoop* g_main_loop_ref(GMainLoop* loop); 6 | extern void g_main_loop_unref(GMainLoop* loop); -------------------------------------------------------------------------------- /src/Gtk/PasswordEntryBuffer.php: -------------------------------------------------------------------------------- 1 | widget = new Widget(Gtk::getFFI()->gtk_password_entry_buffer_new()); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /headers/400-GtkEventControllerScroll.h: -------------------------------------------------------------------------------- 1 | extern void gtk_event_controller_scroll_set_flags ( GtkEventControllerScroll* scroll, GtkEventControllerScrollFlags flags ); 2 | extern GtkEventController* gtk_event_controller_scroll_new ( GtkEventControllerScrollFlags flags ); 3 | extern GtkEventControllerScrollFlags gtk_event_controller_scroll_get_flags ( GtkEventControllerScroll* scroll ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkDropControllerMotion.h: -------------------------------------------------------------------------------- 1 | extern GdkDrop* gtk_drop_controller_motion_get_drop ( GtkDropControllerMotion* self ); 2 | extern gboolean gtk_drop_controller_motion_contains_pointer ( GtkDropControllerMotion* self ); 3 | extern GtkEventController* gtk_drop_controller_motion_new ( void ); 4 | extern gboolean gtk_drop_controller_motion_is_pointer ( GtkDropControllerMotion* self ); 5 | -------------------------------------------------------------------------------- /headers/400-GtkTextChildAnchor.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget** gtk_text_child_anchor_get_widgets ( GtkTextChildAnchor* anchor, guint* out_len ); 2 | extern GtkTextChildAnchor* gtk_text_child_anchor_new ( void ); 3 | extern gboolean gtk_text_child_anchor_get_deleted ( GtkTextChildAnchor* anchor ); 4 | extern GtkTextChildAnchor* gtk_text_child_anchor_new_with_replacement ( const char* character ); 5 | -------------------------------------------------------------------------------- /headers/400-GtkFlattenListModel.h: -------------------------------------------------------------------------------- 1 | extern GListModel* gtk_flatten_list_model_get_model ( GtkFlattenListModel* self ); 2 | extern void gtk_flatten_list_model_set_model ( GtkFlattenListModel* self, GListModel* model ); 3 | extern GtkFlattenListModel* gtk_flatten_list_model_new ( GListModel* model ); 4 | extern GListModel* gtk_flatten_list_model_get_model_for_item ( GtkFlattenListModel* self, guint position ); 5 | -------------------------------------------------------------------------------- /headers/400-GtkPadController.h: -------------------------------------------------------------------------------- 1 | extern GtkPadController* gtk_pad_controller_new ( GActionGroup* group, GdkDevice* pad ); 2 | extern void gtk_pad_controller_set_action ( GtkPadController* controller, GtkPadActionType type, int index, int mode, const char* label, const char* action_name ); 3 | extern void gtk_pad_controller_set_action_entries ( GtkPadController* controller, const GtkPadActionEntry* entries, int n_entries ); 4 | -------------------------------------------------------------------------------- /headers/400-GtkShortcutAction.h: -------------------------------------------------------------------------------- 1 | extern char* gtk_shortcut_action_to_string ( GtkShortcutAction* self ); 2 | extern GtkShortcutAction* gtk_shortcut_action_parse_string ( const char* string ); 3 | extern gboolean gtk_shortcut_action_activate ( GtkShortcutAction* self, GtkShortcutActionFlags flags, GtkWidget* widget, GVariant* args ); 4 | extern void gtk_shortcut_action_print ( GtkShortcutAction* self, GString* string ); 5 | -------------------------------------------------------------------------------- /src/Gtk/Breaker.php: -------------------------------------------------------------------------------- 1 | gtk_switch_new())); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /headers/400-GtkBoolFilter.h: -------------------------------------------------------------------------------- 1 | extern void gtk_bool_filter_set_expression ( GtkBoolFilter* self, GtkExpression* expression ); 2 | extern GtkExpression* gtk_bool_filter_get_expression ( GtkBoolFilter* self ); 3 | extern GtkBoolFilter* gtk_bool_filter_new ( GtkExpression* expression ); 4 | extern gboolean gtk_bool_filter_get_invert ( GtkBoolFilter* self ); 5 | extern void gtk_bool_filter_set_invert ( GtkBoolFilter* self, gboolean invert ); 6 | -------------------------------------------------------------------------------- /headers/400-GtkOverlayLayoutChild.h: -------------------------------------------------------------------------------- 1 | extern void gtk_overlay_layout_child_set_measure ( GtkOverlayLayoutChild* child, gboolean measure ); 2 | extern gboolean gtk_overlay_layout_child_get_measure ( GtkOverlayLayoutChild* child ); 3 | extern void gtk_overlay_layout_child_set_clip_overlay ( GtkOverlayLayoutChild* child, gboolean clip_overlay ); 4 | extern gboolean gtk_overlay_layout_child_get_clip_overlay ( GtkOverlayLayoutChild* child ); 5 | -------------------------------------------------------------------------------- /headers/400-GtkPropertyExpression.h: -------------------------------------------------------------------------------- 1 | extern GParamSpec* gtk_property_expression_get_pspec ( GtkExpression* expression ); 2 | extern GtkExpression* gtk_property_expression_new ( GType this_type, GtkExpression* expression, const char* property_name ); 3 | extern GtkExpression* gtk_property_expression_new_for_pspec ( GtkExpression* expression, GParamSpec* pspec ); 4 | extern GtkExpression* gtk_property_expression_get_expression ( GtkExpression* expression ); 5 | -------------------------------------------------------------------------------- /headers/400-GtkViewport.h: -------------------------------------------------------------------------------- 1 | extern void gtk_viewport_set_child ( GtkViewport* viewport, GtkWidget* child ); 2 | extern gboolean gtk_viewport_get_scroll_to_focus ( GtkViewport* viewport ); 3 | extern GtkWidget* gtk_viewport_new ( GtkAdjustment* hadjustment, GtkAdjustment* vadjustment ); 4 | extern GtkWidget* gtk_viewport_get_child ( GtkViewport* viewport ); 5 | extern void gtk_viewport_set_scroll_to_focus ( GtkViewport* viewport, gboolean scroll_to_focus ); 6 | -------------------------------------------------------------------------------- /headers/400-GtkPasswordEntry.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_password_entry_get_show_peek_icon ( GtkPasswordEntry* entry ); 2 | extern void gtk_password_entry_set_extra_menu ( GtkPasswordEntry* entry, GMenuModel* model ); 3 | extern GMenuModel* gtk_password_entry_get_extra_menu ( GtkPasswordEntry* entry ); 4 | extern GtkWidget* gtk_password_entry_new ( void ); 5 | extern void gtk_password_entry_set_show_peek_icon ( GtkPasswordEntry* entry, gboolean show_peek_icon ); 6 | -------------------------------------------------------------------------------- /headers/400-GtkFlowBoxChild.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_flow_box_child_get_child ( GtkFlowBoxChild* self ); 2 | extern int gtk_flow_box_child_get_index ( GtkFlowBoxChild* child ); 3 | extern void gtk_flow_box_child_changed ( GtkFlowBoxChild* child ); 4 | extern GtkWidget* gtk_flow_box_child_new ( void ); 5 | extern void gtk_flow_box_child_set_child ( GtkFlowBoxChild* self, GtkWidget* child ); 6 | extern gboolean gtk_flow_box_child_is_selected ( GtkFlowBoxChild* child ); 7 | -------------------------------------------------------------------------------- /example/simple/button/link.php: -------------------------------------------------------------------------------- 1 | setChild($link); 12 | $w->widget->show(); 13 | 14 | 15 | $run = true; 16 | $m = new \PGtk\Gtk\GLib\MainLoop(); 17 | $w->connect('destroy', function ($w, $m) use (&$run) { 18 | $m->quit(); 19 | }, $m); 20 | $m->run(); 21 | -------------------------------------------------------------------------------- /headers/400-GtkStringSorter.h: -------------------------------------------------------------------------------- 1 | extern void gtk_string_sorter_set_expression ( GtkStringSorter* self, GtkExpression* expression ); 2 | extern GtkStringSorter* gtk_string_sorter_new ( GtkExpression* expression ); 3 | extern gboolean gtk_string_sorter_get_ignore_case ( GtkStringSorter* self ); 4 | extern GtkExpression* gtk_string_sorter_get_expression ( GtkStringSorter* self ); 5 | extern void gtk_string_sorter_set_ignore_case ( GtkStringSorter* self, gboolean ignore_case ); 6 | -------------------------------------------------------------------------------- /headers/400-GtkColorButton.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_color_button_new_with_rgba ( const GdkRGBA* rgba ); 2 | extern gboolean gtk_color_button_get_modal ( GtkColorButton* button ); 3 | extern GtkWidget* gtk_color_button_new ( void ); 4 | extern void gtk_color_button_set_title ( GtkColorButton* button, const char* title ); 5 | extern void gtk_color_button_set_modal ( GtkColorButton* button, gboolean modal ); 6 | extern const char* gtk_color_button_get_title ( GtkColorButton* button ); 7 | -------------------------------------------------------------------------------- /headers/400-GtkNumericSorter.h: -------------------------------------------------------------------------------- 1 | extern GtkExpression* gtk_numeric_sorter_get_expression ( GtkNumericSorter* self ); 2 | extern void gtk_numeric_sorter_set_expression ( GtkNumericSorter* self, GtkExpression* expression ); 3 | extern GtkSortType gtk_numeric_sorter_get_sort_order ( GtkNumericSorter* self ); 4 | extern GtkNumericSorter* gtk_numeric_sorter_new ( GtkExpression* expression ); 5 | extern void gtk_numeric_sorter_set_sort_order ( GtkNumericSorter* self, GtkSortType sort_order ); 6 | -------------------------------------------------------------------------------- /headers/400-GtkShortcutLabel.h: -------------------------------------------------------------------------------- 1 | extern void gtk_shortcut_label_set_accelerator ( GtkShortcutLabel* self, const char* accelerator ); 2 | extern const char* gtk_shortcut_label_get_disabled_text ( GtkShortcutLabel* self ); 3 | extern GtkWidget* gtk_shortcut_label_new ( const char* accelerator ); 4 | extern const char* gtk_shortcut_label_get_accelerator ( GtkShortcutLabel* self ); 5 | extern void gtk_shortcut_label_set_disabled_text ( GtkShortcutLabel* self, const char* disabled_text ); 6 | -------------------------------------------------------------------------------- /src/GDK/GObject.php: -------------------------------------------------------------------------------- 1 | $functionName(...$arguments); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/GLib/MainContext.php: -------------------------------------------------------------------------------- 1 | $functionName(null, ...$arguments); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /headers/400-GtkBuilderCScope.h: -------------------------------------------------------------------------------- 1 | extern void gtk_builder_cscope_add_callback_symbol ( GtkBuilderCScope* self, const char* callback_name, GCallback callback_symbol ); 2 | extern GCallback gtk_builder_cscope_lookup_callback_symbol ( GtkBuilderCScope* self, const char* callback_name ); 3 | extern void gtk_builder_cscope_add_callback_symbols ( GtkBuilderCScope* self, const char* first_callback_name, GCallback first_callback_symbol, ... ); 4 | extern GtkBuilderScope* gtk_builder_cscope_new ( void ); 5 | -------------------------------------------------------------------------------- /headers/400-GtkPopoverMenuBar.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_popover_menu_bar_remove_child ( GtkPopoverMenuBar* bar, GtkWidget* child ); 2 | extern GMenuModel* gtk_popover_menu_bar_get_menu_model ( GtkPopoverMenuBar* bar ); 3 | extern GtkWidget* gtk_popover_menu_bar_new_from_model ( GMenuModel* model ); 4 | extern gboolean gtk_popover_menu_bar_add_child ( GtkPopoverMenuBar* bar, GtkWidget* child, const char* id ); 5 | extern void gtk_popover_menu_bar_set_menu_model ( GtkPopoverMenuBar* bar, GMenuModel* model ); 6 | -------------------------------------------------------------------------------- /headers/400-GtkCellAreaBox.h: -------------------------------------------------------------------------------- 1 | extern GtkCellArea* gtk_cell_area_box_new ( void ); 2 | extern int gtk_cell_area_box_get_spacing ( GtkCellAreaBox* box ); 3 | extern void gtk_cell_area_box_pack_end ( GtkCellAreaBox* box, GtkCellRenderer* renderer, gboolean expand, gboolean align, gboolean fixed ); 4 | extern void gtk_cell_area_box_pack_start ( GtkCellAreaBox* box, GtkCellRenderer* renderer, gboolean expand, gboolean align, gboolean fixed ); 5 | extern void gtk_cell_area_box_set_spacing ( GtkCellAreaBox* box, int spacing ); 6 | -------------------------------------------------------------------------------- /headers/400-GtkGestureStylus.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_gesture_stylus_get_axes ( GtkGestureStylus* gesture, GdkAxisUse* axes, double** values ); 2 | extern GtkGesture* gtk_gesture_stylus_new ( void ); 3 | extern gboolean gtk_gesture_stylus_get_axis ( GtkGestureStylus* gesture, GdkAxisUse axis, double* value ); 4 | extern gboolean gtk_gesture_stylus_get_backlog ( GtkGestureStylus* gesture, GdkTimeCoord** backlog, guint* n_elems ); 5 | extern GdkDeviceTool* gtk_gesture_stylus_get_device_tool ( GtkGestureStylus* gesture ); 6 | -------------------------------------------------------------------------------- /headers/400-GtkLinkButton.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_link_button_get_visited ( GtkLinkButton* link_button ); 2 | extern GtkWidget* gtk_link_button_new_with_label ( const char* uri, const char* label ); 3 | extern GtkWidget* gtk_link_button_new ( const char* uri ); 4 | extern const char* gtk_link_button_get_uri ( GtkLinkButton* link_button ); 5 | extern void gtk_link_button_set_visited ( GtkLinkButton* link_button, gboolean visited ); 6 | extern void gtk_link_button_set_uri ( GtkLinkButton* link_button, const char* uri ); 7 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pgtk/gtk", 3 | "license": "MIT", 4 | "autoload": { 5 | "files": [ 6 | "./src/GLib/functions.php" 7 | ], 8 | "psr-4": { 9 | "PGtk\\Gtk\\": "src/", 10 | "Test\\PGtk\\Gtk\\": "tests/" 11 | } 12 | }, 13 | "require": { 14 | "php": "^8.1", 15 | "ext-ffi": "*" 16 | }, 17 | "require-dev": { 18 | "phpunit/phpunit": "9.*", 19 | "vimeo/psalm": "^5.5" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /headers/400-GtkEventControllerKey.h: -------------------------------------------------------------------------------- 1 | extern guint gtk_event_controller_key_get_group ( GtkEventControllerKey* controller ); 2 | extern GtkEventController* gtk_event_controller_key_new ( void ); 3 | extern GtkIMContext* gtk_event_controller_key_get_im_context ( GtkEventControllerKey* controller ); 4 | extern gboolean gtk_event_controller_key_forward ( GtkEventControllerKey* controller, GtkWidget* widget ); 5 | extern void gtk_event_controller_key_set_im_context ( GtkEventControllerKey* controller, GtkIMContext* im_context ); 6 | -------------------------------------------------------------------------------- /headers/400-GtkSizeGroup.h: -------------------------------------------------------------------------------- 1 | extern GtkSizeGroupMode gtk_size_group_get_mode ( GtkSizeGroup* size_group ); 2 | extern void gtk_size_group_add_widget ( GtkSizeGroup* size_group, GtkWidget* widget ); 3 | extern GSList* gtk_size_group_get_widgets ( GtkSizeGroup* size_group ); 4 | extern GtkSizeGroup* gtk_size_group_new ( GtkSizeGroupMode mode ); 5 | extern void gtk_size_group_set_mode ( GtkSizeGroup* size_group, GtkSizeGroupMode mode ); 6 | extern void gtk_size_group_remove_widget ( GtkSizeGroup* size_group, GtkWidget* widget ); 7 | -------------------------------------------------------------------------------- /headers/400-GtkMountOperation.h: -------------------------------------------------------------------------------- 1 | extern GtkWindow* gtk_mount_operation_get_parent ( GtkMountOperation* op ); 2 | extern gboolean gtk_mount_operation_is_showing ( GtkMountOperation* op ); 3 | extern GdkDisplay* gtk_mount_operation_get_display ( GtkMountOperation* op ); 4 | extern void gtk_mount_operation_set_parent ( GtkMountOperation* op, GtkWindow* parent ); 5 | extern GMountOperation* gtk_mount_operation_new ( GtkWindow* parent ); 6 | extern void gtk_mount_operation_set_display ( GtkMountOperation* op, GdkDisplay* display ); 7 | -------------------------------------------------------------------------------- /headers/400-GtkTextTagTable.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_text_tag_table_add ( GtkTextTagTable* table, GtkTextTag* tag ); 2 | extern int gtk_text_tag_table_get_size ( GtkTextTagTable* table ); 3 | extern void gtk_text_tag_table_foreach ( GtkTextTagTable* table, GtkTextTagTableForeach func, gpointer data ); 4 | extern GtkTextTagTable* gtk_text_tag_table_new ( void ); 5 | extern void gtk_text_tag_table_remove ( GtkTextTagTable* table, GtkTextTag* tag ); 6 | extern GtkTextTag* gtk_text_tag_table_lookup ( GtkTextTagTable* table, const char* name ); 7 | -------------------------------------------------------------------------------- /headers/400-GtkTextMark.h: -------------------------------------------------------------------------------- 1 | extern GtkTextBuffer* gtk_text_mark_get_buffer ( GtkTextMark* mark ); 2 | extern GtkTextMark* gtk_text_mark_new ( const char* name, gboolean left_gravity ); 3 | extern gboolean gtk_text_mark_get_deleted ( GtkTextMark* mark ); 4 | extern gboolean gtk_text_mark_get_left_gravity ( GtkTextMark* mark ); 5 | extern gboolean gtk_text_mark_get_visible ( GtkTextMark* mark ); 6 | extern const char* gtk_text_mark_get_name ( GtkTextMark* mark ); 7 | extern void gtk_text_mark_set_visible ( GtkTextMark* mark, gboolean setting ); 8 | -------------------------------------------------------------------------------- /headers/400-GtkWindowControls.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_window_controls_get_empty ( GtkWindowControls* self ); 2 | extern GtkPackType gtk_window_controls_get_side ( GtkWindowControls* self ); 3 | extern GtkWidget* gtk_window_controls_new ( GtkPackType side ); 4 | extern const char* gtk_window_controls_get_decoration_layout ( GtkWindowControls* self ); 5 | extern void gtk_window_controls_set_side ( GtkWindowControls* self, GtkPackType side ); 6 | extern void gtk_window_controls_set_decoration_layout ( GtkWindowControls* self, const char* layout ); 7 | -------------------------------------------------------------------------------- /src/Gtk/ComboBoxText.php: -------------------------------------------------------------------------------- 1 | gtk_combo_box_text_new())); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /headers/400-GtkAppChooserDialog.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_app_chooser_dialog_new_for_content_type ( GtkWindow* parent, GtkDialogFlags flags, const char* content_type ); 2 | extern void gtk_app_chooser_dialog_set_heading ( GtkAppChooserDialog* self, const char* heading ); 3 | extern const char* gtk_app_chooser_dialog_get_heading ( GtkAppChooserDialog* self ); 4 | extern GtkWidget* gtk_app_chooser_dialog_get_widget ( GtkAppChooserDialog* self ); 5 | extern GtkWidget* gtk_app_chooser_dialog_new ( GtkWindow* parent, GtkDialogFlags flags, GFile* file ); 6 | -------------------------------------------------------------------------------- /headers/400-GtkStatusbar.h: -------------------------------------------------------------------------------- 1 | extern guint gtk_statusbar_push ( GtkStatusbar* statusbar, guint context_id, const char* text ); 2 | extern GtkWidget* gtk_statusbar_new ( void ); 3 | extern guint gtk_statusbar_get_context_id ( GtkStatusbar* statusbar, const char* context_description ); 4 | extern void gtk_statusbar_pop ( GtkStatusbar* statusbar, guint context_id ); 5 | extern void gtk_statusbar_remove ( GtkStatusbar* statusbar, guint context_id, guint message_id ); 6 | extern void gtk_statusbar_remove_all ( GtkStatusbar* statusbar, guint context_id ); 7 | -------------------------------------------------------------------------------- /headers/400-GtkDrawingArea.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_drawing_area_new ( void ); 2 | extern void gtk_drawing_area_set_content_height ( GtkDrawingArea* self, int height ); 3 | extern int gtk_drawing_area_get_content_height ( GtkDrawingArea* self ); 4 | extern int gtk_drawing_area_get_content_width ( GtkDrawingArea* self ); 5 | extern void gtk_drawing_area_set_draw_func ( GtkDrawingArea* self, GtkDrawingAreaDrawFunc draw_func, gpointer user_data, GDestroyNotify destroy ); 6 | extern void gtk_drawing_area_set_content_width ( GtkDrawingArea* self, int width ); 7 | -------------------------------------------------------------------------------- /headers/400-GtkStringList.h: -------------------------------------------------------------------------------- 1 | extern void gtk_string_list_remove ( GtkStringList* self, guint position ); 2 | extern const char* gtk_string_list_get_string ( GtkStringList* self, guint position ); 3 | extern void gtk_string_list_append ( GtkStringList* self, const char* string ); 4 | extern GtkStringList* gtk_string_list_new ( const char* const* strings ); 5 | extern void gtk_string_list_splice ( GtkStringList* self, guint position, guint n_removals, const char* const* additions ); 6 | extern void gtk_string_list_take ( GtkStringList* self, char* string ); 7 | -------------------------------------------------------------------------------- /headers/000-type.h: -------------------------------------------------------------------------------- 1 | /* 2 | typedef char gchar; 3 | typedef int gsize; 4 | typedef int gint; 5 | typedef int guint; 6 | typedef bool gboolean; 7 | typedef unsigned char guchar; 8 | typedef long glong; 9 | typedef unsigned long gulong; 10 | typedef float gfloat; 11 | typedef double gdouble; 12 | typedef int8_t gint8; 13 | typedef uint8_t guint8; 14 | typedef int16_t gint16; 15 | typedef uint16_t guint16; 16 | typedef int32_t gint32; 17 | typedef uint32_t guint32; 18 | typedef void* gpointer; 19 | typedef guint32 gunichar; 20 | typedef signed long gssize;*/ 21 | -------------------------------------------------------------------------------- /headers/400-GtkMapListModel.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_map_list_model_has_map ( GtkMapListModel* self ); 2 | extern GListModel* gtk_map_list_model_get_model ( GtkMapListModel* self ); 3 | extern GtkMapListModel* gtk_map_list_model_new ( GListModel* model, GtkMapListModelMapFunc map_func, gpointer user_data, GDestroyNotify user_destroy ); 4 | extern void gtk_map_list_model_set_map_func ( GtkMapListModel* self, GtkMapListModelMapFunc map_func, gpointer user_data, GDestroyNotify user_destroy ); 5 | extern void gtk_map_list_model_set_model ( GtkMapListModel* self, GListModel* model ); 6 | -------------------------------------------------------------------------------- /headers/400-GtkBuilderListItemFactory.h: -------------------------------------------------------------------------------- 1 | extern const char* gtk_builder_list_item_factory_get_resource ( GtkBuilderListItemFactory* self ); 2 | extern GBytes* gtk_builder_list_item_factory_get_bytes ( GtkBuilderListItemFactory* self ); 3 | extern GtkListItemFactory* gtk_builder_list_item_factory_new_from_bytes ( GtkBuilderScope* scope, GBytes* bytes ); 4 | extern GtkListItemFactory* gtk_builder_list_item_factory_new_from_resource ( GtkBuilderScope* scope, const char* resource_path ); 5 | extern GtkBuilderScope* gtk_builder_list_item_factory_get_scope ( GtkBuilderListItemFactory* self ); 6 | -------------------------------------------------------------------------------- /headers/400-GtkPageSetupUnixDialog.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_page_setup_unix_dialog_new ( const char* title, GtkWindow* parent ); 2 | extern void gtk_page_setup_unix_dialog_set_page_setup ( GtkPageSetupUnixDialog* dialog, GtkPageSetup* page_setup ); 3 | extern GtkPageSetup* gtk_page_setup_unix_dialog_get_page_setup ( GtkPageSetupUnixDialog* dialog ); 4 | extern GtkPrintSettings* gtk_page_setup_unix_dialog_get_print_settings ( GtkPageSetupUnixDialog* dialog ); 5 | extern void gtk_page_setup_unix_dialog_set_print_settings ( GtkPageSetupUnixDialog* dialog, GtkPrintSettings* print_settings ); 6 | -------------------------------------------------------------------------------- /headers/400-GtkPopoverMenu.h: -------------------------------------------------------------------------------- 1 | extern GMenuModel* gtk_popover_menu_get_menu_model ( GtkPopoverMenu* popover ); 2 | extern GtkWidget* gtk_popover_menu_new_from_model ( GMenuModel* model ); 3 | extern GtkWidget* gtk_popover_menu_new_from_model_full ( GMenuModel* model, GtkPopoverMenuFlags flags ); 4 | extern gboolean gtk_popover_menu_add_child ( GtkPopoverMenu* popover, GtkWidget* child, const char* id ); 5 | extern void gtk_popover_menu_set_menu_model ( GtkPopoverMenu* popover, GMenuModel* model ); 6 | extern gboolean gtk_popover_menu_remove_child ( GtkPopoverMenu* popover, GtkWidget* child ); 7 | -------------------------------------------------------------------------------- /headers/400-GtkToggleButton.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_toggle_button_get_active ( GtkToggleButton* toggle_button ); 2 | extern GtkWidget* gtk_toggle_button_new_with_label ( const char* label ); 3 | extern GtkWidget* gtk_toggle_button_new ( void ); 4 | extern GtkWidget* gtk_toggle_button_new_with_mnemonic ( const char* label ); 5 | extern void gtk_toggle_button_toggled ( GtkToggleButton* toggle_button ); 6 | extern void gtk_toggle_button_set_group ( GtkToggleButton* toggle_button, GtkToggleButton* group ); 7 | extern void gtk_toggle_button_set_active ( GtkToggleButton* toggle_button, gboolean is_active ); 8 | -------------------------------------------------------------------------------- /example/simple/image/image.php: -------------------------------------------------------------------------------- 1 | getPixelSize()); 11 | $link->setPixelSize(500); 12 | var_dump($link->getPixelSize()); 13 | var_dump($link->getIconName()); 14 | $w->setChild($link); 15 | $w->widget->show(); 16 | 17 | 18 | $run = true; 19 | $m = new \PGtk\Gtk\GLib\MainLoop(); 20 | $w->connect('destroy', function ($w, $m) use (&$run) { 21 | $m->quit(); 22 | }, $m); 23 | $m->run(); 24 | -------------------------------------------------------------------------------- /headers/400-GtkApplicationWindow.h: -------------------------------------------------------------------------------- 1 | extern GtkShortcutsWindow* gtk_application_window_get_help_overlay ( GtkApplicationWindow* window ); 2 | extern gboolean gtk_application_window_get_show_menubar ( GtkApplicationWindow* window ); 3 | extern GtkWidget* gtk_application_window_new ( GtkApplication* application ); 4 | extern guint gtk_application_window_get_id ( GtkApplicationWindow* window ); 5 | extern void gtk_application_window_set_show_menubar ( GtkApplicationWindow* window, gboolean show_menubar ); 6 | extern void gtk_application_window_set_help_overlay ( GtkApplicationWindow* window, GtkShortcutsWindow* help_overlay ); 7 | -------------------------------------------------------------------------------- /headers/400-GtkDropTargetAsync.h: -------------------------------------------------------------------------------- 1 | extern void gtk_drop_target_async_reject_drop ( GtkDropTargetAsync* self, GdkDrop* drop ); 2 | extern GdkDragAction gtk_drop_target_async_get_actions ( GtkDropTargetAsync* self ); 3 | extern GtkDropTargetAsync* gtk_drop_target_async_new ( GdkContentFormats* formats, GdkDragAction actions ); 4 | extern GdkContentFormats* gtk_drop_target_async_get_formats ( GtkDropTargetAsync* self ); 5 | extern void gtk_drop_target_async_set_formats ( GtkDropTargetAsync* self, GdkContentFormats* formats ); 6 | extern void gtk_drop_target_async_set_actions ( GtkDropTargetAsync* self, GdkDragAction actions ); 7 | -------------------------------------------------------------------------------- /headers/400-GtkFixed.h: -------------------------------------------------------------------------------- 1 | extern GskTransform* gtk_fixed_get_child_transform ( GtkFixed* fixed, GtkWidget* widget ); 2 | extern GtkWidget* gtk_fixed_new ( void ); 3 | extern void gtk_fixed_move ( GtkFixed* fixed, GtkWidget* widget, double x, double y ); 4 | extern void gtk_fixed_get_child_position ( GtkFixed* fixed, GtkWidget* widget, double* x, double* y ); 5 | extern void gtk_fixed_set_child_transform ( GtkFixed* fixed, GtkWidget* widget, GskTransform* transform ); 6 | extern void gtk_fixed_remove ( GtkFixed* fixed, GtkWidget* widget ); 7 | extern void gtk_fixed_put ( GtkFixed* fixed, GtkWidget* widget, double x, double y ); 8 | -------------------------------------------------------------------------------- /headers/400-GtkBookmarkList.h: -------------------------------------------------------------------------------- 1 | extern int gtk_bookmark_list_get_io_priority ( GtkBookmarkList* self ); 2 | extern const char* gtk_bookmark_list_get_attributes ( GtkBookmarkList* self ); 3 | extern GtkBookmarkList* gtk_bookmark_list_new ( const char* filename, const char* attributes ); 4 | extern const char* gtk_bookmark_list_get_filename ( GtkBookmarkList* self ); 5 | extern void gtk_bookmark_list_set_attributes ( GtkBookmarkList* self, const char* attributes ); 6 | extern gboolean gtk_bookmark_list_is_loading ( GtkBookmarkList* self ); 7 | extern void gtk_bookmark_list_set_io_priority ( GtkBookmarkList* self, int io_priority ); 8 | -------------------------------------------------------------------------------- /headers/400-GtkFileChooserNative.h: -------------------------------------------------------------------------------- 1 | extern void gtk_file_chooser_native_set_accept_label ( GtkFileChooserNative* self, const char* accept_label ); 2 | extern const char* gtk_file_chooser_native_get_accept_label ( GtkFileChooserNative* self ); 3 | extern GtkFileChooserNative* gtk_file_chooser_native_new ( const char* title, GtkWindow* parent, GtkFileChooserAction action, const char* accept_label, const char* cancel_label ); 4 | extern const char* gtk_file_chooser_native_get_cancel_label ( GtkFileChooserNative* self ); 5 | extern void gtk_file_chooser_native_set_cancel_label ( GtkFileChooserNative* self, const char* cancel_label ); 6 | -------------------------------------------------------------------------------- /headers/400-GtkSliceListModel.h: -------------------------------------------------------------------------------- 1 | extern GtkSliceListModel* gtk_slice_list_model_new ( GListModel* model, guint offset, guint size ); 2 | extern guint gtk_slice_list_model_get_offset ( GtkSliceListModel* self ); 3 | extern guint gtk_slice_list_model_get_size ( GtkSliceListModel* self ); 4 | extern GListModel* gtk_slice_list_model_get_model ( GtkSliceListModel* self ); 5 | extern void gtk_slice_list_model_set_offset ( GtkSliceListModel* self, guint offset ); 6 | extern void gtk_slice_list_model_set_size ( GtkSliceListModel* self, guint size ); 7 | extern void gtk_slice_list_model_set_model ( GtkSliceListModel* self, GListModel* model ); 8 | -------------------------------------------------------------------------------- /headers/400-GtkTooltip.h: -------------------------------------------------------------------------------- 1 | extern void gtk_tooltip_set_icon_from_gicon ( GtkTooltip* tooltip, GIcon* gicon ); 2 | extern void gtk_tooltip_set_custom ( GtkTooltip* tooltip, GtkWidget* custom_widget ); 3 | extern void gtk_tooltip_set_icon_from_icon_name ( GtkTooltip* tooltip, const char* icon_name ); 4 | extern void gtk_tooltip_set_icon ( GtkTooltip* tooltip, GdkPaintable* paintable ); 5 | extern void gtk_tooltip_set_markup ( GtkTooltip* tooltip, const char* markup ); 6 | extern void gtk_tooltip_set_tip_area ( GtkTooltip* tooltip, const GdkRectangle* rect ); 7 | extern void gtk_tooltip_set_text ( GtkTooltip* tooltip, const char* text ); 8 | -------------------------------------------------------------------------------- /example/simple/hello_world/main.php: -------------------------------------------------------------------------------- 1 | setDefaultSize(600, 600); 8 | $w->setTitle('Hello world'); 9 | 10 | $text = new \PGtk\Gtk\Gtk\Text(); 11 | $text->getWidget()->setSizeRequest(100, 100); 12 | $w->setChild($text); 13 | $w->widget->show(); 14 | 15 | 16 | $run = true; 17 | $m = new \PGtk\Gtk\GLib\MainLoop(); 18 | $w->connect('destroy', function ($w, $m) use (&$run) { 19 | $m->quit(); 20 | }, $m); 21 | $m->run(); 22 | //while ($run) { 23 | // \PGtk\Gtk\GLib\MainContext::iteration(true); 24 | //} 25 | 26 | 27 | -------------------------------------------------------------------------------- /headers/400-GtkBoxLayout.h: -------------------------------------------------------------------------------- 1 | extern guint gtk_box_layout_get_spacing ( GtkBoxLayout* box_layout ); 2 | extern gboolean gtk_box_layout_get_homogeneous ( GtkBoxLayout* box_layout ); 3 | extern GtkBaselinePosition gtk_box_layout_get_baseline_position ( GtkBoxLayout* box_layout ); 4 | extern GtkLayoutManager* gtk_box_layout_new ( GtkOrientation orientation ); 5 | extern void gtk_box_layout_set_homogeneous ( GtkBoxLayout* box_layout, gboolean homogeneous ); 6 | extern void gtk_box_layout_set_baseline_position ( GtkBoxLayout* box_layout, GtkBaselinePosition position ); 7 | extern void gtk_box_layout_set_spacing ( GtkBoxLayout* box_layout, guint spacing ); 8 | -------------------------------------------------------------------------------- /src/Gtk/CheckButton.php: -------------------------------------------------------------------------------- 1 | gtk_check_button_new())); 17 | } else { 18 | parent::__construct(new Widget(Gtk::getFFI()->gtk_check_button_new_with_label($label))); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /headers/400-GtkFrame.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_frame_new ( const char* label ); 2 | extern float gtk_frame_get_label_align ( GtkFrame* frame ); 3 | extern const char* gtk_frame_get_label ( GtkFrame* frame ); 4 | extern GtkWidget* gtk_frame_get_child ( GtkFrame* frame ); 5 | extern void gtk_frame_set_label ( GtkFrame* frame, const char* label ); 6 | extern void gtk_frame_set_label_align ( GtkFrame* frame, float xalign ); 7 | extern GtkWidget* gtk_frame_get_label_widget ( GtkFrame* frame ); 8 | extern void gtk_frame_set_label_widget ( GtkFrame* frame, GtkWidget* label_widget ); 9 | extern void gtk_frame_set_child ( GtkFrame* frame, GtkWidget* child ); 10 | -------------------------------------------------------------------------------- /headers/400-GtkCellRendererToggle.h: -------------------------------------------------------------------------------- 1 | extern GtkCellRenderer* gtk_cell_renderer_toggle_new ( void ); 2 | extern gboolean gtk_cell_renderer_toggle_get_activatable ( GtkCellRendererToggle* toggle ); 3 | extern gboolean gtk_cell_renderer_toggle_get_active ( GtkCellRendererToggle* toggle ); 4 | extern gboolean gtk_cell_renderer_toggle_get_radio ( GtkCellRendererToggle* toggle ); 5 | extern void gtk_cell_renderer_toggle_set_radio ( GtkCellRendererToggle* toggle, gboolean radio ); 6 | extern void gtk_cell_renderer_toggle_set_activatable ( GtkCellRendererToggle* toggle, gboolean setting ); 7 | extern void gtk_cell_renderer_toggle_set_active ( GtkCellRendererToggle* toggle, gboolean setting ); 8 | -------------------------------------------------------------------------------- /headers/400-GtkCssProvider.h: -------------------------------------------------------------------------------- 1 | extern void gtk_css_provider_load_from_path ( GtkCssProvider* css_provider, const char* path ); 2 | extern void gtk_css_provider_load_from_data ( GtkCssProvider* css_provider, const char* data, gssize length ); 3 | extern GtkCssProvider* gtk_css_provider_new ( void ); 4 | extern void gtk_css_provider_load_from_file ( GtkCssProvider* css_provider, GFile* file ); 5 | extern char* gtk_css_provider_to_string ( GtkCssProvider* provider ); 6 | extern void gtk_css_provider_load_named ( GtkCssProvider* provider, const char* name, const char* variant ); 7 | extern void gtk_css_provider_load_from_resource ( GtkCssProvider* css_provider, const char* resource_path ); 8 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | 13 | 14 | tests 15 | 16 | 17 | 18 | tests/Unit 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /headers/400-GtkActionBar.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_action_bar_new ( void ); 2 | extern gboolean gtk_action_bar_get_revealed ( GtkActionBar* action_bar ); 3 | extern void gtk_action_bar_pack_end ( GtkActionBar* action_bar, GtkWidget* child ); 4 | extern void gtk_action_bar_pack_start ( GtkActionBar* action_bar, GtkWidget* child ); 5 | extern GtkWidget* gtk_action_bar_get_center_widget ( GtkActionBar* action_bar ); 6 | extern void gtk_action_bar_set_revealed ( GtkActionBar* action_bar, gboolean revealed ); 7 | extern void gtk_action_bar_remove ( GtkActionBar* action_bar, GtkWidget* child ); 8 | extern void gtk_action_bar_set_center_widget ( GtkActionBar* action_bar, GtkWidget* center_widget ); 9 | -------------------------------------------------------------------------------- /headers/400-GtkDragSource.h: -------------------------------------------------------------------------------- 1 | extern void gtk_drag_source_drag_cancel ( GtkDragSource* source ); 2 | extern GdkDragAction gtk_drag_source_get_actions ( GtkDragSource* source ); 3 | extern GdkContentProvider* gtk_drag_source_get_content ( GtkDragSource* source ); 4 | extern GtkDragSource* gtk_drag_source_new ( void ); 5 | extern void gtk_drag_source_set_actions ( GtkDragSource* source, GdkDragAction actions ); 6 | extern void gtk_drag_source_set_icon ( GtkDragSource* source, GdkPaintable* paintable, int hot_x, int hot_y ); 7 | extern void gtk_drag_source_set_content ( GtkDragSource* source, GdkContentProvider* content ); 8 | extern GdkDrag* gtk_drag_source_get_drag ( GtkDragSource* source ); 9 | -------------------------------------------------------------------------------- /headers/400-GtkExpression.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_expression_is_static ( GtkExpression* self ); 2 | extern GType gtk_expression_get_value_type ( GtkExpression* self ); 3 | extern GtkExpressionWatch* gtk_expression_bind ( GtkExpression* self, GObject* target, const char* property, GObject* this_ ); 4 | extern gboolean gtk_expression_evaluate ( GtkExpression* self, GObject* this_, GValue* value ); 5 | extern GtkExpression* gtk_expression_ref ( GtkExpression* self ); 6 | extern GtkExpressionWatch* gtk_expression_watch ( GtkExpression* self, GObject* this_, GtkExpressionNotify notify, gpointer user_data, GDestroyNotify user_destroy ); 7 | extern void gtk_expression_unref ( GtkExpression* self ); 8 | -------------------------------------------------------------------------------- /headers/400-GtkTreeExpander.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_tree_expander_new ( void ); 2 | extern GObject* gtk_tree_expander_get_item ( GtkTreeExpander* self ); 3 | extern gboolean gtk_tree_expander_get_indent_for_icon ( GtkTreeExpander* self ); 4 | extern GtkWidget* gtk_tree_expander_get_child ( GtkTreeExpander* self ); 5 | extern void gtk_tree_expander_set_child ( GtkTreeExpander* self, GtkWidget* child ); 6 | extern void gtk_tree_expander_set_indent_for_icon ( GtkTreeExpander* self, gboolean indent_for_icon ); 7 | extern void gtk_tree_expander_set_list_row ( GtkTreeExpander* self, GtkTreeListRow* list_row ); 8 | extern GtkTreeListRow* gtk_tree_expander_get_list_row ( GtkTreeExpander* self ); 9 | -------------------------------------------------------------------------------- /headers/400-GtkListItem.h: -------------------------------------------------------------------------------- 1 | extern GObject* gtk_list_item_get_item ( GtkListItem* self ); 2 | extern guint gtk_list_item_get_position ( GtkListItem* self ); 3 | extern GtkWidget* gtk_list_item_get_child ( GtkListItem* self ); 4 | extern gboolean gtk_list_item_get_activatable ( GtkListItem* self ); 5 | extern gboolean gtk_list_item_get_selectable ( GtkListItem* self ); 6 | extern gboolean gtk_list_item_get_selected ( GtkListItem* self ); 7 | extern void gtk_list_item_set_activatable ( GtkListItem* self, gboolean activatable ); 8 | extern void gtk_list_item_set_child ( GtkListItem* self, GtkWidget* child ); 9 | extern void gtk_list_item_set_selectable ( GtkListItem* self, gboolean selectable ); 10 | -------------------------------------------------------------------------------- /headers/400-GtkGridLayoutChild.h: -------------------------------------------------------------------------------- 1 | extern int gtk_grid_layout_child_get_row ( GtkGridLayoutChild* child ); 2 | extern int gtk_grid_layout_child_get_column_span ( GtkGridLayoutChild* child ); 3 | extern int gtk_grid_layout_child_get_column ( GtkGridLayoutChild* child ); 4 | extern int gtk_grid_layout_child_get_row_span ( GtkGridLayoutChild* child ); 5 | extern void gtk_grid_layout_child_set_column_span ( GtkGridLayoutChild* child, int span ); 6 | extern void gtk_grid_layout_child_set_column ( GtkGridLayoutChild* child, int column ); 7 | extern void gtk_grid_layout_child_set_row ( GtkGridLayoutChild* child, int row ); 8 | extern void gtk_grid_layout_child_set_row_span ( GtkGridLayoutChild* child, int span ); 9 | -------------------------------------------------------------------------------- /src/Gtk/ListBoxRow.php: -------------------------------------------------------------------------------- 1 | gtk_list_box_row_new())); 16 | } 17 | 18 | public function setChild(WidgetInterface $widget) 19 | { 20 | Gtk::getFFI()->gtk_list_box_row_set_child(Gtk::getFFI()->cast("GtkListBoxRow*", $this->widget->widget), Gtk::getFFI()->cast("GtkWidget*", $widget->getWidget()->widget)); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /headers/400-GtkSortListModel.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_sort_list_model_get_incremental ( GtkSortListModel* self ); 2 | extern GListModel* gtk_sort_list_model_get_model ( GtkSortListModel* self ); 3 | extern guint gtk_sort_list_model_get_pending ( GtkSortListModel* self ); 4 | extern GtkSortListModel* gtk_sort_list_model_new ( GListModel* model, GtkSorter* sorter ); 5 | extern GtkSorter* gtk_sort_list_model_get_sorter ( GtkSortListModel* self ); 6 | extern void gtk_sort_list_model_set_sorter ( GtkSortListModel* self, GtkSorter* sorter ); 7 | extern void gtk_sort_list_model_set_incremental ( GtkSortListModel* self, gboolean incremental ); 8 | extern void gtk_sort_list_model_set_model ( GtkSortListModel* self, GListModel* model ); 9 | -------------------------------------------------------------------------------- /headers/400-GtkLayoutManager.h: -------------------------------------------------------------------------------- 1 | extern GtkLayoutChild* gtk_layout_manager_get_layout_child ( GtkLayoutManager* manager, GtkWidget* child ); 2 | extern GtkWidget* gtk_layout_manager_get_widget ( GtkLayoutManager* manager ); 3 | extern GtkSizeRequestMode gtk_layout_manager_get_request_mode ( GtkLayoutManager* manager ); 4 | extern void gtk_layout_manager_allocate ( GtkLayoutManager* manager, GtkWidget* widget, int width, int height, int baseline ); 5 | extern void gtk_layout_manager_measure ( GtkLayoutManager* manager, GtkWidget* widget, GtkOrientation orientation, int for_size, int* minimum, int* natural, int* minimum_baseline, int* natural_baseline ); 6 | extern void gtk_layout_manager_layout_changed ( GtkLayoutManager* manager ); 7 | -------------------------------------------------------------------------------- /headers/400-GtkGestureSingle.h: -------------------------------------------------------------------------------- 1 | extern GdkEventSequence* gtk_gesture_single_get_current_sequence ( GtkGestureSingle* gesture ); 2 | extern guint gtk_gesture_single_get_button ( GtkGestureSingle* gesture ); 3 | extern gboolean gtk_gesture_single_get_exclusive ( GtkGestureSingle* gesture ); 4 | extern guint gtk_gesture_single_get_current_button ( GtkGestureSingle* gesture ); 5 | extern void gtk_gesture_single_set_button ( GtkGestureSingle* gesture, guint button ); 6 | extern void gtk_gesture_single_set_exclusive ( GtkGestureSingle* gesture, gboolean exclusive ); 7 | extern gboolean gtk_gesture_single_get_touch_only ( GtkGestureSingle* gesture ); 8 | extern void gtk_gesture_single_set_touch_only ( GtkGestureSingle* gesture, gboolean touch_only ); 9 | -------------------------------------------------------------------------------- /headers/400-GtkShortcut.h: -------------------------------------------------------------------------------- 1 | extern GtkShortcutAction* gtk_shortcut_get_action ( GtkShortcut* self ); 2 | extern GtkShortcut* gtk_shortcut_new_with_arguments ( GtkShortcutTrigger* trigger, GtkShortcutAction* action, const char* format_string, ... ); 3 | extern GtkShortcut* gtk_shortcut_new ( GtkShortcutTrigger* trigger, GtkShortcutAction* action ); 4 | extern GVariant* gtk_shortcut_get_arguments ( GtkShortcut* self ); 5 | extern void gtk_shortcut_set_action ( GtkShortcut* self, GtkShortcutAction* action ); 6 | extern void gtk_shortcut_set_trigger ( GtkShortcut* self, GtkShortcutTrigger* trigger ); 7 | extern void gtk_shortcut_set_arguments ( GtkShortcut* self, GVariant* args ); 8 | extern GtkShortcutTrigger* gtk_shortcut_get_trigger ( GtkShortcut* self ); 9 | -------------------------------------------------------------------------------- /headers/400-GtkTreeListRow.h: -------------------------------------------------------------------------------- 1 | extern GtkTreeListRow* gtk_tree_list_row_get_child_row ( GtkTreeListRow* self, guint position ); 2 | extern guint gtk_tree_list_row_get_depth ( GtkTreeListRow* self ); 3 | extern GListModel* gtk_tree_list_row_get_children ( GtkTreeListRow* self ); 4 | extern gboolean gtk_tree_list_row_get_expanded ( GtkTreeListRow* self ); 5 | extern guint gtk_tree_list_row_get_position ( GtkTreeListRow* self ); 6 | extern GtkTreeListRow* gtk_tree_list_row_get_parent ( GtkTreeListRow* self ); 7 | extern GObject* gtk_tree_list_row_get_item ( GtkTreeListRow* self ); 8 | extern void gtk_tree_list_row_set_expanded ( GtkTreeListRow* self, gboolean expanded ); 9 | extern gboolean gtk_tree_list_row_is_expandable ( GtkTreeListRow* self ); 10 | -------------------------------------------------------------------------------- /headers/400-GtkFilterListModel.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_filter_list_model_get_incremental ( GtkFilterListModel* self ); 2 | extern GListModel* gtk_filter_list_model_get_model ( GtkFilterListModel* self ); 3 | extern GtkFilter* gtk_filter_list_model_get_filter ( GtkFilterListModel* self ); 4 | extern GtkFilterListModel* gtk_filter_list_model_new ( GListModel* model, GtkFilter* filter ); 5 | extern void gtk_filter_list_model_set_filter ( GtkFilterListModel* self, GtkFilter* filter ); 6 | extern void gtk_filter_list_model_set_incremental ( GtkFilterListModel* self, gboolean incremental ); 7 | extern guint gtk_filter_list_model_get_pending ( GtkFilterListModel* self ); 8 | extern void gtk_filter_list_model_set_model ( GtkFilterListModel* self, GListModel* model ); 9 | -------------------------------------------------------------------------------- /src/Gtk/StackSwitcher.php: -------------------------------------------------------------------------------- 1 | gtk_stack_switcher_new())); 16 | } 17 | 18 | public function setStack(Stack $stack) 19 | { 20 | return Gtk::getFFI()->gtk_stack_switcher_set_stack( 21 | Gtk::getFFI()->cast('GtkStackSwitcher*', $this->widget->widget), 22 | Gtk::getFFI()->cast('GtkStack*', $stack->widget->widget) 23 | ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /headers/400-GtkCenterBox.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_center_box_get_end_widget ( GtkCenterBox* self ); 2 | extern GtkWidget* gtk_center_box_get_start_widget ( GtkCenterBox* self ); 3 | extern GtkBaselinePosition gtk_center_box_get_baseline_position ( GtkCenterBox* self ); 4 | extern GtkWidget* gtk_center_box_new ( void ); 5 | extern GtkWidget* gtk_center_box_get_center_widget ( GtkCenterBox* self ); 6 | extern void gtk_center_box_set_baseline_position ( GtkCenterBox* self, GtkBaselinePosition position ); 7 | extern void gtk_center_box_set_end_widget ( GtkCenterBox* self, GtkWidget* child ); 8 | extern void gtk_center_box_set_center_widget ( GtkCenterBox* self, GtkWidget* child ); 9 | extern void gtk_center_box_set_start_widget ( GtkCenterBox* self, GtkWidget* child ); 10 | -------------------------------------------------------------------------------- /headers/400-GtkTreeListModel.h: -------------------------------------------------------------------------------- 1 | extern GtkTreeListRow* gtk_tree_list_model_get_child_row ( GtkTreeListModel* self, guint position ); 2 | extern gboolean gtk_tree_list_model_get_autoexpand ( GtkTreeListModel* self ); 3 | extern GtkTreeListModel* gtk_tree_list_model_new ( GListModel* root, gboolean passthrough, gboolean autoexpand, GtkTreeListModelCreateModelFunc create_func, gpointer user_data, GDestroyNotify user_destroy ); 4 | extern void gtk_tree_list_model_set_autoexpand ( GtkTreeListModel* self, gboolean autoexpand ); 5 | extern GListModel* gtk_tree_list_model_get_model ( GtkTreeListModel* self ); 6 | extern GtkTreeListRow* gtk_tree_list_model_get_row ( GtkTreeListModel* self, guint position ); 7 | extern gboolean gtk_tree_list_model_get_passthrough ( GtkTreeListModel* self ); 8 | -------------------------------------------------------------------------------- /src/Gtk/Box.php: -------------------------------------------------------------------------------- 1 | gtk_box_new($orientation->value, $spacing))); 16 | } 17 | 18 | public function append(WidgetInterface $widget): void 19 | { 20 | Gtk::getFFI()->gtk_box_append( 21 | Gtk::getFFI()->cast($this->cast . ' *', $this->widget->widget), 22 | Gtk::getFFI()->cast('GtkWidget *', $widget->getWidget()->widget) 23 | ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /headers/400-GtkOverlay.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_overlay_new ( void ); 2 | extern void gtk_overlay_add_overlay ( GtkOverlay* overlay, GtkWidget* widget ); 3 | extern gboolean gtk_overlay_get_clip_overlay ( GtkOverlay* overlay, GtkWidget* widget ); 4 | extern void gtk_overlay_remove_overlay ( GtkOverlay* overlay, GtkWidget* widget ); 5 | extern GtkWidget* gtk_overlay_get_child ( GtkOverlay* overlay ); 6 | extern void gtk_overlay_set_child ( GtkOverlay* overlay, GtkWidget* child ); 7 | extern void gtk_overlay_set_clip_overlay ( GtkOverlay* overlay, GtkWidget* widget, gboolean clip_overlay ); 8 | extern gboolean gtk_overlay_get_measure_overlay ( GtkOverlay* overlay, GtkWidget* widget ); 9 | extern void gtk_overlay_set_measure_overlay ( GtkOverlay* overlay, GtkWidget* widget, gboolean measure ); 10 | -------------------------------------------------------------------------------- /headers/400-GtkScaleButton.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_scale_button_get_plus_button ( GtkScaleButton* button ); 2 | extern GtkWidget* gtk_scale_button_new ( double min, double max, double step, const char** icons ); 3 | extern GtkWidget* gtk_scale_button_get_minus_button ( GtkScaleButton* button ); 4 | extern GtkAdjustment* gtk_scale_button_get_adjustment ( GtkScaleButton* button ); 5 | extern double gtk_scale_button_get_value ( GtkScaleButton* button ); 6 | extern void gtk_scale_button_set_icons ( GtkScaleButton* button, const char** icons ); 7 | extern GtkWidget* gtk_scale_button_get_popup ( GtkScaleButton* button ); 8 | extern void gtk_scale_button_set_value ( GtkScaleButton* button, double value ); 9 | extern void gtk_scale_button_set_adjustment ( GtkScaleButton* button, GtkAdjustment* adjustment ); 10 | -------------------------------------------------------------------------------- /headers/400-GtkMessageDialog.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_message_dialog_new ( GtkWindow* parent, GtkDialogFlags flags, GtkMessageType type, GtkButtonsType buttons, const char* message_format, ... ); 2 | extern void gtk_message_dialog_format_secondary_markup ( GtkMessageDialog* message_dialog, const char* message_format, ... ); 3 | extern void gtk_message_dialog_format_secondary_text ( GtkMessageDialog* message_dialog, const char* message_format, ... ); 4 | extern GtkWidget* gtk_message_dialog_get_message_area ( GtkMessageDialog* message_dialog ); 5 | extern void gtk_message_dialog_set_markup ( GtkMessageDialog* message_dialog, const char* str ); 6 | extern GtkWidget* gtk_message_dialog_new_with_markup ( GtkWindow* parent, GtkDialogFlags flags, GtkMessageType type, GtkButtonsType buttons, const char* message_format, ... ); 7 | -------------------------------------------------------------------------------- /headers/400-GtkNativeDialog.h: -------------------------------------------------------------------------------- 1 | extern const char* gtk_native_dialog_get_title ( GtkNativeDialog* self ); 2 | extern gboolean gtk_native_dialog_get_modal ( GtkNativeDialog* self ); 3 | extern void gtk_native_dialog_destroy ( GtkNativeDialog* self ); 4 | extern GtkWindow* gtk_native_dialog_get_transient_for ( GtkNativeDialog* self ); 5 | extern void gtk_native_dialog_hide ( GtkNativeDialog* self ); 6 | extern void gtk_native_dialog_set_title ( GtkNativeDialog* self, const char* title ); 7 | extern gboolean gtk_native_dialog_get_visible ( GtkNativeDialog* self ); 8 | extern void gtk_native_dialog_set_modal ( GtkNativeDialog* self, gboolean modal ); 9 | extern void gtk_native_dialog_set_transient_for ( GtkNativeDialog* self, GtkWindow* parent ); 10 | extern void gtk_native_dialog_show ( GtkNativeDialog* self ); 11 | -------------------------------------------------------------------------------- /src/Gtk/ListBox.php: -------------------------------------------------------------------------------- 1 | gtk_list_box_new())); 20 | } 21 | 22 | public function append(WidgetInterface $widget): void 23 | { 24 | Gtk::getFFI()->gtk_list_box_append( 25 | Gtk::getFFI()->cast($this->cast . ' *', $this->widget->widget), 26 | Gtk::getFFI()->cast('GtkWidget *', $widget->getWidget()->widget) 27 | ); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Gtk/Enum/StackTransitionType.php: -------------------------------------------------------------------------------- 1 | widget = new Widget(Gtk::getFFI()->gtk_link_button_new($uri)); 25 | } else{ 26 | $this->widget = new Widget(Gtk::getFFI()->gtk_link_button_new_with_label($uri, $label)); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /headers/400-GtkShortcutTrigger.h: -------------------------------------------------------------------------------- 1 | extern int gtk_shortcut_trigger_compare ( gconstpointer trigger1, gconstpointer trigger2 ); 2 | extern gboolean gtk_shortcut_trigger_equal ( gconstpointer trigger1, gconstpointer trigger2 ); 3 | extern guint gtk_shortcut_trigger_hash ( gconstpointer trigger ); 4 | extern GtkShortcutTrigger* gtk_shortcut_trigger_parse_string ( const char* string ); 5 | extern char* gtk_shortcut_trigger_to_label ( GtkShortcutTrigger* self, GdkDisplay* display ); 6 | extern void gtk_shortcut_trigger_print ( GtkShortcutTrigger* self, GString* string ); 7 | extern char* gtk_shortcut_trigger_to_string ( GtkShortcutTrigger* self ); 8 | extern gboolean gtk_shortcut_trigger_print_label ( GtkShortcutTrigger* self, GdkDisplay* display, GString* string ); 9 | extern GdkKeyMatch gtk_shortcut_trigger_trigger ( GtkShortcutTrigger* self, GdkEvent* event, gboolean enable_mnemonics ); 10 | -------------------------------------------------------------------------------- /headers/400-GtkBox.h: -------------------------------------------------------------------------------- 1 | extern GtkBaselinePosition gtk_box_get_baseline_position ( GtkBox* box ); 2 | extern GtkWidget* gtk_box_new ( GtkOrientation orientation, int spacing ); 3 | extern void gtk_box_append ( GtkBox* box, GtkWidget* child ); 4 | extern void gtk_box_insert_child_after ( GtkBox* box, GtkWidget* child, GtkWidget* sibling ); 5 | extern void gtk_box_prepend ( GtkBox* box, GtkWidget* child ); 6 | extern void gtk_box_remove ( GtkBox* box, GtkWidget* child ); 7 | extern gboolean gtk_box_get_homogeneous ( GtkBox* box ); 8 | extern int gtk_box_get_spacing ( GtkBox* box ); 9 | extern void gtk_box_reorder_child_after ( GtkBox* box, GtkWidget* child, GtkWidget* sibling ); 10 | extern void gtk_box_set_baseline_position ( GtkBox* box, GtkBaselinePosition position ); 11 | extern void gtk_box_set_spacing ( GtkBox* box, int spacing ); 12 | extern void gtk_box_set_homogeneous ( GtkBox* box, gboolean homogeneous ); 13 | -------------------------------------------------------------------------------- /headers/400-GtkAspectFrame.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_aspect_frame_new ( float xalign, float yalign, float ratio, gboolean obey_child ); 2 | extern gboolean gtk_aspect_frame_get_obey_child ( GtkAspectFrame* self ); 3 | extern float gtk_aspect_frame_get_ratio ( GtkAspectFrame* self ); 4 | extern GtkWidget* gtk_aspect_frame_get_child ( GtkAspectFrame* self ); 5 | extern void gtk_aspect_frame_set_obey_child ( GtkAspectFrame* self, gboolean obey_child ); 6 | extern float gtk_aspect_frame_get_xalign ( GtkAspectFrame* self ); 7 | extern float gtk_aspect_frame_get_yalign ( GtkAspectFrame* self ); 8 | extern void gtk_aspect_frame_set_child ( GtkAspectFrame* self, GtkWidget* child ); 9 | extern void gtk_aspect_frame_set_ratio ( GtkAspectFrame* self, float ratio ); 10 | extern void gtk_aspect_frame_set_yalign ( GtkAspectFrame* self, float yalign ); 11 | extern void gtk_aspect_frame_set_xalign ( GtkAspectFrame* self, float xalign ); 12 | -------------------------------------------------------------------------------- /headers/400-GtkSingleSelection.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_single_selection_get_autoselect ( GtkSingleSelection* self ); 2 | extern GListModel* gtk_single_selection_get_model ( GtkSingleSelection* self ); 3 | extern GtkSingleSelection* gtk_single_selection_new ( GListModel* model ); 4 | extern gboolean gtk_single_selection_get_can_unselect ( GtkSingleSelection* self ); 5 | extern void gtk_single_selection_set_can_unselect ( GtkSingleSelection* self, gboolean can_unselect ); 6 | extern guint gtk_single_selection_get_selected ( GtkSingleSelection* self ); 7 | extern GObject* gtk_single_selection_get_selected_item ( GtkSingleSelection* self ); 8 | extern void gtk_single_selection_set_autoselect ( GtkSingleSelection* self, gboolean autoselect ); 9 | extern void gtk_single_selection_set_model ( GtkSingleSelection* self, GListModel* model ); 10 | extern void gtk_single_selection_set_selected ( GtkSingleSelection* self, guint position ); 11 | -------------------------------------------------------------------------------- /headers/400-GtkListBoxRow.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_list_box_row_get_activatable ( GtkListBoxRow* row ); 2 | extern void gtk_list_box_row_changed ( GtkListBoxRow* row ); 3 | extern GtkWidget* gtk_list_box_row_get_child ( GtkListBoxRow* row ); 4 | extern GtkWidget* gtk_list_box_row_new ( void ); 5 | extern int gtk_list_box_row_get_index ( GtkListBoxRow* row ); 6 | extern GtkWidget* gtk_list_box_row_get_header ( GtkListBoxRow* row ); 7 | extern gboolean gtk_list_box_row_get_selectable ( GtkListBoxRow* row ); 8 | extern gboolean gtk_list_box_row_is_selected ( GtkListBoxRow* row ); 9 | extern void gtk_list_box_row_set_child ( GtkListBoxRow* row, GtkWidget* child ); 10 | extern void gtk_list_box_row_set_header ( GtkListBoxRow* row, GtkWidget* header ); 11 | extern void gtk_list_box_row_set_activatable ( GtkListBoxRow* row, gboolean activatable ); 12 | extern void gtk_list_box_row_set_selectable ( GtkListBoxRow* row, gboolean selectable ); 13 | -------------------------------------------------------------------------------- /headers/400-GtkRecentManager.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_recent_manager_add_full ( GtkRecentManager* manager, const char* uri, const GtkRecentData* recent_data ); 2 | extern GtkRecentManager* gtk_recent_manager_new ( void ); 3 | extern gboolean gtk_recent_manager_add_item ( GtkRecentManager* manager, const char* uri ); 4 | extern GtkRecentInfo* gtk_recent_manager_lookup_item ( GtkRecentManager* manager, const char* uri, GError** error ); 5 | extern int gtk_recent_manager_purge_items ( GtkRecentManager* manager, GError** error ); 6 | extern GList* gtk_recent_manager_get_items ( GtkRecentManager* manager ); 7 | extern gboolean gtk_recent_manager_remove_item ( GtkRecentManager* manager, const char* uri, GError** error ); 8 | extern gboolean gtk_recent_manager_has_item ( GtkRecentManager* manager, const char* uri ); 9 | extern gboolean gtk_recent_manager_move_item ( GtkRecentManager* manager, const char* uri, const char* new_uri, GError** error ); 10 | -------------------------------------------------------------------------------- /src/Gtk/Image.php: -------------------------------------------------------------------------------- 1 | gtk_image_new())); 26 | } else { 27 | parent::__construct(new Widget(Gtk::getFFI()->gtk_image_new_from_file($filename))); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /psalm.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /headers/400-GtkDirectoryList.h: -------------------------------------------------------------------------------- 1 | extern const char* gtk_directory_list_get_attributes ( GtkDirectoryList* self ); 2 | extern const GError* gtk_directory_list_get_error ( GtkDirectoryList* self ); 3 | extern GFile* gtk_directory_list_get_file ( GtkDirectoryList* self ); 4 | extern GtkDirectoryList* gtk_directory_list_new ( const char* attributes, GFile* file ); 5 | extern gboolean gtk_directory_list_get_monitored ( GtkDirectoryList* self ); 6 | extern gboolean gtk_directory_list_is_loading ( GtkDirectoryList* self ); 7 | extern int gtk_directory_list_get_io_priority ( GtkDirectoryList* self ); 8 | extern void gtk_directory_list_set_attributes ( GtkDirectoryList* self, const char* attributes ); 9 | extern void gtk_directory_list_set_io_priority ( GtkDirectoryList* self, int io_priority ); 10 | extern void gtk_directory_list_set_file ( GtkDirectoryList* self, GFile* file ); 11 | extern void gtk_directory_list_set_monitored ( GtkDirectoryList* self, gboolean monitored ); 12 | -------------------------------------------------------------------------------- /headers/400-GtkDropTarget.h: -------------------------------------------------------------------------------- 1 | extern GdkDrop* gtk_drop_target_get_drop ( GtkDropTarget* self ); 2 | extern GdkDragAction gtk_drop_target_get_actions ( GtkDropTarget* self ); 3 | extern GdkContentFormats* gtk_drop_target_get_formats ( GtkDropTarget* self ); 4 | extern const GType* gtk_drop_target_get_gtypes ( GtkDropTarget* self, gsize* n_types ); 5 | extern GdkDrop* gtk_drop_target_get_current_drop ( GtkDropTarget* self ); 6 | extern GtkDropTarget* gtk_drop_target_new ( GType type, GdkDragAction actions ); 7 | extern gboolean gtk_drop_target_get_preload ( GtkDropTarget* self ); 8 | extern void gtk_drop_target_reject ( GtkDropTarget* self ); 9 | extern const GValue* gtk_drop_target_get_value ( GtkDropTarget* self ); 10 | extern void gtk_drop_target_set_gtypes ( GtkDropTarget* self, GType* types, gsize n_types ); 11 | extern void gtk_drop_target_set_actions ( GtkDropTarget* self, GdkDragAction actions ); 12 | extern void gtk_drop_target_set_preload ( GtkDropTarget* self, gboolean preload ); 13 | -------------------------------------------------------------------------------- /headers/400-GtkListView.h: -------------------------------------------------------------------------------- 1 | extern GtkListItemFactory* gtk_list_view_get_factory ( GtkListView* self ); 2 | extern GtkSelectionModel* gtk_list_view_get_model ( GtkListView* self ); 3 | extern gboolean gtk_list_view_get_enable_rubberband ( GtkListView* self ); 4 | extern GtkWidget* gtk_list_view_new ( GtkSelectionModel* model, GtkListItemFactory* factory ); 5 | extern void gtk_list_view_set_enable_rubberband ( GtkListView* self, gboolean enable_rubberband ); 6 | extern void gtk_list_view_set_model ( GtkListView* self, GtkSelectionModel* model ); 7 | extern void gtk_list_view_set_factory ( GtkListView* self, GtkListItemFactory* factory ); 8 | extern gboolean gtk_list_view_get_single_click_activate ( GtkListView* self ); 9 | extern gboolean gtk_list_view_get_show_separators ( GtkListView* self ); 10 | extern void gtk_list_view_set_show_separators ( GtkListView* self, gboolean show_separators ); 11 | extern void gtk_list_view_set_single_click_activate ( GtkListView* self, gboolean single_click_activate ); 12 | -------------------------------------------------------------------------------- /headers/400-GtkCalendar.h: -------------------------------------------------------------------------------- 1 | extern GDateTime* gtk_calendar_get_date ( GtkCalendar* self ); 2 | extern GtkWidget* gtk_calendar_new ( void ); 3 | extern gboolean gtk_calendar_get_show_day_names ( GtkCalendar* self ); 4 | extern gboolean gtk_calendar_get_show_heading ( GtkCalendar* self ); 5 | extern gboolean gtk_calendar_get_day_is_marked ( GtkCalendar* calendar, guint day ); 6 | extern void gtk_calendar_clear_marks ( GtkCalendar* calendar ); 7 | extern gboolean gtk_calendar_get_show_week_numbers ( GtkCalendar* self ); 8 | extern void gtk_calendar_set_show_day_names ( GtkCalendar* self, gboolean value ); 9 | extern void gtk_calendar_select_day ( GtkCalendar* self, GDateTime* date ); 10 | extern void gtk_calendar_set_show_week_numbers ( GtkCalendar* self, gboolean value ); 11 | extern void gtk_calendar_mark_day ( GtkCalendar* calendar, guint day ); 12 | extern void gtk_calendar_unmark_day ( GtkCalendar* calendar, guint day ); 13 | extern void gtk_calendar_set_show_heading ( GtkCalendar* self, gboolean value ); 14 | -------------------------------------------------------------------------------- /headers/400-GtkCheckButton.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_check_button_new_with_mnemonic ( const char* label ); 2 | extern GtkWidget* gtk_check_button_new_with_label ( const char* label ); 3 | extern gboolean gtk_check_button_get_active ( GtkCheckButton* self ); 4 | extern GtkWidget* gtk_check_button_new ( void ); 5 | extern gboolean gtk_check_button_get_inconsistent ( GtkCheckButton* check_button ); 6 | extern const char* gtk_check_button_get_label ( GtkCheckButton* self ); 7 | extern gboolean gtk_check_button_get_use_underline ( GtkCheckButton* self ); 8 | extern void gtk_check_button_set_active ( GtkCheckButton* self, gboolean setting ); 9 | extern void gtk_check_button_set_inconsistent ( GtkCheckButton* check_button, gboolean inconsistent ); 10 | extern void gtk_check_button_set_group ( GtkCheckButton* self, GtkCheckButton* group ); 11 | extern void gtk_check_button_set_use_underline ( GtkCheckButton* self, gboolean setting ); 12 | extern void gtk_check_button_set_label ( GtkCheckButton* self, const char* label ); 13 | -------------------------------------------------------------------------------- /headers/400-GtkMediaFile.h: -------------------------------------------------------------------------------- 1 | extern GtkMediaStream* gtk_media_file_new_for_file ( GFile* file ); 2 | extern GtkMediaStream* gtk_media_file_new ( void ); 3 | extern GtkMediaStream* gtk_media_file_new_for_input_stream ( GInputStream* stream ); 4 | extern GtkMediaStream* gtk_media_file_new_for_filename ( const char* filename ); 5 | extern GFile* gtk_media_file_get_file ( GtkMediaFile* self ); 6 | extern void gtk_media_file_clear ( GtkMediaFile* self ); 7 | extern void gtk_media_file_set_filename ( GtkMediaFile* self, const char* filename ); 8 | extern GInputStream* gtk_media_file_get_input_stream ( GtkMediaFile* self ); 9 | extern void gtk_media_file_set_file ( GtkMediaFile* self, GFile* file ); 10 | extern GtkMediaStream* gtk_media_file_new_for_resource ( const char* resource_path ); 11 | extern void gtk_media_file_set_input_stream ( GtkMediaFile* self, GInputStream* stream ); 12 | extern void gtk_media_file_set_resource ( GtkMediaFile* self, const char* resource_path ); 13 | extern void open ( GtkMediaFile* self ); 14 | -------------------------------------------------------------------------------- /src/Gtk/EntryBuffer.php: -------------------------------------------------------------------------------- 1 | gtk_entry_buffer_new($char, $char ? strlen($char) : 0))); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /headers/400-GtkCenterLayout.h: -------------------------------------------------------------------------------- 1 | extern GtkBaselinePosition gtk_center_layout_get_baseline_position ( GtkCenterLayout* self ); 2 | extern GtkWidget* gtk_center_layout_get_end_widget ( GtkCenterLayout* self ); 3 | extern GtkWidget* gtk_center_layout_get_center_widget ( GtkCenterLayout* self ); 4 | extern GtkLayoutManager* gtk_center_layout_new ( void ); 5 | extern void gtk_center_layout_set_baseline_position ( GtkCenterLayout* self, GtkBaselinePosition baseline_position ); 6 | extern GtkWidget* gtk_center_layout_get_start_widget ( GtkCenterLayout* self ); 7 | extern void gtk_center_layout_set_end_widget ( GtkCenterLayout* self, GtkWidget* widget ); 8 | extern GtkOrientation gtk_center_layout_get_orientation ( GtkCenterLayout* self ); 9 | extern void gtk_center_layout_set_orientation ( GtkCenterLayout* self, GtkOrientation orientation ); 10 | extern void gtk_center_layout_set_center_widget ( GtkCenterLayout* self, GtkWidget* widget ); 11 | extern void gtk_center_layout_set_start_widget ( GtkCenterLayout* self, GtkWidget* widget ); 12 | -------------------------------------------------------------------------------- /headers/400-GtkComboBoxText.h: -------------------------------------------------------------------------------- 1 | extern void gtk_combo_box_text_append ( GtkComboBoxText* combo_box, const char* id, const char* text ); 2 | extern GtkWidget* gtk_combo_box_text_new ( void ); 3 | extern void gtk_combo_box_text_append_text ( GtkComboBoxText* combo_box, const char* text ); 4 | extern char* gtk_combo_box_text_get_active_text ( GtkComboBoxText* combo_box ); 5 | extern void gtk_combo_box_text_insert ( GtkComboBoxText* combo_box, int position, const char* id, const char* text ); 6 | extern GtkWidget* gtk_combo_box_text_new_with_entry ( void ); 7 | extern void gtk_combo_box_text_insert_text ( GtkComboBoxText* combo_box, int position, const char* text ); 8 | extern void gtk_combo_box_text_prepend ( GtkComboBoxText* combo_box, const char* id, const char* text ); 9 | extern void gtk_combo_box_text_prepend_text ( GtkComboBoxText* combo_box, const char* text ); 10 | extern void gtk_combo_box_text_remove ( GtkComboBoxText* combo_box, int position ); 11 | extern void gtk_combo_box_text_remove_all ( GtkComboBoxText* combo_box ); 12 | -------------------------------------------------------------------------------- /headers/400-GtkPrintContext.h: -------------------------------------------------------------------------------- 1 | extern cairo_t* gtk_print_context_get_cairo_context ( GtkPrintContext* context ); 2 | extern PangoLayout* gtk_print_context_create_pango_layout ( GtkPrintContext* context ); 3 | extern PangoContext* gtk_print_context_create_pango_context ( GtkPrintContext* context ); 4 | extern double gtk_print_context_get_dpi_y ( GtkPrintContext* context ); 5 | extern gboolean gtk_print_context_get_hard_margins ( GtkPrintContext* context, double* top, double* bottom, double* left, double* right ); 6 | extern double gtk_print_context_get_height ( GtkPrintContext* context ); 7 | extern double gtk_print_context_get_dpi_x ( GtkPrintContext* context ); 8 | extern GtkPageSetup* gtk_print_context_get_page_setup ( GtkPrintContext* context ); 9 | extern double gtk_print_context_get_width ( GtkPrintContext* context ); 10 | extern void gtk_print_context_set_cairo_context ( GtkPrintContext* context, cairo_t* cr, double dpi_x, double dpi_y ); 11 | extern PangoFontMap* gtk_print_context_get_pango_fontmap ( GtkPrintContext* context ); 12 | -------------------------------------------------------------------------------- /headers/400-GtkButton.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_button_new_with_label ( const char* label ); 2 | extern GtkWidget* gtk_button_new_with_mnemonic ( const char* label ); 3 | extern GtkWidget* gtk_button_new ( void ); 4 | extern GtkWidget* gtk_button_new_from_icon_name ( const char* icon_name ); 5 | extern gboolean gtk_button_get_use_underline ( GtkButton* button ); 6 | extern GtkWidget* gtk_button_get_child ( GtkButton* button ); 7 | extern gboolean gtk_button_get_has_frame ( GtkButton* button ); 8 | extern const char* gtk_button_get_icon_name ( GtkButton* button ); 9 | extern const char* gtk_button_get_label ( GtkButton* button ); 10 | extern void gtk_button_set_child ( GtkButton* button, GtkWidget* child ); 11 | extern void gtk_button_set_icon_name ( GtkButton* button, const char* icon_name ); 12 | extern void gtk_button_set_label ( GtkButton* button, const char* label ); 13 | extern void gtk_button_set_has_frame ( GtkButton* button, gboolean has_frame ); 14 | extern void gtk_button_set_use_underline ( GtkButton* button, gboolean use_underline ); 15 | -------------------------------------------------------------------------------- /src/Gtk/Text.php: -------------------------------------------------------------------------------- 1 | buffer === null) { 25 | $entry = Gtk::getFFI()->gtk_text_new(); 26 | } else { 27 | $entry = Gtk::getFFI()->gtk_text_new_with_buffer( 28 | Gtk::getFFI()->cast("GtkEntryBuffer*", $this->buffer->getWidget()->widget) 29 | ); 30 | } 31 | parent::__construct(new Widget($entry)); 32 | } 33 | 34 | } -------------------------------------------------------------------------------- /headers/400-GtkStackPage.h: -------------------------------------------------------------------------------- 1 | extern const char* gtk_stack_page_get_name ( GtkStackPage* self ); 2 | extern gboolean gtk_stack_page_get_needs_attention ( GtkStackPage* self ); 3 | extern const char* gtk_stack_page_get_icon_name ( GtkStackPage* self ); 4 | extern GtkWidget* gtk_stack_page_get_child ( GtkStackPage* self ); 5 | extern gboolean gtk_stack_page_get_use_underline ( GtkStackPage* self ); 6 | extern gboolean gtk_stack_page_get_visible ( GtkStackPage* self ); 7 | extern void gtk_stack_page_set_icon_name ( GtkStackPage* self, const char* setting ); 8 | extern const char* gtk_stack_page_get_title ( GtkStackPage* self ); 9 | extern void gtk_stack_page_set_name ( GtkStackPage* self, const char* setting ); 10 | extern void gtk_stack_page_set_needs_attention ( GtkStackPage* self, gboolean setting ); 11 | extern void gtk_stack_page_set_title ( GtkStackPage* self, const char* setting ); 12 | extern void gtk_stack_page_set_use_underline ( GtkStackPage* self, gboolean setting ); 13 | extern void gtk_stack_page_set_visible ( GtkStackPage* self, gboolean visible ); 14 | -------------------------------------------------------------------------------- /headers/400-GtkEntryBuffer.h: -------------------------------------------------------------------------------- 1 | extern GtkEntryBuffer* gtk_entry_buffer_new ( const char* initial_chars, int n_initial_chars ); 2 | extern guint gtk_entry_buffer_delete_text ( GtkEntryBuffer* buffer, guint position, int n_chars ); 3 | extern void gtk_entry_buffer_emit_inserted_text ( GtkEntryBuffer* buffer, guint position, const char* chars, guint n_chars ); 4 | extern void gtk_entry_buffer_emit_deleted_text ( GtkEntryBuffer* buffer, guint position, guint n_chars ); 5 | extern guint gtk_entry_buffer_get_length ( GtkEntryBuffer* buffer ); 6 | extern int gtk_entry_buffer_get_max_length ( GtkEntryBuffer* buffer ); 7 | extern const char* gtk_entry_buffer_get_text ( GtkEntryBuffer* buffer ); 8 | extern gsize gtk_entry_buffer_get_bytes ( GtkEntryBuffer* buffer ); 9 | extern void gtk_entry_buffer_set_text ( GtkEntryBuffer* buffer, const char* chars, int n_chars ); 10 | extern void gtk_entry_buffer_set_max_length ( GtkEntryBuffer* buffer, int max_length ); 11 | extern guint gtk_entry_buffer_insert_text ( GtkEntryBuffer* buffer, guint position, const char* chars, int n_chars ); 12 | -------------------------------------------------------------------------------- /headers/400-GtkTreeModelSort.h: -------------------------------------------------------------------------------- 1 | extern GtkTreeModel* gtk_tree_model_sort_new_with_model ( GtkTreeModel* child_model ); 2 | extern GtkTreePath* gtk_tree_model_sort_convert_path_to_child_path ( GtkTreeModelSort* tree_model_sort, GtkTreePath* sorted_path ); 3 | extern void gtk_tree_model_sort_convert_iter_to_child_iter ( GtkTreeModelSort* tree_model_sort, GtkTreeIter* child_iter, GtkTreeIter* sorted_iter ); 4 | extern gboolean gtk_tree_model_sort_convert_child_iter_to_iter ( GtkTreeModelSort* tree_model_sort, GtkTreeIter* sort_iter, GtkTreeIter* child_iter ); 5 | extern void gtk_tree_model_sort_clear_cache ( GtkTreeModelSort* tree_model_sort ); 6 | extern GtkTreePath* gtk_tree_model_sort_convert_child_path_to_path ( GtkTreeModelSort* tree_model_sort, GtkTreePath* child_path ); 7 | extern GtkTreeModel* gtk_tree_model_sort_get_model ( GtkTreeModelSort* tree_model ); 8 | extern gboolean gtk_tree_model_sort_iter_is_valid ( GtkTreeModelSort* tree_model_sort, GtkTreeIter* iter ); 9 | extern void gtk_tree_model_sort_reset_default_sort_func ( GtkTreeModelSort* tree_model_sort ); 10 | -------------------------------------------------------------------------------- /headers/400-GtkVideo.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_video_new_for_file ( GFile* file ); 2 | extern GtkWidget* gtk_video_new_for_filename ( const char* filename ); 3 | extern GtkWidget* gtk_video_new ( void ); 4 | extern GtkWidget* gtk_video_new_for_media_stream ( GtkMediaStream* stream ); 5 | extern GFile* gtk_video_get_file ( GtkVideo* self ); 6 | extern gboolean gtk_video_get_loop ( GtkVideo* self ); 7 | extern GtkMediaStream* gtk_video_get_media_stream ( GtkVideo* self ); 8 | extern gboolean gtk_video_get_autoplay ( GtkVideo* self ); 9 | extern GtkWidget* gtk_video_new_for_resource ( const char* resource_path ); 10 | extern void gtk_video_set_file ( GtkVideo* self, GFile* file ); 11 | extern void gtk_video_set_autoplay ( GtkVideo* self, gboolean autoplay ); 12 | extern void gtk_video_set_filename ( GtkVideo* self, const char* filename ); 13 | extern void gtk_video_set_media_stream ( GtkVideo* self, GtkMediaStream* stream ); 14 | extern void gtk_video_set_resource ( GtkVideo* self, const char* resource_path ); 15 | extern void gtk_video_set_loop ( GtkVideo* self, gboolean loop ); 16 | -------------------------------------------------------------------------------- /headers/400-GtkCellView.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_cell_view_new_with_text ( const char* text ); 2 | extern GtkWidget* gtk_cell_view_new_with_markup ( const char* markup ); 3 | extern GtkWidget* gtk_cell_view_new ( void ); 4 | extern GtkWidget* gtk_cell_view_new_with_context ( GtkCellArea* area, GtkCellAreaContext* context ); 5 | extern gboolean gtk_cell_view_get_draw_sensitive ( GtkCellView* cell_view ); 6 | extern gboolean gtk_cell_view_get_fit_model ( GtkCellView* cell_view ); 7 | extern GtkTreeModel* gtk_cell_view_get_model ( GtkCellView* cell_view ); 8 | extern GtkWidget* gtk_cell_view_new_with_texture ( GdkTexture* texture ); 9 | extern GtkTreePath* gtk_cell_view_get_displayed_row ( GtkCellView* cell_view ); 10 | extern void gtk_cell_view_set_displayed_row ( GtkCellView* cell_view, GtkTreePath* path ); 11 | extern void gtk_cell_view_set_draw_sensitive ( GtkCellView* cell_view, gboolean draw_sensitive ); 12 | extern void gtk_cell_view_set_model ( GtkCellView* cell_view, GtkTreeModel* model ); 13 | extern void gtk_cell_view_set_fit_model ( GtkCellView* cell_view, gboolean fit_model ); 14 | -------------------------------------------------------------------------------- /example/layout_containers/stack/StackWindow.php: -------------------------------------------------------------------------------- 1 | setTitle('Stack Demo'); 9 | $vbox = new \PGtk\Gtk\Gtk\Box(\PGtk\Gtk\Gtk\Enum\Orientation::vertical, 6); 10 | $this->setChild($vbox); 11 | 12 | $stack = new \PGtk\Gtk\Gtk\Stack(); 13 | $stack->setTransitionType(\PGtk\Gtk\Gtk\Enum\StackTransitionType::rotateRight); 14 | $stack->setTransitionDuration(500); 15 | 16 | $checkbutton = new \PGtk\Gtk\Gtk\CheckButton("Click me!"); 17 | $stack->addTitled($checkbutton, "check", "Check Button"); 18 | 19 | 20 | $label = new \PGtk\Gtk\Gtk\Label(''); 21 | $label->setMarkup('A fancy label'); 22 | $stack->addTitled($label, "label", "A label"); 23 | 24 | $stackSwitcher = new \PGtk\Gtk\Gtk\StackSwitcher(); 25 | $stackSwitcher->setStack($stack); 26 | 27 | $vbox->append($stackSwitcher); 28 | $vbox->append($stack); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /headers/400-GtkConstraintGuide.h: -------------------------------------------------------------------------------- 1 | extern GtkConstraintGuide* gtk_constraint_guide_new ( void ); 2 | extern void gtk_constraint_guide_get_max_size ( GtkConstraintGuide* guide, int* width, int* height ); 3 | extern void gtk_constraint_guide_get_min_size ( GtkConstraintGuide* guide, int* width, int* height ); 4 | extern const char* gtk_constraint_guide_get_name ( GtkConstraintGuide* guide ); 5 | extern void gtk_constraint_guide_set_max_size ( GtkConstraintGuide* guide, int width, int height ); 6 | extern GtkConstraintStrength gtk_constraint_guide_get_strength ( GtkConstraintGuide* guide ); 7 | extern void gtk_constraint_guide_set_min_size ( GtkConstraintGuide* guide, int width, int height ); 8 | extern void gtk_constraint_guide_set_name ( GtkConstraintGuide* guide, const char* name ); 9 | extern void gtk_constraint_guide_get_nat_size ( GtkConstraintGuide* guide, int* width, int* height ); 10 | extern void gtk_constraint_guide_set_nat_size ( GtkConstraintGuide* guide, int width, int height ); 11 | extern void gtk_constraint_guide_set_strength ( GtkConstraintGuide* guide, GtkConstraintStrength strength ); 12 | -------------------------------------------------------------------------------- /headers/400-GtkDialog.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_dialog_new_with_buttons ( const char* title, GtkWindow* parent, GtkDialogFlags flags, const char* first_button_text, ... ); 2 | extern void gtk_dialog_add_action_widget ( GtkDialog* dialog, GtkWidget* child, int response_id ); 3 | extern GtkWidget* gtk_dialog_add_button ( GtkDialog* dialog, const char* button_text, int response_id ); 4 | extern GtkWidget* gtk_dialog_new ( void ); 5 | extern GtkWidget* gtk_dialog_get_header_bar ( GtkDialog* dialog ); 6 | extern void gtk_dialog_add_buttons ( GtkDialog* dialog, const char* first_button_text, ... ); 7 | extern GtkWidget* gtk_dialog_get_widget_for_response ( GtkDialog* dialog, int response_id ); 8 | extern GtkWidget* gtk_dialog_get_content_area ( GtkDialog* dialog ); 9 | extern void gtk_dialog_response ( GtkDialog* dialog, int response_id ); 10 | extern int gtk_dialog_get_response_for_widget ( GtkDialog* dialog, GtkWidget* widget ); 11 | extern void gtk_dialog_set_default_response ( GtkDialog* dialog, int response_id ); 12 | extern void gtk_dialog_set_response_sensitive ( GtkDialog* dialog, int response_id, gboolean setting ); 13 | -------------------------------------------------------------------------------- /src/Gtk/ToggleButton.php: -------------------------------------------------------------------------------- 1 | widget = new Widget(Gtk::getFFI()->gtk_toggle_button_new()); 24 | }else{ 25 | $this->widget = new Widget(Gtk::getFFI()->gtk_toggle_button_new_with_label($label)); 26 | } 27 | } 28 | 29 | public function setGroup(ToggleButton $toggleButton): void 30 | { 31 | Gtk::getFFI()->gtk_toggle_button_set_group( 32 | Gtk::getFFI()->cast('GtkToggleButton*', $this->widget->widget), 33 | Gtk::getFFI()->cast('GtkToggleButton*', $toggleButton->widget->widget) 34 | ); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /headers/400-GtkGridView.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_grid_view_new ( GtkSelectionModel* model, GtkListItemFactory* factory ); 2 | extern guint gtk_grid_view_get_max_columns ( GtkGridView* self ); 3 | extern GtkListItemFactory* gtk_grid_view_get_factory ( GtkGridView* self ); 4 | extern gboolean gtk_grid_view_get_enable_rubberband ( GtkGridView* self ); 5 | extern GtkSelectionModel* gtk_grid_view_get_model ( GtkGridView* self ); 6 | extern gboolean gtk_grid_view_get_single_click_activate ( GtkGridView* self ); 7 | extern guint gtk_grid_view_get_min_columns ( GtkGridView* self ); 8 | extern void gtk_grid_view_set_enable_rubberband ( GtkGridView* self, gboolean enable_rubberband ); 9 | extern void gtk_grid_view_set_factory ( GtkGridView* self, GtkListItemFactory* factory ); 10 | extern void gtk_grid_view_set_max_columns ( GtkGridView* self, guint max_columns ); 11 | extern void gtk_grid_view_set_min_columns ( GtkGridView* self, guint min_columns ); 12 | extern void gtk_grid_view_set_single_click_activate ( GtkGridView* self, gboolean single_click_activate ); 13 | extern void gtk_grid_view_set_model ( GtkGridView* self, GtkSelectionModel* model ); 14 | -------------------------------------------------------------------------------- /headers/400-GtkGridLayout.h: -------------------------------------------------------------------------------- 1 | extern int gtk_grid_layout_get_baseline_row ( GtkGridLayout* grid ); 2 | extern gboolean gtk_grid_layout_get_column_homogeneous ( GtkGridLayout* grid ); 3 | extern GtkLayoutManager* gtk_grid_layout_new ( void ); 4 | extern gboolean gtk_grid_layout_get_row_homogeneous ( GtkGridLayout* grid ); 5 | extern GtkBaselinePosition gtk_grid_layout_get_row_baseline_position ( GtkGridLayout* grid, int row ); 6 | extern guint gtk_grid_layout_get_column_spacing ( GtkGridLayout* grid ); 7 | extern guint gtk_grid_layout_get_row_spacing ( GtkGridLayout* grid ); 8 | extern void gtk_grid_layout_set_column_spacing ( GtkGridLayout* grid, guint spacing ); 9 | extern void gtk_grid_layout_set_column_homogeneous ( GtkGridLayout* grid, gboolean homogeneous ); 10 | extern void gtk_grid_layout_set_baseline_row ( GtkGridLayout* grid, int row ); 11 | extern void gtk_grid_layout_set_row_baseline_position ( GtkGridLayout* grid, int row, GtkBaselinePosition pos ); 12 | extern void gtk_grid_layout_set_row_spacing ( GtkGridLayout* grid, guint spacing ); 13 | extern void gtk_grid_layout_set_row_homogeneous ( GtkGridLayout* grid, gboolean homogeneous ); 14 | -------------------------------------------------------------------------------- /headers/400-GtkProgressBar.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_progress_bar_get_inverted ( GtkProgressBar* pbar ); 2 | extern PangoEllipsizeMode gtk_progress_bar_get_ellipsize ( GtkProgressBar* pbar ); 3 | extern double gtk_progress_bar_get_fraction ( GtkProgressBar* pbar ); 4 | extern GtkWidget* gtk_progress_bar_new ( void ); 5 | extern gboolean gtk_progress_bar_get_show_text ( GtkProgressBar* pbar ); 6 | extern const char* gtk_progress_bar_get_text ( GtkProgressBar* pbar ); 7 | extern void gtk_progress_bar_pulse ( GtkProgressBar* pbar ); 8 | extern void gtk_progress_bar_set_ellipsize ( GtkProgressBar* pbar, PangoEllipsizeMode mode ); 9 | extern double gtk_progress_bar_get_pulse_step ( GtkProgressBar* pbar ); 10 | extern void gtk_progress_bar_set_fraction ( GtkProgressBar* pbar, double fraction ); 11 | extern void gtk_progress_bar_set_pulse_step ( GtkProgressBar* pbar, double fraction ); 12 | extern void gtk_progress_bar_set_inverted ( GtkProgressBar* pbar, gboolean inverted ); 13 | extern void gtk_progress_bar_set_show_text ( GtkProgressBar* pbar, gboolean show_text ); 14 | extern void gtk_progress_bar_set_text ( GtkProgressBar* pbar, const char* text ); 15 | -------------------------------------------------------------------------------- /src/Gtk/ButtonIcon.php: -------------------------------------------------------------------------------- 1 | gtk_button_new_from_icon_name($name))); 26 | } 27 | 28 | public function setChild(WidgetInterface $widget) 29 | { 30 | Gtk::getFFI()->gtk_button_set_child( 31 | Gtk::getFFI()->cast($this->cast . ' *', $this->widget->widget), 32 | Gtk::getFFI()->cast("GtkWidget*", $widget->getWidget()->widget) 33 | ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /tests/Unit/Gtk/WindowTest.php: -------------------------------------------------------------------------------- 1 | assertNull($win->getTitle()); 15 | $this->assertTrue((boolean)$win->getResizable()); 16 | $this->assertEquals( 17 | [ 18 | 'width' => 0, 19 | 'height' => 0 20 | ], 21 | $win->getDefaultSize() 22 | ); 23 | $win->setTitle('title'); 24 | $win->setDefaultSize(400, 400); 25 | $win->fullscreen(); 26 | $win->unfullscreen(); 27 | $win->setResizable(false); 28 | 29 | $this->assertFalse((boolean)$win->getResizable()); 30 | $this->assertEquals('title', $win->getTitle()); 31 | $this->assertEquals( 32 | [ 33 | 'width' => 400, 34 | 'height' => 400 35 | ], 36 | $win->getDefaultSize() 37 | ); 38 | 39 | $win->destroy(); 40 | } 41 | } -------------------------------------------------------------------------------- /src/Gtk/Widget.php: -------------------------------------------------------------------------------- 1 | GObject = new GObject($this->widget); 26 | } 27 | 28 | public function __call(string $name, array $arguments) 29 | { 30 | $functionName = 'gtk_widget_' . strtolower(preg_replace('~([A-Z])~', '_$1', $name)); 31 | $cast = "GtkWidget *"; 32 | 33 | return Gtk::getFFI()->$functionName(Gtk::getFFI()->cast($cast, $this->widget), ...$arguments); 34 | } 35 | } -------------------------------------------------------------------------------- /src/Gtk/Stack.php: -------------------------------------------------------------------------------- 1 | gtk_stack_new())); 20 | } 21 | 22 | public function addTitled(WidgetInterface $widget, string $name, string $title) 23 | { 24 | return Gtk::getFFI()->gtk_stack_add_titled( 25 | Gtk::getFFI()->cast('GtkStack*', $this->widget->widget), 26 | Gtk::getFFI()->cast('GtkWidget*', $widget->getWidget()->widget), 27 | $name, $title 28 | ); 29 | } 30 | 31 | public function setTransitionType(StackTransitionType $type) 32 | { 33 | return Gtk::getFFI()->gtk_stack_set_transition_type( 34 | Gtk::getFFI()->cast('GtkStack*', $this->widget->widget), 35 | $type->value 36 | ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /headers/400-GtkLevelBar.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_level_bar_new_for_interval ( double min_value, double max_value ); 2 | extern void gtk_level_bar_add_offset_value ( GtkLevelBar* self, const char* name, double value ); 3 | extern gboolean gtk_level_bar_get_inverted ( GtkLevelBar* self ); 4 | extern GtkWidget* gtk_level_bar_new ( void ); 5 | extern GtkLevelBarMode gtk_level_bar_get_mode ( GtkLevelBar* self ); 6 | extern gboolean gtk_level_bar_get_offset_value ( GtkLevelBar* self, const char* name, double* value ); 7 | extern double gtk_level_bar_get_min_value ( GtkLevelBar* self ); 8 | extern double gtk_level_bar_get_max_value ( GtkLevelBar* self ); 9 | extern double gtk_level_bar_get_value ( GtkLevelBar* self ); 10 | extern void gtk_level_bar_set_max_value ( GtkLevelBar* self, double value ); 11 | extern void gtk_level_bar_remove_offset_value ( GtkLevelBar* self, const char* name ); 12 | extern void gtk_level_bar_set_inverted ( GtkLevelBar* self, gboolean inverted ); 13 | extern void gtk_level_bar_set_mode ( GtkLevelBar* self, GtkLevelBarMode mode ); 14 | extern void gtk_level_bar_set_min_value ( GtkLevelBar* self, double value ); 15 | extern void gtk_level_bar_set_value ( GtkLevelBar* self, double value ); 16 | -------------------------------------------------------------------------------- /headers/400-GtkAppChooserButton.h: -------------------------------------------------------------------------------- 1 | extern void gtk_app_chooser_button_append_separator ( GtkAppChooserButton* self ); 2 | extern gboolean gtk_app_chooser_button_get_modal ( GtkAppChooserButton* self ); 3 | extern GtkWidget* gtk_app_chooser_button_new ( const char* content_type ); 4 | extern const char* gtk_app_chooser_button_get_heading ( GtkAppChooserButton* self ); 5 | extern void gtk_app_chooser_button_append_custom_item ( GtkAppChooserButton* self, const char* name, const char* label, GIcon* icon ); 6 | extern gboolean gtk_app_chooser_button_get_show_default_item ( GtkAppChooserButton* self ); 7 | extern gboolean gtk_app_chooser_button_get_show_dialog_item ( GtkAppChooserButton* self ); 8 | extern void gtk_app_chooser_button_set_active_custom_item ( GtkAppChooserButton* self, const char* name ); 9 | extern void gtk_app_chooser_button_set_modal ( GtkAppChooserButton* self, gboolean modal ); 10 | extern void gtk_app_chooser_button_set_heading ( GtkAppChooserButton* self, const char* heading ); 11 | extern void gtk_app_chooser_button_set_show_dialog_item ( GtkAppChooserButton* self, gboolean setting ); 12 | extern void gtk_app_chooser_button_set_show_default_item ( GtkAppChooserButton* self, gboolean setting ); 13 | -------------------------------------------------------------------------------- /headers/400-GtkCellAreaContext.h: -------------------------------------------------------------------------------- 1 | extern void gtk_cell_area_context_allocate ( GtkCellAreaContext* context, int width, int height ); 2 | extern void gtk_cell_area_context_get_allocation ( GtkCellAreaContext* context, int* width, int* height ); 3 | extern void gtk_cell_area_context_get_preferred_height ( GtkCellAreaContext* context, int* minimum_height, int* natural_height ); 4 | extern GtkCellArea* gtk_cell_area_context_get_area ( GtkCellAreaContext* context ); 5 | extern void gtk_cell_area_context_get_preferred_width ( GtkCellAreaContext* context, int* minimum_width, int* natural_width ); 6 | extern void gtk_cell_area_context_push_preferred_height ( GtkCellAreaContext* context, int minimum_height, int natural_height ); 7 | extern void gtk_cell_area_context_push_preferred_width ( GtkCellAreaContext* context, int minimum_width, int natural_width ); 8 | extern void gtk_cell_area_context_get_preferred_height_for_width ( GtkCellAreaContext* context, int width, int* minimum_height, int* natural_height ); 9 | extern void gtk_cell_area_context_get_preferred_width_for_height ( GtkCellAreaContext* context, int height, int* minimum_width, int* natural_width ); 10 | extern void gtk_cell_area_context_reset ( GtkCellAreaContext* context ); 11 | -------------------------------------------------------------------------------- /headers/400-GtkConstraintLayout.h: -------------------------------------------------------------------------------- 1 | extern void gtk_constraint_layout_add_constraint ( GtkConstraintLayout* layout, GtkConstraint* constraint ); 2 | extern GtkLayoutManager* gtk_constraint_layout_new ( void ); 3 | extern GList* gtk_constraint_layout_add_constraints_from_description ( GtkConstraintLayout* layout, const char* const* lines, gsize n_lines, int hspacing, int vspacing, GError** error, const char* first_view, ... ); 4 | extern GList* gtk_constraint_layout_add_constraints_from_descriptionv ( GtkConstraintLayout* layout, const char* const* lines, gsize n_lines, int hspacing, int vspacing, GHashTable* views, GError** error ); 5 | extern GListModel* gtk_constraint_layout_observe_constraints ( GtkConstraintLayout* layout ); 6 | extern void gtk_constraint_layout_add_guide ( GtkConstraintLayout* layout, GtkConstraintGuide* guide ); 7 | extern void gtk_constraint_layout_remove_constraint ( GtkConstraintLayout* layout, GtkConstraint* constraint ); 8 | extern GListModel* gtk_constraint_layout_observe_guides ( GtkConstraintLayout* layout ); 9 | extern void gtk_constraint_layout_remove_all_constraints ( GtkConstraintLayout* layout ); 10 | extern void gtk_constraint_layout_remove_guide ( GtkConstraintLayout* layout, GtkConstraintGuide* guide ); 11 | -------------------------------------------------------------------------------- /headers/400-GtkEventController.h: -------------------------------------------------------------------------------- 1 | extern guint32 gtk_event_controller_get_current_event_time ( GtkEventController* controller ); 2 | extern GdkEvent* gtk_event_controller_get_current_event ( GtkEventController* controller ); 3 | extern GdkDevice* gtk_event_controller_get_current_event_device ( GtkEventController* controller ); 4 | extern GdkModifierType gtk_event_controller_get_current_event_state ( GtkEventController* controller ); 5 | extern GtkPropagationLimit gtk_event_controller_get_propagation_limit ( GtkEventController* controller ); 6 | extern void gtk_event_controller_set_name ( GtkEventController* controller, const char* name ); 7 | extern GtkPropagationPhase gtk_event_controller_get_propagation_phase ( GtkEventController* controller ); 8 | extern GtkWidget* gtk_event_controller_get_widget ( GtkEventController* controller ); 9 | extern const char* gtk_event_controller_get_name ( GtkEventController* controller ); 10 | extern void gtk_event_controller_reset ( GtkEventController* controller ); 11 | extern void gtk_event_controller_set_propagation_limit ( GtkEventController* controller, GtkPropagationLimit limit ); 12 | extern void gtk_event_controller_set_propagation_phase ( GtkEventController* controller, GtkPropagationPhase phase ); 13 | -------------------------------------------------------------------------------- /src/Gtk/Entry.php: -------------------------------------------------------------------------------- 1 | buffer === null) { 19 | $entry = Gtk::getFFI()->gtk_entry_new(); 20 | } else { 21 | $entry = Gtk::getFFI()->gtk_entry_new_with_buffer( 22 | Gtk::getFFI()->cast("GtkEntryBuffer*", $this->buffer->getWidget()->widget) 23 | ); 24 | } 25 | parent::__construct(new Widget($entry)); 26 | } 27 | 28 | public function setBuffer(EntryBuffer $buffer) 29 | { 30 | Gtk::getFFI()->gtk_entry_set_buffer( 31 | Gtk::getFFI()->cast($this->cast . ' *', $this->widget->widget), 32 | Gtk::getFFI()->cast("GtkEntryBuffer*", $buffer->getWidget()->widget) 33 | ); 34 | 35 | $this->buffer = $buffer; 36 | } 37 | 38 | public function getBuffer(): ?EntryBuffer 39 | { 40 | return $this->buffer; 41 | } 42 | } 43 | 44 | -------------------------------------------------------------------------------- /example/layout_containers/grid/main.php: -------------------------------------------------------------------------------- 1 | setTitle('Grid Example'); 11 | $button1 = new \PGtk\Gtk\Gtk\Button('button1'); 12 | $button2 = new \PGtk\Gtk\Gtk\Button('button2'); 13 | $button3 = new \PGtk\Gtk\Gtk\Button('button3'); 14 | $button4 = new \PGtk\Gtk\Gtk\Button('button4'); 15 | $button5 = new \PGtk\Gtk\Gtk\Button('button5'); 16 | $button6 = new \PGtk\Gtk\Gtk\Button('button6'); 17 | $grid = new \PGtk\Gtk\Gtk\Grid(); 18 | $grid->attach($button1->widget, 0, 0, 1, 1); 19 | $grid->attach($button2->widget, 1, 0, 2, 1); 20 | $grid->attachNextTo($button3, $button1, 3, 1, 2); 21 | $grid->attachNextTo($button4, $button3, 1, 2, 1); 22 | $grid->attach($button5->widget, 1, 2, 1, 1); 23 | $grid->attachNextTo($button6, $button5, 1, 1, 1); 24 | $this->setChild($grid); 25 | } 26 | } 27 | 28 | $w = new GridWindow(); 29 | 30 | $w->widget->show(); 31 | while (true) { 32 | \PGtk\Gtk\GLib\MainContext::iteration(true); 33 | } 34 | -------------------------------------------------------------------------------- /headers/400-GtkAppChooserWidget.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_app_chooser_widget_get_show_default ( GtkAppChooserWidget* self ); 2 | extern gboolean gtk_app_chooser_widget_get_show_fallback ( GtkAppChooserWidget* self ); 3 | extern GtkWidget* gtk_app_chooser_widget_new ( const char* content_type ); 4 | extern gboolean gtk_app_chooser_widget_get_show_other ( GtkAppChooserWidget* self ); 5 | extern const char* gtk_app_chooser_widget_get_default_text ( GtkAppChooserWidget* self ); 6 | extern gboolean gtk_app_chooser_widget_get_show_all ( GtkAppChooserWidget* self ); 7 | extern void gtk_app_chooser_widget_set_default_text ( GtkAppChooserWidget* self, const char* text ); 8 | extern gboolean gtk_app_chooser_widget_get_show_recommended ( GtkAppChooserWidget* self ); 9 | extern void gtk_app_chooser_widget_set_show_fallback ( GtkAppChooserWidget* self, gboolean setting ); 10 | extern void gtk_app_chooser_widget_set_show_default ( GtkAppChooserWidget* self, gboolean setting ); 11 | extern void gtk_app_chooser_widget_set_show_other ( GtkAppChooserWidget* self, gboolean setting ); 12 | extern void gtk_app_chooser_widget_set_show_all ( GtkAppChooserWidget* self, gboolean setting ); 13 | extern void gtk_app_chooser_widget_set_show_recommended ( GtkAppChooserWidget* self, gboolean setting ); 14 | -------------------------------------------------------------------------------- /headers/400-GtkScale.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_scale_new_with_range ( GtkOrientation orientation, double min, double max, double step ); 2 | extern void gtk_scale_clear_marks ( GtkScale* scale ); 3 | extern GtkWidget* gtk_scale_new ( GtkOrientation orientation, GtkAdjustment* adjustment ); 4 | extern void gtk_scale_add_mark ( GtkScale* scale, double value, GtkPositionType position, const char* markup ); 5 | extern PangoLayout* gtk_scale_get_layout ( GtkScale* scale ); 6 | extern void gtk_scale_get_layout_offsets ( GtkScale* scale, int* x, int* y ); 7 | extern int gtk_scale_get_digits ( GtkScale* scale ); 8 | extern gboolean gtk_scale_get_has_origin ( GtkScale* scale ); 9 | extern gboolean gtk_scale_get_draw_value ( GtkScale* scale ); 10 | extern void gtk_scale_set_digits ( GtkScale* scale, int digits ); 11 | extern GtkPositionType gtk_scale_get_value_pos ( GtkScale* scale ); 12 | extern void gtk_scale_set_draw_value ( GtkScale* scale, gboolean draw_value ); 13 | extern void gtk_scale_set_format_value_func ( GtkScale* scale, GtkScaleFormatValueFunc func, gpointer user_data, GDestroyNotify destroy_notify ); 14 | extern void gtk_scale_set_value_pos ( GtkScale* scale, GtkPositionType pos ); 15 | extern void gtk_scale_set_has_origin ( GtkScale* scale, gboolean has_origin ); 16 | -------------------------------------------------------------------------------- /headers/400-GtkTreeModelFilter.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_tree_model_filter_convert_child_iter_to_iter ( GtkTreeModelFilter* filter, GtkTreeIter* filter_iter, GtkTreeIter* child_iter ); 2 | extern void gtk_tree_model_filter_convert_iter_to_child_iter ( GtkTreeModelFilter* filter, GtkTreeIter* child_iter, GtkTreeIter* filter_iter ); 3 | extern GtkTreePath* gtk_tree_model_filter_convert_child_path_to_path ( GtkTreeModelFilter* filter, GtkTreePath* child_path ); 4 | extern void gtk_tree_model_filter_clear_cache ( GtkTreeModelFilter* filter ); 5 | extern GtkTreeModel* gtk_tree_model_filter_get_model ( GtkTreeModelFilter* filter ); 6 | extern GtkTreePath* gtk_tree_model_filter_convert_path_to_child_path ( GtkTreeModelFilter* filter, GtkTreePath* filter_path ); 7 | extern void gtk_tree_model_filter_set_visible_column ( GtkTreeModelFilter* filter, int column ); 8 | extern void gtk_tree_model_filter_refilter ( GtkTreeModelFilter* filter ); 9 | extern void gtk_tree_model_filter_set_visible_func ( GtkTreeModelFilter* filter, GtkTreeModelFilterVisibleFunc func, gpointer data, GDestroyNotify destroy ); 10 | extern void gtk_tree_model_filter_set_modify_func ( GtkTreeModelFilter* filter, int n_columns, GType* types, GtkTreeModelFilterModifyFunc func, gpointer data, GDestroyNotify destroy ); 11 | -------------------------------------------------------------------------------- /headers/400-GtkPaned.h: -------------------------------------------------------------------------------- 1 | extern int gtk_paned_get_position ( GtkPaned* paned ); 2 | extern gboolean gtk_paned_get_resize_end_child ( GtkPaned* paned ); 3 | extern GtkWidget* gtk_paned_new ( GtkOrientation orientation ); 4 | extern gboolean gtk_paned_get_shrink_end_child ( GtkPaned* paned ); 5 | extern GtkWidget* gtk_paned_get_end_child ( GtkPaned* paned ); 6 | extern gboolean gtk_paned_get_resize_start_child ( GtkPaned* paned ); 7 | extern gboolean gtk_paned_get_shrink_start_child ( GtkPaned* paned ); 8 | extern void gtk_paned_set_end_child ( GtkPaned* paned, GtkWidget* child ); 9 | extern void gtk_paned_set_position ( GtkPaned* paned, int position ); 10 | extern GtkWidget* gtk_paned_get_start_child ( GtkPaned* paned ); 11 | extern gboolean gtk_paned_get_wide_handle ( GtkPaned* paned ); 12 | extern void gtk_paned_set_resize_end_child ( GtkPaned* paned, gboolean resize ); 13 | extern void gtk_paned_set_shrink_end_child ( GtkPaned* paned, gboolean resize ); 14 | extern void gtk_paned_set_start_child ( GtkPaned* paned, GtkWidget* child ); 15 | extern void gtk_paned_set_wide_handle ( GtkPaned* paned, gboolean wide ); 16 | extern void gtk_paned_set_shrink_start_child ( GtkPaned* paned, gboolean resize ); 17 | extern void gtk_paned_set_resize_start_child ( GtkPaned* paned, gboolean resize ); 18 | -------------------------------------------------------------------------------- /headers/400-GtkGLArea.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_gl_area_new ( void ); 2 | extern gboolean gtk_gl_area_get_auto_render ( GtkGLArea* area ); 3 | extern void gtk_gl_area_attach_buffers ( GtkGLArea* area ); 4 | extern GdkGLContext* gtk_gl_area_get_context ( GtkGLArea* area ); 5 | extern gboolean gtk_gl_area_get_has_stencil_buffer ( GtkGLArea* area ); 6 | extern void gtk_gl_area_get_required_version ( GtkGLArea* area, int* major, int* minor ); 7 | extern gboolean gtk_gl_area_get_has_depth_buffer ( GtkGLArea* area ); 8 | extern gboolean gtk_gl_area_get_use_es ( GtkGLArea* area ); 9 | extern void gtk_gl_area_set_auto_render ( GtkGLArea* area, gboolean auto_render ); 10 | extern void gtk_gl_area_make_current ( GtkGLArea* area ); 11 | extern void gtk_gl_area_queue_render ( GtkGLArea* area ); 12 | extern GError* gtk_gl_area_get_error ( GtkGLArea* area ); 13 | extern void gtk_gl_area_set_error ( GtkGLArea* area, const GError* error ); 14 | extern void gtk_gl_area_set_use_es ( GtkGLArea* area, gboolean use_es ); 15 | extern void gtk_gl_area_set_required_version ( GtkGLArea* area, int major, int minor ); 16 | extern void gtk_gl_area_set_has_stencil_buffer ( GtkGLArea* area, gboolean has_stencil_buffer ); 17 | extern void gtk_gl_area_set_has_depth_buffer ( GtkGLArea* area, gboolean has_depth_buffer ); 18 | -------------------------------------------------------------------------------- /example/layout_containers/boxes/BoxWindow.php: -------------------------------------------------------------------------------- 1 | setTitle('Box Example'); 11 | $box = new \PGtk\Gtk\Gtk\Box(\PGtk\Gtk\Gtk\Enum\Orientation::horizontal, 6); 12 | $button1 = new \PGtk\Gtk\Gtk\Button('Hello'); 13 | $button1->connect('clicked', $this->onButton1Clicked(...)); 14 | $box->append($button1); 15 | 16 | $button2 = new \PGtk\Gtk\Gtk\Button('Goodbye'); 17 | $button2->connect('clicked', $this->onButton2Clicked(...)); 18 | $box->append($button2); 19 | 20 | $this->setChild($box); 21 | 22 | $this->connect('destroy', function () { 23 | $this->run = false; 24 | }); 25 | } 26 | 27 | public function onButton1Clicked() 28 | { 29 | echo 'Hello' . PHP_EOL; 30 | } 31 | 32 | public function onButton2Clicked() 33 | { 34 | echo 'Goodbye' . PHP_EOL; 35 | } 36 | 37 | public function run() 38 | { 39 | $this->widget->show(); 40 | while ($this->run) { 41 | \PGtk\Gtk\GLib\MainContext::iteration(true); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /headers/400-GtkExpander.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_expander_get_expanded ( GtkExpander* expander ); 2 | extern GtkWidget* gtk_expander_get_child ( GtkExpander* expander ); 3 | extern GtkWidget* gtk_expander_new ( const char* label ); 4 | extern GtkWidget* gtk_expander_new_with_mnemonic ( const char* label ); 5 | extern GtkWidget* gtk_expander_get_label_widget ( GtkExpander* expander ); 6 | extern gboolean gtk_expander_get_resize_toplevel ( GtkExpander* expander ); 7 | extern gboolean gtk_expander_get_use_markup ( GtkExpander* expander ); 8 | extern gboolean gtk_expander_get_use_underline ( GtkExpander* expander ); 9 | extern void gtk_expander_set_child ( GtkExpander* expander, GtkWidget* child ); 10 | extern void gtk_expander_set_label ( GtkExpander* expander, const char* label ); 11 | extern void gtk_expander_set_expanded ( GtkExpander* expander, gboolean expanded ); 12 | extern void gtk_expander_set_resize_toplevel ( GtkExpander* expander, gboolean resize_toplevel ); 13 | extern const char* gtk_expander_get_label ( GtkExpander* expander ); 14 | extern void gtk_expander_set_label_widget ( GtkExpander* expander, GtkWidget* label_widget ); 15 | extern void gtk_expander_set_use_underline ( GtkExpander* expander, gboolean use_underline ); 16 | extern void gtk_expander_set_use_markup ( GtkExpander* expander, gboolean use_markup ); 17 | -------------------------------------------------------------------------------- /src/Gtk/Button.php: -------------------------------------------------------------------------------- 1 | gtk_button_new())); 28 | } else { 29 | parent::__construct(new Widget(Gtk::getFFI()->gtk_button_new_with_label($label))); 30 | } 31 | } 32 | 33 | public function setChild(WidgetInterface $widget) 34 | { 35 | Gtk::getFFI()->gtk_button_set_child( 36 | Gtk::getFFI()->cast($this->cast . ' *', $this->widget->widget), 37 | Gtk::getFFI()->cast("GtkWidget*", $widget->getWidget()->widget) 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /tests/Unit/Gtk/LinkButtonTest.php: -------------------------------------------------------------------------------- 1 | assertEquals('https://google.com', $link->getUri()); 15 | $this->assertFalse((boolean)$link->getVisited()); 16 | $link->setUri('https://fb.com'); 17 | $link->setVisited(true); 18 | $this->assertEquals('https://fb.com', $link->getUri()); 19 | $this->assertTrue((boolean)$link->getVisited()); 20 | } 21 | 22 | public function testLinkButtonWithLabel() 23 | { 24 | $link = new LinkButton('https://google.com', 'google'); 25 | $this->assertEquals('https://google.com', $link->getUri()); 26 | $this->assertEquals('google', $link->getLabel()); 27 | $this->assertFalse((boolean)$link->getVisited()); 28 | $link->setUri('https://fb.com'); 29 | $link->setLabel('fb'); 30 | $link->setVisited(true); 31 | $this->assertEquals('https://fb.com', $link->getUri()); 32 | $this->assertEquals('fb', $link->getLabel()); 33 | $this->assertTrue((boolean)$link->getVisited()); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### Requirement 2 | 3 | - php (8.1) 4 | - ext-FFI 5 | - gtk-4 6 | 7 | **Installation** 8 | 9 | ```bash 10 | composer require pgtk/gtk 11 | ``` 12 | **Example:** 13 | 14 | ![alt text](img/win.png "Window") 15 | ```php 16 | require_once __DIR__ . '/vendor/autoload.php'; 17 | 18 | use PGtk\Gtk\Gtk\Window; 19 | use PGtk\Gtk\Gtk\HeaderBar; 20 | use PGtk\Gtk\Gtk\Label; 21 | use PGtk\Gtk\GLib\MainLoop; 22 | 23 | $run = true; 24 | 25 | $window = new Window(); 26 | $window->widget->setSizeRequest(100, 100); 27 | $window->setTitle('Window'); 28 | 29 | $headerBar = new HeaderBar(); 30 | $headerBar->setDecorationLayout('menu:close'); 31 | $window->setTitlebar($headerBar); 32 | 33 | $label = new Label('label'); 34 | 35 | $window->setChild($label); 36 | 37 | $loop = new MainLoop(); 38 | $window->connect('destroy', function (Window $window, MainLoop $loop) { 39 | $loop->quit(); 40 | }, $loop); 41 | 42 | $window->widget->show(); 43 | 44 | $loop->run(); 45 | 46 | 47 | ``` 48 | 49 | # Supported platforms and features 50 | 51 | ## Platforms 52 | 53 | | Platform | Status | 54 | |----------|:------:| 55 | | Linux | ✅ | 56 | | Windows | ❌ | 57 | 58 | # Examples: 59 | - [TomatoGtk](https://github.com/kmaestro/tomate-gtk) 60 | 61 | Contributing 62 | ------------ 63 | 64 | Feel free to open issues and make PR. Contributions are welcome. 65 | -------------------------------------------------------------------------------- /src/Gtk/Grid.php: -------------------------------------------------------------------------------- 1 | gtk_grid_new())); 16 | } 17 | 18 | public function attach(Widget $widget, int $column, int $row, int $width, int $height) 19 | { 20 | return Gtk::getFFI()->gtk_grid_attach( 21 | Gtk::getFFI()->cast($this->cast . '*', $this->widget->widget), 22 | Gtk::getFFI()->cast('GtkWidget*', $widget->widget), 23 | $column, 24 | $row, 25 | $width, 26 | $height 27 | ); 28 | } 29 | 30 | public function attachNextTo(WidgetInterface $widget1, WidgetInterface $widget2, string $positionType, int $width, int $height) 31 | { 32 | return Gtk::getFFI()->gtk_grid_attach_next_to( 33 | Gtk::getFFI()->cast('GtkGrid*', $this->widget->widget), 34 | Gtk::getFFI()->cast('GtkWidget*', $widget1->getWidget()->widget), 35 | Gtk::getFFI()->cast('GtkWidget*', $widget2->getWidget()->widget), 36 | $positionType, 37 | $width, 38 | $height 39 | ); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /headers/400-GtkConstraint.h: -------------------------------------------------------------------------------- 1 | extern GtkConstraint* gtk_constraint_new ( GtkConstraintTarget* target, GtkConstraintAttribute target_attribute, GtkConstraintRelation relation, GtkConstraintTarget* source, GtkConstraintAttribute source_attribute, double multiplier, double constant, int strength ); 2 | extern GtkConstraint* gtk_constraint_new_constant ( GtkConstraintTarget* target, GtkConstraintAttribute target_attribute, GtkConstraintRelation relation, double constant, int strength ); 3 | extern double gtk_constraint_get_constant ( GtkConstraint* constraint ); 4 | extern GtkConstraintRelation gtk_constraint_get_relation ( GtkConstraint* constraint ); 5 | extern double gtk_constraint_get_multiplier ( GtkConstraint* constraint ); 6 | extern GtkConstraintTarget* gtk_constraint_get_source ( GtkConstraint* constraint ); 7 | extern GtkConstraintAttribute gtk_constraint_get_source_attribute ( GtkConstraint* constraint ); 8 | extern GtkConstraintAttribute gtk_constraint_get_target_attribute ( GtkConstraint* constraint ); 9 | extern int gtk_constraint_get_strength ( GtkConstraint* constraint ); 10 | extern gboolean gtk_constraint_is_attached ( GtkConstraint* constraint ); 11 | extern gboolean gtk_constraint_is_required ( GtkConstraint* constraint ); 12 | extern GtkConstraintTarget* gtk_constraint_get_target ( GtkConstraint* constraint ); 13 | extern gboolean gtk_constraint_is_constant ( GtkConstraint* constraint ); 14 | -------------------------------------------------------------------------------- /example/layout_containers/headerBar/HeaderBarWindow.php: -------------------------------------------------------------------------------- 1 | setTitle('HeaderBar Demo'); 13 | $this->setDefaultSize(400, 200); 14 | 15 | $hb = new \PGtk\Gtk\Gtk\HeaderBar(); 16 | $hb->setDecorationLayout('menu:close'); 17 | // $hb->setDecorationLayout('menu:minimize,maximize,close'); 18 | $this->setTitlebar($hb); 19 | 20 | $button = new \PGtk\Gtk\Gtk\Button(); 21 | $button->setIconName('mail-send-receive-symbolic'); 22 | $hb->packEnd($button); 23 | 24 | $box = new \PGtk\Gtk\Gtk\Box(\PGtk\Gtk\Gtk\Enum\Orientation::horizontal, 0); 25 | $button = new \PGtk\Gtk\Gtk\ButtonIcon('pan-start-symbolic'); 26 | $box->append($button); 27 | $button = new \PGtk\Gtk\Gtk\ButtonIcon('pan-end-symbolic'); 28 | $box->append($button); 29 | $hb->packStart($box); 30 | 31 | $this->connect('destroy',function () { 32 | $this->run = false; 33 | }); 34 | } 35 | 36 | public function run() 37 | { 38 | $this->widget->show(); 39 | while ($this->run) { 40 | \PGtk\Gtk\GLib\MainContext::iteration(true); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /headers/400-GtkDropDown.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_drop_down_new_from_strings ( const char* const* strings ); 2 | extern GtkWidget* gtk_drop_down_new ( GListModel* model, GtkExpression* expression ); 3 | extern gboolean gtk_drop_down_get_enable_search ( GtkDropDown* self ); 4 | extern GtkExpression* gtk_drop_down_get_expression ( GtkDropDown* self ); 5 | extern GtkListItemFactory* gtk_drop_down_get_list_factory ( GtkDropDown* self ); 6 | extern GListModel* gtk_drop_down_get_model ( GtkDropDown* self ); 7 | extern guint gtk_drop_down_get_selected ( GtkDropDown* self ); 8 | extern GObject* gtk_drop_down_get_selected_item ( GtkDropDown* self ); 9 | extern GtkListItemFactory* gtk_drop_down_get_factory ( GtkDropDown* self ); 10 | extern void gtk_drop_down_set_expression ( GtkDropDown* self, GtkExpression* expression ); 11 | extern gboolean gtk_drop_down_get_show_arrow ( GtkDropDown* self ); 12 | extern void gtk_drop_down_set_enable_search ( GtkDropDown* self, gboolean enable_search ); 13 | extern void gtk_drop_down_set_model ( GtkDropDown* self, GListModel* model ); 14 | extern void gtk_drop_down_set_factory ( GtkDropDown* self, GtkListItemFactory* factory ); 15 | extern void gtk_drop_down_set_list_factory ( GtkDropDown* self, GtkListItemFactory* factory ); 16 | extern void gtk_drop_down_set_selected ( GtkDropDown* self, guint position ); 17 | extern void gtk_drop_down_set_show_arrow ( GtkDropDown* self, gboolean show_arrow ); 18 | -------------------------------------------------------------------------------- /headers/400-GtkPicture.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_picture_new_for_filename ( const char* filename ); 2 | extern GtkWidget* gtk_picture_new_for_file ( GFile* file ); 3 | extern GtkWidget* gtk_picture_new_for_paintable ( GdkPaintable* paintable ); 4 | extern GtkWidget* gtk_picture_new ( void ); 5 | extern GtkWidget* gtk_picture_new_for_resource ( const char* resource_path ); 6 | extern GtkWidget* gtk_picture_new_for_pixbuf ( GdkPixbuf* pixbuf ); 7 | extern gboolean gtk_picture_get_can_shrink ( GtkPicture* self ); 8 | extern const char* gtk_picture_get_alternative_text ( GtkPicture* self ); 9 | extern GFile* gtk_picture_get_file ( GtkPicture* self ); 10 | extern void gtk_picture_set_alternative_text ( GtkPicture* self, const char* alternative_text ); 11 | extern gboolean gtk_picture_get_keep_aspect_ratio ( GtkPicture* self ); 12 | extern GdkPaintable* gtk_picture_get_paintable ( GtkPicture* self ); 13 | extern void gtk_picture_set_can_shrink ( GtkPicture* self, gboolean can_shrink ); 14 | extern void gtk_picture_set_file ( GtkPicture* self, GFile* file ); 15 | extern void gtk_picture_set_paintable ( GtkPicture* self, GdkPaintable* paintable ); 16 | extern void gtk_picture_set_filename ( GtkPicture* self, const char* filename ); 17 | extern void gtk_picture_set_keep_aspect_ratio ( GtkPicture* self, gboolean keep_aspect_ratio ); 18 | extern void gtk_picture_set_pixbuf ( GtkPicture* self, GdkPixbuf* pixbuf ); 19 | extern void gtk_picture_set_resource ( GtkPicture* self, const char* resource_path ); 20 | -------------------------------------------------------------------------------- /headers/400-GtkIconTheme.h: -------------------------------------------------------------------------------- 1 | extern void gtk_icon_theme_add_resource_path ( GtkIconTheme* self, const char* path ); 2 | extern GtkIconTheme* gtk_icon_theme_new ( void ); 3 | extern GdkDisplay* gtk_icon_theme_get_display ( GtkIconTheme* self ); 4 | extern void gtk_icon_theme_add_search_path ( GtkIconTheme* self, const char* path ); 5 | extern int* gtk_icon_theme_get_icon_sizes ( GtkIconTheme* self, const char* icon_name ); 6 | extern char** gtk_icon_theme_get_icon_names ( GtkIconTheme* self ); 7 | extern char** gtk_icon_theme_get_resource_path ( GtkIconTheme* self ); 8 | extern char** gtk_icon_theme_get_search_path ( GtkIconTheme* self ); 9 | extern char* gtk_icon_theme_get_theme_name ( GtkIconTheme* self ); 10 | extern gboolean gtk_icon_theme_has_gicon ( GtkIconTheme* self, GIcon* gicon ); 11 | extern GtkIconPaintable* gtk_icon_theme_lookup_by_gicon ( GtkIconTheme* self, GIcon* icon, int size, int scale, GtkTextDirection direction, GtkIconLookupFlags flags ); 12 | extern gboolean gtk_icon_theme_has_icon ( GtkIconTheme* self, const char* icon_name ); 13 | extern GtkIconPaintable* gtk_icon_theme_lookup_icon ( GtkIconTheme* self, const char* icon_name, const char** fallbacks, int size, int scale, GtkTextDirection direction, GtkIconLookupFlags flags ); 14 | extern void gtk_icon_theme_set_resource_path ( GtkIconTheme* self, const char* const* path ); 15 | extern void gtk_icon_theme_set_search_path ( GtkIconTheme* self, const char* const* path ); 16 | extern void gtk_icon_theme_set_theme_name ( GtkIconTheme* self, const char* theme_name ); 17 | -------------------------------------------------------------------------------- /headers/400-GtkGesture.h: -------------------------------------------------------------------------------- 1 | extern GList* gtk_gesture_get_group ( GtkGesture* gesture ); 2 | extern gboolean gtk_gesture_get_bounding_box_center ( GtkGesture* gesture, double* x, double* y ); 3 | extern GdkDevice* gtk_gesture_get_device ( GtkGesture* gesture ); 4 | extern gboolean gtk_gesture_get_bounding_box ( GtkGesture* gesture, GdkRectangle* rect ); 5 | extern GdkEventSequence* gtk_gesture_get_last_updated_sequence ( GtkGesture* gesture ); 6 | extern gboolean gtk_gesture_get_point ( GtkGesture* gesture, GdkEventSequence* sequence, double* x, double* y ); 7 | extern GList* gtk_gesture_get_sequences ( GtkGesture* gesture ); 8 | extern GdkEvent* gtk_gesture_get_last_event ( GtkGesture* gesture, GdkEventSequence* sequence ); 9 | extern void gtk_gesture_group ( GtkGesture* group_gesture, GtkGesture* gesture ); 10 | extern GtkEventSequenceState gtk_gesture_get_sequence_state ( GtkGesture* gesture, GdkEventSequence* sequence ); 11 | extern gboolean gtk_gesture_is_active ( GtkGesture* gesture ); 12 | extern gboolean gtk_gesture_is_grouped_with ( GtkGesture* gesture, GtkGesture* other ); 13 | extern gboolean gtk_gesture_handles_sequence ( GtkGesture* gesture, GdkEventSequence* sequence ); 14 | extern gboolean gtk_gesture_set_sequence_state ( GtkGesture* gesture, GdkEventSequence* sequence, GtkEventSequenceState state ); 15 | extern gboolean gtk_gesture_is_recognized ( GtkGesture* gesture ); 16 | extern void gtk_gesture_ungroup ( GtkGesture* gesture ); 17 | extern gboolean gtk_gesture_set_state ( GtkGesture* gesture, GtkEventSequenceState state ); 18 | -------------------------------------------------------------------------------- /headers/400-GtkIMContext.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_im_context_delete_surrounding ( GtkIMContext* context, int offset, int n_chars ); 2 | extern gboolean gtk_im_context_filter_key ( GtkIMContext* context, gboolean press, GdkSurface* surface, GdkDevice* device, guint32 time, guint keycode, GdkModifierType state, int group ); 3 | extern void gtk_im_context_focus_in ( GtkIMContext* context ); 4 | extern gboolean gtk_im_context_filter_keypress ( GtkIMContext* context, GdkEvent* event ); 5 | extern gboolean gtk_im_context_get_surrounding ( GtkIMContext* context, char** text, int* cursor_index ); 6 | extern void gtk_im_context_focus_out ( GtkIMContext* context ); 7 | extern void gtk_im_context_set_client_widget ( GtkIMContext* context, GtkWidget* widget ); 8 | extern gboolean gtk_im_context_get_surrounding_with_selection ( GtkIMContext* context, char** text, int* cursor_index, int* anchor_index ); 9 | extern void gtk_im_context_reset ( GtkIMContext* context ); 10 | extern void gtk_im_context_set_cursor_location ( GtkIMContext* context, const GdkRectangle* area ); 11 | extern void gtk_im_context_get_preedit_string ( GtkIMContext* context, char** str, PangoAttrList** attrs, int* cursor_pos ); 12 | extern void gtk_im_context_set_surrounding_with_selection ( GtkIMContext* context, const char* text, int len, int cursor_index, int anchor_index ); 13 | extern void gtk_im_context_set_surrounding ( GtkIMContext* context, const char* text, int len, int cursor_index ); 14 | extern void gtk_im_context_set_use_preedit ( GtkIMContext* context, gboolean use_preedit ); 15 | -------------------------------------------------------------------------------- /headers/400-GtkInfoBar.h: -------------------------------------------------------------------------------- 1 | extern void gtk_info_bar_add_action_widget ( GtkInfoBar* info_bar, GtkWidget* child, int response_id ); 2 | extern GtkWidget* gtk_info_bar_new_with_buttons ( const char* first_button_text, ... ); 3 | extern void gtk_info_bar_add_child ( GtkInfoBar* info_bar, GtkWidget* widget ); 4 | extern GtkWidget* gtk_info_bar_new ( void ); 5 | extern GtkWidget* gtk_info_bar_add_button ( GtkInfoBar* info_bar, const char* button_text, int response_id ); 6 | extern void gtk_info_bar_add_buttons ( GtkInfoBar* info_bar, const char* first_button_text, ... ); 7 | extern GtkMessageType gtk_info_bar_get_message_type ( GtkInfoBar* info_bar ); 8 | extern gboolean gtk_info_bar_get_show_close_button ( GtkInfoBar* info_bar ); 9 | extern gboolean gtk_info_bar_get_revealed ( GtkInfoBar* info_bar ); 10 | extern void gtk_info_bar_remove_action_widget ( GtkInfoBar* info_bar, GtkWidget* widget ); 11 | extern void gtk_info_bar_response ( GtkInfoBar* info_bar, int response_id ); 12 | extern void gtk_info_bar_set_message_type ( GtkInfoBar* info_bar, GtkMessageType message_type ); 13 | extern void gtk_info_bar_set_default_response ( GtkInfoBar* info_bar, int response_id ); 14 | extern void gtk_info_bar_remove_child ( GtkInfoBar* info_bar, GtkWidget* widget ); 15 | extern void gtk_info_bar_set_response_sensitive ( GtkInfoBar* info_bar, int response_id, gboolean setting ); 16 | extern void gtk_info_bar_set_revealed ( GtkInfoBar* info_bar, gboolean revealed ); 17 | extern void gtk_info_bar_set_show_close_button ( GtkInfoBar* info_bar, gboolean setting ); 18 | -------------------------------------------------------------------------------- /headers/400-GtkAdjustment.h: -------------------------------------------------------------------------------- 1 | extern void gtk_adjustment_configure ( GtkAdjustment* adjustment, double value, double lower, double upper, double step_increment, double page_increment, double page_size ); 2 | extern double gtk_adjustment_get_page_increment ( GtkAdjustment* adjustment ); 3 | extern void gtk_adjustment_clamp_page ( GtkAdjustment* adjustment, double lower, double upper ); 4 | extern double gtk_adjustment_get_lower ( GtkAdjustment* adjustment ); 5 | extern GtkAdjustment* gtk_adjustment_new ( double value, double lower, double upper, double step_increment, double page_increment, double page_size ); 6 | extern double gtk_adjustment_get_minimum_increment ( GtkAdjustment* adjustment ); 7 | extern double gtk_adjustment_get_page_size ( GtkAdjustment* adjustment ); 8 | extern double gtk_adjustment_get_value ( GtkAdjustment* adjustment ); 9 | extern void gtk_adjustment_set_page_increment ( GtkAdjustment* adjustment, double page_increment ); 10 | extern double gtk_adjustment_get_step_increment ( GtkAdjustment* adjustment ); 11 | extern double gtk_adjustment_get_upper ( GtkAdjustment* adjustment ); 12 | extern void gtk_adjustment_set_lower ( GtkAdjustment* adjustment, double lower ); 13 | extern void gtk_adjustment_set_page_size ( GtkAdjustment* adjustment, double page_size ); 14 | extern void gtk_adjustment_set_upper ( GtkAdjustment* adjustment, double upper ); 15 | extern void gtk_adjustment_set_value ( GtkAdjustment* adjustment, double value ); 16 | extern void gtk_adjustment_set_step_increment ( GtkAdjustment* adjustment, double step_increment ); 17 | -------------------------------------------------------------------------------- /headers/400-GtkApplication.h: -------------------------------------------------------------------------------- 1 | extern char** gtk_application_get_actions_for_accel ( GtkApplication* application, const char* accel ); 2 | extern void gtk_application_add_window ( GtkApplication* application, GtkWindow* window ); 3 | extern GtkApplication* gtk_application_new ( const char* application_id, GApplicationFlags flags ); 4 | extern char** gtk_application_get_accels_for_action ( GtkApplication* application, const char* detailed_action_name ); 5 | extern GList* gtk_application_get_windows ( GtkApplication* application ); 6 | extern GMenu* gtk_application_get_menu_by_id ( GtkApplication* application, const char* id ); 7 | extern GMenuModel* gtk_application_get_menubar ( GtkApplication* application ); 8 | extern void gtk_application_remove_window ( GtkApplication* application, GtkWindow* window ); 9 | extern GtkWindow* gtk_application_get_window_by_id ( GtkApplication* application, guint id ); 10 | extern guint gtk_application_inhibit ( GtkApplication* application, GtkWindow* window, GtkApplicationInhibitFlags flags, const char* reason ); 11 | extern GtkWindow* gtk_application_get_active_window ( GtkApplication* application ); 12 | extern char** gtk_application_list_action_descriptions ( GtkApplication* application ); 13 | extern void gtk_application_set_menubar ( GtkApplication* application, GMenuModel* menubar ); 14 | extern void gtk_application_uninhibit ( GtkApplication* application, guint cookie ); 15 | extern void gtk_application_set_accels_for_action ( GtkApplication* application, const char* detailed_action_name, const char* const* accels ); 16 | -------------------------------------------------------------------------------- /headers/400-GtkImage.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_image_new_from_icon_name ( const char* icon_name ); 2 | extern GtkWidget* gtk_image_new_from_file ( const char* filename ); 3 | extern GtkWidget* gtk_image_new ( void ); 4 | extern GtkWidget* gtk_image_new_from_paintable ( GdkPaintable* paintable ); 5 | extern GtkWidget* gtk_image_new_from_pixbuf ( GdkPixbuf* pixbuf ); 6 | extern void gtk_image_clear ( GtkImage* image ); 7 | extern GtkWidget* gtk_image_new_from_gicon ( GIcon* icon ); 8 | extern GtkWidget* gtk_image_new_from_resource ( const char* resource_path ); 9 | extern GIcon* gtk_image_get_gicon ( GtkImage* image ); 10 | extern GtkIconSize gtk_image_get_icon_size ( GtkImage* image ); 11 | extern const char* gtk_image_get_icon_name ( GtkImage* image ); 12 | extern GtkImageType gtk_image_get_storage_type ( GtkImage* image ); 13 | extern void gtk_image_set_from_file ( GtkImage* image, const char* filename ); 14 | extern void gtk_image_set_from_gicon ( GtkImage* image, GIcon* icon ); 15 | extern int gtk_image_get_pixel_size ( GtkImage* image ); 16 | extern GdkPaintable* gtk_image_get_paintable ( GtkImage* image ); 17 | extern void gtk_image_set_from_paintable ( GtkImage* image, GdkPaintable* paintable ); 18 | extern void gtk_image_set_from_icon_name ( GtkImage* image, const char* icon_name ); 19 | extern void gtk_image_set_from_pixbuf ( GtkImage* image, GdkPixbuf* pixbuf ); 20 | extern void gtk_image_set_from_resource ( GtkImage* image, const char* resource_path ); 21 | extern void gtk_image_set_icon_size ( GtkImage* image, GtkIconSize icon_size ); 22 | extern void gtk_image_set_pixel_size ( GtkImage* image, int pixel_size ); 23 | -------------------------------------------------------------------------------- /src/GLib/MainLoop.php: -------------------------------------------------------------------------------- 1 | data = Gtk::getFFI()->g_main_loop_new(null, true); 23 | } 24 | 25 | public function __call(string $name, array $arguments) 26 | { 27 | if (count($this->methods) === 0) { 28 | $this->saveMethods(); 29 | } 30 | if (!isset($this->methods[$name])) { 31 | throw new \RuntimeException(sprintf('Method not found %s in %s', $name, $this::class)); 32 | } 33 | 34 | $functionName = 'g_main_loop_' . strtolower(preg_replace('~([A-Z])~', '_$1', $name)); 35 | 36 | return Gtk::getFFI()->$functionName(Gtk::getFFI()->cast('GMainLoop*', $this->data), ...$arguments); 37 | } 38 | 39 | private function saveMethods() 40 | { 41 | $className = $this::class; 42 | while (true) { 43 | $comment = (new \ReflectionClass($className))->getDocComment(); 44 | preg_match_all('~@method(.*)\(.*\)~', $comment, $arr); 45 | foreach ($arr[1] as $value) { 46 | $this->methods[trim($value)] = ''; 47 | } 48 | $className = get_parent_class($className); 49 | if (!$className) { 50 | break; 51 | } 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /headers/400-GtkPopover.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_popover_get_cascade_popdown ( GtkPopover* popover ); 2 | extern GtkWidget* gtk_popover_get_child ( GtkPopover* popover ); 3 | extern gboolean gtk_popover_get_autohide ( GtkPopover* popover ); 4 | extern void gtk_popover_get_offset ( GtkPopover* popover, int* x_offset, int* y_offset ); 5 | extern GtkWidget* gtk_popover_new ( void ); 6 | extern gboolean gtk_popover_get_mnemonics_visible ( GtkPopover* popover ); 7 | extern gboolean gtk_popover_get_has_arrow ( GtkPopover* popover ); 8 | extern gboolean gtk_popover_get_pointing_to ( GtkPopover* popover, GdkRectangle* rect ); 9 | extern void gtk_popover_popup ( GtkPopover* popover ); 10 | extern void gtk_popover_popdown ( GtkPopover* popover ); 11 | extern GtkPositionType gtk_popover_get_position ( GtkPopover* popover ); 12 | extern void gtk_popover_set_child ( GtkPopover* popover, GtkWidget* child ); 13 | extern void gtk_popover_present ( GtkPopover* popover ); 14 | extern void gtk_popover_set_default_widget ( GtkPopover* popover, GtkWidget* widget ); 15 | extern void gtk_popover_set_cascade_popdown ( GtkPopover* popover, gboolean cascade_popdown ); 16 | extern void gtk_popover_set_has_arrow ( GtkPopover* popover, gboolean has_arrow ); 17 | extern void gtk_popover_set_mnemonics_visible ( GtkPopover* popover, gboolean mnemonics_visible ); 18 | extern void gtk_popover_set_autohide ( GtkPopover* popover, gboolean autohide ); 19 | extern void gtk_popover_set_offset ( GtkPopover* popover, int x_offset, int y_offset ); 20 | extern void gtk_popover_set_position ( GtkPopover* popover, GtkPositionType position ); 21 | extern void gtk_popover_set_pointing_to ( GtkPopover* popover, const GdkRectangle* rect ); 22 | -------------------------------------------------------------------------------- /headers/400-GtkRange.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_range_get_flippable ( GtkRange* range ); 2 | extern gboolean gtk_range_get_inverted ( GtkRange* range ); 3 | extern double gtk_range_get_fill_level ( GtkRange* range ); 4 | extern GtkAdjustment* gtk_range_get_adjustment ( GtkRange* range ); 5 | extern int gtk_range_get_round_digits ( GtkRange* range ); 6 | extern gboolean gtk_range_get_show_fill_level ( GtkRange* range ); 7 | extern gboolean gtk_range_get_restrict_to_fill_level ( GtkRange* range ); 8 | extern void gtk_range_get_slider_range ( GtkRange* range, int* slider_start, int* slider_end ); 9 | extern gboolean gtk_range_get_slider_size_fixed ( GtkRange* range ); 10 | extern void gtk_range_get_range_rect ( GtkRange* range, GdkRectangle* range_rect ); 11 | extern double gtk_range_get_value ( GtkRange* range ); 12 | extern void gtk_range_set_adjustment ( GtkRange* range, GtkAdjustment* adjustment ); 13 | extern void gtk_range_set_flippable ( GtkRange* range, gboolean flippable ); 14 | extern void gtk_range_set_fill_level ( GtkRange* range, double fill_level ); 15 | extern void gtk_range_set_increments ( GtkRange* range, double step, double page ); 16 | extern void gtk_range_set_inverted ( GtkRange* range, gboolean setting ); 17 | extern void gtk_range_set_range ( GtkRange* range, double min, double max ); 18 | extern void gtk_range_set_restrict_to_fill_level ( GtkRange* range, gboolean restrict_to_fill_level ); 19 | extern void gtk_range_set_round_digits ( GtkRange* range, int round_digits ); 20 | extern void gtk_range_set_value ( GtkRange* range, double value ); 21 | extern void gtk_range_set_slider_size_fixed ( GtkRange* range, gboolean size_fixed ); 22 | extern void gtk_range_set_show_fill_level ( GtkRange* range, gboolean show_fill_level ); 23 | -------------------------------------------------------------------------------- /headers/400-GtkColumnViewColumn.h: -------------------------------------------------------------------------------- 1 | extern GtkColumnViewColumn* gtk_column_view_column_new ( const char* title, GtkListItemFactory* factory ); 2 | extern GtkListItemFactory* gtk_column_view_column_get_factory ( GtkColumnViewColumn* self ); 3 | extern GtkColumnView* gtk_column_view_column_get_column_view ( GtkColumnViewColumn* self ); 4 | extern gboolean gtk_column_view_column_get_expand ( GtkColumnViewColumn* self ); 5 | extern GMenuModel* gtk_column_view_column_get_header_menu ( GtkColumnViewColumn* self ); 6 | extern gboolean gtk_column_view_column_get_resizable ( GtkColumnViewColumn* self ); 7 | extern const char* gtk_column_view_column_get_title ( GtkColumnViewColumn* self ); 8 | extern int gtk_column_view_column_get_fixed_width ( GtkColumnViewColumn* self ); 9 | extern GtkSorter* gtk_column_view_column_get_sorter ( GtkColumnViewColumn* self ); 10 | extern gboolean gtk_column_view_column_get_visible ( GtkColumnViewColumn* self ); 11 | extern void gtk_column_view_column_set_fixed_width ( GtkColumnViewColumn* self, int fixed_width ); 12 | extern void gtk_column_view_column_set_header_menu ( GtkColumnViewColumn* self, GMenuModel* menu ); 13 | extern void gtk_column_view_column_set_factory ( GtkColumnViewColumn* self, GtkListItemFactory* factory ); 14 | extern void gtk_column_view_column_set_expand ( GtkColumnViewColumn* self, gboolean expand ); 15 | extern void gtk_column_view_column_set_resizable ( GtkColumnViewColumn* self, gboolean resizable ); 16 | extern void gtk_column_view_column_set_title ( GtkColumnViewColumn* self, const char* title ); 17 | extern void gtk_column_view_column_set_sorter ( GtkColumnViewColumn* self, GtkSorter* sorter ); 18 | extern void gtk_column_view_column_set_visible ( GtkColumnViewColumn* self, gboolean visible ); 19 | -------------------------------------------------------------------------------- /headers/400-GtkStyleContext.h: -------------------------------------------------------------------------------- 1 | extern void gtk_style_context_get_color ( GtkStyleContext* context, GdkRGBA* color ); 2 | extern void gtk_style_context_add_provider ( GtkStyleContext* context, GtkStyleProvider* provider, guint priority ); 3 | extern void gtk_style_context_add_class ( GtkStyleContext* context, const char* class_name ); 4 | extern void gtk_style_context_get_border ( GtkStyleContext* context, GtkBorder* border ); 5 | extern void gtk_style_context_get_margin ( GtkStyleContext* context, GtkBorder* margin ); 6 | extern void gtk_style_context_get_padding ( GtkStyleContext* context, GtkBorder* padding ); 7 | extern GdkDisplay* gtk_style_context_get_display ( GtkStyleContext* context ); 8 | extern int gtk_style_context_get_scale ( GtkStyleContext* context ); 9 | extern gboolean gtk_style_context_has_class ( GtkStyleContext* context, const char* class_name ); 10 | extern GtkStateFlags gtk_style_context_get_state ( GtkStyleContext* context ); 11 | extern void gtk_style_context_remove_class ( GtkStyleContext* context, const char* class_name ); 12 | extern void gtk_style_context_remove_provider ( GtkStyleContext* context, GtkStyleProvider* provider ); 13 | extern void gtk_style_context_save ( GtkStyleContext* context ); 14 | extern gboolean gtk_style_context_lookup_color ( GtkStyleContext* context, const char* color_name, GdkRGBA* color ); 15 | extern void gtk_style_context_restore ( GtkStyleContext* context ); 16 | extern void gtk_style_context_set_state ( GtkStyleContext* context, GtkStateFlags flags ); 17 | extern void gtk_style_context_set_scale ( GtkStyleContext* context, int scale ); 18 | extern void gtk_style_context_set_display ( GtkStyleContext* context, GdkDisplay* display ); 19 | extern char* gtk_style_context_to_string ( GtkStyleContext* context, GtkStyleContextPrintFlags flags ); 20 | -------------------------------------------------------------------------------- /headers/400-GtkColumnView.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_column_view_new ( GtkSelectionModel* model ); 2 | extern gboolean gtk_column_view_get_enable_rubberband ( GtkColumnView* self ); 3 | extern gboolean gtk_column_view_get_show_column_separators ( GtkColumnView* self ); 4 | extern GListModel* gtk_column_view_get_columns ( GtkColumnView* self ); 5 | extern void gtk_column_view_append_column ( GtkColumnView* self, GtkColumnViewColumn* column ); 6 | extern gboolean gtk_column_view_get_show_row_separators ( GtkColumnView* self ); 7 | extern gboolean gtk_column_view_get_reorderable ( GtkColumnView* self ); 8 | extern GtkSorter* gtk_column_view_get_sorter ( GtkColumnView* self ); 9 | extern gboolean gtk_column_view_get_single_click_activate ( GtkColumnView* self ); 10 | extern void gtk_column_view_insert_column ( GtkColumnView* self, guint position, GtkColumnViewColumn* column ); 11 | extern void gtk_column_view_set_enable_rubberband ( GtkColumnView* self, gboolean enable_rubberband ); 12 | extern void gtk_column_view_remove_column ( GtkColumnView* self, GtkColumnViewColumn* column ); 13 | extern GtkSelectionModel* gtk_column_view_get_model ( GtkColumnView* self ); 14 | extern void gtk_column_view_set_model ( GtkColumnView* self, GtkSelectionModel* model ); 15 | extern void gtk_column_view_set_show_row_separators ( GtkColumnView* self, gboolean show_row_separators ); 16 | extern void gtk_column_view_set_show_column_separators ( GtkColumnView* self, gboolean show_column_separators ); 17 | extern void gtk_column_view_set_reorderable ( GtkColumnView* self, gboolean reorderable ); 18 | extern void gtk_column_view_set_single_click_activate ( GtkColumnView* self, gboolean single_click_activate ); 19 | extern void gtk_column_view_sort_by_column ( GtkColumnView* self, GtkColumnViewColumn* column, GtkSortType direction ); 20 | -------------------------------------------------------------------------------- /src/Gtk/Label.php: -------------------------------------------------------------------------------- 1 | gtk_label_new($label))); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /headers/400-GtkPrinter.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_printer_accepts_pdf ( GtkPrinter* printer ); 2 | extern int gtk_printer_compare ( GtkPrinter* a, GtkPrinter* b ); 3 | extern gboolean gtk_printer_accepts_ps ( GtkPrinter* printer ); 4 | extern GtkPrinter* gtk_printer_new ( const char* name, GtkPrintBackend* backend, gboolean virtual_ ); 5 | extern GtkPageSetup* gtk_printer_get_default_page_size ( GtkPrinter* printer ); 6 | extern GtkPrintCapabilities gtk_printer_get_capabilities ( GtkPrinter* printer ); 7 | extern const char* gtk_printer_get_description ( GtkPrinter* printer ); 8 | extern GtkPrintBackend* gtk_printer_get_backend ( GtkPrinter* printer ); 9 | extern gboolean gtk_printer_get_hard_margins ( GtkPrinter* printer, double* top, double* bottom, double* left, double* right ); 10 | extern gboolean gtk_printer_get_hard_margins_for_paper_size ( GtkPrinter* printer, GtkPaperSize* paper_size, double* top, double* bottom, double* left, double* right ); 11 | extern const char* gtk_printer_get_location ( GtkPrinter* printer ); 12 | extern const char* gtk_printer_get_icon_name ( GtkPrinter* printer ); 13 | extern int gtk_printer_get_job_count ( GtkPrinter* printer ); 14 | extern const char* gtk_printer_get_state_message ( GtkPrinter* printer ); 15 | extern const char* gtk_printer_get_name ( GtkPrinter* printer ); 16 | extern gboolean gtk_printer_is_accepting_jobs ( GtkPrinter* printer ); 17 | extern gboolean gtk_printer_has_details ( GtkPrinter* printer ); 18 | extern gboolean gtk_printer_is_virtual ( GtkPrinter* printer ); 19 | extern gboolean gtk_printer_is_paused ( GtkPrinter* printer ); 20 | extern gboolean gtk_printer_is_default ( GtkPrinter* printer ); 21 | extern GList* gtk_printer_list_papers ( GtkPrinter* printer ); 22 | extern gboolean gtk_printer_is_active ( GtkPrinter* printer ); 23 | extern void gtk_printer_request_details ( GtkPrinter* printer ); 24 | -------------------------------------------------------------------------------- /src/Gtk/HeaderBar.php: -------------------------------------------------------------------------------- 1 | gtk_header_bar_new())); 21 | } 22 | 23 | public function packEnd(WidgetInterface $widget): void 24 | { 25 | Gtk::getFFI()->gtk_header_bar_pack_end( 26 | Gtk::getFFI()->cast('GtkHeaderBar*', $this->widget->widget), 27 | Gtk::getFFI()->cast('GtkWidget*', $widget->getWidget()->widget) 28 | ); 29 | } 30 | 31 | public function packStart(WidgetInterface $widget): void 32 | { 33 | Gtk::getFFI()->gtk_header_bar_pack_start( 34 | Gtk::getFFI()->cast('GtkHeaderBar*', $this->widget->widget), 35 | Gtk::getFFI()->cast('GtkWidget*', $widget->getWidget()->widget) 36 | ); 37 | } 38 | 39 | public function setTitleWidget(WidgetInterface $widget) 40 | { 41 | return Gtk::getFFI()->gtk_header_bar_set_title_widget( 42 | Gtk::getFFI()->cast('GtkHeaderBar*', $this->widget->widget), 43 | Gtk::getFFI()->cast('GtkWidget*', $widget->getWidget()->widget) 44 | ); 45 | } 46 | 47 | public function remove(WidgetInterface $widget) 48 | { 49 | return Gtk::getFFI()->gtk_header_bar_remove( 50 | Gtk::getFFI()->cast('GtkHeaderBar*', $this->widget->widget), 51 | Gtk::getFFI()->cast('GtkWidget*', $widget->getWidget()->widget) 52 | ); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /headers/400-GtkGrid.h: -------------------------------------------------------------------------------- 1 | extern void gtk_grid_attach ( GtkGrid* grid, GtkWidget* child, int column, int row, int width, int height ); 2 | extern void gtk_grid_attach_next_to ( GtkGrid* grid, GtkWidget* child, GtkWidget* sibling, GtkPositionType side, int width, int height ); 3 | extern int gtk_grid_get_baseline_row ( GtkGrid* grid ); 4 | extern GtkWidget* gtk_grid_new ( void ); 5 | extern gboolean gtk_grid_get_column_homogeneous ( GtkGrid* grid ); 6 | extern guint gtk_grid_get_column_spacing ( GtkGrid* grid ); 7 | extern GtkBaselinePosition gtk_grid_get_row_baseline_position ( GtkGrid* grid, int row ); 8 | extern GtkWidget* gtk_grid_get_child_at ( GtkGrid* grid, int column, int row ); 9 | extern gboolean gtk_grid_get_row_homogeneous ( GtkGrid* grid ); 10 | extern guint gtk_grid_get_row_spacing ( GtkGrid* grid ); 11 | extern void gtk_grid_insert_row ( GtkGrid* grid, int position ); 12 | extern void gtk_grid_insert_next_to ( GtkGrid* grid, GtkWidget* sibling, GtkPositionType side ); 13 | extern void gtk_grid_remove ( GtkGrid* grid, GtkWidget* child ); 14 | extern void gtk_grid_insert_column ( GtkGrid* grid, int position ); 15 | extern void gtk_grid_remove_column ( GtkGrid* grid, int position ); 16 | extern void gtk_grid_query_child ( GtkGrid* grid, GtkWidget* child, int* column, int* row, int* width, int* height ); 17 | extern void gtk_grid_remove_row ( GtkGrid* grid, int position ); 18 | extern void gtk_grid_set_baseline_row ( GtkGrid* grid, int row ); 19 | extern void gtk_grid_set_column_spacing ( GtkGrid* grid, guint spacing ); 20 | extern void gtk_grid_set_row_spacing ( GtkGrid* grid, guint spacing ); 21 | extern void gtk_grid_set_row_homogeneous ( GtkGrid* grid, gboolean homogeneous ); 22 | extern void gtk_grid_set_row_baseline_position ( GtkGrid* grid, int row, GtkBaselinePosition pos ); 23 | extern void gtk_grid_set_column_homogeneous ( GtkGrid* grid, gboolean homogeneous ); 24 | -------------------------------------------------------------------------------- /headers/400-GtkPrintUnixDialog.h: -------------------------------------------------------------------------------- 1 | extern gboolean gtk_print_unix_dialog_get_embed_page_setup ( GtkPrintUnixDialog* dialog ); 2 | extern void gtk_print_unix_dialog_add_custom_tab ( GtkPrintUnixDialog* dialog, GtkWidget* child, GtkWidget* tab_label ); 3 | extern GtkWidget* gtk_print_unix_dialog_new ( const char* title, GtkWindow* parent ); 4 | extern int gtk_print_unix_dialog_get_current_page ( GtkPrintUnixDialog* dialog ); 5 | extern GtkPrintCapabilities gtk_print_unix_dialog_get_manual_capabilities ( GtkPrintUnixDialog* dialog ); 6 | extern GtkPageSetup* gtk_print_unix_dialog_get_page_setup ( GtkPrintUnixDialog* dialog ); 7 | extern gboolean gtk_print_unix_dialog_get_has_selection ( GtkPrintUnixDialog* dialog ); 8 | extern gboolean gtk_print_unix_dialog_get_page_setup_set ( GtkPrintUnixDialog* dialog ); 9 | extern GtkPrintSettings* gtk_print_unix_dialog_get_settings ( GtkPrintUnixDialog* dialog ); 10 | extern gboolean gtk_print_unix_dialog_get_support_selection ( GtkPrintUnixDialog* dialog ); 11 | extern GtkPrinter* gtk_print_unix_dialog_get_selected_printer ( GtkPrintUnixDialog* dialog ); 12 | extern void gtk_print_unix_dialog_set_current_page ( GtkPrintUnixDialog* dialog, int current_page ); 13 | extern void gtk_print_unix_dialog_set_has_selection ( GtkPrintUnixDialog* dialog, gboolean has_selection ); 14 | extern void gtk_print_unix_dialog_set_page_setup ( GtkPrintUnixDialog* dialog, GtkPageSetup* page_setup ); 15 | extern void gtk_print_unix_dialog_set_manual_capabilities ( GtkPrintUnixDialog* dialog, GtkPrintCapabilities capabilities ); 16 | extern void gtk_print_unix_dialog_set_embed_page_setup ( GtkPrintUnixDialog* dialog, gboolean embed ); 17 | extern void gtk_print_unix_dialog_set_support_selection ( GtkPrintUnixDialog* dialog, gboolean support_selection ); 18 | extern void gtk_print_unix_dialog_set_settings ( GtkPrintUnixDialog* dialog, GtkPrintSettings* settings ); 19 | -------------------------------------------------------------------------------- /headers/400-GtkStack.h: -------------------------------------------------------------------------------- 1 | extern GtkStackPage* gtk_stack_add_child ( GtkStack* stack, GtkWidget* child ); 2 | extern GtkStackPage* gtk_stack_add_titled ( GtkStack* stack, GtkWidget* child, const char* name, const char* title ); 3 | extern GtkWidget* gtk_stack_new ( void ); 4 | extern GtkStackPage* gtk_stack_add_named ( GtkStack* stack, GtkWidget* child, const char* name ); 5 | extern gboolean gtk_stack_get_hhomogeneous ( GtkStack* stack ); 6 | extern gboolean gtk_stack_get_interpolate_size ( GtkStack* stack ); 7 | extern GtkWidget* gtk_stack_get_child_by_name ( GtkStack* stack, const char* name ); 8 | extern GtkStackPage* gtk_stack_get_page ( GtkStack* stack, GtkWidget* child ); 9 | extern GtkSelectionModel* gtk_stack_get_pages ( GtkStack* stack ); 10 | extern GtkStackTransitionType gtk_stack_get_transition_type ( GtkStack* stack ); 11 | extern guint gtk_stack_get_transition_duration ( GtkStack* stack ); 12 | extern gboolean gtk_stack_get_vhomogeneous ( GtkStack* stack ); 13 | extern gboolean gtk_stack_get_transition_running ( GtkStack* stack ); 14 | extern const char* gtk_stack_get_visible_child_name ( GtkStack* stack ); 15 | extern GtkWidget* gtk_stack_get_visible_child ( GtkStack* stack ); 16 | extern void gtk_stack_remove ( GtkStack* stack, GtkWidget* child ); 17 | extern void gtk_stack_set_interpolate_size ( GtkStack* stack, gboolean interpolate_size ); 18 | extern void gtk_stack_set_hhomogeneous ( GtkStack* stack, gboolean hhomogeneous ); 19 | extern void gtk_stack_set_transition_duration ( GtkStack* stack, guint duration ); 20 | extern void gtk_stack_set_transition_type ( GtkStack* stack, GtkStackTransitionType transition ); 21 | extern void gtk_stack_set_visible_child_name ( GtkStack* stack, const char* name ); 22 | extern void gtk_stack_set_vhomogeneous ( GtkStack* stack, gboolean vhomogeneous ); 23 | extern void gtk_stack_set_visible_child_full ( GtkStack* stack, const char* name, GtkStackTransitionType transition ); 24 | extern void gtk_stack_set_visible_child ( GtkStack* stack, GtkWidget* child ); 25 | -------------------------------------------------------------------------------- /src/Gtk/Window.php: -------------------------------------------------------------------------------- 1 | widget = new Widget(Gtk::getFFI()->gtk_window_new()); 33 | } 34 | 35 | public function getDefaultSize(): array 36 | { 37 | $width = Gtk::getFFI()->new("gint", false); 38 | $height = Gtk::getFFI()->new("gint", false); 39 | 40 | Gtk::getFFI()->gtk_window_get_default_size(Gtk::getFFI()->cast($this->cast . ' *', $this->widget->widget), \FFI::addr($width), \FFI::addr($height)); 41 | /** @psalm-suppress UndefinedPropertyFetch*/ 42 | return [ 43 | 'width' => $width->cdata, 44 | 'height' => $height->cdata, 45 | ]; 46 | } 47 | 48 | public function setChild(WidgetInterface $widget) 49 | { 50 | Gtk::getFFI()->gtk_window_set_child(Gtk::getFFI()->cast($this->cast . ' *', $this->widget->widget), Gtk::getFFI()->cast("GtkWidget*", $widget->getWidget()->widget)); 51 | } 52 | 53 | public function setTitlebar(WidgetInterface $widget) 54 | { 55 | Gtk::getFFI()->gtk_window_set_titlebar( 56 | Gtk::getFFI()->cast($this->cast . ' *', $this->widget->widget), 57 | Gtk::getFFI()->cast("GtkWidget*", $widget->getWidget()->widget)); 58 | } 59 | } -------------------------------------------------------------------------------- /headers/400-GtkTreeSelection.h: -------------------------------------------------------------------------------- 1 | extern GtkSelectionMode gtk_tree_selection_get_mode ( GtkTreeSelection* selection ); 2 | extern GtkTreeSelectionFunc gtk_tree_selection_get_select_function ( GtkTreeSelection* selection ); 3 | extern gboolean gtk_tree_selection_get_selected ( GtkTreeSelection* selection, GtkTreeModel** model, GtkTreeIter* iter ); 4 | extern gpointer gtk_tree_selection_get_user_data ( GtkTreeSelection* selection ); 5 | extern int gtk_tree_selection_count_selected_rows ( GtkTreeSelection* selection ); 6 | extern GList* gtk_tree_selection_get_selected_rows ( GtkTreeSelection* selection, GtkTreeModel** model ); 7 | extern GtkTreeView* gtk_tree_selection_get_tree_view ( GtkTreeSelection* selection ); 8 | extern gboolean gtk_tree_selection_iter_is_selected ( GtkTreeSelection* selection, GtkTreeIter* iter ); 9 | extern gboolean gtk_tree_selection_path_is_selected ( GtkTreeSelection* selection, GtkTreePath* path ); 10 | extern void gtk_tree_selection_select_all ( GtkTreeSelection* selection ); 11 | extern void gtk_tree_selection_select_path ( GtkTreeSelection* selection, GtkTreePath* path ); 12 | extern void gtk_tree_selection_select_range ( GtkTreeSelection* selection, GtkTreePath* start_path, GtkTreePath* end_path ); 13 | extern void gtk_tree_selection_select_iter ( GtkTreeSelection* selection, GtkTreeIter* iter ); 14 | extern void gtk_tree_selection_selected_foreach ( GtkTreeSelection* selection, GtkTreeSelectionForeachFunc func, gpointer data ); 15 | extern void gtk_tree_selection_set_select_function ( GtkTreeSelection* selection, GtkTreeSelectionFunc func, gpointer data, GDestroyNotify destroy ); 16 | extern void gtk_tree_selection_unselect_iter ( GtkTreeSelection* selection, GtkTreeIter* iter ); 17 | extern void gtk_tree_selection_unselect_all ( GtkTreeSelection* selection ); 18 | extern void gtk_tree_selection_unselect_path ( GtkTreeSelection* selection, GtkTreePath* path ); 19 | extern void gtk_tree_selection_unselect_range ( GtkTreeSelection* selection, GtkTreePath* start_path, GtkTreePath* end_path ); 20 | extern void gtk_tree_selection_set_mode ( GtkTreeSelection* selection, GtkSelectionMode type ); 21 | -------------------------------------------------------------------------------- /headers/400-GtkListStore.h: -------------------------------------------------------------------------------- 1 | extern void gtk_list_store_append ( GtkListStore* list_store, GtkTreeIter* iter ); 2 | extern GtkListStore* gtk_list_store_newv ( int n_columns, GType* types ); 3 | extern GtkListStore* gtk_list_store_new ( int n_columns, ... ); 4 | extern void gtk_list_store_insert ( GtkListStore* list_store, GtkTreeIter* iter, int position ); 5 | extern void gtk_list_store_clear ( GtkListStore* list_store ); 6 | extern void gtk_list_store_insert_after ( GtkListStore* list_store, GtkTreeIter* iter, GtkTreeIter* sibling ); 7 | extern void gtk_list_store_insert_with_values ( GtkListStore* list_store, GtkTreeIter* iter, int position, ... ); 8 | extern void gtk_list_store_insert_with_valuesv ( GtkListStore* list_store, GtkTreeIter* iter, int position, int* columns, GValue* values, int n_values ); 9 | extern void gtk_list_store_insert_before ( GtkListStore* list_store, GtkTreeIter* iter, GtkTreeIter* sibling ); 10 | extern gboolean gtk_list_store_iter_is_valid ( GtkListStore* list_store, GtkTreeIter* iter ); 11 | extern void gtk_list_store_move_before ( GtkListStore* store, GtkTreeIter* iter, GtkTreeIter* position ); 12 | extern void gtk_list_store_prepend ( GtkListStore* list_store, GtkTreeIter* iter ); 13 | extern gboolean gtk_list_store_remove ( GtkListStore* list_store, GtkTreeIter* iter ); 14 | extern void gtk_list_store_reorder ( GtkListStore* store, int* new_order ); 15 | extern void gtk_list_store_set_valist ( GtkListStore* list_store, GtkTreeIter* iter, va_list var_args ); 16 | extern void gtk_list_store_set_value ( GtkListStore* list_store, GtkTreeIter* iter, int column, GValue* value ); 17 | extern void gtk_list_store_set_column_types ( GtkListStore* list_store, int n_columns, GType* types ); 18 | extern void gtk_list_store_swap ( GtkListStore* store, GtkTreeIter* a, GtkTreeIter* b ); 19 | extern void gtk_list_store_set ( GtkListStore* list_store, GtkTreeIter* iter, ... ); 20 | extern void gtk_list_store_move_after ( GtkListStore* store, GtkTreeIter* iter, GtkTreeIter* position ); 21 | extern void gtk_list_store_set_valuesv ( GtkListStore* list_store, GtkTreeIter* iter, int* columns, GValue* values, int n_values ); 22 | -------------------------------------------------------------------------------- /headers/400-GtkAssistant.h: -------------------------------------------------------------------------------- 1 | extern void gtk_assistant_add_action_widget ( GtkAssistant* assistant, GtkWidget* child ); 2 | extern void gtk_assistant_commit ( GtkAssistant* assistant ); 3 | extern GtkWidget* gtk_assistant_new ( void ); 4 | extern int gtk_assistant_append_page ( GtkAssistant* assistant, GtkWidget* page ); 5 | extern int gtk_assistant_get_current_page ( GtkAssistant* assistant ); 6 | extern int gtk_assistant_get_n_pages ( GtkAssistant* assistant ); 7 | extern GtkAssistantPage* gtk_assistant_get_page ( GtkAssistant* assistant, GtkWidget* child ); 8 | extern gboolean gtk_assistant_get_page_complete ( GtkAssistant* assistant, GtkWidget* page ); 9 | extern GtkWidget* gtk_assistant_get_nth_page ( GtkAssistant* assistant, int page_num ); 10 | extern const char* gtk_assistant_get_page_title ( GtkAssistant* assistant, GtkWidget* page ); 11 | extern int gtk_assistant_prepend_page ( GtkAssistant* assistant, GtkWidget* page ); 12 | extern GtkAssistantPageType gtk_assistant_get_page_type ( GtkAssistant* assistant, GtkWidget* page ); 13 | extern GListModel* gtk_assistant_get_pages ( GtkAssistant* assistant ); 14 | extern void gtk_assistant_next_page ( GtkAssistant* assistant ); 15 | extern int gtk_assistant_insert_page ( GtkAssistant* assistant, GtkWidget* page, int position ); 16 | extern void gtk_assistant_previous_page ( GtkAssistant* assistant ); 17 | extern void gtk_assistant_set_forward_page_func ( GtkAssistant* assistant, GtkAssistantPageFunc page_func, gpointer data, GDestroyNotify destroy ); 18 | extern void gtk_assistant_remove_action_widget ( GtkAssistant* assistant, GtkWidget* child ); 19 | extern void gtk_assistant_set_current_page ( GtkAssistant* assistant, int page_num ); 20 | extern void gtk_assistant_remove_page ( GtkAssistant* assistant, int page_num ); 21 | extern void gtk_assistant_set_page_type ( GtkAssistant* assistant, GtkWidget* page, GtkAssistantPageType type ); 22 | extern void gtk_assistant_set_page_complete ( GtkAssistant* assistant, GtkWidget* page, gboolean complete ); 23 | extern void gtk_assistant_set_page_title ( GtkAssistant* assistant, GtkWidget* page, const char* title ); 24 | extern void gtk_assistant_update_buttons_state ( GtkAssistant* assistant ); 25 | -------------------------------------------------------------------------------- /headers/400-GtkMenuButton.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_menu_button_get_child ( GtkMenuButton* menu_button ); 2 | extern gboolean gtk_menu_button_get_always_show_arrow ( GtkMenuButton* menu_button ); 3 | extern GtkArrowType gtk_menu_button_get_direction ( GtkMenuButton* menu_button ); 4 | extern GtkWidget* gtk_menu_button_new ( void ); 5 | extern gboolean gtk_menu_button_get_has_frame ( GtkMenuButton* menu_button ); 6 | extern const char* gtk_menu_button_get_icon_name ( GtkMenuButton* menu_button ); 7 | extern const char* gtk_menu_button_get_label ( GtkMenuButton* menu_button ); 8 | extern GtkPopover* gtk_menu_button_get_popover ( GtkMenuButton* menu_button ); 9 | extern gboolean gtk_menu_button_get_primary ( GtkMenuButton* menu_button ); 10 | extern GMenuModel* gtk_menu_button_get_menu_model ( GtkMenuButton* menu_button ); 11 | extern void gtk_menu_button_set_always_show_arrow ( GtkMenuButton* menu_button, gboolean always_show_arrow ); 12 | extern void gtk_menu_button_set_child ( GtkMenuButton* menu_button, GtkWidget* child ); 13 | extern void gtk_menu_button_popup ( GtkMenuButton* menu_button ); 14 | extern void gtk_menu_button_set_create_popup_func ( GtkMenuButton* menu_button, GtkMenuButtonCreatePopupFunc func, gpointer user_data, GDestroyNotify destroy_notify ); 15 | extern gboolean gtk_menu_button_get_use_underline ( GtkMenuButton* menu_button ); 16 | extern void gtk_menu_button_popdown ( GtkMenuButton* menu_button ); 17 | extern void gtk_menu_button_set_icon_name ( GtkMenuButton* menu_button, const char* icon_name ); 18 | extern void gtk_menu_button_set_has_frame ( GtkMenuButton* menu_button, gboolean has_frame ); 19 | extern void gtk_menu_button_set_direction ( GtkMenuButton* menu_button, GtkArrowType direction ); 20 | extern void gtk_menu_button_set_primary ( GtkMenuButton* menu_button, gboolean primary ); 21 | extern void gtk_menu_button_set_menu_model ( GtkMenuButton* menu_button, GMenuModel* menu_model ); 22 | extern void gtk_menu_button_set_label ( GtkMenuButton* menu_button, const char* label ); 23 | extern void gtk_menu_button_set_popover ( GtkMenuButton* menu_button, GtkWidget* popover ); 24 | extern void gtk_menu_button_set_use_underline ( GtkMenuButton* menu_button, gboolean use_underline ); 25 | -------------------------------------------------------------------------------- /src/Gtk.php: -------------------------------------------------------------------------------- 1 | filesName[$file])) { 19 | $this->filesName[$file] = ''; 20 | } 21 | $this->filesName[$file] .= file_get_contents(__DIR__ . "/../headers/" . $file) . PHP_EOL . PHP_EOL; 22 | } else { 23 | if ($file == '.' || $file == '..') { 24 | continue; 25 | } 26 | foreach (scandir(__DIR__ . '/../headers/' . $file) as $value) { 27 | if (is_file(__DIR__ . "/../headers/" . $file . '/' . $value)) { 28 | $this->filesName[$value] .= file_get_contents(__DIR__ . "/../headers/" . $file . '/' . $value) . PHP_EOL . PHP_EOL; 29 | } 30 | } 31 | } 32 | } 33 | 34 | $this->ffi = \FFI::cdef(implode(PHP_EOL, $this->filesName), $configuration->path); 35 | $this->ffi->gtk_init(); 36 | } 37 | 38 | /** 39 | * Singleton 40 | */ 41 | public static function getInstance(Configuration $configuration = new Configuration()) 42 | { 43 | if(self::$instance === NULL) { 44 | self::$instance = new self($configuration); 45 | } 46 | return self::$instance; 47 | } 48 | 49 | /** 50 | * @return mixed 51 | */ 52 | public static function getFFI() 53 | { 54 | $instance = self::getInstance(); 55 | 56 | return $instance->ffi; 57 | } 58 | 59 | public static function getMajorVersion(): int 60 | { 61 | return self::getFFI()->gtk_get_major_version(); 62 | } 63 | 64 | public static function getMinorVersion(): int 65 | { 66 | return self::getFFI()->gtk_get_minor_version(); 67 | } 68 | 69 | public static function getMicroVersion(): int 70 | { 71 | return self::getFFI()->gtk_get_micro_version(); 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /headers/400-GtkComboBox.h: -------------------------------------------------------------------------------- 1 | extern GtkWidget* gtk_combo_box_new_with_model ( GtkTreeModel* model ); 2 | extern GtkWidget* gtk_combo_box_new_with_model_and_entry ( GtkTreeModel* model ); 3 | extern GtkWidget* gtk_combo_box_new_with_entry ( void ); 4 | extern GtkWidget* gtk_combo_box_new ( void ); 5 | extern const char* gtk_combo_box_get_active_id ( GtkComboBox* combo_box ); 6 | extern gboolean gtk_combo_box_get_active_iter ( GtkComboBox* combo_box, GtkTreeIter* iter ); 7 | extern GtkWidget* gtk_combo_box_get_child ( GtkComboBox* combo_box ); 8 | extern int gtk_combo_box_get_active ( GtkComboBox* combo_box ); 9 | extern GtkSensitivityType gtk_combo_box_get_button_sensitivity ( GtkComboBox* combo_box ); 10 | extern int gtk_combo_box_get_entry_text_column ( GtkComboBox* combo_box ); 11 | extern gboolean gtk_combo_box_get_has_entry ( GtkComboBox* combo_box ); 12 | extern GtkTreeModel* gtk_combo_box_get_model ( GtkComboBox* combo_box ); 13 | extern int gtk_combo_box_get_id_column ( GtkComboBox* combo_box ); 14 | extern gboolean gtk_combo_box_get_popup_fixed_width ( GtkComboBox* combo_box ); 15 | extern void gtk_combo_box_popup ( GtkComboBox* combo_box ); 16 | extern void gtk_combo_box_popdown ( GtkComboBox* combo_box ); 17 | extern GtkTreeViewRowSeparatorFunc gtk_combo_box_get_row_separator_func ( GtkComboBox* combo_box ); 18 | extern void gtk_combo_box_set_active ( GtkComboBox* combo_box, int index_ ); 19 | extern void gtk_combo_box_popup_for_device ( GtkComboBox* combo_box, GdkDevice* device ); 20 | extern gboolean gtk_combo_box_set_active_id ( GtkComboBox* combo_box, const char* active_id ); 21 | extern void gtk_combo_box_set_child ( GtkComboBox* combo_box, GtkWidget* child ); 22 | extern void gtk_combo_box_set_entry_text_column ( GtkComboBox* combo_box, int text_column ); 23 | extern void gtk_combo_box_set_button_sensitivity ( GtkComboBox* combo_box, GtkSensitivityType sensitivity ); 24 | extern void gtk_combo_box_set_active_iter ( GtkComboBox* combo_box, GtkTreeIter* iter ); 25 | extern void gtk_combo_box_set_id_column ( GtkComboBox* combo_box, int id_column ); 26 | extern void gtk_combo_box_set_model ( GtkComboBox* combo_box, GtkTreeModel* model ); 27 | extern void gtk_combo_box_set_row_separator_func ( GtkComboBox* combo_box, GtkTreeViewRowSeparatorFunc func, gpointer data, GDestroyNotify destroy ); 28 | extern void gtk_combo_box_set_popup_fixed_width ( GtkComboBox* combo_box, gboolean fixed ); 29 | -------------------------------------------------------------------------------- /headers/400-GtkSpinButton.h: -------------------------------------------------------------------------------- 1 | extern void gtk_spin_button_configure ( GtkSpinButton* spin_button, GtkAdjustment* adjustment, double climb_rate, guint digits ); 2 | extern GtkWidget* gtk_spin_button_new_with_range ( double min, double max, double step ); 3 | extern GtkWidget* gtk_spin_button_new ( GtkAdjustment* adjustment, double climb_rate, guint digits ); 4 | extern guint gtk_spin_button_get_digits ( GtkSpinButton* spin_button ); 5 | extern GtkAdjustment* gtk_spin_button_get_adjustment ( GtkSpinButton* spin_button ); 6 | extern void gtk_spin_button_get_increments ( GtkSpinButton* spin_button, double* step, double* page ); 7 | extern gboolean gtk_spin_button_get_numeric ( GtkSpinButton* spin_button ); 8 | extern gboolean gtk_spin_button_get_snap_to_ticks ( GtkSpinButton* spin_button ); 9 | extern double gtk_spin_button_get_climb_rate ( GtkSpinButton* spin_button ); 10 | extern GtkSpinButtonUpdatePolicy gtk_spin_button_get_update_policy ( GtkSpinButton* spin_button ); 11 | extern void gtk_spin_button_get_range ( GtkSpinButton* spin_button, double* min, double* max ); 12 | extern double gtk_spin_button_get_value ( GtkSpinButton* spin_button ); 13 | extern gboolean gtk_spin_button_get_wrap ( GtkSpinButton* spin_button ); 14 | extern int gtk_spin_button_get_value_as_int ( GtkSpinButton* spin_button ); 15 | extern void gtk_spin_button_set_adjustment ( GtkSpinButton* spin_button, GtkAdjustment* adjustment ); 16 | extern void gtk_spin_button_set_climb_rate ( GtkSpinButton* spin_button, double climb_rate ); 17 | extern void gtk_spin_button_set_increments ( GtkSpinButton* spin_button, double step, double page ); 18 | extern void gtk_spin_button_set_numeric ( GtkSpinButton* spin_button, gboolean numeric ); 19 | extern void gtk_spin_button_set_digits ( GtkSpinButton* spin_button, guint digits ); 20 | extern void gtk_spin_button_set_range ( GtkSpinButton* spin_button, double min, double max ); 21 | extern void gtk_spin_button_set_update_policy ( GtkSpinButton* spin_button, GtkSpinButtonUpdatePolicy policy ); 22 | extern void gtk_spin_button_set_snap_to_ticks ( GtkSpinButton* spin_button, gboolean snap_to_ticks ); 23 | extern void gtk_spin_button_set_value ( GtkSpinButton* spin_button, double value ); 24 | extern void gtk_spin_button_spin ( GtkSpinButton* spin_button, GtkSpinType direction, double increment ); 25 | extern void gtk_spin_button_set_wrap ( GtkSpinButton* spin_button, gboolean wrap ); 26 | extern void gtk_spin_button_update ( GtkSpinButton* spin_button ); 27 | --------------------------------------------------------------------------------