home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ocl150a.zip / OCL / Samples / Language / Source / language.cpp next >
C/C++ Source or Header  |  1996-08-12  |  2KB  |  130 lines

  1. // language.cpp
  2.  
  3. #define __OCL_RESOLVE_TEMPLATES__
  4.  
  5. #include "..\Source\language.hpp"
  6.  
  7.  
  8. Language::lang  Language::language = Language::english;  
  9.  
  10.  
  11. void main(void)
  12. {
  13.  Language l;
  14.  
  15.  try
  16.   {
  17.    l.selectLang().showDialog();
  18.   }
  19.  
  20.  catch(OPMException ex)
  21.   {
  22.    ex.viewError();
  23.   }
  24.  
  25.  catch(OVioException ex)
  26.   {
  27.    ex.description + "\n";
  28.    ex.description + OMessage(ex.rc);
  29.    OMsgs().error(ex.description);
  30.   }
  31.  
  32.  _exit(0); 
  33. }
  34.  
  35.  
  36. Language::Language()
  37.  : reslib(NULL)
  38.  {}
  39.  
  40.  
  41. Language::~Language()
  42. {
  43.  if (reslib) delete reslib;
  44. }
  45.  
  46.  
  47. Language& Language::selectLang()
  48. {
  49.  SelectDlg().showDlgModal();
  50.  return(*this);
  51. }
  52.  
  53.  
  54. Language& Language::showDialog()
  55. {
  56.  switch(Language::language)
  57.   {
  58.    case Language::english:
  59.      reslib = new ODynamicLib(".\\RESENG.DLL");
  60.      break; 
  61.  
  62.    case Language::german:  
  63.      reslib = new ODynamicLib(".\\RESGER.DLL");
  64.      break;
  65.   }
  66.  
  67.  LanguageDlg(reslib->getLibHandle()).showDlgModal();
  68.  
  69.  return(*this);
  70. }
  71.  
  72.  
  73.  
  74. SelectDlg::SelectDlg()   
  75.   : ODialog(DLG_SELECT),
  76.     box(DLG_SELECT_LB, NULLHANDLE)  
  77.   {}
  78.  
  79.  
  80. BOOL SelectDlg::OCommand(ULONG msg, MPARAM mp1, MPARAM mp2)
  81. {
  82.  switch(msg)
  83.   {
  84.    case WM_INITDLG:
  85.      box.inherit(hwnd);
  86.      box.insertItem("English");
  87.      box.insertItem("Deutsch");
  88.      box.selectItem(Language::english); 
  89.      break;
  90.   
  91.    case WM_COMMAND:
  92.      WinSendMsg(hwnd, WM_CLOSE, NULL, NULL); 
  93.      break;
  94.  
  95.    case WM_CLOSE:
  96.      Language::language = (Language::lang) box.querySelection();
  97.      dismissDlg(TRUE);
  98.      break;
  99.         
  100.    default:
  101.      return(FALSE);
  102.   }
  103.  return(TRUE);
  104.  
  105.  
  106.  
  107.  
  108. LanguageDlg::LanguageDlg(HMODULE mod)
  109.  : ODialog(HWND_DESKTOP,
  110.            HWND_DESKTOP,
  111.            mod,
  112.            DLG_LANG)    
  113.  {}
  114.  
  115.  
  116. BOOL LanguageDlg::OCommand(ULONG msg, MPARAM mp1, MPARAM mp2)
  117. {
  118.  switch(msg)
  119.   {
  120.    case WM_COMMAND:
  121.      dismissDlg(TRUE);
  122.      break;
  123.  
  124.    default:
  125.      return(FALSE);  
  126.   }
  127.  return(TRUE);
  128.