home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / fed0217s.zip / include / boxcoll.h < prev    next >
C/C++ Source or Header  |  2001-11-09  |  5KB  |  228 lines

  1. /*
  2. ** Module   :BOXCOLL.H
  3. ** Abstract :Edit box collection
  4. **
  5. ** Copyright (C) Sergey I. Yevtushenko
  6. **
  7. ** Log: Mon  16/06/1997       Created
  8. **      Thu  26/03/1998       Interface updated, so all
  9. **                            improvements will be simpler to implement
  10. */
  11.  
  12. #include <editbox.h>
  13. #include <keycoll.h>
  14. #include <pipe.h>
  15.  
  16. #ifndef  __BOXCOLL_H
  17. #define  __BOXCOLL_H
  18.  
  19.  
  20. //-------------------------------------------------------
  21. // class EditBoxCollection
  22.  
  23. struct macro_rec
  24. {
  25.     char *macro;
  26.     char chr;
  27.     struct macro_rec * next;
  28. };
  29.  
  30. class Initor
  31. {
  32.     public:
  33.         Initor();
  34. };
  35.  
  36. class ProfileDictionary: public Dictionary
  37. {
  38.     public:
  39.         ProfileDictionary();
  40. };
  41.  
  42. class EditBoxCollection:public Collection
  43. {
  44.         EditBox* GetBox(int box)    { return (EditBox*)Get(box); }
  45.         int cur_box;
  46.         int shutdown;
  47.         int recording;
  48.         unsigned long hMtx;
  49.         unsigned long tTID;
  50.         unsigned long mTID;
  51.         unsigned long pTID;
  52.  
  53.         macro_rec * head;
  54.         macro_rec * tail;
  55.  
  56.         void track_recording(char *prog, char chr);
  57.         void clear_recording();
  58.         void start_recording();
  59.         char* track_recording_done();
  60.  
  61.         Initor init;
  62.         KeyDefCollection keys;
  63.         ProfileDictionary prof_keys;
  64.  
  65.     public:
  66.  
  67.         NamedPipe npFED;
  68.  
  69.         EditBoxCollection();
  70.         virtual ~EditBoxCollection()    { Done();}
  71.  
  72.         virtual void Free(Ptr p);
  73.  
  74.         void lock();
  75.         void unlock();
  76.  
  77.         EditBox* current();
  78.         EditBox* next();
  79.         EditBox* prev();
  80.         EditBox* locate(int);
  81.         EditBox* select(int);
  82.         void select(EditBox*);
  83.  
  84.         EditBox* open();
  85.         int opened(char *fname);
  86.         void close();
  87.  
  88.         int check_save();
  89.  
  90.         void draw();
  91.         void search_proc();
  92.         void load_profile(int);
  93.         void load_profile(char *);
  94.         void load_profile_file(char*);
  95.         void play_macro(char *macro);
  96.         void set_xy(char *ptr);
  97.         void track_beg();
  98.         void track_end();
  99.         void track_cancel();
  100.  
  101.         void usual_key(KeyInfo&);
  102.         void Dispatcher(KeyInfo&, int iMode = 0);
  103.         void CompileKey(char* str, int j);
  104.  
  105.         int  isDown() { return shutdown;}
  106.  
  107.         void Done();
  108.         void SendKey(char *key);
  109.         void SetMouse(int row, int col);
  110.  
  111. //------- exported public methods
  112. // !WARNING!
  113. // Methods listed below assumes at least one edit box available
  114. // for processing, i.e. collection is not empty.
  115.  
  116.         //---- General
  117.  
  118.         void doAbort();
  119.         void doClose();
  120.         void doCopyright();
  121.         void doCopyright2();
  122.         void doExit();
  123.         void doFileList();
  124.         void doHelpScreen();
  125.         void doJumpCol();
  126.         void doJumpLine();
  127.         void doLoad();
  128.         void doOpenFile(char *);
  129.         void doNew();
  130.         void doNextFile();
  131.         void doPrevFile();
  132.         void doSave();
  133.         void doSaveAll();
  134.         void doSaveAs();
  135.         void doSearch();
  136.         void doSearchAgain();
  137.  
  138.         //---- Cursor movement
  139.         void doDown();
  140.         void doEnd();
  141.         void doFileBegin();
  142.         void doFileEnd();
  143.         void doHome();
  144.         void doLeft();
  145.         void doMatchBracket();
  146.         void doPgDn();
  147.         void doPgUp();
  148.         void doRight();
  149.         void doUp();
  150.         void doWordLeft();
  151.         void doWordRight();
  152.  
  153.         //---- Block marking
  154.         void doDownMark();
  155.         void doEndMark();
  156.         void doFileBeginMark();
  157.         void doFileEndMark();
  158.         void doHomeMark();
  159.         void doLeftMark();
  160.         void doMatchBracketMark();
  161.         void doPgDnMark();
  162.         void doPgUpMark();
  163.         void doRightMark();
  164.         void doUpMark();
  165.         void doWordLeftMark();
  166.         void doWordRightMark();
  167.  
  168.         //---- Editing commands
  169.         void doBksp();
  170.         void doDel();
  171.         void doDelLine();
  172.         void doDelToEOL();
  173.         void doDelWordLeft();
  174.         void doDelWordRight();
  175.         void doDupLine();
  176.         void doIndent();
  177.         void doLower();
  178.         void doUnindent();
  179.         void doUpper();
  180.         void doSort();
  181.  
  182.         void doCopy();
  183.         void doCut();
  184.         void doPaste();
  185.  
  186.         void doUndo();
  187.  
  188.         //---- State commands
  189.         void doFlipAutoindent();
  190.         void doFlipBlockMode();
  191.         void doFlipHiliting();
  192.         void doHilitingChoice();
  193.         void doFlipType();
  194.         void doIns();
  195.         void doSetXlat();
  196.  
  197.         //---- Special functions
  198.         void doInsDate();
  199.         void doInsFileName();
  200.         void doInsFileNameShort();
  201.  
  202.         //---- Macro Recorder commands
  203.         void doMacroRecStart();
  204.         void doMacroRecEnd();
  205.  
  206.         //---- Rexx macro processor
  207.         void doRexx(char* prog);
  208.  
  209.         //---- Bookmarks processing
  210.         void doSetMark(int i);
  211.         void doGotoMark(int i);
  212.  
  213.         //---- Jump lists processing
  214.         void doJumpList(int i);
  215.  
  216.         //---- 'In place' profile loading
  217.         void doLoadProfile();
  218.  
  219.         //---- Word wrap
  220.  
  221.         void doFlipWordWrap();
  222.         void doFlipWWMerge();
  223.         void doFlipWWLong();
  224. };
  225.  
  226. #endif //__BOXCOLL_H
  227.  
  228.