diff engine/core/gui/widgets/widgets.i @ 0:4a0efb7baf70

* Datasets becomes the new trunk and retires after that :-)
author mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
date Sun, 29 Jun 2008 18:44:17 +0000
parents
children 6387bbc0c2d5
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/engine/core/gui/widgets/widgets.i	Sun Jun 29 18:44:17 2008 +0000
@@ -0,0 +1,397 @@
+/***************************************************************************
+ *   Copyright (C) 2005-2008 by the FIFE team                              *
+ *   http://www.fifengine.de                                               *
+ *   This file is part of FIFE.                                            *
+ *                                                                         *
+ *   FIFE is free software; you can redistribute it and/or modify          *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA              *
+ ***************************************************************************/
+
+%module fife
+%{
+#include <guichan.hpp>
+#include "gui/widgets/twobutton.h"
+#include "gui/widgets/clicklabel.h"
+#include "gui/widgets/icon2.hpp"
+%}
+
+namespace gcn {
+	class Font;
+	class Image;
+	class ActionListener;
+
+	%nodefaultctor;
+	class Graphics {
+	public:
+		enum Alignmnet {
+			LEFT = 0,
+			CENTER,
+			RIGHT
+		};
+	};
+	%clearnodefaultctor;
+
+	
+	class Color {
+	public:
+		Color();
+		Color(int color);
+		Color(int r, int g, int b, int a = 255);
+		Color operator+(const Color& color) const;
+		Color operator-(const Color& color) const;
+		Color operator*(float value) const;
+		bool operator==(const Color& color) const;
+		bool operator!=(const Color& color) const;
+		int r;
+		int g;
+		int b;
+		int a;
+	};
+
+	class Widget {
+	public:
+/* 		Widget(); */
+/* 		virtual ~Widget(); */
+		virtual void setWidth(int width);
+		virtual int getWidth() const;
+		virtual void setHeight(int height);
+		virtual int getHeight() const;
+		virtual void setSize(int width, int height);
+		virtual void setX(int x);
+		virtual int getX() const;
+		virtual void setY(int y);
+		virtual int getY() const;
+		virtual void setPosition(int x, int y);
+		virtual void setFrameSize(unsigned int frameSize);
+		virtual unsigned int getFrameSize() const;
+		virtual void setFocusable(bool focusable);
+		virtual bool isFocusable() const;
+		virtual bool isFocused() const;
+		virtual void setEnabled(bool enabled);
+		virtual bool isEnabled() const;
+		virtual void setVisible(bool visible);
+		virtual bool isVisible() const;
+		virtual void setBaseColor(const Color& color);
+		virtual const Color& getBaseColor() const;
+		virtual void setForegroundColor(const Color& color);
+		virtual const Color& getForegroundColor() const;
+		virtual void setBackgroundColor(const Color& color);
+		virtual const Color& getBackgroundColor() const;
+		virtual void requestFocus();
+		virtual void requestMoveToTop();
+		virtual void requestMoveToBottom();
+		virtual void setActionEventId(const std::string& actionEventId);
+		virtual const std::string& getActionEventId() const;
+		virtual void getAbsolutePosition(int& x, int& y) const;
+		Font *getFont() const;
+		static void setGlobalFont(Font* font);
+		virtual void setFont(Font* font);
+		virtual bool isTabInEnabled() const;
+		virtual void setTabInEnabled(bool enabled);
+		virtual bool isTabOutEnabled() const;
+		virtual void setTabOutEnabled(bool enabled);
+		virtual void requestModalFocus();
+		virtual void requestModalMouseInputFocus();
+		virtual void releaseModalFocus();
+		virtual void releaseModalMouseInputFocus();
+		virtual bool isModalFocused() const;
+		virtual bool isModalMouseInputFocused() const;
+		virtual Widget *getWidgetAt(int x, int y);
+		virtual void moveToTop(Widget* widget) { };
+		virtual void moveToBottom(Widget* widget) { };
+		virtual void focusNext() { };
+		virtual void focusPrevious() { };
+		virtual void addActionListener(ActionListener* actionListener);
+/* 	protected: */
+		virtual void draw(Graphics* graphics) = 0;
+	};
+	
+	%feature("notabstract") Container;
+	class Container: public Widget {
+	public:
+		Container();
+		virtual ~Container();
+		virtual void setOpaque(bool opaque);
+		virtual bool isOpaque() const;
+		virtual void add(Widget* widget);
+		virtual void add(Widget* widget, int x, int y);
+		virtual void remove(Widget* widget);
+		virtual void clear();
+	};
+	
+	%feature("notabstract") CheckBox;
+	class CheckBox: public Widget {
+	public:
+		CheckBox();
+		virtual ~CheckBox();
+		virtual bool isSelected() const;
+		virtual void setSelected(bool marked);
+		virtual const std::string &getCaption() const;
+		virtual void setCaption(const std::string& caption);
+		virtual void adjustSize();
+	};
+
+	%feature("notabstract") TextField;
+	class TextField: public Widget {
+	public:
+		TextField();
+		TextField(const std::string& text);
+		virtual void setText(const std::string& text);
+		virtual const std::string& getText() const;
+		virtual void adjustSize();
+		virtual void adjustHeight();
+		virtual void setCaretPosition(unsigned int position);
+		virtual unsigned int getCaretPosition() const;
+	};
+
+	%feature("notabstract") Button;
+	class Button: public Widget {
+	public:
+		Button();
+		Button(const std::string& caption);
+		virtual void setCaption(const std::string& caption);
+		virtual const std::string& getCaption() const;
+		virtual void setAlignment(Graphics::Alignment alignment);
+		virtual Graphics::Alignment getAlignment() const;
+		virtual void adjustSize();
+		/*virtual bool isPressed() const;*/
+	};
+
+	
+	class TwoButton;
+	%feature("director") TwoButtonListener;
+	class TwoButtonListener {
+	public:
+		virtual ~TwoButtonListener();
+		virtual void mouseEntered(TwoButton& btn) = 0;
+		virtual void mouseExited(TwoButton& btn) = 0;
+	};
+		
+	%feature("notabstract") TwoButton;
+	class TwoButton: public Widget {
+	public:
+		TwoButton(Image *up_image = 0, Image *down_image = 0, Image *hover_image = 0, const char * caption = "");
+		~TwoButton();
+		virtual void setCaption(const std::string& caption);
+		virtual const std::string& getCaption() const;
+		virtual void setAlignment(Graphics::Alignment alignment);
+		virtual Graphics::Alignment getAlignment() const;
+		void setUpImage(Image* image);
+		void setDownImage(Image* image);
+		void setHoverImage(Image* image);
+		void setDownOffset(int x, int y);
+		int getDownXOffset();
+		int getDownYOffset();
+		void setListener(TwoButtonListener* listener);
+		TwoButtonListener* getListener();
+
+		void setHelpText(const std::string& txt);
+		const std::string& getHelpText();
+	};
+
+	%feature("notabstract") ScrollArea;
+	class ScrollArea: public Widget {
+	public:
+		ScrollArea();
+		ScrollArea(Widget *content);
+		ScrollArea(Widget *content,ScrollArea::ScrollPolicy hPolicy,ScrollArea::ScrollPolicy vPolicy);
+		virtual ~ScrollArea();
+		virtual void setContent(Widget* widget);
+		virtual Widget* getContent();
+		virtual void setHorizontalScrollPolicy(ScrollArea::ScrollPolicy hPolicy);
+		virtual ScrollArea::ScrollPolicy getHorizontalScrollPolicy();
+		virtual void setVerticalScrollPolicy(ScrollArea::ScrollPolicy vPolicy);
+		virtual ScrollArea::ScrollPolicy getVerticalScrollPolicy();
+		virtual void setScrollPolicy(ScrollArea::ScrollPolicy hPolicy, ScrollArea::ScrollPolicy vPolicy);
+		virtual void setVerticalScrollAmount(int vScroll);
+		virtual int getVerticalScrollAmount();
+		virtual void setHorizontalScrollAmount(int hScroll);
+		virtual int getHorizontalScrollAmount();
+		virtual void setScrollAmount(int hScroll, int vScroll);
+		virtual int getHorizontalMaxScroll();
+		virtual int getVerticalMaxScroll();
+		virtual void setScrollbarWidth(int width);
+		virtual int getScrollbarWidth();
+		virtual void setLeftButtonScrollAmount(int amount);
+		virtual void setRightButtonScrollAmount(int amount);
+		virtual void setUpButtonScrollAmount(int amount);
+		virtual void setDownButtonScrollAmount(int amount);
+		virtual int getLeftButtonScrollAmount();
+		virtual int getRightButtonScrollAmount();
+		virtual int getUpButtonScrollAmount();
+		virtual int getDownButtonScrollAmount();
+		enum ScrollPolicy
+		{
+			SHOW_ALWAYS,
+			SHOW_NEVER,
+			SHOW_AUTO
+		};
+	};
+	
+	
+	%feature("notabstract") TextBox;
+	class TextBox: public Widget {
+	public:
+		TextBox();
+		TextBox(const std::string& text);
+		virtual void setText(const std::string& text);
+		virtual std::string getText() const;
+		virtual const std::string& getTextRow(int row) const;
+		virtual void setTextRow(int row, const std::string& text);
+		virtual unsigned int getNumberOfRows() const;
+		virtual unsigned int getCaretPosition() const;
+		virtual void setCaretPosition(unsigned int position);
+		virtual unsigned int getCaretRow() const;
+		virtual void setCaretRow(int row);
+		virtual unsigned int getCaretColumn() const;
+		virtual void setCaretColumn(int column);
+		virtual void setCaretRowColumn(int row, int column);
+		virtual void scrollToCaret();
+		virtual bool isEditable() const;
+		virtual void setEditable(bool editable);
+		virtual void addRow(const std::string row);
+		virtual bool isOpaque();
+		virtual void setOpaque(bool opaque);
+	};
+
+	%feature("director") ListModel;
+	class ListModel
+	{
+	public:
+		virtual ~ListModel() { }
+		virtual int getNumberOfElements() = 0;
+		virtual std::string getElementAt(int i) = 0;
+	};
+
+	%feature("notabstract") ListBox;
+	class ListBox: public Widget {
+	public:
+		ListBox();
+		ListBox(ListModel *listModel);
+		virtual ~ListBox() { }
+		virtual int getSelected();
+		virtual void setSelected(int selected);
+		virtual void setListModel(ListModel *listModel);
+		virtual ListModel *getListModel();
+		virtual void adjustSize();
+		virtual bool isWrappingEnabled();
+		virtual void setWrappingEnabled(bool wrapping);
+	};
+
+	%feature("notabstract") DropDown;
+	class DropDown: public Widget {
+	public:
+		DropDown(ListModel *listModel = NULL,
+		         ScrollArea *scrollArea = NULL,
+		         ListBox *listBox = NULL);
+		virtual ~DropDown();
+		virtual int getSelected();
+		virtual void setSelected(int selected);
+		virtual void setListModel(ListModel *listModel);
+		virtual ListModel *getListModel();
+		virtual void adjustHeight();
+	};
+
+	%feature("notabstract") RadioButton;
+	class RadioButton: public Widget {
+	public:
+		RadioButton();
+		RadioButton(const std::string &caption,
+					const std::string &group,
+					bool marked=false);
+		virtual ~RadioButton();
+		virtual bool isSelected() const;
+		virtual void setSelected(bool marked);
+		virtual const std::string &getCaption() const;
+		virtual void setCaption(const std::string caption);
+		virtual void setGroup(const std::string &group);
+		virtual const std::string &getGroup() const;
+		virtual void adjustSize();
+	};
+
+	%feature("notabstract") Slider;
+	class Slider: public Widget {
+	public:
+		Slider(double scaleEnd = 1.0);
+		Slider(double scaleStart, double scaleEnd);
+		virtual ~Slider() { }
+		virtual void setScale(double scaleStart, double scaleEnd);
+		virtual double getScaleStart() const;
+		virtual void setScaleStart(double scaleStart);
+		virtual double getScaleEnd() const;
+		virtual void setScaleEnd(double scaleEnd);
+		virtual double getValue() const;
+		virtual void setValue(double value);
+		virtual void setMarkerLength(int length);
+		virtual int getMarkerLength() const;
+		virtual void setOrientation(Slider::Orientation orientation);
+		virtual Slider::Orientation getOrientation() const;
+		virtual void setStepLength(double length);
+		virtual double getStepLength() const;
+		enum Orientation
+		{
+			HORIZONTAL = 0,
+			VERTICAL
+		};
+	};
+
+	%feature("notabstract") Window;
+	class Window: public Container {
+	public:
+		Window();
+		Window(const std::string& caption);
+		virtual ~Window();
+		virtual void setCaption(const std::string& caption);
+		virtual const std::string& getCaption() const;
+		virtual void setAlignment(Graphics::Alignment alignment);
+		virtual Graphics::Alignment getAlignment() const;
+		virtual void setPadding(unsigned int padding);
+		virtual unsigned int getPadding() const;
+		virtual void setTitleBarHeight(unsigned int height);
+		virtual unsigned int getTitleBarHeight();
+		virtual void setMovable(bool movable);
+		virtual bool isMovable() const;
+		virtual void setOpaque(bool opaque);
+		virtual bool isOpaque();
+		virtual void resizeToContent();
+	};
+
+	%feature("notabstract") ClickLabel;
+	%rename(Label) ClickLabel;
+	class ClickLabel: public Widget {
+	public:
+		ClickLabel();
+		ClickLabel(const std::string& caption);
+		virtual ~ClickLabel();
+		virtual void setCaption(const std::string& caption);
+		virtual const std::string& getCaption() const;
+		bool isTextWrapping() const;
+		void setTextWrapping(bool);
+		virtual void setWidth(int width);
+		virtual void adjustSize();
+	};
+
+	%feature("notabstract") Icon2;
+	%rename(Icon) Icon2;
+	class Icon2: public Widget {
+	public:
+		Icon2(Image* image);
+		virtual ~Icon2();
+		void setImage(Image* image);
+	};
+}
+
+
+