home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / tybc4 / xped2 / xped2app.cpp < prev    next >
C/C++ Source or Header  |  1994-02-12  |  5KB  |  217 lines

  1. /*  Project xped2
  2.     
  3.     Copyright ⌐ 1993. All Rights Reserved.
  4.  
  5.     SUBSYSTEM:    xped2.exe Application
  6.     FILE:         xped2app.cpp
  7.     AUTHOR:       
  8.  
  9.  
  10.     OVERVIEW
  11.     ========
  12.     Source file for implementation of XpEd2App (TApplication).      
  13. */
  14.  
  15.  
  16. #include <owl\owlpch.h>
  17. #pragma hdrstop
  18.  
  19.  
  20. #include "xped2app.h"
  21. #include "xped2abd.h"                        // Definition of about dialog.       
  22.  
  23.  
  24. //{{XpEd2App Implementation}}
  25.  
  26.  
  27. //
  28. // Build a response table for all messages/commands handled
  29. // by the application.
  30. //
  31. DEFINE_RESPONSE_TABLE1(XpEd2App, TApplication)
  32. //{{XpEd2AppRSP_TBL_BEGIN}}
  33.     EV_COMMAND(CM_FILENEW, CmFileNew),
  34.     EV_COMMAND(CM_FILEOPEN, CmFileOpen),
  35.     EV_COMMAND(CM_FILECLOSE, CmFileClose),
  36.     EV_COMMAND(CM_HELPABOUT, CmHelpAbout),
  37. //{{XpEd2AppRSP_TBL_END}}
  38. END_RESPONSE_TABLE;
  39.  
  40.  
  41. //
  42. // FrameWindow must be derived to override Paint for Preview and Print.
  43. //
  44. class SDIDecFrame : public TDecoratedFrame {
  45. public:
  46.     SDIDecFrame (TWindow *parent, const char far *title, TWindow *clientWnd, BOOL trackMenuSelection = FALSE, TModule *module = 0) :
  47.             TDecoratedFrame(parent, title, clientWnd, trackMenuSelection, module)
  48.       {  }
  49.     ~SDIDecFrame ()
  50.       {  }
  51. };
  52.  
  53.  
  54. //////////////////////////////////////////////////////////
  55. // XpEd2App
  56. // =====
  57. //
  58. XpEd2App::XpEd2App () : TApplication("xped2")
  59. {
  60.  
  61.     // Common file file flags and filters for Open/Save As dialogs.  Filename and directory are
  62.     // computed in the member functions CmFileOpen, and CmFileSaveAs.
  63.     FileData.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
  64.     FileData.SetFilter("All Files (*.*)|*.*|");
  65.  
  66.     // INSERT>> Your constructor code here.
  67.  
  68. }
  69.  
  70.  
  71. XpEd2App::~XpEd2App ()
  72. {
  73.     // INSERT>> Your destructor code here.
  74.  
  75. }
  76.  
  77.  
  78. void XpEd2App::SetupSpeedBar (TDecoratedFrame *frame)
  79.     //
  80.     // Create default toolbar New and associate toolbar buttons with commands.
  81.     //   
  82.     TControlBar* cb = new TControlBar(frame);
  83.     cb->Insert(*new TButtonGadget(CM_FILENEW, CM_FILENEW));
  84.     cb->Insert(*new TButtonGadget(CM_FILEOPEN, CM_FILEOPEN));
  85.     cb->Insert(*new TButtonGadget(CM_FILESAVE, CM_FILESAVE));
  86.     cb->Insert(*new TSeparatorGadget(6));
  87.     cb->Insert(*new TButtonGadget(CM_EDITCUT, CM_EDITCUT));
  88.     cb->Insert(*new TButtonGadget(CM_EDITCOPY, CM_EDITCOPY));
  89.     cb->Insert(*new TButtonGadget(CM_EDITPASTE, CM_EDITPASTE));
  90.     cb->Insert(*new TSeparatorGadget(6));
  91.     cb->Insert(*new TButtonGadget(CM_EDITUNDO, CM_EDITUNDO));
  92.     cb->Insert(*new TSeparatorGadget(6));
  93.     cb->Insert(*new TButtonGadget(CM_EDITFIND, CM_EDITFIND));
  94.     cb->Insert(*new TButtonGadget(CM_EDITFINDNEXT, CM_EDITFINDNEXT));
  95.  
  96.     // Add fly-over help hints.
  97.     cb->SetHintMode(TGadgetWindow::EnterHints);
  98.  
  99.     frame->Insert(*cb, TDecoratedFrame::Top);
  100. }
  101.  
  102.  
  103. //////////////////////////////////////////////////////////
  104. // XpEd2App
  105. // =====
  106. // Application intialization.
  107. //
  108. void XpEd2App::InitMainWindow ()
  109. {
  110.     Client = new TEditFile(0, 0, 0);
  111.     SDIDecFrame *frame = new SDIDecFrame(0, GetName(), Client, TRUE);
  112.  
  113.     nCmdShow = nCmdShow != SW_SHOWMINIMIZED ? SW_SHOWMAXIMIZED : nCmdShow;
  114.  
  115.     //
  116.     // Assign ICON w/ this application.
  117.     //
  118.     frame->SetIcon(this, IDI_SDIAPPLICATION);
  119.  
  120.     //
  121.     // Menu associated with window and accelerator table associated with table.
  122.     //
  123.     frame->AssignMenu(SDI_MENU);
  124.     
  125.     //
  126.     // Associate with the accelerator table.
  127.     //
  128.     frame->Attr.AccelTable = SDI_MENU;
  129.  
  130.     SetupSpeedBar(frame);
  131.  
  132.     TStatusBar *sb = new TStatusBar(frame, TGadget::Recessed,
  133.                                     TStatusBar::CapsLock        |
  134.                                     TStatusBar::NumLock         |
  135.                                     TStatusBar::ScrollLock      |
  136.                                     TStatusBar::Overtype);
  137.     frame->Insert(*sb, TDecoratedFrame::Bottom);
  138.   
  139.     MainWindow = frame;
  140.  
  141.     //
  142.     // Borland Windows custom controls.
  143.     //
  144.     EnableBWCC();
  145. }
  146.  
  147.  
  148. //////////////////////////////////////////////////////////
  149. // XpEd2App
  150. // ===========
  151. // Menu File New command
  152. void XpEd2App::CmFileNew ()
  153. {
  154.     Client->NewFile();
  155. }
  156.  
  157.  
  158. //////////////////////////////////////////////////////////
  159. // XpEd2App
  160. // ===========
  161. // Menu File Open command
  162. void XpEd2App::CmFileOpen ()
  163. {
  164.     //
  165.     // Display standard Open dialog box to select a file name.
  166.     //
  167.     *FileData.FileName = 0;
  168.     if (Client->CanClose())
  169.         if (TFileOpenDialog(MainWindow, FileData).Execute() == IDOK)
  170.             OpenFile();
  171. }
  172.  
  173.  
  174. void XpEd2App::OpenFile (const char *fileName)
  175. {
  176.     if (fileName)
  177.         lstrcpy(FileData.FileName, fileName);
  178.  
  179.     Client->ReplaceWith(FileData.FileName);
  180. }
  181.  
  182.  
  183. //////////////////////////////////////////////////////////
  184. // XpEd2App
  185. // =====
  186. // Menu File Close command
  187. void XpEd2App::CmFileClose ()
  188. {
  189.      if (Client->CanClose())
  190.              Client->DeleteSubText(0, UINT(-1));
  191. }
  192.  
  193.  
  194. //////////////////////////////////////////////////////////
  195. // XpEd2App
  196. // ===========
  197. // Menu Help About xped2.exe command
  198. void XpEd2App::CmHelpAbout ()
  199. {
  200.     //
  201.     // Show the modal dialog.
  202.     //
  203.     XpEd2AboutDlg(MainWindow).Execute();
  204. }
  205.  
  206.  
  207. int OwlMain (int , char* [])
  208. {
  209.     XpEd2App     App;
  210.     int             result;
  211.  
  212.     result = App.Run();
  213.  
  214.     return result;
  215. }
  216.