mirror of
https://github.com/minetest/irrlicht.git
synced 2024-12-25 02:00:30 +01:00
0c6385cb92
Usually something like __IRR_SOME_GUARD_INCLUDED__ replaced by IRR_SOME_GUARD_INCLUDED. Removing underscores at the end wasn't necessary, but more symmetric (probably the reason they got added there as well). While this touches every header it shouldn't affect users (I hope). Also a few whitespace changes to unify whitespace usage a bit. And a bunch of spelling fixes in comments. git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6252 dfc29bdd-3216-0410-991c-e03cc46cb475
74 lines
2.7 KiB
C++
74 lines
2.7 KiB
C++
// Copyright (C) 2002-2012 Nikolaus Gebhardt
|
|
// This file is part of the "Irrlicht Engine".
|
|
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
|
|
|
#ifndef IRR_I_GUI_WINDOW_H_INCLUDED
|
|
#define IRR_I_GUI_WINDOW_H_INCLUDED
|
|
|
|
#include "IGUIElement.h"
|
|
#include "EMessageBoxFlags.h"
|
|
|
|
namespace irr
|
|
{
|
|
namespace gui
|
|
{
|
|
class IGUIButton;
|
|
|
|
//! Default moveable window GUI element with border, caption and close icons.
|
|
/** \par This element can create the following events of type EGUI_EVENT_TYPE:
|
|
\li EGET_ELEMENT_CLOSED
|
|
*/
|
|
class IGUIWindow : public IGUIElement
|
|
{
|
|
public:
|
|
|
|
//! constructor
|
|
IGUIWindow(IGUIEnvironment* environment, IGUIElement* parent, s32 id, core::rect<s32> rectangle)
|
|
: IGUIElement(EGUIET_WINDOW, environment, parent, id, rectangle) {}
|
|
|
|
//! Returns pointer to the close button
|
|
/** You can hide the button by calling setVisible(false) on the result. */
|
|
virtual IGUIButton* getCloseButton() const = 0;
|
|
|
|
//! Returns pointer to the minimize button
|
|
/** You can hide the button by calling setVisible(false) on the result. */
|
|
virtual IGUIButton* getMinimizeButton() const = 0;
|
|
|
|
//! Returns pointer to the maximize button
|
|
/** You can hide the button by calling setVisible(false) on the result. */
|
|
virtual IGUIButton* getMaximizeButton() const = 0;
|
|
|
|
//! Returns true if the window can be dragged with the mouse, false if not
|
|
virtual bool isDraggable() const = 0;
|
|
|
|
//! Sets whether the window can be dragged by the mouse
|
|
virtual void setDraggable(bool draggable) = 0;
|
|
|
|
//! Set if the window background will be drawn
|
|
virtual void setDrawBackground(bool draw) = 0;
|
|
|
|
//! Get if the window background will be drawn
|
|
virtual bool getDrawBackground() const = 0;
|
|
|
|
//! Set if the window titlebar will be drawn
|
|
//! Note: If the background is not drawn, then the titlebar is automatically also not drawn
|
|
virtual void setDrawTitlebar(bool draw) = 0;
|
|
|
|
//! Get if the window titlebar will be drawn
|
|
virtual bool getDrawTitlebar() const = 0;
|
|
|
|
//! Returns the rectangle of the drawable area (without border and without titlebar)
|
|
/** The coordinates are given relative to the top-left position of the gui element.<br>
|
|
So to get absolute positions you have to add the resulting rectangle to getAbsolutePosition().UpperLeftCorner.<br>
|
|
To get it relative to the parent element you have to add the resulting rectangle to getRelativePosition().UpperLeftCorner.
|
|
Beware that adding a menu will not change the clientRect as menus are own gui elements, so in that case you might want to subtract
|
|
the menu area additionally. */
|
|
virtual core::rect<s32> getClientRect() const = 0;
|
|
};
|
|
|
|
|
|
} // end namespace gui
|
|
} // end namespace irr
|
|
|
|
#endif
|