note legal: "See notice at end of class." status: "See notice at end of class." class GTK inherit GTK3 feature -- Session type is_x11_session: BOOLEAN once Result := attached {EXECUTION_ENVIRONMENT}.item ("XDG_SESSION_TYPE") as l_session_type and then l_session_type.is_case_insensitive_equal_general ("x11") ensure instance_free: class end is_wayland_session: BOOLEAN once Result := attached {EXECUTION_ENVIRONMENT}.item ("XDG_SESSION_TYPE") as l_session_type and then l_session_type.is_case_insensitive_equal_general ("wayland") ensure instance_free: class end feature -- GTK version frozen gtk_maj_ver: INTEGER_32 external "C [macro <ev_gtk.h>]" alias "GTK_MAJOR_VERSION" end frozen gtk_min_ver: INTEGER_32 external "C [macro <ev_gtk.h>]" alias "GTK_MINOR_VERSION" end frozen gtk_mic_ver: INTEGER_32 external "C [macro <ev_gtk.h>]" alias "GTK_MICRO_VERSION" end feature -- Module frozen g_module_supported: BOOLEAN external "C signature (): gboolean use <gmodule.h>" end frozen g_module_symbol (a_module, a_symbol_name: POINTER; a_symbol: TYPED_POINTER [POINTER]): BOOLEAN external "C signature (GModule*, gchar*, gpointer*): gboolean use <gmodule.h>" end frozen g_module_open (a_module_name: POINTER; a_flags: INTEGER_32): POINTER external "C signature (gchar*, GModuleFlags): GModule* use <gmodule.h>" end frozen g_module_close (a_module: POINTER): BOOLEAN external "C signature (GModule*): gboolean use <gmodule.h>" end feature -- Settings frozen gtk_settings_get_default: POINTER external "C inline use <ev_gtk.h>" alias "return gtk_settings_get_default();" end feature -- Window frozen gtk_is_window (w: POINTER): BOOLEAN external "C [macro <ev_gtk.h>]" alias "GTK_IS_WINDOW" end frozen gtk_window_set_skip_taskbar_hint (a_window: POINTER; a_setting: BOOLEAN) external "C inline use <ev_gtk.h>" alias "gtk_window_set_skip_taskbar_hint ((GtkWindow*) $a_window, (gboolean) $a_setting);" end frozen gtk_window_set_skip_pager_hint (a_window: POINTER; a_setting: BOOLEAN) external "C inline use <ev_gtk.h>" alias "gtk_window_set_skip_pager_hint ((GtkWindow*) $a_window, (gboolean) $a_setting);" end frozen gtk_window_get_title (a_c_struct: POINTER): POINTER external "C signature (GtkWindow*): gchar* use <ev_gtk.h>" end frozen gtk_window_get_transient_for (a_c_struct: POINTER): POINTER external "C signature (GtkWindow*): GtkWindow* use <ev_gtk.h>" end frozen gtk_window_new (a_type: INTEGER_32): POINTER external "C (GtkWindowType): GtkWidget* | <ev_gtk.h>" end frozen gtk_window_set_default_size (a_window: POINTER; a_width: INTEGER_32; a_height: INTEGER_32) external "C (GtkWindow*, gint, gint) | <ev_gtk.h>" end frozen gtk_window_set_resizable (a_window: POINTER; a_resizable: BOOLEAN) external "C (GtkWindow*, gboolean) | <ev_gtk.h>" end frozen gtk_window_get_default_size (a_window: POINTER; a_width: POINTER; a_height: POINTER) external "C (GtkWindow*, EIF_INTEGER_32*, EIF_INTEGER_32*) | <ev_gtk.h>" end frozen gtk_window_set_focus (a_window: POINTER; a_focus: POINTER) external "C (GtkWindow*, GtkWidget*) | <ev_gtk.h>" end frozen gtk_window_set_geometry_hints (a_window: POINTER; a_geometry_widget: POINTER; a_geometry: POINTER; a_geom_mask: INTEGER_32) external "C (GtkWindow*, GtkWidget*, GdkGeometry*, GdkWindowHints) | <ev_gtk.h>" end frozen gtk_window_set_type_hint (a_window: POINTER; a_type_hint: INTEGER_32) external "C (GtkWindow*, GdkWindowTypeHint) | <ev_gtk.h>" end frozen gtk_window_set_position (a_window: POINTER; a_position: INTEGER_32) external "C (GtkWindow*, GtkWindowPosition) | <ev_gtk.h>" end frozen gtk_window_set_title (a_window: POINTER; a_title: POINTER) external "C (GtkWindow*, gchar*) | <ev_gtk.h>" end frozen gtk_window_set_transient_for (a_window: POINTER; a_parent: POINTER) external "C (GtkWindow*, GtkWindow*) | <ev_gtk.h>" end frozen top_level_active_gtk_window: POINTER -- Active top level GtkWindow. local glist, p: POINTER i, n: INTEGER do glist := gtk_window_list_toplevels if not glist.is_default_pointer then n := g_list_length (glist) from i := 1 until i > n or not Result.is_default_pointer loop p := g_list_nth_data (glist, i - 1) if gtk_window_is_active (p) then Result := p end i := i + 1 end end {GTK}.g_list_free (glist) ensure instance_free: class end frozen gtk_window_list_toplevels: POINTER -- GList* containing all top level windows. external "C inline use <ev_gtk.h>" alias "gtk_window_list_toplevels()" end feature -- Container frozen gtk_is_container (w: POINTER): BOOLEAN external "C [macro <ev_gtk.h>]" alias "GTK_IS_CONTAINER" end frozen gtk_container_add (a_container: POINTER; a_widget: POINTER) external "C (GtkContainer*, GtkWidget*) | <ev_gtk.h>" end frozen gtk_container_check_resize (a_container: POINTER) external "C (GtkContainer*) | <ev_gtk.h>" end frozen gtk_container_get_children (a_container: POINTER): POINTER external "C (GtkContainer*): GList* | <ev_gtk.h>" end frozen gtk_container_remove (a_container: POINTER; a_widget: POINTER) external "C (GtkContainer*, GtkWidget*) | <ev_gtk.h>" end frozen gtk_container_set_border_width (a_container: POINTER; a_border_width: INTEGER_32) external "C (GtkContainer*, guint) | <ev_gtk.h>" end frozen gtk_container_get_border_width (a_c_struct: POINTER): INTEGER_32 external "C signature (GtkContainer*): EIF_INTEGER use <ev_gtk.h>" end feature -- Widgets gtk_is_widget (obj: POINTER): BOOLEAN external "C inline use <ev_gtk.h>" alias "GTK_IS_WIDGET($obj)" end gtk_widget_set_hexpand (a_widget: POINTER; a_expand: BOOLEAN) external "C signature (GtkWidget*, gboolean) use <ev_gtk.h>" end gtk_widget_set_vexpand (a_widget: POINTER; a_expand: BOOLEAN) external "C signature (GtkWidget*, gboolean) use <ev_gtk.h>" end gtk_widget_get_hexpand (a_widget: POINTER): BOOLEAN external "C signature (GtkWidget*): gboolean use <ev_gtk.h>" end gtk_widget_get_vexpand (a_widget: POINTER): BOOLEAN external "C signature (GtkWidget*): gboolean use <ev_gtk.h>" end gtk_widget_set_hexpand_set (a_widget: POINTER; a_expand: BOOLEAN) external "C signature (GtkWidget*, gboolean) use <ev_gtk.h>" end gtk_widget_set_vexpand_set (a_widget: POINTER; a_expand: BOOLEAN) external "C signature (GtkWidget*, gboolean) use <ev_gtk.h>" end gtk_widget_get_hexpand_set (a_widget: POINTER): BOOLEAN external "C signature (GtkWidget*): gboolean use <ev_gtk.h>" end gtk_widget_get_vexpand_set (a_widget: POINTER): BOOLEAN external "C signature (GtkWidget*): gboolean use <ev_gtk.h>" end gtk_widget_compute_expand (a_widget: POINTER; a_orientation: INTEGER): BOOLEAN external "C signature (GtkWidget*, GtkOrientation): gboolean use <ev_gtk.h>" end gtk_widget_queue_compute_expand (a_widget: POINTER) external "C signature (GtkWidget*) use <ev_gtk.h>" end gtk_widget_get_display (a_widget: POINTER): POINTER external "C inline use <ev_gtk.h>" alias "return gtk_widget_get_display ((GtkWidget *)$a_widget)" end frozen gtk_widget_is_sensitive (a_widget: POINTER): BOOLEAN external "C signature (GtkWidget*): gboolean use <ev_gtk.h>" end frozen gtk_widget_get_sensitive (a_widget: POINTER): BOOLEAN external "C signature (GtkWidget*): gboolean use <ev_gtk.h>" end frozen gtk_widget_get_visible (a_widget: POINTER): BOOLEAN external "C signature (GtkWidget*): gboolean use <ev_gtk.h>" end frozen gtk_widget_is_visible (a_widget: POINTER): BOOLEAN external "C signature (GtkWidget*): gboolean use <ev_gtk.h>" end frozen gtk_widget_is_focus (a_widget: POINTER): BOOLEAN external "C signature (GtkWidget*): gboolean use <ev_gtk.h>" end frozen gtk_widget_has_focus (a_widget: POINTER): BOOLEAN external "C signature (GtkWidget*): gboolean use <ev_gtk.h>" end frozen gtk_widget_get_allocation (a_c_struct, a_allocation: POINTER) external "C signature (GtkWidget*, GtkAllocation*) use <ev_gtk.h>" end frozen gtk_widget_get_allocated_size (a_widget: POINTER; allocation: POINTER; baseline: POINTER) external "C inline use <ev_gtk.h>" alias "return gtk_widget_get_allocated_size ((GtkWidget *)$a_widget, (GtkAllocation *)$allocation, (int*) $baseline);" end frozen gtk_widget_get_allocated_width (a_c_struct: POINTER): INTEGER_32 external "C signature (GtkWidget*): int use <ev_gtk.h>" end frozen gtk_widget_get_allocated_height (a_c_struct: POINTER): INTEGER_32 external "C signature (GtkWidget*): int use <ev_gtk.h>" end frozen gtk_widget_get_parent (a_c_struct: POINTER): POINTER external "C signature (GtkWidget*): EIF_POINTER use <ev_gtk.h>" end frozen gtk_widget_get_window (a_c_struct: POINTER): POINTER external "C signature (GtkWidget*): GdkWindow* use <ev_gtk.h>" end frozen gtk_widget_get_parent_window (a_c_struct: POINTER): POINTER external "C signature (GtkWidget*): GdkWindow* use <ev_gtk.h>" end frozen gtk_widget_show_all (widget: POINTER) note eis:"name=gtk_widget_show_all","src=https://developer.gnome.org/gtk3/stable/GtkWidget.html#gtk-widget-show-all" external "C inline use <ev_gtk.h>" alias "gtk_widget_show_all ((GtkWidget *)$widget)" end frozen gtk_widget_get_state_flags (a_gtk_widget: POINTER): INTEGER_32 external "C signature (GtkWidget*): EIF_INTEGER use <ev_gtk.h>" end frozen gtk_widget_add_events (a_widget: POINTER; a_events: INTEGER_32) external "C (GtkWidget*, gint) | <ev_gtk.h>" end frozen gtk_widget_set_events (a_widget: POINTER; a_events: INTEGER_32) external "C (GtkWidget*, gint) | <ev_gtk.h>" end frozen gtk_widget_get_events (a_widget: POINTER): INTEGER_32 external "C (GtkWidget*): gint | <ev_gtk.h>" end frozen gtk_widget_event (a_widget: POINTER; a_event: POINTER): BOOLEAN external "C (GtkWidget*, GdkEvent*): gboolean | <ev_gtk.h>" end frozen gtk_widget_get_toplevel (a_widget: POINTER): POINTER external "C (GtkWidget*): GtkWidget* | <ev_gtk.h>" end frozen gtk_widget_grab_default (a_widget: POINTER) external "C (GtkWidget*) | <ev_gtk.h>" end frozen gtk_widget_grab_focus (a_widget: POINTER) external "C (GtkWidget*) | <ev_gtk.h>" end frozen gtk_widget_hide (a_widget: POINTER) external "C (GtkWidget*) | <ev_gtk.h>" end frozen gtk_widget_queue_draw (a_widget: POINTER) external "C inline use <ev_gtk.h>" alias "gtk_widget_queue_draw ((GtkWidget *)$a_widget)" end frozen gtk_widget_queue_draw_area (a_widget: POINTER; a_x: INTEGER_32; a_y: INTEGER_32; a_width: INTEGER_32; a_height: INTEGER_32) external "C inline use <ev_gtk.h>" alias "gtk_widget_queue_draw_area ((GtkWidget *) $a_widget, (gint) $a_x, (gint) $a_y, (gint) $a_width, (gint) $a_height)" end frozen gtk_widget_queue_resize (a_widget: POINTER) external "C (GtkWidget*) | <ev_gtk.h>" end frozen gtk_widget_realize (a_widget: POINTER) external "C (GtkWidget*) | <ev_gtk.h>" end frozen gtk_widget_set_name (a_widget: POINTER; a_name: POINTER) external "C (GtkWidget*, gchar*) | <ev_gtk.h>" end frozen gtk_widget_get_name (a_widget: POINTER): POINTER external "C signature (GtkWidget*): const gchar * use <ev_gtk.h>" end frozen gtk_widget_set_sensitive (a_widget: POINTER; a_sensitive: BOOLEAN) external "C (GtkWidget*, gboolean) | <ev_gtk.h>" end frozen gtk_widget_set_can_focus (a_widget: POINTER; a_sensitive: BOOLEAN) external "C signature (GtkWidget*, gboolean) use <ev_gtk.h>" end frozen gtk_widget_get_can_focus (a_widget: POINTER): BOOLEAN external "C signature (GtkWidget*): gboolean use <ev_gtk.h>" end frozen gtk_widget_show (a_widget: POINTER) external "C (GtkWidget*) | <ev_gtk.h>" end frozen gtk_widget_map (a_widget: POINTER) external "C (GtkWidget*) | <ev_gtk.h>" end frozen gtk_widget_unmap (a_widget: POINTER) external "C (GtkWidget*) | <ev_gtk.h>" end feature -- Widget Style frozen gtk_style_context_get_color (a_context: POINTER; a_state: INTEGER; a_color: POINTER) external "C signature (GtkStyleContext*, GtkStateFlags, GdkRGBA*) use <ev_gtk.h>" end frozen gtk_style_context_save (a_context: POINTER) external "C signature (GtkStyleContext*) use <ev_gtk.h>" end frozen gtk_style_context_restore (a_context: POINTER) external "C signature (GtkStyleContext*) use <ev_gtk.h>" end frozen gtk_style_context_set_state (a_context: POINTER; a_state: INTEGER) external "C signature (GtkStyleContext*, GtkStateFlags) use <ev_gtk.h>" end frozen gtk_style_context_get_state (a_context: POINTER): INTEGER external "C signature (GtkStyleContext*): GtkStateFlags use <ev_gtk.h>" end feature -- Drawing frozen gtk_drawing_area_new: POINTER external "C (): GtkWidget* | <ev_gtk.h>" end feature -- Source frozen g_source_remove (a_source_id: NATURAL_32) external "C signature (guint) use <ev_gtk.h>" end feature -- CellLayout frozen gtk_cell_layout_get_cells (a_gtk_cell_layout: POINTER): POINTER external "C signature (GtkCellLayout*): GList* use <ev_gtk.h>" end feature -- ProgressBar frozen gtk_progress_bar_new: POINTER external "C signature (): GtkWidget* use <ev_gtk.h>" end frozen gtk_progress_bar_set_fraction (a_bar: POINTER; a_fraction: REAL_64) external "C signature (GtkProgressBar*, gdouble) use <ev_gtk.h>" end frozen gtk_progress_bar_set_inverted (a_bar: POINTER; a_boolean: BOOLEAN) external "C signature (GtkProgressBar*, gboolean) use <ev_gtk.h>" end feature -- EntryBuffer frozen gtk_entry_get_buffer (a_entry: POINTER): POINTER external "C signature (GtkEntry*): GtkEntryBuffer* use <ev_gtk.h>" end frozen gtk_entry_buffer_get_text (a_entry_buffer: POINTER): POINTER external "C signature (GtkEntryBuffer*): gchar* use <ev_gtk.h>" end frozen gtk_entry_buffer_set_text (a_entry_buffer: POINTER; a_text: POINTER; a_num_chars: INTEGER) external "C signature (GtkEntryBuffer*, gchar*, gint) use <ev_gtk.h>" end frozen gtk_entry_buffer_insert_text (a_entry_buffer: POINTER; a_position: NATURAL_32; a_text: POINTER; a_num_chars: INTEGER) external "C signature (GtkEntryBuffer*, guint, gchar*, gint) use <ev_gtk.h>" end frozen gtk_entry_buffer_delete_text (a_entry_buffer: POINTER; a_position: NATURAL_32; a_num_chars: INTEGER) external "C signature (GtkEntryBuffer*, guint, gint) use <ev_gtk.h>" end frozen gtk_entry_get_max_length (a_c_struct: POINTER): INTEGER_32 external "C signature (GtkEntry*): EIF_INTEGER use <ev_gtk.h>" end feature -- MASK, enum frozen gtk_state_flag_normal_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_STATE_NORMAL" end frozen gtk_state_flag_prelight_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_STATE_FLAG_PRELIGHT" end frozen gtk_state_flag_selected_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_STATE_FLAG_SELECTED" end frozen gtk_state_flag_active_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_STATE_FLAG_ACTIVE" end frozen gtk_state_flag_insensitive_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_STATE_FLAG_INSENSITIVE" end frozen gtk_state_flag_inconsistent_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_STATE_FLAG_INCONSISTENT" end frozen gtk_state_flag_focused_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_STATE_FLAG_FOCUSED" end frozen gtk_justify_center_enum: INTEGER_32 external "C inline use <ev_gtk.h>" alias "GTK_JUSTIFY_CENTER" end frozen gtk_justify_left_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_JUSTIFY_LEFT" end frozen gtk_justify_right_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_JUSTIFY_RIGHT" end frozen gtk_justify_fill_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_JUSTIFY_FILL" end frozen gtk_shadow_none_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_SHADOW_NONE" end frozen gtk_shadow_etched_in_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_SHADOW_ETCHED_IN" end frozen gtk_shadow_etched_out_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_SHADOW_ETCHED_OUT" end frozen gtk_shadow_in_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_SHADOW_IN" end frozen gtk_shadow_out_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_SHADOW_OUT" end frozen gtk_window_toplevel_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_WINDOW_TOPLEVEL" end frozen gtk_window_popup_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_WINDOW_POPUP" end frozen gtk_win_pos_center_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_WIN_POS_CENTER" end frozen gtk_win_pos_none_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_WIN_POS_NONE" end frozen gtk_win_pos_mouse_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_WIN_POS_MOUSE" end frozen gtk_policy_automatic_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_POLICY_AUTOMATIC" end frozen gtk_policy_always_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_POLICY_ALWAYS" end frozen gtk_policy_never_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_POLICY_NEVER" end frozen gtk_corner_top_left_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_CORNER_TOP_LEFT" end frozen gtk_selection_browse_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_SELECTION_BROWSE" end frozen gtk_selection_single_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_SELECTION_SINGLE" end frozen gtk_selection_multiple_enum: INTEGER_32 external "C macro use <ev_gtk.h>" alias "GTK_SELECTION_MULTIPLE" end feature -- Selection, Drag, Drop frozen gtk_drag_finish (a_context: POINTER; a_success: BOOLEAN; del: BOOLEAN; a_time: NATURAL_32) external "C (GdkDragContext*, gboolean, gboolean, guint32) | <ev_gtk.h>" ensure is_class: class end feature -- Device frozen gtk_get_current_event_device: POINTER external "C signature (): GtkDevice * use <ev_gtk.h>" end feature -- Box frozen gtk_box_get_homogeneous (a_c_struct: POINTER): BOOLEAN external "C signature (GtkBox*): gboolean use <ev_gtk.h>" end frozen gtk_box_get_spacing (a_c_struct: POINTER): INTEGER_32 external "C signature (GtkBox*): gint use <ev_gtk.h>" end frozen gtk_box_pack_end (a_box: POINTER; a_child: POINTER; a_expand: BOOLEAN; a_fill: BOOLEAN; a_padding: INTEGER_32) external "C (GtkBox*, GtkWidget*, gboolean, gboolean, guint) | <ev_gtk.h>" end frozen gtk_box_pack_start (a_box: POINTER; a_child: POINTER; a_expand: BOOLEAN; a_fill: BOOLEAN; a_padding: INTEGER_32) external "C (GtkBox*, GtkWidget*, gboolean, gboolean, guint) | <ev_gtk.h>" end frozen gtk_box_query_child_packing (a_box: POINTER; a_child: POINTER; a_expand: POINTER; a_fill: POINTER; a_padding: POINTER; a_pack_type: POINTER) external "C (GtkBox*, GtkWidget*, gboolean*, gboolean*, guint*, GtkPackType*) | <ev_gtk.h>" end frozen gtk_box_reorder_child (a_box: POINTER; a_child: POINTER; a_position: INTEGER_32) external "C (GtkBox*, GtkWidget*, gint) | <ev_gtk.h>" end frozen gtk_box_set_child_packing (a_box: POINTER; a_child: POINTER; a_expand: BOOLEAN; a_fill: BOOLEAN; a_padding: INTEGER_32; a_pack_type: INTEGER_32) external "C (GtkBox*, GtkWidget*, gboolean, gboolean, guint, GtkPackType) | <ev_gtk.h>" end frozen gtk_box_set_homogeneous (a_box: POINTER; a_homogeneous: BOOLEAN) external "C (GtkBox*, gboolean) | <ev_gtk.h>" end frozen gtk_box_set_spacing (a_box: POINTER; a_spacing: INTEGER_32) external "C (GtkBox*, gint) | <ev_gtk.h>" end feature -- Separator frozen gtk_separator_new (a_orientation: NATURAL_8): POINTER external "C (GtkOrientation): GtkWidget* | <ev_gtk.h>" end feature -- Button frozen gtk_button_new: POINTER external "C (): GtkWidget* | <ev_gtk.h>" end frozen gtk_check_button_new: POINTER external "C (): GtkWidget* | <ev_gtk.h>" end frozen gtk_radio_button_get_group (a_radio_button: POINTER): POINTER external "C (GtkRadioButton*): GSList* | <ev_gtk.h>" end frozen gtk_radio_button_new (a_group: POINTER): POINTER external "C (GSList*): GtkWidget* | <ev_gtk.h>" end frozen gtk_radio_button_set_group (a_radio_button: POINTER; a_group: POINTER) external "C (GtkRadioButton*, GSList*) | <ev_gtk.h>" end feature -- Tree view frozen gtk_is_tree_view_column (w: POINTER): BOOLEAN external "C [macro <ev_gtk.h>]" alias "GTK_IS_TREE_VIEW_COLUMN" end feature -- Menu frozen gtk_is_menu (w: POINTER): BOOLEAN external "C [macro <ev_gtk.h>]" alias "GTK_IS_MENU" end frozen gtk_check_menu_item_new: POINTER external "C (): GtkWidget* | <ev_gtk.h>" end frozen gtk_check_menu_item_get_active (a_c_struct: POINTER): BOOLEAN external "C signature (GtkCheckMenuItem*): gboolean use <ev_gtk.h>" end frozen gtk_check_menu_item_set_active (a_check_menu_item: POINTER; a_is_active: BOOLEAN) external "C (GtkCheckMenuItem*, gboolean) | <ev_gtk.h>" end frozen gtk_check_menu_item_set_draw_as_radio (a_menu_item: POINTER; a_always: BOOLEAN) external "C (GtkCheckMenuItem*, gboolean) | <ev_gtk.h>" end frozen gtk_menu_bar_new: POINTER external "C (): GtkWidget* | <ev_gtk.h>" end frozen gtk_menu_item_activate (a_menu_item: POINTER) external "C (GtkMenuItem*) | <ev_gtk.h>" end frozen gtk_menu_item_deselect (a_menu_item: POINTER) external "C (GtkMenuItem*) | <ev_gtk.h>" end frozen gtk_menu_item_new: POINTER external "C (): GtkWidget* | <ev_gtk.h>" end frozen gtk_menu_item_select (a_menu_item: POINTER) external "C (GtkMenuItem*) | <ev_gtk.h>" end frozen gtk_menu_item_set_submenu (a_menu_item: POINTER; a_submenu: POINTER) external "C (GtkMenuItem*, GtkWidget*) | <ev_gtk.h>" end frozen gtk_menu_new: POINTER external "C (): GtkWidget* | <ev_gtk.h>" end frozen gtk_menu_shell_cancel (a_menu_shell: POINTER) external "C inline use <ev_gtk.h>" alias "gtk_menu_shell_cancel((GtkMenuShell*)$a_menu_shell);" end frozen gtk_menu_shell_deactivate (a_menu_shell: POINTER) external "C (GtkMenuShell*) | <ev_gtk.h>" end frozen gtk_menu_shell_deselect (a_menu_shell: POINTER) external "C (GtkMenuShell*) | <ev_gtk.h>" end frozen gtk_menu_shell_insert (a_menu_shell: POINTER; a_child: POINTER; a_position: INTEGER_32) external "C (GtkMenuShell*, GtkWidget*, gint) | <ev_gtk.h>" end frozen gtk_separator_menu_item_new: POINTER external "C inline use <ev_gtk.h>" alias "return gtk_separator_menu_item_new ();" end feature -- Editable frozen gtk_editable_copy_clipboard (a_editable: POINTER) external "C (GtkEditable*) | <ev_gtk.h>" end frozen gtk_editable_cut_clipboard (a_editable: POINTER) external "C (GtkEditable*) | <ev_gtk.h>" end frozen gtk_editable_delete_selection (a_editable: POINTER) external "C (GtkEditable*) | <ev_gtk.h>" end frozen gtk_editable_get_position (a_editable: POINTER): INTEGER_32 external "C (GtkEditable*): gint | <ev_gtk.h>" end frozen gtk_editable_insert_text (a_editable: POINTER; a_new_text: POINTER; a_new_text_length: INTEGER_32; a_position: POINTER) external "C (GtkEditable*, gchar*, gint, gint*) | <ev_gtk.h>" end frozen gtk_editable_select_region (a_editable: POINTER; a_start: INTEGER_32; a_end: INTEGER_32) external "C (GtkEditable*, gint, gint) | <ev_gtk.h>" end frozen gtk_editable_set_editable (a_editable: POINTER; a_is_editable: BOOLEAN) external "C (GtkEditable*, gboolean) | <ev_gtk.h>" end frozen gtk_editable_set_position (a_editable: POINTER; a_position: INTEGER_32) external "C (GtkEditable*, gint) | <ev_gtk.h>" end feature -- Entry frozen gtk_entry_get_text (a_entry: POINTER): POINTER external "C (GtkEntry*): gchar* | <ev_gtk.h>" end frozen gtk_entry_new: POINTER external "C (): GtkWidget* | <ev_gtk.h>" end frozen gtk_entry_set_text (a_entry: POINTER; a_text: POINTER) external "C (GtkEntry*, gchar*) | <ev_gtk.h>" end frozen gtk_entry_set_width_chars (a_entry: POINTER; n_chars: INTEGER) external "C inline use <ev_gtk.h>" alias "gtk_entry_set_width_chars ((GtkEntry *)$a_entry, (gint)$n_chars)" end frozen gtk_entry_set_visibility (a_entry: POINTER; a_visible: BOOLEAN) external "C (GtkEntry*, gboolean) | <ev_gtk.h>" end feature -- Color frozen gtk_color_chooser_dialog_new (a_title, a_parent: POINTER): POINTER external "C (gchar*, GtkWindow*): GtkWidget* | <ev_gtk.h>" end feature -- Font frozen gtk_font_chooser_get_font_desc (a_fc: POINTER): POINTER external "C (GtkFontChooser*): PangoFontDescription* | <ev_gtk.h>" end frozen gtk_font_chooser_dialog_new (a_title, a_parent: POINTER): POINTER external "C (gchar*, GtkWindow*): GtkWidget* | <ev_gtk.h>" end frozen gtk_font_chooser_set_font_desc (a_fc: POINTER; a_fontdesc: POINTER) external "C (GtkFontChooser*, PangoFontDescription*) | <ev_gtk.h>" end frozen gtk_font_chooser_get_font (a_fc: POINTER): POINTER external "C (GtkFontChooser*): gchar* | <ev_gtk.h>" end feature -- Frame frozen gtk_frame_new (a_label: POINTER): POINTER external "C (gchar*): GtkWidget* | <ev_gtk.h>" end frozen gtk_frame_set_label (a_frame: POINTER; a_label: POINTER) external "C (GtkFrame*, gchar*) | <ev_gtk.h>" end frozen gtk_frame_set_label_align (a_frame: POINTER; a_xalign: REAL_32; a_yalign: REAL_32) external "C (GtkFrame*, gfloat, gfloat) | <ev_gtk.h>" end frozen gtk_frame_set_shadow_type (a_frame: POINTER; a_type: INTEGER_32) external "C (GtkFrame*, GtkShadowType) | <ev_gtk.h>" end frozen gtk_frame_get_shadow_type (a_frame: POINTER): INTEGER_32 external "C (GtkFrame*): GtkShadowType) | <ev_gtk.h>" end feature -- Grab frozen gtk_grab_add (a_widget: POINTER) external "C (GtkWidget*) | <ev_gtk.h>" end frozen gtk_grab_get_current: POINTER external "C (): GtkWidget* | <ev_gtk.h>" end frozen gtk_grab_remove (a_widget: POINTER) external "C (GtkWidget*) | <ev_gtk.h>" end feature -- Paned frozen gtk_paned_new (a_orientation: NATURAL_8): POINTER external "C (GtkOrientation): GtkWidget* | <ev_gtk.h>" end frozen gtk_paned_pack1 (a_paned: POINTER; a_child: POINTER; a_resize: BOOLEAN; a_shrink: BOOLEAN) external "C (GtkPaned*, GtkWidget*, gboolean, gboolean) | <ev_gtk.h>" end frozen gtk_paned_pack2 (a_paned: POINTER; a_child: POINTER; a_resize: BOOLEAN; a_shrink: BOOLEAN) external "C (GtkPaned*, GtkWidget*, gboolean, gboolean) | <ev_gtk.h>" end frozen gtk_paned_set_position (a_paned: POINTER; a_position: INTEGER_32) external "C (GtkPaned*, gint) | <ev_gtk.h>" end frozen gtk_paned_get_position (a_paned: POINTER): INTEGER_32 external "C (GtkPaned*): gint | <ev_gtk.h>" end feature -- Scrollbar frozen gtk_scrollbar_new (a_orientation: NATURAL_8; a_adjustment: POINTER): POINTER external "C (GtkOrientation, GtkAdjustment*): GtkWidget* | <ev_gtk.h>" end feature -- Label frozen gtk_is_label (w: POINTER): BOOLEAN external "C [macro <ev_gtk.h>]" alias "GTK_IS_LABEL" end frozen gtk_label_new (a_str: POINTER): POINTER external "C (gchar*): GtkWidget* | <ev_gtk.h>" end frozen gtk_label_set_justify (a_label: POINTER; a_jtype: INTEGER_32) external "C (GtkLabel*, GtkJustification) | <ev_gtk.h>" end frozen gtk_label_set_text (a_label: POINTER; a_str: POINTER) external "C (GtkLabel*, gchar*) | <ev_gtk.h>" end frozen gtk_label_set_xalign (a_label: POINTER; a_real: REAL_32) external "C inline use <ev_gtk.h>" alias "gtk_label_set_xalign ((GtkLabel*) $a_label, (gfloat) $a_real)" end frozen gtk_label_set_yalign (a_label: POINTER; a_real: REAL_32) external "C inline use <ev_gtk.h>" alias "gtk_label_set_yalign ((GtkLabel*) $a_label, (gfloat) $a_real)" end frozen gtk_label_get_justify (a_c_struct: POINTER): INTEGER_32 external "C signature (GtkLabel*): EIF_INTEGER use <ev_gtk.h>" end frozen gtk_label_set_attributes (label: POINTER; attrs: POINTER) external "C inline use <ev_gtk.h>" alias "gtk_label_set_attributes ((GtkLabel *)$label, (PangoAttrList *)$attrs);" end feature -- Radio frozen gtk_radio_menu_item_get_group (a_radio_menu_item: POINTER): POINTER external "C (GtkRadioMenuItem*): GSList* | <ev_gtk.h>" end frozen gtk_radio_menu_item_new (a_group: POINTER): POINTER external "C (GSList*): GtkWidget* | <ev_gtk.h>" end frozen gtk_radio_menu_item_new_with_label (a_group: POINTER; a_label: POINTER): POINTER external "C (GSList*, gchar*): GtkWidget* | <ev_gtk.h>" end frozen gtk_radio_menu_item_set_group (a_radio_menu_item: POINTER; a_group: POINTER) external "C (GtkRadioMenuItem*, GSList*) | <ev_gtk.h>" end feature -- Scale frozen gtk_scale_new (a_orientation: NATURAL_8; a_adjustment: POINTER): POINTER external "C (GtkOrientation, GtkAdjustment*): GtkWidget* | <ev_gtk.h>" end frozen gtk_scale_set_digits (a_scale: POINTER; a_digits: INTEGER_32) external "C (GtkScale*, gint) | <ev_gtk.h>" end frozen gtk_scale_set_draw_value (a_scale: POINTER; a_draw_value: BOOLEAN) external "C (GtkScale*, gboolean) | <ev_gtk.h>" end feature -- Scroll frozen gtk_scrollable_get_hadjustment (a_scrollable: POINTER): POINTER external "C (GtkScrollable*): GtkAdjustment* | <ev_gtk.h>" end frozen gtk_scrollable_get_vadjustment (a_scrollable: POINTER): POINTER external "C (GtkScrollable*): GtkAdjustment* | <ev_gtk.h>" end frozen gtk_scrolled_window_get_hadjustment (a_scrolled_window: POINTER): POINTER external "C (GtkScrolledWindow*): GtkAdjustment* | <ev_gtk.h>" end frozen gtk_scrolled_window_get_vadjustment (a_scrolled_window: POINTER): POINTER external "C (GtkScrolledWindow*): GtkAdjustment* | <ev_gtk.h>" end frozen gtk_scrolled_window_new (a_hadjustment: POINTER; a_vadjustment: POINTER): POINTER external "C (GtkAdjustment*, GtkAdjustment*): GtkWidget* | <ev_gtk.h>" end frozen gtk_scrolled_window_set_policy (a_scrolled_window: POINTER; a_hscrollbar_policy: INTEGER_32; a_vscrollbar_policy: INTEGER_32) external "C (GtkScrolledWindow*, GtkPolicyType, GtkPolicyType) | <ev_gtk.h>" end feature -- Spin button frozen gtk_spin_button_new (a_adjustment: POINTER; a_climb_rate: REAL_32; a_digits: INTEGER_32): POINTER external "C (GtkAdjustment*, gfloat, guint): GtkWidget* | <ev_gtk.h>" end frozen gtk_spin_button_update (a_spin_button: POINTER) external "C (GtkSpinButton*) | <ev_gtk.h>" end feature -- Toggle button frozen gtk_toggle_button_get_active (a_toggle_button: POINTER): BOOLEAN external "C (GtkToggleButton*): gboolean | <ev_gtk.h>" end frozen gtk_toggle_button_new: POINTER external "C (): GtkWidget* | <ev_gtk.h>" end frozen gtk_toggle_button_set_active (a_toggle_button: POINTER; a_is_active: BOOLEAN) external "C (GtkToggleButton*, gboolean) | <ev_gtk.h>" end feature -- Event frozen gtk_get_event_widget (a_event: POINTER): POINTER external "C (GdkEvent*): GtkWidget* | <ev_gtk.h>" end frozen gtk_main_do_event (a_event: POINTER) external "C (GdkEvent*) | <ev_gtk.h>" end frozen gtk_propagate_event (a_widget: POINTER; a_event: POINTER) external "C (GtkWidget*, GdkEvent*) | <ev_gtk.h>" end feature -- Allocation frozen gtk_allocation_struct_height (a_c_struct: POINTER): INTEGER_32 external "C [struct <ev_gtk.h>] (GtkAllocation): EIF_INTEGER" alias "height" end frozen gtk_allocation_struct_width (a_c_struct: POINTER): INTEGER_32 external "C [struct <ev_gtk.h>] (GtkAllocation): EIF_INTEGER" alias "width" end frozen gtk_allocation_struct_x (a_c_struct: POINTER): INTEGER_32 external "C [struct <ev_gtk.h>] (GtkAllocation): EIF_INTEGER" alias "x" end frozen gtk_allocation_struct_y (a_c_struct: POINTER): INTEGER_32 external "C [struct <ev_gtk.h>] (GtkAllocation): EIF_INTEGER" alias "y" end frozen set_gtk_allocation_struct_height (a_c_struct: POINTER; a_value: INTEGER_32) external "C [struct <ev_gtk.h>] (GtkAllocation, gint)" alias "height" end frozen set_gtk_allocation_struct_width (a_c_struct: POINTER; a_value: INTEGER_32) external "C [struct <ev_gtk.h>] (GtkAllocation, gint)" alias "width" end frozen set_gtk_allocation_struct_x (a_c_struct: POINTER; a_value: INTEGER_32) external "C [struct <ev_gtk.h>] (GtkAllocation, gint)" alias "x" end frozen set_gtk_allocation_struct_y (a_c_struct: POINTER; a_value: INTEGER_32) external "C [struct <ev_gtk.h>] (GtkAllocation, gint)" alias "y" end frozen c_gtk_allocation_struct_size: INTEGER_32 external "C [macro <ev_gtk.h>]" alias "sizeof(GtkAllocation)" end frozen c_gtk_allocation_struct_allocate: POINTER external "C [macro <stdlib.h>]" alias "calloc (sizeof(GtkAllocation), 1)" end feature -- Bin frozen gtk_bin_get_child (a_bin: POINTER): POINTER external "C signature (GtkBin*): EIF_POINTER use <ev_gtk.h>" end feature -- Notebook frozen gtk_notebook_get_tab_pos (a_c_struct: POINTER): INTEGER_32 external "C signature (GtkNotebook*): EIF_INTEGER use <ev_gtk.h>" end frozen gtk_notebook_get_current_page (a_notebook: POINTER): INTEGER_32 external "C (GtkNotebook*): gint | <ev_gtk.h>" end frozen gtk_notebook_get_nth_page (a_notebook: POINTER; a_page_num: INTEGER_32): POINTER external "C (GtkNotebook*, gint): GtkWidget* | <ev_gtk.h>" end frozen gtk_notebook_get_tab_label (a_notebook: POINTER; a_child: POINTER): POINTER external "C (GtkNotebook*, GtkWidget*): GtkWidget* | <ev_gtk.h>" end frozen gtk_notebook_new: POINTER external "C (): GtkWidget* | <ev_gtk.h>" end frozen gtk_notebook_page_num (a_notebook: POINTER; a_child: POINTER): INTEGER_32 external "C (GtkNotebook*, GtkWidget*): gint | <ev_gtk.h>" end frozen gtk_notebook_reorder_child (a_notebook: POINTER; a_child: POINTER; a_position: INTEGER_32) external "C (GtkNotebook*, GtkWidget*, gint) | <ev_gtk.h>" end frozen gtk_notebook_set_current_page (a_notebook: POINTER; a_page_num: INTEGER_32) external "C (GtkNotebook*, gint) | <ev_gtk.h>" end frozen gtk_notebook_set_scrollable (a_notebook: POINTER; a_scrollable: BOOLEAN) external "C (GtkNotebook*, gboolean) | <ev_gtk.h>" end frozen gtk_notebook_set_show_border (a_notebook: POINTER; a_show_border: BOOLEAN) external "C (GtkNotebook*, gboolean) | <ev_gtk.h>" end frozen gtk_notebook_set_tab_label (a_notebook: POINTER; a_child: POINTER; a_tab_label: POINTER) external "C (GtkNotebook*, GtkWidget*, GtkWidget*) | <ev_gtk.h>" end frozen gtk_notebook_set_tab_pos (a_notebook: POINTER; a_pos: INTEGER_32) external "C (GtkNotebook*, GtkPositionType) | <ev_gtk.h>" end feature -- Viewport frozen gtk_viewport_get_bin_window (a_c_struct: POINTER): POINTER external "C signature (GtkViewport*): EIF_POINTER use <ev_gtk.h>" end frozen gtk_viewport_new (a_hadjustment: POINTER; a_vadjustment: POINTER): POINTER external "C (GtkAdjustment*, GtkAdjustment*): GtkWidget* | <ev_gtk.h>" end frozen gtk_viewport_set_shadow_type (a_viewport: POINTER; a_type: INTEGER_32) external "C (GtkViewport*, GtkShadowType) | <ev_gtk.h>" end feature -- Adjustment frozen gtk_adjustment_new (a_value: REAL_32; a_lower: REAL_32; a_upper: REAL_32; a_step_increment: REAL_32; a_page_increment: REAL_32; a_page_size: REAL_32): POINTER external "C (gfloat, gfloat, gfloat, gfloat, gfloat, gfloat): GtkAdjustment* | <ev_gtk.h>" end frozen gtk_adjustment_set_value (a_adjustment: POINTER; a_value: REAL_32) external "C (GtkAdjustment*, gfloat) | <ev_gtk.h>" end frozen gtk_adjustment_get_lower (a_c_struct: POINTER): REAL_32 external "C signature (GtkAdjustment*): gdouble use <ev_gtk.h>" end frozen gtk_adjustment_get_page_increment (a_c_struct: POINTER): REAL_32 external "C signature (GtkAdjustment*): gdouble use <ev_gtk.h>" end frozen gtk_adjustment_get_page_size (a_c_struct: POINTER): REAL_32 external "C signature (GtkAdjustment*): gdouble use <ev_gtk.h>" end frozen gtk_adjustment_get_step_increment (a_c_struct: POINTER): REAL_32 external "C signature (GtkAdjustment*): gdouble use <ev_gtk.h>" end frozen gtk_adjustment_get_upper (a_c_struct: POINTER): REAL_32 external "C signature (GtkAdjustment*): gdouble use <ev_gtk.h>" end frozen gtk_adjustment_get_value (a_c_struct: POINTER): REAL_32 external "C signature (GtkAdjustment*): gdouble use <ev_gtk.h>" end frozen gtk_range_get_adjustment (a_editable: POINTER): POINTER external "C (GtkRange*): GtkAdjustment* | <ev_gtk.h>" end frozen gtk_adjustment_set_lower (a_c_struct: POINTER; a_lower: REAL_32) external "C signature (GtkAdjustment*, gdouble) use <ev_gtk.h>" end frozen gtk_adjustment_set_page_increment (a_c_struct: POINTER; a_page_increment: REAL_32) external "C signature (GtkAdjustment*, gdouble) use <ev_gtk.h>" end frozen gtk_adjustment_set_page_size (a_c_struct: POINTER; a_page_size: REAL_32) external "C signature (GtkAdjustment*, gdouble) use <ev_gtk.h>" end frozen gtk_adjustment_set_step_increment (a_c_struct: POINTER; a_step_increment: REAL_32) external "C signature (GtkAdjustment*, gdouble) use <ev_gtk.h>" end frozen gtk_adjustment_set_upper (a_c_struct: POINTER; a_upper: REAL_32) external "C signature (GtkAdjustment*, gdouble) use <ev_gtk.h>" end feature -- Requisition frozen gtk_requisition_struct_height (a_c_struct: POINTER): INTEGER_32 external "C [struct <ev_gtk.h>] (GtkRequisition): EIF_INTEGER" alias "height" end frozen gtk_requisition_struct_width (a_c_struct: POINTER): INTEGER_32 external "C [struct <ev_gtk.h>] (GtkRequisition): EIF_INTEGER" alias "width" end frozen c_gtk_requisition_struct_size: INTEGER_32 external "C [macro <ev_gtk.h>]" alias "sizeof(GtkRequisition)" end feature -- Object, Data frozen g_object_get_data (object: POINTER; key: POINTER): POINTER external "C inline use <ev_gtk.h>" alias "[ return g_object_get_data ((GObject *)$object, (const gchar *)$key); ]" end feature -- Color Helper rgba_struct_to_style_color_string (a_c_rgba: POINTER): STRING local r,g,b: INTEGER a: REAL_64 f: FORMAT_DOUBLE do r := ({GDK}.rgba_struct_red (a_c_rgba) * {EV_COLOR}.max_8_bit).truncated_to_integer g := ({GDK}.rgba_struct_green (a_c_rgba) * {EV_COLOR}.max_8_bit).truncated_to_integer b := ({GDK}.rgba_struct_blue (a_c_rgba) * {EV_COLOR}.max_8_bit).truncated_to_integer a := {GDK}.rgba_struct_alpha (a_c_rgba) if a < 1.0 then create f.make (1, 7) Result := "rgb(" + r.out + "," + g.out + "," + b.out + "," + f.formatted (a) +")" else Result := "rgb(" + r.out + "," + g.out + "," + b.out + ")" end ensure instance_free: class end rgba_struct_to_color (a_c_rgba: POINTER): EV_COLOR do create Result.make_with_rgb ( {GDK}.rgba_struct_red (a_c_rgba).truncated_to_real, {GDK}.rgba_struct_green (a_c_rgba).truncated_to_real, {GDK}.rgba_struct_blue (a_c_rgba).truncated_to_real ) -- FIXME: alpha value for now as EV_COLOR does not support it. ensure instance_free: class end style_color (a_style_ctx: POINTER; a_name: READABLE_STRING_8): detachable EV_COLOR local l_gtk_c_string: EV_GTK_C_STRING c_rgba: POINTER l_found: BOOLEAN do c_rgba := {GTK}.c_gdk_rgba_struct_allocate create l_gtk_c_string.set_with_eiffel_string (a_name) l_found := {GTK2}.gtk_style_context_lookup_color (a_style_ctx, l_gtk_c_string.item, c_rgba) if l_found then Result := rgba_struct_to_color (c_rgba) end c_rgba.memory_free ensure instance_free: class end rgba_string_style_color (a_style_ctx: POINTER; a_name: READABLE_STRING_8): detachable STRING local l_gtk_c_string: EV_GTK_C_STRING c_rgba: POINTER l_found: BOOLEAN do c_rgba := {GTK}.c_gdk_rgba_struct_allocate create l_gtk_c_string.set_with_eiffel_string (a_name) l_found := {GTK2}.gtk_style_context_lookup_color (a_style_ctx, l_gtk_c_string.item, c_rgba) if l_found then Result := rgba_struct_to_style_color_string (c_rgba) end c_rgba.memory_free ensure instance_free: class end rgba_string_default_background_color: STRING local c_rgba: POINTER p: POINTER ctx: POINTER do p := {GTK}.gtk_dialog_new if not p.is_default_pointer then ctx := {GTK}.gtk_widget_get_style_context (p) {GTK2}.gtk_style_context_get ( ctx, {GTK}.gtk_state_flag_normal_enum, --{GTK}.gtk_style_context_get_state (ctx), {GTK2}.GTK_STYLE_PROPERTY_BACKGROUND_COLOR, $c_rgba ) Result := rgba_struct_to_style_color_string (c_rgba) {GDK}.rgba_free (c_rgba) {GTK}.gtk_widget_destroy (p) else Result := "rgb(0,0,0)" end ensure instance_free: class end default_background_color: EV_COLOR local c_rgba: POINTER p: POINTER ctx: POINTER do p := {GTK}.gtk_dialog_new if not p.is_default_pointer then ctx := {GTK}.gtk_widget_get_style_context (p) {GTK2}.gtk_style_context_get ( ctx, {GTK}.gtk_state_flag_normal_enum, --{GTK}.gtk_style_context_get_state (ctx), {GTK2}.GTK_STYLE_PROPERTY_BACKGROUND_COLOR, $c_rgba ) Result := rgba_struct_to_color (c_rgba) {GDK}.rgba_free (c_rgba) {GTK}.gtk_widget_destroy (p) else create Result.default_create end ensure instance_free: class end new_gdk_rgba_string (r,g,b: REAL_64; a: REAL_64; a_reuse_color_object: POINTER): STRING -- New color string from `r,g,b,a` -- reusing the Gtk struct `a_reuse_color_object`, if it is set -- otherwise allocate a new struct. require valid_red: r >= 0.0 and r <= 1.0 valid_green: g >= 0.0 and g <= 1.0 valid_blue: b >= 0.0 and b <= 1.0 valid_alpha: a >= 0.0 and a <= 1.0 local color: POINTER do if a_reuse_color_object.is_default_pointer then color := {GTK}.c_gdk_rgba_struct_allocate else color := a_reuse_color_object end {GDK}.set_rgba_struct_red (color, r) {GDK}.set_rgba_struct_green (color, g) {GDK}.set_rgba_struct_blue (color, b) {GDK}.set_rgba_struct_alpha (color, a) create Result.make_from_c ({GDK}.gdk_rgba_to_string (color)) if a_reuse_color_object.is_default_pointer and not color.is_default_pointer then color.memory_free end ensure instance_free: class end gnome_color_names: ITERABLE [STRING_8] do Result := << "theme_fg_color", "theme_text_color", "theme_bg_color", "theme_base_color", "theme_selected_bg_color", "theme_selected_fg_color", "insensitive_bg_color", "insensitive_fg_color", "insensitive_base_color", "theme_unfocused_fg_color", "theme_unfocused_text_color", "theme_unfocused_bg_color", "theme_unfocused_base_color", "theme_unfocused_selected_bg_color", "theme_unfocused_selected_fg_color", "unfocused_insensitive_color", "borders", "unfocused_borders", "warning_color", "error_color", "success_color" >> ensure instance_free: class end feature -- Gobject Type g_type_name (a_type: POINTER): POINTER external "C inline use <ev_gtk.h>" alias "g_type_name (G_TYPE_FROM_INSTANCE($a_type))" end note copyright: "Copyright (c) 1984-2024, Eiffel Software and others" license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" source: "[ Eiffel Software 5949 Hollister Ave., Goleta, CA 93117 USA Telephone 805-685-1006, Fax 805-685-6869 Website http://www.eiffel.com Customer support http://support.eiffel.com ]" end -- class GTK