libui_paradise 0.2.49 → 0.4.13
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.
- checksums.yaml +4 -4
- data/README.md +405 -259
- data/bin/libui_message +7 -0
- data/doc/README.gen +356 -131
- data/doc/todo/todo.md +14 -5
- data/lib/libui_paradise/autoinclude.rb +2 -1
- data/lib/libui_paradise/base/base.rb +51 -62
- data/lib/libui_paradise/base_module/base_module.rb +1514 -0
- data/lib/libui_paradise/colours/colours.rb +14 -2
- data/lib/libui_paradise/domain_specific_language/README.md +6 -0
- data/lib/libui_paradise/examples/complex/002_tabs_example.rb +1 -2
- data/lib/libui_paradise/examples/complex/003_open_file_button_example.rb +3 -5
- data/lib/libui_paradise/examples/complex/006_coloured_boxes_example.rb +2 -2
- data/lib/libui_paradise/examples/complex/007_slider_example.rb +10 -4
- data/lib/libui_paradise/examples/complex/008_radio_button_example.rb +2 -2
- data/lib/libui_paradise/examples/complex/009_separator_example.rb +2 -2
- data/lib/libui_paradise/examples/complex/010_table_example.rb +139 -49
- data/lib/libui_paradise/examples/complex/011_two_buttons_showing_how_to_enable_and_disable_them.rb +2 -1
- data/lib/libui_paradise/examples/complex/012_password_entry_example.rb +1 -1
- data/lib/libui_paradise/examples/complex/013_form_example.rb +1 -1
- data/lib/libui_paradise/examples/complex/014_text_example.rb +1 -1
- data/lib/libui_paradise/examples/complex/015_text_view_example.rb +4 -4
- data/lib/libui_paradise/examples/complex/016_grid_example.rb +20 -11
- data/lib/libui_paradise/examples/complex/017_unicode_text_example.rb +2 -2
- data/lib/libui_paradise/examples/complex/018_spinbutton_example.rb +1 -1
- data/lib/libui_paradise/examples/complex/019_combo_box_example.rb +1 -1
- data/lib/libui_paradise/examples/complex/020_checkbox_example.rb +5 -5
- data/lib/libui_paradise/examples/complex/021_font_example.rb +4 -3
- data/lib/libui_paradise/examples/complex/022_simple_notepad_example.rb +3 -3
- data/lib/libui_paradise/examples/complex/023_msg_box_error.rb +5 -5
- data/lib/libui_paradise/examples/complex/024_parse_config_file_example.rb +2 -2
- data/lib/libui_paradise/examples/complex/025_colour_button.rb +1 -1
- data/lib/libui_paradise/examples/complex/026_basic_table_image.rb +5 -8
- data/lib/libui_paradise/examples/complex/027_basic_button_example.rb +3 -3
- data/lib/libui_paradise/examples/complex/028_try_for_automatic_button_press_event_after_a_delay.rb +4 -5
- data/lib/libui_paradise/examples/complex/029_progressbar_example.rb +4 -5
- data/lib/libui_paradise/examples/complex/030_entry_responds_to_comment_as_synonymous_to_the_enter_key_pressed_example.rb +5 -6
- data/lib/libui_paradise/examples/complex/031_notification_functionality_example.rb +3 -2
- data/lib/libui_paradise/examples/complex/032_simple_window_example.rb +2 -1
- data/lib/libui_paradise/examples/complex/033_daemonize_and_exit_after_delay_example.rb +3 -2
- data/lib/libui_paradise/examples/complex/034_bold_text_example.rb +115 -0
- data/lib/libui_paradise/examples/complex/035_parse_into_table_example.rb +109 -0
- data/lib/libui_paradise/examples/simple/001_open_file_example.rb +1 -1
- data/lib/libui_paradise/examples/simple/002_histogram_example.rb +6 -6
- data/lib/libui_paradise/examples/simple/003_fancy_text_example.rb +80 -43
- data/lib/libui_paradise/examples/simple/005_text_drawing_example.rb +11 -11
- data/lib/libui_paradise/examples/simple/007_control_gallery.rb +21 -14
- data/lib/libui_paradise/examples/simple/009_spectrum.rb +7 -1
- data/lib/libui_paradise/examples/simple/010_font_button.rb +31 -0
- data/lib/libui_paradise/examples/simple/011_simple_notepad.rb +24 -0
- data/lib/libui_paradise/examples/simple/012_table_example.rb +71 -0
- data/lib/libui_paradise/examples/simple/013_scrolling_pane_example.rb +28 -0
- data/lib/libui_paradise/examples/simple/014_simple_entry_example.rb +30 -0
- data/lib/libui_paradise/examples/simple/015_slider_example.rb +32 -0
- data/lib/libui_paradise/fiddle/{pointer.rb → fiddle.rb} +768 -615
- data/lib/libui_paradise/generic_window/generic_window.rb +1 -1
- data/lib/libui_paradise/images/README.md +5 -2
- data/lib/libui_paradise/libui_classes/button.rb +31 -0
- data/lib/libui_paradise/libui_classes/entry.rb +35 -0
- data/lib/libui_paradise/libui_classes/grid.rb +14 -23
- data/lib/libui_paradise/libui_classes/hbox.rb +39 -0
- data/lib/libui_paradise/libui_classes/libui_classes.rb +9 -1595
- data/lib/libui_paradise/libui_classes/msg_box.rb +121 -0
- data/lib/libui_paradise/libui_classes/msg_box_error.rb +41 -0
- data/lib/libui_paradise/libui_classes/slider.rb +28 -0
- data/lib/libui_paradise/libui_classes/spinbox.rb +48 -0
- data/lib/libui_paradise/libui_classes/vbox.rb +38 -0
- data/lib/libui_paradise/project/project.rb +6 -1
- data/lib/libui_paradise/prototype/prototype.rb +8 -10
- data/lib/libui_paradise/requires/require_the_libui_classes.rb +2 -2
- data/lib/libui_paradise/requires/require_the_libui_paradise_project.rb +5 -3
- data/lib/libui_paradise/toplevel_methods/add_to_the_registered_widgets.rb +70 -0
- data/lib/libui_paradise/toplevel_methods/hash_fiddle_pointer_widgets.rb +37 -0
- data/lib/libui_paradise/toplevel_methods/toplevel_counters.rb +83 -0
- data/lib/libui_paradise/toplevel_methods/toplevel_methods.rb +792 -0
- data/lib/libui_paradise/version/version.rb +2 -2
- data/lib/libui_paradise.rb +0 -0
- data/libui_paradise.gemspec +5 -4
- data/test/testing_generic_window.rb +2 -0
- metadata +35 -30
- data/doc/SNIPPETS.md +0 -94
- data/lib/libui_paradise/extensions/counters.rb +0 -58
- data/lib/libui_paradise/extensions/extensions.rb +0 -29
- data/lib/libui_paradise/extensions/hash_fiddle_pointer_widgets.rb +0 -150
- data/lib/libui_paradise/extensions/misc.rb +0 -754
- data/lib/libui_paradise/libui_classes/box.rb +0 -156
- data/lib/libui_paradise/toplevel_methods/misc.rb +0 -13
|
@@ -8,250 +8,99 @@
|
|
|
8
8
|
# really not recommended to do this.
|
|
9
9
|
#
|
|
10
10
|
# A cleaner solution would be to modify just in-place, such as via
|
|
11
|
-
# refinements, but I don't quite like the syntax of refinements,
|
|
12
|
-
#
|
|
11
|
+
# refinements, but I don't quite like the syntax of refinements, so
|
|
12
|
+
# I opted for the simpler toplevel modification instead.
|
|
13
13
|
# =========================================================================== #
|
|
14
|
-
# require 'libui_paradise/fiddle/
|
|
14
|
+
# require 'libui_paradise/fiddle/fiddle.rb'
|
|
15
15
|
# =========================================================================== #
|
|
16
16
|
module Fiddle
|
|
17
17
|
|
|
18
18
|
class Pointer # === Fiddle::Pointer
|
|
19
19
|
|
|
20
|
-
require 'libui_paradise/
|
|
20
|
+
require 'libui_paradise/toplevel_methods/hash_fiddle_pointer_widgets.rb'
|
|
21
|
+
require 'libui_paradise/toplevel_methods/toplevel_counters.rb'
|
|
21
22
|
|
|
22
23
|
# ========================================================================= #
|
|
23
|
-
# ===
|
|
24
|
-
#
|
|
25
|
-
# The idea for this method is to respond to on-changed events, in
|
|
26
|
-
# particular on a spinbox. Currently it is enabled for a few
|
|
27
|
-
# widgets, including :entry. This may be expanded at a later time
|
|
28
|
-
# to add on-changed support for more widgets.
|
|
29
|
-
#
|
|
30
|
-
# For a combobox we may have to use this code:
|
|
31
|
-
#
|
|
32
|
-
# LibUI.combobox_on_selected
|
|
33
|
-
# UI.spinbox_on_changed(self, spinbox_changed_callback, nil)
|
|
34
|
-
# end
|
|
35
|
-
#
|
|
36
|
-
# Be sure to pass the proc object into the method, in a block.
|
|
37
|
-
#
|
|
38
|
-
# Usage examples:
|
|
39
|
-
#
|
|
40
|
-
# text_entry.on_changed { text_changed_callback }
|
|
41
|
-
# slider.on_changed { slider_changed_callback }
|
|
42
|
-
#
|
|
43
|
-
# ========================================================================= #
|
|
44
|
-
def on_changed(&block)
|
|
45
|
-
current_widget = available_pointers?[self.object_id] # This will be an Array.
|
|
46
|
-
_pointer = current_widget.first # Not used currently in this method.
|
|
47
|
-
type = current_widget.last
|
|
48
|
-
case type
|
|
49
|
-
# ======================================================================= #
|
|
50
|
-
# === :entry
|
|
51
|
-
# ======================================================================= #
|
|
52
|
-
when :entry
|
|
53
|
-
LibUI.entry_on_changed(self, block.call, nil)
|
|
54
|
-
# ======================================================================= #
|
|
55
|
-
# === :multiline_entry
|
|
56
|
-
# ======================================================================= #
|
|
57
|
-
when :multiline_entry
|
|
58
|
-
LibUI.multiline_entry_on_changed(self, block.call, nil)
|
|
59
|
-
# ======================================================================= #
|
|
60
|
-
# === :spinbox
|
|
61
|
-
# ======================================================================= #
|
|
62
|
-
when :spinbox
|
|
63
|
-
LibUI.spinbox_on_changed(self, block.call, nil)
|
|
64
|
-
# ======================================================================= #
|
|
65
|
-
# === :slider
|
|
66
|
-
#
|
|
67
|
-
# This is for a slider bar.
|
|
68
|
-
# ======================================================================= #
|
|
69
|
-
when :slider
|
|
70
|
-
LibUI.slider_on_changed(self, block.call, nil)
|
|
71
|
-
# ======================================================================= #
|
|
72
|
-
# === :colour_button
|
|
73
|
-
# ======================================================================= #
|
|
74
|
-
when :colour_button
|
|
75
|
-
LibUI.color_button_on_changed(self, block.call, nil)
|
|
76
|
-
# ======================================================================= #
|
|
77
|
-
# === :combobox
|
|
78
|
-
# ======================================================================= #
|
|
79
|
-
when :combobox
|
|
80
|
-
LibUI.combobox_on_selected(self, block.call, nil)
|
|
81
|
-
else
|
|
82
|
-
e 'Not registered type in .on_changed(): '+type.to_s
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
# ========================================================================= #
|
|
87
|
-
# === fraction=
|
|
88
|
-
#
|
|
89
|
-
# This is mostly a wrapper to reach ruby-gtk3 compatibility.
|
|
24
|
+
# === available_pointers?
|
|
90
25
|
# ========================================================================= #
|
|
91
|
-
def
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
26
|
+
def available_pointers?
|
|
27
|
+
::LibuiParadise.hash_fiddle_pointer_widgets?
|
|
28
|
+
end; alias main_hash? available_pointers? # === main_hash?
|
|
29
|
+
alias hash_fiddle_pointer_widgets? available_pointers? # === hash_fiddle_pointer_widgets?
|
|
95
30
|
|
|
96
31
|
# ========================================================================= #
|
|
97
|
-
# ===
|
|
98
|
-
#
|
|
99
|
-
# This method can be used to set the text of a particular libui-widget,
|
|
100
|
-
# in particular entries.
|
|
32
|
+
# === clear
|
|
101
33
|
# ========================================================================= #
|
|
102
|
-
def
|
|
103
|
-
|
|
104
|
-
type = nil
|
|
34
|
+
def clear(
|
|
35
|
+
current_widget = available_pointers?[self.object_id] # This will be an Array.
|
|
105
36
|
)
|
|
37
|
+
_pointer = current_widget.first # Not used currently in this method.
|
|
38
|
+
type = current_widget.last
|
|
39
|
+
|
|
106
40
|
object_id = self.object_id
|
|
107
|
-
hash =
|
|
108
|
-
this_widget = hash[object_id].first
|
|
41
|
+
hash = hash_fiddle_pointer_widgets?
|
|
109
42
|
if type.nil?
|
|
110
43
|
type = hash[object_id].last # This should be :grid. But it is not used here.
|
|
111
44
|
end
|
|
112
45
|
case type
|
|
113
46
|
# ======================================================================= #
|
|
114
|
-
# === :new_progress_bar
|
|
115
|
-
# ======================================================================= #
|
|
116
|
-
when :new_progress_bar
|
|
117
|
-
# This currently does nothing.
|
|
118
|
-
# ======================================================================= #
|
|
119
47
|
# === :multiline_entry
|
|
120
|
-
#
|
|
121
|
-
# This is a text-view widget actually.
|
|
122
48
|
# ======================================================================= #
|
|
123
49
|
when :multiline_entry
|
|
124
|
-
LibUI.multiline_entry_set_text(
|
|
125
|
-
this_widget,
|
|
126
|
-
display_this_text.to_s
|
|
127
|
-
)
|
|
128
|
-
# ======================================================================= #
|
|
129
|
-
# === :text
|
|
130
|
-
# ======================================================================= #
|
|
131
|
-
when :text,
|
|
132
|
-
:label
|
|
133
|
-
LibUI.label_set_text(
|
|
134
|
-
this_widget,
|
|
135
|
-
display_this_text.to_s
|
|
136
|
-
)
|
|
137
|
-
# ======================================================================= #
|
|
138
|
-
# === :textview
|
|
139
|
-
# ======================================================================= #
|
|
140
|
-
when :textview
|
|
141
|
-
LibUI.multiline_entry_set_text(
|
|
142
|
-
this_widget,
|
|
143
|
-
display_this_text.to_s
|
|
144
|
-
)
|
|
145
|
-
# ======================================================================= #
|
|
146
|
-
# === :entry
|
|
147
|
-
# ======================================================================= #
|
|
148
|
-
when :entry
|
|
149
|
-
LibUI.entry_set_text(
|
|
150
|
-
this_widget,
|
|
151
|
-
display_this_text.to_s
|
|
152
|
-
)
|
|
50
|
+
::LibUI.multiline_entry_set_text(self, '')
|
|
153
51
|
# ======================================================================= #
|
|
154
|
-
# === :
|
|
52
|
+
# === :combobox
|
|
155
53
|
#
|
|
156
|
-
# This
|
|
54
|
+
# This currently does not work; it depends on libui-ng, which has not
|
|
55
|
+
# yet been added completely.
|
|
157
56
|
# ======================================================================= #
|
|
158
|
-
when :
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
57
|
+
when :combobox
|
|
58
|
+
# LibUI.multiline_entry_set_text(
|
|
59
|
+
# this_widget,
|
|
60
|
+
# display_this_text.to_s
|
|
61
|
+
# )
|
|
163
62
|
else
|
|
164
|
-
puts
|
|
165
|
-
type
|
|
63
|
+
puts "Unhandled case in clear(): "\
|
|
64
|
+
"#{type}"
|
|
166
65
|
end
|
|
167
|
-
end
|
|
66
|
+
end
|
|
168
67
|
|
|
169
68
|
# ========================================================================= #
|
|
170
|
-
# ===
|
|
171
|
-
#
|
|
172
|
-
# This method queries the content of any widget that may contain text, in
|
|
173
|
-
# particular entries such as a gtk-entry.
|
|
69
|
+
# === is_read_only
|
|
174
70
|
# ========================================================================= #
|
|
175
|
-
def
|
|
176
|
-
|
|
71
|
+
def is_read_only(
|
|
72
|
+
current_widget = available_pointers?[self.object_id] # This will be an Array.
|
|
177
73
|
)
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
if type.nil?
|
|
181
|
-
# ===================================================================== #
|
|
182
|
-
# In this case we must determine the type in use.
|
|
183
|
-
# ===================================================================== #
|
|
184
|
-
if hash.has_key? object_id
|
|
185
|
-
type = hash[object_id].last # The last entry contains the type.
|
|
186
|
-
end
|
|
187
|
-
end
|
|
74
|
+
_pointer = current_widget.first # Not used currently in this method.
|
|
75
|
+
type = current_widget.last
|
|
188
76
|
case type
|
|
189
77
|
# ======================================================================= #
|
|
190
|
-
# === :
|
|
191
|
-
#
|
|
192
|
-
# This is actually a progress-bar.
|
|
78
|
+
# === :entry
|
|
193
79
|
# ======================================================================= #
|
|
194
|
-
when :
|
|
195
|
-
|
|
196
|
-
return LibUI.progress_bar_value(self).to_s
|
|
80
|
+
when :entry
|
|
81
|
+
::LibUI.entry_set_read_only(self, 1)
|
|
197
82
|
# ======================================================================= #
|
|
198
83
|
# === :multiline_entry
|
|
199
|
-
#
|
|
200
|
-
# This is, I believe, synonymous to :textview.
|
|
201
|
-
# ======================================================================= #
|
|
202
|
-
when :multiline_entry,
|
|
203
|
-
:textview
|
|
204
|
-
return LibUI.multiline_entry_text(self).to_s
|
|
205
|
-
# ======================================================================= #
|
|
206
|
-
# === :combobox
|
|
207
84
|
# ======================================================================= #
|
|
208
|
-
when :
|
|
209
|
-
|
|
210
|
-
else
|
|
211
|
-
|
|
85
|
+
when :multiline_entry
|
|
86
|
+
::LibUI.multiline_entry_set_read_only(self, 1)
|
|
87
|
+
else
|
|
88
|
+
pp 'The caller in is_read_only() will be shown next:'
|
|
89
|
+
puts
|
|
90
|
+
pp caller()
|
|
91
|
+
puts
|
|
92
|
+
puts "#{type} (class #{type.class}) is not yet implemented in .padded=."
|
|
93
|
+
puts
|
|
212
94
|
end
|
|
213
|
-
end; alias
|
|
214
|
-
alias
|
|
215
|
-
alias value? text? # === value?
|
|
95
|
+
end; alias readonly is_read_only # === readonly
|
|
96
|
+
alias the_user_may_not_modify_this_entry is_read_only # === the_user_may_not_modify_this_entry
|
|
216
97
|
|
|
217
98
|
# ========================================================================= #
|
|
218
|
-
# ===
|
|
219
|
-
#
|
|
220
|
-
# This method has initially been created to assign a value to a
|
|
221
|
-
# spinbutton. That way the following API is made possible:
|
|
222
|
-
#
|
|
223
|
-
# spinbutton.set_value(42)
|
|
224
|
-
#
|
|
99
|
+
# === new_row
|
|
225
100
|
# ========================================================================= #
|
|
226
|
-
def
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
object_id = self.object_id
|
|
230
|
-
hash = LibuiParadise::Extensions.hash_fiddle_pointer_widgets?
|
|
231
|
-
this_widget = hash[object_id].first
|
|
232
|
-
type = hash[object_id].last
|
|
233
|
-
case type
|
|
234
|
-
# ======================================================================= #
|
|
235
|
-
# === :new_progress_bar
|
|
236
|
-
#
|
|
237
|
-
# This is actually a progress-bar.
|
|
238
|
-
# ======================================================================= #
|
|
239
|
-
when :new_progress_bar,
|
|
240
|
-
:progress_bar
|
|
241
|
-
LibUI.progress_bar_set_value(this_widget, new_value.to_i)
|
|
242
|
-
# ======================================================================= #
|
|
243
|
-
# === :spinbox
|
|
244
|
-
# ======================================================================= #
|
|
245
|
-
when :spinbox
|
|
246
|
-
LibUI.spinbox_set_value(
|
|
247
|
-
this_widget,
|
|
248
|
-
new_value.to_i # Must be an Integer.
|
|
249
|
-
)
|
|
250
|
-
else
|
|
251
|
-
e 'Not registered type: '+type.to_s
|
|
252
|
-
end
|
|
253
|
-
end; alias value= set_value # === value=
|
|
254
|
-
alias start_position= set_value # === start_position=
|
|
101
|
+
def new_row
|
|
102
|
+
::LibuiParadise.new_row
|
|
103
|
+
end
|
|
255
104
|
|
|
256
105
|
# ========================================================================= #
|
|
257
106
|
# === right (right tag)
|
|
@@ -264,7 +113,7 @@ class Pointer # === Fiddle::Pointer
|
|
|
264
113
|
yspan = 1
|
|
265
114
|
)
|
|
266
115
|
object_id = self.object_id
|
|
267
|
-
hash =
|
|
116
|
+
hash = hash_fiddle_pointer_widgets?
|
|
268
117
|
type = hash[object_id].last # The last entry contains the type.
|
|
269
118
|
case left
|
|
270
119
|
# ======================================================================= #
|
|
@@ -303,202 +152,225 @@ class Pointer # === Fiddle::Pointer
|
|
|
303
152
|
valign: 0
|
|
304
153
|
}
|
|
305
154
|
)
|
|
306
|
-
|
|
155
|
+
# ===================================================================== #
|
|
156
|
+
# And we must add a new row next:
|
|
157
|
+
# ===================================================================== #
|
|
158
|
+
LibuiParadise.new_row
|
|
307
159
|
else
|
|
308
160
|
end
|
|
309
161
|
end
|
|
310
162
|
|
|
311
163
|
# ========================================================================= #
|
|
312
|
-
# ===
|
|
164
|
+
# === ui_grid_append
|
|
165
|
+
#
|
|
166
|
+
# This method can be used to append onto a grid in LibUI.
|
|
167
|
+
#
|
|
168
|
+
# Usage example:
|
|
169
|
+
#
|
|
170
|
+
# grid.grid_append(text('Right'), 1, 0, 1, 1, 0, 0.5, 1, 0)
|
|
171
|
+
#
|
|
313
172
|
# ========================================================================= #
|
|
314
|
-
def
|
|
315
|
-
|
|
316
|
-
left
|
|
317
|
-
top
|
|
318
|
-
xspan
|
|
319
|
-
yspan
|
|
173
|
+
def ui_grid_append(
|
|
174
|
+
widget_to_append,
|
|
175
|
+
left = LibuiParadise.left_counter?,
|
|
176
|
+
top = LibuiParadise.top_counter?,
|
|
177
|
+
xspan = 1,
|
|
178
|
+
yspan = 1, #
|
|
179
|
+
hexpand = 0, # A "boolean". 0 means false here.
|
|
180
|
+
halign = 0,
|
|
181
|
+
vexpand = 0, # A "boolean". 0 means false here, 1 means true, and thus "do expand".
|
|
182
|
+
valign = 0
|
|
320
183
|
)
|
|
321
|
-
object_id = self.object_id
|
|
322
|
-
hash = LibuiParadise::Extensions.hash_fiddle_pointer_widgets?
|
|
323
|
-
type = hash[object_id].last # The last entry contains the type.
|
|
324
|
-
case left
|
|
325
184
|
# ======================================================================= #
|
|
326
|
-
#
|
|
185
|
+
# The signature in Go is:
|
|
186
|
+
#
|
|
187
|
+
# Append(child Control, left, top int, xspan, yspan int, hexpand bool, halign Align, vexpand bool, valign Align)
|
|
188
|
+
#
|
|
327
189
|
# ======================================================================= #
|
|
328
|
-
|
|
329
|
-
|
|
190
|
+
object_id = self.object_id
|
|
191
|
+
hash = hash_fiddle_pointer_widgets?
|
|
192
|
+
this_widget = hash[object_id].first
|
|
193
|
+
_type = hash[object_id].last # This should be :grid. But it is not used here.
|
|
194
|
+
if (left == LibuiParadise.left_counter?)
|
|
195
|
+
LibuiParadise.increment_the_left_counter
|
|
330
196
|
end
|
|
331
|
-
case top
|
|
332
|
-
# ======================================================================= #
|
|
333
|
-
# === :default
|
|
334
|
-
# ======================================================================= #
|
|
335
|
-
when :default
|
|
336
|
-
top = LibuiParadise.counter_top?
|
|
337
|
-
end
|
|
338
|
-
case type
|
|
339
|
-
# ======================================================================= #
|
|
340
|
-
# === :vbox
|
|
341
|
-
# ======================================================================= #
|
|
342
|
-
when :vbox
|
|
343
|
-
add(widget)
|
|
344
197
|
# ======================================================================= #
|
|
345
|
-
#
|
|
198
|
+
# left, top, xspan, yspan, hexpand, halign, vexpand, valign
|
|
199
|
+
# 0, 0, 2, 1, 0, 0, 1, 0
|
|
346
200
|
# ======================================================================= #
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
)
|
|
361
|
-
LibuiParadise.counter_left += 1
|
|
362
|
-
else
|
|
363
|
-
end
|
|
364
|
-
end
|
|
365
|
-
|
|
366
|
-
# ========================================================================= #
|
|
367
|
-
# === new_row
|
|
368
|
-
# ========================================================================= #
|
|
369
|
-
def new_row
|
|
370
|
-
LibuiParadise.counter_left = 0
|
|
371
|
-
LibuiParadise.counter_top += 1
|
|
372
|
-
end
|
|
201
|
+
LibUI.grid_append(
|
|
202
|
+
this_widget,
|
|
203
|
+
widget_to_append, # This is the widget that will be added (appended) onto the grid-widget.
|
|
204
|
+
left,
|
|
205
|
+
top,
|
|
206
|
+
xspan,
|
|
207
|
+
yspan,
|
|
208
|
+
hexpand,
|
|
209
|
+
halign,
|
|
210
|
+
vexpand,
|
|
211
|
+
valign
|
|
212
|
+
)
|
|
213
|
+
end; alias grid_append ui_grid_append # === grid_append
|
|
373
214
|
|
|
374
215
|
# ========================================================================= #
|
|
375
|
-
# ===
|
|
376
|
-
#
|
|
377
|
-
# Usage example:
|
|
216
|
+
# === show_then_main_then_quit
|
|
378
217
|
#
|
|
379
|
-
#
|
|
218
|
+
# This method ultimately combines three other method calls, or even
|
|
219
|
+
# four, since as of December 2023.
|
|
380
220
|
#
|
|
221
|
+
# The argument that this method accepts is the main window.
|
|
381
222
|
# ========================================================================= #
|
|
382
|
-
def
|
|
383
|
-
|
|
384
|
-
hash = {}
|
|
223
|
+
def show_then_main_then_quit(
|
|
224
|
+
optional_widget = nil
|
|
385
225
|
)
|
|
386
|
-
array_to_be_passed = []
|
|
387
226
|
# ======================================================================= #
|
|
388
|
-
#
|
|
227
|
+
# First handle non-nil arguments given.
|
|
389
228
|
# ======================================================================= #
|
|
390
|
-
if
|
|
391
|
-
|
|
392
|
-
else
|
|
393
|
-
array_to_be_passed << 0
|
|
394
|
-
end
|
|
395
|
-
# ======================================================================= #
|
|
396
|
-
# === :top
|
|
397
|
-
# ======================================================================= #
|
|
398
|
-
if hash.has_key? :top
|
|
399
|
-
array_to_be_passed << hash[:top]
|
|
400
|
-
else
|
|
401
|
-
array_to_be_passed << 0
|
|
229
|
+
if optional_widget
|
|
230
|
+
self << optional_widget
|
|
402
231
|
end
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
232
|
+
::LibUI.control_show(self)
|
|
233
|
+
main_then_quit
|
|
234
|
+
end; alias elegant_exit show_then_main_then_quit # === elegant_exit
|
|
235
|
+
alias complex_finalizer show_then_main_then_quit # === complex_finalizer
|
|
236
|
+
alias intelligent_close_down show_then_main_then_quit # === intelligent_close_down
|
|
237
|
+
alias intelligent_quit show_then_main_then_quit # === intelligent_quit
|
|
238
|
+
alias intelligent_exit show_then_main_then_quit # === intelligent_exit
|
|
239
|
+
|
|
240
|
+
# ========================================================================= #
|
|
241
|
+
# === text?
|
|
242
|
+
#
|
|
243
|
+
# This method queries the content of any widget that may contain text, in
|
|
244
|
+
# particular entries such as a gtk-entry.
|
|
245
|
+
# ========================================================================= #
|
|
246
|
+
def text?(
|
|
247
|
+
type = nil
|
|
248
|
+
)
|
|
249
|
+
object_id = self.object_id
|
|
250
|
+
hash = hash_fiddle_pointer_widgets?
|
|
251
|
+
if type.nil?
|
|
252
|
+
# ===================================================================== #
|
|
253
|
+
# In this case we must determine the type in use.
|
|
254
|
+
# ===================================================================== #
|
|
255
|
+
if hash.has_key? object_id
|
|
256
|
+
type = hash[object_id].last # The last entry contains the type.
|
|
257
|
+
end
|
|
410
258
|
end
|
|
259
|
+
case type
|
|
411
260
|
# ======================================================================= #
|
|
412
|
-
# === :
|
|
261
|
+
# === :label
|
|
413
262
|
# ======================================================================= #
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
else
|
|
417
|
-
array_to_be_passed << 0
|
|
418
|
-
end
|
|
263
|
+
when :label
|
|
264
|
+
return LibUI.label_text(self).to_s
|
|
419
265
|
# ======================================================================= #
|
|
420
|
-
# === :
|
|
266
|
+
# === :new_progress_bar
|
|
267
|
+
#
|
|
268
|
+
# This is actually a progress-bar.
|
|
421
269
|
# ======================================================================= #
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
array_to_be_passed << 0
|
|
426
|
-
end
|
|
270
|
+
when :new_progress_bar,
|
|
271
|
+
:progress_bar
|
|
272
|
+
return LibUI.progress_bar_value(self).to_s
|
|
427
273
|
# ======================================================================= #
|
|
428
|
-
# === :
|
|
274
|
+
# === :multiline_entry
|
|
275
|
+
#
|
|
276
|
+
# This is, I believe, synonymous to :textview.
|
|
429
277
|
# ======================================================================= #
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
array_to_be_passed << 0
|
|
434
|
-
end
|
|
278
|
+
when :multiline_entry,
|
|
279
|
+
:textview
|
|
280
|
+
return LibUI.multiline_entry_text(self).to_s
|
|
435
281
|
# ======================================================================= #
|
|
436
|
-
# === :
|
|
282
|
+
# === :combobox
|
|
437
283
|
# ======================================================================= #
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
else
|
|
441
|
-
|
|
284
|
+
when :combobox
|
|
285
|
+
return LibUI.combobox_selected(self).to_s
|
|
286
|
+
else # This is the "historic" default. May have to be removed one day.
|
|
287
|
+
return LibUI.entry_text(self).to_s
|
|
442
288
|
end
|
|
289
|
+
end; alias buffer? text? # === buffer?
|
|
290
|
+
alias value? text? # === value?
|
|
291
|
+
alias selected? text? # === selected?
|
|
292
|
+
|
|
293
|
+
# ========================================================================= #
|
|
294
|
+
# === on_toggled
|
|
295
|
+
# ========================================================================= #
|
|
296
|
+
def on_toggled(&block)
|
|
297
|
+
current_widget = available_pointers?[self.object_id] # This will be an Array.
|
|
298
|
+
_pointer = current_widget.first # Not used currently in this method.
|
|
299
|
+
type = current_widget.last
|
|
300
|
+
case type
|
|
443
301
|
# ======================================================================= #
|
|
444
|
-
# === :
|
|
302
|
+
# === :checkbox
|
|
445
303
|
# ======================================================================= #
|
|
446
|
-
|
|
447
|
-
|
|
304
|
+
when :checkbox
|
|
305
|
+
::LibUI.checkbox_on_toggled(self, block.call, nil)
|
|
448
306
|
else
|
|
449
|
-
|
|
307
|
+
e 'Not yet added here: '+type.to_s
|
|
450
308
|
end
|
|
451
|
-
|
|
452
|
-
end; alias hash hash_grid # === hash
|
|
309
|
+
end
|
|
453
310
|
|
|
454
311
|
# ========================================================================= #
|
|
455
|
-
# ===
|
|
312
|
+
# === on_changed
|
|
456
313
|
#
|
|
457
|
-
#
|
|
314
|
+
# The idea for this method is to respond to on-changed events, in
|
|
315
|
+
# particular on a spinbox. Currently it is enabled for a few
|
|
316
|
+
# widgets, including :entry. This may be expanded at a later time
|
|
317
|
+
# to add on-changed support for more widgets.
|
|
458
318
|
#
|
|
459
|
-
#
|
|
319
|
+
# For a combobox we may have to use this code:
|
|
460
320
|
#
|
|
461
|
-
#
|
|
321
|
+
# LibUI.combobox_on_selected
|
|
322
|
+
# UI.spinbox_on_changed(self, spinbox_changed_callback, nil)
|
|
323
|
+
# end
|
|
324
|
+
#
|
|
325
|
+
# Be sure to pass the proc object into the method, in a block.
|
|
326
|
+
#
|
|
327
|
+
# Usage examples:
|
|
328
|
+
#
|
|
329
|
+
# text_entry.on_changed { text_changed_callback }
|
|
330
|
+
# slider.on_changed { slider_changed_callback }
|
|
462
331
|
#
|
|
463
332
|
# ========================================================================= #
|
|
464
|
-
def
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
yspan = 1, #
|
|
470
|
-
hexpand = 0, # A "boolean". 0 means false here.
|
|
471
|
-
halign = 0,
|
|
472
|
-
vexpand = 0, # A "boolean". 0 means false here.
|
|
473
|
-
valign = 0
|
|
474
|
-
)
|
|
333
|
+
def on_changed(&block)
|
|
334
|
+
current_widget = available_pointers?[self.object_id] # This will be an Array.
|
|
335
|
+
_pointer = current_widget.first # Not used currently in this method.
|
|
336
|
+
type = current_widget.last
|
|
337
|
+
case type
|
|
475
338
|
# ======================================================================= #
|
|
476
|
-
#
|
|
477
|
-
#
|
|
478
|
-
|
|
339
|
+
# === :entry
|
|
340
|
+
# ======================================================================= #
|
|
341
|
+
when :entry
|
|
342
|
+
::LibUI.entry_on_changed(self, block.call, nil)
|
|
343
|
+
# ======================================================================= #
|
|
344
|
+
# === :multiline_entry
|
|
345
|
+
# ======================================================================= #
|
|
346
|
+
when :multiline_entry
|
|
347
|
+
::LibUI.multiline_entry_on_changed(self, block.call, nil)
|
|
348
|
+
# ======================================================================= #
|
|
349
|
+
# === :spinbox
|
|
350
|
+
# ======================================================================= #
|
|
351
|
+
when :spinbox
|
|
352
|
+
::LibUI.spinbox_on_changed(self, block.call, nil)
|
|
353
|
+
# ======================================================================= #
|
|
354
|
+
# === :slider
|
|
479
355
|
#
|
|
356
|
+
# This is for a slider bar.
|
|
480
357
|
# ======================================================================= #
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
this_widget = hash[object_id].first
|
|
484
|
-
_type = hash[object_id].last # This should be :grid. But it is not used here.
|
|
358
|
+
when :slider
|
|
359
|
+
::LibUI.slider_on_changed(self, block.call, nil)
|
|
485
360
|
# ======================================================================= #
|
|
486
|
-
#
|
|
487
|
-
# 0, 0, 2, 1, 0, 0, 1, 0
|
|
361
|
+
# === :colour_button
|
|
488
362
|
# ======================================================================= #
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
)
|
|
501
|
-
end; alias grid_append ui_grid_append # === grid_append
|
|
363
|
+
when :colour_button
|
|
364
|
+
::LibUI.color_button_on_changed(self, block.call, nil)
|
|
365
|
+
# ======================================================================= #
|
|
366
|
+
# === :combobox
|
|
367
|
+
# ======================================================================= #
|
|
368
|
+
when :combobox
|
|
369
|
+
::LibUI.combobox_on_selected(self, block.call, nil)
|
|
370
|
+
else
|
|
371
|
+
e 'Not registered type in .on_changed(): '+type.to_s
|
|
372
|
+
end
|
|
373
|
+
end
|
|
502
374
|
|
|
503
375
|
# ========================================================================= #
|
|
504
376
|
# === append (append tag, add tag)
|
|
@@ -510,22 +382,44 @@ class Pointer # === Fiddle::Pointer
|
|
|
510
382
|
padding_to_use = 1,
|
|
511
383
|
*remaining_arguments
|
|
512
384
|
)
|
|
385
|
+
if padding_to_use.is_a? Hash
|
|
386
|
+
padding_to_use = 1 # Hardcoded exception.
|
|
387
|
+
end
|
|
388
|
+
if padding_to_use > 1
|
|
389
|
+
padding_to_use = 1 # For now only a value of 1 seems to work.
|
|
390
|
+
end
|
|
513
391
|
current_widget = available_pointers?[self.object_id] # This will be an Array.
|
|
514
392
|
_pointer = current_widget.first # Not used currently in this method.
|
|
515
393
|
type = current_widget.last
|
|
394
|
+
left_position = LibuiParadise.counter_left?
|
|
395
|
+
top_position = LibuiParadise.counter_top?
|
|
396
|
+
if remaining_arguments[1]
|
|
397
|
+
top_position = remaining_arguments[1]
|
|
398
|
+
end
|
|
399
|
+
if remaining_arguments[0]
|
|
400
|
+
left_position = remaining_arguments[0]
|
|
401
|
+
else
|
|
402
|
+
LibuiParadise.increment_counter_left
|
|
403
|
+
end
|
|
516
404
|
case type
|
|
517
405
|
# ======================================================================= #
|
|
518
406
|
# === :grid
|
|
519
407
|
#
|
|
520
408
|
# This entry-point is specifically for a ui-grid element.
|
|
409
|
+
#
|
|
410
|
+
# The positional arguments stand for:
|
|
411
|
+
#
|
|
412
|
+
# gtk-widget, left, top, xspan, yspan, hexpand, halign, vexpand, valign
|
|
413
|
+
# grid_append(grid, entry1, 0, 0, 2, 1, 0, 0, 1, 0)
|
|
414
|
+
#
|
|
521
415
|
# ======================================================================= #
|
|
522
416
|
when :grid
|
|
523
417
|
LibUI.grid_append(
|
|
524
418
|
self,
|
|
525
419
|
this_widget.to_s,
|
|
526
420
|
padding_to_use,
|
|
527
|
-
|
|
528
|
-
|
|
421
|
+
left_position,
|
|
422
|
+
top_position,
|
|
529
423
|
remaining_arguments[2],
|
|
530
424
|
remaining_arguments[3],
|
|
531
425
|
remaining_arguments[4],
|
|
@@ -553,42 +447,197 @@ class Pointer # === Fiddle::Pointer
|
|
|
553
447
|
when :window
|
|
554
448
|
LibUI.window_set_child(self, this_widget)
|
|
555
449
|
else # This is the default.
|
|
556
|
-
LibUI.box_append(
|
|
450
|
+
::LibUI.box_append(
|
|
557
451
|
self, this_widget, padding_to_use
|
|
558
452
|
)
|
|
559
453
|
end
|
|
560
|
-
end; alias add
|
|
561
|
-
alias <<
|
|
454
|
+
end; alias add append # === add
|
|
455
|
+
alias << append # === <<
|
|
456
|
+
alias pack_start append # === pack_start
|
|
457
|
+
|
|
458
|
+
# ========================================================================= #
|
|
459
|
+
# === append_text_column
|
|
460
|
+
#
|
|
461
|
+
# This method is specifically used for libui-tables.
|
|
462
|
+
# ========================================================================= #
|
|
463
|
+
def append_text_column(
|
|
464
|
+
text,
|
|
465
|
+
a,
|
|
466
|
+
b = -1
|
|
467
|
+
)
|
|
468
|
+
object_id = self.object_id
|
|
469
|
+
hash = hash_fiddle_pointer_widgets?
|
|
470
|
+
type = hash[object_id].last # The last entry contains the type.
|
|
471
|
+
case type
|
|
472
|
+
# ======================================================================= #
|
|
473
|
+
# === :table
|
|
474
|
+
#
|
|
475
|
+
# This is the primary entry point for this method.
|
|
476
|
+
# ======================================================================= #
|
|
477
|
+
when :table
|
|
478
|
+
::LibUI.table_append_text_column(self, text, a, b)
|
|
479
|
+
else
|
|
480
|
+
e 'Not registered type in .append_text_column(): '+type.to_s
|
|
481
|
+
end
|
|
482
|
+
end
|
|
483
|
+
|
|
484
|
+
# ========================================================================= #
|
|
485
|
+
# === set_text
|
|
486
|
+
#
|
|
487
|
+
# This method can be used to set the text of a particular libui-widget,
|
|
488
|
+
# in particular entries.
|
|
489
|
+
# ========================================================================= #
|
|
490
|
+
def set_text(
|
|
491
|
+
display_this_text = '', # This is the text that will be used.
|
|
492
|
+
type = nil
|
|
493
|
+
)
|
|
494
|
+
object_id = self.object_id
|
|
495
|
+
hash = hash_fiddle_pointer_widgets?
|
|
496
|
+
this_widget = hash[object_id].first
|
|
497
|
+
if type.nil?
|
|
498
|
+
type = hash[object_id].last # This should be :grid. But it is not used here.
|
|
499
|
+
end
|
|
500
|
+
case type
|
|
501
|
+
# ======================================================================= #
|
|
502
|
+
# === :new_progress_bar
|
|
503
|
+
# ======================================================================= #
|
|
504
|
+
when :new_progress_bar
|
|
505
|
+
# This currently does nothing.
|
|
506
|
+
# ======================================================================= #
|
|
507
|
+
# === :multiline_entry
|
|
508
|
+
#
|
|
509
|
+
# This is a text-view widget actually.
|
|
510
|
+
# ======================================================================= #
|
|
511
|
+
when :multiline_entry
|
|
512
|
+
LibUI.multiline_entry_set_text(
|
|
513
|
+
this_widget,
|
|
514
|
+
display_this_text.to_s
|
|
515
|
+
)
|
|
516
|
+
# ======================================================================= #
|
|
517
|
+
# === :text
|
|
518
|
+
# ======================================================================= #
|
|
519
|
+
when :text,
|
|
520
|
+
:label
|
|
521
|
+
LibUI.label_set_text(
|
|
522
|
+
this_widget,
|
|
523
|
+
display_this_text.to_s
|
|
524
|
+
)
|
|
525
|
+
# ======================================================================= #
|
|
526
|
+
# === :textview
|
|
527
|
+
# ======================================================================= #
|
|
528
|
+
when :textview
|
|
529
|
+
LibUI.multiline_entry_set_text(
|
|
530
|
+
this_widget,
|
|
531
|
+
display_this_text.to_s
|
|
532
|
+
)
|
|
533
|
+
# ======================================================================= #
|
|
534
|
+
# === :entry
|
|
535
|
+
# ======================================================================= #
|
|
536
|
+
when :entry
|
|
537
|
+
LibUI.entry_set_text(
|
|
538
|
+
this_widget,
|
|
539
|
+
display_this_text.to_s
|
|
540
|
+
)
|
|
541
|
+
# ======================================================================= #
|
|
542
|
+
# === :search_entry
|
|
543
|
+
#
|
|
544
|
+
# This is specifically for a search-entry.
|
|
545
|
+
# ======================================================================= #
|
|
546
|
+
when :search_entry
|
|
547
|
+
LibUI.entry_set_text(
|
|
548
|
+
this_widget,
|
|
549
|
+
display_this_text.to_s
|
|
550
|
+
)
|
|
551
|
+
else
|
|
552
|
+
puts 'Unhandled case in set_text(): '+
|
|
553
|
+
type.to_s
|
|
554
|
+
end
|
|
555
|
+
end; alias set_content set_text # === set_content
|
|
556
|
+
|
|
557
|
+
# ========================================================================= #
|
|
558
|
+
# === group_maximal
|
|
559
|
+
# ========================================================================= #
|
|
560
|
+
def group_maximal(*i)
|
|
561
|
+
i.flatten.each {|entry|
|
|
562
|
+
maximal(entry)
|
|
563
|
+
}
|
|
564
|
+
end
|
|
565
|
+
|
|
566
|
+
# ========================================================================= #
|
|
567
|
+
# === maximal
|
|
568
|
+
# ========================================================================= #
|
|
569
|
+
def maximal(this_widget, optional_padding = 1)
|
|
570
|
+
add(this_widget, optional_padding)
|
|
571
|
+
end
|
|
572
|
+
|
|
573
|
+
# ========================================================================= #
|
|
574
|
+
# === minimal
|
|
575
|
+
# ========================================================================= #
|
|
576
|
+
def minimal(
|
|
577
|
+
this_widget,
|
|
578
|
+
optional_padding = 0
|
|
579
|
+
)
|
|
580
|
+
add(this_widget, optional_padding)
|
|
581
|
+
end
|
|
582
|
+
|
|
583
|
+
# ========================================================================= #
|
|
584
|
+
# === set_value
|
|
585
|
+
#
|
|
586
|
+
# This method has initially been created to assign a value to a
|
|
587
|
+
# spinbutton. That way the following API is made possible:
|
|
588
|
+
#
|
|
589
|
+
# spinbutton.set_value(42)
|
|
590
|
+
#
|
|
591
|
+
# ========================================================================= #
|
|
592
|
+
def set_value(
|
|
593
|
+
new_value
|
|
594
|
+
)
|
|
595
|
+
object_id = self.object_id
|
|
596
|
+
hash = hash_fiddle_pointer_widgets?
|
|
597
|
+
this_widget = hash[object_id].first
|
|
598
|
+
type = hash[object_id].last
|
|
599
|
+
case type
|
|
600
|
+
# ======================================================================= #
|
|
601
|
+
# === :new_progress_bar
|
|
602
|
+
#
|
|
603
|
+
# This is actually a progress-bar.
|
|
604
|
+
# ======================================================================= #
|
|
605
|
+
when :new_progress_bar,
|
|
606
|
+
:progress_bar
|
|
607
|
+
::LibUI.progress_bar_set_value(this_widget, new_value.to_i)
|
|
608
|
+
# ======================================================================= #
|
|
609
|
+
# === :spinbox
|
|
610
|
+
# ======================================================================= #
|
|
611
|
+
when :spinbox
|
|
612
|
+
::LibUI.spinbox_set_value(
|
|
613
|
+
this_widget,
|
|
614
|
+
new_value.to_i # Must be an Integer.
|
|
615
|
+
)
|
|
616
|
+
else
|
|
617
|
+
e 'Not registered type: '+type.to_s
|
|
618
|
+
end
|
|
619
|
+
end; alias value= set_value # === value=
|
|
620
|
+
alias start_position= set_value # === start_position=
|
|
562
621
|
|
|
563
622
|
# ========================================================================= #
|
|
564
|
-
# ===
|
|
623
|
+
# === append_this_array
|
|
624
|
+
#
|
|
625
|
+
# This method only works for comboboxes.
|
|
565
626
|
# ========================================================================= #
|
|
566
|
-
def
|
|
567
|
-
current_widget = available_pointers?[self.object_id] # This will be an Array.
|
|
568
|
-
)
|
|
569
|
-
_pointer = current_widget.first # Not used currently in this method.
|
|
570
|
-
type = current_widget.last
|
|
571
|
-
|
|
627
|
+
def append_this_array(array)
|
|
572
628
|
object_id = self.object_id
|
|
573
|
-
hash =
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
end
|
|
629
|
+
hash = hash_fiddle_pointer_widgets?
|
|
630
|
+
_this_widget = hash[object_id].first # This variable is currently not in use.
|
|
631
|
+
type = hash[object_id].last
|
|
577
632
|
case type
|
|
578
633
|
# ======================================================================= #
|
|
579
634
|
# === :combobox
|
|
580
|
-
#
|
|
581
|
-
# This currently does not work; it depends on libui-ng, which has not
|
|
582
|
-
# yet been added completely.
|
|
583
635
|
# ======================================================================= #
|
|
584
636
|
when :combobox
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
else
|
|
590
|
-
puts 'Unhandled case in clear(): '+
|
|
591
|
-
type.to_s
|
|
637
|
+
array.each {|this_entry|
|
|
638
|
+
LibUI.combobox_append(self, this_entry)
|
|
639
|
+
}
|
|
640
|
+
LibUI.combobox_set_selected(self, 0) # The first one will be active too.
|
|
592
641
|
end
|
|
593
642
|
end
|
|
594
643
|
|
|
@@ -599,7 +648,7 @@ class Pointer # === Fiddle::Pointer
|
|
|
599
648
|
type = nil
|
|
600
649
|
)
|
|
601
650
|
object_id = self.object_id
|
|
602
|
-
hash =
|
|
651
|
+
hash = hash_fiddle_pointer_widgets?
|
|
603
652
|
if type.nil?
|
|
604
653
|
# ===================================================================== #
|
|
605
654
|
# In this case we must determine the type in use.
|
|
@@ -619,66 +668,17 @@ class Pointer # === Fiddle::Pointer
|
|
|
619
668
|
end
|
|
620
669
|
end
|
|
621
670
|
|
|
622
|
-
# ========================================================================= #
|
|
623
|
-
# === is_read_only
|
|
624
|
-
# ========================================================================= #
|
|
625
|
-
def is_read_only(
|
|
626
|
-
current_widget = available_pointers?[self.object_id] # This will be an Array.
|
|
627
|
-
)
|
|
628
|
-
_pointer = current_widget.first # Not used currently in this method.
|
|
629
|
-
type = current_widget.last
|
|
630
|
-
case type
|
|
631
|
-
# ======================================================================= #
|
|
632
|
-
# === :multiline_entry
|
|
633
|
-
# ======================================================================= #
|
|
634
|
-
when :multiline_entry
|
|
635
|
-
LibUI.multiline_entry_set_read_only(self, 1)
|
|
636
|
-
else
|
|
637
|
-
pp caller()
|
|
638
|
-
puts "#{type} (class #{type.class}) is not yet implemented in .padded=."
|
|
639
|
-
end
|
|
640
|
-
end
|
|
641
|
-
|
|
642
|
-
# ========================================================================= #
|
|
643
|
-
# === append_this_string
|
|
644
|
-
#
|
|
645
|
-
# This method can be used to append a String to an existing String.
|
|
646
|
-
# ========================================================================= #
|
|
647
|
-
def append_this_string(i)
|
|
648
|
-
::LibUI.attributed_string_append_unattributed(self, i)
|
|
649
|
-
end
|
|
650
|
-
|
|
651
|
-
# ========================================================================= #
|
|
652
|
-
# === append_text_column
|
|
653
|
-
#
|
|
654
|
-
# This method is specifically used for libui-tables.
|
|
655
|
-
# ========================================================================= #
|
|
656
|
-
def append_text_column(text, a, b)
|
|
657
|
-
object_id = self.object_id
|
|
658
|
-
hash = LibuiParadise::Extensions.hash_fiddle_pointer_widgets?
|
|
659
|
-
type = hash[object_id].last # The last entry contains the type.
|
|
660
|
-
case type
|
|
661
|
-
# ======================================================================= #
|
|
662
|
-
# === :button
|
|
663
|
-
# ======================================================================= #
|
|
664
|
-
when :table
|
|
665
|
-
LibUI.table_append_text_column(self, text, a, b)
|
|
666
|
-
else
|
|
667
|
-
e 'Not registered type in .append_text_column(): '+type.to_s
|
|
668
|
-
end
|
|
669
|
-
end
|
|
670
|
-
|
|
671
671
|
# ========================================================================= #
|
|
672
672
|
# === padded=
|
|
673
673
|
#
|
|
674
674
|
# Set a uniform padding via this method.
|
|
675
675
|
# ========================================================================= #
|
|
676
676
|
def padded=(
|
|
677
|
-
pad_n_px = 25,
|
|
677
|
+
pad_n_px = 25, # How much to pad in n px. LibUI currently does not allow for that, though.
|
|
678
678
|
type = nil
|
|
679
679
|
)
|
|
680
680
|
object_id = self.object_id
|
|
681
|
-
hash =
|
|
681
|
+
hash = hash_fiddle_pointer_widgets?
|
|
682
682
|
if type.nil?
|
|
683
683
|
# ===================================================================== #
|
|
684
684
|
# In this case we must determine the type in use.
|
|
@@ -689,6 +689,11 @@ class Pointer # === Fiddle::Pointer
|
|
|
689
689
|
end
|
|
690
690
|
case type
|
|
691
691
|
# ======================================================================= #
|
|
692
|
+
# === :window
|
|
693
|
+
# ======================================================================= #
|
|
694
|
+
when :window
|
|
695
|
+
LibUI.window_set_margined(self, 1)
|
|
696
|
+
# ======================================================================= #
|
|
692
697
|
# === :grid
|
|
693
698
|
# ======================================================================= #
|
|
694
699
|
when :grid
|
|
@@ -719,139 +724,8 @@ class Pointer # === Fiddle::Pointer
|
|
|
719
724
|
pp caller()
|
|
720
725
|
puts "#{type} (class #{type.class}) is not yet implemented in .padded=."
|
|
721
726
|
end
|
|
722
|
-
end; alias set_padded
|
|
723
|
-
|
|
724
|
-
# ========================================================================= #
|
|
725
|
-
# === disable (disable tag)
|
|
726
|
-
# ========================================================================= #
|
|
727
|
-
def disable(&block)
|
|
728
|
-
object_id = self.object_id
|
|
729
|
-
hash = LibuiParadise::Extensions.hash_fiddle_pointer_widgets?
|
|
730
|
-
type = hash[object_id].last # The last entry contains the type.
|
|
731
|
-
case type
|
|
732
|
-
# ======================================================================= #
|
|
733
|
-
# === :button
|
|
734
|
-
# ======================================================================= #
|
|
735
|
-
when :button
|
|
736
|
-
LibUI.control_disable(self)
|
|
737
|
-
else
|
|
738
|
-
e 'Not registered type in .disable(): '+type.to_s
|
|
739
|
-
end
|
|
740
|
-
end
|
|
741
|
-
|
|
742
|
-
# ========================================================================= #
|
|
743
|
-
# === enable (enable tag)
|
|
744
|
-
# ========================================================================= #
|
|
745
|
-
def enable(&block)
|
|
746
|
-
object_id = self.object_id
|
|
747
|
-
hash = LibuiParadise::Extensions.hash_fiddle_pointer_widgets?
|
|
748
|
-
type = hash[object_id].last # The last entry contains the type.
|
|
749
|
-
case type
|
|
750
|
-
# ======================================================================= #
|
|
751
|
-
# === :button
|
|
752
|
-
# ======================================================================= #
|
|
753
|
-
when :button
|
|
754
|
-
LibUI.control_enable(self)
|
|
755
|
-
else
|
|
756
|
-
e 'Not registered type in .enable(): '+type.to_s
|
|
757
|
-
end
|
|
758
|
-
end
|
|
759
|
-
|
|
760
|
-
# ========================================================================= #
|
|
761
|
-
# === populate
|
|
762
|
-
# ========================================================================= #
|
|
763
|
-
def populate(dataset)
|
|
764
|
-
object_id = self.object_id
|
|
765
|
-
hash = LibuiParadise::Extensions.hash_fiddle_pointer_widgets?
|
|
766
|
-
type = hash[object_id].last
|
|
767
|
-
case type
|
|
768
|
-
# ======================================================================= #
|
|
769
|
-
# === :combobox
|
|
770
|
-
# ======================================================================= #
|
|
771
|
-
when :combobox
|
|
772
|
-
self.append_this_array(dataset)
|
|
773
|
-
end
|
|
774
|
-
end
|
|
775
|
-
|
|
776
|
-
# ========================================================================= #
|
|
777
|
-
# === is_padded
|
|
778
|
-
# ========================================================================= #
|
|
779
|
-
def is_padded
|
|
780
|
-
set_padded(1)
|
|
781
|
-
end
|
|
782
|
-
|
|
783
|
-
# ========================================================================= #
|
|
784
|
-
# === show_then_main_then_quit
|
|
785
|
-
#
|
|
786
|
-
# This method ultimately combines three other method calls.
|
|
787
|
-
# ========================================================================= #
|
|
788
|
-
def show_then_main_then_quit
|
|
789
|
-
LibUI.control_show(self)
|
|
790
|
-
main_then_quit
|
|
791
|
-
end; alias elegant_exit show_then_main_then_quit # === elegant_exit
|
|
792
|
-
alias complex_finalizer show_then_main_then_quit # === complex_finalizer
|
|
793
|
-
alias intelligent_close_down show_then_main_then_quit # === intelligent_close_down
|
|
794
|
-
alias intelligent_quit show_then_main_then_quit # === intelligent_quit
|
|
795
|
-
alias intelligent_exit show_then_main_then_quit # === intelligent_exit
|
|
796
|
-
|
|
797
|
-
# ========================================================================= #
|
|
798
|
-
# === on_clicked
|
|
799
|
-
#
|
|
800
|
-
# This method is in general called on a button-widget.
|
|
801
|
-
# ========================================================================= #
|
|
802
|
-
def on_clicked(&block)
|
|
803
|
-
LibUI.button_on_clicked(self, &block)
|
|
804
|
-
end; alias on_click_event on_clicked # === on_click_event
|
|
805
|
-
|
|
806
|
-
# ========================================================================= #
|
|
807
|
-
# === available_pointers?
|
|
808
|
-
# ========================================================================= #
|
|
809
|
-
def available_pointers?
|
|
810
|
-
LibuiParadise::Extensions.hash_fiddle_pointer_widgets?
|
|
811
|
-
end; alias main_hash? available_pointers? # === main_hash?
|
|
812
|
-
|
|
813
|
-
# ========================================================================= #
|
|
814
|
-
# === append_this_array
|
|
815
|
-
# ========================================================================= #
|
|
816
|
-
def append_this_array(array)
|
|
817
|
-
object_id = self.object_id
|
|
818
|
-
hash = LibuiParadise::Extensions.hash_fiddle_pointer_widgets?
|
|
819
|
-
_this_widget = hash[object_id].first # This variable is currently not in use.
|
|
820
|
-
type = hash[object_id].last
|
|
821
|
-
case type
|
|
822
|
-
# ======================================================================= #
|
|
823
|
-
# === :combobox
|
|
824
|
-
# ======================================================================= #
|
|
825
|
-
when :combobox
|
|
826
|
-
array.each {|this_entry|
|
|
827
|
-
LibUI.combobox_append(self, this_entry)
|
|
828
|
-
}
|
|
829
|
-
LibUI.combobox_set_selected(self, 0) # The first one will be active too.
|
|
830
|
-
end
|
|
831
|
-
end
|
|
832
|
-
|
|
833
|
-
# ========================================================================= #
|
|
834
|
-
# === maximal
|
|
835
|
-
# ========================================================================= #
|
|
836
|
-
def maximal(this_widget, optional_padding = 1)
|
|
837
|
-
add(this_widget, optional_padding)
|
|
838
|
-
end
|
|
839
|
-
|
|
840
|
-
# ========================================================================= #
|
|
841
|
-
# === group_maximal
|
|
842
|
-
# ========================================================================= #
|
|
843
|
-
def group_maximal(*i)
|
|
844
|
-
i.flatten.each {|entry|
|
|
845
|
-
maximal(entry)
|
|
846
|
-
}
|
|
847
|
-
end
|
|
848
|
-
|
|
849
|
-
# ========================================================================= #
|
|
850
|
-
# === minimal
|
|
851
|
-
# ========================================================================= #
|
|
852
|
-
def minimal(this_widget, optional_padding = 0)
|
|
853
|
-
add(this_widget, optional_padding)
|
|
854
|
-
end
|
|
727
|
+
end; alias set_padded padded= # === set_padded
|
|
728
|
+
alias set_padding padded= # === set_padding
|
|
855
729
|
|
|
856
730
|
# ========================================================================= #
|
|
857
731
|
# === text
|
|
@@ -872,7 +746,7 @@ class Pointer # === Fiddle::Pointer
|
|
|
872
746
|
)
|
|
873
747
|
i = i.to_s # Let's ensure we have a String past this point.
|
|
874
748
|
object_id = self.object_id
|
|
875
|
-
hash =
|
|
749
|
+
hash = hash_fiddle_pointer_widgets?
|
|
876
750
|
_this_widget = hash[object_id].first # This variable is currently not in use.
|
|
877
751
|
type = hash[object_id].last
|
|
878
752
|
case type
|
|
@@ -886,18 +760,6 @@ class Pointer # === Fiddle::Pointer
|
|
|
886
760
|
end
|
|
887
761
|
end; alias add_text text # === text
|
|
888
762
|
|
|
889
|
-
# ========================================================================= #
|
|
890
|
-
# === add_hsep
|
|
891
|
-
#
|
|
892
|
-
# This method adds a horizontal separator.
|
|
893
|
-
# ========================================================================= #
|
|
894
|
-
def add_hsep
|
|
895
|
-
object_id = self.object_id
|
|
896
|
-
hash = LibuiParadise::Extensions.hash_fiddle_pointer_widgets?
|
|
897
|
-
this_widget = hash[object_id].first
|
|
898
|
-
this_widget.add(::LibuiParadise::Extensions.horizontal_separator, 0)
|
|
899
|
-
end; alias add_horizontal_separator add_hsep # === add_horizontal_separator
|
|
900
|
-
|
|
901
763
|
# ========================================================================= #
|
|
902
764
|
# === active?
|
|
903
765
|
# ========================================================================= #
|
|
@@ -910,7 +772,7 @@ class Pointer # === Fiddle::Pointer
|
|
|
910
772
|
# === :checkbox
|
|
911
773
|
# ======================================================================= #
|
|
912
774
|
when :checkbox
|
|
913
|
-
checked = (
|
|
775
|
+
checked = (::LibUI.checkbox_checked(pointer) == 1)
|
|
914
776
|
return (checked == true)
|
|
915
777
|
# ======================================================================= #
|
|
916
778
|
# === :entry
|
|
@@ -921,41 +783,114 @@ class Pointer # === Fiddle::Pointer
|
|
|
921
783
|
e 'An entry can not be "active". Check the code - there may '\
|
|
922
784
|
'an erroneous assumption if the method .active? is called.'
|
|
923
785
|
end
|
|
924
|
-
end; alias is_active? active? # === is_active?
|
|
786
|
+
end; alias is_active? active? # === is_active?
|
|
787
|
+
|
|
788
|
+
# ========================================================================= #
|
|
789
|
+
# === set_active
|
|
790
|
+
# ========================================================================= #
|
|
791
|
+
def set_active
|
|
792
|
+
current_widget = available_pointers?[self.object_id] # This will be an Array.
|
|
793
|
+
pointer = current_widget.first
|
|
794
|
+
type = current_widget.last
|
|
795
|
+
case type
|
|
796
|
+
# ======================================================================= #
|
|
797
|
+
# === :checkbox
|
|
798
|
+
# ======================================================================= #
|
|
799
|
+
when :checkbox
|
|
800
|
+
::LibUI.checkbox_set_checked(pointer, 1)
|
|
801
|
+
end
|
|
802
|
+
end; alias is_active set_active # === is_active
|
|
803
|
+
alias is_now_active set_active # === is_now_active
|
|
804
|
+
|
|
805
|
+
# ========================================================================= #
|
|
806
|
+
# === set_inactive
|
|
807
|
+
#
|
|
808
|
+
# This method currently only works for libui-checkboxes.
|
|
809
|
+
# ========================================================================= #
|
|
810
|
+
def set_inactive
|
|
811
|
+
current_widget = available_pointers?[self.object_id] # This will be an Array.
|
|
812
|
+
pointer = current_widget.first
|
|
813
|
+
type = current_widget.last
|
|
814
|
+
case type
|
|
815
|
+
# ======================================================================= #
|
|
816
|
+
# === :checkbox
|
|
817
|
+
# ======================================================================= #
|
|
818
|
+
when :checkbox
|
|
819
|
+
::LibUI.checkbox_set_checked(pointer, 0)
|
|
820
|
+
end
|
|
821
|
+
end; alias is_inactive set_inactive # === is_inactive
|
|
822
|
+
alias is_now_inactive set_inactive # === is_now_inactive
|
|
823
|
+
|
|
824
|
+
# ========================================================================= #
|
|
825
|
+
# === disable (disable tag)
|
|
826
|
+
# ========================================================================= #
|
|
827
|
+
def disable(&block)
|
|
828
|
+
object_id = self.object_id
|
|
829
|
+
hash = hash_fiddle_pointer_widgets?
|
|
830
|
+
type = hash[object_id].last # The last entry contains the type.
|
|
831
|
+
case type
|
|
832
|
+
# ======================================================================= #
|
|
833
|
+
# === :button
|
|
834
|
+
# ======================================================================= #
|
|
835
|
+
when :button
|
|
836
|
+
LibUI.control_disable(self)
|
|
837
|
+
else
|
|
838
|
+
e 'Not registered type in .disable(): '+type.to_s
|
|
839
|
+
end
|
|
840
|
+
end
|
|
925
841
|
|
|
926
842
|
# ========================================================================= #
|
|
927
|
-
# ===
|
|
843
|
+
# === enable (enable tag)
|
|
928
844
|
# ========================================================================= #
|
|
929
|
-
def
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
type
|
|
845
|
+
def enable(&block)
|
|
846
|
+
object_id = self.object_id
|
|
847
|
+
hash = hash_fiddle_pointer_widgets?
|
|
848
|
+
type = hash[object_id].last # The last entry contains the type.
|
|
933
849
|
case type
|
|
934
850
|
# ======================================================================= #
|
|
935
|
-
# === :
|
|
851
|
+
# === :button
|
|
936
852
|
# ======================================================================= #
|
|
937
|
-
when :
|
|
938
|
-
LibUI.
|
|
853
|
+
when :button
|
|
854
|
+
LibUI.control_enable(self)
|
|
855
|
+
else
|
|
856
|
+
e 'Not registered type in .enable(): '+type.to_s
|
|
939
857
|
end
|
|
940
|
-
end
|
|
941
|
-
alias is_now_active set_active # === is_now_active
|
|
858
|
+
end
|
|
942
859
|
|
|
943
860
|
# ========================================================================= #
|
|
944
|
-
# ===
|
|
861
|
+
# === is_padded
|
|
945
862
|
# ========================================================================= #
|
|
946
|
-
def
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
863
|
+
def is_padded
|
|
864
|
+
set_padded(1)
|
|
865
|
+
end
|
|
866
|
+
|
|
867
|
+
# ========================================================================= #
|
|
868
|
+
# === on_clicked
|
|
869
|
+
#
|
|
870
|
+
# This method is in general called on a button-widget. It allows us
|
|
871
|
+
# to simulate the action associated with clicking on a button.
|
|
872
|
+
# ========================================================================= #
|
|
873
|
+
def on_clicked(&block)
|
|
874
|
+
::LibUI.button_on_clicked(self, &block)
|
|
875
|
+
end; alias on_click_event on_clicked # === on_click_event
|
|
876
|
+
|
|
877
|
+
# ========================================================================= #
|
|
878
|
+
# === populate
|
|
879
|
+
#
|
|
880
|
+
# This method will (try to) populate a combobox in LibUI.
|
|
881
|
+
# ========================================================================= #
|
|
882
|
+
def populate(dataset)
|
|
883
|
+
object_id = self.object_id
|
|
884
|
+
hash = hash_fiddle_pointer_widgets?
|
|
885
|
+
type = hash[object_id].last
|
|
950
886
|
case type
|
|
951
887
|
# ======================================================================= #
|
|
952
|
-
# === :
|
|
888
|
+
# === :combobox
|
|
953
889
|
# ======================================================================= #
|
|
954
|
-
when :
|
|
955
|
-
|
|
890
|
+
when :combobox
|
|
891
|
+
self.append_this_array(dataset)
|
|
956
892
|
end
|
|
957
|
-
end
|
|
958
|
-
alias is_now_inactive set_inactive # === is_now_inactive
|
|
893
|
+
end
|
|
959
894
|
|
|
960
895
|
# ========================================================================= #
|
|
961
896
|
# === child
|
|
@@ -971,7 +906,7 @@ class Pointer # === Fiddle::Pointer
|
|
|
971
906
|
# === show_the_controls
|
|
972
907
|
# ========================================================================= #
|
|
973
908
|
def show_the_controls
|
|
974
|
-
LibUI.control_show(self)
|
|
909
|
+
::LibUI.control_show(self)
|
|
975
910
|
end; alias control_show show_the_controls # === control_show
|
|
976
911
|
|
|
977
912
|
# ========================================================================= #
|
|
@@ -980,7 +915,7 @@ class Pointer # === Fiddle::Pointer
|
|
|
980
915
|
# For now this only works on @main_window.
|
|
981
916
|
# ========================================================================= #
|
|
982
917
|
def is_margined(
|
|
983
|
-
i = LibuiParadise
|
|
918
|
+
i = LibuiParadise.main_window?
|
|
984
919
|
)
|
|
985
920
|
id = self.object_id
|
|
986
921
|
hash = main_hash?
|
|
@@ -992,7 +927,7 @@ class Pointer # === Fiddle::Pointer
|
|
|
992
927
|
# === :window
|
|
993
928
|
# ===================================================================== #
|
|
994
929
|
when :window
|
|
995
|
-
LibUI.window_set_margined(_.first, 1)
|
|
930
|
+
::LibUI.window_set_margined(_.first, 1)
|
|
996
931
|
else
|
|
997
932
|
e 'The type '+type.to_s+' in is_margined() is currently not supported.'
|
|
998
933
|
end
|
|
@@ -1009,6 +944,29 @@ class Pointer # === Fiddle::Pointer
|
|
|
1009
944
|
end; alias uses_a_margin is_margined # === uses_a_margin
|
|
1010
945
|
alias has_margin is_margined # === has_margin
|
|
1011
946
|
|
|
947
|
+
# ========================================================================= #
|
|
948
|
+
# === autotitle
|
|
949
|
+
# ========================================================================= #
|
|
950
|
+
def autotitle(
|
|
951
|
+
i = title?
|
|
952
|
+
)
|
|
953
|
+
if i and respond_to?(:set_title)
|
|
954
|
+
set_title(i)
|
|
955
|
+
end
|
|
956
|
+
end
|
|
957
|
+
|
|
958
|
+
# ========================================================================= #
|
|
959
|
+
# === add_hsep
|
|
960
|
+
#
|
|
961
|
+
# This method adds a horizontal separator.
|
|
962
|
+
# ========================================================================= #
|
|
963
|
+
def add_hsep
|
|
964
|
+
object_id = self.object_id
|
|
965
|
+
hash = hash_fiddle_pointer_widgets?
|
|
966
|
+
this_widget = hash[object_id].first
|
|
967
|
+
this_widget.add(::LibuiParadise.horizontal_separator, 0)
|
|
968
|
+
end; alias add_horizontal_separator add_hsep # === add_horizontal_separator
|
|
969
|
+
|
|
1012
970
|
# ========================================================================= #
|
|
1013
971
|
# === main_then_quit
|
|
1014
972
|
#
|
|
@@ -1017,6 +975,7 @@ class Pointer # === Fiddle::Pointer
|
|
|
1017
975
|
def main_then_quit
|
|
1018
976
|
::LibUI.main
|
|
1019
977
|
::LibUI.quit
|
|
978
|
+
#::LibUI.uninit # Trying this since as of November 2023. Nope, does not work.
|
|
1020
979
|
end
|
|
1021
980
|
|
|
1022
981
|
# ========================================================================= #
|
|
@@ -1033,15 +992,183 @@ class Pointer # === Fiddle::Pointer
|
|
|
1033
992
|
}
|
|
1034
993
|
end; alias simple_exit close_properly # === simple_exit
|
|
1035
994
|
alias sane_exit close_properly # === sane_exit
|
|
1036
|
-
alias should_quit close_properly # === should_quit
|
|
1037
995
|
alias do_quit close_properly # === should_quit
|
|
996
|
+
alias should_quit close_properly # === should_quit
|
|
997
|
+
|
|
998
|
+
# ========================================================================= #
|
|
999
|
+
# === fraction=
|
|
1000
|
+
#
|
|
1001
|
+
# This method is mostly a wrapper to reach ruby-gtk3 compatibility.
|
|
1002
|
+
# ========================================================================= #
|
|
1003
|
+
def fraction=(i = '')
|
|
1004
|
+
i = i * 100
|
|
1005
|
+
set_value(i)
|
|
1006
|
+
end
|
|
1007
|
+
|
|
1008
|
+
# ========================================================================= #
|
|
1009
|
+
# === left (left tag)
|
|
1010
|
+
# ========================================================================= #
|
|
1011
|
+
def left(
|
|
1012
|
+
widget,
|
|
1013
|
+
left = LibuiParadise.counter_left?,
|
|
1014
|
+
top = LibuiParadise.counter_top?,
|
|
1015
|
+
xspan = 1,
|
|
1016
|
+
yspan = 1
|
|
1017
|
+
)
|
|
1018
|
+
object_id = self.object_id
|
|
1019
|
+
hash = hash_fiddle_pointer_widgets?
|
|
1020
|
+
type = hash[object_id].last # The last entry contains the type.
|
|
1021
|
+
case left
|
|
1022
|
+
# ======================================================================= #
|
|
1023
|
+
# === :default
|
|
1024
|
+
# ======================================================================= #
|
|
1025
|
+
when :default
|
|
1026
|
+
left = LibuiParadise.counter_left?
|
|
1027
|
+
end
|
|
1028
|
+
case top
|
|
1029
|
+
# ======================================================================= #
|
|
1030
|
+
# === :default
|
|
1031
|
+
# ======================================================================= #
|
|
1032
|
+
when :default
|
|
1033
|
+
top = LibuiParadise.counter_top?
|
|
1034
|
+
end
|
|
1035
|
+
case type
|
|
1036
|
+
# ======================================================================= #
|
|
1037
|
+
# === :vbox
|
|
1038
|
+
# ======================================================================= #
|
|
1039
|
+
when :vbox
|
|
1040
|
+
add(widget)
|
|
1041
|
+
# ======================================================================= #
|
|
1042
|
+
# === :grid
|
|
1043
|
+
# ======================================================================= #
|
|
1044
|
+
when :grid
|
|
1045
|
+
hash_grid(
|
|
1046
|
+
widget,
|
|
1047
|
+
{
|
|
1048
|
+
left: left,
|
|
1049
|
+
top: top,
|
|
1050
|
+
xspan: xspan,
|
|
1051
|
+
yspan: yspan,
|
|
1052
|
+
hexpand: 0,
|
|
1053
|
+
halign: 0,
|
|
1054
|
+
vexpand: 0,
|
|
1055
|
+
valign: 0
|
|
1056
|
+
}
|
|
1057
|
+
)
|
|
1058
|
+
LibuiParadise.counter_left += 1
|
|
1059
|
+
else
|
|
1060
|
+
end
|
|
1061
|
+
end; alias middle left # === middle
|
|
1062
|
+
|
|
1063
|
+
# ========================================================================= #
|
|
1064
|
+
# === hash_grid
|
|
1065
|
+
#
|
|
1066
|
+
# Usage example:
|
|
1067
|
+
#
|
|
1068
|
+
# hash_grid(text('Yo6'), { left: 0, top: 3, xspan: 1, yspan: 1, hexpand: 0, halign: 0, vexpand: 0, valign: 0 })
|
|
1069
|
+
#
|
|
1070
|
+
# ========================================================================= #
|
|
1071
|
+
def hash_grid(
|
|
1072
|
+
pass_this_widget,
|
|
1073
|
+
hash = {}
|
|
1074
|
+
)
|
|
1075
|
+
array_to_be_passed = []
|
|
1076
|
+
# ======================================================================= #
|
|
1077
|
+
# === :left
|
|
1078
|
+
# ======================================================================= #
|
|
1079
|
+
if hash.has_key? :left
|
|
1080
|
+
array_to_be_passed << hash[:left]
|
|
1081
|
+
else
|
|
1082
|
+
array_to_be_passed << 0
|
|
1083
|
+
end
|
|
1084
|
+
# ======================================================================= #
|
|
1085
|
+
# === :top
|
|
1086
|
+
# ======================================================================= #
|
|
1087
|
+
if hash.has_key? :top
|
|
1088
|
+
array_to_be_passed << hash[:top]
|
|
1089
|
+
else
|
|
1090
|
+
array_to_be_passed << 0
|
|
1091
|
+
end
|
|
1092
|
+
# ======================================================================= #
|
|
1093
|
+
# === :xspan
|
|
1094
|
+
# ======================================================================= #
|
|
1095
|
+
if hash.has_key? :xspan
|
|
1096
|
+
array_to_be_passed << hash[:xspan]
|
|
1097
|
+
else
|
|
1098
|
+
array_to_be_passed << 0
|
|
1099
|
+
end
|
|
1100
|
+
# ======================================================================= #
|
|
1101
|
+
# === :yspan
|
|
1102
|
+
# ======================================================================= #
|
|
1103
|
+
if hash.has_key? :yspan
|
|
1104
|
+
array_to_be_passed << hash[:yspan]
|
|
1105
|
+
else
|
|
1106
|
+
array_to_be_passed << 0
|
|
1107
|
+
end
|
|
1108
|
+
# ======================================================================= #
|
|
1109
|
+
# === :hexpand
|
|
1110
|
+
# ======================================================================= #
|
|
1111
|
+
if hash.has_key? :hexpand
|
|
1112
|
+
array_to_be_passed << hash[:hexpand]
|
|
1113
|
+
else
|
|
1114
|
+
array_to_be_passed << 0
|
|
1115
|
+
end
|
|
1116
|
+
# ======================================================================= #
|
|
1117
|
+
# === :halign
|
|
1118
|
+
# ======================================================================= #
|
|
1119
|
+
if hash.has_key? :halign
|
|
1120
|
+
array_to_be_passed << hash[:halign]
|
|
1121
|
+
else
|
|
1122
|
+
array_to_be_passed << 0
|
|
1123
|
+
end
|
|
1124
|
+
# ======================================================================= #
|
|
1125
|
+
# === :vexpand
|
|
1126
|
+
# ======================================================================= #
|
|
1127
|
+
if hash.has_key? :vexpand
|
|
1128
|
+
array_to_be_passed << hash[:vexpand]
|
|
1129
|
+
else
|
|
1130
|
+
array_to_be_passed << 0
|
|
1131
|
+
end
|
|
1132
|
+
# ======================================================================= #
|
|
1133
|
+
# === :valign
|
|
1134
|
+
# ======================================================================= #
|
|
1135
|
+
if hash.has_key? :valign
|
|
1136
|
+
array_to_be_passed << hash[:valign]
|
|
1137
|
+
else
|
|
1138
|
+
array_to_be_passed << 0
|
|
1139
|
+
end
|
|
1140
|
+
ui_grid_append(pass_this_widget, *array_to_be_passed)
|
|
1141
|
+
end; alias hash hash_grid # === hash
|
|
1142
|
+
|
|
1143
|
+
# ========================================================================= #
|
|
1144
|
+
# === append_this_string
|
|
1145
|
+
#
|
|
1146
|
+
# This method can be used to append a String to an existing String.
|
|
1147
|
+
# ========================================================================= #
|
|
1148
|
+
def append_this_string(i)
|
|
1149
|
+
::LibUI.attributed_string_append_unattributed(self, i)
|
|
1150
|
+
end
|
|
1151
|
+
|
|
1152
|
+
# ========================================================================= #
|
|
1153
|
+
# === on_key_press_event
|
|
1154
|
+
# ========================================================================= #
|
|
1155
|
+
def on_key_press_event(&block)
|
|
1156
|
+
# e 'NOT YET IMPLEMENTED.'
|
|
1157
|
+
end
|
|
1158
|
+
|
|
1159
|
+
# ========================================================================= #
|
|
1160
|
+
# === on_button_press_event
|
|
1161
|
+
# ========================================================================= #
|
|
1162
|
+
def on_button_press_event(&block)
|
|
1163
|
+
# e 'NOT YET IMPLEMENTED'
|
|
1164
|
+
end
|
|
1038
1165
|
|
|
1039
1166
|
# ========================================================================= #
|
|
1040
|
-
# === Skeleton methods
|
|
1167
|
+
# === Skeleton methods
|
|
1041
1168
|
#
|
|
1042
|
-
# A "skeleton" method is one that doesn't do anything right now.
|
|
1043
|
-
# were added to increase compatibility with the gtk_paradise
|
|
1044
|
-
# particular.
|
|
1169
|
+
# A "skeleton" method is one that doesn't do anything right now.
|
|
1170
|
+
# These were added to increase compatibility with the gtk_paradise
|
|
1171
|
+
# gem in particular.
|
|
1045
1172
|
#
|
|
1046
1173
|
# Some of these skeleton methods may become real methods one day,
|
|
1047
1174
|
# depending on how sophisticated the libui code will be - but
|
|
@@ -1071,13 +1198,13 @@ class Pointer # === Fiddle::Pointer
|
|
|
1071
1198
|
def reset_the_internal_variables; end
|
|
1072
1199
|
def editable=(true_or_false = false); end
|
|
1073
1200
|
def set_max_length(n = 100); end
|
|
1074
|
-
def use_gtk_paradise_project_css_file; end
|
|
1075
1201
|
def append_project_CSS_file; end
|
|
1076
1202
|
def infer_the_size_automatically; end
|
|
1077
1203
|
def set_column_spacing(i = 1); end
|
|
1078
1204
|
def set_row_spacing(i = 1); end
|
|
1079
1205
|
def css_class(i = ''); end
|
|
1080
1206
|
def set_border_width(i = 2); end
|
|
1207
|
+
alias set_border_size set_border_width
|
|
1081
1208
|
def set_colour(i = 'blue'); end
|
|
1082
1209
|
def make_bold; end
|
|
1083
1210
|
def set_name(i = ''); end
|
|
@@ -1092,6 +1219,7 @@ class Pointer # === Fiddle::Pointer
|
|
|
1092
1219
|
def lightgreen; end
|
|
1093
1220
|
def set_background_colour(i = ''); end
|
|
1094
1221
|
def set_size_request(a = 42, b = 42); end
|
|
1222
|
+
def set_size(a = 42, b = 42); end
|
|
1095
1223
|
def the_first_entry_is_active; end
|
|
1096
1224
|
def clear_old_datapoints; end
|
|
1097
1225
|
def width_height(a = 500, b = 500); end
|
|
@@ -1103,6 +1231,7 @@ class Pointer # === Fiddle::Pointer
|
|
|
1103
1231
|
def enable_free_form_css; end
|
|
1104
1232
|
def show_all; end # This one here may become a real method one day, but right now I don't know how to enable that.
|
|
1105
1233
|
def align_to_the_left; end
|
|
1234
|
+
def align_to_the_right; end
|
|
1106
1235
|
def yellowish_background; end
|
|
1107
1236
|
def on_enter; end
|
|
1108
1237
|
def on_value_changed; end
|
|
@@ -1123,7 +1252,9 @@ class Pointer # === Fiddle::Pointer
|
|
|
1123
1252
|
def font=(i = ''); end
|
|
1124
1253
|
def set_activates_default(i = true); end
|
|
1125
1254
|
def enable_events; end
|
|
1255
|
+
def enable_all_events; end
|
|
1126
1256
|
def do_focus; end
|
|
1257
|
+
def set_homogeneous(i = true); end
|
|
1127
1258
|
def border(i = '', *a); end
|
|
1128
1259
|
def fancy_hint(i = ''); end
|
|
1129
1260
|
def fancy_hints(i = ''); end
|
|
@@ -1135,24 +1266,46 @@ class Pointer # === Fiddle::Pointer
|
|
|
1135
1266
|
def spacing1=(i = 2); end
|
|
1136
1267
|
def spacing2=(i = 2); end
|
|
1137
1268
|
def spacing=(i = 0); end
|
|
1269
|
+
def light_blue_background; end
|
|
1270
|
+
def hover(i = :hack_26) # Currently not in use.
|
|
1271
|
+
end
|
|
1272
|
+
def set_font_size(i = :hack_26) # Currently not in use.
|
|
1273
|
+
end
|
|
1274
|
+
def maximize # This should maximize the window. It does not yet work.
|
|
1275
|
+
end
|
|
1276
|
+
def use_gtk_paradise_project_css_file; end
|
|
1277
|
+
def on_hover_colour(i = '', &block); end
|
|
1138
1278
|
def deselect; end
|
|
1139
1279
|
# def fraction=(i = ''); end
|
|
1140
1280
|
def return_all_entries
|
|
1141
1281
|
[]
|
|
1142
1282
|
end
|
|
1143
|
-
|
|
1283
|
+
def drag_via_left_to_right(a, b)
|
|
1284
|
+
vbox(a, b)
|
|
1285
|
+
end
|
|
1286
|
+
def default_styling(i = '')
|
|
1287
|
+
end
|
|
1144
1288
|
# ========================================================================= #
|
|
1145
|
-
# ===
|
|
1289
|
+
# === This is currently not in use.
|
|
1146
1290
|
# ========================================================================= #
|
|
1147
|
-
def
|
|
1148
|
-
# e 'NOT YET IMPLEMENTED.'
|
|
1291
|
+
def padding=(i = 8)
|
|
1149
1292
|
end
|
|
1150
1293
|
|
|
1151
1294
|
# ========================================================================= #
|
|
1152
|
-
# ===
|
|
1295
|
+
# === uniform_spacing
|
|
1153
1296
|
# ========================================================================= #
|
|
1154
|
-
def
|
|
1155
|
-
# e 'NOT YET IMPLEMENTED'
|
|
1297
|
+
def uniform_spacing(i = 8)
|
|
1156
1298
|
end
|
|
1157
1299
|
|
|
1300
|
+
def disable_user_input; end
|
|
1301
|
+
def disallow_resizing
|
|
1302
|
+
end
|
|
1303
|
+
def on_enter_key_pressed(&block)
|
|
1304
|
+
end
|
|
1305
|
+
def use_this_font(i = '')
|
|
1306
|
+
end
|
|
1307
|
+
def set_default_size(a = 680, b = 560)
|
|
1308
|
+
end
|
|
1309
|
+
def top_left
|
|
1310
|
+
end
|
|
1158
1311
|
end; end
|