fidgit 0.2.4 → 0.2.5

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 (85) hide show
  1. data/.gitignore +7 -7
  2. data/.rspec +2 -2
  3. data/CHANGELOG.md +30 -30
  4. data/Gemfile +3 -3
  5. data/LICENSE.txt +19 -19
  6. data/README.textile +139 -139
  7. data/Rakefile +37 -37
  8. data/config/default_schema.yml +216 -216
  9. data/examples/_all_examples.rb +9 -9
  10. data/examples/align_example.rb +55 -55
  11. data/examples/button_and_toggle_button_example.rb +37 -37
  12. data/examples/color_picker_example.rb +16 -16
  13. data/examples/color_well_example.rb +24 -24
  14. data/examples/combo_box_example.rb +23 -23
  15. data/examples/file_dialog_example.rb +41 -41
  16. data/examples/grid_packer_example.rb +28 -28
  17. data/examples/helpers/example_window.rb +16 -16
  18. data/examples/label_example.rb +22 -22
  19. data/examples/list_example.rb +22 -22
  20. data/examples/menu_pane_example.rb +26 -26
  21. data/examples/message_dialog_example.rb +64 -64
  22. data/examples/radio_button_example.rb +36 -36
  23. data/examples/readme_example.rb +31 -31
  24. data/examples/scroll_window_example.rb +48 -48
  25. data/examples/slider_example.rb +33 -33
  26. data/examples/splash_example.rb +41 -41
  27. data/examples/text_area_example.rb +32 -32
  28. data/fidgit.gemspec +35 -35
  29. data/lib/fidgit.rb +50 -50
  30. data/lib/fidgit/chingu_ext/window.rb +5 -5
  31. data/lib/fidgit/cursor.rb +37 -37
  32. data/lib/fidgit/elements/button.rb +112 -112
  33. data/lib/fidgit/elements/color_picker.rb +62 -62
  34. data/lib/fidgit/elements/color_well.rb +38 -38
  35. data/lib/fidgit/elements/combo_box.rb +113 -113
  36. data/lib/fidgit/elements/composite.rb +16 -16
  37. data/lib/fidgit/elements/container.rb +208 -208
  38. data/lib/fidgit/elements/element.rb +297 -297
  39. data/lib/fidgit/elements/file_browser.rb +151 -151
  40. data/lib/fidgit/elements/grid.rb +226 -226
  41. data/lib/fidgit/elements/group.rb +64 -64
  42. data/lib/fidgit/elements/horizontal.rb +11 -11
  43. data/lib/fidgit/elements/image_frame.rb +64 -64
  44. data/lib/fidgit/elements/label.rb +84 -84
  45. data/lib/fidgit/elements/list.rb +46 -46
  46. data/lib/fidgit/elements/main_packer.rb +24 -24
  47. data/lib/fidgit/elements/menu_pane.rb +160 -160
  48. data/lib/fidgit/elements/packer.rb +41 -41
  49. data/lib/fidgit/elements/radio_button.rb +85 -85
  50. data/lib/fidgit/elements/scroll_area.rb +67 -67
  51. data/lib/fidgit/elements/scroll_bar.rb +127 -127
  52. data/lib/fidgit/elements/scroll_window.rb +82 -82
  53. data/lib/fidgit/elements/slider.rb +124 -124
  54. data/lib/fidgit/elements/text_area.rb +493 -493
  55. data/lib/fidgit/elements/text_line.rb +91 -91
  56. data/lib/fidgit/elements/toggle_button.rb +66 -66
  57. data/lib/fidgit/elements/tool_tip.rb +34 -34
  58. data/lib/fidgit/elements/vertical.rb +11 -11
  59. data/lib/fidgit/event.rb +158 -158
  60. data/lib/fidgit/gosu_ext/color.rb +135 -135
  61. data/lib/fidgit/gosu_ext/gosu_module.rb +24 -24
  62. data/lib/fidgit/history.rb +90 -90
  63. data/lib/fidgit/redirector.rb +82 -82
  64. data/lib/fidgit/schema.rb +123 -123
  65. data/lib/fidgit/selection.rb +105 -105
  66. data/lib/fidgit/standard_ext/hash.rb +20 -20
  67. data/lib/fidgit/states/dialog_state.rb +51 -51
  68. data/lib/fidgit/states/file_dialog.rb +24 -24
  69. data/lib/fidgit/states/gui_state.rb +329 -329
  70. data/lib/fidgit/states/message_dialog.rb +60 -60
  71. data/lib/fidgit/version.rb +4 -4
  72. data/lib/fidgit/window.rb +19 -19
  73. data/spec/fidgit/elements/helpers/helper.rb +2 -2
  74. data/spec/fidgit/elements/helpers/tex_play_helper.rb +8 -8
  75. data/spec/fidgit/elements/image_frame_spec.rb +68 -68
  76. data/spec/fidgit/elements/label_spec.rb +36 -36
  77. data/spec/fidgit/event_spec.rb +209 -209
  78. data/spec/fidgit/gosu_ext/color_spec.rb +129 -129
  79. data/spec/fidgit/gosu_ext/helpers/helper.rb +2 -2
  80. data/spec/fidgit/helpers/helper.rb +3 -3
  81. data/spec/fidgit/history_spec.rb +153 -153
  82. data/spec/fidgit/redirector_spec.rb +77 -77
  83. data/spec/fidgit/schema_spec.rb +66 -66
  84. data/spec/fidgit/schema_test.yml +32 -32
  85. metadata +67 -22
