gtk_paradise 0.9.120
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENCE.md +6 -0
- data/README.md +8966 -0
- data/bin/application_menu +7 -0
- data/bin/demo-gtk3 +39 -0
- data/bin/gtk_calculator +7 -0
- data/bin/gtk_display_this_file +23 -0
- data/bin/gtk_paradise +7 -0
- data/bin/minesweeper +7 -0
- data/bin/notebook_controller +7 -0
- data/bin/pdfwalker +7 -0
- data/doc/README.gen +8938 -0
- data/doc/todo/TODO_FOR_THE_GTK_PARADISE_PROJECT.md +246 -0
- data/doc/todo/recurring_todo_tasks.md +9 -0
- data/gtk_paradise.gemspec +83 -0
- data/lib/gtk_paradise/app/app.rb +208 -0
- data/lib/gtk_paradise/app/app_module.rb +1739 -0
- data/lib/gtk_paradise/autoinclude.rb +7 -0
- data/lib/gtk_paradise/base_module/base_module.rb +67 -0
- data/lib/gtk_paradise/base_module/change_directory.rb +22 -0
- data/lib/gtk_paradise/base_module/colours.rb +81 -0
- data/lib/gtk_paradise/base_module/combo_box_and_combo_box_entry.rb +113 -0
- data/lib/gtk_paradise/base_module/commandline_arguments.rb +36 -0
- data/lib/gtk_paradise/base_module/configuration.rb +50 -0
- data/lib/gtk_paradise/base_module/constants.rb +23 -0
- data/lib/gtk_paradise/base_module/css.rb +398 -0
- data/lib/gtk_paradise/base_module/debug.rb +127 -0
- data/lib/gtk_paradise/base_module/draggable.rb +95 -0
- data/lib/gtk_paradise/base_module/e.rb +20 -0
- data/lib/gtk_paradise/base_module/emoji.rb +107 -0
- data/lib/gtk_paradise/base_module/esystem.rb +22 -0
- data/lib/gtk_paradise/base_module/events.rb +111 -0
- data/lib/gtk_paradise/base_module/fonts.rb +119 -0
- data/lib/gtk_paradise/base_module/graphics_display.rb +47 -0
- data/lib/gtk_paradise/base_module/gtk3.rb +43 -0
- data/lib/gtk_paradise/base_module/gtk_buttons.rb +562 -0
- data/lib/gtk_paradise/base_module/gtk_entry.rb +126 -0
- data/lib/gtk_paradise/base_module/gtk_fixed.rb +18 -0
- data/lib/gtk_paradise/base_module/gtk_grid.rb +61 -0
- data/lib/gtk_paradise/base_module/gtk_image.rb +501 -0
- data/lib/gtk_paradise/base_module/gtk_label.rb +211 -0
- data/lib/gtk_paradise/base_module/gtk_notebook.rb +88 -0
- data/lib/gtk_paradise/base_module/gtk_scrolled_window.rb +155 -0
- data/lib/gtk_paradise/base_module/html_support.rb +230 -0
- data/lib/gtk_paradise/base_module/misc.rb +2949 -0
- data/lib/gtk_paradise/base_module/pango.rb +24 -0
- data/lib/gtk_paradise/base_module/popover.rb +241 -0
- data/lib/gtk_paradise/base_module/register_sigint.rb +20 -0
- data/lib/gtk_paradise/base_module/reset.rb +128 -0
- data/lib/gtk_paradise/base_module/return_corresponding_gtk_stock_item.rb +92 -0
- data/lib/gtk_paradise/base_module/roebe.rb +19 -0
- data/lib/gtk_paradise/base_module/table.rb +438 -0
- data/lib/gtk_paradise/base_module/time.rb +35 -0
- data/lib/gtk_paradise/base_module_and_app_module/base_module_and_app_module.rb +21 -0
- data/lib/gtk_paradise/colours/gtk_colour_constants.rb +192 -0
- data/lib/gtk_paradise/colours/parse.rb +79 -0
- data/lib/gtk_paradise/commandline/commandline.rb +126 -0
- data/lib/gtk_paradise/constants/available_cursors.rb +52 -0
- data/lib/gtk_paradise/constants/constants.rb +18 -0
- data/lib/gtk_paradise/constants/fonts.rb +38 -0
- data/lib/gtk_paradise/constants/misc.rb +56 -0
- data/lib/gtk_paradise/constants/newline.rb +14 -0
- data/lib/gtk_paradise/constants/xbm_icons.rb +121 -0
- data/lib/gtk_paradise/css_files/colours.css +362 -0
- data/lib/gtk_paradise/css_files/css_accordion.css +51 -0
- data/lib/gtk_paradise/css_files/project.css +479 -0
- data/lib/gtk_paradise/css_files/themes/README.md +1 -0
- data/lib/gtk_paradise/css_files/themes/rainbow_theme.css +23 -0
- data/lib/gtk_paradise/emojis/emojis.rb +756 -0
- data/lib/gtk_paradise/examples/README.md +11 -0
- data/lib/gtk_paradise/examples/advanced/001_5x5_grid_example.rb +175 -0
- data/lib/gtk_paradise/examples/advanced/002_advanced_drag_and_drop_example.rb +103 -0
- data/lib/gtk_paradise/examples/advanced/003_html_like_support.rb +206 -0
- data/lib/gtk_paradise/examples/advanced/004_on_hover_example_on_gtk_entry.rb +78 -0
- data/lib/gtk_paradise/examples/advanced/005_csv_example.rb +24 -0
- data/lib/gtk_paradise/examples/advanced/006_file_chooser_button_example.rb +106 -0
- data/lib/gtk_paradise/examples/advanced/007_label_responding_to_events_example.rb +182 -0
- data/lib/gtk_paradise/examples/advanced/008_options_example.rb +47 -0
- data/lib/gtk_paradise/examples/advanced/009_key_events.rb +81 -0
- data/lib/gtk_paradise/examples/advanced/010_extensive_text_view_example.rb +161 -0
- data/lib/gtk_paradise/examples/advanced/011_moving_blocks_example.rb +91 -0
- data/lib/gtk_paradise/examples/advanced/012_cell_data_sorting_example.rb +79 -0
- data/lib/gtk_paradise/examples/advanced/013_advanced_css_example.rb +272 -0
- data/lib/gtk_paradise/examples/advanced/014_popup_example.rb +123 -0
- data/lib/gtk_paradise/examples/advanced/015_advanced_button_example.rb +156 -0
- data/lib/gtk_paradise/examples/advanced/016_change_background_on_click_event.rb +38 -0
- data/lib/gtk_paradise/examples/advanced/017_lean_CSS_example.rb +247 -0
- data/lib/gtk_paradise/examples/advanced/018_coloured_text_example.rb +158 -0
- data/lib/gtk_paradise/examples/advanced/019_gtk_entry_showing_the_cursor_position.rb +67 -0
- data/lib/gtk_paradise/examples/advanced/020_scale_this_image.rb +154 -0
- data/lib/gtk_paradise/examples/advanced/021_scroll_events_on_gtk_entry.rb +37 -0
- data/lib/gtk_paradise/examples/advanced/README.md +4 -0
- data/lib/gtk_paradise/examples/cairo/README.md +7 -0
- data/lib/gtk_paradise/examples/cairo/basic_cairo_shapes.rb +131 -0
- data/lib/gtk_paradise/examples/cairo/cairo_testing.rb +96 -0
- data/lib/gtk_paradise/examples/cairo/cairo_transparent_rectangles.rb +94 -0
- data/lib/gtk_paradise/examples/cairo/donut_shape.rb +76 -0
- data/lib/gtk_paradise/examples/cairo/fancy_triangle.rb +42 -0
- data/lib/gtk_paradise/examples/cairo/ping_pong_game.rb +315 -0
- data/lib/gtk_paradise/examples/cairo/three_rectangles.rb +67 -0
- data/lib/gtk_paradise/examples/controller/README.md +3 -0
- data/lib/gtk_paradise/examples/controller/controller.rb +81 -0
- data/lib/gtk_paradise/examples/css/001_border_examples.rb +246 -0
- data/lib/gtk_paradise/examples/css/002_import_CSS_file.rb +87 -0
- data/lib/gtk_paradise/examples/css/README.md +5 -0
- data/lib/gtk_paradise/examples/gdk_pixbuf/save_image_example.rb +72 -0
- data/lib/gtk_paradise/examples/glib/parse_glib_settings.rb +48 -0
- data/lib/gtk_paradise/examples/gtk2/001_tooltips_example.rb +88 -0
- data/lib/gtk_paradise/examples/gtk2/002_simple_window.rb +8 -0
- data/lib/gtk_paradise/examples/gtk2/003_draw_rectangle.rb +41 -0
- data/lib/gtk_paradise/examples/gtk2/004_simple_button.rb +38 -0
- data/lib/gtk_paradise/examples/gtk2/005_scale_button.rb +28 -0
- data/lib/gtk_paradise/examples/gtk2/006_print_example.rb +259 -0
- data/lib/gtk_paradise/examples/gtk2/007_radio_button_window.rb +57 -0
- data/lib/gtk_paradise/examples/gtk2/008_list_store_example.rb +145 -0
- data/lib/gtk_paradise/examples/gtk2/009_spin_button_example.rb +168 -0
- data/lib/gtk_paradise/examples/gtk2/010_paned_widget_example.rb +171 -0
- data/lib/gtk_paradise/examples/gtk2/011_password_example.rb +22 -0
- data/lib/gtk_paradise/examples/gtk2/012_popup_example.rb +61 -0
- data/lib/gtk_paradise/examples/gtk2/013_show_this_cursor.rb +25 -0
- data/lib/gtk_paradise/examples/gtk2/014_link_button.rb +44 -0
- data/lib/gtk_paradise/examples/gtk2/015_gc_drawing_examples.rb +63 -0
- data/lib/gtk_paradise/examples/gtk2/016_combo_box_example.rb +155 -0
- data/lib/gtk_paradise/examples/gtk2/017_multiple_gtk_windows.rb +20 -0
- data/lib/gtk_paradise/examples/gtk2/018_entry_completion.rb +28 -0
- data/lib/gtk_paradise/examples/gtk2/019_insert_text_into_a_text_buffer_example.rb +77 -0
- data/lib/gtk_paradise/examples/gtk2/020_size_group_example.rb +29 -0
- data/lib/gtk_paradise/examples/gtk2/021_check_button.rb +22 -0
- data/lib/gtk_paradise/examples/gtk2/022_hello_world_in_gtk2_and_bold_font.rb +53 -0
- data/lib/gtk_paradise/examples/gtk2/023_pixbuf_animation_example.rb +36 -0
- data/lib/gtk_paradise/examples/gtk2/024_colour_around_button.rb +49 -0
- data/lib/gtk_paradise/examples/gtk2/025_icon_view.rb +50 -0
- data/lib/gtk_paradise/examples/gtk2/026_disappearing_buttons.rb +55 -0
- data/lib/gtk_paradise/examples/gtk2/027_colour_choose_button.rb +30 -0
- data/lib/gtk_paradise/examples/gtk2/028_gtk_expander.rb +23 -0
- data/lib/gtk_paradise/examples/gtk2/029_gtk_label_example.rb +59 -0
- data/lib/gtk_paradise/examples/gtk2/030_complete_menu_example.rb +76 -0
- data/lib/gtk_paradise/examples/gtk2/031_message_dialog.rb +38 -0
- data/lib/gtk_paradise/examples/gtk2/032_frame_example.rb +82 -0
- data/lib/gtk_paradise/examples/gtk2/033_notebook_example.rb +89 -0
- data/lib/gtk_paradise/examples/gtk2/034_radio_menu_item_showcase.rb +73 -0
- data/lib/gtk_paradise/examples/gtk2/035_status_icon_example.rb +57 -0
- data/lib/gtk_paradise/examples/gtk2/036_threads_example.rb +72 -0
- data/lib/gtk_paradise/examples/gtk2/037_extensive_markup_example.rb +49 -0
- data/lib/gtk_paradise/examples/gtk2/038_accesskeys_demonstration.rb +136 -0
- data/lib/gtk_paradise/examples/gtk2/039_accel_group_example.rb +24 -0
- data/lib/gtk_paradise/examples/gtk2/040_gtksourceview2_example.rb +42 -0
- data/lib/gtk_paradise/examples/gtk2/041_drawing_example.rb +130 -0
- data/lib/gtk_paradise/examples/gtk2/042_buttons_showcasing_the_relief.rb +34 -0
- data/lib/gtk_paradise/examples/gtk2/043_gtk_entry.rb +47 -0
- data/lib/gtk_paradise/examples/gtk2/044_tree_model_filter.rb +60 -0
- data/lib/gtk_paradise/examples/gtk2/045_sorted_tree.rb +137 -0
- data/lib/gtk_paradise/examples/gtk2/046_sockets.rb +17 -0
- data/lib/gtk_paradise/examples/gtk2/047_progress_bar_example.rb +105 -0
- data/lib/gtk_paradise/examples/gtk2/048_event_box_with_popup_menu.rb +64 -0
- data/lib/gtk_paradise/examples/gtk2/049_gtk_dialog_sample.rb +51 -0
- data/lib/gtk_paradise/examples/gtk2/050_about_dialog.rb +29 -0
- data/lib/gtk_paradise/examples/gtk2/051_tree_view_column_example.rb +83 -0
- data/lib/gtk_paradise/examples/gtk2/052_packing_demonstration.rb +131 -0
- data/lib/gtk_paradise/examples/gtk2/053_vertical_boxes.rb +34 -0
- data/lib/gtk_paradise/examples/gtk2/054_drag_and_drop_example.rb +97 -0
- data/lib/gtk_paradise/examples/gtk2/055_button_box.rb +122 -0
- data/lib/gtk_paradise/examples/gtk2/056_vbox_with_spacing_and_border_width.rb +20 -0
- data/lib/gtk_paradise/examples/gtk2/057_show_image.rb +42 -0
- data/lib/gtk_paradise/examples/gtk2/058_random_stock_item.rb +39 -0
- data/lib/gtk_paradise/examples/gtk2/059_manual_menu.rb +56 -0
- data/lib/gtk_paradise/examples/gtk2/060_style_property.rb +82 -0
- data/lib/gtk_paradise/examples/gtk2/060_style_property.rc +17 -0
- data/lib/gtk_paradise/examples/gtk2/061_mouse_movement.rb +174 -0
- data/lib/gtk_paradise/examples/gtk2/README.md +16 -0
- data/lib/gtk_paradise/examples/gtk2/settings/README.md +2 -0
- data/lib/gtk_paradise/examples/gtk2/settings/gtk_settings.rb +40 -0
- data/lib/gtk_paradise/examples/gtk2/uimanager/uimanager.xml +36 -0
- data/lib/gtk_paradise/examples/gtk2/uimanager/uimanager_example.rb +113 -0
- data/lib/gtk_paradise/examples/gtk3/001_font_related_information.rb +93 -0
- data/lib/gtk_paradise/examples/gtk3/002_simple_window.rb +48 -0
- data/lib/gtk_paradise/examples/gtk3/003_sorted_tree.rb +141 -0
- data/lib/gtk_paradise/examples/gtk3/004_small_paned_example.rb +48 -0
- data/lib/gtk_paradise/examples/gtk3/005_spinner_example.rb +46 -0
- data/lib/gtk_paradise/examples/gtk3/006_password_example.rb +45 -0
- data/lib/gtk_paradise/examples/gtk3/007_progress_bar_example.rb +200 -0
- data/lib/gtk_paradise/examples/gtk3/008_menubar_example.rb +96 -0
- data/lib/gtk_paradise/examples/gtk3/009_scrolled_window_example.rb +49 -0
- data/lib/gtk_paradise/examples/gtk3/010_paned_widget_example.rb +186 -0
- data/lib/gtk_paradise/examples/gtk3/011_sockets.rb +19 -0
- data/lib/gtk_paradise/examples/gtk3/012_notebook_example.rb +75 -0
- data/lib/gtk_paradise/examples/gtk3/013_icon_theme_example.rb +104 -0
- data/lib/gtk_paradise/examples/gtk3/014_switcher_window.rb +68 -0
- data/lib/gtk_paradise/examples/gtk3/015_list_box_example.rb +64 -0
- data/lib/gtk_paradise/examples/gtk3/016_hello_world_in_gtk3_and_bold_font.rb +54 -0
- data/lib/gtk_paradise/examples/gtk3/017_grid_example.rb +52 -0
- data/lib/gtk_paradise/examples/gtk3/018_buttons_showcasing_the_relief.rb +60 -0
- data/lib/gtk_paradise/examples/gtk3/019_text_buffer_example.rb +220 -0
- data/lib/gtk_paradise/examples/gtk3/020_radio_button_window.rb +101 -0
- data/lib/gtk_paradise/examples/gtk3/021_scale_button_demo.rb +51 -0
- data/lib/gtk_paradise/examples/gtk3/022_popup_example.rb +90 -0
- data/lib/gtk_paradise/examples/gtk3/023_horizontal_and_vertical_scale.rb +23 -0
- data/lib/gtk_paradise/examples/gtk3/024_installation_assistant.rb +365 -0
- data/lib/gtk_paradise/examples/gtk3/025_switch_example.rb +55 -0
- data/lib/gtk_paradise/examples/gtk3/026_hover_button_example_via_css.rb +75 -0
- data/lib/gtk_paradise/examples/gtk3/027_spin_button_example.rb +82 -0
- data/lib/gtk_paradise/examples/gtk3/028_radio_menu_item_example.rb +76 -0
- data/lib/gtk_paradise/examples/gtk3/029_gtk_dialog_sample.rb +72 -0
- data/lib/gtk_paradise/examples/gtk3/030_draw_rectangles.rb +34 -0
- data/lib/gtk_paradise/examples/gtk3/031_colour_choose_button.rb +38 -0
- data/lib/gtk_paradise/examples/gtk3/032_drag_and_drop_example.rb +83 -0
- data/lib/gtk_paradise/examples/gtk3/033_cell_renderer_pixbuf_example.rb +48 -0
- data/lib/gtk_paradise/examples/gtk3/034_combo_box_example.rb +49 -0
- data/lib/gtk_paradise/examples/gtk3/035_notebook_css_example.rb +130 -0
- data/lib/gtk_paradise/examples/gtk3/036_revealer_example.rb +46 -0
- data/lib/gtk_paradise/examples/gtk3/037_css_example_of_a_button_changing_the_background_colour_on_click_event.rb +124 -0
- data/lib/gtk_paradise/examples/gtk3/038_ten_labels_in_a_vertical_box_example.rb +32 -0
- data/lib/gtk_paradise/examples/gtk3/039_threads_example.rb +44 -0
- data/lib/gtk_paradise/examples/gtk3/040_font_chooser_dialog_example.rb +19 -0
- data/lib/gtk_paradise/examples/gtk3/041_flowbox.rb +72 -0
- data/lib/gtk_paradise/examples/gtk3/042_colourized_button_example.rb +82 -0
- data/lib/gtk_paradise/examples/gtk3/043_form_example.rb +151 -0
- data/lib/gtk_paradise/examples/gtk3/044_check_button.rb +27 -0
- data/lib/gtk_paradise/examples/gtk3/045_fixed_example.rb +78 -0
- data/lib/gtk_paradise/examples/gtk3/046_event_box_example.rb +32 -0
- data/lib/gtk_paradise/examples/gtk3/047_examples_with_css.rb +173 -0
- data/lib/gtk_paradise/examples/gtk3/048_accel_group_example.rb +27 -0
- data/lib/gtk_paradise/examples/gtk3/049_change_the_application_theme.rb +68 -0
- data/lib/gtk_paradise/examples/gtk3/050_header_bar_example.rb +58 -0
- data/lib/gtk_paradise/examples/gtk3/051_gtk_label_example.rb +86 -0
- data/lib/gtk_paradise/examples/gtk3/052_popover_example.rb +58 -0
- data/lib/gtk_paradise/examples/gtk3/053_entry_completion.rb +44 -0
- data/lib/gtk_paradise/examples/gtk3/054_svg_viewer.rb +43 -0
- data/lib/gtk_paradise/examples/gtk3/055_button_demo.rb +92 -0
- data/lib/gtk_paradise/examples/gtk3/056_text_iterator_example.rb +72 -0
- data/lib/gtk_paradise/examples/gtk3/057_image_example.rb +51 -0
- data/lib/gtk_paradise/examples/gtk3/058_frame_example.rb +104 -0
- data/lib/gtk_paradise/examples/gtk3/059_gtk_expander.rb +23 -0
- data/lib/gtk_paradise/examples/gtk3/060_ten_vboxes_example.rb +32 -0
- data/lib/gtk_paradise/examples/gtk3/061_gtk_entry.rb +91 -0
- data/lib/gtk_paradise/examples/gtk3/062_toggle_button_example.rb +19 -0
- data/lib/gtk_paradise/examples/gtk3/063_button_box_example.rb +67 -0
- data/lib/gtk_paradise/examples/gtk3/064_tree_view_column_example.rb +97 -0
- data/lib/gtk_paradise/examples/gtk3/065_tooltips_example.rb +216 -0
- data/lib/gtk_paradise/examples/gtk3/066_vertical_boxes.rb +32 -0
- data/lib/gtk_paradise/examples/gtk3/067_vbox_with_spacing_and_border_width.rb +24 -0
- data/lib/gtk_paradise/examples/gtk3/068_text_view_example.rb +34 -0
- data/lib/gtk_paradise/examples/gtk3/069_file_chooser_dialog.rb +41 -0
- data/lib/gtk_paradise/examples/gtk3/070_bindings.rb +126 -0
- data/lib/gtk_paradise/examples/gtk3/071_search_bar_example.rb +59 -0
- data/lib/gtk_paradise/examples/gtk3/072_recent_chooser_dialog.rb +51 -0
- data/lib/gtk_paradise/examples/gtk3/073_showcase_the_cursors.rb +94 -0
- data/lib/gtk_paradise/examples/gtk3/074_app_chooser_button_example.rb +27 -0
- data/lib/gtk_paradise/examples/gtk3/075_tiny_button_via_css.rb +49 -0
- data/lib/gtk_paradise/examples/gtk3/076_stack_example.rb +46 -0
- data/lib/gtk_paradise/examples/gtk3/077_status_icon_example.rb +54 -0
- data/lib/gtk_paradise/examples/gtk3/078_message_dialog_example.rb +179 -0
- data/lib/gtk_paradise/examples/gtk3/079_two_windows_example.rb +30 -0
- data/lib/gtk_paradise/examples/gtk3/080_extensive_markup_example.rb +49 -0
- data/lib/gtk_paradise/examples/gtk3/081_simple_dialog_example.rb +45 -0
- data/lib/gtk_paradise/examples/gtk3/082_scrolling_example.rb +56 -0
- data/lib/gtk_paradise/examples/gtk3/083_bottom_left_placement.rb +50 -0
- data/lib/gtk_paradise/examples/gtk3/084_undecorated_window_example.rb +29 -0
- data/lib/gtk_paradise/examples/gtk3/vte/vte3_terminal.rb +59 -0
- data/lib/gtk_paradise/examples/pango/pango_power.rb +72 -0
- data/lib/gtk_paradise/experimental/README.md +2 -0
- data/lib/gtk_paradise/experimental/experimental.config +6 -0
- data/lib/gtk_paradise/experimental/experimental.rb +249 -0
- data/lib/gtk_paradise/fonts/fonts.rb +679 -0
- data/lib/gtk_paradise/gdk/cursor.rb +30 -0
- data/lib/gtk_paradise/gdk/gdk.rb +29 -0
- data/lib/gtk_paradise/gnome/README.md +5 -0
- data/lib/gtk_paradise/gnome/canvas.rb +54 -0
- data/lib/gtk_paradise/gtk_classes/about.rb +48 -0
- data/lib/gtk_paradise/gtk_classes/about_dialog.rb +25 -0
- data/lib/gtk_paradise/gtk_classes/accel_group.rb +38 -0
- data/lib/gtk_paradise/gtk_classes/alignment.rb +20 -0
- data/lib/gtk_paradise/gtk_classes/application.rb +30 -0
- data/lib/gtk_paradise/gtk_classes/box.rb +318 -0
- data/lib/gtk_paradise/gtk_classes/button.rb +383 -0
- data/lib/gtk_paradise/gtk_classes/button_box.rb +38 -0
- data/lib/gtk_paradise/gtk_classes/cairo/context.rb +54 -0
- data/lib/gtk_paradise/gtk_classes/calendar.rb +29 -0
- data/lib/gtk_paradise/gtk_classes/cell_renderer_text.rb +57 -0
- data/lib/gtk_paradise/gtk_classes/check_button.rb +113 -0
- data/lib/gtk_paradise/gtk_classes/colours/colours.rb +158 -0
- data/lib/gtk_paradise/gtk_classes/combo_box.rb +117 -0
- data/lib/gtk_paradise/gtk_classes/combo_box_entry.rb +74 -0
- data/lib/gtk_paradise/gtk_classes/combo_box_text.rb +101 -0
- data/lib/gtk_paradise/gtk_classes/dialog.rb +20 -0
- data/lib/gtk_paradise/gtk_classes/entry.rb +433 -0
- data/lib/gtk_paradise/gtk_classes/entry_completion.rb +70 -0
- data/lib/gtk_paradise/gtk_classes/event_box.rb +44 -0
- data/lib/gtk_paradise/gtk_classes/event_button.rb +55 -0
- data/lib/gtk_paradise/gtk_classes/event_key.rb +39 -0
- data/lib/gtk_paradise/gtk_classes/expander.rb +37 -0
- data/lib/gtk_paradise/gtk_classes/file_chooser_dialog.rb +34 -0
- data/lib/gtk_paradise/gtk_classes/file_filter.rb +26 -0
- data/lib/gtk_paradise/gtk_classes/file_selection.rb +54 -0
- data/lib/gtk_paradise/gtk_classes/frame.rb +75 -0
- data/lib/gtk_paradise/gtk_classes/grid.rb +343 -0
- data/lib/gtk_paradise/gtk_classes/header_bar.rb +58 -0
- data/lib/gtk_paradise/gtk_classes/hscale.rb +60 -0
- data/lib/gtk_paradise/gtk_classes/image.rb +68 -0
- data/lib/gtk_paradise/gtk_classes/image_menu_item.rb +18 -0
- data/lib/gtk_paradise/gtk_classes/label.rb +542 -0
- data/lib/gtk_paradise/gtk_classes/list_store.rb +41 -0
- data/lib/gtk_paradise/gtk_classes/menu.rb +114 -0
- data/lib/gtk_paradise/gtk_classes/menu_bar.rb +23 -0
- data/lib/gtk_paradise/gtk_classes/menu_item.rb +57 -0
- data/lib/gtk_paradise/gtk_classes/notebook.rb +247 -0
- data/lib/gtk_paradise/gtk_classes/option_menu.rb +21 -0
- data/lib/gtk_paradise/gtk_classes/popover.rb +26 -0
- data/lib/gtk_paradise/gtk_classes/radio_button.rb +22 -0
- data/lib/gtk_paradise/gtk_classes/radio_menu_item.rb +44 -0
- data/lib/gtk_paradise/gtk_classes/scale_button.rb +33 -0
- data/lib/gtk_paradise/gtk_classes/scrolled_window.rb +175 -0
- data/lib/gtk_paradise/gtk_classes/search_bar.rb +27 -0
- data/lib/gtk_paradise/gtk_classes/size_group.rb +13 -0
- data/lib/gtk_paradise/gtk_classes/source_buffer.rb +51 -0
- data/lib/gtk_paradise/gtk_classes/source_view.rb +47 -0
- data/lib/gtk_paradise/gtk_classes/spin_button.rb +89 -0
- data/lib/gtk_paradise/gtk_classes/spinner.rb +37 -0
- data/lib/gtk_paradise/gtk_classes/status_icon.rb +105 -0
- data/lib/gtk_paradise/gtk_classes/statusbar.rb +44 -0
- data/lib/gtk_paradise/gtk_classes/text_buffer.rb +227 -0
- data/lib/gtk_paradise/gtk_classes/text_tag.rb +15 -0
- data/lib/gtk_paradise/gtk_classes/text_view.rb +251 -0
- data/lib/gtk_paradise/gtk_classes/toggle_button.rb +40 -0
- data/lib/gtk_paradise/gtk_classes/toolbar.rb +92 -0
- data/lib/gtk_paradise/gtk_classes/tree_iter.rb +87 -0
- data/lib/gtk_paradise/gtk_classes/tree_selection.rb +40 -0
- data/lib/gtk_paradise/gtk_classes/tree_view.rb +322 -0
- data/lib/gtk_paradise/gtk_classes/tree_view_column.rb +62 -0
- data/lib/gtk_paradise/gtk_classes/vbox.rb +51 -0
- data/lib/gtk_paradise/gtk_classes/vscale.rb +42 -0
- data/lib/gtk_paradise/gtk_classes/vte.rb +28 -0
- data/lib/gtk_paradise/gtk_classes/widget.rb +1422 -0
- data/lib/gtk_paradise/gtk_classes/window.rb +72 -0
- data/lib/gtk_paradise/hello_world/README.md +10 -0
- data/lib/gtk_paradise/hello_world/hello_world_gtk2.rb +31 -0
- data/lib/gtk_paradise/hello_world/hello_world_gtk3.rb +33 -0
- data/lib/gtk_paradise/images/icons/closed.png +0 -0
- data/lib/gtk_paradise/images/icons/directory.png +0 -0
- data/lib/gtk_paradise/images/icons/logo.png +0 -0
- data/lib/gtk_paradise/images/icons/opened.png +0 -0
- data/lib/gtk_paradise/images/internal/COLOUR_BUTTON.png +0 -0
- data/lib/gtk_paradise/images/internal/EXPANDER.png +0 -0
- data/lib/gtk_paradise/images/internal/GDK_CURSORS.png +0 -0
- data/lib/gtk_paradise/images/internal/PROGRESS_BAR.png +0 -0
- data/lib/gtk_paradise/images/internal/README.md +3 -0
- data/lib/gtk_paradise/images/internal/SEPARATOR.png +0 -0
- data/lib/gtk_paradise/images/internal/TEXT_BUFFER2.png +0 -0
- data/lib/gtk_paradise/images/internal/VPANED.png +0 -0
- data/lib/gtk_paradise/images/internal/combo_box_text.png +0 -0
- data/lib/gtk_paradise/images/internal/combo_box_wrap_width_example.png +0 -0
- data/lib/gtk_paradise/images/internal/directory_content_screenshot.png +0 -0
- data/lib/gtk_paradise/images/internal/fancy_gtk_label.png +0 -0
- data/lib/gtk_paradise/images/internal/gtk_assistant.png +0 -0
- data/lib/gtk_paradise/images/internal/gtk_bold_label.png +0 -0
- data/lib/gtk_paradise/images/internal/gtk_cell_renderer_progress.png +0 -0
- data/lib/gtk_paradise/images/internal/gtk_color_dialog.png +0 -0
- data/lib/gtk_paradise/images/internal/gtk_coloured_text_example.png +0 -0
- data/lib/gtk_paradise/images/internal/gtk_notebook_horizontal.png +0 -0
- data/lib/gtk_paradise/images/internal/gtk_notebook_tabs_are_left.png +0 -0
- data/lib/gtk_paradise/images/internal/gtk_options.png +0 -0
- data/lib/gtk_paradise/images/internal/gtk_recent_chooser_dialog.png +0 -0
- data/lib/gtk_paradise/images/internal/gtk_scale_button.png +0 -0
- data/lib/gtk_paradise/images/internal/gtk_scrolled_window.png +0 -0
- data/lib/gtk_paradise/images/internal/gtk_size_group.png +0 -0
- data/lib/gtk_paradise/images/internal/pong_game.png +0 -0
- data/lib/gtk_paradise/images/logo/logo.png +0 -0
- data/lib/gtk_paradise/images/misc/ARROW_RIGHT.png +0 -0
- data/lib/gtk_paradise/images/misc/RMC.jpg +0 -0
- data/lib/gtk_paradise/images/misc/SCROLLED_WINDOW.png +0 -0
- data/lib/gtk_paradise/images/misc/apple.png +0 -0
- data/lib/gtk_paradise/images/misc/border_examples_via_CSS.png +0 -0
- data/lib/gtk_paradise/images/misc/broken_image.png +0 -0
- data/lib/gtk_paradise/images/misc/dot.png +0 -0
- data/lib/gtk_paradise/images/misc/gtk_entry_with_icon_name.png +0 -0
- data/lib/gtk_paradise/images/misc/gtk_font_size_widget_example.png +0 -0
- data/lib/gtk_paradise/images/misc/head.png +0 -0
- data/lib/gtk_paradise/images/misc/maximize_button.png +0 -0
- data/lib/gtk_paradise/images/misc/sample_image.png +0 -0
- data/lib/gtk_paradise/images/misc/small_clock.png +0 -0
- data/lib/gtk_paradise/images/misc/small_shield.png +0 -0
- data/lib/gtk_paradise/images/misc/tabble.png +0 -0
- data/lib/gtk_paradise/images/misc/tomato.png +0 -0
- data/lib/gtk_paradise/images/misc/weather.png +0 -0
- data/lib/gtk_paradise/pango/pango.rb +48 -0
- data/lib/gtk_paradise/pango/pango_fonts.rb +52 -0
- data/lib/gtk_paradise/pango/pango_renderer.rb +69 -0
- data/lib/gtk_paradise/project/project.rb +39 -0
- data/lib/gtk_paradise/prototypes/README.md +6 -0
- data/lib/gtk_paradise/prototypes/gtk3_prototype.rb +34 -0
- data/lib/gtk_paradise/prototypes/gtk3_standalone.rb +143 -0
- data/lib/gtk_paradise/prototypes/shared_code.rb +137 -0
- data/lib/gtk_paradise/require_gtk2.rb +7 -0
- data/lib/gtk_paradise/require_gtk3.rb +7 -0
- data/lib/gtk_paradise/requires/base_module_and_app_module.rb +7 -0
- data/lib/gtk_paradise/requires/do_require_the_files_under_the_gtk_classes_subdirectory.rb +11 -0
- data/lib/gtk_paradise/requires/numbered_lines.rb +7 -0
- data/lib/gtk_paradise/requires/require_files_irrespective_of_the_gtk_version_at_hand.rb +43 -0
- data/lib/gtk_paradise/requires/require_gtk2.rb +11 -0
- data/lib/gtk_paradise/requires/require_gtk2_or_gtk3.rb +87 -0
- data/lib/gtk_paradise/requires/require_gtk3.rb +30 -0
- data/lib/gtk_paradise/requires/require_gtk_runner.rb +1 -0
- data/lib/gtk_paradise/requires/require_the_base_module.rb +7 -0
- data/lib/gtk_paradise/requires/require_the_base_module_and_gtk_run.rb +8 -0
- data/lib/gtk_paradise/requires/require_the_base_module_and_the_toplevel_methods.rb +8 -0
- data/lib/gtk_paradise/requires/require_the_classes_files_for_gtk2.rb +11 -0
- data/lib/gtk_paradise/requires/require_the_classes_files_for_gtk3.rb +11 -0
- data/lib/gtk_paradise/requires/require_the_default_gtk_version.rb +14 -0
- data/lib/gtk_paradise/requires/require_the_gtk_colours.rb +7 -0
- data/lib/gtk_paradise/requires/require_the_gtk_paradise_commandline.rb +7 -0
- data/lib/gtk_paradise/requires/require_the_minesweeper_files.rb +11 -0
- data/lib/gtk_paradise/requires/require_the_tabble_project.rb +7 -0
- data/lib/gtk_paradise/requires/require_the_toplevel_methods.rb +11 -0
- data/lib/gtk_paradise/requires/run_this_widget.rb +7 -0
- data/lib/gtk_paradise/run.rb +70 -0
- data/lib/gtk_paradise/run_this_widget/run_this_widget.rb +125 -0
- data/lib/gtk_paradise/threads/README.md +1 -0
- data/lib/gtk_paradise/threads/threads.rb +67 -0
- data/lib/gtk_paradise/toplevel_methods/allow_only_numbers.rb +59 -0
- data/lib/gtk_paradise/toplevel_methods/css.rb +172 -0
- data/lib/gtk_paradise/toplevel_methods/csv.rb +102 -0
- data/lib/gtk_paradise/toplevel_methods/cursor.rb +69 -0
- data/lib/gtk_paradise/toplevel_methods/determine_which_gtk_version_is_in_use.rb +33 -0
- data/lib/gtk_paradise/toplevel_methods/e.rb +18 -0
- data/lib/gtk_paradise/toplevel_methods/enable_and_disable_warnings.rb +58 -0
- data/lib/gtk_paradise/toplevel_methods/events.rb +72 -0
- data/lib/gtk_paradise/toplevel_methods/keyboard.rb +25 -0
- data/lib/gtk_paradise/toplevel_methods/keys.rb +96 -0
- data/lib/gtk_paradise/toplevel_methods/main_file.rb +31 -0
- data/lib/gtk_paradise/toplevel_methods/misc.rb +798 -0
- data/lib/gtk_paradise/toplevel_methods/register_sigint.rb +17 -0
- data/lib/gtk_paradise/toplevel_methods/roebe.rb +22 -0
- data/lib/gtk_paradise/toplevel_methods/screen_resolution.rb +47 -0
- data/lib/gtk_paradise/toplevel_methods/select_file.rb +168 -0
- data/lib/gtk_paradise/toplevel_methods/spacer.rb +55 -0
- data/lib/gtk_paradise/toplevel_methods/text_buffer_tags.rb +188 -0
- data/lib/gtk_paradise/toplevel_methods/tokenizer.rb +103 -0
- data/lib/gtk_paradise/toplevel_methods/tooltips.rb +71 -0
- data/lib/gtk_paradise/toplevel_methods/we_use_this_gtk_version.rb +65 -0
- data/lib/gtk_paradise/utility_scripts/README.md +1 -0
- data/lib/gtk_paradise/utility_scripts/generate_gtk_prototype.rb +149 -0
- data/lib/gtk_paradise/version/upstream_gtk_version.rb +46 -0
- data/lib/gtk_paradise/version/version.rb +25 -0
- data/lib/gtk_paradise/widgets/README.md +12 -0
- data/lib/gtk_paradise/widgets/gtk2/README.md +7 -0
- data/lib/gtk_paradise/widgets/gtk2/animation.rb +149 -0
- data/lib/gtk_paradise/widgets/gtk2/browser/browser.config +6 -0
- data/lib/gtk_paradise/widgets/gtk2/browser/browser.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk2/cat_merge.rb +198 -0
- data/lib/gtk_paradise/widgets/gtk2/cdripper/cdripper.config +6 -0
- data/lib/gtk_paradise/widgets/gtk2/cdripper/cdripper.rb +31 -0
- data/lib/gtk_paradise/widgets/gtk2/cell_renderer_progress_example.rb +108 -0
- data/lib/gtk_paradise/widgets/gtk2/clipboard_demo.rb +200 -0
- data/lib/gtk_paradise/widgets/gtk2/colour_filled_widget/colour_filled_widget.config +6 -0
- data/lib/gtk_paradise/widgets/gtk2/colour_filled_widget/colour_filled_widget.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk2/conky/conky.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk2/contacts/contacts.config +6 -0
- data/lib/gtk_paradise/widgets/gtk2/contacts/contacts.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk2/cursor_examples.rb +121 -0
- data/lib/gtk_paradise/widgets/gtk2/debug_widget/debug_widget.rb +31 -0
- data/lib/gtk_paradise/widgets/gtk2/demo_of_labels.rb +133 -0
- data/lib/gtk_paradise/widgets/gtk2/dictionary.rb +263 -0
- data/lib/gtk_paradise/widgets/gtk2/directory_content_widget/directory_content_widget.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk2/editable_combo_field.rb +178 -0
- data/lib/gtk_paradise/widgets/gtk2/editor/README.md +3 -0
- data/lib/gtk_paradise/widgets/gtk2/emoji_toggle_widget/emoji_toggle_widget.rb +37 -0
- data/lib/gtk_paradise/widgets/gtk2/emoji_widget/emoji_widget.config +6 -0
- data/lib/gtk_paradise/widgets/gtk2/emoji_widget/emoji_widget.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk2/error_widget/error_widget.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk2/expander_example.rb +90 -0
- data/lib/gtk_paradise/widgets/gtk2/file_opener.rb +301 -0
- data/lib/gtk_paradise/widgets/gtk2/file_path_widget/file_path_widget.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk2/file_viewer/file_viewer.config +6 -0
- data/lib/gtk_paradise/widgets/gtk2/file_viewer/file_viewer.rb +33 -0
- data/lib/gtk_paradise/widgets/gtk2/foto_lister.rb +198 -0
- data/lib/gtk_paradise/widgets/gtk2/gidnight_commander/gidnight_commander.config +6 -0
- data/lib/gtk_paradise/widgets/gtk2/gidnight_commander/gidnight_commander.rb +595 -0
- data/lib/gtk_paradise/widgets/gtk2/google_searcher/google_searcher.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk2/gtksourceview2_example.rb +105 -0
- data/lib/gtk_paradise/widgets/gtk2/hbox_example.rb +114 -0
- data/lib/gtk_paradise/widgets/gtk2/information_about_the_harddisc.rb +33 -0
- data/lib/gtk_paradise/widgets/gtk2/keyboard_grab.rb +81 -0
- data/lib/gtk_paradise/widgets/gtk2/list_store_table3/list_store_table3.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk2/lsmod/lsmod.config +6 -0
- data/lib/gtk_paradise/widgets/gtk2/lsmod/lsmod.rb +27 -0
- data/lib/gtk_paradise/widgets/gtk2/lspci/lspci.config +6 -0
- data/lib/gtk_paradise/widgets/gtk2/lspci/lspci.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk2/maximize_button/maximize_button.rb +33 -0
- data/lib/gtk_paradise/widgets/gtk2/menu_demo.rb +130 -0
- data/lib/gtk_paradise/widgets/gtk2/mini_clock/mini_clock.rb +48 -0
- data/lib/gtk_paradise/widgets/gtk2/mswin/README.md +3 -0
- data/lib/gtk_paradise/widgets/gtk2/mswin/constants.rb +42 -0
- data/lib/gtk_paradise/widgets/gtk2/mswin/ms_sys_control.rb +562 -0
- data/lib/gtk_paradise/widgets/gtk2/mswin/sys_cmd_button.rb +153 -0
- data/lib/gtk_paradise/widgets/gtk2/multiple_select_in_a_tree_view_widget.rb +99 -0
- data/lib/gtk_paradise/widgets/gtk2/my_calendar/my_calendar.config +6 -0
- data/lib/gtk_paradise/widgets/gtk2/my_calendar/my_calendar.rb +34 -0
- data/lib/gtk_paradise/widgets/gtk2/notebook_tab_coloured_top_bar.rb +74 -0
- data/lib/gtk_paradise/widgets/gtk2/notebook_tab_with_icon/notebook_tab_with_icon.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk2/one_column_with_text_and_image/one_column_with_text_and_image.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk2/paned_example.rb +107 -0
- data/lib/gtk_paradise/widgets/gtk2/pdfwalker/about.rb +25 -0
- data/lib/gtk_paradise/widgets/gtk2/pdfwalker/config.rb +106 -0
- data/lib/gtk_paradise/widgets/gtk2/pdfwalker/file.rb +304 -0
- data/lib/gtk_paradise/widgets/gtk2/pdfwalker/hexview.rb +81 -0
- data/lib/gtk_paradise/widgets/gtk2/pdfwalker/imgview.rb +63 -0
- data/lib/gtk_paradise/widgets/gtk2/pdfwalker/menu.rb +366 -0
- data/lib/gtk_paradise/widgets/gtk2/pdfwalker/properties.rb +110 -0
- data/lib/gtk_paradise/widgets/gtk2/pdfwalker/signing.rb +536 -0
- data/lib/gtk_paradise/widgets/gtk2/pdfwalker/textview.rb +86 -0
- data/lib/gtk_paradise/widgets/gtk2/pdfwalker/treeview.rb +400 -0
- data/lib/gtk_paradise/widgets/gtk2/pdfwalker/walker.rb +303 -0
- data/lib/gtk_paradise/widgets/gtk2/pdfwalker/xrefs.rb +71 -0
- data/lib/gtk_paradise/widgets/gtk2/pid_displayer/pid_displayer.config +6 -0
- data/lib/gtk_paradise/widgets/gtk2/pid_displayer/pid_displayer.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk2/ping_widget/ping_widget.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk2/psaux_viewer/psaux_viewer.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk2/random_image/random_image.rb +39 -0
- data/lib/gtk_paradise/widgets/gtk2/reorderable_tabs_example.rb +148 -0
- data/lib/gtk_paradise/widgets/gtk2/ruler_widget.rb +127 -0
- data/lib/gtk_paradise/widgets/gtk2/scale_button_example.rb +116 -0
- data/lib/gtk_paradise/widgets/gtk2/scale_this_image.rb +164 -0
- data/lib/gtk_paradise/widgets/gtk2/scrolled_window_with_viewport/scrolled_window_with_viewport.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk2/select_file/select_file.rb +32 -0
- data/lib/gtk_paradise/widgets/gtk2/show_icon_theme/show_icon_theme.rb +34 -0
- data/lib/gtk_paradise/widgets/gtk2/simple_clock/simple_clock.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk2/slider_changing_button.rb +116 -0
- data/lib/gtk_paradise/widgets/gtk2/status_icon_example.rb +200 -0
- data/lib/gtk_paradise/widgets/gtk2/stopwatch/stopwatch.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk2/sys_message/sys_message.config +6 -0
- data/lib/gtk_paradise/widgets/gtk2/sys_message/sys_message.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk2/tabby/tabby.config +6 -0
- data/lib/gtk_paradise/widgets/gtk2/tabby/tabby.rb +27 -0
- data/lib/gtk_paradise/widgets/gtk2/tabby/view.rb +32 -0
- data/lib/gtk_paradise/widgets/gtk2/table2.rb +144 -0
- data/lib/gtk_paradise/widgets/gtk2/table_example.rb +129 -0
- data/lib/gtk_paradise/widgets/gtk2/timer_window/button_cancel.rb +39 -0
- data/lib/gtk_paradise/widgets/gtk2/timer_window/button_start.rb +83 -0
- data/lib/gtk_paradise/widgets/gtk2/timer_window/cycle_runner.rb +72 -0
- data/lib/gtk_paradise/widgets/gtk2/timer_window/input_validator.rb +38 -0
- data/lib/gtk_paradise/widgets/gtk2/timer_window/panel.rb +90 -0
- data/lib/gtk_paradise/widgets/gtk2/timer_window/progress_bar.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk2/timer_window/text_field.rb +44 -0
- data/lib/gtk_paradise/widgets/gtk2/timer_window/timer.rb +95 -0
- data/lib/gtk_paradise/widgets/gtk2/timer_window/timer_window.config +6 -0
- data/lib/gtk_paradise/widgets/gtk2/timer_window/timer_window.rb +137 -0
- data/lib/gtk_paradise/widgets/gtk2/toolbar_example.rb +119 -0
- data/lib/gtk_paradise/widgets/gtk2/tree_view_demo.rb +148 -0
- data/lib/gtk_paradise/widgets/gtk2/unicode_clock/unicode_clock.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk2/user/user.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk2/wget_wrapper/wget_wrapper.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk2/xpm_loader/xpm_loader.rb +32 -0
- data/lib/gtk_paradise/widgets/gtk2/youtube_dl.rb +227 -0
- data/lib/gtk_paradise/widgets/gtk3/browser/browser.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/burn_this_iso_file/burn_this_iso_file.rb +241 -0
- data/lib/gtk_paradise/widgets/gtk3/burning_widget/burning_widget.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/burning_widget/drawing_widget.rb +107 -0
- data/lib/gtk_paradise/widgets/gtk3/calculator/calculator.rb +456 -0
- data/lib/gtk_paradise/widgets/gtk3/cdripper/cdripper.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk3/checkbox_image/checkbox_image.rb +169 -0
- data/lib/gtk_paradise/widgets/gtk3/colour_filled_widget/colour_filled_widget.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk3/colour_palette/colour_palette.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/coloured_bar/coloured_bar.rb +33 -0
- data/lib/gtk_paradise/widgets/gtk3/coloured_square/coloured_square.rb +186 -0
- data/lib/gtk_paradise/widgets/gtk3/conky/conky.rb +31 -0
- data/lib/gtk_paradise/widgets/gtk3/contacts/contacts.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk3/cpu_widget/cpu_widget.rb +228 -0
- data/lib/gtk_paradise/widgets/gtk3/debug_widget/debug_widget.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/directory_content_widget/directory_content_widget.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/editor/connect_skeleton.rb +97 -0
- data/lib/gtk_paradise/widgets/gtk3/editor/create.rb +160 -0
- data/lib/gtk_paradise/widgets/gtk3/editor/editor.rb +836 -0
- data/lib/gtk_paradise/widgets/gtk3/editor/internal_widgets/README.md +3 -0
- data/lib/gtk_paradise/widgets/gtk3/editor/internal_widgets/goto_line_widget.rb +234 -0
- data/lib/gtk_paradise/widgets/gtk3/editor/misc.rb +568 -0
- data/lib/gtk_paradise/widgets/gtk3/emoji_toggle_widget/emoji_toggle_widget.rb +37 -0
- data/lib/gtk_paradise/widgets/gtk3/emoji_widget/emoji_widget.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/error_widget/error_widget.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/file_path_widget/file_path_widget.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/file_viewer/file_viewer.rb +33 -0
- data/lib/gtk_paradise/widgets/gtk3/files_in_directory/files_in_directory.rb +318 -0
- data/lib/gtk_paradise/widgets/gtk3/flexible_vte/README.md +4 -0
- data/lib/gtk_paradise/widgets/gtk3/flexible_vte/flexible_vte.rb +241 -0
- data/lib/gtk_paradise/widgets/gtk3/flip_state_widget/flip_state_widget.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/font_size_widget/action_button.rb +69 -0
- data/lib/gtk_paradise/widgets/gtk3/font_size_widget/font_size_widget.rb +540 -0
- data/lib/gtk_paradise/widgets/gtk3/gidnight_commander/gidnight_commander.rb +415 -0
- data/lib/gtk_paradise/widgets/gtk3/google_searcher/google_searcher.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/image_close_on_click_action/image_close_on_click_action.rb +101 -0
- data/lib/gtk_paradise/widgets/gtk3/image_viewer/image_viewer.rb +214 -0
- data/lib/gtk_paradise/widgets/gtk3/information_about_the_harddisc/information_about_the_harddisc.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/insert_character/insert_character.rb +266 -0
- data/lib/gtk_paradise/widgets/gtk3/linux_users/linux_users.rb +192 -0
- data/lib/gtk_paradise/widgets/gtk3/list_store_table3/list_store_table3.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk3/lsmod/lsmod.rb +27 -0
- data/lib/gtk_paradise/widgets/gtk3/lspci/lspci.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk3/maximize_button/maximize_button.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk3/mini_clock/mini_clock.rb +47 -0
- data/lib/gtk_paradise/widgets/gtk3/my_calendar/my_calendar.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/notebook_controller/notebook_controller.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/notebook_tab_with_icon/notebook_tab_with_icon.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/numbered_lines/numbered_lines.rb +307 -0
- data/lib/gtk_paradise/widgets/gtk3/one_column_with_text_and_image/one_column_with_text_and_image.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/pid_displayer/pid_displayer.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/ping_widget/ping_widget.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/psaux_viewer/psaux_viewer.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk3/random_image/random_image.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk3/regex_matcher/regex_matcher.rb +156 -0
- data/lib/gtk_paradise/widgets/gtk3/rename_widget/rename_widget.rb +305 -0
- data/lib/gtk_paradise/widgets/gtk3/scrolled_window_with_viewport/scrolled_window_with_viewport.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/select_file/select_file.rb +32 -0
- data/lib/gtk_paradise/widgets/gtk3/show_icon_theme/show_icon_theme.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/simple_clock/simple_clock.rb +38 -0
- data/lib/gtk_paradise/widgets/gtk3/stopwatch/stopwatch.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/sys_message/sys_message.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk3/system_information/system_information.rb +188 -0
- data/lib/gtk_paradise/widgets/gtk3/tabble/admin_panel.rb +196 -0
- data/lib/gtk_paradise/widgets/gtk3/tabble/constants.rb +19 -0
- data/lib/gtk_paradise/widgets/gtk3/tabble/image_and_button.rb +383 -0
- data/lib/gtk_paradise/widgets/gtk3/tabble/tabble.rb +535 -0
- data/lib/gtk_paradise/widgets/gtk3/tabby/tabby.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk3/tabby/view.rb +32 -0
- data/lib/gtk_paradise/widgets/gtk3/text_entry_widget/text_entry_widget.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/unicode_clock/unicode_clock.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/user/user.rb +29 -0
- data/lib/gtk_paradise/widgets/gtk3/view_webpage/view_webpage.rb +183 -0
- data/lib/gtk_paradise/widgets/gtk3/vote_box_widget/vote_box_widget.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/wget_wrapper/wget_wrapper.rb +30 -0
- data/lib/gtk_paradise/widgets/gtk3/xpm_loader/xpm_loader.rb +32 -0
- data/lib/gtk_paradise/widgets/shared_code/admin_panel/admin_panel_module.rb +235 -0
- data/lib/gtk_paradise/widgets/shared_code/browser/browser_module.rb +314 -0
- data/lib/gtk_paradise/widgets/shared_code/burning_widget/burning_widget_module.rb +185 -0
- data/lib/gtk_paradise/widgets/shared_code/cdripper/cdripper_module.rb +564 -0
- data/lib/gtk_paradise/widgets/shared_code/colour_filled_widget/colour_filled_widget_module.rb +283 -0
- data/lib/gtk_paradise/widgets/shared_code/colour_palette/colour_palette_module.rb +362 -0
- data/lib/gtk_paradise/widgets/shared_code/coloured_bar/coloured_bar_module.rb +248 -0
- data/lib/gtk_paradise/widgets/shared_code/conky/conky_module.rb +378 -0
- data/lib/gtk_paradise/widgets/shared_code/contacts/contacts_module.rb +335 -0
- data/lib/gtk_paradise/widgets/shared_code/customizable_dialog/customizable_dialog.rb +95 -0
- data/lib/gtk_paradise/widgets/shared_code/debug_widget/debug_widget_module.rb +307 -0
- data/lib/gtk_paradise/widgets/shared_code/directory_content_widget/constants.rb +53 -0
- data/lib/gtk_paradise/widgets/shared_code/directory_content_widget/directory_content_widget_module.rb +777 -0
- data/lib/gtk_paradise/widgets/shared_code/directory_content_widget/handle_this_file_or_symlink.rb +83 -0
- data/lib/gtk_paradise/widgets/shared_code/emoji_toggle_widget/emoji_toggle_widget_module.rb +226 -0
- data/lib/gtk_paradise/widgets/shared_code/emoji_widget/emoji_widget_module.rb +212 -0
- data/lib/gtk_paradise/widgets/shared_code/error_widget/error_widget_module.rb +157 -0
- data/lib/gtk_paradise/widgets/shared_code/file_path_widget/file_path_widget.css +0 -0
- data/lib/gtk_paradise/widgets/shared_code/file_path_widget/file_path_widget_module.rb +245 -0
- data/lib/gtk_paradise/widgets/shared_code/file_viewer/file_viewer_module.rb +285 -0
- data/lib/gtk_paradise/widgets/shared_code/flip_state_widget/flip_state_widget_module.rb +203 -0
- data/lib/gtk_paradise/widgets/shared_code/google_searcher/google_searcher_module.rb +218 -0
- data/lib/gtk_paradise/widgets/shared_code/information_about_the_harddisc/harddisc_information.rb +155 -0
- data/lib/gtk_paradise/widgets/shared_code/information_about_the_harddisc/information_about_the_harddisc_module.rb +444 -0
- data/lib/gtk_paradise/widgets/shared_code/list_store_table3/list_store_table3_module.rb +144 -0
- data/lib/gtk_paradise/widgets/shared_code/lsmod/lsmod_module.rb +275 -0
- data/lib/gtk_paradise/widgets/shared_code/lspci/lspci_module.rb +329 -0
- data/lib/gtk_paradise/widgets/shared_code/maximize_button/maximize_button_module.rb +166 -0
- data/lib/gtk_paradise/widgets/shared_code/mini_clock/mini_clock_module.rb +228 -0
- data/lib/gtk_paradise/widgets/shared_code/my_calendar/my_calendar_module.rb +327 -0
- data/lib/gtk_paradise/widgets/shared_code/notebook_controller/notebook_controller_module.rb +339 -0
- data/lib/gtk_paradise/widgets/shared_code/notebook_tab_with_icon/notebook_tab_with_icon_module.rb +297 -0
- data/lib/gtk_paradise/widgets/shared_code/one_column_with_text_and_image/one_column_with_text_and_image_module.rb +223 -0
- data/lib/gtk_paradise/widgets/shared_code/pid_displayer/pid_displayer_module.rb +596 -0
- data/lib/gtk_paradise/widgets/shared_code/ping_widget/ping_widget_module.rb +326 -0
- data/lib/gtk_paradise/widgets/shared_code/psaux_viewer/psaux_viewer_module.rb +210 -0
- data/lib/gtk_paradise/widgets/shared_code/random_image/random_image_module.rb +307 -0
- data/lib/gtk_paradise/widgets/shared_code/scrolled_window_with_viewport/scrolled_window_with_viewport_module.rb +165 -0
- data/lib/gtk_paradise/widgets/shared_code/select_file/select_file_module.rb +241 -0
- data/lib/gtk_paradise/widgets/shared_code/shell/shell.css +5 -0
- data/lib/gtk_paradise/widgets/shared_code/shell/shell_module.rb +0 -0
- data/lib/gtk_paradise/widgets/shared_code/show_icon_theme/show_icon_theme_module.rb +364 -0
- data/lib/gtk_paradise/widgets/shared_code/simple_clock/simple_clock_module.rb +266 -0
- data/lib/gtk_paradise/widgets/shared_code/stopwatch/stopwatch_module.rb +341 -0
- data/lib/gtk_paradise/widgets/shared_code/sys_message/sys_message_module.rb +211 -0
- data/lib/gtk_paradise/widgets/shared_code/tabby/tabby_module.rb +189 -0
- data/lib/gtk_paradise/widgets/shared_code/tabby/view_module.rb +340 -0
- data/lib/gtk_paradise/widgets/shared_code/text_entry_widget/text_entry_widget_module.rb +182 -0
- data/lib/gtk_paradise/widgets/shared_code/unicode_clock/unicode_clock.css +0 -0
- data/lib/gtk_paradise/widgets/shared_code/unicode_clock/unicode_clock_module.rb +192 -0
- data/lib/gtk_paradise/widgets/shared_code/user/user_module.rb +307 -0
- data/lib/gtk_paradise/widgets/shared_code/vote_box_widget/vote_box_widget_module.rb +208 -0
- data/lib/gtk_paradise/widgets/shared_code/wget_wrapper/wget_wrapper_module.rb +266 -0
- data/lib/gtk_paradise/widgets/shared_code/xpm_loader/xpm_loader_module.rb +190 -0
- data/lib/gtk_paradise/widgets/version_agnostic/audio_button.rb +134 -0
- data/lib/gtk_paradise/widgets/version_agnostic/button_open_remote_webpage.rb +171 -0
- data/lib/gtk_paradise/widgets/version_agnostic/button_with_border.rb +63 -0
- data/lib/gtk_paradise/widgets/version_agnostic/button_xorg_buffer.rb +150 -0
- data/lib/gtk_paradise/widgets/version_agnostic/coloured_button.rb +248 -0
- data/lib/gtk_paradise/widgets/version_agnostic/coloured_unit.rb +54 -0
- data/lib/gtk_paradise/widgets/version_agnostic/my_image_menu_item.rb +103 -0
- data/lib/gtk_paradise/widgets/version_agnostic/my_menu_item_separator.rb +31 -0
- data/lib/gtk_paradise/widgets/version_agnostic/non_numbers_only.rb +66 -0
- data/lib/gtk_paradise/widgets/version_agnostic/note_window.rb +107 -0
- data/lib/gtk_paradise/widgets/version_agnostic/numbers_only.rb +61 -0
- data/lib/gtk_paradise/www/index.cgi +34 -0
- data/lib/gtk_paradise/yaml/browser_URLs.yml +22 -0
- data/lib/gtk_paradise/yaml/configuration_options_for_class_gtk_runner.yml +29 -0
- data/lib/gtk_paradise/yaml/menu.yml +1026 -0
- data/lib/gtk_paradise/yaml/notebook_controller.yml +299 -0
- data/lib/gtk_paradise/yaml/use_this_gtk_version_by_default.yml +1 -0
- data/lib/gtk_paradise.rb +5 -0
- data/test/gtk2/testing_combo_box.rb +24 -0
- data/test/gtk2/testing_gtk_image.rb +24 -0
- data/test/gtk2/testing_label_with_ampersand.rb +26 -0
- data/test/gtk2/testing_notebook.rb +23 -0
- data/test/gtk2/testing_the_gtk_paradise_project.rb +25 -0
- data/test/gtk3/test_widget.rb +114 -0
- data/test/gtk3/testing_app.rb +22 -0
- data/test/gtk3/testing_base_module.rb +63 -0
- data/test/gtk3/testing_colours.rb +11 -0
- data/test/gtk3/testing_project_base_directory.rb +9 -0
- data/test/gtk3/testing_the_html_pseudo_tags.rb +127 -0
- data/test/misc/testing_gtk_paradise_runner.rb +22 -0
- metadata +813 -0
@@ -0,0 +1,171 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# === Paned Widget Example
|
6
|
+
#
|
7
|
+
# The Gtk::HPaned and Gtk::VPaned Widgets divide their content area into
|
8
|
+
# two panes with a divider in between that the user can adjust. A
|
9
|
+
# separate child is placed into each pane.
|
10
|
+
#
|
11
|
+
# There are a number of options that can be set for each pane.
|
12
|
+
#
|
13
|
+
# This example code here contains both a horizontal (HPaned) and a vertical
|
14
|
+
# (VPaned) widget together, and allows you to adjust the options for each
|
15
|
+
# side of each of these widgets.
|
16
|
+
# =========================================================================== #
|
17
|
+
require 'gtk2'
|
18
|
+
|
19
|
+
class PanedWidgetExample < ::Gtk::VBox
|
20
|
+
|
21
|
+
# ========================================================================= #
|
22
|
+
# === initialize
|
23
|
+
# ========================================================================= #
|
24
|
+
def initialize
|
25
|
+
super('PanedWidgets')
|
26
|
+
self.border_width = 0
|
27
|
+
vbox = Gtk::VBox.new(false, 0)
|
28
|
+
add(vbox)
|
29
|
+
# Add a VPaned widget next:
|
30
|
+
vpaned = Gtk::VPaned.new
|
31
|
+
vbox.pack_start(vpaned, true, true, 0)
|
32
|
+
vpaned.border_width = 5
|
33
|
+
# Add a HPaned widget next:
|
34
|
+
hpaned = Gtk::HPaned.new
|
35
|
+
vpaned.add1(hpaned)
|
36
|
+
frame = Gtk::Frame.new
|
37
|
+
frame.shadow_type = Gtk::SHADOW_IN
|
38
|
+
frame.set_size_request(60, 60)
|
39
|
+
hpaned.add1(frame)
|
40
|
+
# Add a simple button next, into a Gtk::Frame.
|
41
|
+
button = Gtk::Button.new('_Hi there', true)
|
42
|
+
frame.add(button)
|
43
|
+
frame = Gtk::Frame.new
|
44
|
+
frame.shadow_type = Gtk::SHADOW_IN
|
45
|
+
frame.set_size_request(80, 60)
|
46
|
+
hpaned.add2(frame)
|
47
|
+
frame = Gtk::Frame.new
|
48
|
+
frame.shadow_type = Gtk::SHADOW_IN
|
49
|
+
frame.set_size_request(60, 80)
|
50
|
+
vpaned.add2(frame)
|
51
|
+
# Now create toggle buttons to control sizing. Three labels
|
52
|
+
# will be supplied as well.
|
53
|
+
vbox.pack_start(create_pane_options(hpaned,
|
54
|
+
'Horizontal', 'Left', 'Right'),
|
55
|
+
false, false, 0
|
56
|
+
)
|
57
|
+
vbox.pack_start(create_pane_options(vpaned,
|
58
|
+
'Vertical', 'Top', 'Bottom'),
|
59
|
+
false, false, 0
|
60
|
+
)
|
61
|
+
end
|
62
|
+
|
63
|
+
# ========================================================================= #
|
64
|
+
# === create_pane_options
|
65
|
+
#
|
66
|
+
# This method will embed widgets into a Gtk::Frame.
|
67
|
+
# ========================================================================= #
|
68
|
+
def create_pane_options(paned, frame_label, label1, label2)
|
69
|
+
frame = Gtk::Frame.new(frame_label)
|
70
|
+
frame.border_width = 4
|
71
|
+
|
72
|
+
table = Gtk::Table.new(3, 2, true)
|
73
|
+
frame.add(table)
|
74
|
+
|
75
|
+
label = Gtk::Label.new(label1)
|
76
|
+
table.attach_defaults(label, 0, 1, 0, 1)
|
77
|
+
|
78
|
+
check_button = Gtk::CheckButton.new('_Resize', true)
|
79
|
+
table.attach_defaults(check_button, 0, 1, 1, 2)
|
80
|
+
check_button.signal_connect(:toggled) {
|
81
|
+
toggle_resize(paned.child1)
|
82
|
+
}
|
83
|
+
|
84
|
+
check_button = Gtk::CheckButton.new('_Shrink', true)
|
85
|
+
table.attach_defaults(check_button, 0, 1, 2, 3)
|
86
|
+
check_button.active = true
|
87
|
+
check_button.signal_connect(:toggled) {
|
88
|
+
toggle_shrink(paned.child1)
|
89
|
+
}
|
90
|
+
|
91
|
+
label = Gtk::Label.new(label2)
|
92
|
+
table.attach_defaults(label, 1, 2, 0, 1)
|
93
|
+
|
94
|
+
check_button = Gtk::CheckButton.new('_Resize')
|
95
|
+
table.attach_defaults(check_button, 1, 2, 1, 2)
|
96
|
+
check_button.active = true
|
97
|
+
check_button.signal_connect(:toggled) {
|
98
|
+
toggle_resize(paned.child2)
|
99
|
+
}
|
100
|
+
|
101
|
+
check_button = Gtk::CheckButton.new('_Shrink')
|
102
|
+
table.attach_defaults(check_button, 1, 2, 2, 3)
|
103
|
+
check_button.active = true
|
104
|
+
check_button.signal_connect(:toggled) {
|
105
|
+
toggle_shrink(paned.child2)
|
106
|
+
}
|
107
|
+
return frame
|
108
|
+
end
|
109
|
+
|
110
|
+
# ========================================================================= #
|
111
|
+
# === toggle_resize
|
112
|
+
# ========================================================================= #
|
113
|
+
def toggle_resize(child)
|
114
|
+
paned = child.parent
|
115
|
+
is_child1 = (child == paned.child1)
|
116
|
+
resize = if is_child1
|
117
|
+
paned.child1_resize?
|
118
|
+
else
|
119
|
+
paned.child2_resize?
|
120
|
+
end
|
121
|
+
|
122
|
+
shrink = if is_child1
|
123
|
+
paned.child1_shrink?
|
124
|
+
else
|
125
|
+
paned.child2_shrink?
|
126
|
+
end
|
127
|
+
|
128
|
+
child.parent.remove(child)
|
129
|
+
if is_child1
|
130
|
+
paned.pack1(child, !resize, shrink)
|
131
|
+
else
|
132
|
+
paned.pack2(child, !resize, shrink)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
# ========================================================================= #
|
137
|
+
# === toggle_shrink
|
138
|
+
# ========================================================================= #
|
139
|
+
def toggle_shrink(child)
|
140
|
+
paned = child.parent
|
141
|
+
is_child1 = (child == paned.child1)
|
142
|
+
|
143
|
+
resize = if is_child1
|
144
|
+
paned.child1_resize?
|
145
|
+
else
|
146
|
+
paned.child2_resize?
|
147
|
+
end
|
148
|
+
|
149
|
+
shrink = if is_child1
|
150
|
+
paned.child1_shrink?
|
151
|
+
else
|
152
|
+
paned.child2_shrink?
|
153
|
+
end
|
154
|
+
child.parent.remove(child)
|
155
|
+
if is_child1
|
156
|
+
paned.pack1(child, resize, !shrink)
|
157
|
+
else
|
158
|
+
paned.pack2(child, resize, !shrink)
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
end
|
163
|
+
|
164
|
+
if __FILE__ == $PROGRAM_NAME
|
165
|
+
window = Gtk::Window.new
|
166
|
+
window.add(PanedWidgetExample.new)
|
167
|
+
window.set_size_request(1000, 500)
|
168
|
+
window.move(0, 0)
|
169
|
+
window.show_all
|
170
|
+
Gtk.main
|
171
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# This example shows a password-entry.
|
6
|
+
# =========================================================================== #
|
7
|
+
require 'gtk2'
|
8
|
+
|
9
|
+
vbox = Gtk::HBox.new
|
10
|
+
password = Gtk::Entry.new
|
11
|
+
password.set_visibility(false)
|
12
|
+
# =========================================================================== #
|
13
|
+
# The value of 42 is '*' in Unicode.
|
14
|
+
# =========================================================================== #
|
15
|
+
password.invisible_char = 42
|
16
|
+
vbox.add(password)
|
17
|
+
window = Gtk::Window.new
|
18
|
+
window.add(vbox)
|
19
|
+
window.show_all
|
20
|
+
window.set_size_request(500, -1)
|
21
|
+
window.move(0, 0)
|
22
|
+
Gtk.main
|
@@ -0,0 +1,61 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# This is a popup example, that is, when you click the right mouse button,
|
6
|
+
# a context-menu will emerge.
|
7
|
+
# =========================================================================== #
|
8
|
+
require 'gtk2'
|
9
|
+
|
10
|
+
context_menu = Gtk::Menu.new
|
11
|
+
context_menu.append(mitem1 = Gtk::MenuItem.new('Test1'))
|
12
|
+
context_menu.append(mitem2 = Gtk::MenuItem.new('Test2'))
|
13
|
+
context_menu.append(mitem3 = Gtk::MenuItem.new('Test3'))
|
14
|
+
context_menu.append(mitem4 = Gtk::MenuItem.new('Test4'))
|
15
|
+
context_menu.append(mitem5 = Gtk::MenuItem.new('Test5'))
|
16
|
+
context_menu.show_all
|
17
|
+
|
18
|
+
# =========================================================================== #
|
19
|
+
# Next, let these menu-items respond to when the user activates them.
|
20
|
+
# =========================================================================== #
|
21
|
+
mitem1.signal_connect(:activate) { |widget| puts "#{widget.class} - Test1" }
|
22
|
+
mitem2.signal_connect(:activate) { |widget| puts "#{widget.class} - Test2" }
|
23
|
+
mitem3.signal_connect(:activate) { |widget| puts "#{widget.class} - Test3" }
|
24
|
+
mitem4.signal_connect(:activate) { |widget| puts "#{widget.class} - Test4" }
|
25
|
+
mitem5.signal_connect(:activate) { |widget| puts "#{widget.class} - Test5" }
|
26
|
+
|
27
|
+
window = Gtk::Window.new('A simple example-context-menu')
|
28
|
+
# =========================================================================== #
|
29
|
+
# Make window sensitive to Right-mouse-click, to open the pop-up menu.
|
30
|
+
# window.add_events(:button_press_mask) # ← this is the variant for ruby-gtk3
|
31
|
+
# =========================================================================== #
|
32
|
+
window.add_events(Gdk::Event::BUTTON_PRESS_MASK) # in gtk-paradise this becomes: add_button_press_events
|
33
|
+
window.signal_connect(:button_press_event) { |widget, event|
|
34
|
+
# ========================================================================= #
|
35
|
+
# Note that 'menu' was defined above, as an instance of Gtk::Menu.
|
36
|
+
# ========================================================================= #
|
37
|
+
context_menu.popup(nil, nil, event.button, event.time) if (event.button == 3) # right mouse click event.
|
38
|
+
}
|
39
|
+
# =========================================================================== #
|
40
|
+
# Make this window sensitive to <Shift+F10> accelerator keys.
|
41
|
+
# These accelerator keys generate the 'popup-menu' signal for
|
42
|
+
# the window, which opens the popup-menu.
|
43
|
+
# =========================================================================== #
|
44
|
+
window.signal_connect(:popup_menu) { |widget|
|
45
|
+
# context_menu.popup(nil, nil, 0, Gdk::CURRENT_TIME)
|
46
|
+
puts 'shift+F10 was pressed' # This will ONLY show up via shift+F10, and not via right-mouse button click event.
|
47
|
+
context_menu.popup(nil, nil, 0, Gdk::Event::CURRENT_TIME)
|
48
|
+
}
|
49
|
+
|
50
|
+
window.set_default_size(400, 200).show_all
|
51
|
+
window.signal_connect(:destroy) { Gtk.main_quit }
|
52
|
+
label_widget = Gtk::Label.new(
|
53
|
+
"Hello World\nYou may 'right-click' me\n\n or use <Shift+F10>"
|
54
|
+
)
|
55
|
+
|
56
|
+
hbox = Gtk::HBox.new
|
57
|
+
hbox.add(label_widget)
|
58
|
+
window.add(hbox)
|
59
|
+
window.show_all
|
60
|
+
window.move(0, 0)
|
61
|
+
Gtk.main
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
require 'gtk2'
|
6
|
+
alias e puts
|
7
|
+
|
8
|
+
window = Gtk::Window.new(:toplevel)
|
9
|
+
window.realize
|
10
|
+
|
11
|
+
hbox = Gtk::HBox.new
|
12
|
+
hbox.add(Gtk::Label.new('This tests the cursors.'))
|
13
|
+
hbox.add(Gtk::Button.new('This button is just used without any specific reason.'))
|
14
|
+
window.add(
|
15
|
+
hbox
|
16
|
+
)
|
17
|
+
|
18
|
+
cursor = Gdk::Cursor.new(Gdk::Cursor::PENCIL)
|
19
|
+
|
20
|
+
window.window.set_cursor(cursor)
|
21
|
+
|
22
|
+
window.set_default_size(800, 800)
|
23
|
+
window.move(0, 0)
|
24
|
+
window.show_all
|
25
|
+
Gtk.main
|
@@ -0,0 +1,44 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# This will create a link-button.
|
6
|
+
# =========================================================================== #
|
7
|
+
require 'gtk2'
|
8
|
+
|
9
|
+
window = Gtk::Window.new('Gtk::LinkButton example')
|
10
|
+
window.signal_connect(:destroy) { Gtk.main_quit }
|
11
|
+
window.move(0, 0)
|
12
|
+
window.set_size_request(800, 800)
|
13
|
+
|
14
|
+
vbox = Gtk::VBox.new
|
15
|
+
|
16
|
+
# =========================================================================== #
|
17
|
+
# URI only
|
18
|
+
# =========================================================================== #
|
19
|
+
button1 = Gtk::LinkButton.new('https://ruby-gnome2.osdn.jp/')
|
20
|
+
button1.signal_connect(:clicked) {
|
21
|
+
puts button1.uri
|
22
|
+
}
|
23
|
+
vbox.pack_start(button1)
|
24
|
+
|
25
|
+
# =========================================================================== #
|
26
|
+
# URI with a label
|
27
|
+
# =========================================================================== #
|
28
|
+
button2 = Gtk::LinkButton.new('https://ruby-gnome2.osdn.jp/',
|
29
|
+
'Ruby-GNOME2 Website')
|
30
|
+
button2.signal_connect(:clicked) {
|
31
|
+
puts button2.uri
|
32
|
+
}
|
33
|
+
|
34
|
+
# =========================================================================== #
|
35
|
+
# Global setting instead of using clicked signals.
|
36
|
+
# =========================================================================== #
|
37
|
+
Gtk::LinkButton.set_uri_hook {|button, link|
|
38
|
+
puts "set_uri_hook: " + link
|
39
|
+
}
|
40
|
+
|
41
|
+
vbox.pack_start(button2)
|
42
|
+
window.add(vbox)
|
43
|
+
window.show_all
|
44
|
+
Gtk.main
|
@@ -0,0 +1,63 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# The code in this file just shows how to make use of Gdk::GC for drawing
|
6
|
+
# shapes.
|
7
|
+
# =========================================================================== #
|
8
|
+
require 'gtk2'
|
9
|
+
|
10
|
+
main_window = Gtk::Window.new('Gdk::GC sample')
|
11
|
+
main_window.set_default_size(500, 500)
|
12
|
+
main_window.app_paintable = true
|
13
|
+
main_window.realize
|
14
|
+
|
15
|
+
drawable = main_window.window
|
16
|
+
gc = Gdk::GC.new(drawable)
|
17
|
+
|
18
|
+
red = Gdk::Color.new(65535, 0, 0)
|
19
|
+
green = Gdk::Color.new(0, 65535, 0)
|
20
|
+
|
21
|
+
colormap = Gdk::Colormap.system
|
22
|
+
colormap.alloc_color(red, false, true)
|
23
|
+
colormap.alloc_color(green, false, true)
|
24
|
+
|
25
|
+
main_window.add(Gtk::Button.new('Test'))
|
26
|
+
main_window.signal_connect(:expose_event) { |win, evt|
|
27
|
+
gc.set_foreground(red)
|
28
|
+
gc.set_background(green)
|
29
|
+
|
30
|
+
gc.set_line_attributes(5, Gdk::GC::LINE_SOLID, Gdk::GC::CAP_NOT_LAST, Gdk::GC::JOIN_MITER)
|
31
|
+
drawable.draw_line(gc, 20, 10, 150, 10)
|
32
|
+
|
33
|
+
gc.set_line_attributes(5, Gdk::GC::LINE_ON_OFF_DASH, Gdk::GC::CAP_NOT_LAST, Gdk::GC::JOIN_MITER)
|
34
|
+
drawable.draw_line(gc, 20, 30, 150, 30)
|
35
|
+
|
36
|
+
gc.set_line_attributes(5, Gdk::GC::LINE_DOUBLE_DASH, Gdk::GC::CAP_NOT_LAST, Gdk::GC::JOIN_MITER)
|
37
|
+
drawable.draw_line(gc, 20, 50, 150, 50)
|
38
|
+
|
39
|
+
gc.set_line_attributes(30, Gdk::GC::LINE_SOLID, Gdk::GC::CAP_NOT_LAST, Gdk::GC::JOIN_MITER)
|
40
|
+
drawable.draw_line(gc, 20, 100, 120, 100)
|
41
|
+
|
42
|
+
gc.set_line_attributes(30, Gdk::GC::LINE_SOLID, Gdk::GC::CAP_BUTT, Gdk::GC::JOIN_MITER)
|
43
|
+
drawable.draw_line(gc, 20, 140, 120, 140)
|
44
|
+
|
45
|
+
gc.set_line_attributes(30, Gdk::GC::LINE_SOLID, Gdk::GC::CAP_ROUND, Gdk::GC::JOIN_MITER)
|
46
|
+
drawable.draw_line(gc, 20, 180, 120, 180)
|
47
|
+
|
48
|
+
gc.set_line_attributes(30, Gdk::GC::LINE_SOLID, Gdk::GC::CAP_PROJECTING, Gdk::GC::JOIN_MITER)
|
49
|
+
drawable.draw_line(gc, 20, 220, 120, 220)
|
50
|
+
|
51
|
+
gc.set_line_attributes(40, Gdk::GC::LINE_SOLID, Gdk::GC::CAP_NOT_LAST, Gdk::GC::JOIN_MITER)
|
52
|
+
drawable.draw_lines(gc, [[200, 80], [220, 30], [280, 50]])
|
53
|
+
|
54
|
+
gc.set_line_attributes(40, Gdk::GC::LINE_SOLID, Gdk::GC::CAP_NOT_LAST, Gdk::GC::JOIN_ROUND)
|
55
|
+
drawable.draw_lines(gc, [[200, 170], [220, 120], [280, 140]])
|
56
|
+
|
57
|
+
gc.set_line_attributes(40, Gdk::GC::LINE_SOLID, Gdk::GC::CAP_NOT_LAST, Gdk::GC::JOIN_BEVEL)
|
58
|
+
drawable.draw_lines(gc, [[200, 260], [220, 210], [280, 230]])
|
59
|
+
}
|
60
|
+
main_window.show_all.signal_connect(:destroy) { Gtk.main_quit }
|
61
|
+
main_window.move(0, 0)
|
62
|
+
Gtk.main
|
63
|
+
# rb gc_drawing_examples.rb
|
@@ -0,0 +1,155 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# The idea of this class is to showcase a Gtk::ComboBox.
|
6
|
+
# =========================================================================== #
|
7
|
+
require 'gtk2'
|
8
|
+
|
9
|
+
class ComboBoxExample < ::Gtk::VBox # === ComboBoxExample
|
10
|
+
|
11
|
+
alias e puts
|
12
|
+
|
13
|
+
# ========================================================================= #
|
14
|
+
# === initialize
|
15
|
+
# ========================================================================= #
|
16
|
+
def initialize
|
17
|
+
super()
|
18
|
+
reset
|
19
|
+
create_combo_box_entry
|
20
|
+
@main_window = Gtk::Window.new('A Gtk::ComboBox sample')
|
21
|
+
@main_window.signal_connect(:destroy) { Gtk.main_quit }
|
22
|
+
@main_window.set_default_size(600, 600)
|
23
|
+
@button_quit = Gtk::Button.new('_Quit')
|
24
|
+
@button_quit.signal_connect(:clicked) { Gtk.main_quit }
|
25
|
+
@button_clear = Gtk::Button.new('_Clear List')
|
26
|
+
@button_clear.signal_connect(:clicked) {
|
27
|
+
e 'Clearing list'
|
28
|
+
@combo_box_entry.model.clear
|
29
|
+
}
|
30
|
+
add_debug_button
|
31
|
+
@v_box = Gtk::VBox.new
|
32
|
+
@v_box.add(@combo_box_entry).
|
33
|
+
pack_start(@button_quit,false, false).
|
34
|
+
pack_start(@button_clear, false, false).
|
35
|
+
pack_start(@button_debug, false, false)
|
36
|
+
@big_vbox.add(@v_box)
|
37
|
+
run
|
38
|
+
end
|
39
|
+
|
40
|
+
# ========================================================================= #
|
41
|
+
# === reset
|
42
|
+
# ========================================================================= #
|
43
|
+
def reset
|
44
|
+
@big_vbox = Gtk::VBox.new
|
45
|
+
end
|
46
|
+
|
47
|
+
# ========================================================================= #
|
48
|
+
# === big_vbox?
|
49
|
+
# ========================================================================= #
|
50
|
+
def big_vbox?
|
51
|
+
@big_vbox
|
52
|
+
end
|
53
|
+
|
54
|
+
# ========================================================================= #
|
55
|
+
# === run
|
56
|
+
# ========================================================================= #
|
57
|
+
def run
|
58
|
+
combo1 = ::Gtk::ComboBox.new
|
59
|
+
%w( one two three four five ).each { |val|
|
60
|
+
combo1.append_text(val)
|
61
|
+
}
|
62
|
+
combo1.active = 1 # Second entry is active, which is 'two'.
|
63
|
+
combo1.signal_connect(:changed) {
|
64
|
+
p "combo1: #{combo1.active}, #{combo1.active_iter[0]}"
|
65
|
+
}
|
66
|
+
big_vbox?.pack_start(combo1, true, true, 2)
|
67
|
+
# =========================================================================== #
|
68
|
+
# Text only, for our first combo-box. This is the simplest combo-box
|
69
|
+
# variant.
|
70
|
+
# =========================================================================== #
|
71
|
+
|
72
|
+
# =========================================================================== #
|
73
|
+
# Icon and texts in use for the following combo-box.
|
74
|
+
# =========================================================================== #
|
75
|
+
model = Gtk::ListStore.new(GdkPixbuf::Pixbuf, String)
|
76
|
+
[[Gtk::Stock::QUIT, 'quit'],
|
77
|
+
[Gtk::Stock::CANCEL, 'cancel'],
|
78
|
+
[Gtk::Stock::OK, 'ok']].each { |stock, name|
|
79
|
+
iter = model.append
|
80
|
+
iter[0] = @main_window.render_icon(stock, Gtk::IconSize::MENU, "icon")
|
81
|
+
iter[1] = name
|
82
|
+
}
|
83
|
+
|
84
|
+
combo2 = Gtk::ComboBox.new(model)
|
85
|
+
combo2.signal_connect(:changed) {
|
86
|
+
p "combo2 was changed: #{combo2.active}, #{combo2.active_iter[0]}"
|
87
|
+
}
|
88
|
+
|
89
|
+
# =========================================================================== #
|
90
|
+
# column 1
|
91
|
+
# =========================================================================== #
|
92
|
+
renderer = Gtk::CellRendererPixbuf.new
|
93
|
+
combo2.pack_start(renderer, false)
|
94
|
+
combo2.set_attributes(renderer, pixbuf: 0)
|
95
|
+
|
96
|
+
# =========================================================================== #
|
97
|
+
# column 2
|
98
|
+
# =========================================================================== #
|
99
|
+
renderer = Gtk::CellRendererText.new
|
100
|
+
combo2.pack_start(renderer, true)
|
101
|
+
combo2.set_attributes(renderer, text: 1)
|
102
|
+
combo2.active = 2
|
103
|
+
combo2.signal_connect(:changed) {
|
104
|
+
p "combo2: #{combo2.active}, #{combo2.active_iter[1]}"
|
105
|
+
}
|
106
|
+
@big_vbox.pack_start(combo2, true, true)
|
107
|
+
@main_window.add(@big_vbox)
|
108
|
+
@main_window.show_all
|
109
|
+
Gtk.main
|
110
|
+
end
|
111
|
+
|
112
|
+
# ========================================================================= #
|
113
|
+
# === add_debug_button
|
114
|
+
# ========================================================================= #
|
115
|
+
def add_debug_button
|
116
|
+
@button_debug = Gtk::Button.new('_Debug')
|
117
|
+
@button_debug.signal_connect(:clicked) {
|
118
|
+
e 'Debug: '+@combo_box_entry.active.to_s
|
119
|
+
}
|
120
|
+
end
|
121
|
+
|
122
|
+
# ========================================================================= #
|
123
|
+
# === create_combo_box_entry
|
124
|
+
#
|
125
|
+
# This will create a Gtk::ComboBoxEntry instance.
|
126
|
+
# ========================================================================= #
|
127
|
+
def create_combo_box_entry
|
128
|
+
@combo_box_entry = ::Gtk::ComboBoxEntry.new
|
129
|
+
%w(
|
130
|
+
combo_box_entry1
|
131
|
+
combo_box_entry2
|
132
|
+
combo_box_entry3
|
133
|
+
combo_box_entry4
|
134
|
+
).each { |val|
|
135
|
+
@combo_box_entry.append_text(val)
|
136
|
+
}
|
137
|
+
@combo_box_entry.active = 0
|
138
|
+
@combo_box_entry.signal_connect(:changed) {
|
139
|
+
if @combo_box_entry.active_iter
|
140
|
+
p "@combo_box_entry: #{@combo_box_entry.active}, #{@combo_box_entry.active_iter[0]}"
|
141
|
+
end
|
142
|
+
}
|
143
|
+
end
|
144
|
+
# combo_text.model.clear
|
145
|
+
end
|
146
|
+
|
147
|
+
if __FILE__ == $PROGRAM_NAME
|
148
|
+
window = Gtk::Window.new
|
149
|
+
window.add(ComboBoxExample.new)
|
150
|
+
window.move(0, 0)
|
151
|
+
window.set_size_request(800, 500)
|
152
|
+
window.show_all
|
153
|
+
window.signal_connect(:destroy) { Gtk.main_quit }
|
154
|
+
Gtk.main
|
155
|
+
end # $RUBY_GTK/showcase_combo_box.rb
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# This file demonstrates the possibility to have more than one Gtk::Window
|
6
|
+
# side by side. It may be useful to know if you ever encounter such a
|
7
|
+
# use case in reallife.
|
8
|
+
# =========================================================================== #
|
9
|
+
require 'gtk2'
|
10
|
+
|
11
|
+
w1 = Gtk::Window.new
|
12
|
+
w1.add(Gtk::VBox.new.add(Gtk::Label.new('Window #1')))
|
13
|
+
w2 = Gtk::Window.new
|
14
|
+
w2.add(Gtk::VBox.new.add(Gtk::Label.new('Window #2')))
|
15
|
+
w3 = Gtk::Window.new
|
16
|
+
w3.add(Gtk::VBox.new.add(Gtk::Label.new('Window #3')))
|
17
|
+
w1.set_size_request(500, 500).show_all
|
18
|
+
w2.set_size_request(500, 500).show_all
|
19
|
+
w3.set_size_request(500, 500).show_all
|
20
|
+
Gtk.main
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
require 'gtk2'
|
6
|
+
|
7
|
+
alias e puts
|
8
|
+
|
9
|
+
e 'Enter "G", "t" on the entry box, a dropdown will appear.'
|
10
|
+
|
11
|
+
window = Gtk::Window.new
|
12
|
+
window.set_default_size(200, 200)
|
13
|
+
window.move(0, 0)
|
14
|
+
entry = Gtk::Entry.new
|
15
|
+
completion = Gtk::EntryCompletion.new
|
16
|
+
entry.completion = completion
|
17
|
+
|
18
|
+
model = Gtk::ListStore.new(String)
|
19
|
+
%w( GNOME GNAME total totally tota ).each { |v|
|
20
|
+
iter = model.append
|
21
|
+
iter[0] = v
|
22
|
+
}
|
23
|
+
|
24
|
+
completion.model = model
|
25
|
+
completion.text_column = 0
|
26
|
+
|
27
|
+
window.add(entry).show_all.signal_connect(:destroy) { Gtk.main_quit }
|
28
|
+
Gtk.main
|
@@ -0,0 +1,77 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# This has been found here:
|
6
|
+
#
|
7
|
+
# https://ruby-gnome2.osdn.jp/hiki.cgi?tut-gtk2-txtw-itrsmrks
|
8
|
+
#
|
9
|
+
# =========================================================================== #
|
10
|
+
require 'gtk2'
|
11
|
+
|
12
|
+
::Gtk::Settings.default.gtk_font_name = 'Mono 25'
|
13
|
+
|
14
|
+
# =========================================================================== #
|
15
|
+
# === insert_text
|
16
|
+
#
|
17
|
+
# Insert the text from the GtkEntry into the GtkTextView, via this
|
18
|
+
# method.
|
19
|
+
# =========================================================================== #
|
20
|
+
def insert_text(entry, text_view)
|
21
|
+
text_buffer = text_view.buffer
|
22
|
+
mark = text_buffer.selection_bound # First, obtain the text-mark.
|
23
|
+
iter = text_buffer.get_iter_at_mark(mark) # The text-mark is translated into an iter.
|
24
|
+
insert_this_text = entry.text
|
25
|
+
if insert_this_text.include? '\n'
|
26
|
+
insert_this_text.gsub!(/\\n/,"\n")
|
27
|
+
end
|
28
|
+
text_buffer.insert(iter, insert_this_text) # Put the content of the gtk-entry into the buffer.
|
29
|
+
end
|
30
|
+
|
31
|
+
# =========================================================================== #
|
32
|
+
# Retrieve the selected text from the GtkTextView and display it to
|
33
|
+
# the user.
|
34
|
+
# =========================================================================== #
|
35
|
+
def retrieve_text(tw)
|
36
|
+
start_iter, end_iter, selected = tw.buffer.selection_bounds
|
37
|
+
if !selected
|
38
|
+
start_iter, end_iter = tw.buffer.bounds
|
39
|
+
end
|
40
|
+
text = tw.buffer.get_text(start_iter, end_iter)
|
41
|
+
puts "selected=#{selected}; TEXT=#{text}"
|
42
|
+
end
|
43
|
+
|
44
|
+
window = Gtk::Window.new("Text Iterators")
|
45
|
+
window.resizable = true
|
46
|
+
window.border_width = 10
|
47
|
+
window.signal_connect(:destroy) { Gtk.main_quit }
|
48
|
+
window.set_size_request(5000, 350)
|
49
|
+
|
50
|
+
textbuffer = Gtk::TextBuffer.new
|
51
|
+
textbuffer.set_text("Hello world!\n")
|
52
|
+
textview = Gtk::TextView.new(textbuffer)
|
53
|
+
|
54
|
+
entry = Gtk::Entry.new
|
55
|
+
retrieve = Gtk::Button.new('Get Text')
|
56
|
+
retrieve.signal_connect(:clicked) { retrieve_text(textview) }
|
57
|
+
|
58
|
+
insert = Gtk::Button.new('← _Insert this Text', true)
|
59
|
+
insert.signal_connect(:clicked) { insert_text(entry, textview) }
|
60
|
+
|
61
|
+
scrolled_win = Gtk::ScrolledWindow.new
|
62
|
+
scrolled_win.border_width = 5
|
63
|
+
scrolled_win.add(textview)
|
64
|
+
scrolled_win.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS)
|
65
|
+
|
66
|
+
hbox = Gtk::HBox.new(false, 5)
|
67
|
+
hbox.pack_start(entry, true, true, 2)
|
68
|
+
hbox.pack_start_defaults(insert)
|
69
|
+
hbox.pack_start_defaults(retrieve)
|
70
|
+
vbox = Gtk::VBox.new(false, 5)
|
71
|
+
vbox.pack_start(scrolled_win, true, true, 0)
|
72
|
+
vbox.pack_start(hbox, false, true, 0)
|
73
|
+
window.add(vbox)
|
74
|
+
window.move(0, 0)
|
75
|
+
window.set_size_request(800, 600)
|
76
|
+
window.show_all
|
77
|
+
Gtk.main
|