Irrlicht 3D Engine
IGUIEnvironment.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2012 Nikolaus Gebhardt
2 // This file is part of the "Irrlicht Engine".
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
4 
5 #ifndef __I_GUI_ENVIRONMENT_H_INCLUDED__
6 #define __I_GUI_ENVIRONMENT_H_INCLUDED__
7 
8 #include "IReferenceCounted.h"
9 #include "IGUISkin.h"
10 #include "rect.h"
11 #include "EMessageBoxFlags.h"
12 #include "IEventReceiver.h"
13 #include "IXMLReader.h"
14 #include "path.h"
15 
16 namespace irr
17 {
18  class IOSOperator;
19  class IEventReceiver;
20 
21  namespace io
22  {
23  class IXMLWriter;
24  class IReadFile;
25  class IWriteFile;
26  class IFileSystem;
27  } // end namespace io
28  namespace video
29  {
30  class IVideoDriver;
31  class ITexture;
32  } // end namespace video
33 
34 namespace gui
35 {
36 
37 class IGUIElement;
38 class IGUIFont;
39 class IGUISpriteBank;
40 class IGUIScrollBar;
41 class IGUIImage;
42 class IGUIMeshViewer;
43 class IGUICheckBox;
44 class IGUIListBox;
45 class IGUITreeView;
46 class IGUIImageList;
47 class IGUIFileOpenDialog;
48 class IGUIColorSelectDialog;
49 class IGUIInOutFader;
50 class IGUIStaticText;
51 class IGUIEditBox;
52 class IGUISpinBox;
53 class IGUITabControl;
54 class IGUITab;
55 class IGUITable;
56 class IGUIContextMenu;
57 class IGUIComboBox;
58 class IGUIToolBar;
59 class IGUIButton;
60 class IGUIWindow;
61 class IGUIElementFactory;
62 
64 
70 class IGUIEnvironment : public virtual IReferenceCounted
71 {
72 public:
73 
75  virtual void drawAll() = 0;
76 
78 
83  virtual bool setFocus(IGUIElement* element) = 0;
84 
86 
87  virtual IGUIElement* getFocus() const = 0;
88 
90 
95  virtual IGUIElement* getHovered() const = 0;
96 
98 
102  virtual bool removeFocus(IGUIElement* element) = 0;
103 
105 
107  virtual bool hasFocus(IGUIElement* element) const = 0;
108 
110 
111  virtual video::IVideoDriver* getVideoDriver() const = 0;
112 
114 
115  virtual io::IFileSystem* getFileSystem() const = 0;
116 
118 
119  virtual IOSOperator* getOSOperator() const = 0;
120 
122  virtual void clear() = 0;
123 
125 
129  virtual bool postEventFromUser(const SEvent& event) = 0;
130 
132 
135  virtual void setUserEventReceiver(IEventReceiver* evr) = 0;
136 
138 
139  virtual IGUISkin* getSkin() const = 0;
140 
142 
154  virtual void setSkin(IGUISkin* skin) = 0;
155 
157 
162  virtual IGUISkin* createSkin(EGUI_SKIN_TYPE type) = 0;
163 
164 
166 
172  virtual IGUIImageList* createImageList( video::ITexture* texture,
173  core::dimension2d<s32> imageSize,
174  bool useAlphaChannel ) = 0;
175 
177 
182  virtual IGUIFont* getFont(const io::path& filename) = 0;
183 
185 
190  virtual IGUIFont* addFont(const io::path& name, IGUIFont* font) = 0;
191 
193  virtual void removeFont(IGUIFont* font) = 0;
194 
196 
199  virtual IGUIFont* getBuiltInFont() const = 0;
200 
202 
206  virtual IGUISpriteBank* getSpriteBank(const io::path& filename) = 0;
207 
209 
212  virtual IGUISpriteBank* addEmptySpriteBank(const io::path& name) = 0;
213 
215 
221  virtual IGUIElement* getRootGUIElement() = 0;
222 
224 
232  virtual IGUIButton* addButton(const core::rect<s32>& rectangle,
233  IGUIElement* parent=0, s32 id=-1, const wchar_t* text=0, const wchar_t* tooltiptext = 0) = 0;
234 
236 
246  virtual IGUIWindow* addWindow(const core::rect<s32>& rectangle, bool modal = false,
247  const wchar_t* text=0, IGUIElement* parent=0, s32 id=-1) = 0;
248 
250 
256  virtual IGUIElement* addModalScreen(IGUIElement* parent) = 0;
257 
259 
273  virtual IGUIWindow* addMessageBox(const wchar_t* caption, const wchar_t* text=0,
274  bool modal = true, s32 flags = EMBF_OK, IGUIElement* parent=0, s32 id=-1, video::ITexture* image=0) = 0;
275 
277 
285  virtual IGUIScrollBar* addScrollBar(bool horizontal, const core::rect<s32>& rectangle,
286  IGUIElement* parent=0, s32 id=-1) = 0;
287 
289 
300  virtual IGUIImage* addImage(video::ITexture* image, core::position2d<s32> pos,
301  bool useAlphaChannel=true, IGUIElement* parent=0, s32 id=-1, const wchar_t* text=0) = 0;
302 
304 
314  virtual IGUIImage* addImage(const core::rect<s32>& rectangle,
315  IGUIElement* parent=0, s32 id=-1, const wchar_t* text=0, bool useAlphaChannel=true) = 0;
316 
318 
326  virtual IGUICheckBox* addCheckBox(bool checked, const core::rect<s32>& rectangle,
327  IGUIElement* parent=0, s32 id=-1, const wchar_t* text=0) = 0;
328 
330 
337  virtual IGUIListBox* addListBox(const core::rect<s32>& rectangle,
338  IGUIElement* parent=0, s32 id=-1, bool drawBackground=false) = 0;
339 
341 
350  virtual IGUITreeView* addTreeView(const core::rect<s32>& rectangle,
351  IGUIElement* parent=0, s32 id=-1, bool drawBackground=false,
352  bool scrollBarVertical = true, bool scrollBarHorizontal = false) = 0;
353 
355 
362  virtual IGUIMeshViewer* addMeshViewer(const core::rect<s32>& rectangle,
363  IGUIElement* parent=0, s32 id=-1, const wchar_t* text=0) = 0;
364 
366 
379  virtual IGUIFileOpenDialog* addFileOpenDialog(const wchar_t* title=0,
380  bool modal=true, IGUIElement* parent=0, s32 id=-1,
381  bool restoreCWD=false, io::path::char_type* startDir=0) = 0;
382 
384 
393  virtual IGUIColorSelectDialog* addColorSelectDialog(const wchar_t* title = 0,
394  bool modal=true, IGUIElement* parent=0, s32 id=-1) = 0;
395 
397 
408  virtual IGUIStaticText* addStaticText(const wchar_t* text, const core::rect<s32>& rectangle,
409  bool border=false, bool wordWrap=true, IGUIElement* parent=0, s32 id=-1,
410  bool fillBackground = false) = 0;
411 
413 
427  virtual IGUIEditBox* addEditBox(const wchar_t* text, const core::rect<s32>& rectangle,
428  bool border=true, IGUIElement* parent=0, s32 id=-1) = 0;
429 
431 
441  virtual IGUISpinBox* addSpinBox(const wchar_t* text, const core::rect<s32>& rectangle,
442  bool border=true,IGUIElement* parent=0, s32 id=-1) = 0;
443 
445 
452  virtual IGUIInOutFader* addInOutFader(const core::rect<s32>* rectangle=0, IGUIElement* parent=0, s32 id=-1) = 0;
453 
455 
467  virtual IGUITabControl* addTabControl(const core::rect<s32>& rectangle,
468  IGUIElement* parent=0, bool fillbackground=false,
469  bool border=true, s32 id=-1) = 0;
470 
472 
482  virtual IGUITab* addTab(const core::rect<s32>& rectangle,
483  IGUIElement* parent=0, s32 id=-1) = 0;
484 
486 
494  virtual IGUIContextMenu* addContextMenu(const core::rect<s32>& rectangle,
495  IGUIElement* parent=0, s32 id=-1) = 0;
496 
498 
506  virtual IGUIContextMenu* addMenu(IGUIElement* parent=0, s32 id=-1) = 0;
507 
509 
517  virtual IGUIToolBar* addToolBar(IGUIElement* parent=0, s32 id=-1) = 0;
518 
520 
527  virtual IGUIComboBox* addComboBox(const core::rect<s32>& rectangle,
528  IGUIElement* parent=0, s32 id=-1) = 0;
529 
531 
539  virtual IGUITable* addTable(const core::rect<s32>& rectangle,
540  IGUIElement* parent=0, s32 id=-1, bool drawBackground=false) =0;
541 
543 
546  virtual IGUIElementFactory* getDefaultGUIElementFactory() const = 0;
547 
549 
553  virtual void registerGUIElementFactory(IGUIElementFactory* factoryToAdd) = 0;
554 
556 
557  virtual u32 getRegisteredGUIElementFactoryCount() const = 0;
558 
560 
562  virtual IGUIElementFactory* getGUIElementFactory(u32 index) const = 0;
563 
565 
570  virtual IGUIElement* addGUIElement(const c8* elementName, IGUIElement* parent=0) = 0;
571 
573 
576  virtual bool saveGUI(const io::path& filename, IGUIElement* start=0) = 0;
577 
579 
582  virtual bool saveGUI(io::IWriteFile* file, IGUIElement* start=0) = 0;
583 
585 
591  virtual bool loadGUI(const io::path& filename, IGUIElement* parent=0) = 0;
592 
594 
600  virtual bool loadGUI(io::IReadFile* file, IGUIElement* parent=0) = 0;
601 
603  virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const =0;
604 
606  virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0)=0;
607 
609  virtual void writeGUIElement(io::IXMLWriter* writer, IGUIElement* node) =0;
610 
612  virtual void readGUIElement(io::IXMLReader* reader, IGUIElement* node) =0;
613 };
614 
615 
616 } // end namespace gui
617 } // end namespace irr
618 
619 #endif
620 
The FileSystem manages files and archives and provides access to them.
Definition: IFileSystem.h:32
Default moveable window GUI element with border, caption and close icons.
Definition: IGUIWindow.h:21
Interface providing methods for making it easier to write XML files.
Definition: IXMLWriter.h:20
Element for fading out or in.
3d mesh viewing GUI element.
Provides a generic interface for attributes and their values and the possiblity to serialize them...
Definition: IAttributes.h:41
SEvents hold information about an event. See irr::IEventReceiver for details on event handling...
GUI Button interface.
Definition: IGUIButton.h:58
Single line edit box + spin buttons.
Definition: IGUISpinBox.h:20
Interface providing read acess to a file.
Definition: IReadFile.h:17
EGUI_SKIN_TYPE
Enumeration of available default skins.
Definition: IGUISkin.h:30
Sprite bank interface.
char c8
8 bit character variable.
Definition: irrTypes.h:31
struct holding data describing options
Combobox widget.
Definition: IGUIComboBox.h:19
GUI Check box interface.
Definition: IGUICheckBox.h:19
Everything in the Irrlicht Engine can be found in this namespace.
Definition: aabbox3d.h:12
A standard tab control.
GUI Environment. Used as factory and manager of all other GUI elements.
Interface providing write access to a file.
Definition: IWriteFile.h:17
Specifies a 2 dimensional size.
Definition: dimension2d.h:20
Font interface.
Definition: IGUIImageList.h:17
A skin modifies the look of the GUI elements.
Definition: IGUISkin.h:378
Multi or single line text label.
A tab-page, onto which other gui elements could be added.
Interface of an object which can receive events.
Default list box GUI element.
Definition: IGUIListBox.h:38
Font interface.
Definition: IGUIFont.h:39
signed int s32
32 bit signed variable.
Definition: irrTypes.h:66
Default scroll bar GUI element.
Definition: IGUIScrollBar.h:19
Flag for the ok button.
unsigned int u32
32 bit unsigned variable.
Definition: irrTypes.h:58
Interface providing easy read access to a XML file.
Definition: irrXML.h:275
Interface to driver which is able to perform 2d and 3d graphics functions.
Definition: IVideoDriver.h:256
The Operating system operator provides operation system specific methods and informations.
Definition: IOSOperator.h:15
Interface making it possible to dynamically create GUI elements.
Base class of all GUI elements.
Definition: IGUIElement.h:25
GUI Context menu interface.
Default list box GUI element.
Definition: IGUITable.h:89
Standard file chooser dialog.
Single line edit box for editing simple text.
Definition: IGUIEditBox.h:23
Stays at the top of its parent like the menu bar and contains tool buttons.
Definition: IGUIToolbar.h:21
Interface of a Video Driver dependent Texture.
Definition: ITexture.h:98
Base class of most objects of the Irrlicht Engine.
Default tree view GUI element.
Definition: IGUITreeView.h:225
Standard color chooser dialog.
GUI element displaying an image.
Definition: IGUIImage.h:20