Module: LibuiParadise

Defined in:
lib/libui_paradise/base/base.rb,
lib/libui_paradise/colours/colours.rb,
lib/libui_paradise/project/project.rb,
lib/libui_paradise/version/version.rb,
lib/libui_paradise/libui_classes/box.rb,
lib/libui_paradise/libui_classes/grid.rb,
lib/libui_paradise/prototype/prototype.rb,
lib/libui_paradise/extensions/extensions.rb,
lib/libui_paradise/libui_classes/libui_classes.rb,
lib/libui_paradise/extensions/toplevel_counters.rb,
lib/libui_paradise/generic_window/generic_window.rb,
lib/libui_paradise/examples/complex/010_table_example.rb,
lib/libui_paradise/requires/require_the_libui_classes.rb,
lib/libui_paradise/examples/complex/029_progressbar_example.rb,
lib/libui_paradise/examples/complex/032_simple_window_example.rb,
lib/libui_paradise/examples/complex/031_notification_functionality_example.rb,
lib/libui_paradise/examples/complex/033_daemonize_and_exit_after_delay_example.rb,
lib/libui_paradise/examples/complex/030_entry_responds_to_comment_as_synonymous_to_the_enter_key_pressed_example.rb

Overview

#

LibuiParadise::GUI::LibUI::EntryRespondsToCommentAsSynonymousToTheEnterKeyPressedExample

#

Defined Under Namespace

Modules: Extensions, GUI Classes: Base, GenericWindow, NotificationFunctionalityExample

Constant Summary collapse

COLOR_BLUE =
#

COLOR_BLUE

This is actually dodgerblue.

#
0x1E90FF
COLOR_MIDNIGHTBLUE =
#

COLOR_MIDNIGHTBLUE

#
0x191970
COLOR_LIGHTSEAGREEN =
#

COLOR_LIGHTSEAGREEN

#
0x20b2aa
PROJECT_BASE_DIRECTORY =
#

LibuiParadise::PROJECT_BASE_DIRECTORY

#
File.absolute_path("#{__dir__}/..")+'/'
BASE_DIR =
PROJECT_BASE_DIRECTORY
VERSION =
#

VERSION

#
'0.3.9'
LAST_UPDATE =
#

LAST_UPDATE

#
'12.12.2023'

Class Method Summary collapse

Class Method Details

.button(text) ⇒ Object

#

LibuiParadise.button

#


1442
1443
1444
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1442

def self.button(text)
  ::LibuiParadise::Extensions.button(text)
end

.checkbox(i = '') ⇒ Object

#

LibuiParadise.checkbox

#


1449
1450
1451
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1449

def self.checkbox(i = '')
  ::LibuiParadise::Extensions.checkbox(i)
end

.colour_buttonObject

#

LibuiParadise.colour_button

#


1576
1577
1578
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1576

def self.colour_button
  ::LibuiParadise::Extensions.new_colour_button
end

.counter_left=(i = 1) ⇒ Object

#

LibuiParadise.counter_left=

#


31
32
33
# File 'lib/libui_paradise/extensions/toplevel_counters.rb', line 31

def self.counter_left=(i = 1)
  @counter_left = i
end

.counter_left?Boolean

#

LibuiParadise.counter_left?

#

Returns:

  • (Boolean)


22
23
24
# File 'lib/libui_paradise/extensions/toplevel_counters.rb', line 22

def self.counter_left?
  @counter_left
end

.counter_top=(i = 1) ⇒ Object

#

LibuiParadise.counter_top=

#


47
48
49
# File 'lib/libui_paradise/extensions/toplevel_counters.rb', line 47

def self.counter_top=(i = 1)
  @counter_top = i
end

.counter_top?Boolean

#

LibuiParadise.counter_top?

#

Returns:

  • (Boolean)


38
39
40
# File 'lib/libui_paradise/extensions/toplevel_counters.rb', line 38

def self.counter_top?
  @counter_top
end

.counters?Boolean

#

LibuiParadise.counters?

#

Returns:

  • (Boolean)


54
55
56
# File 'lib/libui_paradise/extensions/toplevel_counters.rb', line 54

def self.counters?
  return [@counter_left, @counter_top]
end

.create_gridObject

#

LibuiParadise.create_grid

#


1629
1630
1631
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1629

