b3view/UserInterface.h

102 lines
3.2 KiB
C
Raw Normal View History

2010-04-21 07:48:36 -07:00
#ifndef USERINTERFACE_H
#define USERINTERFACE_H
#include "extlib/CGUITTFont.h"
#include <irrlicht/irrlicht.h>
// Forward declaration of class Engine
class Engine;
enum UserInterfaceElements {
2010-04-23 02:00:07 -07:00
UIE_FILEMENU = 1003,
UIE_LOADFILEDIALOG = 1100,
// UIE_LOADBUTTON = 1101,
UIE_LOADTEXTUREDIALOG = 1200,
2019-05-02 18:17:24 -07:00
UIE_SAVEFILEDIALOG = 1300,
UIE_VIEWMENU = 2000,
UIE_PLAYBACKWINDOW = 3000,
UIE_PLAYBACKSTARTSTOPBUTTON = 3001,
2019-04-19 12:29:30 -07:00
UIE_PLAYBACKSETFRAMEEDITBOX = 3002,
UIE_PLAYBACKINCREASEBUTTON = 3003,
UIE_PLAYBACKDECREASEBUTTON = 3004,
UIE_FPSEDITBOX = 3005,
UIE_TEXTUREPATHSTATICTEXT = 3006,
UIE_TEXTUREPATHEDITBOX = 3007,
UIE_AXISSIZESTATICTEXT = 3008,
UIE_AXISSIZEEDITBOX = 3009
2010-04-21 07:48:36 -07:00
};
enum UserInterfaceCommands {
2019-04-19 12:29:30 -07:00
UIC_FILE_OPEN = 1000,
UIC_FILE_QUIT = 1001,
2019-04-19 12:29:30 -07:00
UIC_FILE_OPEN_TEXTURE = 1002,
UIC_FILE_NEXT_TEXTURE = 1003,
UIC_FILE_PREVIOUS_TEXTURE = 1004,
2019-05-02 18:17:24 -07:00
UIC_FILE_EXPORT = 1005,
UIC_VIEW_WIREFRAME = 2001,
UIC_VIEW_LIGHTING = 2002,
2019-04-19 12:50:06 -07:00
UIC_VIEW_AXIS_WIDGET = 2003,
UIC_VIEW_TARGET = 2004,
UIC_VIEW_TEXTURE_INTERPOLATION = 2005,
UIC_VIEW_Y_UP = 2006,
UIC_VIEW_Z_UP = 2007,
UIC_VIEW_SLOWER = 2008,
UIC_VIEW_FASTER = 2009
2010-04-21 07:48:36 -07:00
};
class UserInterface : public irr::IEventReceiver {
2010-04-21 07:48:36 -07:00
private:
irr::s32 spacing_y;
Engine* m_Engine;
irr::gui::IGUIEnvironment* m_Gui;
irr::gui::CGUITTFont* m_GuiFont;
irr::gui::CGUITTFace* m_GuiFontFace;
2010-04-21 07:48:36 -07:00
void setupUserInterface();
void displayLoadFileDialog();
2019-05-02 18:17:24 -07:00
void displaySaveFileDialog();
2019-03-07 14:17:42 -08:00
void displayLoadTextureDialog();
void handleMenuItemPressed(irr::gui::IGUIContextMenu* menu);
2010-04-21 07:48:36 -07:00
2010-08-16 05:23:20 -07:00
bool m_WireframeDisplay;
bool m_Lighting;
bool m_TextureInterpolation;
irr::gui::IGUIWindow* playbackWindow;
irr::core::dimension2d<irr::u32> m_WindowSize; // previous size
2010-04-21 07:48:36 -07:00
public:
irr::gui::IGUIContextMenu* menu;
irr::gui::IGUIContextMenu* fileMenu;
irr::gui::IGUIContextMenu* viewMenu;
irr::gui::IGUIButton* playbackStartStopButton;
2019-04-19 12:29:30 -07:00
irr::gui::IGUIEditBox* playbackSetFrameEditBox;
irr::gui::IGUIButton* playbackIncreaseButton;
irr::gui::IGUIButton* playbackDecreaseButton;
2019-04-19 12:29:30 -07:00
irr::gui::IGUIEditBox* playbackFPSEditBox;
irr::gui::IGUIStaticText* texturePathStaticText;
irr::gui::IGUIEditBox* texturePathEditBox;
2019-04-19 12:29:30 -07:00
irr::gui::IGUIStaticText* axisSizeStaticText;
irr::gui::IGUIEditBox* axisSizeEditBox;
irr::u32 viewTextureInterpolationIdx;
irr::u32 viewWireframeIdx;
2019-04-19 12:50:06 -07:00
irr::u32 viewAxisWidgetIdx;
2019-04-19 12:29:30 -07:00
irr::u32 viewLightingIdx;
irr::u32 viewTargetIdx;
irr::u32 viewYUpIdx;
irr::u32 viewZUpIdx;
void snapWidgets();
2019-03-07 21:52:29 -08:00
UserInterface(Engine* device);
2010-04-21 07:48:36 -07:00
~UserInterface();
irr::gui::IGUIEnvironment* getGUIEnvironment() const;
void drawStatusLine() const;
bool loadNextTexture(int direction);
2010-04-21 07:48:36 -07:00
// IEventReceiver
virtual bool OnEvent(const irr::SEvent& event);
2010-04-21 07:48:36 -07:00
};
#endif // USERINTERFACE_H