/**
* CMainWindow
* $Id: main_window.h 2247 2010-02-15 21:16:38Z kaetemi $
* \file main_window.h
* \brief CMainWindow
* \date 2010-02-05 13:01GMT
* \author Jan Boon (Kaetemi)
*/
/*
* Copyright (C) 2010 by authors
*
* This file is part of NEL QT.
* NEL QT 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.
*
* NEL QT 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 NEL QT; see the file COPYING. If not, see
* .
*/
#ifndef NLQT_MAIN_WINDOW_H
#define NLQT_MAIN_WINDOW_H
#include
// STL includes
// Qt includes
#include
// NeL includes
#include
#include
#include
#include
#include
// Project includes
#include "configuration.h"
#include "internationalization.h"
#include "sound_utilities.h"
class QTreeView;
class QDirModel;
class QUndoStack;
class QScrollArea;
namespace NLMISC {
class CConfigFile;
}
namespace NL3D {
class UDriver;
class UScene;
class UTextContext;
class UVisualCollisionManager;
}
namespace NLPACS {
class UMoveContainer;
class UGlobalRetriever;
}
namespace NLSOUND {
class UAudioMixer;
class CSoundAnimManager;
}
namespace NLQT {
class CCommandLog;
class CGraphicsViewport;
class CGraphicsConfig;
/**
* CMainWindow
* \brief CMainWindow
* \date 2010-02-05 13:01GMT
* \author Jan Boon (Kaetemi)
*/
class CMainWindow : public QMainWindow
{
Q_OBJECT
public:
CMainWindow(const QMap &customSizeHints, QWidget *parent = 0, Qt::WindowFlags flags = 0);
virtual ~CMainWindow();
virtual void setVisible(bool visible);
private slots:
void applyGraphicsConfig();
// void applySoundConfig();
void about();
void updateRender();
void printDebug();
private:
void updateInitialization(bool visible);
void createActions();
void translateActions();
void createMenus();
void translateMenus();
void createToolBars();
void translateToolBars();
void createStatusBar();
void createDockWindows();
void translateDockWindows();
void recalculateMinimumWidth();
void cfcbQtStyle(NLMISC::CConfigFile::CVar &var);
void cfcbQtPalette(NLMISC::CConfigFile::CVar &var);
void cfcbSoundEnabled(NLMISC::CConfigFile::CVar &var);
void incbLanguageCode();
private:
CMainWindow(const CMainWindow &);
CMainWindow &operator=(const CMainWindow &);
private:
CConfiguration m_Configuration;
CInternationalization m_Internationalization;
CSoundUtilities m_SoundUtilities;
QUndoStack *m_UndoStack;
QPalette m_OriginalPalette;
bool m_IsGraphicsInitialized, m_IsGraphicsEnabled;
bool m_IsSoundInitialized, m_IsSoundEnabled;
CGraphicsViewport *m_GraphicsViewport;
CCommandLog *m_CommandLog;
QDockWidget *m_CommandLogDock;
CGraphicsConfig *m_GraphicsConfig;
QScrollArea *m_GraphicsConfigScroll;
QDockWidget *m_GraphicsConfigDock;
QTreeView *m_AssetTreeView;
QDirModel *m_AssetTreeModel;
QDockWidget *m_AssetTreeDock;
QMenu *m_FileMenu;
QMenu *m_EditMenu;
QMenu *m_ViewportMenu;
QMenu *m_WidgetsMenu;
QMenu *m_HelpMenu;
QToolBar *m_FileToolBar;
QToolBar *m_EditToolBar;
QAction *m_AboutAct;
QAction *m_QuitAct;
QAction *m_PrintDebugAct;
QAction *m_UndoAct;
QAction *m_RedoAct;
QAction *m_SaveScreenshotAct;
//NLMISC::CConfigFile *ConfigFile; // owned by CConfiguration
//CLoadingScreen LoadingScreen; // owned by CLoading (special case, always available)
//NL3D::UDriver *Driver; // owned by CGraphics
//NL3D::UTextContext *TextContext; // owned by CGraphics
//NLSOUND::UAudioMixer *AudioMixer; // owned by CSound
//NLSOUND::CSoundAnimManager *SoundAnimManager; // owned by CSound
//THCOMMON::CSheetLoader *SheetLoader; // owned by initSheets and releaseSheets
//NL3D::UScene *Scene; // owned by CEnvironment
//NLPACS::UMoveContainer *MoveContainer; // owned by CEnvironment
//NLPACS::UGlobalRetriever *GlobalRetriever; /// The global retriever used for pacs // owned by CEnvironment
//NL3D::UVisualCollisionManager *VisualCollisionManager; /// The collision manager for ground snapping // owned by CEnvironment
//THCLIENT::CKeyBinder *KeyBinder; // owned by CInterface
//NLMISC::TLocalTime LocalTime; // use for delta only // owned by CGameTime
//NLMISC::TLocalTime LocalTimeDelta; // owned by CGameTime
//NL3D::TGlobalAnimationTime AnimationTime; // owned by CGameTime
//NL3D::TAnimationTime AnimationTimeDelta; // owned by CGameTime
//float FramesPerSecond; // owned by CGameTime
//float FramesPerSecondSmooth; // owned by CGameTime
//NLMISC::CVector DetailTargetPosition; // player or camera position for lod improvements // owned by camera
}; /* class CMainWindow */
} /* namespace NLQT */
#endif /* #ifndef NLQT_MAIN_WINDOW_H */
/* end of file */