reman3/Rayman_X/cpa/tempgrp/OSC/Src/SECdMode.cpp

233 lines
6.6 KiB
C++

/*=========================================================================
*
* SECdMode.cpp : display mode dialog - Implementation file
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#include "stdafx.h"
#include "acp_base.h"
#include "SECTint.hpp"
#include "SECdMode.hpp"
#include "..\Main\Inc\_EditID.h"
#include "TUT.h"
//#################################################################################
// SECT_DialogMode dialog
//#################################################################################
/*----------------------------------------
----------------------------------------*/
SECT_DialogMode::SECT_DialogMode(CWnd* pParent)
: CFormView(SECT_DialogMode::IDD)
{
//{{AFX_DATA_INIT(SECT_DialogMode)
//}}AFX_DATA_INIT
}
/*----------------------------------------
----------------------------------------*/
void SECT_DialogMode::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(SECT_DialogMode)
DDX_Control(pDX, SECT_IDC_EDITSECTOR, m_cSector);
DDX_Control(pDX, SECT_IDC_EDITLIST, m_cList);
//Shaitan Clean Env
// DDX_Control(pDX, SECT_IDC_EDITENV, m_cEnv);
DDX_Control(pDX, SECT_IDC_SECTORTEXT, m_cSectorText);
DDX_Control(pDX, SECT_IDC_LISTTEXT, m_cListText);
//Shaitan Clean Env
// DDX_Control(pDX, SECT_IDC_ENVTEXT, m_cEnvText);
DDX_Control(pDX, SECT_IDC_MODESYM, m_cModeSym);
//}}AFX_DATA_MAP
}
/*----------------------------------------
----------------------------------------*/
BEGIN_MESSAGE_MAP(SECT_DialogMode, CFormView)
//{{AFX_MSG_MAP(SECT_DialogMode)
ON_WM_SIZE()
ON_WM_DESTROY()
ON_BN_CLICKED(SECT_IDC_EDITSECTOR, OnSectors)
ON_BN_CLICKED(SECT_IDC_EDITLIST, OnList)
//Shaitan Clean Env
// ON_BN_CLICKED(SECT_IDC_EDITENV, OnEnv)
ON_BN_CLICKED(SECT_IDC_MODESYM, OnModeSym)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//#################################################################################
// SECT_DialogMode Inits
//#################################################################################
/*===========================================================================
* Description: Init dialog
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
void SECT_DialogMode::fn_vInitDialog (Sector_Interface *pOwnerDLL, CWnd *pParent, BOOL bShowSymetric, const CString csTag)
{
// create the dialog
m_bInitialised = FALSE;
m_pOwnerDLL = pOwnerDLL;
CFormView::Create(NULL, "", AFX_WS_DEFAULT_VIEW, CRect(0,0,120,180), pParent, AFX_IDW_PANE_FIRST, NULL);
// init data for dialog
CFormView::UpdateData(FALSE);
// FOR TUTORIAL
TUT_M_vGetTutDll();
TUT_M_vRegisterControl(m_cModeSym.m_hWnd, "OSC_DMODE" + csTag + "_BUTTON_SYMETRIC", TUT_e_Button);
TUT_M_vRegisterControl(m_cSector.m_hWnd, "OSC_DMODE" + csTag + "_BUTTON_SECTOR", TUT_e_Button);
TUT_M_vRegisterControl(m_cList.m_hWnd, "OSC_DMODE" + csTag + "_BUTTON_LIST", TUT_e_Button);
//Shaitan Clean Env
// TUT_M_vRegisterControl(m_cEnv.m_hWnd, "OSC_DMODE" + csTag + "_BUTTON_ENV", TUT_e_Button);
// END TUTORIAL
// update mode
m_bShowSymetric = bShowSymetric;
m_cModeSym.EnableWindow(bShowSymetric);
m_cModeSym.ShowWindow(bShowSymetric);
m_cModeSym.SetCheck(m_pOwnerDLL->fn_bSymetricMode());
fn_vUpdateEditMode();
m_bInitialised = TRUE;
}
/*===========================================================================
* Description: update dialog when selection changes
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
void SECT_DialogMode::fn_vUpdateEditMode (void)
{
tdeEditMode eEditMode;
eEditMode = m_pOwnerDLL->GetEditMode();
// reinit buttons
m_cSector.SetCheck(eEditMode == E_em_EditSector);
m_cList.SetCheck(eEditMode == E_em_EditList);
//Shaitan Clean Env
// m_cEnv.SetCheck(eEditMode == E_em_EditEnv);
}
//#################################################################################
// SECT_DialogMode Messages
//#################################################################################
/*----------------------------------------
----------------------------------------*/
void SECT_DialogMode::OnSize (UINT nFlags, int cx, int cy)
{
RECT WindowPosition;
int wcx, mcx, scx, mpy;
if (!m_bInitialised)
return;
GetWindowRect(&WindowPosition);
// calculate position
wcx = WindowPosition.right - WindowPosition.left - 20;
//Shaitan Clean Env
mcx = (wcx > 0) ? wcx / 2/*3*/ : 0;
scx = (wcx < 20) ? 20 : wcx-20;
// if necessary, move symetric
if (m_bShowSymetric)
{
m_cModeSym.MoveWindow(20, 2, scx, 18);
mpy = 20;
}
else
mpy = 0;
// move text
m_cSectorText.MoveWindow(5, mpy+5, mcx, 20);
m_cListText.MoveWindow(mcx+10, mpy+5, mcx, 20);
//Shaitan Clean Env
// m_cEnvText.MoveWindow(2*mcx + 15, mpy+5, mcx, 20);
// move radio buttons
m_cSector.MoveWindow(mcx/2, mpy+25, 20, 17);
m_cList.MoveWindow(3*mcx/2 + 5, mpy+25, 20, 17);
//Shaitan Clean Env
// m_cEnv.MoveWindow(5*mcx/2 + 10, mpy+25, 20, 17);
}
/*----------------------------------------
----------------------------------------*/
void SECT_DialogMode::OnDestroy (void)
{
// FOR TUTORIAL
TUT_M_vGetTutDll();
TUT_M_vUnregisterControl(m_cModeSym.m_hWnd);
TUT_M_vUnregisterControl(m_cSector.m_hWnd);
TUT_M_vUnregisterControl(m_cList.m_hWnd);
//Shaitan Clean Env
// TUT_M_vUnregisterControl(m_cEnv.m_hWnd);
// END TUTORIAL
CFormView::OnDestroy();
}
/*----------------------------------------
----------------------------------------*/
void SECT_DialogMode::OnSectors (void)
{
if (m_cSector.GetCheck())
m_pOwnerDLL->SetEditMode(E_em_EditSector);
else
m_pOwnerDLL->SetEditMode(E_em_EditList);
}
/*----------------------------------------
----------------------------------------*/
void SECT_DialogMode::OnList (void)
{
if (m_cList.GetCheck())
m_pOwnerDLL->SetEditMode(E_em_EditList);
else
m_pOwnerDLL->SetEditMode(E_em_EditSector/*E_em_EditEnv*/);
}
/*----------------------------------------
----------------------------------------*/
//Shaitan Clean Env
/*
void SECT_DialogMode::OnEnv (void)
{
if (m_cEnv.GetCheck())
m_pOwnerDLL->SetEditMode(E_em_EditEnv);
else
m_pOwnerDLL->SetEditMode(E_em_EditSector);
}
*/
/*----------------------------------------
----------------------------------------*/
void SECT_DialogMode::OnModeSym (void)
{
m_pOwnerDLL->SetSymetricMode(m_cModeSym.GetCheck());
}