rubygoo 0.0.7 → 0.0.8

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.
@@ -4,7 +4,7 @@ module CreateGui
4
4
 
5
5
  label = Label.new "click the button to set the time", :x=>20, :y=>30
6
6
 
7
- button = Button.new "Click Me!", :x=>70, :y=>80, :x_pad=>20, :y_pad=>20, :icon => icon, :enabled => false
7
+ button = Button.new "Click Me!", :x=>70, :y=>80, :padding_left=>20, :padding_top=>20, :icon => icon, :enabled => false
8
8
  button.on :pressed do |*opts|
9
9
  label.set_text(Time.now.to_s)
10
10
  end
@@ -34,19 +34,17 @@ module CreateGui
34
34
  puts "BOO-YAH"
35
35
  end
36
36
 
37
- modal_button = Button.new "Modal dialogs", :x=>270, :y=>240, :x_pad=>20, :y_pad=>20
37
+ modal_button = Button.new "Modal dialogs", :x=>270, :y=>240, :padding_left=>20, :padding_top=>20
38
38
  modal_button.on :pressed do |*opts|
39
- # TODO make some of this stuff relative and/or make Dialog's
40
- # constructor take a layout to use
41
39
  modal = Dialog.new :modal => app, :x=>60, :y=>110, :w=>250, :h=>250
42
40
 
43
- modal.add Label.new("Message Here", :x=>20, :y=>70, :x_pad=>20, :y_pad=>20, :relative=>true)
41
+ modal.add Label.new("Message Here", :x=>20, :y=>70, :padding_left=>20, :padding_top=>20, :relative=>true)
44
42
  resize_me = Button.new "resize", :relative=>true, :x=>170, :y=>180
45
43
  resize_me.on :pressed do |*opts|
46
44
  modal.resize opts.first
47
45
  end
48
46
 
49
- ok_butt = Button.new("OK", :x=>70, :y=>180, :x_pad=>20, :y_pad=>20,:relative=>true)
47
+ ok_butt = Button.new("OK", :x=>70, :y=>180, :padding_left=>20, :padding_top=>20,:relative=>true)
50
48
  ok_butt.on :pressed do |*opts|
51
49
  modal.close
52
50
  end
@@ -55,7 +53,7 @@ module CreateGui
55
53
  modal.display
56
54
  end
57
55
 
58
- grp = RadioGroup.new :x=>10, :y=>380, :x_pad=>20, :y_pad=>20, :w=> 500, :h=>80
56
+ grp = RadioGroup.new :x=>10, :y=>380, :padding_left=>20, :padding_top=>20, :w=> 500, :h=>80
59
57
  grp_label = Label.new "RadioGroups are fun!", :x=>40, :y=>10, :w=>20, :h=>20, :relative=>true
60
58
  grp_radio_one = RadioButton.new :x=>40, :y=>40, :w=>20, :h=>20, :relative=>true
61
59
  grp_radio_two = RadioButton.new :x=>90, :y=>40, :w=>20, :h=>20, :relative=>true
@@ -63,7 +61,7 @@ module CreateGui
63
61
 
64
62
  grp.add grp_label, grp_radio_one, grp_radio_two, grp_radio_three
65
63
 
66
- hide_button = Button.new "Hide the radios!", :x=>170, :y=>330, :x_pad=>10, :y_pad=>10
64
+ hide_button = Button.new "Hide the radios!", :x=>170, :y=>330, :padding_left=>10, :padding_top=>10
67
65
  hide_button.on :pressed do |*opts|
68
66
  if grp.visible?
69
67
  grp.hide
@@ -79,12 +77,6 @@ module CreateGui
79
77
  app.add text_field, label, button, modal_button, grp, hide_button, icon_widget
80
78
  app.add check
81
79
 
82
- # pulldown = Pulldown.new {:x=>70, :y=>80}
83
- # pulldown.on :changed do |*opts|
84
- # label.set_text(opts.first)
85
- # end
86
- #
87
- # app.add pulldown
88
80
  app
89
81
  end
90
82
  end
@@ -4,6 +4,7 @@ $: << './lib'
4
4
  $: << File.dirname(__FILE__)
5
5
  require 'rubygoo'
