home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / dokpr1.zip / editstr.h < prev    next >
C/C++ Source or Header  |  1995-11-08  |  4KB  |  103 lines

  1. /**************************************************************************
  2.  *                                                                        *
  3.  *                                                                        *
  4.  *          This code is copyright (c) 1994                               *
  5.  *                     Athena Design, Inc.                                *
  6.  *                                                                        *
  7.  *                                                                        *
  8.  *                ALL RIGHTS RESERVED                                     *
  9.  *                                                                        *
  10.  *                                                                        *
  11.  *                                                                        *
  12.  *                                                                        *
  13.  *                                                                        *
  14.  **************************************************************************/
  15.  
  16. /*
  17.     this module is the keyhandler and position-maintainer of the
  18.      currently edited cell...
  19.     3-7-94 dpp
  20. */
  21.  
  22. #ifndef _MH_editString
  23.  
  24. #define _MH_editString
  25.  
  26. #include "clipstr.h"
  27. #include "mesamod.h"
  28.  
  29. class MEditString {
  30.     public:
  31.     MEditString( const char * = 0, int = 0, int = 0, int = 1, MMesaModel *mp=NULL) ;
  32.     virtual ~MEditString();
  33.  
  34.     virtual void setModel( MMesaModel *mp ) { model = mp; };
  35.     virtual int handleKey(int,int);
  36.     virtual void setString(const char *);
  37.     virtual void selectRange(int,int,int);
  38.     virtual char *getString() {return str;};
  39.     virtual int getHasEdited() {return isEditing;};
  40.     virtual void setIsEditing();
  41.     virtual void setIsEditing(int);
  42.     virtual void setEditRange(int,int,int = 0);
  43.     virtual void undo();
  44.     virtual void redo();
  45.     virtual void insertAtStart(const char *);
  46.     virtual void insertRefAtStart(const char *);
  47.     virtual void removeSelection();
  48.     virtual int getStart() const { return begin; };
  49.     virtual int getEnd() const { return end; };
  50.     virtual int getBlinkOn() const { return blinkOn; };
  51.     virtual void setBlinkOn( int i ) { blinkOn = i; };
  52.      
  53.     virtual int isEditingFormula();
  54.     virtual int isCellSelectOK();
  55.     
  56.     virtual void selectArgs( int startPoint, int len);
  57.     static int editGetDoSomething(int,int);
  58.     virtual void copyToClipboard( MClipStream * );
  59.     virtual void pasteInto( MClipStream * );
  60.     virtual int rightOfOperator( const char *, int );
  61.     virtual void toggleAbsolute();
  62.     
  63.     virtual void setCurLayer( int i ) { curLayer = i; };
  64.     virtual int getCurLayer() const { return curLayer; };
  65.     virtual void scrollToVisible( MDraw *, MRect * );
  66.     virtual void setVisible( int i ) { visible = i; };
  67.     virtual int getVisible() const { return visible; };
  68.     virtual int getOffset() const { return offset; };
  69.     virtual void setJustBlink( int i ) { justBlink = i; };
  70.     virtual int getJustBlink() const { return justBlink; };
  71.     virtual void setDownPoint( int i ) { downPoint = i; anchor = i; };
  72.     virtual void setDownFlags( int i ) { downFlags = i; };
  73.     virtual void beginSelect() { setEditRange( anchor, anchor ); }
  74.     virtual void selectTo( int );
  75.     virtual void setCanBeFormula( int i ) { canBeFormula = i; };
  76.     virtual int getCanBeFormula() { return canBeFormula; };
  77.     virtual void setFont( const MFont *fo ) { renderFont.init( fo ); };
  78.     virtual int findChar( int x, float scale );
  79.     virtual int isSelect() { return isSelecting; };
  80.     
  81.     private:
  82.     char *str,*lastString;
  83.     int max;
  84.     int isEditing,justUndid;
  85.     int begin,end;
  86.     int blinkOn;
  87.     int offset;
  88.     int canSelRange;        // set from 1 to 0 when the user types something
  89.                             // which indicates that they are in formula-edit
  90.                             // mode rather than cell-select mode
  91.     MMesaModel *model;
  92.     int curLayer;
  93.     int visible;        // char-pos to ensure visible at draw-time...
  94.     int justBlink;        // set to 1 if just blinking the cursor, 0 otherwise...
  95.     int anchor,isSelecting,downFlags,downPoint,lastPoint;
  96.     int canBeFormula;        // can this do formula (ie cell selection) things
  97.     void tone();
  98.     MFont renderFont;
  99. };
  100.  
  101. // ifndef _MH_editString
  102. #endif
  103.