glimmer-dsl-libui 0.2.3 → 0.2.7

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.3
1
+ 0.2.7
@@ -6,14 +6,14 @@ require 'glimmer-dsl-libui'
6
6
  class BasicDrawText
7
7
  include Glimmer
8
8
 
9
- def alternating_color_string(&block)
10
- @index ||= 0
9
+ def alternating_color_string(initial: false, &block)
10
+ @index = 0 if initial
11
11
  @index += 1
12
12
  string {
13
13
  if @index.odd?
14
- color r: 0.5, g: 0, b: 0.25, a: 0.7
14
+ color r: 128, g: 0, b: 64, a: 0.7
15
15
  else
16
- color r: 0, g: 0.5, b: 0, a: 0.7
16
+ color r: 0, g: 128, b: 0, a: 0.7
17
17
  end
18
18
 
19
19
  block.call + "\n\n"
@@ -25,40 +25,38 @@ class BasicDrawText
25
25
  margined true
26
26
 
27
27
  area {
28
- on_draw do |area_draw_params|
29
- text(0, 0, area_draw_params[:area_width]) {
30
- align 0
31
- default_font family: 'Georgia', size: 13, weight: 500, italic: 0, stretch: 4
32
-
33
- alternating_color_string {
34
- ' At last Ygramul sensed that something was coming toward ' \
35
- 'her. With the speed of lightning, she turned about, confronting ' \
36
- 'Atreyu with an enormous steel-blue face. Her single eye had a ' \
37
- 'vertical pupil, which stared at Atreyu with inconceivable malignancy. '
38
- }
39
- alternating_color_string {
40
- ' A cry of fear escaped Bastian. '
41
- }
42
- alternating_color_string {
43
- ' A cry of terror passed through the ravine and echoed from ' \
44
- 'side to side. Ygramul turned her eye to left and right, to see if ' \
45
- 'someone else had arrived, for that sound could not have been ' \
46
- 'made by the boy who stood there as though paralyzed with ' \
47
- 'horror. '
48
- }
49
- alternating_color_string {
50
- ' Could she have heard my cry? Bastion wondered in alarm. ' \
51
- "But that's not possible. "
52
- }
53
- alternating_color_string {
54
- ' And then Atreyu heard Ygramuls voice. It was very high ' \
55
- 'and slightly hoarse, not at all the right kind of voice for that ' \
56
- 'enormous face. Her lips did not move as she spoke. It was the ' \
57
- 'buzzing of a great swarm of hornets that shaped itself into ' \
58
- 'words. '
59
- }
28
+ text { # default arguments for x, y, and width are (0, 0, area_draw_params[:area_width])
29
+ # align :left # default alignment
30
+ default_font family: 'Georgia', size: 13, weight: :medium, italic: :normal, stretch: :normal
31
+
32
+ alternating_color_string(initial: true) {
33
+ ' At last Ygramul sensed that something was coming toward ' \
34
+ 'her. With the speed of lightning, she turned about, confronting ' \
35
+ 'Atreyu with an enormous steel-blue face. Her single eye had a ' \
36
+ 'vertical pupil, which stared at Atreyu with inconceivable malignancy. '
60
37
  }
61
- end
38
+ alternating_color_string {
39
+ ' A cry of fear escaped Bastian. '
40
+ }
41
+ alternating_color_string {
42
+ ' A cry of terror passed through the ravine and echoed from ' \
43
+ 'side to side. Ygramul turned her eye to left and right, to see if ' \
44
+ 'someone else had arrived, for that sound could not have been ' \
45
+ 'made by the boy who stood there as though paralyzed with ' \
46
+ 'horror. '
47
+ }
48
+ alternating_color_string {
49
+ ' Could she have heard my cry? Bastion wondered in alarm. ' \
50
+ "But that's not possible. "
51
+ }
52
+ alternating_color_string {
53
+ ' And then Atreyu heard Ygramuls voice. It was very high ' \
54
+ 'and slightly hoarse, not at all the right kind of voice for that ' \
55
+ 'enormous face. Her lips did not move as she spoke. It was the ' \
56
+ 'buzzing of a great swarm of hornets that shaped itself into ' \
57
+ 'words. '
58
+ }
59
+ }
62
60
  }
63
61
  }.show
64
62
  end
@@ -0,0 +1,68 @@
1
+
2
+ require 'glimmer-dsl-libui'
3
+
4
+ # Michael Ende (1929-1995)
5
+ # The Neverending Story is a fantasy novel by German writer Michael Ende,
6
+ # The English version, translated by Ralph Manheim, was published in 1983.
7
+ class BasicDrawText
8
+ include Glimmer
9
+
10
+ def alternating_color_string(initial: false, &block)
11
+ @index = 0 if initial
12
+ @index += 1
13
+ string {
14
+ if @index.odd?
15
+ color r: 128, g: 0, b: 64, a: 0.7
16
+ else
17
+ color r: 0, g: 128, b: 0, a: 0.7
18
+ end
19
+
20
+ block.call + "\n\n"
21
+ }
22
+ end
23
+
24
+ def launch
25
+ window('Michael Ende (1929-1995) The Neverending Story', 600, 400) {
26
+ margined true
27
+
28
+ area {
29
+ on_draw do |area_draw_params|
30
+ text { # default arguments for x, y, and width are (0, 0, area_draw_params[:area_width])
31
+ # align :left # default alignment
32
+ default_font family: 'Georgia', size: 13, weight: :medium, italic: :normal, stretch: :normal
33
+
34
+ alternating_color_string(initial: true) {
35
+ ' At last Ygramul sensed that something was coming toward ' \
36
+ 'her. With the speed of lightning, she turned about, confronting ' \
37
+ 'Atreyu with an enormous steel-blue face. Her single eye had a ' \
38
+ 'vertical pupil, which stared at Atreyu with inconceivable malignancy. '
39
+ }
40
+ alternating_color_string {
41
+ ' A cry of fear escaped Bastian. '
42
+ }
43
+ alternating_color_string {
44
+ ' A cry of terror passed through the ravine and echoed from ' \
45
+ 'side to side. Ygramul turned her eye to left and right, to see if ' \
46
+ 'someone else had arrived, for that sound could not have been ' \
47
+ 'made by the boy who stood there as though paralyzed with ' \
48
+ 'horror. '
49
+ }
50
+ alternating_color_string {
51
+ ' Could she have heard my cry? Bastion wondered in alarm. ' \
52
+ "But that's not possible. "
53
+ }
54
+ alternating_color_string {
55
+ ' And then Atreyu heard Ygramuls voice. It was very high ' \
56
+ 'and slightly hoarse, not at all the right kind of voice for that ' \
57
+ 'enormous face. Her lips did not move as she spoke. It was the ' \
58
+ 'buzzing of a great swarm of hornets that shaped itself into ' \
59
+ 'words. '
60
+ }
61
+ }
62
+ end
63
+ }
64
+ }.show
65
+ end
66
+ end
67
+
68
+ BasicDrawText.new.launch
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'glimmer-dsl-libui'
4
+ require 'chunky_png'
5
+
6
+ include Glimmer
7
+
8
+ f = File.open(File.expand_path('../icons/glimmer.png', __dir__))
9
+ canvas = ChunkyPNG::Canvas.from_io(f)
10
+ f.close
11
+ canvas.resample_nearest_neighbor!(24, 24)
12
+ data = canvas.to_rgba_stream
13
+ width = canvas.width
14
+ height = canvas.height
15
+ img = image {
16
+ image_part(data, width, height, width * 4)
17
+ }
18
+
19
+ data = [
20
+ [['cat', :red] , ['meow', :blue] , [true, 'mammal', :green], [img, 'Glimmer', :dark_blue], {r: 255, g: 120, b: 0, a: 0.5}],
21
+ [['dog', :yellow] , ['woof', {r: 240, g: 32, b: 32}] , [true, 'mammal', :green], [img, 'Glimmer', :dark_blue], :skyblue],
22
+ [['chicken', :beige], ['cock-a-doodle-doo', :blue] , [false, 'mammal', :red] , [img, 'Glimmer', :beige], {r: 5, g: 120, b: 110}],
23
+ [['horse', :purple] , ['neigh', {r: 240, g: 32, b: 32}], [true, 'mammal', :green], [img, 'Glimmer', :dark_blue], '13a1fb'],
24
+ [['cow', :gray] , ['moo', :blue] , [true, 'mammal', :green], [img, 'Glimmer', :brown], 0x12ff02]
25
+ ]
26
+
27
+ window('Animals', 500, 200) {
28
+ horizontal_box {
29
+ table {
30
+ text_color_column('Animal')
31
+ text_color_column('Sound')
32
+ checkbox_text_color_column('Description')
33
+ image_text_color_column('GUI')
34
+ background_color_column('Mammal')
35
+
36
+ cell_rows data
37
+ }
38
+ }
39
+ }.show
@@ -0,0 +1,106 @@
1
+ require 'glimmer-dsl-libui'
2
+
3
+ # Michael Ende (1929-1995)
4
+ # The Neverending Story is a fantasy novel by German writer Michael Ende,
5
+ # The English version, translated by Ralph Manheim, was published in 1983.
6
+ class CustomDrawText
7
+ include Glimmer
8
+
9
+ def launch
10
+ window('Michael Ende (1929-1995) The Neverending Story', 600, 500) {
11
+ margined true
12
+
13
+ vertical_box {
14
+ form {
15
+ stretchy false
16
+
17
+ font_button { |fb|
18
+ label 'Font'
19
+
20
+ on_changed do
21
+ @string.font = fb.font
22
+ end
23
+ }
24
+ color_button { |cb|
25
+ label 'Color'
26
+
27
+ on_changed do
28
+ @string.color = cb.color
29
+ end
30
+ }
31
+ color_button { |cb|
32
+ label 'Background'
33
+
34
+ on_changed do
35
+ @string.background = cb.color
36
+ end
37
+ }
38
+ combobox { |c|
39
+ label 'Underline'
40
+ items Glimmer::LibUI.enum_symbols(:underline).map(&:to_s).map {|word| word.split('_').map(&:capitalize).join(' ')}
41
+ selected 'None'
42
+
43
+ on_selected do
44
+ @string.underline = c.selected_item.underscore
45
+ end
46
+ }
47
+ combobox { |c|
48
+ label 'Underline Built-In Color'
49
+ items Glimmer::LibUI.enum_symbols(:underline_color).map(&:to_s).map(&:capitalize)
50
+ selected 'Custom'
51
+
52
+ on_selected do
53
+ @underline_custom_color_button.enabled = c.selected_item == 'Custom'
54
+ if c.selected_item == 'Custom'
55
+ @string.underline_color = @underline_custom_color_button.color
56
+ else
57
+ @string.underline_color = c.selected_item.underscore
58
+ @underline_custom_color_button.color = :black
59
+ end
60
+ end
61
+ }
62
+ @underline_custom_color_button = color_button {
63
+ label 'Underline Custom Color'
64
+
65
+ on_changed do
66
+ @string.underline_color = @underline_custom_color_button.color
67
+ end
68
+ }
69
+ }
70
+
71
+ area {
72
+ text { # default arguments for x, y, and width are (0, 0, area_draw_params[:area_width])
73
+ # align :left # default alignment
74
+
75
+ @string = string {
76
+ ' At last Ygramul sensed that something was coming toward ' \
77
+ 'her. With the speed of lightning, she turned about, confronting ' \
78
+ 'Atreyu with an enormous steel-blue face. Her single eye had a ' \
79
+ 'vertical pupil, which stared at Atreyu with inconceivable malignancy. ' \
80
+ "\n\n" \
81
+ ' A cry of fear escaped Bastian. ' \
82
+ "\n\n" \
83
+ ' A cry of terror passed through the ravine and echoed from ' \
84
+ 'side to side. Ygramul turned her eye to left and right, to see if ' \
85
+ 'someone else had arrived, for that sound could not have been ' \
86
+ 'made by the boy who stood there as though paralyzed with ' \
87
+ 'horror. ' \
88
+ "\n\n" \
89
+ ' Could she have heard my cry? Bastion wondered in alarm. ' \
90
+ "But that's not possible. " \
91
+ "\n\n" \
92
+ ' And then Atreyu heard Ygramuls voice. It was very high ' \
93
+ 'and slightly hoarse, not at all the right kind of voice for that ' \
94
+ 'enormous face. Her lips did not move as she spoke. It was the ' \
95
+ 'buzzing of a great swarm of hornets that shaped itself into ' \
96
+ 'words. ' \
97
+ "\n\n"
98
+ }
99
+ }
100
+ }
101
+ }
102
+ }.show
103
+ end
104
+ end
105
+
106
+ CustomDrawText.new.launch
@@ -0,0 +1,120 @@
1
+ require 'glimmer-dsl-libui'
2
+
3
+ # Michael Ende (1929-1995)
4
+ # The Neverending Story is a fantasy novel by German writer Michael Ende,
5
+ # The English version, translated by Ralph Manheim, was published in 1983.
6
+ class CustomDrawText
7
+ include Glimmer
8
+
9
+ def launch
10
+ window('Michael Ende (1929-1995) The Neverending Story', 600, 500) {
11
+ margined true
12
+
13
+ vertical_box {
14
+ form {
15
+ stretchy false
16
+
17
+ font_button { |fb|
18
+ label 'Font'
19
+
20
+ on_changed do
21
+ @font = fb.font
22
+ @area.queue_redraw_all
23
+ end
24
+ }
25
+ color_button { |cb|
26
+ label 'Color'
27
+
28
+ on_changed do
29
+ @color = cb.color
30
+ @area.queue_redraw_all
31
+ end
32
+ }
33
+ color_button { |cb|
34
+ label 'Background'
35
+
36
+ on_changed do
37
+ @background = cb.color
38
+ @area.queue_redraw_all
39
+ end
40
+ }
41
+ combobox { |c|
42
+ label 'Underline'
43
+ items Glimmer::LibUI.enum_symbols(:underline).map(&:to_s).map {|word| word.split('_').map(&:capitalize).join(' ')}
44
+ selected 'None'
45
+
46
+ on_selected do
47
+ @underline = c.selected_item.underscore
48
+ @area.queue_redraw_all
49
+ end
50
+ }
51
+ combobox { |c|
52
+ label 'Underline Built-In Color'
53
+ items Glimmer::LibUI.enum_symbols(:underline_color).map(&:to_s).map(&:capitalize)
54
+ selected 'Custom'
55
+
56
+ on_selected do
57
+ @underline_custom_color_button.enabled = c.selected_item == 'Custom'
58
+ if c.selected_item == 'Custom'
59
+ @underline_color = @underline_custom_color_button.color
60
+ else
61
+ @underline_color = c.selected_item.underscore
62
+ @underline_custom_color_button.color = :black
63
+ end
64
+ @area.queue_redraw_all
65
+ end
66
+ }
67
+ @underline_custom_color_button = color_button {
68
+ label 'Underline Custom Color'
69
+
70
+ on_changed do
71
+ @underline_color = @underline_custom_color_button.color
72
+ @area.queue_redraw_all
73
+ end
74
+ }
75
+ }
76
+
77
+ @area = area {
78
+ on_draw do |area_draw_params|
79
+ text { # default arguments for x, y, and width are (0, 0, area_draw_params[:area_width])
80
+ # align :left # default alignment
81
+
82
+ string {
83
+ font @font
84
+ color @color
85
+ background @background
86
+ underline @underline
87
+ underline_color @underline_color
88
+
89
+ ' At last Ygramul sensed that something was coming toward ' \
90
+ 'her. With the speed of lightning, she turned about, confronting ' \
91
+ 'Atreyu with an enormous steel-blue face. Her single eye had a ' \
92
+ 'vertical pupil, which stared at Atreyu with inconceivable malignancy. ' \
93
+ "\n\n" \
94
+ ' A cry of fear escaped Bastian. ' \
95
+ "\n\n" \
96
+ ' A cry of terror passed through the ravine and echoed from ' \
97
+ 'side to side. Ygramul turned her eye to left and right, to see if ' \
98
+ 'someone else had arrived, for that sound could not have been ' \
99
+ 'made by the boy who stood there as though paralyzed with ' \
100
+ 'horror. ' \
101
+ "\n\n" \
102
+ ' Could she have heard my cry? Bastion wondered in alarm. ' \
103
+ "But that's not possible. " \
104
+ "\n\n" \
105
+ ' And then Atreyu heard Ygramuls voice. It was very high ' \
106
+ 'and slightly hoarse, not at all the right kind of voice for that ' \
107
+ 'enormous face. Her lips did not move as she spoke. It was the ' \
108
+ 'buzzing of a great swarm of hornets that shaped itself into ' \
109
+ 'words. ' \
110
+ "\n\n"
111
+ }
112
+ }
113
+ end
114
+ }
115
+ }
116
+ }.show
117
+ end
118
+ end
119
+
120
+ CustomDrawText.new.launch
Binary file
data/icons/glimmer.png ADDED
Binary file
@@ -40,24 +40,70 @@ module Glimmer
40
40
  end
41
41
 
42
42
  def font(value = nil)
43
- # UI.attributed_string_set_attribute(@parent_proxy.attributed_string, color_attribute, start, start + @string.size)
43
+ if value.nil?
44
+ @font
45
+ else
46
+ @font = value
47
+ redraw
48
+ end
44
49
  end
50
+ alias font= font
51
+ alias set_font font
45
52
 
46
53
  def color(value = nil)
47
54
  if value.nil?
48
55
  @color
49
56
  else
50
57
  @color = Glimmer::LibUI.interpret_color(value)
58
+ redraw
51
59
  end
52
60
  end
61
+ alias color= color
62
+ alias set_color color
53
63
 
54
64
  def background(value = nil)
55
- # UI.attributed_string_set_attribute(@parent_proxy.attributed_string, color_attribute, start, start + @string.size)
65
+ if value.nil?
66
+ @background
67
+ else
68
+ @background = Glimmer::LibUI.interpret_color(value)
69
+ redraw
70
+ end
56
71
  end
72
+ alias background= background
73
+ alias set_background background
57
74
 
58
75
  def underline(value = nil)
59
- # UI.attributed_string_set_attribute(@parent_proxy.attributed_string, color_attribute, start, start + @string.size)
76
+ if value.nil?
77
+ @underline
78
+ else
79
+ @underline = value
80
+ redraw
81
+ end
82
+ end
83
+ alias underline= underline
84
+ alias set_underline underline
85
+
86
+ def underline_color(value = nil)
87
+ if value.nil?
88
+ @underline_color
89
+ else
90
+ @underline_color = value
91
+ redraw
92
+ end
60
93
  end
94
+ alias underline_color= underline_color
95
+ alias set_underline_color underline_color
96
+
97
+ def open_type_features(value = nil)
98
+ if value.nil?
99
+ @open_type_features
100
+ else
101
+ @open_type_features = value
102
+ redraw
103
+ end
104
+ end
105
+ alias open_type_features= open_type_features
106
+ alias set_open_type_features open_type_features
61
107
 
62
108
  def post_add_content
63
109
  block_result = block&.call
@@ -65,16 +111,56 @@ module Glimmer
65
111
  @parent_proxy&.post_initialize_child(self)
66
112
  end
67
113
 
114
+ def post_initialize_child(child)
115
+ self.open_type_features = child if child.is_a?(Glimmer::LibUI::ControlProxy::OpenTypeFeaturesProxy)
116
+ end
117
+
68
118
  def draw(area_draw_params)
69
119
  @start = ::LibUI.attributed_string_len(@parent_proxy.attributed_string)
70
120
  ::LibUI.attributed_string_append_unattributed(@parent_proxy.attributed_string, @string)
71
121
  unless color.nil?
72
- color_attribute = ::LibUI.new_color_attribute(@color[:r], @color[:g], @color[:b], @color[:a] || 1.0)
122
+ color_attribute = ::LibUI.new_color_attribute(@color[:r].to_f / 255.0, @color[:g].to_f / 255.0, @color[:b].to_f / 255.0, @color[:a] || 1.0)
73
123
  ::LibUI.attributed_string_set_attribute(@parent_proxy.attributed_string, color_attribute, @start, @start + @string.size)
74
124
  end
125
+ unless background.nil?
126
+ background_attribute = ::LibUI.new_background_attribute(@background[:r].to_f / 255.0, @background[:g].to_f / 255.0, @background[:b].to_f / 255.0, @background[:a] || 1.0)
127
+ ::LibUI.attributed_string_set_attribute(@parent_proxy.attributed_string, background_attribute, @start, @start + @string.size)
128
+ end
129
+ unless underline.nil?
130
+ underline_attribute = ::LibUI.new_underline_attribute(Glimmer::LibUI.enum_symbol_to_value(:underline, @underline))
131
+ ::LibUI.attributed_string_set_attribute(@parent_proxy.attributed_string, underline_attribute, @start, @start + @string.size)
132
+ end
133
+ unless underline_color.nil?
134
+ if Glimmer::LibUI.enum_symbols(:underline_color).include?(underline_color.to_s.to_sym) && underline_color.to_s.to_sym != :custom
135
+ underline_color_attribute = ::LibUI.new_underline_color_attribute(Glimmer::LibUI.enum_symbol_to_value(:underline_color, @underline_color), 0, 0, 0, 0)
136
+ ::LibUI.attributed_string_set_attribute(@parent_proxy.attributed_string, underline_color_attribute, @start, @start + @string.size)
137
+ else
138
+ the_color = Glimmer::LibUI.interpret_color(@underline_color)
139
+ underline_color_attribute = ::LibUI.new_underline_color_attribute(0, the_color[:r].to_f / 255.0, the_color[:g].to_f / 255.0, the_color[:b].to_f / 255.0, the_color[:a] || 1.0)
140
+ ::LibUI.attributed_string_set_attribute(@parent_proxy.attributed_string, underline_color_attribute, @start, @start + @string.size)
141
+ end
142
+ end
143
+ unless font.nil?
144
+ family_attribute = ::LibUI.new_family_attribute(font[:family])
145
+ ::LibUI.attributed_string_set_attribute(@parent_proxy.attributed_string, family_attribute, @start, @start + @string.size)
146
+ size_attribute = ::LibUI.new_size_attribute(font[:size])
147
+ ::LibUI.attributed_string_set_attribute(@parent_proxy.attributed_string, size_attribute, @start, @start + @string.size)
148
+ weight_attribute = ::LibUI.new_weight_attribute(Glimmer::LibUI.enum_symbol_to_value(:text_weight, font[:weight]))
149
+ ::LibUI.attributed_string_set_attribute(@parent_proxy.attributed_string, weight_attribute, @start, @start + @string.size)
150
+ italic_attribute = ::LibUI.new_italic_attribute(Glimmer::LibUI.enum_symbol_to_value(:text_italic, font[:italic]))
151
+ ::LibUI.attributed_string_set_attribute(@parent_proxy.attributed_string, italic_attribute, @start, @start + @string.size)
152
+ stretch_attribute = ::LibUI.new_stretch_attribute(Glimmer::LibUI.enum_symbol_to_value(:text_stretch, font[:stretch]))
153
+ ::LibUI.attributed_string_set_attribute(@parent_proxy.attributed_string, stretch_attribute, @start, @start + @string.size)
154
+ end
155
+ unless open_type_features.nil?
156
+ open_type_features_attribute = ::LibUI.new_features_attribute(open_type_features.libui)
157
+ ::LibUI.attributed_string_set_attribute(@parent_proxy.attributed_string, open_type_features_attribute, @start, @start + @string.size)
158
+ end
159
+ destroy if area_proxy.nil?
75
160
  end
76
161
 
77
162
  def destroy
163
+ open_type_features.destroy unless open_type_features.nil?
78
164
  @parent_proxy&.children&.delete(self)
79
165
  end
80
166
 
@@ -29,7 +29,6 @@ module Glimmer
29
29
  # Follows the Proxy Design Pattern
30
30
  class ColorButtonProxy < ControlProxy
31
31
  def color(value = nil)
32
- # TODO support hex color value
33
32
  if value.nil?
34
33
  @red ||= Fiddle::Pointer.malloc(8) # double
35
34
  @green ||= Fiddle::Pointer.malloc(8) # double
@@ -52,6 +51,8 @@ module Glimmer
52
51
  ::LibUI.color_button_set_color(@libui, value[:r].to_f / 255.0, value[:g].to_f / 255.0, value[:b].to_f / 255.0, value[:a])
53
52
  end
54
53
  end
54
+ alias color= color
55
+ alias set_color color
55
56
 
56
57
  def red(value = nil)
57
58
  if value.nil?
@@ -0,0 +1,38 @@
1
+ # Copyright (c) 2021 Andy Maleh
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining
4
+ # a copy of this software and associated documentation files (the
5
+ # "Software"), to deal in the Software without restriction, including
6
+ # without limitation the rights to use, copy, modify, merge, publish,
7
+ # distribute, sublicense, and/or sell copies of the Software, and to
8
+ # permit persons to whom the Software is furnished to do so, subject to
9
+ # the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be
12
+ # included in all copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
22
+ require 'glimmer/libui/control_proxy'
23
+ require 'glimmer/libui/control_proxy/column'
24
+
25
+ module Glimmer
26
+ module LibUI
27
+ class ControlProxy
28
+ module Column
29
+ # Proxy for LibUI background color column objects
30
+ #
31
+ # Follows the Proxy Design Pattern
32
+ class BackgroundColorColumnProxy < ControlProxy
33
+ include Column
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end