6
6
  require 'rubygame'
7
+ #require 'create_gui_pretty'
7
8
  require 'create_gui'
8
9
  include Rubygame
9
10
  include Rubygoo
@@ -1,4 +1,5 @@
1
1
  $: << File.dirname(__FILE__) + "/../lib"
2
2
  $: << File.dirname(__FILE__) + "/../lib/rubygoo"
3
+ require 'rubygems'
3
4
  require 'rubygoo'
4
5
  include Rubygoo
@@ -4,16 +4,24 @@ describe Widget do
4
4
 
5
5
  describe "basic widget behavior" do
6
6
  before :each do
7
- # @widget = Map.new
7
+ @widget = Widget.new
8
8
  end
9
9
 
10
10
  it "should merge in defaults for any options not given" do
11
- @widget = Widget.new
12
11
  for k,v in Widget::DEFAULT_PARAMS
13
12
  @widget.instance_variable_get("@#{k}").should == v
14
13
  end
15
14
  end
16
15
 
16
+ it "should define props methods for each of the default params" do
17
+ Widget::DEFAULT_PARAMS.keys.each_with_index do |k,i|
18
+ @widget.should.respond_to? k
19
+ @widget.send(k,i)
20
+ @widget.send(k).should == i
21
+ end
22
+
23
+ end
24
+
17
25
  end
18
26
 
19
27
  end
@@ -29,3 +29,5 @@ Rubygoo::TextField:
29
29
  Rubygoo::MouseCursor:
30
30
  :color: :DarkSlateGray
31
31
  :mouse_cursor: cursor.png
32
+ :clicky: # can do theming by id
33
+ :bg_color: :Violet
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubygoo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shawn Anderson
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-12-06 00:00:00 -08:00
12
+ date: 2009-02-09 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: 1.8.2
53
+ version: 1.8.3
54
54
  version:
55
55
  description: GUI library for use with Gosu or Rubygame
56
56
  email: shawn42@gmail.com
@@ -68,14 +68,9 @@ files:
68
68
  - README.txt
69
69
  - Rakefile
70
70
  - TODO
71
- - docs/Picture 1.png
72
- - docs/ui/UI.hpp
73
- - docs/ui/abutton.png
74
- - docs/ui/background.png
75
- - docs/ui/button.png
76
- - docs/ui/moveable.png
77
- - docs/ui/textbutton.png
78
71
  - lib/code_statistics.rb
72
+ - lib/inflections.rb
73
+ - lib/inflector.rb
79
74
  - lib/platform.rb
80
75
  - lib/rubygoo.rb
81
76
  - lib/rubygoo/adapters/adapter_factory.rb
@@ -133,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
128
  requirements: []
134
129
 
135
130
  rubyforge_project: rubygoo
136
- rubygems_version: 1.2.0
131
+ rubygems_version: 1.3.1
137
132
  signing_key:
138
133
  specification_version: 2
139
134
  summary: Easy to use gui library for Rubygame or Gosu.
