fidgit 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
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