libui_paradise 0.2.49 → 0.3.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +241 -116
- data/bin/libui_message +7 -0
- data/doc/README.gen +191 -56
- data/doc/SNIPPETS.md +1 -30
- data/doc/todo/todo.md +13 -8
- data/lib/libui_paradise/base/base.rb +64 -25
- data/lib/libui_paradise/colours/colours.rb +12 -0
- data/lib/libui_paradise/examples/complex/003_open_file_button_example.rb +2 -4
- data/lib/libui_paradise/examples/complex/010_table_example.rb +143 -49
- data/lib/libui_paradise/examples/simple/003_fancy_text_example.rb +18 -9
- data/lib/libui_paradise/examples/simple/005_text_drawing_example.rb +8 -8
- data/lib/libui_paradise/examples/simple/007_control_gallery.rb +19 -13
- 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/extensions/extensions.rb +961 -11
- data/lib/libui_paradise/extensions/toplevel_counters.rb +58 -0
- data/lib/libui_paradise/fiddle/{pointer.rb → fiddle.rb} +162 -144
- 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/box.rb +3 -2
- data/lib/libui_paradise/libui_classes/grid.rb +4 -1
- data/lib/libui_paradise/libui_classes/libui_classes.rb +113 -78
- data/lib/libui_paradise/project/project.rb +5 -1
- data/lib/libui_paradise/prototype/prototype.rb +1 -3
- data/lib/libui_paradise/requires/require_the_libui_paradise_project.rb +1 -1
- data/lib/libui_paradise/version/version.rb +2 -2
- data/lib/libui_paradise.rb +0 -0
- data/libui_paradise.gemspec +5 -4
- metadata +18 -27
- data/lib/libui_paradise/extensions/counters.rb +0 -58
- 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/toplevel_methods/misc.rb +0 -13
@@ -11,6 +11,13 @@ module Extensions # === LibuiParadise::Extensions
|
|
11
11
|
require 'libui_paradise/libui_classes/box.rb'
|
12
12
|
require 'libui_paradise/libui_classes/grid.rb'
|
13
13
|
|
14
|
+
# ========================================================================= #
|
15
|
+
# === grid
|
16
|
+
# ========================================================================= #
|
17
|
+
def grid
|
18
|
+
::LibUI.new_grid
|
19
|
+
end
|
20
|
+
|
14
21
|
# ========================================================================= #
|
15
22
|
# === button (button tag)
|
16
23
|
#
|
@@ -23,8 +30,38 @@ module Extensions # === LibuiParadise::Extensions
|
|
23
30
|
if text.start_with? '_'
|
24
31
|
text[0,1] = '' # Right now we do not support accelerators.
|
25
32
|
end
|
26
|
-
::LibuiParadise::Extensions.button(text)
|
27
|
-
end; alias ui_button
|
33
|
+
return ::LibuiParadise::Extensions.button(text)
|
34
|
+
end; alias ui_button button # === ui_button
|
35
|
+
alias create_button button # === create_button
|
36
|
+
|
37
|
+
# ========================================================================= #
|
38
|
+
# === LibuiParadise::Extensions.tab
|
39
|
+
#
|
40
|
+
# This could be also called "notebook_tab" - see the alias on the
|
41
|
+
# bottom.
|
42
|
+
# ========================================================================= #
|
43
|
+
def self.tab
|
44
|
+
_ = ::LibUI.new_tab # Create a new notebook-tab here.
|
45
|
+
add_to_the_registered_widgets(_, __method__)
|
46
|
+
return _
|
47
|
+
end; self.instance_eval { alias ui_tab tab } # === LibuiParadise::Extensions.ui_tab
|
48
|
+
self.instance_eval { alias ui_tabs tab } # === LibuiParadise::Extensions.ui_tabs
|
49
|
+
self.instance_eval { alias notebook tab } # === LibuiParadise::Extensions.notebook
|
50
|
+
self.instance_eval { alias ui_notebook tab } # === LibuiParadise::Extensions.ui_notebook
|
51
|
+
self.instance_eval { alias notebook_tab tab } # === LibuiParadise::Extensions.notebook_tab
|
52
|
+
|
53
|
+
# ========================================================================= #
|
54
|
+
# === tab
|
55
|
+
#
|
56
|
+
# This could be also called "notebook_tab".
|
57
|
+
# ========================================================================= #
|
58
|
+
def tab
|
59
|
+
::LibuiParadise::Extensions.tab
|
60
|
+
end; alias ui_tab tab # === ui_tab
|
61
|
+
alias ui_tabs tab # === ui_tabs
|
62
|
+
alias notebook tab # === notebook
|
63
|
+
alias ui_notebook tab # === ui_notebook
|
64
|
+
alias notebook_tab tab # === notebook_tab
|
28
65
|
|
29
66
|
# ========================================================================= #
|
30
67
|
# === LibuiParadise::Extensions.msg_box
|
@@ -91,11 +128,16 @@ module Extensions # === LibuiParadise::Extensions
|
|
91
128
|
case main_window
|
92
129
|
# ======================================================================= #
|
93
130
|
# === :default_window
|
131
|
+
#
|
132
|
+
# Note that LibuiParadise.main_window? may be nil.
|
94
133
|
# ======================================================================= #
|
95
134
|
when :default_window,
|
96
135
|
:default
|
97
136
|
main_window = ::LibuiParadise.main_window?
|
98
137
|
end
|
138
|
+
if description_to_use.is_a? Array
|
139
|
+
description_to_use = description_to_use.join(' ').strip
|
140
|
+
end
|
99
141
|
_ = ::LibUI.msg_box(
|
100
142
|
main_window,
|
101
143
|
title_to_use,
|
@@ -228,27 +270,6 @@ module Extensions # === LibuiParadise::Extensions
|
|
228
270
|
end
|
229
271
|
end; self.instance_eval { alias ui_open_file open_file } # === LibuiParadise::Extensions.ui_open_file
|
230
272
|
|
231
|
-
# ========================================================================= #
|
232
|
-
# === ui_open_file
|
233
|
-
# ========================================================================= #
|
234
|
-
def ui_open_file(
|
235
|
-
main_window = ::LibuiParadise::Extensions.main_window?
|
236
|
-
)
|
237
|
-
return ::LibuiParadise::Extensions.open_file(main_window)
|
238
|
-
end
|
239
|
-
|
240
|
-
# ========================================================================= #
|
241
|
-
# === open_file
|
242
|
-
#
|
243
|
-
# This here creates a problem, because ::Libui.open_file is already
|
244
|
-
# defined. We'd have to use an alias to make this work.
|
245
|
-
# ========================================================================= #
|
246
|
-
# def open_file(
|
247
|
-
# main_window = LibuiParadise::Extensions.main_window?
|
248
|
-
# )
|
249
|
-
# return ::LibuiParadise::Extensions.open_file(main_window)
|
250
|
-
# end; alias ui_open_file open_file # === ui_open_file
|
251
|
-
|
252
273
|
# ========================================================================= #
|
253
274
|
# === @main_window
|
254
275
|
#
|
@@ -378,6 +399,7 @@ module Extensions # === LibuiParadise::Extensions
|
|
378
399
|
)
|
379
400
|
_ = LibuiParadise.window(the_title, width, height, has_menubar)
|
380
401
|
_.is_margined
|
402
|
+
#_.intelligent_exit # This does not work right now.
|
381
403
|
return _
|
382
404
|
end; alias ui_margined_window ui_margined_main_window # === ui_margined_window
|
383
405
|
alias ui_padded_main_window ui_margined_main_window # === ui_padded_main_window
|
@@ -738,24 +760,6 @@ module Extensions # === LibuiParadise::Extensions
|
|
738
760
|
alias spinbutton spinbox # === spinbutton
|
739
761
|
alias centered_spin_button spinbox # === centered_spin_button
|
740
762
|
|
741
|
-
# ========================================================================= #
|
742
|
-
# === LibuiParadise::Extensions.table
|
743
|
-
#
|
744
|
-
# The argument should be of type table_params.
|
745
|
-
#
|
746
|
-
# Example for this:
|
747
|
-
#
|
748
|
-
# table_params = LibUI::FFI::TableParams.malloc
|
749
|
-
# table_params.Model = model
|
750
|
-
# table_params.RowBackgroundColorModelColumn = -1
|
751
|
-
#
|
752
|
-
# ========================================================================= #
|
753
|
-
def self.table(i)
|
754
|
-
_ = ::LibUI.new_table(i)
|
755
|
-
LibuiParadise::Extensions.register_this_fiddle_pointer_widget(_, __method__)
|
756
|
-
return _
|
757
|
-
end; self.instance_eval { alias ui_table table } # === LibuiParadise::Extensions.ui_table
|
758
|
-
|
759
763
|
# ========================================================================= #
|
760
764
|
# === LibuiParadise::Extensions.checkbox (checkbox tag)
|
761
765
|
# ========================================================================= #
|
@@ -1031,6 +1035,24 @@ module Extensions # === LibuiParadise::Extensions
|
|
1031
1035
|
end; alias ui_scrolling_area scrolling_area # === ui_scrolling_area
|
1032
1036
|
alias ui_scrolled_window scrolling_area # === ui_scrolling_window
|
1033
1037
|
|
1038
|
+
# ========================================================================= #
|
1039
|
+
# === LibuiParadise::Extensions.table
|
1040
|
+
#
|
1041
|
+
# The argument to this method should be of type table_params.
|
1042
|
+
#
|
1043
|
+
# Example for this:
|
1044
|
+
#
|
1045
|
+
# table_params = LibUI::FFI::TableParams.malloc
|
1046
|
+
# table_params.Model = model
|
1047
|
+
# table_params.RowBackgroundColorModelColumn = -1
|
1048
|
+
#
|
1049
|
+
# ========================================================================= #
|
1050
|
+
def self.table(i)
|
1051
|
+
_ = ::LibUI.new_table(i)
|
1052
|
+
LibuiParadise::Extensions.register_this_fiddle_pointer_widget(_, __method__)
|
1053
|
+
return _
|
1054
|
+
end; self.instance_eval { alias ui_table table } # === LibuiParadise::Extensions.ui_table
|
1055
|
+
|
1034
1056
|
# ========================================================================= #
|
1035
1057
|
# === bold_button
|
1036
1058
|
#
|
@@ -1242,34 +1264,6 @@ module Extensions # === LibuiParadise::Extensions
|
|
1242
1264
|
return _
|
1243
1265
|
end; alias attributed_string fancy_text # === attributed_string
|
1244
1266
|
|
1245
|
-
# ========================================================================= #
|
1246
|
-
# === LibuiParadise::Extensions.tab
|
1247
|
-
#
|
1248
|
-
# This could be also called "notebook_tab".
|
1249
|
-
# ========================================================================= #
|
1250
|
-
def self.tab
|
1251
|
-
_ = ::LibUI.new_tab
|
1252
|
-
add_to_the_registered_widgets(_, __method__)
|
1253
|
-
return _
|
1254
|
-
end; self.instance_eval { alias ui_tab tab } # === LibuiParadise::Extensions.ui_tab
|
1255
|
-
self.instance_eval { alias ui_tabs tab } # === LibuiParadise::Extensions.ui_tabs
|
1256
|
-
self.instance_eval { alias notebook tab } # === LibuiParadise::Extensions.notebook
|
1257
|
-
self.instance_eval { alias ui_notebook tab } # === LibuiParadise::Extensions.ui_notebook
|
1258
|
-
self.instance_eval { alias notebook_tab tab } # === LibuiParadise::Extensions.notebook_tab
|
1259
|
-
|
1260
|
-
# ========================================================================= #
|
1261
|
-
# === tab
|
1262
|
-
#
|
1263
|
-
# This could be also called "notebook_tab".
|
1264
|
-
# ========================================================================= #
|
1265
|
-
def tab
|
1266
|
-
::LibuiParadise::Extensions.tab
|
1267
|
-
end; alias ui_tab tab # === ui_tab
|
1268
|
-
alias ui_tabs tab # === ui_tabs
|
1269
|
-
alias notebook tab # === notebook
|
1270
|
-
alias ui_notebook tab # === ui_notebook
|
1271
|
-
alias notebook_tab tab # === notebook_tab
|
1272
|
-
|
1273
1267
|
# ========================================================================= #
|
1274
1268
|
# === LibuiParadise::Extensions.area
|
1275
1269
|
#
|
@@ -1325,6 +1319,30 @@ module Extensions # === LibuiParadise::Extensions
|
|
1325
1319
|
Gem.win_platform?
|
1326
1320
|
end
|
1327
1321
|
|
1322
|
+
# ========================================================================= #
|
1323
|
+
# === ui_open_file
|
1324
|
+
#
|
1325
|
+
# This method can be used as a wrapper towards an "open local file"
|
1326
|
+
# functionality.
|
1327
|
+
# ========================================================================= #
|
1328
|
+
def ui_open_file(
|
1329
|
+
main_window = ::LibuiParadise::Extensions.main_window?
|
1330
|
+
)
|
1331
|
+
return ::LibuiParadise::Extensions.open_file(main_window)
|
1332
|
+
end
|
1333
|
+
|
1334
|
+
# ========================================================================= #
|
1335
|
+
# === open_file
|
1336
|
+
#
|
1337
|
+
# This here creates a problem, because ::Libui.open_file is already
|
1338
|
+
# defined. We'd have to use an alias to make this work.
|
1339
|
+
# ========================================================================= #
|
1340
|
+
# def open_file(
|
1341
|
+
# main_window = LibuiParadise::Extensions.main_window?
|
1342
|
+
# )
|
1343
|
+
# return ::LibuiParadise::Extensions.open_file(main_window)
|
1344
|
+
# end; alias ui_open_file open_file # === ui_open_file
|
1345
|
+
|
1328
1346
|
end
|
1329
1347
|
|
1330
1348
|
# =========================================================================== #
|
@@ -1400,7 +1418,8 @@ end; self.instance_eval { alias ui_table table } # === LibuiParadise.ui_table
|
|
1400
1418
|
# =========================================================================== #
|
1401
1419
|
def self.spinbox(
|
1402
1420
|
start_point = 0,
|
1403
|
-
end_point = 100
|
1421
|
+
end_point = 100,
|
1422
|
+
increment = 1 # This is currently ignored.
|
1404
1423
|
)
|
1405
1424
|
::LibuiParadise::Extensions.spinbox(start_point, end_point)
|
1406
1425
|
end; self.instance_eval { alias ui_spinbox spinbox } # === LibuiParadise.ui_spinbox
|
@@ -1590,10 +1609,33 @@ def self.entry(
|
|
1590
1609
|
::LibuiParadise::Extensions.entry(optional_text)
|
1591
1610
|
end; self.instance_eval { alias ui_entry entry } # === LibuiParadise.ui_entry
|
1592
1611
|
|
1612
|
+
# =========================================================================== #
|
1613
|
+
# === LibuiParadise.set_main_window
|
1614
|
+
# =========================================================================== #
|
1615
|
+
def self.set_main_window(i)
|
1616
|
+
::LibuiParadise::Extensions.set_main_window(i)
|
1617
|
+
end
|
1618
|
+
|
1619
|
+
# =========================================================================== #
|
1620
|
+
# === LibuiParadise.create_tab
|
1621
|
+
# =========================================================================== #
|
1622
|
+
def self.create_tab
|
1623
|
+
LibuiParadise::Extensions.tab
|
1624
|
+
end; self.instance_eval { alias tab create_tab } # === LibuiParadise.tab
|
1625
|
+
|
1626
|
+
# =========================================================================== #
|
1627
|
+
# === LibuiParadise.create_grid
|
1628
|
+
# =========================================================================== #
|
1629
|
+
def self.create_grid
|
1630
|
+
::LibUI.new_grid
|
1631
|
+
end; self.instance_eval { alias grid create_grid } # === LibuiParadise.grid
|
1632
|
+
|
1593
1633
|
# =========================================================================== #
|
1594
1634
|
# === LibuiParadise.open_file
|
1595
1635
|
#
|
1596
|
-
#
|
1636
|
+
# This method is a simple delegator towards
|
1637
|
+
# the LibuiParadise::Extensions.open_file()
|
1638
|
+
# functionality.
|
1597
1639
|
# =========================================================================== #
|
1598
1640
|
def self.open_file(
|
1599
1641
|
main_window = LibuiParadise::Extensions.main_window?
|
@@ -1601,11 +1643,4 @@ def self.open_file(
|
|
1601
1643
|
return ::LibuiParadise::Extensions.open_file(main_window)
|
1602
1644
|
end; self.instance_eval { alias ui_open_file open_file } # === LibuiParadise.ui_open_file
|
1603
1645
|
|
1604
|
-
# =========================================================================== #
|
1605
|
-
# === LibuiParadise.set_main_window
|
1606
|
-
# =========================================================================== #
|
1607
|
-
def self.set_main_window(i)
|
1608
|
-
::LibuiParadise::Extensions.set_main_window(i)
|
1609
|
-
end
|
1610
|
-
|
1611
1646
|
end
|
@@ -8,7 +8,7 @@
|
|
8
8
|
module LibuiParadise
|
9
9
|
|
10
10
|
# ========================================================================= #
|
11
|
-
# === PROJECT_BASE_DIRECTORY
|
11
|
+
# === LibuiParadise::PROJECT_BASE_DIRECTORY
|
12
12
|
# ========================================================================= #
|
13
13
|
PROJECT_BASE_DIRECTORY =
|
14
14
|
File.absolute_path("#{__dir__}/..")+'/'
|
@@ -25,4 +25,8 @@ module LibuiParadise
|
|
25
25
|
self.instance_eval { alias project_base_dir? project_base_dir? } # === LibuiParadise.project_base_dir?
|
26
26
|
self.instance_eval { alias project_base_directory? project_base_dir? } # === LibuiParadise.project_base_directory?
|
27
27
|
|
28
|
+
end
|
29
|
+
|
30
|
+
if __FILE__ == $PROGRAM_NAME
|
31
|
+
puts LibuiParadise.project_base_dir?
|
28
32
|
end
|
@@ -12,9 +12,7 @@ module LibUI
|
|
12
12
|
|
13
13
|
class Prototype # === LibuiParadise::GUI::LibUI::Prototype
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
require 'libui_paradise'
|
15
|
+
require 'libui_paradise/extensions/extensions.rb'
|
18
16
|
include LibuiParadise::Extensions
|
19
17
|
|
20
18
|
# require 'bioroebe/gui/shared_code/levensthein_distance/levensthein_distance_module.rb'
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# =========================================================================== #
|
7
7
|
require 'libui_paradise/extensions/extensions.rb' # This also pulls in another file, called pointer.rb.
|
8
8
|
require 'libui_paradise/project/project.rb'
|
9
|
-
require 'libui_paradise/toplevel_methods/misc.rb'
|
10
9
|
require 'libui_paradise/requires/require_the_libui_classes.rb'
|
10
|
+
require 'libui_paradise/colours/colours.rb'
|
11
11
|
|
12
12
|
LibuiParadise.do_require_the_libui_classes
|
@@ -7,11 +7,11 @@ module LibuiParadise
|
|
7
7
|
# ========================================================================= #
|
8
8
|
# === VERSION
|
9
9
|
# ========================================================================= #
|
10
|
-
VERSION = '0.
|
10
|
+
VERSION = '0.3.9'
|
11
11
|
|
12
12
|
# ========================================================================= #
|
13
13
|
# === LAST_UPDATE
|
14
14
|
# ========================================================================= #
|
15
|
-
LAST_UPDATE = '
|
15
|
+
LAST_UPDATE = '12.12.2023'
|
16
16
|
|
17
17
|
end
|
data/lib/libui_paradise.rb
CHANGED
File without changes
|
data/libui_paradise.gemspec
CHANGED
@@ -15,15 +15,16 @@ Gem::Specification.new { |s|
|
|
15
15
|
This project bundles together some custom bindings and code to the
|
16
16
|
official (upstream) ruby-libui interface. ruby-libui, in turn,
|
17
17
|
makes available code written in the libui project. You can find
|
18
|
-
the libui project here: https://github.com/andlabs/libui
|
19
|
-
|
20
|
-
|
18
|
+
the libui project here: https://github.com/andlabs/libui and
|
19
|
+
the ruby-libui bindings maintained by kojix2 here:
|
20
|
+
|
21
|
+
https://rubygems.org/gems/libui
|
21
22
|
|
22
23
|
For more documentation about the libui_paradise gem, please have a look
|
23
24
|
at the official homepage of this gem at rubygems.org, at its
|
24
25
|
documentation/ link on the bottom right hand side (or just use
|
25
26
|
this link directly:
|
26
|
-
https://www.rubydoc.info/gems/libui_paradise/
|
27
|
+
https://www.rubydoc.info/gems/libui_paradise/
|
27
28
|
)
|
28
29
|
|
29
30
|
EOF
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libui_paradise
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert A. Heiler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: libui
|
@@ -24,28 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
description:
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
https://rubygems.org/gems/libui
|
35
|
-
|
36
|
-
For more documentation about the libui_paradise gem, please have a look
|
37
|
-
at the official homepage of this gem at rubygems.org, at its
|
38
|
-
documentation/ link on the bottom right hand side (or just use
|
39
|
-
this link directly:
|
40
|
-
https://www.rubydoc.info/gems/libui_paradise/
|
41
|
-
)
|
42
|
-
|
27
|
+
description: "\nThis project bundles together some custom bindings and code to the\nofficial
|
28
|
+
(upstream) ruby-libui interface. ruby-libui, in turn,\nmakes available code written
|
29
|
+
in the libui project. You can find\nthe libui project here: https://github.com/andlabs/libui
|
30
|
+
and \nthe ruby-libui bindings maintained by kojix2 here:\n\n https://rubygems.org/gems/libui\n\nFor
|
31
|
+
more documentation about the libui_paradise gem, please have a look\nat the official
|
32
|
+
homepage of this gem at rubygems.org, at its\ndocumentation/ link on the bottom
|
33
|
+
right hand side (or just use\nthis link directly:\n https://www.rubydoc.info/gems/libui_paradise/\n)\n\n"
|
43
34
|
email: shevy@inbox.lt
|
44
35
|
executables: []
|
45
36
|
extensions: []
|
46
37
|
extra_rdoc_files: []
|
47
38
|
files:
|
48
39
|
- README.md
|
40
|
+
- bin/libui_message
|
49
41
|
- doc/README.gen
|
50
42
|
- doc/SNIPPETS.md
|
51
43
|
- doc/todo/todo.md
|
@@ -98,13 +90,14 @@ files:
|
|
98
90
|
- lib/libui_paradise/examples/simple/007_control_gallery.rb
|
99
91
|
- lib/libui_paradise/examples/simple/008_basic_area_example.rb
|
100
92
|
- lib/libui_paradise/examples/simple/009_spectrum.rb
|
93
|
+
- lib/libui_paradise/examples/simple/010_font_button.rb
|
94
|
+
- lib/libui_paradise/examples/simple/011_simple_notepad.rb
|
95
|
+
- lib/libui_paradise/examples/simple/012_table_example.rb
|
101
96
|
- lib/libui_paradise/examples/simple/README.md
|
102
97
|
- lib/libui_paradise/experimental/dsl.rb
|
103
|
-
- lib/libui_paradise/extensions/counters.rb
|
104
98
|
- lib/libui_paradise/extensions/extensions.rb
|
105
|
-
- lib/libui_paradise/extensions/
|
106
|
-
- lib/libui_paradise/
|
107
|
-
- lib/libui_paradise/fiddle/pointer.rb
|
99
|
+
- lib/libui_paradise/extensions/toplevel_counters.rb
|
100
|
+
- lib/libui_paradise/fiddle/fiddle.rb
|
108
101
|
- lib/libui_paradise/generic_window/README.md
|
109
102
|
- lib/libui_paradise/generic_window/generic_window.rb
|
110
103
|
- lib/libui_paradise/images/LIBUI_PARADISE_LOGO.png
|
@@ -118,7 +111,6 @@ files:
|
|
118
111
|
- lib/libui_paradise/prototype/prototype.rb
|
119
112
|
- lib/libui_paradise/requires/require_the_libui_classes.rb
|
120
113
|
- lib/libui_paradise/requires/require_the_libui_paradise_project.rb
|
121
|
-
- lib/libui_paradise/toplevel_methods/misc.rb
|
122
114
|
- lib/libui_paradise/version/version.rb
|
123
115
|
- libui_paradise.gemspec
|
124
116
|
- test/testing_generic_window.rb
|
@@ -139,18 +131,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
131
|
requirements:
|
140
132
|
- - ">="
|
141
133
|
- !ruby/object:Gem::Version
|
142
|
-
version: 3.
|
134
|
+
version: 3.4.22
|
143
135
|
requirements: []
|
144
|
-
rubygems_version: 3.
|
136
|
+
rubygems_version: 3.4.22
|
145
137
|
signing_key:
|
146
138
|
specification_version: 4
|
147
139
|
summary: 'This project bundles together some custom bindings and code to the official
|
148
140
|
(upstream) ruby-libui interface. ruby-libui, in turn, makes available code written
|
149
141
|
in the libui project. You can find the libui project here: https://github.com/andlabs/libui
|
150
|
-
and
|
142
|
+
and the ruby-libui bindings maintained by kojix2 here: https://rubygems.org/gems/libui For
|
151
143
|
more documentation about the libui_paradise gem, please have a look at the official
|
152
144
|
homepage of this gem at rubygems.org, at its documentation/ link on the bottom right
|
153
145
|
hand side (or just use this link directly: https://www.rubydoc.info/gems/libui_paradise/
|
154
146
|
)'
|
155
147
|
test_files: []
|
156
|
-
...
|
@@ -1,58 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# require 'libui_paradise/extensions/counters.rb
|
6
|
-
# =========================================================================== #
|
7
|
-
module LibuiParadise
|
8
|
-
|
9
|
-
# =========================================================================== #
|
10
|
-
# === @counter_left
|
11
|
-
# =========================================================================== #
|
12
|
-
@counter_left = 0
|
13
|
-
|
14
|
-
# =========================================================================== #
|
15
|
-
# === LibuiParadise.counter_left?
|
16
|
-
# =========================================================================== #
|
17
|
-
def self.counter_left?
|
18
|
-
@counter_left
|
19
|
-
end; self.instance_eval { alias counter_left counter_left? } # === LibuiParadise.counter_left
|
20
|
-
self.instance_eval { alias left_counter counter_left? } # === LibuiParadise.left_counter
|
21
|
-
self.instance_eval { alias left_counter? counter_left? } # === LibuiParadise.left_counter?
|
22
|
-
|
23
|
-
# =========================================================================== #
|
24
|
-
# === LibuiParadise.counter_left=
|
25
|
-
# =========================================================================== #
|
26
|
-
def self.counter_left=(i = 1)
|
27
|
-
@counter_left = i
|
28
|
-
end
|
29
|
-
|
30
|
-
# =========================================================================== #
|
31
|
-
# === @counter_top
|
32
|
-
# =========================================================================== #
|
33
|
-
@counter_top = 0
|
34
|
-
|
35
|
-
# =========================================================================== #
|
36
|
-
# === LibuiParadise.counter_top?
|
37
|
-
# =========================================================================== #
|
38
|
-
def self.counter_top?
|
39
|
-
@counter_top
|
40
|
-
end; self.instance_eval { alias counter_top counter_top? } # === LibuiParadise.counter_top
|
41
|
-
self.instance_eval { alias top_counter counter_top? } # === LibuiParadise.top_counter
|
42
|
-
self.instance_eval { alias top_counter? counter_top? } # === LibuiParadise.top_counter?
|
43
|
-
|
44
|
-
# =========================================================================== #
|
45
|
-
# === LibuiParadise.counter_top=
|
46
|
-
# =========================================================================== #
|
47
|
-
def self.counter_top=(i = 1)
|
48
|
-
@counter_top = i
|
49
|
-
end
|
50
|
-
|
51
|
-
# =========================================================================== #
|
52
|
-
# === LibuiParadise.counters?
|
53
|
-
# =========================================================================== #
|
54
|
-
def self.counters?
|
55
|
-
return [@counter_left, @counter_top]
|
56
|
-
end
|
57
|
-
|
58
|
-
end
|
@@ -1,150 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# require 'libui_paradise/extensions/hash_fiddle_pointer_widgets.rb'
|
6
|
-
# =========================================================================== #
|
7
|
-
module LibuiParadise
|
8
|
-
|
9
|
-
module Extensions # === LibuiParadise::Extensions
|
10
|
-
|
11
|
-
# ========================================================================= #
|
12
|
-
# === @hash_fiddle_pointer_widgets
|
13
|
-
#
|
14
|
-
# This hash will contain all widgets, via pointer.
|
15
|
-
# ========================================================================= #
|
16
|
-
@hash_fiddle_pointer_widgets = {}
|
17
|
-
|
18
|
-
# ========================================================================= #
|
19
|
-
# === LibuiParadise::Extensions.hash_fiddle_pointer_widgets?
|
20
|
-
# ========================================================================= #
|
21
|
-
def self.hash_fiddle_pointer_widgets?
|
22
|
-
@hash_fiddle_pointer_widgets
|
23
|
-
end
|
24
|
-
|
25
|
-
# ========================================================================= #
|
26
|
-
# === main_hash?
|
27
|
-
#
|
28
|
-
# Access the main hash defined above.
|
29
|
-
# ========================================================================= #
|
30
|
-
def main_hash?
|
31
|
-
::LibuiParadise::Extensions.hash_fiddle_pointer_widgets?
|
32
|
-
end; alias toplevel_hash? main_hash? # === toplevel_hash?
|
33
|
-
|
34
|
-
# ========================================================================= #
|
35
|
-
# === LibuiParadise::Extensions.register_this_fiddle_pointer_widget
|
36
|
-
#
|
37
|
-
# This method registers the particular widget in use.
|
38
|
-
#
|
39
|
-
# Every new_* method available via LibUI.new* that creates a new widget
|
40
|
-
# has to be registered via this method here, by calling it.
|
41
|
-
#
|
42
|
-
# That way we have a main Hash that contains lots of Fiddle::Pointers
|
43
|
-
# and we can, at a later time, modify these Fiddle::Pointer or call
|
44
|
-
# toplevel methods with these registered pointers. This will only
|
45
|
-
# work if we have registered these pointers, though, which is why
|
46
|
-
# each method that creates a new libui-widget has to make use of
|
47
|
-
# this method here.
|
48
|
-
#
|
49
|
-
# The only exception to the above rule is the main window. The
|
50
|
-
# main window is always stored in the @main_window variable instead.
|
51
|
-
#
|
52
|
-
# Perhaps it should also use the method here, but I found it simpler
|
53
|
-
# to just refer to it via @main_window or main_window?. (Note that
|
54
|
-
# in future releases of the libui_paradise gem, @main_window will
|
55
|
-
# probably be removed and integrated just like any other
|
56
|
-
# libui-widget. But this has not been done yet, so it is retained
|
57
|
-
# as-is right now.)
|
58
|
-
#
|
59
|
-
# The mandatory entries given to this method must be of the
|
60
|
-
# following format:
|
61
|
-
#
|
62
|
-
# object_id -> [:the_fiddle_pointer_widget, :the_type]
|
63
|
-
#
|
64
|
-
# In other words, a key (as an Integer), and an Array as
|
65
|
-
# its primary value.
|
66
|
-
#
|
67
|
-
# The object_id will be determined automatically, so it can
|
68
|
-
# be omitted. It is the value that is simply returned by
|
69
|
-
# calling the .object_id method, so we do not have to do
|
70
|
-
# anything else here.
|
71
|
-
#
|
72
|
-
# The very last argument of the two-member Array should be a
|
73
|
-
# symbol, such as :grid. This is automatically ensured via a
|
74
|
-
# call to __method__ which returns a Symbol. That way we can
|
75
|
-
# then call the correct method internally, once we know we
|
76
|
-
# have a :grid or any other widget.
|
77
|
-
# ========================================================================= #
|
78
|
-
def self.register_this_fiddle_pointer_widget(
|
79
|
-
the_fiddle_pointer_widget,
|
80
|
-
the_type_of_the_widget = nil
|
81
|
-
)
|
82
|
-
# ======================================================================= #
|
83
|
-
# Determine the object-id automatically next:
|
84
|
-
# ======================================================================= #
|
85
|
-
object_id_to_use = the_fiddle_pointer_widget.object_id
|
86
|
-
# ======================================================================= #
|
87
|
-
# Then, store it on the main Hash.
|
88
|
-
# ======================================================================= #
|
89
|
-
@hash_fiddle_pointer_widgets[object_id_to_use] =
|
90
|
-
[
|
91
|
-
the_fiddle_pointer_widget,
|
92
|
-
the_type_of_the_widget
|
93
|
-
]
|
94
|
-
end; self.instance_eval { alias add_to_the_registered_widgets register_this_fiddle_pointer_widget } # === LibuiParadise::Extensions.add_to_the_registered_widgets
|
95
|
-
|
96
|
-
# ========================================================================= #
|
97
|
-
# === LibuiParadise::Extensions.current_widget_pointer?
|
98
|
-
# ========================================================================= #
|
99
|
-
def self.current_widget_pointer?
|
100
|
-
LibuiParadise::Extensions.hash_fiddle_pointer_widgets?.values.last.first
|
101
|
-
end
|
102
|
-
|
103
|
-
# ========================================================================= #
|
104
|
-
# === last_pointer?
|
105
|
-
#
|
106
|
-
# This used to return the "current" widget pointer, but past September
|
107
|
-
# 2021 this is rarely in use anymore. Use current_widget_pointer?
|
108
|
-
# instead, based on the main Hash that keeps all widgets registered.
|
109
|
-
# ========================================================================= #
|
110
|
-
def last_pointer?
|
111
|
-
LibuiParadise::Extensions.current_widget_pointer?
|
112
|
-
end; alias current_pointer? last_pointer? # === current_pointer?
|
113
|
-
alias current_widget_pointer? last_pointer? # === current_widget_pointer?
|
114
|
-
|
115
|
-
# ========================================================================= #
|
116
|
-
# === current_widget_pointer_type?
|
117
|
-
# ========================================================================= #
|
118
|
-
def current_widget_pointer_type?
|
119
|
-
LibuiParadise::Extensions.hash_fiddle_pointer_widgets?.values.last.last
|
120
|
-
end
|
121
|
-
|
122
|
-
# ========================================================================= #
|
123
|
-
# === register_this_fiddle_pointer_widget
|
124
|
-
# ========================================================================= #
|
125
|
-
def register_this_fiddle_pointer_widget(
|
126
|
-
the_fiddle_pointer_widget,
|
127
|
-
the_type_of_the_widget = nil
|
128
|
-
)
|
129
|
-
::LibuiParadise::Extensions.register_this_fiddle_pointer_widget(
|
130
|
-
the_fiddle_pointer_widget,
|
131
|
-
the_type_of_the_widget
|
132
|
-
)
|
133
|
-
end; alias add_to_the_registered_widgets register_this_fiddle_pointer_widget # === add_to_the_registered_widgets
|
134
|
-
|
135
|
-
end
|
136
|
-
|
137
|
-
# ========================================================================= #
|
138
|
-
# === LibuiParadise.register_this_fiddle_pointer_widget
|
139
|
-
# ========================================================================= #
|
140
|
-
def self.register_this_fiddle_pointer_widget(
|
141
|
-
the_fiddle_pointer_widget,
|
142
|
-
the_type_of_the_widget = nil
|
143
|
-
)
|
144
|
-
::LibuiParadise::Extensions.register_this_fiddle_pointer_widget(
|
145
|
-
the_fiddle_pointer_widget,
|
146
|
-
the_type_of_the_widget
|
147
|
-
)
|
148
|
-
end; self.instance_eval { alias add_to_the_registered_widgets register_this_fiddle_pointer_widget } # === LibuiParadise.add_to_the_registered_widgets
|
149
|
-
|
150
|
-
end
|