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

  1. //----------------------------------------------------------------------------
  2. //    notebook.h - defines TNotebook class 
  3. //----------------------------------------------------------------------------
  4. //    copyright (c) 1993 Borland International
  5. //----------------------------------------------------------------------------
  6. #ifndef NOTEBOOKINC
  7.  
  8. #define NOTEBOOKINC
  9. #include "hscroll.h"
  10. #include "vscroll.h"
  11.  
  12. #define MAXTABNAMELEN   30
  13. #define MAXTABSSHOWN    99
  14.  
  15. #define NB_TABCHANGED    20099
  16.  
  17. #define ID_TABSB    3001
  18. #define ID_WINHSB    0
  19. #define ID_WINVSB    0
  20.  
  21. #define NBC_PAINTALL    0
  22. #define NBC_PAINTTABS   1
  23.  
  24. #define TABSAFETY    8        // pixels after last tab
  25.  
  26. // values for tabloc
  27. #define LOC_TOP        0
  28. #define LOC_RIGHT    1
  29. #define LOC_BOTTOM    2
  30. #define LOC_LEFT    3
  31. //----------------------------------------------------------------------------
  32. class TNotebook : public virtual TWindow
  33. {
  34.   public:
  35.     //--- redefined functions ---
  36.     TNotebook(int TabLoc = 0);
  37.     ~TNotebook();
  38.     void SetTabCnt(int tabcnt, int firsttab = 0, int activetab = 0);
  39.  
  40.     int GetScrollPos(int bar);
  41.     void GetScrollRange(int bar, int &low, int &high);
  42.     int SetScrollPos(int bar, int pos, BOOL redraw = TRUE);
  43.     void SetScrollRange(int  bar, int  minPos, int  maxPos, BOOL redraw = TRUE);
  44.  
  45.   protected:
  46.     TRect nbcrect;        // current rect for notebook control area
  47.     TRect vsbrect;        // rect for vertical scroll bar
  48.     TRect hsbrect;        // rect for horizontal scroll bar
  49.     TRect tsbrect;        // rect for tabs scroll bar
  50.     TRect tabsrect;        // rect for set of tabs
  51.     TRect clientrect;        // size of client area after our controls
  52.     TRect clientprev;        // to detect window size changes
  53.     TSize Frame;        // actual window frame sizes
  54.     POINT tabpoints[MAXTABSSHOWN] [5];
  55.     int tabcnt;            // # of tabs to move thru
  56.     int firsttab;        // # of first tab displayed (0-rel)
  57.     int activetab;        // # of active tab (0-rel)
  58.     int nbcheight;        // height of notebook control area
  59.     int textextra;
  60.     int fillmode;        // polygon fill mode used
  61.     int rgncnt;            // number of tabs showing & regions allocated
  62.     int toffs[MAXTABSSHOWN];    // toffset (x or y) of each tab drawing
  63.     int defer_ncpaint;        // if nonzero, don't paint nonclient area
  64.     int tabloc;            // position of tabs on client rectangle
  65.     BOOL tabhorz;        // TRUE if tabloc is LOC_TOP or LOC_BOTTOM
  66.     BOOL wanthscroll;        // TRUE if WS_HSCROLL specified in style bits
  67.     BOOL wantvscroll;        // TRUE if WS_VSCROLL specified in style bits
  68.     BOOL hscrollon;        // TRUE if horz scrollbar being shown now
  69.     BOOL vscrollon;        // TRUE if vert scrollbar being shown now
  70.     BOOL erasetabs;        // TRUE if tabs should be erased as drawn
  71.     TPen *framepen;        // for drawing gray stuff over and over
  72.     TPen *shadowpen;        // for drawing gray stuff over and over
  73.     TFont *tabfont;        // font for tabs
  74.     TBrush *bgbrush;        // white/ltgray dither pattern brush
  75.     TBrush *framebrush;
  76.     TBrush *hilitebrush;
  77.     TBrush *shadowbrush;
  78.     TBrush *facebrush;
  79.     TBrush *trackbrush;
  80.     TBrush *tabbrush;        // bg color of current tab
  81.     TBrush *default_tabbrush;    // bg color of most tabs
  82.     THScroll *tabhscroll;    // horizontal scrollbar for tabs
  83.     TVScroll *tabvscroll;    // vertical scrollbar for tabs 
  84.     THScroll *winhscroll;    // horizontal scrollbar for window        
  85.     TVScroll *winvscroll;    // vertical scrollbar for window        
  86.     //------------------------------------------
  87.     BOOL EvNCCreate(CREATESTRUCT far& createStruct);
  88.     void EvSize(UINT sizeType, TSize& newsize);
  89.     void EvGetMinMaxInfo(MINMAXINFO far& minmaxinfo);
  90.     UINT EvNCCalcSize(BOOL calcValidRects, NCCALCSIZE_PARAMS far& calcSize);
  91.     UINT EvNCHitTest(TPoint& screenPt);
  92.     void EvNCPaint();
  93.     void EvNCLButtonDown(UINT hitTest, TPoint& screenPt);
  94.     void EvNCLButtonDblClk(UINT hitTest, TPoint& screenPt);
  95.     void EvMouseMove(UINT hitTest, TPoint& clientpt);
  96.     void EvLButtonUp(UINT hitTest, TPoint& clientpt);
  97.     void EvSysColorChange();
  98.     //------------------------------------------
  99.     void virtual GetTabName(int tabnum, char *tabname);
  100.     void virtual ActivateTab(int tabnum);
  101.     //------------------------------------------
  102.     void BuildPaintObjects();
  103.     void DeletePaintObjects();
  104.     void ComputeSizes();
  105.     void CalcTabRects();
  106.     void ForceResize(BOOL repaint);
  107.     void CreateScrollBars();
  108.     BOOL MyLButtonDown(UINT hitTest, TPoint& screenPt);
  109.     LRESULT NWHscroll(WPARAM wparam, LPARAM lparam);
  110.     void ScrollTabs(int delta);
  111.     void PaintNBC(int paintcontrol);
  112.     void DrawShadeFrame(TDC &mydc, TRect &myrect);
  113.     void DrawDownFrame(TDC &mydc, TRect &myrect);
  114.     void DrawTabs(TDC &mydc);
  115.     int DrawHorzTab(TDC &mydc, int tabnum, int rgnnum, int xoff);
  116.     int DrawVertTab(TDC &mydc, int tabnum, int rgnnum, int xoff);
  117.     void EraseLastHorz(TDC &mydc, int toff);
  118.     void EraseLastVert(TDC &mydc, int toff);
  119.     void DrawBackground(TDC &mydc, TRect &myrect, int paintcontrol);
  120.     void DrawTabLines(TDC &mydc, TRect &myrect, BOOL shadowline);
  121.     void BuildBgBrush();
  122.     //------------------------------------------
  123.     DECLARE_RESPONSE_TABLE(TNotebook);
  124. };
  125. //----------------------------------------------------------------------------
  126. #endif
  127.