// CPACSetp.cpp : implementation file ///////////////////////////////////////////////////////////////////////////// #include "StdAfx.h" #include "Defines.hpp" #include "EDACDgSp.hpp" #include "_AInterf.hpp" #include "EDACVwMS.hpp" //External Modules #include "IncTUT.h" //End of External Modules #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #define OAC_SETUP_sz_SECTION_GENERAL "General" #define OAC_SETUP_sz_SECTION_ACTORS "Actors" #define OAC_SETUP_sz_SECTION_MODELS "Models" #define OAC_SETUP_sz_SECTION_INSTANCES "Instances" #define OAC_SETUP_sz_SECTION_WATCH "Watch Window" #define OAC_SETUP_sz_SECTION_HELP "Help" #define OAC_SETUP_sz_SECTION_APPEARANCE "Appearance" ///////////////////////////////////////////////////////////////////////////// // EdActors_EditorSetupDialog dialog BEGIN_MESSAGE_MAP(EdActors_EditorSetupDialog, CDialog) //{{AFX_MSG_MAP(EdActors_EditorSetupDialog) ON_WM_PAINT() ON_WM_LBUTTONUP() ON_NOTIFY(TVN_SELCHANGED, IDC_TREE_SUB_SETUP, OnSelchangedTreeSubSetup) ON_WM_DESTROY() //}}AFX_MSG_MAP ON_MESSAGE(WM_HELP, OnMyHelp) END_MESSAGE_MAP() //*************************************************************************** EdActors_EditorSetupDialog::EdActors_EditorSetupDialog(CWnd* pParent /*=NULL*/) : CDialog(EdActors_EditorSetupDialog::IDD, &g_oBaseFrame) { //{{AFX_DATA_INIT(EdActors_EditorSetupDialog) m_bMustDisplayModelFieldsInInstance = g_pclInterface->m_clDocument.m_bMustDisplayModelFieldsInInstance; m_bMustConfirmSuppressionInWatch = g_pclInterface->m_clDocument.m_bMustConfirmWatchSuppression; m_bMustDisplayUnallocatedMS = g_pclInterface->m_clDocument.m_bMustDisplayUnallocatedMS; m_bMustConfirmUnallocation = g_pclInterface->m_clDocument.m_bMustConfirmUnallocation; m_bMustConfirmAllocation = g_pclInterface->m_clDocument.m_bMustConfirmAllocation; m_bSynchronizeDialogListWithEdition = g_pclInterface->m_clDocument.m_bMustSynchronizeDialogListWithEdition; m_bWatchAlwaysVisible = g_pclInterface->m_clDocument.m_bWatchAlwaysVisible; m_bProposeUnloadedModels = g_pclInterface->m_clDocument.m_bProposeUnloadedModels; m_bRestoreGroup = g_pclInterface->m_clDocument.m_bRestoreGroup; m_bAskForNewInstanceName = g_pclInterface->m_clDocument.m_bAskForNewInstanceName; //}}AFX_DATA_INIT if (g_pclInterface->m_clDocument.m_bMustDisplayHelpOnActiveView) m_iHelpRadioValue = 0; else m_iHelpRadioValue = 1; m_hOldInstance = AfxGetResourceHandle(); AfxSetResourceHandle(g_stActorEditorIdentity.hModule); m_pri_p_tdstCurrentTreeItem = NULL; } //*************************************************************************** EdActors_EditorSetupDialog::~EdActors_EditorSetupDialog() { //Deletes all UINTs POSITION pos = m_clListOfListOfID.GetHeadPosition(); while ( pos != NULL ) { OAC_tdstSetupTreeItem *p_tdstTreeItem = m_clListOfListOfID.GetNext(pos); POSITION Pos2 = p_tdstTreeItem->ListOfID.GetHeadPosition(); while ( Pos2 != NULL ) delete p_tdstTreeItem->ListOfID.GetNext(Pos2); p_tdstTreeItem->ListOfID.RemoveAll(); } m_clListOfListOfID.RemoveAll(); AfxSetResourceHandle(m_hOldInstance); } //*************************************************************************** void EdActors_EditorSetupDialog::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(EdActors_EditorSetupDialog) DDX_Check(pDX, IDC_CHECK_DISPLAY_MODEL_FIELDS, m_bMustDisplayModelFieldsInInstance); DDX_Check(pDX, IDC_CHECK_WATCH_SUPPRESS_CONFIRM, m_bMustConfirmSuppressionInWatch); DDX_Check(pDX, IDC_CHECK_DISPLAY_UNALLOCATED_MS, m_bMustDisplayUnallocatedMS); DDX_Check(pDX, IDC_CHECK_CONFIRM_UNALLOCATION, m_bMustConfirmUnallocation); DDX_Check(pDX, IDC_CHECK_CONFIRM_ALLOCATION, m_bMustConfirmAllocation); DDX_Radio(pDX, IDC_RADIO_HELP_ACTIVE, m_iHelpRadioValue); DDX_Check(pDX, IDC_CHECK_SYNCHRONIZE_DIALOG_LIST, m_bSynchronizeDialogListWithEdition); DDX_Check(pDX, IDC_CHECK_WATCH_ALWAYS_VISIBLE, m_bWatchAlwaysVisible); DDX_Check(pDX, IDC_CHECK_PROPOSE_UNLOADED_MODELS, m_bProposeUnloadedModels); DDX_Check(pDX, IDC_CHECK_RESTORE_GROUP, m_bRestoreGroup); DDX_Check(pDX, IDC_CHECK_ASK_FOR_NEW_INSTANCE_NAME, m_bAskForNewInstanceName); //}}AFX_DATA_MAP } ///////////////////////////////////////////////////////////////////////////// // EdActors_EditorSetupDialog message handlers //*************************************************************************** BOOL EdActors_EditorSetupDialog::OnInitDialog() { CDialog::OnInitDialog(); //Prepares Tree //Fills ID lists CTreeCtrl *pclTree = (CTreeCtrl *)GetDlgItem(IDC_TREE_SUB_SETUP); ///---------------- HTREEITEM hTreeFirstItem = pclTree->InsertItem(OAC_SETUP_sz_SECTION_GENERAL); OAC_tdstSetupTreeItem *p_tdstTreeItem = new OAC_tdstSetupTreeItem; p_tdstTreeItem->csTreeString = OAC_SETUP_sz_SECTION_GENERAL; UINT *p_uiID = new UINT; *p_uiID = IDC_CHECK_SYNCHRONIZE_DIALOG_LIST; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_CHECK_PROPOSE_UNLOADED_MODELS; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_CHECK_RESTORE_GROUP; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; m_clListOfListOfID.AddTail(p_tdstTreeItem); pclTree->SetItemData(hTreeFirstItem, (DWORD)p_tdstTreeItem); ///---------------- HTREEITEM hTreeItem = pclTree->InsertItem(OAC_SETUP_sz_SECTION_ACTORS); p_tdstTreeItem = new OAC_tdstSetupTreeItem; p_tdstTreeItem->csTreeString = OAC_SETUP_sz_SECTION_ACTORS; m_clListOfListOfID.AddTail(p_tdstTreeItem); pclTree->SetItemData(hTreeItem, (DWORD)p_tdstTreeItem); ///---------------- HTREEITEM hCurrentTreeItem = pclTree->InsertItem(OAC_SETUP_sz_SECTION_MODELS, hTreeItem); p_tdstTreeItem = new OAC_tdstSetupTreeItem; p_tdstTreeItem->csTreeString = OAC_SETUP_sz_SECTION_MODELS; p_uiID = new UINT; *p_uiID = IDC_CHECK_CONFIRM_ALLOCATION; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_CHECK_CONFIRM_UNALLOCATION; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; m_clListOfListOfID.AddTail(p_tdstTreeItem); pclTree->SetItemData(hCurrentTreeItem, (DWORD)p_tdstTreeItem); ///---------------- hCurrentTreeItem = pclTree->InsertItem(OAC_SETUP_sz_SECTION_INSTANCES, hTreeItem); p_tdstTreeItem = new OAC_tdstSetupTreeItem; p_tdstTreeItem->csTreeString = OAC_SETUP_sz_SECTION_INSTANCES; p_uiID = new UINT; *p_uiID = IDC_CHECK_DISPLAY_MODEL_FIELDS; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_CHECK_DISPLAY_UNALLOCATED_MS; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_CHECK_ASK_FOR_NEW_INSTANCE_NAME; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; m_clListOfListOfID.AddTail(p_tdstTreeItem); pclTree->SetItemData(hCurrentTreeItem, (DWORD)p_tdstTreeItem); ///---------------- hCurrentTreeItem = pclTree->InsertItem(OAC_SETUP_sz_SECTION_WATCH); p_tdstTreeItem = new OAC_tdstSetupTreeItem; p_tdstTreeItem->csTreeString = OAC_SETUP_sz_SECTION_WATCH; p_uiID = new UINT; *p_uiID = IDC_CHECK_WATCH_SUPPRESS_CONFIRM; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_CHECK_WATCH_ALWAYS_VISIBLE; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; m_clListOfListOfID.AddTail(p_tdstTreeItem); pclTree->SetItemData(hCurrentTreeItem, (DWORD)p_tdstTreeItem); ///---------------- hCurrentTreeItem = pclTree->InsertItem(OAC_SETUP_sz_SECTION_HELP); p_tdstTreeItem = new OAC_tdstSetupTreeItem; p_tdstTreeItem->csTreeString = OAC_SETUP_sz_SECTION_HELP; p_uiID = new UINT; *p_uiID = IDC_RADIO_HELP_ACTIVE; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_RADIO_HELP_MOUSE; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; m_clListOfListOfID.AddTail(p_tdstTreeItem); pclTree->SetItemData(hCurrentTreeItem, (DWORD)p_tdstTreeItem); ///---------------- hCurrentTreeItem = pclTree->InsertItem(OAC_SETUP_sz_SECTION_APPEARANCE); p_tdstTreeItem = new OAC_tdstSetupTreeItem; p_tdstTreeItem->csTreeString = OAC_SETUP_sz_SECTION_APPEARANCE; p_uiID = new UINT; *p_uiID = IDC_STATIC_TEXT; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_STATIC_BG; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_STATIC_IN; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_STATIC_NF; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_STATIC_NM; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_STATIC_INST; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_STATIC_INITIAL; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_STATIC_CURRENT; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_STATIC_NFIELD; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_STATIC_WATCH_FIELDS; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_RECT_TEXT_NAME; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_RECT_BG_NAME; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_RECT_TEXT_FAMILY; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_RECT_BG_FAMILY; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_RECT_TEXT_MODEL; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_RECT_BG_MODEL; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_RECT_TEXT_FIELD_INST; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_RECT_BG_FIELD_INST; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_RECT_TEXT_FIELD_INITIAL; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_RECT_BG_FIELD_INITIAL; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_RECT_TEXT_FIELD_CURRENT; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_RECT_BG_FIELD_CURRENT; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_RECT_TEXT_FIELD_MODEL; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_RECT_BG_FIELD_MODEL; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_RECT_TEXT_FIELD_WATCH; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; p_uiID = new UINT; *p_uiID = IDC_RECT_BG_FIELD_WATCH; p_tdstTreeItem->ListOfID.AddTail(p_uiID); ; m_clListOfListOfID.AddTail(p_tdstTreeItem); pclTree->SetItemData(hCurrentTreeItem, (DWORD)p_tdstTreeItem); //Selects first Item pclTree-> SelectItem(hTreeFirstItem); m_pri_fn_vDisplayControlsForType(m_clListOfListOfID.GetHead()); //Adjusts Windows display CRect crTreeRect; GetDlgItem(IDC_TREE_SUB_SETUP)->GetWindowRect(crTreeRect); ScreenToClient(&crTreeRect); CRect crOKRect; GetDlgItem(IDOK)->GetWindowRect(crOKRect); CRect crDialogRect; GetWindowRect(crDialogRect); crDialogRect.bottom = crOKRect.bottom + crTreeRect.top; MoveWindow(crDialogRect); ////////////// ////////////// //Registers for TUT Module TUT_M_vGetTutDll(); TUT_M_vRegisterControlID(IDC_TREE_SUB_SETUP, "OAc_SetupDialog_SubSetupsTreeControl", TUT_e_TreeCtrl); TUT_M_vRegisterControlID(IDC_CHECK_CONFIRM_ALLOCATION, "OAc_SetupDialog_ConfirmAllocationButton", TUT_e_Button); TUT_M_vRegisterControlID(IDC_CHECK_CONFIRM_UNALLOCATION, "OAc_SetupDialog_ConfirmUnallocationButton", TUT_e_Button); TUT_M_vRegisterControlID(IDC_CHECK_DISPLAY_MODEL_FIELDS, "OAc_SetupDialog_DisplayModelFieldsButton", TUT_e_Button); TUT_M_vRegisterControlID(IDC_CHECK_DISPLAY_UNALLOCATED_MS, "OAc_SetupDialog_DisplayUnallocatedMSButton", TUT_e_Button); TUT_M_vRegisterControlID(IDC_CHECK_WATCH_SUPPRESS_CONFIRM, "OAc_SetupDialog_WatchSuppressionConfirmButton", TUT_e_Button); TUT_M_vRegisterControlID(IDC_CHECK_WATCH_ALWAYS_VISIBLE, "OAc_SetupDialog_WatchAlwaysVisibleButton", TUT_e_Button); TUT_M_vRegisterControlID(IDC_CHECK_SYNCHRONIZE_DIALOG_LIST, "OAc_SetupDialog_SynchronizeDialogListButton", TUT_e_Button); TUT_M_vRegisterControlID(IDC_CHECK_PROPOSE_UNLOADED_MODELS, "OAc_SetupDialog_PreLoadModelsButton", TUT_e_Button); TUT_M_vRegisterControlID(IDC_CHECK_RESTORE_GROUP, "OAc_SetupDialog_RestoreGroupButton", TUT_e_Button); TUT_M_vRegisterControlID(IDC_CHECK_ASK_FOR_NEW_INSTANCE_NAME, "OAc_SetupDialog_AskInstanceName", TUT_e_Button); TUT_M_vRegisterControlID(IDC_RADIO_HELP_ACTIVE, "OAc_SetupDialog_HelpOnActiveViewButton", TUT_e_Button); TUT_M_vRegisterControlID(IDC_RADIO_HELP_MOUSE, "OAc_SetupDialog_HelpOnViewUnderCursorButton", TUT_e_Button); TUT_M_vRegisterControlID(IDC_RECT_TEXT_NAME, "OAc_SetupDialog_ActorNameTextColorStatic", TUT_e_Window); TUT_M_vRegisterControlID(IDC_RECT_BG_NAME, "OAc_SetupDialog_ActorNameBackgroundColorStatic", TUT_e_Window); TUT_M_vRegisterControlID(IDC_RECT_TEXT_FAMILY, "OAc_SetupDialog_FamilyNameTextColorStatic", TUT_e_Window); TUT_M_vRegisterControlID(IDC_RECT_BG_FAMILY, "OAc_SetupDialog_FamilyNameBackroundColorStatic", TUT_e_Window); TUT_M_vRegisterControlID(IDC_RECT_TEXT_MODEL, "OAc_SetupDialog_ModelNameTextColorStatic", TUT_e_Window); TUT_M_vRegisterControlID(IDC_RECT_BG_MODEL, "OAc_SetupDialog_ModelNameBackgroundColorStatic", TUT_e_Window); TUT_M_vRegisterControlID(IDC_RECT_TEXT_FIELD_INST, "OAc_SetupDialog_InstanceFieldTextColorStatic", TUT_e_Window); TUT_M_vRegisterControlID(IDC_RECT_BG_FIELD_INST, "OAc_SetupDialog_InstanceFiedlBackgroundColorStatic", TUT_e_Window); TUT_M_vRegisterControlID(IDC_RECT_TEXT_FIELD_INITIAL, "OAc_SetupDialog_InitialFieldTextColorStatic", TUT_e_Window); TUT_M_vRegisterControlID(IDC_RECT_BG_FIELD_INITIAL, "OAc_SetupDialog_InitialFiedlBackgroundColorStatic", TUT_e_Window); TUT_M_vRegisterControlID(IDC_RECT_TEXT_FIELD_CURRENT, "OAc_SetupDialog_CurrentFieldTextColorStatic", TUT_e_Window); TUT_M_vRegisterControlID(IDC_RECT_BG_FIELD_CURRENT, "OAc_SetupDialog_CurrentFiedlBackgroundColorStatic", TUT_e_Window); TUT_M_vRegisterControlID(IDC_RECT_TEXT_FIELD_MODEL, "OAc_SetupDialog_ModelFieldTextColorStatic", TUT_e_Window); TUT_M_vRegisterControlID(IDC_RECT_BG_FIELD_MODEL, "OAc_SetupDialog_ModelFieldBackgroundColorStatic", TUT_e_Window); TUT_M_vRegisterControlID(IDC_RECT_TEXT_FIELD_WATCH, "OAc_SetupDialog_InWatchFieldTextColorStatic", TUT_e_Window); TUT_M_vRegisterControlID(IDC_RECT_BG_FIELD_WATCH, "OAc_SetupDialog_InWatchFieldBackgroundColorStatic", TUT_e_Window); TUT_M_vRegisterControlID(IDOK, "OAc_SetupDialog_ButtonOK", TUT_e_Button); TUT_M_vRegisterControlID(IDCANCEL, "OAc_SetupDialog_ButtonCancel", TUT_e_Button); //End of Registers for TUT Module ////////////// return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } //*************************************************************************** void EdActors_EditorSetupDialog::OnDestroy() { ////////////// ////////////// //UnRegisters for TUT Module TUT_M_vGetTutDll(); TUT_M_vUnregisterControlID(IDC_TREE_SUB_SETUP); TUT_M_vUnregisterControlID(IDC_CHECK_CONFIRM_ALLOCATION); TUT_M_vUnregisterControlID(IDC_CHECK_CONFIRM_UNALLOCATION); TUT_M_vUnregisterControlID(IDC_CHECK_DISPLAY_MODEL_FIELDS); TUT_M_vUnregisterControlID(IDC_CHECK_DISPLAY_UNALLOCATED_MS); TUT_M_vUnregisterControlID(IDC_CHECK_WATCH_SUPPRESS_CONFIRM); TUT_M_vUnregisterControlID(IDC_CHECK_WATCH_ALWAYS_VISIBLE); TUT_M_vUnregisterControlID(IDC_CHECK_SYNCHRONIZE_DIALOG_LIST); TUT_M_vUnregisterControlID(IDC_CHECK_PROPOSE_UNLOADED_MODELS); TUT_M_vUnregisterControlID(IDC_CHECK_RESTORE_GROUP); TUT_M_vUnregisterControlID(IDC_CHECK_ASK_FOR_NEW_INSTANCE_NAME); TUT_M_vUnregisterControlID(IDC_RADIO_HELP_ACTIVE); TUT_M_vUnregisterControlID(IDC_RADIO_HELP_MOUSE); TUT_M_vUnregisterControlID(IDC_RECT_TEXT_NAME); TUT_M_vUnregisterControlID(IDC_RECT_BG_NAME); TUT_M_vUnregisterControlID(IDC_RECT_TEXT_FAMILY); TUT_M_vUnregisterControlID(IDC_RECT_BG_FAMILY); TUT_M_vUnregisterControlID(IDC_RECT_TEXT_MODEL); TUT_M_vUnregisterControlID(IDC_RECT_BG_MODEL); TUT_M_vUnregisterControlID(IDC_RECT_TEXT_FIELD_INST); TUT_M_vUnregisterControlID(IDC_RECT_BG_FIELD_INST); TUT_M_vUnregisterControlID(IDC_RECT_TEXT_FIELD_INITIAL); TUT_M_vUnregisterControlID(IDC_RECT_BG_FIELD_INITIAL); TUT_M_vUnregisterControlID(IDC_RECT_TEXT_FIELD_CURRENT); TUT_M_vUnregisterControlID(IDC_RECT_BG_FIELD_CURRENT); TUT_M_vUnregisterControlID(IDC_RECT_TEXT_FIELD_MODEL); TUT_M_vUnregisterControlID(IDC_RECT_BG_FIELD_MODEL); TUT_M_vUnregisterControlID(IDC_RECT_TEXT_FIELD_WATCH); TUT_M_vUnregisterControlID(IDC_RECT_BG_FIELD_WATCH); TUT_M_vUnregisterControlID(IDOK); TUT_M_vUnregisterControlID(IDCANCEL); //End of UnRegisters for TUT Module ////////////// CDialog::OnDestroy(); } //*************************************************************************** void EdActors_EditorSetupDialog::OnOK() { UpdateData(TRUE); g_pclInterface->m_clDocument.m_bMustDisplayModelFieldsInInstance = m_bMustDisplayModelFieldsInInstance; g_pclInterface->m_clDocument.m_bMustDisplayUnallocatedMS = m_bMustDisplayUnallocatedMS; g_pclInterface->m_clDocument.m_bMustConfirmWatchSuppression = m_bMustConfirmSuppressionInWatch; g_pclInterface->m_clDocument.m_bMustConfirmUnallocation = m_bMustConfirmUnallocation; g_pclInterface->m_clDocument.m_bMustConfirmAllocation = m_bMustConfirmAllocation; g_pclInterface->m_clDocument.m_bMustDisplayHelpOnActiveView = (m_iHelpRadioValue == 0); g_pclInterface->m_clDocument.m_bMustSynchronizeDialogListWithEdition = m_bSynchronizeDialogListWithEdition; g_pclInterface->m_clDocument.m_bWatchAlwaysVisible = m_bWatchAlwaysVisible; g_pclInterface->m_clDocument.m_bProposeUnloadedModels = m_bProposeUnloadedModels; g_pclInterface->m_clDocument.m_bRestoreGroup = m_bRestoreGroup; g_pclInterface->m_clDocument.m_bAskForNewInstanceName = m_bAskForNewInstanceName; //Refreshes Display in Editor g_pclInterface->m_clDocument.m_pclMiniStrucView->InvalidateRect(NULL); //Saves Ini file g_pclInterface->m_clDocument.m_fn_bWriteIniFile(); CDialog::OnOK(); } //*************************************************************************** void EdActors_EditorSetupDialog::OnLButtonUp(UINT nFlags, CPoint point) { CWnd *pclWnd = GetDlgItem(IDC_RECT_TEXT_NAME); CRect crClientRect; pclWnd->GetWindowRect(crClientRect); ScreenToClient(crClientRect); if ( crClientRect.PtInRect(point) ) if ( m_fn_bEditColor(g_pclInterface->m_clDocument.m_pub_colref_NameTextColor) ) InvalidateRect(NULL); pclWnd = GetDlgItem(IDC_RECT_BG_NAME); pclWnd->GetWindowRect(crClientRect); ScreenToClient(crClientRect); if ( crClientRect.PtInRect(point) ) if ( m_fn_bEditColor(g_pclInterface->m_clDocument.m_pub_colref_NameBackgroundColor) ) InvalidateRect(NULL); pclWnd = GetDlgItem(IDC_RECT_TEXT_FIELD_INST); pclWnd->GetWindowRect(crClientRect); ScreenToClient(crClientRect); if ( crClientRect.PtInRect(point) ) if ( m_fn_bEditColor(g_pclInterface->m_clDocument.m_pub_colref_FieldInstanceTextColor) ) InvalidateRect(NULL); pclWnd = GetDlgItem(IDC_RECT_BG_FIELD_INST); pclWnd->GetWindowRect(crClientRect); ScreenToClient(crClientRect); if ( crClientRect.PtInRect(point) ) if ( m_fn_bEditColor(g_pclInterface->m_clDocument.m_pub_colref_FieldInstanceBackgroundColor) ) InvalidateRect(NULL); pclWnd = GetDlgItem(IDC_RECT_TEXT_FIELD_INITIAL); pclWnd->GetWindowRect(crClientRect); ScreenToClient(crClientRect); if ( crClientRect.PtInRect(point) ) if ( m_fn_bEditColor(g_pclInterface->m_clDocument.m_pub_colref_FieldInitialTextColor) ) InvalidateRect(NULL); pclWnd = GetDlgItem(IDC_RECT_BG_FIELD_INITIAL); pclWnd->GetWindowRect(crClientRect); ScreenToClient(crClientRect); if ( crClientRect.PtInRect(point) ) if ( m_fn_bEditColor(g_pclInterface->m_clDocument.m_pub_colref_FieldInitialBackgroundColor) ) InvalidateRect(NULL); pclWnd = GetDlgItem(IDC_RECT_TEXT_FIELD_CURRENT); pclWnd->GetWindowRect(crClientRect); ScreenToClient(crClientRect); if ( crClientRect.PtInRect(point) ) if ( m_fn_bEditColor(g_pclInterface->m_clDocument.m_pub_colref_FieldCurrentTextColor) ) InvalidateRect(NULL); pclWnd = GetDlgItem(IDC_RECT_BG_FIELD_CURRENT); pclWnd->GetWindowRect(crClientRect); ScreenToClient(crClientRect); if ( crClientRect.PtInRect(point) ) if ( m_fn_bEditColor(g_pclInterface->m_clDocument.m_pub_colref_FieldCurrentBackgroundColor) ) InvalidateRect(NULL); pclWnd = GetDlgItem(IDC_RECT_TEXT_FIELD_MODEL); pclWnd->GetWindowRect(crClientRect); ScreenToClient(crClientRect); if ( crClientRect.PtInRect(point) ) if ( m_fn_bEditColor(g_pclInterface->m_clDocument.m_pub_colref_FieldModelTextColor) ) InvalidateRect(NULL); pclWnd = GetDlgItem(IDC_RECT_BG_FIELD_MODEL); pclWnd->GetWindowRect(crClientRect); ScreenToClient(crClientRect); if ( crClientRect.PtInRect(point) ) if ( m_fn_bEditColor(g_pclInterface->m_clDocument.m_pub_colref_FieldModelBackgroundColor) ) InvalidateRect(NULL); pclWnd = GetDlgItem(IDC_RECT_TEXT_FAMILY); pclWnd->GetWindowRect(crClientRect); ScreenToClient(crClientRect); if ( crClientRect.PtInRect(point) ) if ( m_fn_bEditColor(g_pclInterface->m_clDocument.m_pub_colref_FamilyTextColor) ) InvalidateRect(NULL); pclWnd = GetDlgItem(IDC_RECT_BG_FAMILY); pclWnd->GetWindowRect(crClientRect); ScreenToClient(crClientRect); if ( crClientRect.PtInRect(point) ) if ( m_fn_bEditColor(g_pclInterface->m_clDocument.m_pub_colref_FamilyBackgroundColor) ) InvalidateRect(NULL); pclWnd = GetDlgItem(IDC_RECT_TEXT_FIELD_WATCH); pclWnd->GetWindowRect(crClientRect); ScreenToClient(crClientRect); if ( crClientRect.PtInRect(point) ) if ( m_fn_bEditColor(g_pclInterface->m_clDocument.m_pub_colref_InWatchFieldTextColor) ) InvalidateRect(NULL); pclWnd = GetDlgItem(IDC_RECT_BG_FIELD_WATCH); pclWnd->GetWindowRect(crClientRect); ScreenToClient(crClientRect); if ( crClientRect.PtInRect(point) ) if ( m_fn_bEditColor(g_pclInterface->m_clDocument.m_pub_colref_InWatchFieldBackgroundColor) ) InvalidateRect(NULL); pclWnd = GetDlgItem(IDC_RECT_TEXT_MODEL); pclWnd->GetWindowRect(crClientRect); ScreenToClient(crClientRect); if ( crClientRect.PtInRect(point) ) if ( m_fn_bEditColor(g_pclInterface->m_clDocument.m_pub_colref_ModelTextColor) ) InvalidateRect(NULL); pclWnd = GetDlgItem(IDC_RECT_BG_MODEL); pclWnd->GetWindowRect(crClientRect); ScreenToClient(crClientRect); if ( crClientRect.PtInRect(point) ) if ( m_fn_bEditColor(g_pclInterface->m_clDocument.m_pub_colref_ModelBackgroundColor) ) InvalidateRect(NULL); CDialog::OnLButtonUp(nFlags, point); } //*************************************************************************** BOOL EdActors_EditorSetupDialog::m_fn_bEditColor(COLORREF &r_Color) { CColorDialog dial(r_Color, CC_FULLOPEN, &g_oBaseFrame); if ( dial.DoModal() == IDOK ) { r_Color = dial.GetColor(); return TRUE; } else return FALSE; } //*************************************************************************** void EdActors_EditorSetupDialog::OnPaint() { CPaintDC dc(this); // device context for painting CRect crClientRect; CWnd *pclWnd = GetDlgItem(IDC_RECT_TEXT_NAME); pclWnd->GetClientRect(crClientRect); crClientRect.InflateRect(-2,-2); CClientDC dc1(pclWnd); dc1.FillSolidRect(crClientRect, g_pclInterface->m_clDocument.m_pub_colref_NameTextColor); pclWnd = GetDlgItem(IDC_RECT_BG_NAME); pclWnd->GetClientRect(crClientRect); crClientRect.InflateRect(-2,-2); CClientDC dc2(pclWnd); dc2.FillSolidRect(crClientRect, g_pclInterface->m_clDocument.m_pub_colref_NameBackgroundColor); pclWnd = GetDlgItem(IDC_RECT_TEXT_FIELD_INST); pclWnd->GetClientRect(crClientRect); crClientRect.InflateRect(-2,-2); CClientDC dc3(pclWnd); dc3.FillSolidRect(crClientRect, g_pclInterface->m_clDocument.m_pub_colref_FieldInstanceTextColor); pclWnd = GetDlgItem(IDC_RECT_BG_FIELD_INST); pclWnd->GetClientRect(crClientRect); crClientRect.InflateRect(-2,-2); CClientDC dc4(pclWnd); dc4.FillSolidRect(crClientRect, g_pclInterface->m_clDocument.m_pub_colref_FieldInstanceBackgroundColor); pclWnd = GetDlgItem(IDC_RECT_TEXT_FIELD_INITIAL); pclWnd->GetClientRect(crClientRect); crClientRect.InflateRect(-2,-2); CClientDC dc23(pclWnd); dc23.FillSolidRect(crClientRect, g_pclInterface->m_clDocument.m_pub_colref_FieldInitialTextColor); pclWnd = GetDlgItem(IDC_RECT_BG_FIELD_INITIAL); pclWnd->GetClientRect(crClientRect); crClientRect.InflateRect(-2,-2); CClientDC dc24(pclWnd); dc24.FillSolidRect(crClientRect, g_pclInterface->m_clDocument.m_pub_colref_FieldInitialBackgroundColor); pclWnd = GetDlgItem(IDC_RECT_TEXT_FIELD_CURRENT); pclWnd->GetClientRect(crClientRect); crClientRect.InflateRect(-2,-2); CClientDC dc33(pclWnd); dc33.FillSolidRect(crClientRect, g_pclInterface->m_clDocument.m_pub_colref_FieldCurrentTextColor); pclWnd = GetDlgItem(IDC_RECT_BG_FIELD_CURRENT); pclWnd->GetClientRect(crClientRect); crClientRect.InflateRect(-2,-2); CClientDC dc34(pclWnd); dc34.FillSolidRect(crClientRect, g_pclInterface->m_clDocument.m_pub_colref_FieldCurrentBackgroundColor); pclWnd = GetDlgItem(IDC_RECT_TEXT_FIELD_MODEL); pclWnd->GetClientRect(crClientRect); crClientRect.InflateRect(-2,-2); CClientDC dc5(pclWnd); dc5.FillSolidRect(crClientRect, g_pclInterface->m_clDocument.m_pub_colref_FieldModelTextColor); pclWnd = GetDlgItem(IDC_RECT_BG_FIELD_MODEL); pclWnd->GetClientRect(crClientRect); crClientRect.InflateRect(-2,-2); CClientDC dc6(pclWnd); dc6.FillSolidRect(crClientRect, g_pclInterface->m_clDocument.m_pub_colref_FieldModelBackgroundColor); pclWnd = GetDlgItem(IDC_RECT_TEXT_FAMILY); pclWnd->GetClientRect(crClientRect); crClientRect.InflateRect(-2,-2); CClientDC dc13(pclWnd); dc13.FillSolidRect(crClientRect, g_pclInterface->m_clDocument.m_pub_colref_FamilyTextColor); pclWnd = GetDlgItem(IDC_RECT_BG_FAMILY); pclWnd->GetClientRect(crClientRect); crClientRect.InflateRect(-2,-2); CClientDC dc14(pclWnd); dc14.FillSolidRect(crClientRect, g_pclInterface->m_clDocument.m_pub_colref_FamilyBackgroundColor); pclWnd = GetDlgItem(IDC_RECT_TEXT_FIELD_WATCH); pclWnd->GetClientRect(crClientRect); crClientRect.InflateRect(-2,-2); CClientDC dc7(pclWnd); dc7.FillSolidRect(crClientRect, g_pclInterface->m_clDocument.m_pub_colref_InWatchFieldTextColor); pclWnd = GetDlgItem(IDC_RECT_BG_FIELD_WATCH); pclWnd->GetClientRect(crClientRect); crClientRect.InflateRect(-2,-2); CClientDC dc8(pclWnd); dc8.FillSolidRect(crClientRect, g_pclInterface->m_clDocument.m_pub_colref_InWatchFieldBackgroundColor); pclWnd = GetDlgItem(IDC_RECT_TEXT_MODEL); pclWnd->GetClientRect(crClientRect); crClientRect.InflateRect(-2,-2); CClientDC dc11(pclWnd); dc11.FillSolidRect(crClientRect, g_pclInterface->m_clDocument.m_pub_colref_ModelTextColor); pclWnd = GetDlgItem(IDC_RECT_BG_MODEL); pclWnd->GetClientRect(crClientRect); crClientRect.InflateRect(-2,-2); CClientDC dc12(pclWnd); dc12.FillSolidRect(crClientRect, g_pclInterface->m_clDocument.m_pub_colref_ModelBackgroundColor); // Do not call CDialog::OnPaint() for painting messages } //*************************************************************************** long EdActors_EditorSetupDialog::OnMyHelp(UINT, long lParam) { LPHELPINFO lphi = (LPHELPINFO)lParam; ::WinHelp( m_hWnd, LPCTSTR(g_pclInterface->m_clDocument.m_csHelpFileNameAndPath), HELP_CONTEXTPOPUP, lphi->dwContextId); return TRUE; } //*************************************************************************** void EdActors_EditorSetupDialog::OnSelchangedTreeSubSetup(NMHDR* pNMHDR, LRESULT* pResult) { NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; CTreeCtrl *pclTree = (CTreeCtrl *)GetDlgItem(IDC_TREE_SUB_SETUP); // CString csSelectedString = pclTree->GetItemText(pNMTreeView->itemNew.hItem); OAC_tdstSetupTreeItem *p_tdstTreeItem = (OAC_tdstSetupTreeItem *)pclTree->GetItemData(pNMTreeView->itemNew.hItem); m_pri_fn_vDisplayControlsForType(p_tdstTreeItem); *pResult = 0; } //*************************************************************************** void EdActors_EditorSetupDialog::m_pri_fn_vDisplayControlsForType(OAC_tdstSetupTreeItem *_p_tdstTreeItem) { if ( _p_tdstTreeItem != m_pri_p_tdstCurrentTreeItem ) { //Hides old controls if ( m_pri_p_tdstCurrentTreeItem != NULL ) { //Displays controls POSITION pos = m_pri_p_tdstCurrentTreeItem->ListOfID.GetHeadPosition(); while ( pos != NULL ) GetDlgItem(*m_pri_p_tdstCurrentTreeItem->ListOfID.GetNext(pos))->ShowWindow(SW_HIDE); } //Moves Controls if ( _p_tdstTreeItem->ListOfID.GetCount() > 0 ) { CRect crFirstControlRect; GetDlgItem(*_p_tdstTreeItem->ListOfID.GetHead())->GetWindowRect(crFirstControlRect); ScreenToClient(&crFirstControlRect); CRect crImageRect; GetDlgItem(IDC_IMAGE_TITLE)->GetWindowRect(crImageRect); ScreenToClient(&crImageRect); //Moves and Displays controls CRect crCurrentRect; UINT *p_uiCurrentID; POSITION pos = _p_tdstTreeItem->ListOfID.GetHeadPosition(); while ( pos != NULL ) { p_uiCurrentID = _p_tdstTreeItem->ListOfID.GetNext(pos); GetDlgItem(*p_uiCurrentID)->GetWindowRect(crCurrentRect); ScreenToClient(&crCurrentRect); crCurrentRect.OffsetRect(0, crImageRect.bottom - crFirstControlRect.top + 10); GetDlgItem(*p_uiCurrentID)->MoveWindow(crCurrentRect); GetDlgItem(*p_uiCurrentID)->ShowWindow(SW_SHOW); } } //Displays text on Bitmap CString csTitleText; CString csInfoText; /* switch ( _eType ) { case OAC_SETUP_TYPE__GENERAL: csTitleText = "General"; csInfoText = "Set General options"; break; case OAC_SETUP_TYPE__ACTORS: csTitleText = "Actors"; csInfoText = "Set Actors options"; break; case OAC_SETUP_TYPE__MODELS: csTitleText = "Models"; csInfoText = "Set Models display"; break; case OAC_SETUP_TYPE__INSTANCES: csTitleText = "Instances"; csInfoText = "Set Instances display"; break; case OAC_SETUP_TYPE__WATCH_WINDOW: csTitleText = "Watch Window"; csInfoText = "Set Watch comportment"; break; case OAC_SETUP_TYPE__HELP: csTitleText = "Help"; csInfoText = "Set Help options"; break; case OAC_SETUP_TYPE__APPEARANCE: csTitleText = "Appearance"; csInfoText = "Set controls colors"; break; }; */ csTitleText = _p_tdstTreeItem->csTreeString; csInfoText = "Essai"; CRect crBitmapRect; GetDlgItem(IDC_IMAGE_TITLE)->GetWindowRect(crBitmapRect); ScreenToClient(crBitmapRect); CClientDC dc(this); dc.SetTextColor(RGB(0,0,0)); dc.SetBkMode(TRANSPARENT); CFont *pclFont = GetFont(); LOGFONT LogFont; pclFont->GetLogFont(&LogFont); LogFont.lfWeight += 400; CFont clFont; clFont. CreateFontIndirect(&LogFont); dc.SelectObject(&clFont); //Offsets rect short wFontHeight = (short)dc.GetTextExtent("A",1).cy; crBitmapRect.OffsetRect(0, (crBitmapRect.Height() - wFontHeight) / 2); dc.DrawText(csTitleText, &crBitmapRect, DT_LEFT); dc.SelectObject(pclFont); dc.DrawText(csInfoText, &crBitmapRect, DT_RIGHT); m_pri_p_tdstCurrentTreeItem = _p_tdstTreeItem; //Re-draws Bitmap (and erases old text) // CWnd *pclWnd = GetDlgItem(IDC_IMAGE_TITLE); // pclWnd->InvalidateRect(NULL); } }