def self.create_grid
  ::LibUI.new_grid
end

.create_tabObject

#

LibuiParadise.create_tab

#


1622
1623
1624
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1622

def self.create_tab
  LibuiParadise::Extensions.tab
end

.do_require_the_libui_classesObject

#

LibuiParadise.do_require_the_libui_classes

This method will batch-require all libui-paradise classes under the libui_classes/ subdirectory.

#


17
18
19
20
21
22
23
# File 'lib/libui_paradise/requires/require_the_libui_classes.rb', line 17

def self.do_require_the_libui_classes
  target = LibuiParadise.project_base_dir?+'libui_classes/*.rb'
  files_that_are_to_be_required = Dir[target]
  files_that_are_to_be_required.each {|this_file|
    require "libui_paradise/libui_classes/#{File.basename(this_file)}"
  }
end

.draw_rectangle(width = :default, height = :default, colour = :orange) ⇒ Object

#

LibuiParadise.draw_rectangle

#


899
900
901
902
903
904
905
# File 'lib/libui_paradise/extensions/extensions.rb', line 899

def self.draw_rectangle(
    width  = :default,
    height = :default,
    colour = :orange
  )
  ::LibuiParadise::Extensions.draw_rectangle(width, height, colour)
end

.editable_combobox(optional_array = nil, &block) ⇒ Object

#

LibuiParadise::Extensions.editable_combobox

#


1382
1383
1384
1385
1386
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1382

def self.editable_combobox(
    optional_array = nil, &block
  )
  return ::LibuiParadise::Extensions.editable_combobox(optional_array, &block)
end

.entry(optional_text = '') ⇒ Object

#

LibuiParadise.entry

#


1606
1607
1608
1609
1610
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1606

def self.entry(
    optional_text = ''
  )
  ::LibuiParadise::Extensions.entry(optional_text)
end

.font(&block) ⇒ Object

#

LibuiParadise.font

#


1599
1600
1601
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1599

def self.font(&block)
  ::LibuiParadise::Extensions.font(&block)
end

.font_buttonObject

#

LibuiParadise.font_button

#


1583
1584
1585
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1583

def self.font_button
  return ::LibuiParadise::Extensions.font_button
end

.generic_window(*use_these_widgets, &block) ⇒ Object

#

LibuiParadise.generic_window

Usage example:

x = LibuiParadise.generic_window(LibuiParadise.button('1'), LibuiParadise.button('2'))
x = LibuiParadise.generic_window(LibuiParadise.button('1'), LibuiParadise.button('2')) {{ height: 50 }}
x = LibuiParadise.generic_window(LibuiParadise.button('1'), LibuiParadise.button('2')) {{ height: 50, width: 120 }}
#


917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
# File 'lib/libui_paradise/extensions/extensions.rb', line 917

def self.generic_window(
    *use_these_widgets,
    &block
  )
  unless LibuiParadise.respond_to?(:GenericWindow)
    require 'libui_paradise/generic_window/generic_window.rb'
  end
  generic_window = LibuiParadise::GenericWindow.new { :do_not_run_yet }
  # ========================================================================= #
  # === Handle blocks next
  # ========================================================================= #
  if block_given?
    yielded = yield
    if yielded.is_a? Hash
      # ===================================================================== #
      # === :height
      # ===================================================================== #
      if yielded.has_key?(:height)
        generic_window.set_height(
          yielded[:height]
        )
        generic_window.update_the_main_window
      end
      # ===================================================================== #
      # === :width
      # ===================================================================== #
      if yielded.has_key?(:width)
        generic_window.set_width(
          yielded[:width]
        )
        generic_window.update_the_main_window
      end
      # ===================================================================== #
      # === :title
      # ===================================================================== #
      if yielded.has_key?(:title)
        generic_window.set_title(
          yielded[:title]
        )
        generic_window.update_the_main_window
      end
    end
  end
  # ========================================================================= #
  # Next prepare adding more widgets to this generic window:
  # ========================================================================= #
  use_these_widgets.flatten!
  use_these_widgets.compact!
  if use_these_widgets.is_a?(Array) and !use_these_widgets.empty?
    generic_window.add_these_widgets(use_these_widgets)
  end
  return generic_window
end

.hbox(*optional_widgets) ⇒ Object

#

LibuiParadise.hbox

