home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c083 / 19.ddi / DIAGXPRT.PAK / DIAGXPRT.H < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-02  |  4.0 KB  |  139 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows - (C) Copyright 1991, 1993 by Borland International
  3. //----------------------------------------------------------------------------
  4. #ifndef __DIAGXPRT_H
  5. #define __DIAGXPRT_H
  6.  
  7. #include <owl\owlpch.h>
  8. #include <owl\applicat.h>
  9. #include <owl\decframe.h>
  10. #include <owl\controlb.h>
  11. #include <owl\editfile.h>
  12. #include <owl\buttonga.h>
  13. #include <owl\dialog.h>
  14. #include <owl\tinycapt.h>
  15. #include <owl\menu.h>
  16. #include <owl\statusba.h>
  17.  
  18. #include <toolhelp.h>
  19. #include <iostream.h>
  20. #include <cstring.h>
  21. #include <stdio.h>
  22.  
  23. #define DIAG_INI  "owl.ini"
  24. #define DIAG_CLS  "owldiag"
  25. #define DIAG_RECT "rect"
  26. #define DIAG_MODE "mode"
  27. #define DIAG_SIZE "size"
  28.  
  29. #define CM_LOGPARAMERROR  WM_USER+1000
  30. #define CM_LOGERROR       CM_LOGPARAMERROR+1
  31. #define CM_OUTSTR         CM_LOGERROR+1
  32. #define CM_DEFAULT        CM_OUTSTR+1
  33.  
  34. class TDispData {
  35.   public:
  36.     char   ModuleName[80];  // Sizes?
  37.     char   ProcName[256];   // Also gets used for OutputDebugString messages
  38.     UINT   ErrorCode;
  39.     DWORD  Data;
  40.     void far* far* Param;
  41. };
  42.  
  43. class TDiagFrame : public TDecoratedFrame, public TTinyCaption {
  44.   public:
  45.     TDiagFrame(const char* t, TWindow* c);
  46.  
  47.   protected:
  48.     LRESULT  EvCommand(UINT id, HWND hWndCtl, UINT notifyCode);
  49.     void     EvSysCommand(UINT cmdType, TPoint& p);
  50.     void     EvSize(UINT type, TSize& size);
  51.     void     SetupWindow();
  52.     void     CleanupWindow();
  53.     void     CmToggleSize();
  54.  
  55.   private:
  56.     TRect    rect;
  57.  
  58.   DECLARE_RESPONSE_TABLE(TDiagFrame);
  59. };
  60.  
  61. class TToolHelp {
  62.   public:
  63.     struct   ERRMAP { UINT err; char* szErr; };
  64.     static   ERRMAP errmap[];
  65.     void     FormatLogParamError(char *p, int size, TDispData *d);
  66.     void     FormatLogError(char *p, int size, TDispData *d);
  67.  
  68.     char*    GetTaskName();
  69.     char*    GetProcName(FARPROC p);
  70.  
  71.   private:
  72.     static   char buffer[1024];
  73.     char     TaskName[10];
  74.     char     ProcName[80];
  75. };
  76.  
  77. class TDiagClient : public TToolHelp, public TEditFile {
  78.   public:
  79.     enum { maxLines = 512 };
  80.   
  81.     enum     Mode { normalMode = 1, ripMode = 2 } mode;
  82.     enum     Size { bigSize = 1, smallSize = 2 } size;
  83.   
  84.     Size     GetSize() {return size;}
  85.     void     SetSize(Size s);
  86.     Mode     GetMode() {return mode;}
  87.     void     SetMode(Mode m) {mode = m;}
  88.     void     SetupWindow();
  89.  
  90.     void     CleanupWindow();
  91.     static   TDiagClient* pThis;
  92.     TFont*   pFont0;
  93.     TFont*   pFont1;
  94.     FARPROC  pThunk;
  95.  
  96.   protected:
  97.     int     nActive;
  98.   
  99.     void    CmFileNewEnable(TCommandEnabler &c){ c.Enable(1); }
  100.     void    CmFileOpenEnable(TCommandEnabler &c){ c.Enable(1); }
  101.     void    CmFileSaveEnable(TCommandEnabler &c) { TEditFile::CmSaveEnable(c); }
  102.     void    CmFileSaveAsEnable(TCommandEnabler &c) { c.Enable(1); }
  103.     void    CmStartStopEnable(TCommandEnabler &c) { c.Enable(1); }
  104.     void    CmSetupEnable(TCommandEnabler &c) { c.Enable(1); }
  105.     void    CmStartEnable(TCommandEnabler &c) { c.Enable(!nActive); }
  106.     void    CmStopEnable(TCommandEnabler &c) { c.Enable(nActive); }
  107.     void    CmFileNew() { TEditFile::CmFileNew(); }
  108.     void    CmFileOpen() { TEditFile::CmFileOpen(); }
  109.     void    CmFileSave() { TEditFile::CmFileSave(); }
  110.     void    CmFileSaveAs() { TEditFile::CmFileSaveAs(); }
  111.     void    CmSetup();
  112.     void    CmStart();
  113.     void    CmStop();
  114.     void    CmMem();
  115.     void    CmHelp();
  116.     LRESULT CmOutStr(WPARAM wParam, LPARAM lParam);
  117.     LRESULT CmLogError(WPARAM wParam, LPARAM lParam);
  118.     LRESULT CmLogParamError(WPARAM wParam, LPARAM lParam);
  119.     LRESULT CmDefault(WPARAM wParam, LPARAM lParam);
  120.     void    LoadMode();
  121.     void    SaveMode();
  122.   
  123.     // Override of TEditFile::CanClear()
  124.     //
  125.     BOOL    CanClear();
  126.  
  127.   DECLARE_RESPONSE_TABLE(TDiagClient);
  128. };
  129.  
  130. class TOwlDiagApp : public TApplication {
  131.   public:
  132.     void  InitMainWindow();
  133.  
  134.   private:
  135.     static int   speedbar[];
  136. };
  137.  
  138. #endif
  139.