// ConstraintsDlg.cpp // // (c)1998-2025 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 "ConstraintsDlg.h" #ifdef _DEBUG # define new DEBUG_NEW # undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif CConstraintsDlg::CConstraintsDlg(CWnd* pParent) : CDialog(CConstraintsDlg::IDD, pParent) { //{{AFX_DATA_INIT(CConstraintsDlg) //}}AFX_DATA_INIT } void CConstraintsDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CConstraintsDlg) DDX_Control(pDX, IDC_GRID, m_wndGrid); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CConstraintsDlg, CDialog) //{{AFX_MSG_MAP(CConstraintsDlg) ON_BN_CLICKED(IDC_CAPTION, OnCaption) //}}AFX_MSG_MAP END_MESSAGE_MAP() BOOL CConstraintsDlg::OnInitDialog() { CDialog::OnInitDialog(); // Set the default font for all dialog controls. SendMessageToDescendants(WM_SETFONT, (WPARAM)(HFONT)XTPFontManager()->GetFont()); m_wndGrid.GetGridHeader()->AllowColumnRemove(TRUE); m_wndGrid.GetGridHeader()->AllowColumnReorder(TRUE); m_wndGrid.GetGridHeader()->AllowColumnResize(TRUE); m_wndGrid.GetGridHeader()->AllowColumnSort(TRUE); m_wndGrid.GetGridHeader()->SetAutoColumnSizing(FALSE); m_wndGrid.AllowEdit(FALSE); m_wndGrid.EditOnClick(TRUE); m_wndGrid.SetFullColumnScrolling(FALSE); CXTPGridColumn* pColumn; pColumn = m_wndGrid.AddColumn(new CXTPGridColumn(0, _T("Column 1"), 450, TRUE)); pColumn->GetEditOptions()->AddConstraint(_T("State Off"), 0); pColumn->GetEditOptions()->AddConstraint(_T("State On" ), 1); pColumn->GetEditOptions()->m_bConstraintEdit = TRUE; pColumn = m_wndGrid.AddColumn(new CXTPGridColumn(1, _T("Column 2"), 150, TRUE)); pColumn->GetEditOptions()->AddConstraint(_T("No" ), 5); pColumn->GetEditOptions()->AddConstraint(_T("Yes"), 8); pColumn->GetEditOptions()->m_bConstraintEdit = TRUE; for (int nRecord = 0; nRecord < 20; nRecord++) { CXTPGridRecord* pRecord = new CXTPGridRecord(); m_wndGrid.AddRecord(pRecord); CXTPGridRecordItemVariant* pItem; COleVariant variant; variant = long(1); pItem = new CXTPGridRecordItemVariant(variant); pRecord->AddItem(pItem); variant = long(8); pItem = new CXTPGridRecordItemVariant(variant); pRecord->AddItem(pItem); } m_wndGrid.Populate(); return FALSE; } void CConstraintsDlg::OnOK() { CDialog::OnOK(); } void CConstraintsDlg::OnCaption() { CXTPGridRecord* pRecord; CXTPGridRecordItem* pItem; CString sCaption; for (int nRecord = 0; nRecord < m_wndGrid.GetRecords()->GetCount(); nRecord++) { pRecord = m_wndGrid.GetRecords()->GetAt(nRecord); for (int nItem = 0; nItem < pRecord->GetItemCount(); nItem++) { pItem = DYNAMIC_DOWNCAST(CXTPGridRecordItem, pRecord->GetItem(nItem)); #if _XTPLIB_VERSION_PREFIX >= 1511 sCaption = pItem->GetCaption(); #else sCaption = pItem->GetCaption(NULL); #endif TRACE(_T("%s "), sCaption); } TRACE(_T("\n")); } }