home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2002 March / PCWMAR02.iso / software / turbocad / v8trial / TurboCADv8ProfessionalNoReg.exe / Data.Cab / F44432_ToolBasicInfo.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2001-07-16  |  8.6 KB  |  279 lines

  1. // ToolBasicInfo.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "RegenWizard.h"
  6. #include "ToolBasicInfo.h"
  7.  
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13.  
  14. #include "RegenWizardAW.H"
  15. /////////////////////////////////////////////////////////////////////////////
  16. // CToolBasicInfo dialog
  17.  
  18.  
  19. CToolBasicInfo::CToolBasicInfo(CRegenWizardAppWiz *pMain, CWnd* pParent /*=NULL*/)
  20.     : CAppWizStepDlg(CToolBasicInfo::IDD),
  21.     m_pclsMain(pMain),
  22.     m_boolFirst(true)
  23. {
  24.     //{{AFX_DATA_INIT(CToolBasicInfo)
  25.     m_strEMenuName = _T("");
  26.     m_strEMenuPath = _T("");
  27.     m_strEToolName = _T("");
  28.     m_strEPrompt = _T("");
  29.     m_strEToolTip = _T("");
  30.     m_strEToolBar = _T("");
  31.     //}}AFX_DATA_INIT
  32.  
  33.     m_lToolsCount        = 0;
  34.  
  35.     //m_boolEditPermitted    = false;
  36.  
  37.     m_pclsMain->m_Dictionary [_T("ToolsCount")]            = _T("0");
  38.     m_pclsMain->m_Dictionary [_T("GeneratedToolsInfo")]    = _T("");
  39.     m_pclsMain->m_Dictionary [_T("ToolInfoIDS")]        = _T("");
  40.     m_pclsMain->m_Dictionary [_T("ToolStrTable")]        = _T("");
  41. }
  42.  
  43.  
  44. void CToolBasicInfo::DoDataExchange(CDataExchange* pDX)
  45. {
  46.     CDialog::DoDataExchange(pDX);
  47.     //{{AFX_DATA_MAP(CToolBasicInfo)
  48.     DDX_Control(pDX, IDC_BUTTON_ADD, m_btnAdd);
  49.     DDX_Control(pDX, IDC_BUTTON_REMOVE, m_btnRemove);
  50.     DDX_Control(pDX, IDC_BUTTON_EDIT, m_btnEdit);
  51.     DDX_Control(pDX, IDC_CHECK_UPDATE, m_btnUpdate);
  52.     DDX_Control(pDX, IDC_CHECK_ENABLED, m_btnEnabled);
  53.     DDX_Control(pDX, IDC_LIST_TOOL, m_listTool);
  54.     DDX_Text(pDX, IDC_EDIT_MENU, m_strEMenuName);
  55.     DDX_Text(pDX, IDC_EDIT_MENUPATH, m_strEMenuPath);
  56.     DDX_Text(pDX, IDC_EDIT_NAME, m_strEToolName);
  57.     DDX_Text(pDX, IDC_EDIT_PROMT, m_strEPrompt);
  58.     DDX_Text(pDX, IDC_EDIT_TIP, m_strEToolTip);
  59.     DDX_Text(pDX, IDC_EDIT_TOOLBAR, m_strEToolBar);
  60.     //}}AFX_DATA_MAP
  61. }
  62.  
  63.  
  64. BEGIN_MESSAGE_MAP(CToolBasicInfo, CAppWizStepDlg)
  65.     //{{AFX_MSG_MAP(CToolBasicInfo)
  66.     ON_BN_CLICKED(IDC_BUTTON_REMOVE, OnButtonRemove)
  67.     ON_BN_CLICKED(IDC_BUTTON_EDIT, OnButtonEdit)
  68.     ON_LBN_SELCHANGE(IDC_LIST_TOOL, OnSelchangeListTool)
  69.     ON_WM_SHOWWINDOW()
  70.     ON_BN_CLICKED(IDC_BUTTON_ADD, OnButtonAdd)
  71.     //}}AFX_MSG_MAP
  72. END_MESSAGE_MAP()
  73.  
  74. /////////////////////////////////////////////////////////////////////////////
  75. // CToolBasicInfo message handlers
  76.  
  77. /*void CToolBasicInfo::CanEdit()
  78. {
  79.     m_editMenu        .EnableWindow(m_boolEditPermitted);
  80.     m_editMenuPath    .EnableWindow(m_boolEditPermitted);
  81.     m_editName        .EnableWindow(m_boolEditPermitted);
  82.     m_editPrompt    .EnableWindow(m_boolEditPermitted);
  83.     m_editTip        .EnableWindow(m_boolEditPermitted);
  84.     m_btnEnabled    .EnableWindow(m_boolEditPermitted);
  85.     m_btnUpdate        .EnableWindow(m_boolEditPermitted);
  86. }*/
  87.  
  88. void CToolBasicInfo::RemoveSelected()
  89. {
  90.     int        iCurSel    = m_listTool.GetCurSel();
  91.  
  92.     for (int i = iCurSel; i < m_lToolsCount; i++)
  93.     {
  94.         m_strMenuName    [i]    = m_strMenuName [i + 1];
  95.         m_strMenuPath    [i]    = m_strMenuPath [i + 1];
  96.         m_strToolName    [i]    = m_strToolName [i + 1];
  97.         m_strPrompt        [i]    = m_strPrompt    [i + 1];
  98.         m_strToolTip    [i]    = m_strToolTip    [i + 1];
  99.         m_iEnabled        [i]    = m_iEnabled    [i + 1];
  100.         m_iUpdate        [i]    = m_iUpdate        [i + 1];
  101.     };
  102.  
  103.     m_listTool.DeleteString (iCurSel);
  104.     if (iCurSel == --m_lToolsCount) iCurSel--;
  105.     m_listTool.SetCurSel(iCurSel);
  106. }
  107.  
  108. void CToolBasicInfo::GetData(long lIndex)
  109. {
  110.     m_strMenuName    [lIndex] = m_strEMenuName;
  111.     m_strMenuPath    [lIndex] = m_strEMenuPath;
  112.     m_strToolName    [lIndex] = m_strEToolName;
  113.     m_strPrompt        [lIndex] = m_strEPrompt;
  114.     m_strToolTip    [lIndex] = m_strEToolTip;
  115.     m_strToolBar    [lIndex] = m_strEToolBar;
  116.  
  117.     m_iEnabled    [lIndex] = m_btnEnabled    .GetCheck ();
  118.     m_iUpdate    [lIndex] = m_btnUpdate    .GetCheck ();
  119. }
  120.  
  121. void CToolBasicInfo::SetData(long lIndex)
  122. {
  123.     m_strEMenuName     = m_strMenuName    [lIndex];
  124.     m_strEMenuPath    = m_strMenuPath    [lIndex];
  125.     m_strEToolName    = m_strToolName    [lIndex];
  126.     m_strEPrompt    = m_strPrompt    [lIndex];
  127.     m_strEToolTip    = m_strToolTip    [lIndex];
  128.     m_strEToolBar    = m_strToolBar    [lIndex];
  129.  
  130.     m_btnEnabled    .SetCheck ((int)m_iEnabled    [lIndex]);
  131.     m_btnUpdate        .SetCheck ((int)m_iUpdate    [lIndex]);
  132. }
  133.  
  134. void CToolBasicInfo::OnSelchangeListTool() 
  135. {
  136.     // TODO: Add your control notification handler code here
  137.     if (m_listTool.GetCurSel() == LB_ERR) return;
  138.     
  139.     SetData(m_listTool.GetCurSel());
  140. }
  141.  
  142. /*void CToolBasicInfo::SetBtnEdit(bool boolEdit)
  143. {
  144.     CString tmp;
  145.  
  146.     if (boolEdit) 
  147.         tmp.LoadString(IDS_EDIT);
  148.     else
  149.         tmp.LoadString(IDS_DONE);
  150.     m_btnEdit.SetWindowText(tmp);
  151.     GeneareSrcCode();
  152. }*/
  153.  
  154. void CToolBasicInfo::OnButtonAdd() 
  155. {
  156.     // TODO: Add your control notification handler code here
  157.     UpdateData();
  158.     GetData(m_lToolsCount);
  159.  
  160.     m_listTool.AddString(m_strMenuPath[m_lToolsCount] + "|" + m_strToolName[m_lToolsCount]);
  161.     m_listTool.SetCurSel(m_lToolsCount);
  162.     m_lToolsCount++;
  163.  
  164.     GenerateSrcCode();
  165. }
  166.  
  167. void CToolBasicInfo::OnButtonRemove() 
  168. {
  169.     // TODO: Add your control notification handler code here
  170.     if (m_listTool.GetCurSel() == LB_ERR) return;
  171.  
  172.     RemoveSelected();
  173.     GenerateSrcCode();
  174. }
  175.  
  176. void CToolBasicInfo::OnButtonEdit() 
  177. {
  178.     // TODO: Add your control notification handler code here
  179.     if (m_listTool.GetCurSel() == LB_ERR) return;
  180.  
  181.     SetData(m_listTool.GetCurSel());
  182.     RemoveSelected();
  183.     GenerateSrcCode();
  184.     UpdateData(false);
  185. }
  186.  
  187. void CToolBasicInfo::OnShowWindow(BOOL bShow, UINT nStatus) 
  188. {
  189.     CAppWizStepDlg::OnShowWindow(bShow, nStatus);
  190.     
  191.     // TODO: Add your message handler code here
  192.     if (m_boolFirst)
  193.     {
  194.         m_boolFirst        = false;
  195.  
  196.         m_strEMenuPath    = "S&DK|NewTool";
  197.         m_strEMenuName    = m_pclsMain->m_Dictionary[_T("COM_Class_Name")];
  198.         m_strEToolName    = m_pclsMain->m_Dictionary[_T("COM_Class_Name")];
  199.         m_strEPrompt    = m_pclsMain->m_Dictionary[_T("COM_Class_Name")];
  200.         m_strEToolTip    = m_pclsMain->m_Dictionary[_T("COM_Class_Name")];
  201.         m_strEToolBar    = m_pclsMain->m_Dictionary[_T("COM_Class_Name")];
  202.  
  203.         m_btnEnabled.SetCheck(1);
  204.         m_btnUpdate.SetCheck(1);
  205.  
  206.         UpdateData(false);
  207.     };
  208. }
  209.  
  210. void CToolBasicInfo::GenerateSrcCode()
  211. {
  212.     CString    strResult    = "";
  213.     CString strIDS        = "";
  214.     CString strSTable    = "";
  215.     CString    strToolIndex;
  216.     CString    strCount;
  217.     CString strTmp;
  218.  
  219.     strCount.Format("%li", m_lToolsCount);
  220.  
  221.     for (int i = 0; i < m_lToolsCount; i++)
  222.     {
  223.         strToolIndex.Format("%i", i);
  224.     BSTR        *bstrCaptions    = NULL;
  225.     BSTR        *bstrPrompts    = NULL;
  226.     BSTR        *bstrTips        = NULL;
  227.  
  228.         strResult += "\t\tbstrNames\t\t[lTmpIndex]\t= MakeBSTR(IDS_TOOL_NAME_" + strToolIndex + ");\n";
  229.         strResult += "\t\tbstrPrompts\t\t[lTmpIndex]\t= MakeBSTR(IDS_TOOL_PRMT_" + strToolIndex + ");\n";
  230.         strResult += "\t\tbstrTips\t\t[lTmpIndex]\t= MakeBSTR(IDS_TOOL_TTIP_" + strToolIndex + ");\n";
  231.         strResult += "\t\tbstrCaptions\t[lTmpIndex]\t= MakeBSTR(IDS_TOOL_MCAP_" + strToolIndex + ");\n";
  232.         strResult += "\t\tbstrCaptions\t[*lToolsCount + lTmpIndex]\t= MakeBSTR(IDS_TOOL_TBAR_" + strToolIndex + ");\n";
  233.         if (m_iEnabled[i] == 1) 
  234.             strResult += "\t\tboolEnabled\t\t[lTmpIndex]\t= true;\n";
  235.         else
  236.             strResult += "\t\tboolEnabled\t\t[lTmpIndex]\t= false;\n";
  237.  
  238.         if (m_iUpdate[i] == 1) 
  239.             strResult += "\t\tboolWants\t\t[lTmpIndex]\t= true;\n";
  240.         else
  241.             strResult += "\t\tboolWants\t\t[lTmpIndex]\t= false;\n";
  242.         strResult += "\t\tlTmpIndex++;\n\n";
  243.     };
  244.  
  245.     for (i = 0; i < m_lToolsCount; i++)
  246.     {
  247.         strToolIndex.Format("%i", i);
  248.         
  249.         strTmp.Format("%li", (long) 201 + i*5);
  250.         strIDS += "#define\tIDS_TOOL_NAME_" + strToolIndex + "\t\t\t" + strTmp + "\n";
  251.         strTmp.Format("%li", (long) 202 + i*5);
  252.         strIDS += "#define\tIDS_TOOL_MCAP_" + strToolIndex + "\t\t\t" + strTmp + "\n";
  253.         strTmp.Format("%li", (long) 203 + i*5);
  254.         strIDS += "#define\tIDS_TOOL_TBAR_" + strToolIndex + "\t\t\t" + strTmp + "\n";
  255.         strTmp.Format("%li", (long) 204 + i*5);
  256.         strIDS += "#define\tIDS_TOOL_PRMT_" + strToolIndex + "\t\t\t" + strTmp + "\n";
  257.         strTmp.Format("%li", (long) 205 + i*5);
  258.         strIDS += "#define\tIDS_TOOL_TTIP_" + strToolIndex + "\t\t\t" + strTmp + "\n\n";
  259.     };
  260.  
  261.     for (i = 0; i < m_lToolsCount; i++)
  262.     {
  263.         strToolIndex.Format("%i", i);
  264.  
  265.         strSTable += "STRINGTABLE DISCARDABLE\nBEGIN\n";
  266.         strSTable += "\tIDS_TOOL_NAME_" + strToolIndex + "\t\t\"" + m_strMenuPath[i] + "|" + m_strToolName [i] + "\"\n";
  267.         strSTable += "\tIDS_TOOL_MCAP_" + strToolIndex + "\t\t\"" + m_strMenuName[i] + "\"\n";
  268.         strSTable += "\tIDS_TOOL_TBAR_" + strToolIndex + "\t\t\"" + m_strToolBar[i] + "\"\n";
  269.         strSTable += "\tIDS_TOOL_PRMT_" + strToolIndex + "\t\t\"" + m_strPrompt[i] + "\"\n";
  270.         strSTable += "\tIDS_TOOL_TTIP_" + strToolIndex + "\t\t\"" + m_strToolTip[i] + "\"\n";
  271.         strSTable += "END\n\n";
  272.     };
  273.  
  274.     m_pclsMain->m_Dictionary [_T("ToolsCount")]            = strCount;
  275.     m_pclsMain->m_Dictionary [_T("GeneratedToolsInfo")]    = strResult;
  276.     m_pclsMain->m_Dictionary [_T("ToolInfoIDS")]        = strIDS;
  277.     m_pclsMain->m_Dictionary [_T("ToolStrTable")]        = strSTable;
  278. }
  279.