Binary file
@@ -1,425 +0,0 @@
1
- #ifndef UI_HPP
2
- #define UI_HPP
3
-
4
- #include <boost/function.hpp>
5
- #include <Gosu/Input.hpp>
6
- #include <Gosu/Font.hpp>
7
- #include <Gosu/TextInput.hpp>
8
- #include <boost/bind.hpp>
9
- #include <Gosu/Utility.hpp>
10
- #include <Gosu/Graphics.hpp>
11
- #include <Gosu/Directories.hpp>
12
-
13
- // Comment out these lines if you're using the same thing anyway.
14
- typedef boost::shared_ptr<Gosu::Image> Image; // Ich brauch einen tollen Namen D:
15
- typedef std::vector<Image> Animation;
16
- enum ZOrder {
17
- zBackground,
18
- zSomething,
19
- zOMG, // sorry about this.
20
- zUI,
21
- zUIButton,
22
- zCursor;
23
- };
24
- // if you don't, you may want to uncomment these.
25
- /*
26
- void loadImage(std::wstring filename, Image &loadTo, Gosu::Graphics& graphics, bool hardBorder) {
27
- loadTo.reset(new Gosu::Image(graphics, Gosu::sharedResourcePrefix() + L"media/" + filename, hardBorder));
28
- }
29
-
30
- void loadAnimation(std::wstring filename, Animation &loadTo, Gosu::Graphics& graphics, int width, int height, bool hardBorder) {
31
- Gosu::imagesFromTiledBitmap(graphics, Gosu::sharedResourcePrefix() + L"media/" + filename, width, height, hardBorder, loadTo);
32
- }
33
- */
34
-
35
- // Change this.
36
- #define WINDOW_WIDTH 800
37
- #define WINDOW_HEIGHT 600
38
-
39
- /*
40
- For the best usage you define a "Mother-Widget". Example code:
41
-
42
- class GameWindow : public Gosu::Window {
43
- protected:
44
- Widget widgets, *background, *acontainer, *txtbtn;
45
- public:
46
- GameWindow()
47
- : Gosu::Window(WINDOW_WIDTH, WINDOW_HEIGHT, false, 20) {
48
- background = new Widget(L"background.png", graphics(), 0, 0, zBackground);
49
- widgets->add(background);
50
- Button* btn1 = new Button(L"button.png", graphics(), 20, 20, zUIButton);
51
- background->add(btn1);
52
- btn1->onLeftClick = boost::bind(&GameWindow::explode, this);
53
- AdvButton* btn2 = new AdvButton(L"abutton.png", graphics(), 50, 50, 40, 40, zUIButton);
54
- widgets->add(btn2);
55
- acontainer = new Moveable(L"moveable.png", graphics(), 200, 200, zUI, 120, 40);
56
- txtbtn = new AdvTextButton(L"textbutton.png", graphics(), 205, 250, 132, 22, Gosu::defaultFontName(), L"Hello World", true);
57
- txtbtn->onLeftClick = boost::bind(&GameWindow::noWorld, this);
58
- acontainer->addWidget(txtbtn);
59
- }
60
-
61
- void buttonDown(Gosu::Button btn) {
62
- if (btn == Gosu::kbF7) {
63
- if (background->isVisible()) background->hide(),
64
- else background->show();
65
- } else if (btn == Gosu::kbF8) {
66
- if (acointainer->isVisible()) acontainer->hide();
67
- else acointainer->show();
68
- } else if (btn == Gosu::kbF9) {
69
- // force txtbtn to show >:[
70
- txtbtn->show(true);
71
- }
72
- widgets.buttonDown(btn, input());
73
- }
74
-
75
- void buttonUp(Gosu::Button btn) {
76
- widgets.buttonUp(btn, input());
77
- }
78
-
79
- void update() {
80
- widgets.update(input());
81
- }
82
-
83
- void draw() {
84
- widgets.draw(input());
85
- }
86
-
87
- void explode() {
88
- exit(-42);
89
- }
90
-
91
- void noWorld() {
92
- txtbtn->setText(L":((");
93
- background->deactivate();
94
- }
95
- };
96
-
97
- int main(int argc, char* argv[]) {
98
- GameWindow window;
99
- window.show();
100
- }
101
- */
102
- class Widget;
103
- typedef std::vector<Widget*> Widgets;
104
-
105
- enum AdvTxtBtnKeep {
106
- tbkNone = -1,
107
- tbkNormal = 0,
108
- tbkHover = 1,
109
- tbkPressed = 2,
110
- tbkDisabled = 3
111
- };
112
- /**
113
- * Mutter aller Grafikelemente! Kann abgeleitet werden und funktioniert rekursiv bis ~ewig!
114
- * X/Y/Z: Selbsterkl�rend
115
- * Widgets sind eigentlich nicht zum bewegen geeignet.
116
- * Sie k�nnen zwar verschoben werden (setX, setY: nur dieses; move(ox,oy): rekursiv).
117
- * widgets k�nnen sich X und Y wiederholen (festlegbar).
118
- * Sie sind deaktivierbar und versteckbar. Ersters hat keine Funktion in Widget.
119
- */
120
-
121
- class Widget {
122
- protected:
123
- Widgets widgets, addQueue;
124
- Image image;
125
- int x, y;
126
- ZOrder z;
127
- bool active, visible, noAutoShow, locked;
128
- WidgetType type;
129
- public:
130
- Widget(int x = 0, int y = 0, ZOrder z = zBackground, bool noAutoShow = false) {
131
- this->x = x;
132
- this->y = y;
133
- this->z = z;
134
- active = visible = true;
135
- locked = false;
136
- this->noAutoShow = noAutoShow;
137
- type = wtWidget;
138
- }
139
-
140
- Widget(Image& image, int x, int y, ZOrder z, bool noAutoShow = false) {
141
- this->image = image;
142
- this->x = x;
143
- this->y = y;
144
- this->z = z;
145
- active = visible = true;
146
- type = wtWidget;
147
- this->noAutoShow = noAutoShow;
148
- }
149
-
150
- Widget(std::wstring name, Gosu::Graphics& graphics, int x, int y, ZOrder z, bool noAutoShow = false) {
151
- loadImage(name, image, graphics);
152
- this->x = x;
153
- this->y = y;
154
- this->z = z;
155
- active = visible = true;
156
- type = wtWidget;
157
- this->noAutoShow = noAutoShow;
158
- }
159
- // Gosu related
160
- virtual void draw(Gosu::Input& input);
161
- virtual void update(Gosu::Input& input);
162
- virtual void buttonUp(Gosu::Button& btn, Gosu::Input& input); // Redirect call
163
- virtual void buttonDown(Gosu::Button& btn, Gosu::Input& input); // Redirect call
164
- virtual void move(int vx, int vy); // bewegt um vx/vy; alle untergeordneten auch.
165
- int getX() { return x; }
166
- int getY() { return y; }
167
- ZOrder getZ() { return z; }
168
- virtual Image getImage() { return image; }
169
- void setX(int x) { this->x = x; }
170
- void setY(int y) { this->y = y; }
171
- void setZ(ZOrder z) { this->z = z; }
172
- WidgetType getType() { return type; }
173
- void addWidget(Widget* widget); // unterwidget hinzuf�gen
174
- void remWidget(Widget* widget); // unterwidget l�schen
175
- // (De-)aktivieren
176
- void activate();
177
- void deactivate();
178
- bool isActive() { return active; }
179
- // verstecken/anzeigen
180
- void hide();
181
- void show(bool force = false); // force: erzwinge anzeigen. hat nur mit noAutoShow effekt.
182
- bool isVisible() { return visible; }
183
- virtual ~Widget();
184
- };
185
-
186
- /**
187
- * Movable. Sie (und alles untergeordnete) verschiebt sich. Lustige Sache.
188
- *
189
- */
190
- class Moveable : public Widget {
191
- int omx, omy, wdt, hgt, twdt, thgt;
192
- bool moving;
193
- public:
194
- static std::vector<Moveable*> moveables;
195
- boost::function<void(Moveable*)> onTitleLeftClick, onTitleRightClick;
196
- Moveable(Image& image, int x, int y, ZOrder z, int titleWidth, int titleHeight)
197
- : Widget(image, x, y, z) {
198
- moving = false;
199
- omx = omy = 0;
200
- wdt = image->width();
201
- hgt = image->height();
202
- twdt = titleWidth;
203
- thgt = titleHeight;
204
- type = wtMoveable;
205
- Moveable::moveables.push_back(this);
206
- }
207
-
208
- Moveable(std::wstring name, Gosu::Graphics& graphics, int x, int y, ZOrder z, int titleWidth, int titleHeight)
209
- :Widget(name, graphics, x, y, z) {
210
- moving = false;
211
- omx = omy = 0;
212
- wdt = image->width();
213
- hgt = image->height();
214
- twdt = titleWidth;
215
- thgt = titleHeight;
216
- type = wtMoveable;
217
- Moveable::moveables.push_back(this);
218
- }
219
-
220
- void update(Gosu::Input& input);
221
- void buttonDown(Gosu::Button& btn, Gosu::Input& input);
222
- void buttonUp(Gosu::Button& btn, Gosu::Input& input);
223
- void move(int vx, int vy);
224
- };
225
-
226
- /**
227
- * Primitiver Button der nur f�r Mausklicks zust�ndig ist.
228
- * 2 calls: onLeftClick, onRightClick. Param jeweils Button* btn
229
- */
230
- class Button : public Widget {
231
- protected:
232
- int width, height;
233
- bool focus;
234
- Button* next;
235
- public:
236
- static Button* btnFocus;
237
- boost::function<void (Button*)> onRightClick, onLeftClick;
238
-
239
- Button(int x = 0, int y = 0, ZOrder z = zBackground, bool noAutoShow = false)
240
- : Widget(x, y, z, noAutoShow) {
241
- width = height = 0;
242
- focus = false;
243
- next = NULL;
244
- type = wtButton;
245
- }
246
-
247
- Button(Image& image, int x, int y, ZOrder z, bool noAutoShow = false)
248
- : Widget(image, x, y, z, noAutoShow) {
249
- width = image->width();
250
- height = image->height();
251
- focus = false;
252
- next = NULL;
253
- type = wtButton;
254
- }
255
-
256
- Button(std::wstring name, Gosu::Graphics& graphics, int x, int y, ZOrder z, bool noAutoShow = false)
257
- : Widget(name, graphics, x, y, z, noAutoShow) {
258
- loadImage(name, image, graphics);
259
- width = image->width();
260
- height = image->height();
261
- focus = false;
262
- next = NULL;
263
- type = wtButton;
264
- }
265
-
266
- virtual void update(Gosu::Input& input);
267
- virtual void buttonUp(Gosu::Button& btn, Gosu::Input& input);
268
- static void buttonUpAll(Gosu::Button& btn, Gosu::Input& input);
269
- virtual void setFocus(bool woot) { focus = woot; }
270
- virtual void setNextFocus(Button* toFocus) { next = toFocus; }
271
- virtual void onFocus(Button* from, Gosu::Input& input);
272
- virtual void onDefocus(Button* from, Gosu::Input& input);
273
- };
274
-
275
- /**
276
- * Textbutton: Dynamischer erzeugte Buttons
277
- */
278
-
279
- class TextButton : public Button {
280
- protected:
281
- Gosu::Font* font;
282
- std::wstring text;
283
- public:
284
- TextButton(Image& image, int x, int y, ZOrder z, Gosu::Graphics& graphics, std::wstring fontName, std::wstring text, bool noAutoShow = false)
285
- : Button(image, x, y, z, noAutoShow) {
286
- font = new Gosu::Font(graphics, fontName, image->height()-5);
287
- this->text = text;
288
- }
289
-
290
- TextButton(Image& image, int x, int y, ZOrder z, Gosu::Font* font, std::wstring text, bool noAutoShow = false)
291
- : Button(image, x, y, z, noAutoShow) {
292
- this->font = font;
293
- this->text = text;
294
- }
295
-
296
- TextButton(std::wstring name, Gosu::Graphics& graphics, int x, int y, ZOrder z, std::wstring fontName, std::wstring text, bool noAutoShow = false)
297
- : Button(name, graphics, x, y, z, noAutoShow) {
298
- font = new Gosu::Font(graphics, fontName, image->height()-5);
299
- this->text = text;
300
- }
301
-
302
- TextButton(std::wstring name, Gosu::Graphics& graphics, int x, int y, ZOrder z, Gosu::Font* font, std::wstring text, bool noAutoShow = false)
303
- : Button(name, graphics, x, y, z, noAutoShow) {
304
- this->font = font;
305
- this->text = text;
306
- }
307
-
308
- TextButton(int x, int y, ZOrder z, Gosu::Graphics& graphics, std::wstring fontname, std::wstring text, int height, bool noAutoShow = false)
309
- : Button(x, y, z, noAutoShow) {
310
- font = new Gosu::Font(graphics, fontname, height-5);
311
- this->text = text;
312
- }
313
-
314
- TextButton(int x, int y, ZOrder z, Gosu::Font* font, std::wstring text, bool noAutoShow = false)
315
- : Button(x, y, z, noAutoShow) {
316
- this->font = font;
317
- this->text = text;
318
- }
319
-
320
- std::wstring getText() { return text; }
321
- Gosu::Font* getFont() { return font; }
322
- void setText(std::wstring newText) { text = newText; }
323
-
324
- void draw(Gosu::Input& input);
325
- };
326
-
327
- /**
328
- * Input Klasse. Abgeleitet von Button f�r width/height Zeug + FOKUS!
329
- */
330
-
331
- class Input : public Button {
332
- protected:
333
- Gosu::TextInput textInput;
334
- Gosu::Font font;
335
- public:
336
- Input(Image& image, int x, int y, ZOrder z, Gosu::Graphics& graphics, std::wstring fontName)
337
- : Button(image, x, y, z), font(graphics, fontName, image->height()-5) {
338
- type = wtInput;
339
- }
340
-
341
- Input(std::wstring name, Gosu::Graphics& graphics, int x, int y, ZOrder z, std::wstring fontName)
342
- : Button(name, graphics, x, y, z), font(graphics, fontName, image->height()-5) {
343
- type = wtInput;
344
- }
345
- void buttonUp(Gosu::Button& btn, Gosu::Input& input);
346
- virtual void draw(Gosu::Input& input);
347
- std::string text() { return Gosu::narrow(textInput.text()); }
348
- void reset() { textInput.setText(L""); }
349
- void onFocus(Button* from, Gosu::Input& input);
350
- void onDefocus(Button* from, Gosu::Input& input);
351
- protected:
352
- void ThereCanBeOnlyOne(Gosu::Input& input);
353
- };
354
- /**
355
- * AdvButtons sind 4-tile-ige Buttons.
356
- * die Reihenfolge dabei ist:
357
- * - Normal
358
- * - onHover
359
- * - onClick
360
- * - disabled
361
- * Sie sind/sollten nicht weiter vererbt werden weil draw() das nicht weitergibt.
362
- * wozu auch. mit 2 advbuttons arbeiten ist h�sslich.
363
- */
364
- class AdvButton : public Button {
365
- Animation* animation;
366
- public:
367
- AdvButton(Animation* animation, int x, int y, ZOrder z, bool noAutoShow = false)
368
- : Button(x, y, z, noAutoShow) {
369
- this->animation = animation;
370
- width = animation->at(0)->width();
371
- height = animation->at(0)->height();
372
- assert(animation->size() == 4);
373
- type = wtAdvButton;
374
- }
375
-
376
- AdvButton(std::wstring name, Gosu::Graphics& graphics, int x, int y, int width, int height, ZOrder z, bool noAutoShow = false)
377
- : Button(x, y, z, noAutoShow) {
378
- animation = new Animation();
379
- loadAnimation(name, *animation, graphics, width, height);
380
- assert(animation->size() == 4);
381
- this->width = width;
382
- this->height = height;
383
- type = wtAdvButton;
384
- }
385
- virtual void draw(Gosu::Input& input);
386
- Image getImage() { return animation->at(0); }
387
- Animation* getAnimation() { return animation; }
388
- };
389
-
390
- /**
391
- * AdvButton + TextButton
392
- *
393
- */
394
-
395
- class AdvTextButton : public TextButton {
396
- protected:
397
- Animation* animation;
398
- AdvTxtBtnKeep keepState;
399
- public:
400
- AdvTextButton(std::wstring name, Gosu::Graphics& graphics, int x, int y, ZOrder z, int width, int height, std::wstring fontname, std::wstring text, bool noAutoShow = false)
401
- :TextButton(x, y, z, graphics, fontname, text, height, noAutoShow)
402
- {
403
- animation = new Animation();
404
- loadAnimation(name, *animation, graphics, width, height);
405
- keepState = tbkNone;
406
- this->width = width;
407
- this->height = height;
408
- }
409
-
410
- AdvTextButton(Animation* animation, int x, int y, ZOrder z, Gosu::Font* font, std::wstring text, bool noAutoShow = false)
411
- :TextButton(x, y, z, font, text, noAutoShow) {
412
- this->animation = animation;
413
- keepState = tbkNone;
414
- this->width = animation->at(0)->width();
415
- this->height = animation->at(0)->height();
416
- }
417
-
418
- Image getImage() { return animation->at(0); }
419
- void draw(Gosu::Input& input);
420
- Animation* getAnimation() { return animation; }
421
- AdvTxtBtnKeep getKeepState() { return keepState; }
422
- void setKeepState(AdvTxtBtnKeep keep) { keepState = keep; }
423
- };
424
- #endif
425
-