libui_paradise 0.1.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of libui_paradise might be problematic. Click here for more details.

Files changed (87) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +1505 -0
  3. data/doc/README.gen +1252 -0
  4. data/doc/SNIPPETS.md +221 -0
  5. data/doc/TODO.md +14 -0
  6. data/lib/libui_paradise/autoinclude.rb +9 -0
  7. data/lib/libui_paradise/domain_specific_language/README.md +5 -0
  8. data/lib/libui_paradise/domain_specific_language/button.yml +7 -0
  9. data/lib/libui_paradise/examples/001_basic_button_example.rb +17 -0
  10. data/lib/libui_paradise/examples/002_basic_table_image.rb +92 -0
  11. data/lib/libui_paradise/examples/003_font_button.rb +34 -0
  12. data/lib/libui_paradise/examples/004_date_time_picker.rb +31 -0
  13. data/lib/libui_paradise/examples/005_msg_box_error.rb +25 -0
  14. data/lib/libui_paradise/examples/006_histogram.rb +193 -0
  15. data/lib/libui_paradise/examples/007_combo_box_example.rb +41 -0
  16. data/lib/libui_paradise/examples/008_simple_notepad_example.rb +23 -0
  17. data/lib/libui_paradise/examples/009_checkbox_example.rb +82 -0
  18. data/lib/libui_paradise/examples/010_grid_example.rb +26 -0
  19. data/lib/libui_paradise/examples/011_fancy_text_example.rb +21 -0
  20. data/lib/libui_paradise/examples/012_control_gallery.rb +180 -0
  21. data/lib/libui_paradise/examples/013_midi_player.rb +91 -0
  22. data/lib/libui_paradise/examples/014_basic_draw_text.rb +134 -0
  23. data/lib/libui_paradise/examples/015_font_example.rb +91 -0
  24. data/lib/libui_paradise/examples/016_search_entry_example.rb +16 -0
  25. data/lib/libui_paradise/examples/017_tabs_example.rb +22 -0
  26. data/lib/libui_paradise/examples/018_image_example.rb +82 -0
  27. data/lib/libui_paradise/examples/019_open_file_button_example.rb +24 -0
  28. data/lib/libui_paradise/examples/020_unicode_text_example.rb +28 -0
  29. data/lib/libui_paradise/examples/021_spinbutton_example.rb +25 -0
  30. data/lib/libui_paradise/examples/022_text_example.rb +16 -0
  31. data/lib/libui_paradise/examples/023_parse_config_file_example.config +6 -0
  32. data/lib/libui_paradise/examples/023_parse_config_file_example.rb +13 -0
  33. data/lib/libui_paradise/examples/024_text_view_example.rb +14 -0
  34. data/lib/libui_paradise/examples/025_scrolling_area.rb +16 -0
  35. data/lib/libui_paradise/examples/026_colour_button.rb +51 -0
  36. data/lib/libui_paradise/examples/027_form_example.rb +37 -0
  37. data/lib/libui_paradise/examples/028_password_entry_example.rb +17 -0
  38. data/lib/libui_paradise/examples/029_two_buttons_showing_how_to_enable_and_disable_them.rb +32 -0
  39. data/lib/libui_paradise/examples/030_table_example.rb +51 -0
  40. data/lib/libui_paradise/experimental/dsl.rb +17 -0
  41. data/lib/libui_paradise/extensions/extensions.rb +25 -0
  42. data/lib/libui_paradise/extensions/hash_fiddle_pointer_widgets.rb +129 -0
  43. data/lib/libui_paradise/extensions/misc.rb +309 -0
  44. data/lib/libui_paradise/fiddle/pointer.rb +841 -0
  45. data/lib/libui_paradise/images/LIBUI_PARADISE_LOGO.png +0 -0
  46. data/lib/libui_paradise/images/README.md +2 -0
  47. data/lib/libui_paradise/images/form_example.png +0 -0
  48. data/lib/libui_paradise/libui_classes/area_handler.rb +52 -0
  49. data/lib/libui_paradise/libui_classes/button.rb +82 -0
  50. data/lib/libui_paradise/libui_classes/checkbox.rb +37 -0
  51. data/lib/libui_paradise/libui_classes/color_button.rb +44 -0
  52. data/lib/libui_paradise/libui_classes/combobox.rb +55 -0
  53. data/lib/libui_paradise/libui_classes/editable_combobox.rb +51 -0
  54. data/lib/libui_paradise/libui_classes/entry.rb +80 -0
  55. data/lib/libui_paradise/libui_classes/font.rb +78 -0
  56. data/lib/libui_paradise/libui_classes/font_button.rb +40 -0
  57. data/lib/libui_paradise/libui_classes/grid.rb +55 -0
  58. data/lib/libui_paradise/libui_classes/hbox.rb +98 -0
  59. data/lib/libui_paradise/libui_classes/horizontal_separator.rb +41 -0
  60. data/lib/libui_paradise/libui_classes/image.rb +82 -0
  61. data/lib/libui_paradise/libui_classes/label.rb +83 -0
  62. data/lib/libui_paradise/libui_classes/menu.rb +36 -0
  63. data/lib/libui_paradise/libui_classes/msg_box.rb +97 -0
  64. data/lib/libui_paradise/libui_classes/msg_box_error.rb +49 -0
  65. data/lib/libui_paradise/libui_classes/multiline_entry.rb +59 -0
  66. data/lib/libui_paradise/libui_classes/non_wrapping_multiline_entry.rb +41 -0
  67. data/lib/libui_paradise/libui_classes/open_file.rb +42 -0
  68. data/lib/libui_paradise/libui_classes/password_entry.rb +49 -0
  69. data/lib/libui_paradise/libui_classes/progressbar.rb +41 -0
  70. data/lib/libui_paradise/libui_classes/radio_buttons.rb +36 -0
  71. data/lib/libui_paradise/libui_classes/scrolling_area.rb +85 -0
  72. data/lib/libui_paradise/libui_classes/search_entry.rb +36 -0
  73. data/lib/libui_paradise/libui_classes/spinbox.rb +55 -0
  74. data/lib/libui_paradise/libui_classes/tab.rb +39 -0
  75. data/lib/libui_paradise/libui_classes/table.rb +45 -0
  76. data/lib/libui_paradise/libui_classes/text_layout.rb +42 -0
  77. data/lib/libui_paradise/libui_classes/vbox.rb +51 -0
  78. data/lib/libui_paradise/libui_classes/window.rb +167 -0
  79. data/lib/libui_paradise/project/project.rb +26 -0
  80. data/lib/libui_paradise/prototype/README.md +3 -0
  81. data/lib/libui_paradise/prototype/prototype.rb +101 -0
  82. data/lib/libui_paradise/requires/require_the_libui_classes.rb +26 -0
  83. data/lib/libui_paradise/requires/require_the_libui_paradise_project.rb +11 -0
  84. data/lib/libui_paradise/version/version.rb +17 -0
  85. data/lib/libui_paradise.rb +1 -0
  86. data/libui_paradise.gemspec +49 -0
  87. metadata +164 -0