@@ -1,216 +1,216 @@
1
- # Default schema for Fidgit
2
- ---
3
-
4
- # Define all constant values here. For colours, use [R, G, B] or [R, G, B, A].
5
- # Reference constants with ?constant_name
6
- :constants:
7
- # General constants (strings and numbers).
8
- :scroll_bar_thickness: 12
9
-
10
- # Gosu::Color constants
11
- :none: [0, 0, 0, 0]
12
-
13
- :black: [0, 0, 0]
14
- :white: [255, 255, 255]
15
-
16
- :very_dark_gray: [50, 50, 50]
17
- :dark_gray: [100, 100, 100]
18
- :gray: [150, 150, 150]
19
- :light_gray: [200, 200, 200]
20
-
21
- :red: [255, 0, 0]
22
- :green: [0, 0, 255]
23
- :blue: [0, 0, 255]
24
-
25
- :dark_red: [100, 0, 0]
26
- :dark_green: [0, 100, 0]
27
- :dark_blue: [0, 0, 100]
28
-
29
- # Default element attributes.
30
- :elements:
31
- :Button: # < Label
32
- :background_color: ?dark_gray
33
- :border_color: ?light_gray
34
- :border_thickness: 2
35
- :shortcut_color: ?red
36
- :padding_top: 2
37
- :padding_right: 4
38
- :padding_bottom: 2
39
- :padding_left: 4
40
-
41
- :disabled:
42
- :background_color: ?very_dark_gray
43
- :border_color: ?gray
44
-
45
- :hover:
46
- :background_color: ?gray
47
-
48
- :ColorPicker:
49
- :indicator_height: 30
50
-
51
- :ColorWell: # < RadioButton
52
- :height: 32
53
- :outline_color: ?gray
54
- :width: 32
55
-
56
- :checked:
57
- :border_color: ?very_dark_gray
58
-
59
- :ComboBox: # < Button
60
- :background_color: ?dark_gray
61
- :border_color: ?white
62
-
63
- :Composite: # < Container
64
- :padding_top: 0
65
- :padding_right: 0
66
- :padding_bottom: 0
67
- :padding_left: 0
68
-
69
- :Container: # < Element
70
- {}
71
-
72
- :Element:
73
- :align_h: :left
74
- :align_v: :top
75
- :background_color: ?none
76
- :background_image: nil
77
- :border_color: ?none
78
- :border_thickness: 0
79
- :color: ?white
80
- :font_height: 30
81
- :font_name: :default
82
- :padding_top: 2
83
- :padding_right: 4
84
- :padding_bottom: 2
85
- :padding_left: 4
86
-
87
-
88
- :FileBrowser: # < Composite
89
- :pattern: "*.*"
90
- :show_extension: true
91
-
92
- :Grid: # < Packer
93
- :cell_background_color: ?none
94
- :cell_border_color: ?none
95
- :cell_border_thickness: 0
96
-
97
- :Group: # < Packer
98
- :padding_top: 0
99
- :padding_right: 0
100
- :padding_bottom: 0
101
- :padding_left: 0
102
-
103
- :Horizontal: # < Grid
104
- {}
105
-
106
- :HorizontalScrollBar: # < ScrollBar
107
- :height: ?scroll_bar_thickness
108
-
109
- :ImageFrame: # <Element
110
- :padding_top: 0
111
- :padding_right: 0
112
- :padding_bottom: 0
113
- :padding_left: 0
114
-
115
- :Label: # < Element
116
- :justify: :left
117
- :icon_position: :left
118
-
119
- :disabled:
120
- :color: ?gray
121
-
122
- :List:
123
- :background_color: ?light_gray
124
- :border_color: ?white
125
-
126
- :List::Item:
127
- :border_thickness: 0
128
-
129
- :MainPacker: # < Packer
130
- :border_thickness: 0
131
- :padding_top: 0
132
- :padding_right: 0
133
- :padding_bottom: 0
134
- :padding_left: 0
135
- :spacing_h: 0
136
- :spacing_v: 0
137
-
138
- :MenuPane:
139
- :background_color: ?very_dark_gray
140
-
141
- :MenuPane::Item: # < Button
142
- :border_color: ?none
143
- :border_thickness: 0
144
-
145
- :MenuPane::Separator: # < Label
146
- :line_height: 2
147
- :background_color: ?black
148
-
149
- :Packer: # < Container
150
- :spacing_h: 4
151
- :spacing_v: 4
152
-
153
- :RadioButton: # < Button
154
- :checked:
155
- :border_color: ?blue
156
-
157
- :ScrollArea: # < Composite
158
- {}
159
-
160
- :ScrollBar: # < Composite
161
- :background_color: ?none
162
- :border_color: ?none
163
- :handle_color: ?dark_red
164
- :rail_color: ?very_dark_gray
165
- :rail_width: ?scroll_bar_thickness
166
-
167
- :ScrollWindow: # < Composite
168
- :scroll_bar_thickness: ?scroll_bar_thickness
169
- :border_color: ?light_gray
170
- :border_thickness: 1
171
-
172
- :Slider: # < Element
173
- :background_color: ?none
174
- :border_color: ?dark_gray
175
- :groove_color: ?light_gray
176
- :handle_color: ?dark_green
177
-
178
- :Slider::Handle: # < Element
179
- :background_color: ?dark_blue
180
-
181
- :TextArea: # < Composite
182
- :background_color: ?very_dark_gray
183
- :border_color: ?light_gray
184
- :caret_color: ?red
185
- :caret_period: 500 # In milliseconds
186
- :line_spacing: 0
187
- :selection_color: ?dark_gray
188
-
189
- :focused:
190
- :border_color: ?green
191
-
192
- :TextLine: # < Element
193
- :justify: :left
194
- :padding_top: 0
195
- :padding_right: 0
196
- :padding_bottom: 0
197
- :padding_left: 0
198
-
199
- :ToggleButton: # < Button
200
- :toggled:
201
- :border_color: ?red
202
-
203
- :ToolTip: # < Label
204
- :background_color: ?very_dark_gray
205
- :font_height: 20
206
- :border_color: ?white
207
- :padding_top: 2
208
- :padding_right: 4
209
- :padding_bottom: 2
210
- :padding_left: 4
211
-
212
- :Vertical: # < Grid
213
- {}
214
-
215
- :VerticalScrollBar: # < ScrollBar
216
- :width: ?scroll_bar_thickness
1
+ # Default schema for Fidgit
2
+ ---
3
+
4
+ # Define all constant values here. For colours, use [R, G, B] or [R, G, B, A].
5
+ # Reference constants with ?constant_name
6
+ :constants:
7
+ # General constants (strings and numbers).
8
+ :scroll_bar_thickness: 12
9
+
10
+ # Gosu::Color constants
11
+ :none: [0, 0, 0, 0]
12
+
13
+ :black: [0, 0, 0]
14
+ :white: [255, 255, 255]
15
+
16
+ :very_dark_gray: [50, 50, 50]
17
+ :dark_gray: [100, 100, 100]
18
+ :gray: [150, 150, 150]
19
+ :light_gray: [200, 200, 200]
20
+
21
+ :red: [255, 0, 0]
22
+ :green: [0, 0, 255]
23
+ :blue: [0, 0, 255]
24
+
25
+ :dark_red: [100, 0, 0]
26
+ :dark_green: [0, 100, 0]
27
+ :dark_blue: [0, 0, 100]
28
+
29
+ # Default element attributes.
30
+ :elements:
31
+ :Button: # < Label
32
+ :background_color: ?dark_gray
33
+ :border_color: ?light_gray
34
+ :border_thickness: 2
35
+ :shortcut_color: ?red
36
+ :padding_top: 2
37
+ :padding_right: 4
38
+ :padding_bottom: 2
39
+ :padding_left: 4
40
+
41
+ :disabled:
42
+ :background_color: ?very_dark_gray
43
+ :border_color: ?gray
44
+
45
+ :hover:
46
+ :background_color: ?gray
47
+
48
+ :ColorPicker:
49
+ :indicator_height: 30
50
+
51
+ :ColorWell: # < RadioButton
52
+ :height: 32
53
+ :outline_color: ?gray
54
+ :width: 32
55
+
56
+ :checked:
57
+ :border_color: ?very_dark_gray
58
+
59
+ :ComboBox: # < Button
60
+ :background_color: ?dark_gray
61
+ :border_color: ?white
62
+
63
+ :Composite: # < Container
64
+ :padding_top: 0
65
+ :padding_right: 0
66
+ :padding_bottom: 0
67
+ :padding_left: 0
68
+
69
+ :Container: # < Element
70
+ {}
71
+
72
+ :Element:
73
+ :align_h: :left
74
+ :align_v: :top
75
+ :background_color: ?none
76
+ :background_image: nil
77
+ :border_color: ?none
78
+ :border_thickness: 0
79
+ :color: ?white
80
+ :font_height: 30
81
+ :font_name: :default
82
+ :padding_top: 2
83
+ :padding_right: 4
84
+ :padding_bottom: 2
85
+ :padding_left: 4
86
+
87
+
88
+ :FileBrowser: # < Composite
89
+ :pattern: "*.*"
90
+ :show_extension: true
91
+
92
+ :Grid: # < Packer
93
+ :cell_background_color: ?none
94
+ :cell_border_color: ?none
95
+ :cell_border_thickness: 0
96
+
97
+ :Group: # < Packer
98
+ :padding_top: 0
99
+ :padding_right: 0
100
+ :padding_bottom: 0
101
+ :padding_left: 0
102
+
103
+ :Horizontal: # < Grid
104
+ {}
105
+
106
+ :HorizontalScrollBar: # < ScrollBar
107
+ :height: ?scroll_bar_thickness
108
+
109
+ :ImageFrame: # <Element
110
+ :padding_top: 0
111
+ :padding_right: 0
112
+ :padding_bottom: 0
113
+ :padding_left: 0
114
+
115
+ :Label: # < Element
116
+ :justify: :left
117
+ :icon_position: :left
118
+
119
+ :disabled:
120
+ :color: ?gray
121
+
122
+ :List:
123
+ :background_color: ?light_gray
124
+ :border_color: ?white
125
+
126
+ :List::Item:
127
+ :border_thickness: 0
128
+
129
+ :MainPacker: # < Packer
130
+ :border_thickness: 0
131
+ :padding_top: 0
132
+ :padding_right: 0
133
+ :padding_bottom: 0
134
+ :padding_left: 0
135
+ :spacing_h: 0
136
+ :spacing_v: 0
137
+
138
+ :MenuPane:
139
+ :background_color: ?very_dark_gray
140
+
141
+ :MenuPane::Item: # < Button
142
+ :border_color: ?none
143
+ :border_thickness: 0
144
+
145
+ :MenuPane::Separator: # < Label
146
+ :line_height: 2
147
+ :background_color: ?black
148
+
149
+ :Packer: # < Container
150
+ :spacing_h: 4
151
+ :spacing_v: 4
152
+
153
+ :RadioButton: # < Button
154
+ :checked:
155
+ :border_color: ?blue
156
+
157
+ :ScrollArea: # < Composite
158
+ {}
159
+
160
+ :ScrollBar: # < Composite
161
+ :background_color: ?none
162
+ :border_color: ?none
163
+ :handle_color: ?dark_red
164
+ :rail_color: ?very_dark_gray
165
+ :rail_width: ?scroll_bar_thickness
166
+
167
+ :ScrollWindow: # < Composite
168
+ :scroll_bar_thickness: ?scroll_bar_thickness
169
+ :border_color: ?light_gray
170
+ :border_thickness: 1
171
+
172
+ :Slider: # < Element
173
+ :background_color: ?none
174
+ :border_color: ?dark_gray
175
+ :groove_color: ?light_gray
176
+ :handle_color: ?dark_green
177
+
178
+ :Slider::Handle: # < Element
179
+ :background_color: ?dark_blue
180
+
181
+ :TextArea: # < Composite
182
+ :background_color: ?very_dark_gray
183
+ :border_color: ?light_gray
184
+ :caret_color: ?red
185
+ :caret_period: 500 # In milliseconds
186
+ :line_spacing: 0
187
+ :selection_color: ?dark_gray
188
+
189
+ :focused:
190
+ :border_color: ?green
191
+
192
+ :TextLine: # < Element
193
+ :justify: :left
194
+ :padding_top: 0
195
+ :padding_right: 0
196
+ :padding_bottom: 0
197
+ :padding_left: 0
198
+
199
+ :ToggleButton: # < Button
200
+ :toggled:
201
+ :border_color: ?red
202
+
203
+ :ToolTip: # < Label
204
+ :background_color: ?very_dark_gray
205
+ :font_height: 20
206
+ :border_color: ?white
207
+ :padding_top: 2
208
+ :padding_right: 4
209
+ :padding_bottom: 2
210
+ :padding_left: 4
211
+
212
+ :Vertical: # < Grid
213
+ {}
214
+
215
+ :VerticalScrollBar: # < ScrollBar
216
+ :width: ?scroll_bar_thickness
@@ -1,9 +1,9 @@
1
- # Run all examples, one after the other
2
- require_relative 'helpers/example_window'
3
-
4
-
5
- examples = Dir.glob(File.join(File.dirname(__FILE__), "*.rb")) - [__FILE__]
6
- examples.each_with_index do |file_name, index|
7
- ENV['FIDGIT_EXAMPLES_TEXT'] = "[#{index + 1} of #{examples.size + 1}]"
8
- `ruby #{file_name}`
9
- end
1
+ # Run all examples, one after the other
2
+ require_relative 'helpers/example_window'
3
+
4
+
5
+ examples = Dir.glob(File.join(File.dirname(__FILE__), "*.rb")) - [__FILE__]
6
+ examples.each_with_index do |file_name, index|
7
+ ENV['FIDGIT_EXAMPLES_TEXT'] = "[#{index + 1} of #{examples.size + 1}]"
8
+ `ruby #{file_name}`
9
+ end
@@ -1,56 +1,56 @@
1
- require_relative 'helpers/example_window'
2
-
3
- # Change font and labels in the schema.
4
- Fidgit::Element.schema.merge_elements!(Element: { font_height: 24 }, Label: { background_color: "?dark_blue" })
5
-
6
- class ExampleState < Fidgit::GuiState
7
- ROW_BACKGROUND = Gosu::Color.rgb(0, 100, 0)
8
- CELL_BACKGROUND = Gosu::Color.rgb(100, 0, 0)
9
- OUTER_BACKGROUND = Gosu::Color.rgb(100, 0, 100)
10
-
11
- def initialize
12
- super
13
-
14
- vertical align: :center, background_color: OUTER_BACKGROUND do
15
- label "h => align_h, v => align_v", align_h: :center
16
-
17
- grid num_columns: 4, align: :center, cell_background_color: CELL_BACKGROUND, background_color: ROW_BACKGROUND do
18
- label "xxx"
19
- label "h fill", align_h: :fill
20
- label "h right", align_h: :right
21
- label "h center", align_h: :center
22
-
23
-
24
- vertical do
25
- label "xxx"
26
- label "xxx"
27
- end
28
- label "v fill", align_v: :fill
29
- label "v center", align_v: :center
30
- label "v bottom", align_v: :bottom
31
-
32
- vertical align_h: :center do
33
- label "h center"
34
- label "h center"
35
- end
36
- label "top right", align: [:top, :left]
37
- label "bottom left", align_h: :left, align_v: :bottom
38
- label "h/v fill", align: :fill
39
-
40
- label ""
41
- label "bottom right", align_h: :right, align_v: :bottom
42
- label "bottom center", align_h: :center, align_v: :bottom
43
- vertical align_h: :right do
44
- label "h right"
45
- label "h right"
46
- end
47
-
48
- label "Blah, bleh!"
49
- label "Yada, yada, yada"
50
- label "Bazingo by jingo!"
51
- end
52
- end
53
- end
54
- end
55
-
1
+ require_relative 'helpers/example_window'
2
+
3
+ # Change font and labels in the schema.
4
+ Fidgit::Element.schema.merge_elements!(Element: { font_height: 24 }, Label: { background_color: "?dark_blue" })
5
+
6
+ class ExampleState < Fidgit::GuiState
7
+ ROW_BACKGROUND = Gosu::Color.rgb(0, 100, 0)
8
+ CELL_BACKGROUND = Gosu::Color.rgb(100, 0, 0)
9
+ OUTER_BACKGROUND = Gosu::Color.rgb(100, 0, 100)
10
+
11
+ def initialize
12
+ super
13
+
14
+ vertical align: :center, background_color: OUTER_BACKGROUND do
15
+ label "h => align_h, v => align_v", align_h: :center
16
+
17
+ grid num_columns: 4, align: :center, cell_background_color: CELL_BACKGROUND, background_color: ROW_BACKGROUND do
18
+ label "xxx"
19
+ label "h fill", align_h: :fill
20
+ label "h right", align_h: :right
21
+ label "h center", align_h: :center
22
+
23
+
24
+ vertical do
25
+ label "xxx"
26
+ label "xxx"
27
+ end
28
+ label "v fill", align_v: :fill
29
+ label "v center", align_v: :center
30
+ label "v bottom", align_v: :bottom
31
+
32
+ vertical align_h: :center do
33
+ label "h center"
34
+ label "h center"
35
+ end
36
+ label "top right", align: [:top, :left]
37
+ label "bottom left", align_h: :left, align_v: :bottom
38
+ label "h/v fill", align: :fill
39
+
40
+ label ""
41
+ label "bottom right", align_h: :right, align_v: :bottom
42
+ label "bottom center", align_h: :center, align_v: :bottom
43
+ vertical align_h: :right do
44
+ label "h right"
45
+ label "h right"
46
+ end
47
+
48
+ label "Blah, bleh!"
49
+ label "Yada, yada, yada"
50
+ label "Bazingo by jingo!"
51
+ end
52
+ end
53
+ end
54
+ end
55
+
56
56
  ExampleWindow.new.show