Module: MultimediaParadise::GUI::Gtk::PlaylistModule

Includes:
UniversalWidgets::BaseModule
Included in:
UniversalWidgets::Playlist
Defined in:
lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb

Constant Summary collapse

TITLE =
#

TITLE

#
'Playlist'
WIDTH =
#

WIDTH

#
'90%'
HEIGHT =
#

HEIGHT

#
600
DEFAULT_STREAM =
#

DEFAULT_STREAM

#
'https://orf-live.ors-shoutcast.at/oe3-q2a.m3u'
FONT_FAMILY_TO_USE =
#

FONT_FAMILY_TO_USE

#
'DejaVu Sans Mono'
FONT_SIZE =
#

FONT_SIZE

#
'20'
SMALLER_FONT_SIZE =
#

SMALLER_FONT_SIZE

#
'16'
LARGER_FONT =
#

LARGER_FONT

#
:hack_25
USE_THIS_FONT =
#

USE_THIS_FONT

#
:hack_23
SMALLER_FONT =
#

SMALLER_FONT

#
:hack_20

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.runObject

#

MultimediaParadise::GUI::Gtk::PlaylistModule

#


192
193
194
195
196
197
198
199
200
201
202
# File 'lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb', line 192

def self.run
  require 'gtk_paradise/run'
  _ = ::MultimediaParadise::GUI::Gtk::Playlist.new
  r = ::Gtk.run
  r << _
  r.set_size_request(
    _.width?,
    _.height?
  )
  r.top_left_then_run
end

Instance Method Details

#border_size?Boolean

#

border_size?

#

Returns:

  • (Boolean)


100
101
102
# File 'lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb', line 100

def border_size?
  2
end

#connect_skeletonObject

#

connect_skeleton (connect tag)

#


176
177
178
179
# File 'lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb', line 176

def connect_skeleton
  abort_on_exception
  maximal(return_the_default_scrolled_window)
end

#create_skeletonObject

#

create_skeleton

#


107
108
# File 'lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb', line 107

def create_skeleton
end

#initialize(commandline_arguments = ARGV, run_already = true) ⇒ Object

#

initialize

#


81
82
83
84
85
86
87
88
# File 'lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb', line 81

def initialize(
    commandline_arguments = ARGV,
    run_already           = true
  )
  determine_the_GUI_to_be_used(commandline_arguments) # This must come first, even before reset().
  reset
  run if run_already
end

#main_font?Boolean

#

main_font?

#

Returns:

  • (Boolean)


113
114
115
# File 'lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb', line 113

def main_font?
  :hack_18
end

#padding?Boolean

#

padding?

#

Returns:

  • (Boolean)


93
94
95
# File 'lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb', line 93

def padding?
  2
end

#play_this_song(i) ⇒ Object

#

play_this_song

#


120
121
122
# File 'lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb', line 120

def play_this_song(i)
  esystem "mpv #{i}"
end

#reset_the_shared_moduleObject

#

reset_the_shared_module

This method can be used for ruby-gtk3 and ruby-libui, among other toolkits.

#


157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
# File 'lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb', line 157

def reset_the_shared_module
  reset_the_internal_variables
  infer_the_namespace
  # ======================================================================= #
  # === @configuration
  # ======================================================================= #
  @configuration = [true, __dir__, namespace?]
  title_width_height_font(TITLE, WIDTH, HEIGHT,:dejavu_condensed_22)
  # ======================================================================= #
  # === @dataset
  # ======================================================================= #
  @dataset = MultimediaParadise.action(:playlist_array)
  append_project_css_file
  infer_the_size_automatically
end

#return_the_box_containing_all_playlist_buttonsObject

#

return_the_box_containing_all_playlist_buttons

#


127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb', line 127

def return_the_box_containing_all_playlist_buttons
  vbox = create_vbox
  @dataset.each {|this_song|
    button = create_button(this_song)
    button.hint = this_song
    button.on_clicked {
      play_this_song(this_song)
    }
    button.text_is_left
    vbox.maximal(button)
  }
  return vbox
end

#return_the_default_scrolled_windowObject

#

return_the_default_scrolled_window

#


144
145
146
147
148
149
# File 'lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb', line 144

def return_the_default_scrolled_window
  vbox = return_the_box_containing_all_playlist_buttons
  scroll_bar = create_scrolled_window(vbox)
  scroll_bar.set_size_request(600, 500)
  return scroll_bar
end

#runObject

#

run

#


184
185
186
187
# File 'lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb', line 184

def run
  create_skeleton
  connect_skeleton
end