libui_paradise 0.1.49
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of libui_paradise might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/README.md +1505 -0
- data/doc/README.gen +1252 -0
- data/doc/SNIPPETS.md +221 -0
- data/doc/TODO.md +14 -0
- data/lib/libui_paradise/autoinclude.rb +9 -0
- data/lib/libui_paradise/domain_specific_language/README.md +5 -0
- data/lib/libui_paradise/domain_specific_language/button.yml +7 -0
- data/lib/libui_paradise/examples/001_basic_button_example.rb +17 -0
- data/lib/libui_paradise/examples/002_basic_table_image.rb +92 -0
- data/lib/libui_paradise/examples/003_font_button.rb +34 -0
- data/lib/libui_paradise/examples/004_date_time_picker.rb +31 -0
- data/lib/libui_paradise/examples/005_msg_box_error.rb +25 -0
- data/lib/libui_paradise/examples/006_histogram.rb +193 -0
- data/lib/libui_paradise/examples/007_combo_box_example.rb +41 -0
- data/lib/libui_paradise/examples/008_simple_notepad_example.rb +23 -0
- data/lib/libui_paradise/examples/009_checkbox_example.rb +82 -0
- data/lib/libui_paradise/examples/010_grid_example.rb +26 -0
- data/lib/libui_paradise/examples/011_fancy_text_example.rb +21 -0
- data/lib/libui_paradise/examples/012_control_gallery.rb +180 -0
- data/lib/libui_paradise/examples/013_midi_player.rb +91 -0
- data/lib/libui_paradise/examples/014_basic_draw_text.rb +134 -0
- data/lib/libui_paradise/examples/015_font_example.rb +91 -0
- data/lib/libui_paradise/examples/016_search_entry_example.rb +16 -0
- data/lib/libui_paradise/examples/017_tabs_example.rb +22 -0
- data/lib/libui_paradise/examples/018_image_example.rb +82 -0
- data/lib/libui_paradise/examples/019_open_file_button_example.rb +24 -0
- data/lib/libui_paradise/examples/020_unicode_text_example.rb +28 -0
- data/lib/libui_paradise/examples/021_spinbutton_example.rb +25 -0
- data/lib/libui_paradise/examples/022_text_example.rb +16 -0
- data/lib/libui_paradise/examples/023_parse_config_file_example.config +6 -0
- data/lib/libui_paradise/examples/023_parse_config_file_example.rb +13 -0
- data/lib/libui_paradise/examples/024_text_view_example.rb +14 -0
- data/lib/libui_paradise/examples/025_scrolling_area.rb +16 -0
- data/lib/libui_paradise/examples/026_colour_button.rb +51 -0
- data/lib/libui_paradise/examples/027_form_example.rb +37 -0
- data/lib/libui_paradise/examples/028_password_entry_example.rb +17 -0
- data/lib/libui_paradise/examples/029_two_buttons_showing_how_to_enable_and_disable_them.rb +32 -0
- data/lib/libui_paradise/examples/030_table_example.rb +51 -0
- data/lib/libui_paradise/experimental/dsl.rb +17 -0
- data/lib/libui_paradise/extensions/extensions.rb +25 -0
- data/lib/libui_paradise/extensions/hash_fiddle_pointer_widgets.rb +129 -0
- data/lib/libui_paradise/extensions/misc.rb +309 -0
- data/lib/libui_paradise/fiddle/pointer.rb +841 -0
- data/lib/libui_paradise/images/LIBUI_PARADISE_LOGO.png +0 -0
- data/lib/libui_paradise/images/README.md +2 -0
- data/lib/libui_paradise/images/form_example.png +0 -0
- data/lib/libui_paradise/libui_classes/area_handler.rb +52 -0
- data/lib/libui_paradise/libui_classes/button.rb +82 -0
- data/lib/libui_paradise/libui_classes/checkbox.rb +37 -0
- data/lib/libui_paradise/libui_classes/color_button.rb +44 -0
- data/lib/libui_paradise/libui_classes/combobox.rb +55 -0
- data/lib/libui_paradise/libui_classes/editable_combobox.rb +51 -0
- data/lib/libui_paradise/libui_classes/entry.rb +80 -0
- data/lib/libui_paradise/libui_classes/font.rb +78 -0
- data/lib/libui_paradise/libui_classes/font_button.rb +40 -0
- data/lib/libui_paradise/libui_classes/grid.rb +55 -0
- data/lib/libui_paradise/libui_classes/hbox.rb +98 -0
- data/lib/libui_paradise/libui_classes/horizontal_separator.rb +41 -0
- data/lib/libui_paradise/libui_classes/image.rb +82 -0
- data/lib/libui_paradise/libui_classes/label.rb +83 -0
- data/lib/libui_paradise/libui_classes/menu.rb +36 -0
- data/lib/libui_paradise/libui_classes/msg_box.rb +97 -0
- data/lib/libui_paradise/libui_classes/msg_box_error.rb +49 -0
- data/lib/libui_paradise/libui_classes/multiline_entry.rb +59 -0
- data/lib/libui_paradise/libui_classes/non_wrapping_multiline_entry.rb +41 -0
- data/lib/libui_paradise/libui_classes/open_file.rb +42 -0
- data/lib/libui_paradise/libui_classes/password_entry.rb +49 -0
- data/lib/libui_paradise/libui_classes/progressbar.rb +41 -0
- data/lib/libui_paradise/libui_classes/radio_buttons.rb +36 -0
- data/lib/libui_paradise/libui_classes/scrolling_area.rb +85 -0
- data/lib/libui_paradise/libui_classes/search_entry.rb +36 -0
- data/lib/libui_paradise/libui_classes/spinbox.rb +55 -0
- data/lib/libui_paradise/libui_classes/tab.rb +39 -0
- data/lib/libui_paradise/libui_classes/table.rb +45 -0
- data/lib/libui_paradise/libui_classes/text_layout.rb +42 -0
- data/lib/libui_paradise/libui_classes/vbox.rb +51 -0
- data/lib/libui_paradise/libui_classes/window.rb +167 -0
- data/lib/libui_paradise/project/project.rb +26 -0
- data/lib/libui_paradise/prototype/README.md +3 -0
- data/lib/libui_paradise/prototype/prototype.rb +101 -0
- data/lib/libui_paradise/requires/require_the_libui_classes.rb +26 -0
- data/lib/libui_paradise/requires/require_the_libui_paradise_project.rb +11 -0
- data/lib/libui_paradise/version/version.rb +17 -0
- data/lib/libui_paradise.rb +1 -0
- data/libui_paradise.gemspec +49 -0
- metadata +164 -0
Binary file
|
Binary file
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'libui_paradise/ui_classes/area_handler.rb
|
6
|
+
# =========================================================================== #
|
7
|
+
module LibuiParadise
|
8
|
+
|
9
|
+
module Extensions # === LibuiParadise::Extensions
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === LibuiParadise::Extensions.area
|
13
|
+
#
|
14
|
+
# AreaHandler defines the functionality needed for handling events
|
15
|
+
# from an Area.
|
16
|
+
#
|
17
|
+
# Upstream documentation, at the least for Go, can be found here:
|
18
|
+
#
|
19
|
+
# https://github.com/andlabs/ui/blob/master/areahandler.go
|
20
|
+
#
|
21
|
+
# ========================================================================= #
|
22
|
+
def self.area(
|
23
|
+
i = :use_new_area_handler
|
24
|
+
)
|
25
|
+
case i
|
26
|
+
when :use_new_area_handler,
|
27
|
+
:default
|
28
|
+
i = UI::FFI::AreaHandler.malloc
|
29
|
+
end
|
30
|
+
_ = UI.new_area(i)
|
31
|
+
add_to_the_registered_widgets(_, __method__)
|
32
|
+
return _
|
33
|
+
end; self.instance_eval { alias area_handler area } # === LibuiParadise::Extensions.area_handler
|
34
|
+
|
35
|
+
# ========================================================================= #
|
36
|
+
# === area
|
37
|
+
#
|
38
|
+
# AreaHandler defines the functionality needed for handling events
|
39
|
+
# from an Area.
|
40
|
+
#
|
41
|
+
# Upstream documentation, at the least for Go, can be found here:
|
42
|
+
#
|
43
|
+
# https://github.com/andlabs/ui/blob/master/areahandler.go
|
44
|
+
#
|
45
|
+
# ========================================================================= #
|
46
|
+
def area(
|
47
|
+
i = :use_new_area_handler
|
48
|
+
)
|
49
|
+
return ::LibuiParadise::Extensions.area(i)
|
50
|
+
end; alias area_handler area # === area_handler
|
51
|
+
|
52
|
+
end; end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# The upstream API in C can be found here:
|
6
|
+
#
|
7
|
+
# https://raw.githubusercontent.com/andlabs/libui/master/unix/button.c
|
8
|
+
#
|
9
|
+
# =========================================================================== #
|
10
|
+
# require 'libui_paradise/ui_classes/button.rb
|
11
|
+
# =========================================================================== #
|
12
|
+
module LibuiParadise
|
13
|
+
|
14
|
+
module Extensions # === LibuiParadise::Extensions
|
15
|
+
|
16
|
+
# ========================================================================= #
|
17
|
+
# === bold_button
|
18
|
+
#
|
19
|
+
# This currently does not work. We have to wait until upstream libui
|
20
|
+
# supports bold font text.
|
21
|
+
# ========================================================================= #
|
22
|
+
def bold_button(i)
|
23
|
+
button(i)
|
24
|
+
end
|
25
|
+
|
26
|
+
# ========================================================================= #
|
27
|
+
# === LibuiParadise::Extensions.button (button tag)
|
28
|
+
# ========================================================================= #
|
29
|
+
def self.button(text)
|
30
|
+
_ = UI.new_button(text)
|
31
|
+
::LibuiParadise::Extensions.register_this_fiddle_pointer_widget(_, __method__)
|
32
|
+
return _
|
33
|
+
end; self.instance_eval { alias ui_button button } # === LibuiParadise::Extensions.ui_button
|
34
|
+
|
35
|
+
# ========================================================================= #
|
36
|
+
# === button (button tag)
|
37
|
+
# ========================================================================= #
|
38
|
+
def button(text)
|
39
|
+
text = text.to_s.dup
|
40
|
+
if text.start_with? '_'
|
41
|
+
text[0,1] = '' # Right now we do not support accelerators.
|
42
|
+
end
|
43
|
+
::LibuiParadise::Extensions.button(text)
|
44
|
+
end; alias ui_button button # === ui_button
|
45
|
+
|
46
|
+
# ========================================================================= #
|
47
|
+
# === quit_button (quit tag)
|
48
|
+
#
|
49
|
+
# This method can be used to, by default, implement a quit button
|
50
|
+
# that, upon a click-event, will cause the application to exit
|
51
|
+
# and close/quit.
|
52
|
+
# ========================================================================= #
|
53
|
+
def quit_button(
|
54
|
+
optional_arguments = {}
|
55
|
+
)
|
56
|
+
use_this_text = 'Quit'
|
57
|
+
if optional_arguments and optional_arguments.is_a?(Hash)
|
58
|
+
# ===================================================================== #
|
59
|
+
# === :text
|
60
|
+
# ===================================================================== #
|
61
|
+
if optional_arguments.has_key? :text
|
62
|
+
use_this_text = optional_arguments.delete(:text)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
quit_button = button(use_this_text)
|
66
|
+
quit_button.on_clicked {
|
67
|
+
UI.quit
|
68
|
+
0
|
69
|
+
}
|
70
|
+
return quit_button
|
71
|
+
end; alias ui_quit_button quit_button # === ui_quit_button
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
# =========================================================================== #
|
76
|
+
# === LibuiParadise.button
|
77
|
+
# =========================================================================== #
|
78
|
+
def self.button(text)
|
79
|
+
::LibuiParadise::Extensions.button(text)
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'libui_paradise/ui_classes/checkbox.rb
|
6
|
+
# =========================================================================== #
|
7
|
+
module LibuiParadise
|
8
|
+
|
9
|
+
module Extensions # === LibuiParadise::Extensions
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === LibuiParadise::Extensions.checkbox (checkbox tag)
|
13
|
+
# ========================================================================= #
|
14
|
+
def self.checkbox(i = '')
|
15
|
+
_ = UI.new_checkbox(i)
|
16
|
+
add_to_the_registered_widgets(_, __method__)
|
17
|
+
return _
|
18
|
+
end
|
19
|
+
|
20
|
+
# ========================================================================= #
|
21
|
+
# === checkbox
|
22
|
+
# ========================================================================= #
|
23
|
+
def checkbox(i = '')
|
24
|
+
::LibuiParadise::Extensions.checkbox(i)
|
25
|
+
end; alias ui_checkbox checkbox # === ui_checkbox
|
26
|
+
alias ui_check_button checkbox # === ui_check_button
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
# =========================================================================== #
|
31
|
+
# === LibuiParadise.checkbox
|
32
|
+
# =========================================================================== #
|
33
|
+
def self.checkbox(i = '')
|
34
|
+
::LibuiParadise::Extensions.checkbox(i)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# The upstream API in C can be found here:
|
6
|
+
#
|
7
|
+
# https://github.com/andlabs/libui/blob/master/unix/colorbutton.c
|
8
|
+
#
|
9
|
+
# =========================================================================== #
|
10
|
+
# require 'libui_paradise/ui_classes/color_button.rb
|
11
|
+
# =========================================================================== #
|
12
|
+
module LibuiParadise
|
13
|
+
|
14
|
+
module Extensions # === LibuiParadise::Extensions
|
15
|
+
|
16
|
+
# ========================================================================= #
|
17
|
+
# === LibuiParadise::Extensions.new_colour_button
|
18
|
+
# ========================================================================= #
|
19
|
+
def self.colour_button
|
20
|
+
_ = LibUI.new_color_button
|
21
|
+
::LibuiParadise::Extensions.register_this_fiddle_pointer_widget(_, __method__)
|
22
|
+
return _
|
23
|
+
end; self.instance_eval { alias new_colour_button colour_button } # === LibuiParadise::Extensions.new_colour_button
|
24
|
+
self.instance_eval { alias new_color_button colour_button } # === LibuiParadise::Extensions.new_color_button
|
25
|
+
self.instance_eval { alias ui_colour_button colour_button } # === LibuiParadise::Extensions.ui_colour_button
|
26
|
+
|
27
|
+
# ========================================================================= #
|
28
|
+
# === colour_button
|
29
|
+
# ========================================================================= #
|
30
|
+
def colour_button
|
31
|
+
::LibuiParadise::Extensions.new_colour_button
|
32
|
+
end; alias color_button colour_button # === color_button
|
33
|
+
alias ui_colour_button colour_button # === ui_color_button
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
# =========================================================================== #
|
38
|
+
# === LibuiParadise.colour_button
|
39
|
+
# =========================================================================== #
|
40
|
+
def self.colour_button
|
41
|
+
::LibuiParadise::Extensions.new_colour_button
|
42
|
+
end; self.instance_eval { alias color_button colour_button } # === LibuiParadise.color_button
|
43
|
+
|
44
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'libui_paradise/ui_classes/combobox.rb
|
6
|
+
# =========================================================================== #
|
7
|
+
module LibuiParadise
|
8
|
+
|
9
|
+
module Extensions # === LibuiParadise::Extensions
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === LibuiParadise::Extensions.combobox
|
13
|
+
# ========================================================================= #
|
14
|
+
def self.combobox(
|
15
|
+
optional_array = nil, &block
|
16
|
+
)
|
17
|
+
combobox = UI.new_combobox
|
18
|
+
# ======================================================================= #
|
19
|
+
# Register it at once:
|
20
|
+
# ======================================================================= #
|
21
|
+
add_to_the_registered_widgets(combobox, __method__)
|
22
|
+
if block_given?
|
23
|
+
optional_array = yield
|
24
|
+
end
|
25
|
+
if optional_array and optional_array.is_a?(Array)
|
26
|
+
# append_this_array_to_that_combobox(optional_array, combobox)
|
27
|
+
combobox.append_this_array(optional_array)
|
28
|
+
end
|
29
|
+
return combobox
|
30
|
+
end; self.instance_eval { alias combo_box combobox } # === LibuiParadise::Extensions.combo_box
|
31
|
+
self.instance_eval { alias ui_combo_box combobox } # === LibuiParadise::Extensions.ui_combo_box
|
32
|
+
self.instance_eval { alias ui_combobox combobox } # === LibuiParadise::Extensions.ui_combobox
|
33
|
+
|
34
|
+
# ========================================================================= #
|
35
|
+
# === combobox
|
36
|
+
# ========================================================================= #
|
37
|
+
def combobox(
|
38
|
+
optional_array = nil, &block
|
39
|
+
)
|
40
|
+
return ::LibuiParadise::Extensions.combobox(optional_array, &block)
|
41
|
+
end; alias combo_box combobox # === combo_box
|
42
|
+
alias ui_combo_box combobox # === ui_combo_box
|
43
|
+
alias ui_combobox combobox # === ui_combobox
|
44
|
+
|
45
|
+
# ========================================================================= #
|
46
|
+
# === selected?
|
47
|
+
#
|
48
|
+
# Unsure whether this works. It appears to work, but I am not even
|
49
|
+
# certain as to why.
|
50
|
+
# ========================================================================= #
|
51
|
+
def selected?(pointer)
|
52
|
+
UI.combobox_selected(pointer).to_s
|
53
|
+
end
|
54
|
+
|
55
|
+
end; end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'libui_paradise/ui_classes/editable_combobox.rb
|
6
|
+
# =========================================================================== #
|
7
|
+
module LibuiParadise
|
8
|
+
|
9
|
+
module Extensions # === LibuiParadise::Extensions
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === LibuiParadise::Extensions.editable_combobox
|
13
|
+
# ========================================================================= #
|
14
|
+
def self.editable_combobox(
|
15
|
+
optional_array = nil, &block
|
16
|
+
)
|
17
|
+
_ = UI.new_editable_combobox
|
18
|
+
if block_given?
|
19
|
+
optional_array = yield
|
20
|
+
end
|
21
|
+
if optional_array and optional_array.is_a?(Array)
|
22
|
+
append_this_array_to_that_combobox(optional_array, _)
|
23
|
+
end
|
24
|
+
add_to_the_registered_widgets(_, __method__)
|
25
|
+
return _
|
26
|
+
end; self.instance_eval { alias editable_combo_box editable_combobox } # === LibuiParadise::Extensions.editable_combo_box
|
27
|
+
self.instance_eval { alias ui_editable_combo_box editable_combobox } # === LibuiParadise::Extensions.ui_editable_combo_box
|
28
|
+
|
29
|
+
# ========================================================================= #
|
30
|
+
# === editable_combobox
|
31
|
+
# ========================================================================= #
|
32
|
+
def editable_combobox(
|
33
|
+
optional_array = nil, &block
|
34
|
+
)
|
35
|
+
return ::LibuiParadise::Extensions(optional_array, &block)
|
36
|
+
end; alias editable_combo_box editable_combobox # === editable_combo_box
|
37
|
+
alias ui_editable_combo_box editable_combobox # === ui_editable_combo_box
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
# =========================================================================== #
|
42
|
+
# === LibuiParadise::Extensions.editable_combobox
|
43
|
+
# =========================================================================== #
|
44
|
+
def self.editable_combobox(
|
45
|
+
optional_array = nil, &block
|
46
|
+
)
|
47
|
+
return ::LibuiParadise::Extensions.editable_combobox(optional_array, &block)
|
48
|
+
end; self.instance_eval { alias editable_combo_box editable_combobox } # === LibuiParadise.editable_combo_box
|
49
|
+
self.instance_eval { alias ui_editable_combo_box editable_combobox } # === LibuiParadise.ui_editable_combo_box
|
50
|
+
|
51
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# The upstream C API for libui-entry can be found here:
|
6
|
+
#
|
7
|
+
# https://github.com/andlabs/libui/blob/master/unix/entry.c
|
8
|
+
#
|
9
|
+
# =========================================================================== #
|
10
|
+
# require 'libui_paradise/ui_classes/entry.rb
|
11
|
+
# =========================================================================== #
|
12
|
+
module LibuiParadise
|
13
|
+
|
14
|
+
module Extensions # === LibuiParadise::Extensions
|
15
|
+
|
16
|
+
# ========================================================================= #
|
17
|
+
# === LibuiParadise::Extensions.entry (entry tag)
|
18
|
+
#
|
19
|
+
# This method is tapping into UI.new_entry.
|
20
|
+
#
|
21
|
+
# Usage example:
|
22
|
+
#
|
23
|
+
# entry1 = UI.entry('ATG')
|
24
|
+
#
|
25
|
+
# ========================================================================= #
|
26
|
+
def self.entry(
|
27
|
+
optional_text = ''
|
28
|
+
)
|
29
|
+
optional_text = optional_text.to_s
|
30
|
+
entry = UI.new_entry
|
31
|
+
unless optional_text.empty?
|
32
|
+
UI.entry_set_text(entry, optional_text)
|
33
|
+
end
|
34
|
+
add_to_the_registered_widgets(entry, __method__)
|
35
|
+
return entry
|
36
|
+
end; self.instance_eval { alias ui_entry entry } # === LibuiParadise::Extensions.ui_entry
|
37
|
+
|
38
|
+
# ========================================================================= #
|
39
|
+
# === entry (entry tag)
|
40
|
+
#
|
41
|
+
# This method is tapping into UI.new_entry.
|
42
|
+
#
|
43
|
+
# Usage example:
|
44
|
+
#
|
45
|
+
# entry1 = ui_entry('ATG')
|
46
|
+
#
|
47
|
+
# ========================================================================= #
|
48
|
+
def entry(
|
49
|
+
optional_text = ''
|
50
|
+
)
|
51
|
+
::LibuiParadise::Extensions.entry(optional_text)
|
52
|
+
end; alias ui_entry entry # === ui_entry
|
53
|
+
|
54
|
+
# ========================================================================= #
|
55
|
+
# === text?
|
56
|
+
#
|
57
|
+
# This method will guarantee a String to be returned.
|
58
|
+
#
|
59
|
+
# This is a bit weird, though. We may have to remove this method one
|
60
|
+
# day. I forgot why I added it to entry.rb specifically. After all
|
61
|
+
# other widgets also should respond to .text?.
|
62
|
+
# ========================================================================= #
|
63
|
+
def text?(from_this_pointer)
|
64
|
+
_ = UI.entry_text(from_this_pointer).to_s
|
65
|
+
add_to_the_registered_widgets(_, __method__)
|
66
|
+
return _
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
# =========================================================================== #
|
72
|
+
# === LibuiParadise.entry
|
73
|
+
# =========================================================================== #
|
74
|
+
def self.entry(
|
75
|
+
optional_text = ''
|
76
|
+
)
|
77
|
+
::LibuiParadise::Extensions.entry(optional_text)
|
78
|
+
end; self.instance_eval { alias ui_entry entry } # === LibuiParadise.ui_entry
|
79
|
+
|
80
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'libui_paradise/ui_classes/font.rb
|
6
|
+
# =========================================================================== #
|
7
|
+
module LibuiParadise
|
8
|
+
|
9
|
+
module Extensions # === LibuiParadise::Extensions
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === LibuiParadise::Extensions.font (font tag, fonts tag)
|
13
|
+
# ========================================================================= #
|
14
|
+
def self.font(&block)
|
15
|
+
use_this_font = UI::FFI::FontDescriptor.malloc
|
16
|
+
if block_given?
|
17
|
+
yielded = yield
|
18
|
+
if yielded.is_a? Hash
|
19
|
+
# =================================================================== #
|
20
|
+
# === :font_size
|
21
|
+
# =================================================================== #
|
22
|
+
if yielded.has_key? :font_size
|
23
|
+
use_this_font.Size = yielded.delete(:font_size)
|
24
|
+
end
|
25
|
+
# =================================================================== #
|
26
|
+
# === :font_family
|
27
|
+
# =================================================================== #
|
28
|
+
if yielded.has_key? :font_family
|
29
|
+
use_this_font.Family = yielded.delete(:font_family)
|
30
|
+
end
|
31
|
+
# =================================================================== #
|
32
|
+
# === :stretch
|
33
|
+
# =================================================================== #
|
34
|
+
if yielded.has_key? :stretch
|
35
|
+
use_this_font.Stretch = yielded.delete(:stretch)
|
36
|
+
end
|
37
|
+
# =================================================================== #
|
38
|
+
# === :weight
|
39
|
+
# =================================================================== #
|
40
|
+
if yielded.has_key? :weight
|
41
|
+
use_this_font.Weight = yielded.delete(:weight)
|
42
|
+
end
|
43
|
+
# =================================================================== #
|
44
|
+
# === :italic
|
45
|
+
# =================================================================== #
|
46
|
+
if yielded.has_key? :italic
|
47
|
+
_ = yielded.delete(:italic_family)
|
48
|
+
if _ == true
|
49
|
+
_ = 1
|
50
|
+
elsif _ == false
|
51
|
+
_ = 0
|
52
|
+
end
|
53
|
+
use_this_font.Italic = _
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
return use_this_font
|
58
|
+
end; self.instance_eval { alias ui_font font } # === LibuiParadise::Extensions.ui_font
|
59
|
+
self.instance_eval { alias font_descriptor font } # === LibuiParadise::Extensions.font_descriptor
|
60
|
+
|
61
|
+
# ========================================================================= #
|
62
|
+
# === font
|
63
|
+
# ========================================================================= #
|
64
|
+
def font(&block)
|
65
|
+
LibuiParadise::Extensions.font(&block)
|
66
|
+
end; alias ui_font font # === ui_font
|
67
|
+
alias font_descriptor font # === font_descriptor
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
# =========================================================================== #
|
72
|
+
# === LibuiParadise.font
|
73
|
+
# =========================================================================== #
|
74
|
+
def self.font(&block)
|
75
|
+
::LibuiParadise::Extensions.font(&block)
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'libui_paradise/ui_classes/font_button.rb
|
6
|
+
# =========================================================================== #
|
7
|
+
module LibuiParadise
|
8
|
+
|
9
|
+
module Extensions # === LibuiParadise::Extensions
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === LibuiParadise::Extensions.font_button
|
13
|
+
#
|
14
|
+
# Create a new font button via this method.
|
15
|
+
# ========================================================================= #
|
16
|
+
def self.font_button
|
17
|
+
_ = UI.new_font_button
|
18
|
+
add_to_the_registered_widgets(_, __method__)
|
19
|
+
return _
|
20
|
+
end; self.instance_eval { alias ui_font_button font_button } # === Libuiparadise::Extensions.ui_font_button
|
21
|
+
|
22
|
+
# ========================================================================= #
|
23
|
+
# === font_button
|
24
|
+
#
|
25
|
+
# Create a new font button via this method.
|
26
|
+
# ========================================================================= #
|
27
|
+
def font_button
|
28
|
+
return ::LibuiParadise::Extensions.font_button
|
29
|
+
end; alias ui_font_button font_button # === ui_font_button
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
# =========================================================================== #
|
34
|
+
# === LibuiParadise.font_button
|
35
|
+
# =========================================================================== #
|
36
|
+
def self.font_button
|
37
|
+
return ::LibuiParadise::Extensions.font_button
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'libui_paradise/ui_classes/grid.rb
|
6
|
+
# =========================================================================== #
|
7
|
+
module LibuiParadise
|
8
|
+
|
9
|
+
module Extensions # === LibuiParadise::Extensions
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === ui_padded_grid
|
13
|
+
# ========================================================================= #
|
14
|
+
def ui_padded_grid
|
15
|
+
_ = ui_grid
|
16
|
+
_.is_padded
|
17
|
+
return _
|
18
|
+
end; alias padded_grid ui_padded_grid # === padded_grid
|
19
|
+
alias default_grid ui_padded_grid # === default_grid
|
20
|
+
|
21
|
+
# ========================================================================= #
|
22
|
+
# === LibuiParadise::Extensions.grid (grid tag)
|
23
|
+
#
|
24
|
+
# To insert into a grid, try to use this API:
|
25
|
+
#
|
26
|
+
# uiGridInsertAt(
|
27
|
+
# uiGrid *g,
|
28
|
+
# uiControl *c,
|
29
|
+
# uiControl *existing,
|
30
|
+
# uiAt at,
|
31
|
+
# int xspan,
|
32
|
+
# int yspan,
|
33
|
+
# int hexpand,
|
34
|
+
# uiAlign halign, int vexpand, uiAlign valign
|
35
|
+
# )
|
36
|
+
#
|
37
|
+
# Example to add a new entry onto the grid:
|
38
|
+
#
|
39
|
+
# UI.grid_append(grid, text('Yo2'), 1, 0, 1, 1, 0, 0, 1, 0)
|
40
|
+
#
|
41
|
+
# ========================================================================= #
|
42
|
+
def self.grid
|
43
|
+
_ = UI.new_grid
|
44
|
+
add_to_the_registered_widgets(_, __method__)
|
45
|
+
return _
|
46
|
+
end; self.instance_eval { alias ui_grid grid } # === LibuiParadise::Extensions.ui_grid
|
47
|
+
|
48
|
+
# ========================================================================= #
|
49
|
+
# === grid
|
50
|
+
# ========================================================================= #
|
51
|
+
def grid
|
52
|
+
::LibuiParadise::Extensions.grid
|
53
|
+
end; alias ui_grid grid # === ui_grid
|
54
|
+
|
55
|
+
end; end
|