mittens_ui 0.0.6 → 0.0.10

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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -0
  3. data/Gemfile +3 -1
  4. data/Gemfile.lock +5 -2
  5. data/LICENSE +21 -0
  6. data/README.md +82 -17
  7. data/examples/app.rb +102 -6
  8. data/examples/assets/gnome_logo.png +0 -0
  9. data/examples/assets/mittens_ui_preview.gif +0 -0
  10. data/examples/contacts.rb +75 -0
  11. data/lib/mittens_ui.rb +33 -60
  12. data/lib/mittens_ui/alert.rb +32 -0
  13. data/lib/mittens_ui/assets/icon.png +0 -0
  14. data/lib/mittens_ui/assets/mittens_ui_preview.gif +0 -0
  15. data/lib/mittens_ui/button.rb +29 -0
  16. data/lib/mittens_ui/checkbox.rb +24 -0
  17. data/lib/mittens_ui/core.rb +34 -0
  18. data/lib/mittens_ui/file_picker.rb +29 -0
  19. data/lib/mittens_ui/grid.rb +29 -0
  20. data/lib/mittens_ui/hbox.rb +56 -0
  21. data/lib/mittens_ui/header_bar.rb +48 -0
  22. data/lib/mittens_ui/helpers.rb +27 -0
  23. data/lib/mittens_ui/image.rb +46 -0
  24. data/lib/mittens_ui/label.rb +19 -0
  25. data/lib/mittens_ui/listbox.rb +47 -0
  26. data/lib/mittens_ui/loader.rb +35 -0
  27. data/lib/mittens_ui/slider.rb +32 -0
  28. data/lib/mittens_ui/switch.rb +36 -0
  29. data/lib/mittens_ui/table_view.rb +179 -0
  30. data/lib/mittens_ui/textbox.rb +31 -0
  31. data/lib/mittens_ui/version.rb +1 -1
  32. data/lib/mittens_ui/web_link.rb +22 -0
  33. data/mittens_ui.gemspec +3 -3
  34. data/notes/dev_setup.txt +14 -0
  35. metadata +33 -15
  36. data/examples/brightness_controller.rb +0 -64
  37. data/lib/mittens_ui/layouts/box.rb +0 -38
  38. data/lib/mittens_ui/layouts/grid.rb +0 -31
  39. data/lib/mittens_ui/widgets/alert.rb +0 -33
  40. data/lib/mittens_ui/widgets/button.rb +0 -34
  41. data/lib/mittens_ui/widgets/label.rb +0 -41
  42. data/lib/mittens_ui/widgets/listbox.rb +0 -45
  43. data/lib/mittens_ui/widgets/slider.rb +0 -32
  44. data/lib/mittens_ui/widgets/textbox.rb +0 -25