This toplevel-method can be used to instantiate a new hbox.

#


135
136
137
# File 'lib/libui_paradise/libui_classes/box.rb', line 135

def self.hbox(*optional_widgets)
  ::LibuiParadise::Extensions.hbox(optional_widgets)
end

.horizontal_separatorObject

#

LibuiParadise.horizontal_separator

#


1590
1591
1592
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1590

def self.horizontal_separator
  ::LibuiParadise::Extensions.horizontal_separator
end

.image(this_file, width = :try_to_infer_automatically, height = :infer_automatically) ⇒ Object

#

Libuiparadise.image

#


1563
1564
1565
1566
1567
1568
1569
1570
1571
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1563

def self.image(
    this_file,
    width  = :try_to_infer_automatically,
    height = :infer_automatically
  )
  ::LibuiParadise::Extensions.image(
    this_file, width, height
  )
end

.label(i = '') ⇒ Object

#

LibuiParadise.label

Toplevel method to create a new label, aka new text.

#


1394
1395
1396
1397
1398
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1394

def self.label(
    i = ''
  )
  ::LibuiParadise::Extensions.label(i)
end

.main_window?Boolean

#

LibuiParadise.main_window?

#

Returns:

  • (Boolean)


1375
1376
1377
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1375

def self.main_window?
  LibuiParadise::Extensions.main_window?
end
#

LibuiParadise.menu

#


1556
1557
1558
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1556

def self.menu(title = '')
  return LibuiParadise::Extensions.menu(title)
end

.msg_box(main_window = :default_window, title_to_use = '', whatever = '') ⇒ Object

#

LibuiParadise.msg_box

#


1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1456

def self.msg_box(
    main_window  = :default_window,
    title_to_use = '',
    whatever     = ''
  )
  if main_window.is_a?(String) and title_to_use.is_a?(String) and
    title_to_use.empty?
    title_to_use = main_window.dup
    main_window = :default_window
  end
  ::LibuiParadise::Extensions.msg_box(
    main_window,
    title_to_use,
    whatever
  )
end

.multiline_entry(optional_content = nil) ⇒ Object

#

LibuiParadise.multiline_entry

#


1544
1545
1546
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1544

def self.multiline_entry(optional_content = nil)
  ::LibuiParadise::Extensions.multiline_entry(optional_content)
end

.new_progress_barObject

#

LibuiParadise.new_progress_bar

#


1480
1481
1482
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1480

def self.new_progress_bar
  return ::LibuiParadise::Extensions.new_progress_bar
end

.non_wrapping_multiline_entryObject

#

LibuiParadise.non_wrapping_multiline_entry

#


1537
1538
1539
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1537

def self.non_wrapping_multiline_entry
  return ::LibuiParadise::Extensions.non_wrapping_multiline_entry
end

.notification(text = 'Backup complete!', title_to_use = '') ⇒ Object

#

LibuiParadise.notification

#


885
886
887
888
889
890
891
892
893
894
# File 'lib/libui_paradise/extensions/extensions.rb', line 885

def self.notification(
    text         = 'Backup complete!',
    title_to_use = ''
  )
  ::LibuiParadise::Extensions.message_box(
    :default_window,
    text,
    title_to_use
  )
end

.open_file(main_window = LibuiParadise::Extensions.main_window?) ⇒ Object

#

LibuiParadise.open_file

This method is a simple delegator towards the LibuiParadise::Extensions.open_file() functionality.

#


1640
1641
1642
1643
1644
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1640

def self.open_file(
    main_window = LibuiParadise::Extensions.main_window?
  )
  return ::LibuiParadise::Extensions.open_file(main_window)
end

.padded_vboxObject

#

LibuiParadise.padded_vbox

#


143
144
145
146
147
# File 'lib/libui_paradise/libui_classes/box.rb', line 143

def self.padded_vbox
  _ = ::LibuiParadise::Extensions.vbox
  _.is_padded
  return _
end

.password_entryObject

#

LibuiParadise.password_entry

#


1530
1531
1532
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1530

def self.password_entry
  ::LibuiParadise::Extensions.password_entry
end

.project_base_dir?Boolean

#

LibuiParadise.project_base_dir?

Preferentially use this method rather than the constant above directly.

#

Returns:

  • (Boolean)


