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.
- 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
|