@@ -1,38 +0,0 @@
1
- module MittensUi
2
- module Layouts
3
- class Box
4
- def initialize(window, options={}, &block)
5
- box_spacing = options[:spacing].nil? ? 6 : options[:spacing]
6
- @box = Gtk::Box.new(:vertical, box_spacing)
7
- yield(self)
8
- window.add(@box)
9
- end
10
-
11
- def attach(widget, options)
12
- expand = options[:expand].nil? ? true : options[:expand]
13
- fill = options[:fill].nil? ? true : options[:fill]
14
- padding = options[:padding].nil? ? 0 : options[:padding]
15
-
16
- filterd_options = {
17
- expaned: expand,
18
- fill: fill,
19
- padding: padding
20
- }.freeze
21
-
22
- case options.dig(:position)
23
- when :start
24
- @box.pack_start(widget, filterd_options)
25
- when :end
26
- @box.pack_end(widget, filterd_options)
27
- when nil
28
- @box.pack_start(widget, filterd_options)
29
- end
30
- end
31
-
32
- def remove
33
- return if @box.nil?
34
- @box.destroy
35
- end
36
- end
37
- end
38
- end
@@ -1,31 +0,0 @@
1
- module MittensUi
2
- module Layouts
3
- class Grid
4
- def initialize(window, &block)
5
- @grid = Gtk::Grid.new
6
- yield(self)
7
- window.add_child(@grid)
8
- end
9
-
10
- def attach(widget, options)
11
- grid_height = options[:height]
12
- grid_width = options[:width]
13
- grid_top = options[:top]
14
- grid_left = options[:left]
15
-
16
- # Place widget next to each other in the direction determined by the “orientation” property
17
- # defaults to :horizontal.
18
- if options.size >= 1
19
- @grid.add(widget)
20
- end
21
-
22
- unless options[:attach_to].nil?
23
- return
24
- @grid.attach_next_to()
25
- else
26
- @grid.attach(widget, grid_left, grid_top, grid_width, grid_height)
27
- end
28
- end
29
- end
30
- end
31
- end
@@ -1,33 +0,0 @@
1
- module MittensUi
2
- module Widgets
3
- class Alert
4
- def initialize(message, options)
5
- dialog_options = {
6
- title: "Alert",
7
- parent: $app_window,
8
- flags: [:modal, :destroy_with_parent],
9
- :buttons => [["_OK", :none]]
10
- }.freeze
11
-
12
- alert_dialog = Gtk::Dialog.new(dialog_options)
13
- alert_dialog.set_transient_for($app_window)
14
- alert_dialog.set_default_width(420)
15
- alert_dialog.set_default_height(200)
16
- alert_dialog.set_modal(true)
17
- alert_dialog.set_resizable(false)
18
-
19
- message_label = Gtk::Label.new(message)
20
- message_label.set_margin_top(65)
21
-
22
- dialog_box = alert_dialog.content_area
23
- dialog_box.add(message_label)
24
-
25
- alert_dialog.show_all
26
-
27
- response = alert_dialog.run
28
-
29
- response == :none ? alert_dialog.destroy : alert_dialog.destroy
30
- end
31
- end
32
- end
33
- end
@@ -1,34 +0,0 @@
1
- module MittensUi
2
- module Widgets
3
- class Button
4
- def initialize(options={})
5
- button_title = options[:title] || "Button"
6
-
7
- margin_top = options[:top].nil? ? nil : options[:top]
8
- margin_bottom = options[:bottom].nil? ? nil : options[:bottom]
9
- margin_right = options[:right].nil? ? nil : options[:right]
10
- margin_left = options[:left].nil? ? nil : options[:left]
11
-
12
- @button = Gtk::Button.new(label: button_title)
13
-
14
- @button.set_margin_top(margin_top) unless margin_top.nil?
15
- @button.set_margin_left(margin_left) unless margin_left.nil?
16
- @button.set_margin_right(margin_right) unless margin_right.nil?
17
- @button.set_margin_bottom(margin_bottom) unless margin_bottom.nil?
18
-
19
- $vertical_box.pack_start(@button)
20
- end
21
-
22
- def click
23
- @button.signal_connect "clicked" do |button_widget|
24
- yield(button_widget)
25
- end
26
- end
27
-
28
- def remove
29
- return if @button.nil?
30
- @button.destroy
31
- end
32
- end
33
- end
34
- end
@@ -1,41 +0,0 @@
1
- module MittensUi
2
- module Widgets
3
- class Label
4
- def initialize(text, options)
5
- if text.nil? || text == "" || text == " "
6
- text = "Label"
7
- end
8
-
9
- margin_top = options[:top].nil? ? nil : options[:top]
10
- margin_bottom = options[:bottom].nil? ? nil : options[:bottom]
11
- margin_right = options[:right].nil? ? nil : options[:right]
12
- margin_left = options[:left].nil? ? nil : options[:left]
13
-
14
- @label = Gtk::Label.new(text)
15
-
16
- unless margin_top.nil?
17
- @label.set_margin_top(margin_top)
18
- end
19
-
20
- unless margin_bottom.nil?
21
- @label.set_margin_bottom(margin_top)
22
- end
23
-
24
- unless margin_left.nil?
25
- @label.set_margin_left(margin_left)
26
- end
27
-
28
- unless margin_right.nil?
29
- @label.set_margin_right(margin_right)
30
- end
31
-
32
- $vertical_box.pack_start(@label)
33
- end
34
-
35
- def remove
36
- return if @label.nil?
37
- @label.destroy
38
- end
39
- end
40
- end
41
- end
@@ -1,45 +0,0 @@
1
- module MittensUi
2
- module Widgets
3
- class ListBox
4
- attr_reader :items
5
-
6
- def initialize(options={})
7
- @items = options[:items]
8
-
9
- list_store = Gtk::ListStore.new(String)
10
-
11
- @items.each do |i|
12
- iter = list_store.append
13
- iter[0] = i
14
- end
15
-
16
- renderer = Gtk::CellRendererText.new
17
-
18
- @gtk_combobox = Gtk::ComboBox.new(model: list_store)
19
- @gtk_combobox.pack_start(renderer, true)
20
- @gtk_combobox.set_attributes(renderer, "text" => 0)
21
- @gtk_combobox.set_cell_data_func(renderer) do |_layout, _cell_renderer, _model, iter|
22
- set_selected_value(iter[0])
23
- end
24
-
25
- @gtk_combobox.set_active(0)
26
-
27
- $vertical_box.pack_start(@gtk_combobox)
28
- end
29
-
30
- def set_selected_value(value)
31
- @selected_value = value
32
- end
33
-
34
- def get_selected_value
35
- @selected_value
36
- end
37
- alias :selected_value :get_selected_value
38
-
39
- def remove
40
- return if @gtk_combobox.nil?
41
- @gtk_combobox.destroy
42
- end
43
- end
44
- end
45
- end
@@ -1,32 +0,0 @@
1
- module MittensUi
2
- module Widgets
3
- class Slider
4
- def initialize(options={})
5
- start_value = options[:start_value].nil? ? 1.0 : options[:start_value]
6
- stop_value = options[:stop_value].nil? ? 10.0 : options[:stop_value]
7
- step_value = options[:step_value].nil? ? 1.0 : options[:step_value]
8
- init_value = options[:initial_value].nil? ? 1.0 : options[:initial_value]
9
-
10
- @scale = Gtk::Scale.new(:horizontal, start_value, stop_value, step_value)
11
- @scale.digits = 0
12
- @scale.draw_value = true
13
- @scale.value = init_value
14
-
15
- $vertical_box.pack_start(@scale)
16
- end
17
-
18
- def move
19
- @scale.signal_connect "value_changed" do |scale_widget|
20
- yield(scale_widget)
21
- end
22
- end
23
-
24
- alias :slide :move
25
-
26
- def remove
27
- return if @scale.nil?
28
- @scale.destroy
29
- end
30
- end
31
- end
32
- end
@@ -1,25 +0,0 @@
1
- module MittensUi
2
- module Widgets
3
- class Textbox
4
- def initialize(options={})
5
- @textbox = Gtk::Entry.new
6
- can_edit = options[:can_edit].nil? ? true : options[:can_edit]
7
- max_length = options[:max_length].nil? ? 200 : options[:max_length]
8
-
9
- @textbox.set_editable(can_edit) unless can_edit.nil?
10
- @textbox.set_max_length(max_length) unless max_length.nil?
11
-
12
- $vertical_box.pack_start(@textbox)
13
- end
14
-
15
- def text
16
- @textbox.text
17
- end
18
-
19
- def remove
20
- return if @textbox.nil?
21
- @textbox.destroy
22
- end
23
- end
24
- end
25
- end