@@ -0,0 +1,101 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # === Foobar::GUI::LibUI::Prototype
6
+ # =========================================================================== #
7
+ module Foobar
8
+
9
+ module GUI
10
+
11
+ module LibUI
12
+
13
+ class Prototype # === Foobar::GUI::LibUI::Prototype
14
+
15
+ require 'libui_paradise'
16
+ include LibuiParadise::Extensions
17
+
18
+ alias e puts
19
+
20
+ # ========================================================================= #
21
+ # === TITLE
22
+ # ========================================================================= #
23
+ TITLE = 'A prototype for LibUI'
24
+
25
+ # ========================================================================= #
26
+ # === WIDTH
27
+ # ========================================================================= #
28
+ WIDTH = 600
29
+
30
+ # ========================================================================= #
31
+ # === HEIGHT
32
+ # ========================================================================= #
33
+ HEIGHT = 480
34
+
35
+ # ========================================================================= #
36
+ # === initialize
37
+ # ========================================================================= #
38
+ def initialize(
39
+ run_already = true
40
+ )
41
+ reset
42
+ run if run_already
43
+ end
44
+
45
+ # ========================================================================= #
46
+ # === reset (reset tag)
47
+ # ========================================================================= #
48
+ def reset
49
+ set_title(TITLE)
50
+ set_width(WIDTH)
51
+ set_height(HEIGHT)
52
+ end
53
+
54
+ # ========================================================================= #
55
+ # === run
56
+ # ========================================================================= #
57
+ def run
58
+ window = ui_padded_main_window(
59
+ title?,
60
+ width?,
61
+ height?,
62
+ 0
63
+ )
64
+ outer_vbox = padded_vbox
65
+ # ======================================================================= #
66
+ # First add the two buttons on top:
67
+ # ======================================================================= #
68
+ hbox_on_top = padded_hbox
69
+ button_refresh = ui_button('Refresh')
70
+ button_refresh.on_clicked {
71
+ e 'TODO: Refresh this...'
72
+ }
73
+ button_quit = quit_button
74
+ hbox_on_top.maximal(button_refresh)
75
+ hbox_on_top.maximal(button_quit)
76
+ outer_vbox.minimal(hbox_on_top)
77
+ outer_vbox.add_hsep
78
+
79
+ grid = ui_padded_grid
80
+ grid.ui_grid_append(text('Left'), 0, 0, 1, 1, 0, 0.5, 1, 0)
81
+ grid.ui_grid_append(text('Right'), 1, 0, 1, 1, 0, 0.5, 1, 0)
82
+
83
+ 3.times.each {|index| index += 1
84
+ # ===================================================================== #
85
+ # left, top, xspan, yspan, hexpand, halign, vexpand, valign
86
+ # 0, 0, 2, 1, 0, 0, 1, 0
87
+ # ===================================================================== #
88
+ grid.ui_grid_append(text(index.to_s), 0, 1+index, 1, 1, 1, 1, 1, 1)
89
+ label_exam_topic = text(entry.to_s)
90
+ grid.ui_grid_append(label_exam_topic, 1, 1+index, 1, 1, 1, 1, 1, 1)
91
+ }
92
+ outer_vbox.maximal(grid)
93
+ window.add(outer_vbox)
94
+ window.intelligent_exit
95
+ end
96
+
97
+ end; end; end; end
98
+
99
+ if __FILE__ == $PROGRAM_NAME
100
+ Foobar::GUI::LibUI::Prototype.new
101
+ end
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'libui_paradise/requires/require_the_libui_classes.rb'
6
+ # =========================================================================== #
7
+ module LibuiParadise
8
+
9
+ require 'libui_paradise/project/project.rb'
10
+
11
+ # ========================================================================= #
12
+ # === LibuiParadise.do_require_the_libui_classes
13
+ # ========================================================================= #
14
+ def self.do_require_the_libui_classes
15
+ target = LibuiParadise.project_base_dir?+'libui_classes/*.rb'
16
+ files_that_are_to_be_required = Dir[target]
17
+ files_that_are_to_be_required.each {|this_file|
18
+ require "libui_paradise/libui_classes/#{File.basename(this_file)}"
19
+ }
20
+ end
21
+
22
+ end
23
+
24
+ if __FILE__ == $PROGRAM_NAME
25
+ LibuiParadise.do_require_the_libui_classes
26
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'libui_paradise/requires/require_the_libui_paradise_project.rb'
6
+ # =========================================================================== #
7
+ require 'libui_paradise/extensions/extensions.rb' # This also pulls in another file, called pointer.rb.
8
+ require 'libui_paradise/project/project.rb'
9
+ require 'libui_paradise/requires/require_the_libui_classes.rb'
10
+
11
+ LibuiParadise.do_require_the_libui_classes
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ module LibuiParadise
6
+
7
+ # ========================================================================= #
8
+ # === VERSION
9
+ # ========================================================================= #
10
+ VERSION = '0.1.49'
11
+
12
+ # ========================================================================= #
13
+ # === LAST_UPDATE
14
+ # ========================================================================= #
15
+ LAST_UPDATE = '17.10.2021'
16
+
17
+ end
@@ -0,0 +1 @@
1
+ require 'libui_paradise/requires/require_the_libui_paradise_project.rb'
@@ -0,0 +1,49 @@
1
+ # =========================================================================== #
2
+ # Gemspec for this project.
3
+ # =========================================================================== #
4
+ require 'libui_paradise/version/version.rb'
5
+ require 'roebe/toplevel_methods/misc.rb'
6
+
7
+ Gem::Specification.new { |s|
8
+
9
+ s.name = 'libui_paradise'
10
+ s.version = LibuiParadise::VERSION
11
+ s.date = Time.now.strftime('%Y-%m-%d')
12
+
13
+ DESCRIPTION = <<-EOF
14
+
15
+ This project bundles together some custom bindings and code to the
16
+ official (upstream) ruby-libui interface. ruby-libui, in turn,
17
+ makes available code written in the libui project. You can find
18
+ the libui project here: https://github.com/andlabs/libui
19
+ and the ruby-libui bindings maintained by kojix2 here:
20
+ https://rubygems.org/gems/libui
21
+
22
+ For more documentation about the libui_paradise gem, please have a look
23
+ at the official homepage of this gem at rubygems.org, at its
24
+ documentation/ link on the bottom right hand side (or just use
25
+ this link directly:
26
+ https://www.rubydoc.info/gems/libui_paradise/
27
+ )
28
+
29
+ EOF
30
+
31
+ s.summary = DESCRIPTION
32
+ s.description = DESCRIPTION
33
+
34
+ s.authors = ['Robert A. Heiler']
35
+ s.email = Roebe.email?
36
+ s.files = Dir['**/*']
37
+ s.license = 'MIT'
38
+ s.homepage = 'https://www.rubydoc.info/gems/libui_paradise/'
39
+
40
+ s.required_ruby_version = '>= '+Roebe.third_most_stable_version_of_ruby
41
+ s.required_rubygems_version = '>= '+Gem::VERSION
42
+ s.rubygems_version = '>= '+Gem::VERSION
43
+
44
+ # ========================================================================= #
45
+ # Dependencies for the project:
46
+ # ========================================================================= #
47
+ s.add_dependency 'libui'
48
+
49
+ }
metadata ADDED
@@ -0,0 +1,164 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: libui_paradise
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.49
5
+ platform: ruby
6
+ authors:
7
+ - Robert A. Heiler
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-10-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: libui
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: |2+
28
+
29
+ This project bundles together some custom bindings and code to the
30
+ official (upstream) ruby-libui interface. ruby-libui, in turn,
31
+ makes available code written in the libui project. You can find
32
+ the libui project here: https://github.com/andlabs/libui
33
+ and the ruby-libui bindings maintained by kojix2 here:
34
+ https://rubygems.org/gems/libui
35
+
36
+ For more documentation about the libui_paradise gem, please have a look
37
+ at the official homepage of this gem at rubygems.org, at its
38
+ documentation/ link on the bottom right hand side (or just use
39
+ this link directly:
40
+ https://www.rubydoc.info/gems/libui_paradise/
41
+ )
42
+
43
+ email: shevy@inbox.lt
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - README.md
49
+ - doc/README.gen
50
+ - doc/SNIPPETS.md
51
+ - doc/TODO.md
52
+ - lib/libui_paradise.rb
53
+ - lib/libui_paradise/autoinclude.rb
54
+ - lib/libui_paradise/domain_specific_language/README.md
55
+ - lib/libui_paradise/domain_specific_language/button.yml
56
+ - lib/libui_paradise/examples/001_basic_button_example.rb
57
+ - lib/libui_paradise/examples/002_basic_table_image.rb
58
+ - lib/libui_paradise/examples/003_font_button.rb
59
+ - lib/libui_paradise/examples/004_date_time_picker.rb
60
+ - lib/libui_paradise/examples/005_msg_box_error.rb
61
+ - lib/libui_paradise/examples/006_histogram.rb
62
+ - lib/libui_paradise/examples/007_combo_box_example.rb
63
+ - lib/libui_paradise/examples/008_simple_notepad_example.rb
64
+ - lib/libui_paradise/examples/009_checkbox_example.rb
65
+ - lib/libui_paradise/examples/010_grid_example.rb
66
+ - lib/libui_paradise/examples/011_fancy_text_example.rb
67
+ - lib/libui_paradise/examples/012_control_gallery.rb
68
+ - lib/libui_paradise/examples/013_midi_player.rb
69
+ - lib/libui_paradise/examples/014_basic_draw_text.rb
70
+ - lib/libui_paradise/examples/015_font_example.rb
71
+ - lib/libui_paradise/examples/016_search_entry_example.rb
72
+ - lib/libui_paradise/examples/017_tabs_example.rb
73
+ - lib/libui_paradise/examples/018_image_example.rb
74
+ - lib/libui_paradise/examples/019_open_file_button_example.rb
75
+ - lib/libui_paradise/examples/020_unicode_text_example.rb
76
+ - lib/libui_paradise/examples/021_spinbutton_example.rb
77
+ - lib/libui_paradise/examples/022_text_example.rb
78
+ - lib/libui_paradise/examples/023_parse_config_file_example.config
79
+ - lib/libui_paradise/examples/023_parse_config_file_example.rb
80
+ - lib/libui_paradise/examples/024_text_view_example.rb
81
+ - lib/libui_paradise/examples/025_scrolling_area.rb
82
+ - lib/libui_paradise/examples/026_colour_button.rb
83
+ - lib/libui_paradise/examples/027_form_example.rb
84
+ - lib/libui_paradise/examples/028_password_entry_example.rb
85
+ - lib/libui_paradise/examples/029_two_buttons_showing_how_to_enable_and_disable_them.rb
86
+ - lib/libui_paradise/examples/030_table_example.rb
87
+ - lib/libui_paradise/experimental/dsl.rb
88
+ - lib/libui_paradise/extensions/extensions.rb
89
+ - lib/libui_paradise/extensions/hash_fiddle_pointer_widgets.rb
90
+ - lib/libui_paradise/extensions/misc.rb
91
+ - lib/libui_paradise/fiddle/pointer.rb
92
+ - lib/libui_paradise/images/LIBUI_PARADISE_LOGO.png
93
+ - lib/libui_paradise/images/README.md
94
+ - lib/libui_paradise/images/form_example.png
95
+ - lib/libui_paradise/libui_classes/area_handler.rb
96
+ - lib/libui_paradise/libui_classes/button.rb
97
+ - lib/libui_paradise/libui_classes/checkbox.rb
98
+ - lib/libui_paradise/libui_classes/color_button.rb
99
+ - lib/libui_paradise/libui_classes/combobox.rb
100
+ - lib/libui_paradise/libui_classes/editable_combobox.rb
101
+ - lib/libui_paradise/libui_classes/entry.rb
102
+ - lib/libui_paradise/libui_classes/font.rb
103
+ - lib/libui_paradise/libui_classes/font_button.rb
104
+ - lib/libui_paradise/libui_classes/grid.rb
105
+ - lib/libui_paradise/libui_classes/hbox.rb
106
+ - lib/libui_paradise/libui_classes/horizontal_separator.rb
107
+ - lib/libui_paradise/libui_classes/image.rb
108
+ - lib/libui_paradise/libui_classes/label.rb
109
+ - lib/libui_paradise/libui_classes/menu.rb
110
+ - lib/libui_paradise/libui_classes/msg_box.rb
111
+ - lib/libui_paradise/libui_classes/msg_box_error.rb
112
+ - lib/libui_paradise/libui_classes/multiline_entry.rb
113
+ - lib/libui_paradise/libui_classes/non_wrapping_multiline_entry.rb
114
+ - lib/libui_paradise/libui_classes/open_file.rb
115
+ - lib/libui_paradise/libui_classes/password_entry.rb
116
+ - lib/libui_paradise/libui_classes/progressbar.rb
117
+ - lib/libui_paradise/libui_classes/radio_buttons.rb
118
+ - lib/libui_paradise/libui_classes/scrolling_area.rb
119
+ - lib/libui_paradise/libui_classes/search_entry.rb
120
+ - lib/libui_paradise/libui_classes/spinbox.rb
121
+ - lib/libui_paradise/libui_classes/tab.rb
122
+ - lib/libui_paradise/libui_classes/table.rb
123
+ - lib/libui_paradise/libui_classes/text_layout.rb
124
+ - lib/libui_paradise/libui_classes/vbox.rb
125
+ - lib/libui_paradise/libui_classes/window.rb
126
+ - lib/libui_paradise/project/project.rb
127
+ - lib/libui_paradise/prototype/README.md
128
+ - lib/libui_paradise/prototype/prototype.rb
129
+ - lib/libui_paradise/requires/require_the_libui_classes.rb
130
+ - lib/libui_paradise/requires/require_the_libui_paradise_project.rb
131
+ - lib/libui_paradise/version/version.rb
132
+ - libui_paradise.gemspec
133
+ homepage: https://www.rubydoc.info/gems/libui_paradise/
134
+ licenses:
135
+ - MIT
136
+ metadata: {}
137
+ post_install_message:
138
+ rdoc_options: []
139
+ require_paths:
140
+ - lib
141
+ required_ruby_version: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: 2.5.8
146
+ required_rubygems_version: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: 3.2.29
151
+ requirements: []
152
+ rubygems_version: 3.2.29
153
+ signing_key:
154
+ specification_version: 4
155
+ summary: 'This project bundles together some custom bindings and code to the official
156
+ (upstream) ruby-libui interface. ruby-libui, in turn, makes available code written
157
+ in the libui project. You can find the libui project here: https://github.com/andlabs/libui
158
+ and the ruby-libui bindings maintained by kojix2 here: https://rubygems.org/gems/libui For
159
+ more documentation about the libui_paradise gem, please have a look at the official
160
+ homepage of this gem at rubygems.org, at its documentation/ link on the bottom right
161
+ hand side (or just use this link directly: https://www.rubydoc.info/gems/libui_paradise/
162
+ )'
163
+ test_files: []
164
+ ...