home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / edispm11.zip / EDisPM / SRC / Client / EDCLIENT.HPP < prev    next >
Text File  |  1996-05-14  |  4KB  |  142 lines

  1. /* EDClient.hpp: EDClient:      EDisPM.EXE V 1.1 */
  2. /* Editorclient - Client-(Edit-und User-) fenster*/
  3. /*                                               */
  4. /* (C) 1995 M.Schwarz, FoPra TU-Muenchen SS1995  */
  5. /* (C) 1996 M.Schwarz, SOMObjects-Programmierung */
  6. /*                     OS/2 Inside 7/96          */
  7. /*                                               */
  8. /* latest changes: 11.5.1996                     */
  9. /*-----------------------------------------------*/
  10.  
  11. #ifndef EDCLIENT_HPP
  12. #define EDCLIENT_HPP
  13.  
  14.  
  15. /* ICUIL-Headers */
  16. #include <istring.hpp>
  17. #include <iframe.hpp>
  18. #include <imenubar.hpp>
  19. #include <imsgbox.hpp>
  20. #include <isplitcv.hpp>
  21. #include <imle.hpp>
  22. #include <icnrctl.hpp>
  23. #include <icnrobj.hpp>
  24. #include <istattxt.hpp>
  25. #include <ithread.hpp>
  26. #include <icmdhdr.hpp>
  27. #include <ikeyhdr.hpp>
  28. #include <iedithdr.hpp>
  29. #include <imchdr.hpp>
  30.  
  31. /* CollectionClass-Headers */
  32. #include <iseq.h>
  33.  
  34. /* Application Headers */
  35. #include "EDCStub.HPP"
  36. #include "EDCLInf.HPP"
  37.  
  38. /* UserIcon-Klasse */
  39. class EDUserObject : public IContainerObject
  40. {
  41.   public:
  42.     EDUserObject( IString       name,
  43.                 unsigned long iconId,
  44.                 IString       compuServeId,
  45.                 unsigned long age)
  46.      : IContainerObject(name, iconId),
  47.        strCompuServeId(compuServeId),
  48.        ulAge(age)
  49.      {}
  50.  
  51.      static unsigned long compuServeOffset ( )
  52.      { return offsetof(EDUserObject, strCompuServeId); }
  53.  
  54.      static unsigned long ageOffset        ( )
  55.      {   return offsetof(EDUserObject, ulAge); }
  56.  
  57.    private:
  58.      IString  strCompuServeId;
  59.      unsigned long ulAge;
  60. };
  61.  
  62.  
  63.  
  64. /* Update-Thread-Klasse */
  65. class Update {
  66.    public:
  67.       Update (IFrameWindow *);
  68.       ~Update();
  69.       virtual void update();
  70.  
  71.    private:
  72.       IFrameWindow *mainWin;
  73.       IThread t;
  74.  
  75. };
  76.  
  77.  
  78. class EDClient : public EDClientStub{
  79.    public:
  80.       EDClient (IFrameWindow *, IString);
  81.       ~EDClient();
  82.  
  83.       short    openEditWindow(IMenuBar *);
  84.       short    closeEditWindow(IStaticText *, IMenuBar *);
  85.       short    saveEditWinText();
  86.       unsigned long getXCursorPos();
  87.       unsigned long getYCursorPos();
  88.       IString  getCursorLine(unsigned long);
  89.       void     setLineStatusInfo();
  90.       short    updateTextWin();
  91.       short    setWindowView(long);
  92.       short    isEditWindowActive();
  93.  
  94.       long     nLines;
  95.       long     lCursorLine;
  96.       long     lCursorCol;
  97.  
  98.       ISequence<LineInfo> EDTextInf;
  99.       IMultiLineEdit    *EDTextWin;
  100.  
  101.    private:
  102.       IFrameWindow* mainWin;
  103.       Update *upThread;
  104.  
  105.       class EDKeyboardHandler : public IKeyboardHandler {
  106.          public:
  107.             EDKeyboardHandler (EDClient *);
  108.          protected:
  109.             virtual Boolean virtualKeyPress ( IKeyboardEvent& event );
  110.             virtual Boolean characterKeyPress (IKeyboardEvent& event);
  111.          private:
  112.             EDClient *clClient;
  113.       }; /* class EDClient::EDKeyboardHandler */
  114.       class EDEditHandler : public IEditHandler {
  115.          public:
  116.             EDEditHandler (EDClient *);
  117.          protected:
  118.             virtual Boolean edit(IControlEvent& event);
  119.          private:
  120.             EDClient *clClient;
  121.       }; /* class EDClient::EDEditHandler */
  122.       class EDMouseClickHandler : public IMouseClickHandler {
  123.          public:
  124.             EDMouseClickHandler (EDClient *);
  125.          protected:
  126.             virtual Boolean mouseClicked ( IMouseClickEvent& event );
  127.          private:
  128.             EDClient *clClient;
  129.       }; /* class EDClient::EDMouseClickHandler */
  130.  
  131.  
  132.       ISplitCanvas        *EDMainSplitWin;
  133. //      IMultiLineEdit    *EDTextWin;
  134.       EDKeyboardHandler   *EDTextWinKHandler;
  135.       EDEditHandler       *EDTextWinEHandler;
  136.       EDMouseClickHandler *EDTextWinMHandler;
  137.       IContainerControl   *EDUserWin;
  138.  
  139. };
  140.  
  141. #endif
  142.