libui_paradise 0.3.9 → 0.4.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +176 -155
  3. data/bin/libui_message +1 -1
  4. data/doc/README.gen +175 -85
  5. data/doc/todo/todo.md +9 -5
  6. data/lib/libui_paradise/autoinclude.rb +2 -1
  7. data/lib/libui_paradise/base/base.rb +17 -67
  8. data/lib/libui_paradise/base_module/base_module.rb +1514 -0
  9. data/lib/libui_paradise/colours/colours.rb +4 -4
  10. data/lib/libui_paradise/domain_specific_language/README.md +6 -0
  11. data/lib/libui_paradise/examples/complex/002_tabs_example.rb +1 -2
  12. data/lib/libui_paradise/examples/complex/003_open_file_button_example.rb +1 -1
  13. data/lib/libui_paradise/examples/complex/006_coloured_boxes_example.rb +2 -2
  14. data/lib/libui_paradise/examples/complex/007_slider_example.rb +10 -4
  15. data/lib/libui_paradise/examples/complex/008_radio_button_example.rb +2 -2
  16. data/lib/libui_paradise/examples/complex/009_separator_example.rb +2 -2
  17. data/lib/libui_paradise/examples/complex/010_table_example.rb +5 -9
  18. data/lib/libui_paradise/examples/complex/011_two_buttons_showing_how_to_enable_and_disable_them.rb +2 -1
  19. data/lib/libui_paradise/examples/complex/012_password_entry_example.rb +1 -1
  20. data/lib/libui_paradise/examples/complex/013_form_example.rb +1 -1
  21. data/lib/libui_paradise/examples/complex/014_text_example.rb +1 -1
  22. data/lib/libui_paradise/examples/complex/015_text_view_example.rb +4 -4
  23. data/lib/libui_paradise/examples/complex/016_grid_example.rb +20 -11
  24. data/lib/libui_paradise/examples/complex/017_unicode_text_example.rb +2 -2
  25. data/lib/libui_paradise/examples/complex/018_spinbutton_example.rb +1 -1
  26. data/lib/libui_paradise/examples/complex/019_combo_box_example.rb +1 -1
  27. data/lib/libui_paradise/examples/complex/020_checkbox_example.rb +5 -5
  28. data/lib/libui_paradise/examples/complex/021_font_example.rb +4 -3
  29. data/lib/libui_paradise/examples/complex/022_simple_notepad_example.rb +3 -3
  30. data/lib/libui_paradise/examples/complex/023_msg_box_error.rb +5 -5
  31. data/lib/libui_paradise/examples/complex/024_parse_config_file_example.rb +2 -2
  32. data/lib/libui_paradise/examples/complex/025_colour_button.rb +1 -1
  33. data/lib/libui_paradise/examples/complex/026_basic_table_image.rb +5 -8
  34. data/lib/libui_paradise/examples/complex/027_basic_button_example.rb +3 -3
  35. data/lib/libui_paradise/examples/complex/028_try_for_automatic_button_press_event_after_a_delay.rb +4 -5
  36. data/lib/libui_paradise/examples/complex/029_progressbar_example.rb +4 -5
  37. data/lib/libui_paradise/examples/complex/030_entry_responds_to_comment_as_synonymous_to_the_enter_key_pressed_example.rb +5 -6
  38. data/lib/libui_paradise/examples/complex/031_notification_functionality_example.rb +3 -2
  39. data/lib/libui_paradise/examples/complex/032_simple_window_example.rb +2 -1
  40. data/lib/libui_paradise/examples/complex/033_daemonize_and_exit_after_delay_example.rb +3 -2
  41. data/lib/libui_paradise/examples/complex/034_bold_text_example.rb +115 -0
  42. data/lib/libui_paradise/examples/complex/035_parse_into_table_example.rb +109 -0
  43. data/lib/libui_paradise/examples/simple/001_open_file_example.rb +1 -1
  44. data/lib/libui_paradise/examples/simple/002_histogram_example.rb +6 -6
  45. data/lib/libui_paradise/examples/simple/003_fancy_text_example.rb +63 -35
  46. data/lib/libui_paradise/examples/simple/005_text_drawing_example.rb +3 -3
  47. data/lib/libui_paradise/examples/simple/007_control_gallery.rb +2 -1
  48. data/lib/libui_paradise/examples/simple/009_spectrum.rb +7 -1
  49. data/lib/libui_paradise/examples/simple/012_table_example.rb +5 -5
  50. data/lib/libui_paradise/examples/simple/013_scrolling_pane_example.rb +28 -0
  51. data/lib/libui_paradise/examples/simple/014_simple_entry_example.rb +30 -0
  52. data/lib/libui_paradise/examples/simple/015_slider_example.rb +32 -0
  53. data/lib/libui_paradise/fiddle/fiddle.rb +771 -636
  54. data/lib/libui_paradise/libui_classes/button.rb +31 -0
  55. data/lib/libui_paradise/libui_classes/entry.rb +35 -0
  56. data/lib/libui_paradise/libui_classes/grid.rb +14 -26
  57. data/lib/libui_paradise/libui_classes/hbox.rb +39 -0
  58. data/lib/libui_paradise/libui_classes/libui_classes.rb +9 -1630
  59. data/lib/libui_paradise/libui_classes/msg_box.rb +121 -0
  60. data/lib/libui_paradise/libui_classes/msg_box_error.rb +41 -0
  61. data/lib/libui_paradise/libui_classes/slider.rb +28 -0
  62. data/lib/libui_paradise/libui_classes/spinbox.rb +48 -0
  63. data/lib/libui_paradise/libui_classes/vbox.rb +38 -0
  64. data/lib/libui_paradise/project/project.rb +2 -1
  65. data/lib/libui_paradise/prototype/prototype.rb +8 -8
  66. data/lib/libui_paradise/requires/require_the_libui_classes.rb +2 -2
  67. data/lib/libui_paradise/requires/require_the_libui_paradise_project.rb +4 -2
  68. data/lib/libui_paradise/toplevel_methods/add_to_the_registered_widgets.rb +70 -0
  69. data/lib/libui_paradise/toplevel_methods/hash_fiddle_pointer_widgets.rb +37 -0
  70. data/lib/libui_paradise/{extensions → toplevel_methods}/toplevel_counters.rb +26 -1
  71. data/lib/libui_paradise/toplevel_methods/toplevel_methods.rb +792 -0
  72. data/lib/libui_paradise/version/version.rb +2 -2
  73. data/test/testing_generic_window.rb +2 -0
  74. metadata +22 -8
  75. data/doc/SNIPPETS.md +0 -65
  76. data/lib/libui_paradise/extensions/extensions.rb +0 -979
  77. data/lib/libui_paradise/libui_classes/box.rb +0 -157
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'libui_paradise/libui_classes/button.rb'
6
+ # =========================================================================== #
7
+ module LibuiParadise
8
+
9
+ require 'libui_paradise/toplevel_methods/add_to_the_registered_widgets.rb'
10
+
11
+ # ========================================================================= #
12
+ # === LibuiParadise.button (button tag)
13
+ #
14
+ # The upstream API for buttons, in C, can be found here at the
15
+ # following github repository for libui-ng:
16
+ #
17
+ # https://github.com/libui-ng/libui-ng/blob/master/unix/button.c
18
+ #
19
+ # ========================================================================= #
20
+ def self.button(text)
21
+ text = text.to_s.dup.strip
22
+ if text.start_with? '_'
23
+ text[0,1] = '' # Right now we do not support accelerators.
24
+ end
25
+ _ = ::LibUI.new_button(text) # Create the button here, by delegating towards LibUI.
26
+ register_this_fiddle_pointer_widget(_, __method__)
27
+ return _ # Last but not least, always return the button.
28
+ end; self.instance_eval { alias ui_button button } # === LibuiParadise.ui_button
29
+ self.instance_eval { alias create_button button } # === LibuiParadise.create_button
30
+
31
+ end
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'libui_paradise/libui_classes/entry.rb'
6
+ # =========================================================================== #
7
+ module LibuiParadise
8
+
9
+ # ========================================================================= #
10
+ # === LibuiParadise.entry (entry tag)
11
+ #
12
+ # The upstream C API for libui-entry can be found here:
13
+ #
14
+ # https://github.com/andlabs/libui/blob/master/unix/entry.c
15
+ #
16
+ # This method is tapping into LibUI.new_entry.
17
+ #
18
+ # Usage example:
19
+ #
20
+ # entry1 = LibUI.entry('ATG')
21
+ #
22
+ # ========================================================================= #
23
+ def self.entry(
24
+ optional_text = ''
25
+ )
26
+ optional_text = optional_text.to_s
27
+ entry = ::LibUI.new_entry # Create the new entry here.
28
+ unless optional_text.empty?
29
+ ::LibUI.entry_set_text(entry, optional_text)
30
+ end
31
+ add_to_the_registered_widgets(entry, __method__)
32
+ return entry
33
+ end; self.instance_eval { alias ui_entry entry } # === LibuiParadise.ui_entry
34
+
35
+ end
@@ -2,14 +2,17 @@
2
2
  # Encoding: UTF-8
