home *** CD-ROM | disk | FTP | other *** search
/ Practical Internet 2002 February / Practical Internet February 2002.iso / pc / Software / Browsing / httrack-3.09e2.exe / {app} / src_win / WinHTTrack / OptionTab2.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2001-09-18  |  6.1 KB  |  194 lines

  1. // OptionTab2.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "Shell.h"
  6. #include "OptionTab2.h"
  7.  
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13.  
  14. /////////////////////////////////////////////////////////////////////////////
  15. // COptionTab2 property page
  16.  
  17. IMPLEMENT_DYNCREATE(COptionTab2, CPropertyPage)
  18.  
  19. COptionTab2::COptionTab2() : CPropertyPage(COptionTab2::IDD)
  20. {
  21.   // Patcher titre
  22.   if (LANG_T(-1)) {    // Patcher en franτais
  23.     m_psp.pszTitle=LANG(LANG_IOPT2); // titre
  24.     m_psp.dwFlags|=PSP_USETITLE;
  25.   }
  26.   m_psp.dwFlags|=PSP_HASHELP;
  27.   //
  28.     //{{AFX_DATA_INIT(COptionTab2)
  29.     m_build = -1;
  30.     m_dos = FALSE;
  31.     m_errpage = FALSE;
  32.     m_external = FALSE;
  33.     m_nopurge = FALSE;
  34.     m_hidepwd = FALSE;
  35.     m_hidequery = FALSE;
  36.     //}}AFX_DATA_INIT
  37. }
  38.  
  39. COptionTab2::~COptionTab2()
  40. {
  41. }
  42.  
  43. void COptionTab2::DoDataExchange(CDataExchange* pDX)
  44. {
  45.     CPropertyPage::DoDataExchange(pDX);
  46.     //{{AFX_DATA_MAP(COptionTab2)
  47.     DDX_Control(pDX, IDC_build, m_ctl_build);
  48.     DDX_Control(pDX, IDC_buildopt, m_buildopt);
  49.     DDX_CBIndex(pDX, IDC_build, m_build);
  50.     DDX_Check(pDX, IDC_dos, m_dos);
  51.     DDX_Check(pDX, IDC_errpage, m_errpage);
  52.     DDX_Check(pDX, IDC_external, m_external);
  53.     DDX_Check(pDX, IDC_nopurge, m_nopurge);
  54.     DDX_Check(pDX, IDC_hidepwd, m_hidepwd);
  55.     DDX_Check(pDX, IDC_hidequery, m_hidequery);
  56.     //}}AFX_DATA_MAP
  57. }
  58.  
  59.  
  60. BEGIN_MESSAGE_MAP(COptionTab2, CPropertyPage)
  61.     //{{AFX_MSG_MAP(COptionTab2)
  62.     ON_BN_CLICKED(IDC_buildopt, Onbuildopt)
  63.     ON_CBN_SELCHANGE(IDC_build, OnSelchangebuild)
  64.     //}}AFX_MSG_MAP
  65.   ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify )
  66. END_MESSAGE_MAP()
  67.  
  68. /////////////////////////////////////////////////////////////////////////////
  69. // COptionTab2 message handlers
  70.  
  71. void COptionTab2::Onbuildopt() 
  72. {
  73.   if (Bopt.DoModal()==IDOK) {
  74.     if (AfxMessageBox(LANG(LANG_DIAL6),MB_OKCANCEL+MB_ICONQUESTION)==IDOK) {
  75.       m_ctl_build.SetCurSel(14);
  76.       AfxMessageBox(LANG(LANG_DIAL7),MB_OK);
  77.     }
  78.   }
  79. }
  80.  
  81. BOOL COptionTab2::OnInitDialog() 
  82. {
  83.     CPropertyPage::OnInitDialog();
  84.   EnableToolTips(true);     // TOOL TIPS
  85.     
  86.   // Patcher l'interface pour les Franτais ;-)
  87.   if (LANG_T(-1)) {    // Patcher en franτais
  88.     //SetDlgItemText(,"");
  89.     SetDlgItemText(IDC_STATIC_buildopt,LANG(LANG_I33)); // "Type de structure (maniΦre dont les liens sont sauvΘs)");
  90.     SetDlgItemText(IDC_dos,LANG(LANG_I37)); // "Noms DOS");
  91.     SetDlgItemText(IDC_errpage,LANG(LANG_I38)); // "Pas de page d'erreur");
  92.     SetDlgItemText(IDC_external,LANG(LANG_I56)); // "Pas de page externes");
  93.     SetDlgItemText(IDC_nopurge,LANG(LANG_I57)); // "nopurge");
  94.     SetDlgItemText(IDC_buildopt,LANG_O2);
  95.     SetDlgItemText(IDC_hidepwd,LANG(LANG_I66)); // "Hide passwords");
  96.     SetDlgItemText(IDC_hidequery,LANG_I67);
  97.     SetCombo(this,IDC_build,LISTDEF_3);
  98.   }
  99.  
  100.   // mode modif α la volΘe
  101.   if (modify==1) {
  102.     GetDlgItem(IDC_build)   ->ModifyStyle(0,WS_DISABLED);
  103.     GetDlgItem(IDC_buildopt)->ModifyStyle(0,WS_DISABLED);
  104.     GetDlgItem(IDC_dos)     ->ModifyStyle(0,WS_DISABLED);
  105.     GetDlgItem(IDC_errpage) ->ModifyStyle(0,WS_DISABLED);
  106.     GetDlgItem(IDC_nopurge) ->ModifyStyle(0,WS_DISABLED);
  107.     GetDlgItem(IDC_external)->ModifyStyle(0,WS_DISABLED);
  108.     GetDlgItem(IDC_hidepwd) ->ModifyStyle(0,WS_DISABLED);
  109.     GetDlgItem(IDC_hidequery)->ModifyStyle(0,WS_DISABLED);
  110.   } else {
  111.     GetDlgItem(IDC_build)   ->ModifyStyle(WS_DISABLED,0);
  112.     GetDlgItem(IDC_buildopt)->ModifyStyle(WS_DISABLED,0);
  113.     GetDlgItem(IDC_dos)     ->ModifyStyle(WS_DISABLED,0);
  114.     GetDlgItem(IDC_errpage) ->ModifyStyle(WS_DISABLED,0);
  115.     GetDlgItem(IDC_nopurge) ->ModifyStyle(WS_DISABLED,0);
  116.     GetDlgItem(IDC_external)->ModifyStyle(WS_DISABLED,0);
  117.     GetDlgItem(IDC_hidepwd) ->ModifyStyle(WS_DISABLED,0);
  118.     GetDlgItem(IDC_hidequery)->ModifyStyle(WS_DISABLED,0);
  119.   }
  120.     
  121.     return TRUE;  // return TRUE unless you set the focus to a control
  122.                   // EXCEPTION: OCX Property Pages should return FALSE
  123. }
  124.  
  125.  
  126.  
  127. // ------------------------------------------------------------
  128. // TOOL TIPS
  129. //
  130. // ajouter dans le .cpp:
  131. // remplacer les deux Wid1:: par le nom de la classe::
  132. // dans la message map, ajouter
  133. // ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify )
  134. // dans initdialog ajouter
  135. // EnableToolTips(true);     // TOOL TIPS
  136. //
  137. // ajouter dans le .h:
  138. // char* GetTip(int id);
  139. // et en generated message map
  140. // afx_msg BOOL OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );
  141. BOOL COptionTab2::OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
  142. {
  143.   TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
  144.   UINT nID =pNMHDR->idFrom;
  145.   if (pTTT->uFlags & TTF_IDISHWND)
  146.   {
  147.     // idFrom is actually the HWND of the tool
  148.     nID = ::GetDlgCtrlID((HWND)nID);
  149.     if(nID)
  150.     {
  151.       char* st=GetTip(nID);
  152.       if (st != "") {
  153.         pTTT->lpszText = st;
  154.         pTTT->hinst = AfxGetResourceHandle();
  155.         return(TRUE);
  156.       }
  157.     }
  158.   }
  159.   return(FALSE);
  160. }
  161. char* COptionTab2::GetTip(int ID)
  162. {
  163.   switch(ID) {
  164.     case IDC_build:   return LANG(LANG_I3); break; // "Choose local site structure","Choisir la structure de fichiers local"); break;
  165.     case IDC_buildopt:return LANG(LANG_I4); break; // "Set user-defined structure on disk","DΘfinir la structure du site sur disque"); break;
  166.     case IDC_dos:     return LANG(LANG_I8); break; // "Generate ONLY 8-3 filenames","GΘnΘrer uniquement des fichiers courts 8-3"); break;
  167.     case IDC_errpage: return LANG(LANG_I9); break; // "Do not write html error pages","Ne pas gΘnΘrer les fichiers d'erreur html"); break;
  168.     case IDC_external: return LANG(LANG_I29); break; // extern
  169.     case IDC_nopurge: return LANG(LANG_I1a); break; // erase old files
  170.     case IDC_hidepwd: return LANG(LANG_I30); break;
  171.     case IDC_hidequery: return LANG_I30b; break;
  172.   }
  173.   return "";
  174. }
  175. // TOOL TIPS
  176. // ------------------------------------------------------------
  177.  
  178.  
  179. void COptionTab2::OnSelchangebuild() 
  180. {
  181.   static int old=0;
  182.   int r;
  183.   r = m_ctl_build.GetCurSel();
  184.   if (r!=CB_ERR) {
  185.     if (r==m_ctl_build.GetCount()-1) {
  186.       if (AfxMessageBox(LANG(LANG_DIAL8),MB_YESNO)==IDNO) {
  187.         m_ctl_build.SetCurSel(old);
  188.       }
  189.     } else
  190.       old=r;
  191.   }
  192. }
  193.  
  194.