22
23
24
# File 'lib/libui_paradise/project/project.rb', line 22

def self.project_base_dir?
  PROJECT_BASE_DIRECTORY
end

.radio_buttons(optional_array = []) ⇒ Object

#

LibuiParadise.radio_buttons

#


1523
1524
1525
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1523

def self.radio_buttons(optional_array = [])
  return ::LibuiParadise::Extensions.radio_buttons(optional_array)
end

.register_this_fiddle_pointer_widget(the_fiddle_pointer_widget, the_type_of_the_widget = nil) ⇒ Object

#

LibuiParadise.register_this_fiddle_pointer_widget

#


865
866
867
868
869
870
871
872
873
# File 'lib/libui_paradise/extensions/extensions.rb', line 865

def self.register_this_fiddle_pointer_widget(
    the_fiddle_pointer_widget,
    the_type_of_the_widget = nil
  )
  ::LibuiParadise::Extensions.register_this_fiddle_pointer_widget(
    the_fiddle_pointer_widget,
    the_type_of_the_widget
  )
end

.run_in_the_backgroundObject

#

LibuiParadise.run_in_the_background

#


878
879
880
# File 'lib/libui_paradise/extensions/extensions.rb', line 878

def self.run_in_the_background
  Process.daemon
end

.scrolling_area(widget, width = :default, height = :default) ⇒ Object

#

LibuiParadise.scrolling_area

#


1512
1513
1514
1515
1516
1517
1518
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1512

def self.scrolling_area(
    widget,
    width  = :default,
    height = :default
  )
  ::LibuiParadise::Extensions.scrolling_area(widget, width, height)
end

.search_entryObject

#

LibuiParadise.search_entry

#


1505
1506
1507
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1505

def self.search_entry
  ::LibuiParadise::Extensions.search_entry
end

.set_main_window(i) ⇒ Object

#

LibuiParadise.set_main_window

#


1615
1616
1617
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1615

def self.set_main_window(i)
  ::LibuiParadise::Extensions.set_main_window(i)
end

.slider(start_value = 0, end_value = 100) ⇒ Object

#

LibuiParadise.slider

#


1432
1433
1434
1435
1436
1437
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1432

def self.slider(
    start_value =   0,
    end_value   = 100
  )
  ::LibuiParadise::Extensions.slider(start_value, end_value)
end

.spinbox(start_point = 0, end_point = 100, increment = 1) ⇒ Object

#

LibuiParadise.spinbox

#


1419
1420
1421
1422
1423
1424
1425
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1419

def self.spinbox(
    start_point =   0,
    end_point   = 100,
    increment   =   1 # This is currently ignored.
  )
  ::LibuiParadise::Extensions.spinbox(start_point, end_point)
end

.string(i = '') ⇒ Object

#

LibuiParadise.string

#


1405
1406
1407
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1405

def self.string(i = '')
  return ::LibUI.new_attributed_string(i)
end

.table(i) ⇒ Object

#

LibuiParadise.table

#


1412
1413
1414
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1412

def self.table(i)
  ::LibuiParadise::Extensions.table(i)
end

.text_layout(i = '') ⇒ Object

#

LibuiParadise.text_layout

#


1496
1497
1498
1499
1500
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1496

def self.text_layout(
    i = ''
  )
  ::LibuiParadise::Extensions.text_layout(i)
end

.vboxObject

#

LibuiParadise.vbox

#


153
154
155
# File 'lib/libui_paradise/libui_classes/box.rb', line 153

def self.vbox
  ::LibuiParadise::Extensions.vbox
end

.vertical_separatorObject

#

LibuiParadise.vertical_separator

#


1487
1488
1489
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1487

def self.vertical_separator
  ::LibuiParadise::Extensions.vertical_separator
end

.window(the_title = '', width = 500, height = 300, has_menubar = 1) ⇒ Object

#

LibuiParadise.window

#


1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
# File 'lib/libui_paradise/libui_classes/libui_classes.rb', line 1351

def self.window(
    the_title   = '',  # Pick a title for the window here.
    width       = 500, # width  in n pixels.
    height      = 300, # height in n pixels.
    has_menubar =   1  # hasMenubar or has not.
  )
  ::LibuiParadise::Extensions.window(
    the_title,
    width,
    height,
    has_menubar
  )
end