3
3
  # frozen_string_literal: true
4
4
  # =========================================================================== #
5
- # require 'libui_paradise/libui_classes/grid.rb
5
+ # require 'libui_paradise/libui_classes/grid.rb'
6
6
  # =========================================================================== #
7
7
  module LibuiParadise
8
8
 
9
- module Extensions # === LibuiParadise::Extensions
9
+ require 'libui_paradise/toplevel_methods/toplevel_counters.rb'
10
10
 
11
11
  # ========================================================================= #
12
- # === LibuiParadise::Extensions.grid (grid tag)
12
+ # === LibuiParadise.grid (grid tag)
13
+ #
14
+ # This method will create a new grid, via LibUI.new_grid(), and then
15
+ # return this widget object.
13
16
  #
14
17
  # To insert into a grid, try to use this API:
15
18
  #
@@ -30,29 +33,14 @@ module Extensions # === LibuiParadise::Extensions
30
33
  #
31
34
  # ========================================================================= #
32
35
  def self.grid
33
- _ = ::LibUI.new_grid
36
+ _ = ::LibUI.new_grid # Create the grid here.
37
+ # ======================================================================= #
38
+ # Register it at once:
39
+ # ======================================================================= #
34
40
  add_to_the_registered_widgets(_, __method__)
35
41
  return _
