mirror of
https://github.com/minetest/irrlicht.git
synced 2024-11-14 03:33:49 +01:00
1d58677e18
Removing includes which were not needed by headers Note that if you include those headers directly (instead of including irrlicht.h) you may have to add some new includes now. Thought I generally tried to avoid removing headers where it leads to too much changes in user-code Reason was mainly that IntelliSense in VisualStudio 17.7 added a new feature which shows those unused headers :) Has to be used a bit careful as it doesn't know about defines and other platforms And I only did clean up public headers so far (will probably do some more later or another time) git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6524 dfc29bdd-3216-0410-991c-e03cc46cb475
73 lines
2.7 KiB
C++
73 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"
|
|
|
|
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
|