source: branches/active/gui_enhancements/engine/core/gui/fifechan/lib/widgets.i @ 3988

Revision 3988, 13.1 KB checked in by vdaras, 6 years ago (diff)

Exposed fifechan's IconProgressBar? to pychan. [t:721]

Line 
1/***************************************************************************
2 *   Copyright (C) 2005-2008 by the FIFE team                              *
3 *   http://www.fifengine.de                                               *
4 *   This file is part of FIFE.                                            *
5 *                                                                         *
6 *   FIFE is free software; you can redistribute it and/or                 *
7 *   modify it under the terms of the GNU Lesser General Public            *
8 *   License as published by the Free Software Foundation; either          *
9 *   version 2.1 of the License, or (at your option) any later version.    *
10 *                                                                         *
11 *   This library is distributed in the hope that it will be useful,       *
12 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
13 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *
14 *   Lesser General Public License for more details.                       *
15 *                                                                         *
16 *   You should have received a copy of the GNU Lesser General Public      *
17 *   License along with this library; if not, write to the                 *
18 *   Free Software Foundation, Inc.,                                       *
19 *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA          *
20 ***************************************************************************/
21
22%module fifechan
23%{
24#include <fifechan.hpp>
25%}
26
27namespace fcn {
28   class Font;
29   class Image;
30   class ActionListener;
31   class MouseListener;
32   class KeyListener;
33
34   %nodefaultctor;
35   class Graphics {
36   public:
37      enum Alignment {
38         Left = 0,
39         Center,
40         Right
41      };
42   };
43   %clearnodefaultctor;
44   
45   class Color {
46   public:
47      Color();
48      Color(int32_t color);
49      Color(int32_t r, int32_t g, int32_t b, int32_t a = 255);
50      Color operator+(const Color& color) const;
51      Color operator-(const Color& color) const;
52      Color operator*(float value) const;
53      bool operator==(const Color& color) const;
54      bool operator!=(const Color& color) const;
55      int32_t r;
56      int32_t g;
57      int32_t b;
58      int32_t a;
59   };
60
61   class Widget {
62   public:
63/*       Widget(); */
64/*       virtual ~Widget(); */
65      virtual void setWidth(int32_t width);
66      virtual int32_t getWidth() const;
67      virtual void setHeight(int32_t height);
68      virtual int32_t getHeight() const;
69      virtual void setSize(int32_t width, int32_t height);
70      virtual void setX(int32_t x);
71      virtual int32_t getX() const;
72      virtual void setY(int32_t y);
73      virtual int32_t getY() const;
74      virtual void setPosition(int32_t x, int32_t y);
75      virtual void setFrameSize(uint32_t frameSize);
76      virtual uint32_t getFrameSize() const;
77      virtual void setFocusable(bool focusable);
78      virtual bool isFocusable() const;
79      virtual bool isFocused() const;
80      virtual void setEnabled(bool enabled);
81      virtual bool isEnabled() const;
82      virtual void setVisible(bool visible);
83      virtual bool isVisible() const;
84      virtual void setBaseColor(const Color& color);
85      virtual const Color& getBaseColor() const;
86      virtual void setForegroundColor(const Color& color);
87      virtual const Color& getForegroundColor() const;
88      virtual void setBackgroundColor(const Color& color);
89      virtual const Color& getBackgroundColor() const;
90      virtual void setSelectionColor(const Color& color);
91      virtual const Color& getSelectionColor() const;
92      virtual void requestFocus();
93      virtual void requestMoveToTop();
94      virtual void requestMoveToBottom();
95      virtual void setActionEventId(const std::string& actionEventId);
96      virtual const std::string& getActionEventId() const;
97      virtual void getAbsolutePosition(int32_t& x, int32_t& y) const;
98      Font *getFont() const;
99      static void setGlobalFont(Font* font);
100      virtual void setFont(Font* font);
101      virtual bool isTabInEnabled() const;
102      virtual void setTabInEnabled(bool enabled);
103      virtual bool isTabOutEnabled() const;
104      virtual void setTabOutEnabled(bool enabled);
105      virtual void requestModalFocus();
106      virtual void requestModalMouseInputFocus();
107      virtual void releaseModalFocus();
108      virtual void releaseModalMouseInputFocus();
109      virtual bool isModalFocused() const;
110      virtual bool isModalMouseInputFocused() const;
111      virtual Widget *getWidgetAt(int32_t x, int32_t y);
112      virtual void moveToTop(Widget* widget) { };
113      virtual void moveToBottom(Widget* widget) { };
114      virtual void focusNext() { };
115      virtual void focusPrevious() { };
116      virtual void addActionListener(ActionListener* actionListener);
117      virtual void removeActionListener(ActionListener* actionListener);
118      virtual void addMouseListener(MouseListener* actionListener);
119      virtual void removeMouseListener(MouseListener* actionListener);
120      virtual void addKeyListener(KeyListener* actionListener);
121      virtual void removeKeyListener(KeyListener* actionListener);
122      virtual void addWidgetListener(WidgetListener* widgetListener);
123      virtual void removeWidgetListener(WidgetListener* widgetListener);
124/*    protected: */
125      virtual void draw(Graphics* graphics) = 0;
126   };
127   
128   %feature("notabstract") Container;
129   class Container: public Widget {
130   public:
131      Container();
132      virtual ~Container();
133      virtual void setOpaque(bool opaque);
134      virtual bool isOpaque() const;
135      virtual void add(Widget* widget);
136      virtual void add(Widget* widget, int32_t x, int32_t y);
137      virtual void remove(Widget* widget);
138      virtual void clear();
139   };
140   
141   %feature("notabstract") CheckBox;
142   class CheckBox: public Widget {
143   public:
144      CheckBox();
145      virtual ~CheckBox();
146      virtual bool isSelected() const;
147      virtual void setSelected(bool marked);
148      virtual const std::string &getCaption() const;
149      virtual void setCaption(const std::string& caption);
150      virtual void adjustSize();
151   };
152
153   
154   %feature("notabstract") Button;
155   class Button: public Widget {
156   public:
157      Button();
158      Button(const std::string& caption);
159      virtual void setCaption(const std::string& caption);
160      virtual const std::string& getCaption() const;
161      virtual void setAlignment(Graphics::Alignment alignment);
162      virtual Graphics::Alignment getAlignment() const;
163      virtual void adjustSize();
164      /*virtual bool isPressed() const;*/
165   };
166     
167   %feature("notabstract") ScrollArea;
168   class ScrollArea: public Widget {
169   public:
170      ScrollArea();
171      ScrollArea(Widget *content);
172      ScrollArea(Widget *content,ScrollArea::ScrollPolicy hPolicy,ScrollArea::ScrollPolicy vPolicy);
173      virtual ~ScrollArea();
174      virtual void setContent(Widget* widget);
175      virtual Widget* getContent();
176      virtual void setHorizontalScrollPolicy(ScrollArea::ScrollPolicy hPolicy);
177      virtual ScrollArea::ScrollPolicy getHorizontalScrollPolicy();
178      virtual void setVerticalScrollPolicy(ScrollArea::ScrollPolicy vPolicy);
179      virtual ScrollArea::ScrollPolicy getVerticalScrollPolicy();
180      virtual void setScrollPolicy(ScrollArea::ScrollPolicy hPolicy, ScrollArea::ScrollPolicy vPolicy);
181      virtual void setVerticalScrollAmount(int32_t vScroll);
182      virtual int32_t getVerticalScrollAmount();
183      virtual void setHorizontalScrollAmount(int32_t hScroll);
184      virtual int32_t getHorizontalScrollAmount();
185      virtual void setScrollAmount(int32_t hScroll, int32_t vScroll);
186      virtual int32_t getHorizontalMaxScroll();
187      virtual int32_t getVerticalMaxScroll();
188      virtual void setScrollbarWidth(int32_t width);
189      virtual int32_t getScrollbarWidth();
190      virtual void setLeftButtonScrollAmount(int32_t amount);
191      virtual void setRightButtonScrollAmount(int32_t amount);
192      virtual void setUpButtonScrollAmount(int32_t amount);
193      virtual void setDownButtonScrollAmount(int32_t amount);
194      virtual int32_t getLeftButtonScrollAmount();
195      virtual int32_t getRightButtonScrollAmount();
196      virtual int32_t getUpButtonScrollAmount();
197      virtual int32_t getDownButtonScrollAmount();
198      enum ScrollPolicy
199      {
200         ShowAlways,
201         ShowNever,
202         ShowAuto
203      };
204   };
205   
206
207   %feature("director") ListModel;
208   class ListModel
209   {
210   public:
211      virtual ~ListModel() { }
212      virtual int32_t getNumberOfElements() = 0;
213      virtual std::string getElementAt(int32_t i) = 0;
214   };
215
216   %feature("notabstract") ListBox;
217   class ListBox: public Widget {
218   public:
219      ListBox();
220      ListBox(ListModel *listModel);
221      virtual ~ListBox() { }
222      virtual int32_t getSelected();
223      virtual void setSelected(int32_t selected);
224      virtual void setListModel(ListModel *listModel);
225      virtual ListModel *getListModel();
226      virtual void adjustSize();
227      virtual bool isWrappingEnabled();
228      virtual void setWrappingEnabled(bool wrapping);
229   };
230
231   %feature("notabstract") DropDown;
232   class DropDown: public Widget {
233   public:
234      DropDown(ListModel *listModel = NULL,
235               ScrollArea *scrollArea = NULL,
236               ListBox *listBox = NULL);
237      virtual ~DropDown();
238      virtual int32_t getSelected();
239      virtual void setSelected(int32_t selected);
240      virtual void setListModel(ListModel *listModel);
241      virtual ListModel *getListModel();
242      virtual void adjustHeight();
243      virtual void setBaseColor(const Color& color);
244      virtual const Color& getBaseColor() const;
245      virtual void setForegroundColor(const Color& color);
246      virtual const Color& getForegroundColor() const;
247      virtual void setBackgroundColor(const Color& color);
248      virtual const Color& getBackgroundColor() const;
249      virtual void setSelectionColor(const Color& color);
250      virtual const Color& getSelectionColor() const;
251   };
252
253   %feature("notabstract") RadioButton;
254   class RadioButton: public Widget {
255   public:
256      RadioButton();
257      RadioButton(const std::string &caption,
258               const std::string &group,
259               bool marked=false);
260      virtual ~RadioButton();
261      virtual bool isSelected() const;
262      virtual void setSelected(bool marked);
263      virtual const std::string &getCaption() const;
264      virtual void setCaption(const std::string caption);
265      virtual void setGroup(const std::string &group);
266      virtual const std::string &getGroup() const;
267      virtual void adjustSize();
268   };
269
270   %feature("notabstract") Slider;
271   class Slider: public Widget {
272   public:
273      Slider(double scaleEnd = 1.0);
274      Slider(double scaleStart, double scaleEnd);
275      virtual ~Slider() { }
276      virtual void setScale(double scaleStart, double scaleEnd);
277      virtual double getScaleStart() const;
278      virtual void setScaleStart(double scaleStart);
279      virtual double getScaleEnd() const;
280      virtual void setScaleEnd(double scaleEnd);
281      virtual double getValue() const;
282      virtual void setValue(double value);
283      virtual void setMarkerLength(int32_t length);
284      virtual int32_t getMarkerLength() const;
285      virtual void setOrientation(Slider::Orientation orientation);
286      virtual Slider::Orientation getOrientation() const;
287      virtual void setStepLength(double length);
288      virtual double getStepLength() const;
289      enum Orientation
290      {
291         Horizontal = 0,
292         Vertical
293      };
294   };
295
296   %feature("notabstract") Window;
297   class Window: public Container {
298   public:
299      Window();
300      Window(const std::string& caption);
301      virtual ~Window();
302      virtual void setCaption(const std::string& caption);
303      virtual const std::string& getCaption() const;
304      virtual void setAlignment(Graphics::Alignment alignment);
305      virtual Graphics::Alignment getAlignment() const;
306      virtual void setPadding(uint32_t padding);
307      virtual uint32_t getPadding() const;
308      virtual void setTitleBarHeight(uint32_t height);
309      virtual uint32_t getTitleBarHeight();
310      virtual void setMovable(bool movable);
311      virtual bool isMovable() const;
312      virtual void setOpaque(bool opaque);
313      virtual bool isOpaque();
314      virtual void resizeToContent();
315   };
316
317
318   %feature("notabstract") TextBox;
319   class TextBox: public Widget {
320   public:
321      TextBox();
322      TextBox(const std::string& text);
323      virtual void setText(const std::string& text);
324      virtual std::string getText() const;
325      virtual std::string getTextRow(int row) const;
326      virtual void setTextRow(int row, const std::string& text);
327      virtual int getNumberOfRows() const;
328      virtual int getCaretPosition() const;
329      virtual void setCaretPosition(int position);
330      virtual int getCaretRow() const;
331      virtual void setCaretRow(int row);
332      virtual int getCaretColumn() const;
333      virtual void setCaretColumn(int column);
334      virtual void setCaretRowColumn(int row, int column);
335      virtual void scrollToCaret();
336      virtual bool isEditable() const;
337      virtual void setEditable(bool editable);
338      virtual void addRow(const std::string row);
339      virtual bool isOpaque();
340      virtual void setOpaque(bool opaque);
341   };
342   
343   
344   %feature("notabstract") TextField;
345   class TextField: public Widget {
346   public:
347      TextField();
348      TextField(const std::string& text);
349      virtual ~TextField();
350      virtual void setText(const std::string& text);
351      virtual std::string getText() const;
352      virtual void adjustSize();
353      virtual void adjustHeight();
354      virtual void setCaretPosition(uint32_t position);
355      virtual uint32_t getCaretPosition() const;
356    };
357   
358   %feature("notabstract") PasswordField;
359   class PasswordField : public TextField {
360   public:
361      PasswordField(const std::string& text = "");
362      virtual ~PasswordField();
363   };
364   
365   %feature("notabstract") IconProgressBar;
366   class IconProgressBar : public Widget {
367   public:
368      IconProgressBar();
369      IconProgressBar(Image *image, int maxIcons);
370      virtual ~IconProgressBar();
371      void setImage(Image* image);
372      const Image* getImage() const;
373      void setMaxIcons(int32_t maxIcons);
374      int32_t getMaxIcons() const;
375      void setOrientation(IconProgressBar::Orientation orientation);
376      IconProgressBar::Orientation getOrientation() const;
377      void advance();
378      void reset();
379     
380      enum Orientation
381      {
382         HORIZONTAL = 0,
383         VERTICAL
384      };
385   };
386}
387
388
389
Note: See TracBrowser for help on using the repository browser.