36
- end; self.instance_eval { alias ui_grid grid } # === LibuiParadise::Extensions.ui_grid
37
-
38
- # ========================================================================= #
39
- # === grid
40
- #
41
- # This method can be used to create (and return) a new grid.
42
- # ========================================================================= #
43
- def grid
44
- ::LibuiParadise::Extensions.grid
45
- end; alias ui_grid grid # === ui_grid
46
- alias create_default_grid grid # === create_default_grid
47
-
48
- # ========================================================================= #
49
- # === ui_padded_grid
50
- # ========================================================================= #
51
- def ui_padded_grid
52
- _ = ui_grid # This is defined in the method above ^^^ this method.
53
- _.is_padded
54
- return _
55
- end; alias padded_grid ui_padded_grid # === padded_grid
56
- alias default_grid ui_padded_grid # === default_grid
42
+ end; self.instance_eval { alias ui_grid grid } # === LibuiParadise.ui_grid
43
+ self.instance_eval { alias create_grid grid } # === LibuiParadise.create_grid
44
+ self.instance_eval { alias create_default_grid create_grid } # === LibuiParadise.create_default_grid
57
45
 
58
- end; end
46
+ end
@@ -0,0 +1,39 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'libui_paradise/libui_classes/hbox.rb'
6
+ # =========================================================================== #
7
+ module LibuiParadise
8
+
9
+ # ========================================================================= #
10
+ # === LibuiParadise.hbox (hbox tag)
11
+ #
12
+ # This toplevel-method can be used to create a horizontal box.
13
+ # ========================================================================= #
14
+ def self.hbox(*optional_widgets)
15
+ _ = ::LibUI.new_horizontal_box
16
+ add_to_the_registered_widgets(_, __method__)
17
+ optional_widgets.flatten!
18
+ if optional_widgets and !optional_widgets.empty?
19
+ optional_widgets.flatten.each {|this_widget| _ << this_widget }
20
+ end
21
+ return _
22
+ end; self.instance_eval { alias horizontal_box hbox } # === LibuiParadise.horizontal_box
23
+ self.instance_eval { alias ui_hbox hbox } # === LibuiParadise.ui_hbox
24
+ self.instance_eval { alias create_hbox hbox } # === LibuiParadise.create_hbox
25
+
26
+ # ========================================================================= #
27
+ # === LibuiParadise.ui_padded_hbox
28
+ #
29
+ # This method will call .is_padded on the hbox after it has been
30
+ # initialized.
31
+ # ========================================================================= #
32
+ def self.ui_padded_hbox(*optional_widgets)
33
+ _ = ::LibUI.ui_hbox(optional_widgets)
34
+ _.is_padded
35
+ return _
36
+ end; self.instance_eval { alias padded_hbox ui_padded_hbox } # === LibuiParadise.padded_hbox
37
+ self.instance_eval { alias libui_padded_hbox ui_padded_hbox } # === LibuiParadise.libui_padded_hbox
38
+
39
+ end