181 lines
4.3 KiB
C++
181 lines
4.3 KiB
C++
|
|
// DialogNewControl.cpp : implementation file
|
||
|
|
//
|
||
|
|
// This file is a part of the XTREME TOOLKIT PRO MFC class library.
|
||
|
|
// (c)1998-2008 Codejock Software, All Rights Reserved.
|
||
|
|
//
|
||
|
|
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
|
||
|
|
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
|
||
|
|
// CONSENT OF CODEJOCK SOFTWARE.
|
||
|
|
//
|
||
|
|
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
|
||
|
|
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
|
||
|
|
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
|
||
|
|
// SINGLE COMPUTER.
|
||
|
|
//
|
||
|
|
// CONTACT INFORMATION:
|
||
|
|
// support@codejock.com
|
||
|
|
// http://www.codejock.com
|
||
|
|
//
|
||
|
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
|
||
|
|
#include "stdafx.h"
|
||
|
|
#include "commandbarsdesigner.h"
|
||
|
|
#include "DialogNewControl.h"
|
||
|
|
|
||
|
|
#include "MainFrm.h"
|
||
|
|
|
||
|
|
#ifdef _DEBUG
|
||
|
|
#define new DEBUG_NEW
|
||
|
|
#undef THIS_FILE
|
||
|
|
static char THIS_FILE[] = __FILE__;
|
||
|
|
#endif
|
||
|
|
|
||
|
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
// CDialogNewControl dialog
|
||
|
|
|
||
|
|
|
||
|
|
CDialogNewControl::CDialogNewControl(CWnd* pParent /*=NULL*/)
|
||
|
|
: CDialog(CDialogNewControl::IDD, pParent)
|
||
|
|
{
|
||
|
|
//{{AFX_DATA_INIT(CDialogNewControl)
|
||
|
|
m_strCaption = _T("");
|
||
|
|
//}}AFX_DATA_INIT
|
||
|
|
m_bGenerateId = TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
void CDialogNewControl::DoDataExchange(CDataExchange* pDX)
|
||
|
|
{
|
||
|
|
CDialog::DoDataExchange(pDX);
|
||
|
|
//{{AFX_DATA_MAP(CDialogNewControl)
|
||
|
|
DDX_Control(pDX, IDC_COMBO_TYPE, m_comboType);
|
||
|
|
DDX_Control(pDX, IDC_COMBO_ID, m_comboId);
|
||
|
|
DDX_Control(pDX, IDC_COMBO_CATEGORY, m_comboCategory);
|
||
|
|
DDX_Text(pDX, IDC_EDIT_CAPTION, m_strCaption);
|
||
|
|
DDX_CBString(pDX, IDC_COMBO_CATEGORY, m_strCategory);
|
||
|
|
DDX_CBString(pDX, IDC_COMBO_ID, m_strId);
|
||
|
|
DDX_CBString(pDX, IDC_COMBO_TYPE, m_strType);
|
||
|
|
//}}AFX_DATA_MAP
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
BEGIN_MESSAGE_MAP(CDialogNewControl, CDialog)
|
||
|
|
//{{AFX_MSG_MAP(CDialogNewControl)
|
||
|
|
ON_EN_CHANGE(IDC_EDIT_CAPTION, OnChangeEditCaption)
|
||
|
|
ON_CBN_EDITCHANGE(IDC_COMBO_CATEGORY, OnEditchangeComboCategory)
|
||
|
|
ON_CBN_SELCHANGE(IDC_COMBO_CATEGORY, OnSelchangeComboCategory)
|
||
|
|
ON_CBN_EDITCHANGE(IDC_COMBO_ID, OnEditchangeComboId)
|
||
|
|
//}}AFX_MSG_MAP
|
||
|
|
END_MESSAGE_MAP()
|
||
|
|
|
||
|
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
// CDialogNewControl message handlers
|
||
|
|
|
||
|
|
BOOL CDialogNewControl::OnInitDialog()
|
||
|
|
{
|
||
|
|
CDialog::OnInitDialog();
|
||
|
|
|
||
|
|
CXTPControls* pControls = ((CMainFrame*)AfxGetMainWnd())->GetActiveEmbeddedFrame()->m_pControls;
|
||
|
|
|
||
|
|
ASSERT(pControls);
|
||
|
|
|
||
|
|
for (int i = 0; i < pControls->GetCount(); i++)
|
||
|
|
{
|
||
|
|
CXTPControl* pControl = pControls->GetAt(i);
|
||
|
|
|
||
|
|
if (m_comboCategory.FindStringExact(0, pControl->GetCategory()) == CB_ERR)
|
||
|
|
{
|
||
|
|
m_comboCategory.AddString(pControl->GetCategory());
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
for (int j = 1; j < _countof(lpTypes); j++)
|
||
|
|
{
|
||
|
|
if (lpTypes[j])
|
||
|
|
{
|
||
|
|
m_comboType.AddString(lpTypes[j]);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
m_comboType.SetCurSel(0);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
CResourceManager* pResourceManager = ((CMainFrame*)AfxGetMainWnd())->GetActiveEmbeddedFrame()->ResourceManager();
|
||
|
|
ASSERT(pResourceManager);
|
||
|
|
|
||
|
|
CMapResources* pResources = pResourceManager->GetResources();
|
||
|
|
|
||
|
|
POSITION pos = pResources->GetStartPosition();
|
||
|
|
while (pos)
|
||
|
|
{
|
||
|
|
CResourceInfo* pInfo;
|
||
|
|
CString strCaption;
|
||
|
|
pResources->GetNextAssoc(pos, strCaption, (CObject*&)pInfo);
|
||
|
|
|
||
|
|
m_comboId.AddString(strCaption);
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
||
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
void CDialogNewControl::GenerateID()
|
||
|
|
{
|
||
|
|
if (m_bGenerateId)
|
||
|
|
{
|
||
|
|
CString strCaption = StripChars(m_strCaption);
|
||
|
|
|
||
|
|
CString strCategory;
|
||
|
|
m_comboCategory.GetWindowText(strCategory);
|
||
|
|
strCategory = StripChars(strCategory);
|
||
|
|
|
||
|
|
CString strId = _T("ID");
|
||
|
|
|
||
|
|
if (!strCategory.IsEmpty()) strId += _T("_") + strCategory;
|
||
|
|
if (!strCaption.IsEmpty()) strId += _T("_") + strCaption;
|
||
|
|
|
||
|
|
m_comboId.SetWindowText(strId);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void CDialogNewControl::OnChangeEditCaption()
|
||
|
|
{
|
||
|
|
UpdateData();
|
||
|
|
GenerateID();
|
||
|
|
}
|
||
|
|
|
||
|
|
void CDialogNewControl::OnEditchangeComboCategory()
|
||
|
|
{
|
||
|
|
GenerateID();
|
||
|
|
}
|
||
|
|
|
||
|
|
void CDialogNewControl::OnSelchangeComboCategory()
|
||
|
|
{
|
||
|
|
int nIndex = m_comboCategory.GetCurSel();
|
||
|
|
if (nIndex != CB_ERR)
|
||
|
|
{
|
||
|
|
CString strCategory;
|
||
|
|
m_comboCategory.GetLBText(nIndex, strCategory);
|
||
|
|
m_comboCategory.SetWindowText(strCategory);
|
||
|
|
}
|
||
|
|
GenerateID();
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
void CDialogNewControl::OnEditchangeComboId()
|
||
|
|
{
|
||
|
|
m_bGenerateId = FALSE;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
void CDialogNewControl::OnOK()
|
||
|
|
{
|
||
|
|
UpdateData();
|
||
|
|
|
||
|
|
|
||
|
|
CDialog::OnOK();
|
||
|
|
}
|