Serious-Engine/Sources/Modeler/PaletteDialog.cpp
2016-03-11 18:20:51 -06:00

169 lines
5.7 KiB
C++

/* Copyright (c) 2002-2012 Croteam Ltd.
This program is free software; you can redistribute it and/or modify
it under the terms of version 2 of the GNU General Public License as published by
the Free Software Foundation
This program 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 this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
// PaletteDialog.cpp : implementation file
//
#include "stdafx.h"
#ifdef _DEBUG
#undef new
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPaletteDialog dialog
CPaletteDialog::CPaletteDialog(CWnd* pParent /*=NULL*/)
: CDialog(CPaletteDialog::IDD, pParent)
{
//{{AFX_DATA_INIT(CPaletteDialog)
m_ColorName = _T("");
m_ModeString = _T("");
//}}AFX_DATA_INIT
m_LastViewUpdated = NULL;
}
void CPaletteDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
CModelerView *pModelerView = CModelerView::GetActiveView();
if( !pDX->m_bSaveAndValidate)
{
if( pModelerView != NULL)
{
if( pModelerView->m_bOnColorMode)
{
m_ModeString = "Mode: On";
}
else
{
m_ModeString = "Mode: Off";
}
m_ColorName = pModelerView->m_ModelObject.GetColorName( pModelerView->m_iChoosedColor);
}
else
{
m_ColorName = "";
}
}
//{{AFX_DATA_MAP(CPaletteDialog)
DDX_Control(pDX, IDC_CURRENT_COLOR, m_ChoosedColorButton);
DDX_Control(pDX, IDC_PICK_COLOR, m_PickColor);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON9, m_ColorPaletteButton9);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON8, m_ColorPaletteButton8);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON7, m_ColorPaletteButton7);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON6, m_ColorPaletteButton6);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON5, m_ColorPaletteButton5);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON4, m_ColorPaletteButton);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON32, m_ColorPaletteButton32);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON31, m_ColorPaletteButton31);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON30, m_ColorPaletteButton30);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON3, m_ColorPaletteButton3);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON29, m_ColorPaletteButton29);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON28, m_ColorPaletteButton28);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON27, m_ColorPaletteButton27);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON26, m_ColorPaletteButton26);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON25, m_ColorPaletteButton25);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON24, m_ColorPaletteButton24);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON23, m_ColorPaletteButton23);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON22, m_ColorPaletteButton22);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON21, m_ColorPaletteButton21);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON20, m_ColorPaletteButton20);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON2, m_ColorPaletteButton2);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON19, m_ColorPaletteButton19);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON18, m_ColorPaletteButton18);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON17, m_ColorPaletteButton17);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON16, m_ColorPaletteButton16);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON15, m_ColorPaletteButton15);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON14, m_ColorPaletteButton14);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON13, m_ColorPaletteButton13);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON12, m_ColorPaletteButton12);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON11, m_ColorPaletteButton11);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON10, m_ColorPaletteButton10);
DDX_Control(pDX, IDC_COLOR_PALETTE_BUTTON1, m_ColorPaletteButton1);
DDX_Text(pDX, IDC_EDIT_COLOR_NAME, m_ColorName);
DDV_MaxChars(pDX, m_ColorName, 32);
DDX_Text(pDX, IDC_MODE, m_ModeString);
//}}AFX_DATA_MAP
if( pDX->m_bSaveAndValidate)
{
if( pModelerView != NULL)
{
pModelerView->m_ModelObject.SetColorName( pModelerView->m_iChoosedColor,
CTString(CStringA(m_ColorName)));
pModelerView->GetDocument()->SetModifiedFlag();
}
}
}
BEGIN_MESSAGE_MAP(CPaletteDialog, CDialog)
//{{AFX_MSG_MAP(CPaletteDialog)
ON_EN_CHANGE(IDC_EDIT_COLOR_NAME, OnChangeEditColorName)
//}}AFX_MSG_MAP
ON_COMMAND_RANGE(IDC_COLOR_PALETTE_BUTTON_BASE, IDC_COLOR_PALETTE_BUTTON_END, OnColorPalleteButton)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPaletteDialog message handlers
BOOL CPaletteDialog::OnInitDialog()
{
CDialog::OnInitDialog();
HICON hIcon = AfxGetApp()->LoadIcon(IDI_PICK);
ASSERT( hIcon != NULL);
m_PickColor.SetIcon( hIcon);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CPaletteDialog::OnColorPalleteButton(UINT nID)
{
INDEX m_iChoosedColor = nID - IDC_COLOR_PALETTE_BUTTON_BASE;
}
BOOL CPaletteDialog::OnIdle(LONG lCount)
{
CModelerView *pModelerView = CModelerView::GetActiveView();
if( pModelerView != m_LastViewUpdated)
{
if( (pModelerView == NULL) || (m_LastViewUpdated == NULL) )
{
UpdateData( FALSE);
Invalidate( FALSE);
}
else
{
UpdateData( FALSE);
}
m_LastViewUpdated = pModelerView;
}
return TRUE;
}
void CPaletteDialog::OnChangeEditColorName()
{
UpdateData(TRUE);
}