📄 cmainguimgr.cpp
字号:
/*
Crazy Eggs Remade By Kevin Lynx
File : CMainGUIMgr.cpp
Desc : manage the main menu
Date : 2007.1.25
*/
#include "../CGame.h"
#include "CMainGUIMgr.h"
#include "CHelpDlg.h"
#include "COptionsDlg.h"
#include "CInputDlg.h"
#include "CHighscoreDlg.h"
#include "../resourceGen/res.h"
#include "../memleak.h"
//a tiny function ,... en..used just for fun.
template < class Type>
void SafeDelete( Type p )
{
if( p!= 0 )
{
delete p;
p = 0;
}
}
CMainGUIMgr::CMainGUIMgr( CGame *game )
{
m_Game = game;
m_btnPlay = NULL;
m_btnHighScore = NULL;
m_btnOptions = NULL;
m_btnHelp = NULL;
m_btnExit = NULL;
m_highscoreMgr = NULL;
}
CMainGUIMgr::~CMainGUIMgr()
{
Release();
}
bool CMainGUIMgr::Init()
{
//'play' button
m_btnPlay = new ButtonWidget( BTN_PLAY_ID, this );
m_btnPlay->mButtonImage = PLAY_BTN_OFF;
m_btnPlay->mOverImage = PLAY_BTN_ON;
m_btnPlay->mDownImage = PLAY_BTN_PUSH;
m_btnPlay->Resize( 35, 200, PLAY_BTN_OFF->GetWidth(), PLAY_BTN_OFF->GetHeight() );
//'high score' button
m_btnHighScore = new ButtonWidget( BTN_HIGHSCORE_ID, this );
m_btnHighScore->mButtonImage = HIGHSCORE_BTN_OFF;
m_btnHighScore->mOverImage = HIGHSCORE_BTN_ON;
m_btnHighScore->mDownImage = HIGHSCORE_BTN_PUSH;
m_btnHighScore->Resize( 15, 265, HIGHSCORE_BTN_OFF->GetWidth(), HIGHSCORE_BTN_OFF->GetHeight() );
//'options' button
m_btnOptions = new ButtonWidget( BTN_OPTIONS_ID, this );
m_btnOptions->mButtonImage = OPTIONS_BTN_OFF;
m_btnOptions->mOverImage = OPTIONS_BTN_ON;
m_btnOptions->mDownImage = OPTIONS_BTN_PUSH;
m_btnOptions->Resize( 45, 340, OPTIONS_BTN_OFF->GetWidth(), OPTIONS_BTN_OFF->GetHeight() );
//'help' button
m_btnHelp = new ButtonWidget( BTN_HELP_ID, this );
m_btnHelp->mButtonImage = HELP_BTN_OFF;
m_btnHelp->mOverImage = HELP_BTN_ON;
m_btnHelp->mDownImage = HELP_BTN_PUSH;
m_btnHelp->Resize( 45, 400, HELP_BTN_OFF->GetWidth(), HELP_BTN_OFF->GetHeight() );
//'exit' button
m_btnExit = new ButtonWidget( BTN_EXIT_ID, this );
m_btnExit->mButtonImage = EXIT_BTN_OFF;
m_btnExit->mOverImage = EXIT_BTN_ON;
m_btnExit->mDownImage = EXIT_BTN_PUSH;
m_btnExit->Resize( 45, 470, EXIT_BTN_OFF->GetWidth(), EXIT_BTN_OFF->GetHeight() );
//highscore manager
m_highscoreMgr = new CHighscoreMgr();
return true;
}
void CMainGUIMgr::Release()
{
SafeDelete( m_btnPlay );
SafeDelete( m_btnHighScore );
SafeDelete( m_btnOptions );
SafeDelete( m_btnHelp );
SafeDelete( m_btnExit );
SafeDelete( m_highscoreMgr );
}
void CMainGUIMgr::Update()
{
Widget::Update();
MarkDirty();
}
void CMainGUIMgr::Draw( Graphics *g )
{
if( m_Game->Is3DAccelerated() )
{
g->DrawImageF( MAIN_BACK, 0, 0 );
g->DrawImageF( BRUNCH, 58, 184 );
}
else
{
g->DrawImageF( MAIN_BACK, 0, 0 );
g->DrawImageF( BRUNCH, 58, 184 );
}
}
void CMainGUIMgr::AddedToManager( WidgetManager *theWidgetManager )
{
Widget::AddedToManager( theWidgetManager );
theWidgetManager->AddWidget( m_btnPlay );
theWidgetManager->AddWidget( m_btnHighScore );
theWidgetManager->AddWidget( m_btnOptions );
theWidgetManager->AddWidget( m_btnHelp );
theWidgetManager->AddWidget( m_btnExit );
}
void CMainGUIMgr::RemovedFromManager( WidgetManager *theWidgetManager )
{
Widget::RemovedFromManager( theWidgetManager );
theWidgetManager->RemoveWidget( m_btnPlay );
theWidgetManager->RemoveWidget( m_btnHighScore );
theWidgetManager->RemoveWidget( m_btnOptions );
theWidgetManager->RemoveWidget( m_btnHelp );
theWidgetManager->RemoveWidget( m_btnExit );
}
void CMainGUIMgr::ButtonDepress( int theId )
{
if( theId == BTN_PLAY_ID )
{
m_Game->SetGameState( CGame::GAME_STATE_LEAVE_MAIN_MENU );
}
if( theId == BTN_HIGHSCORE_ID )
{
m_highscoreMgr->ShowDlg();
}
if( theId == BTN_OPTIONS_ID )
{
//'options' dialog
m_Game->AddDialog( new COptionsDlg() );
}
if( theId == BTN_HELP_ID )
{
//'help' dialog
m_Game->AddDialog( new CHelpDlg() );
}
if( theId == BTN_EXIT_ID )
{
m_Game->Shutdown();
}
}
void CMainGUIMgr::DialogButtonDepress( int theDialogId, int theButtonId )
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -