|
|
/*
* _DISPML.H * * Purpose: * CDisplaySL class. Single-line display. * * Authors: * Eric Vasilik */
#ifndef _DISPSL_H
#define _DISPSL_H
#include "_disp.h"
// Forward declaration
class CTxtSelection;
class CDisplaySL : public CDisplay, private CLine { public:
CDisplaySL ( CTxtEdit* ped ); protected:
// The following are pure functions from the base
// Helpers
virtual BOOL Init(); void InitVars(); // Line breaking
BOOL RecalcLine();
// Rendering
virtual VOID Render(const RECTUV &rcView, const RECTUV &rcRender); // Scrolling and scroller bars
virtual BOOL UpdateScrollBar(INT nBar, BOOL fUpdateRange = FALSE); virtual LONG GetScrollRange(INT nBar) const; // Getting properties
virtual void InitLinePtr ( CLinePtr & plp ); virtual BOOL IsMain() const; //Get width of widest line
virtual LONG GetDupLineMax() const; // Width, height and line count (of all text)
virtual LONG GetHeight() const; virtual LONG GetResizeHeight() const; virtual LONG LineCount() const;
// Visible view properties
virtual LONG GetCliVisible( LONG *pcpMostVisible = NULL, BOOL fLastCharOfLastVisible = FALSE) const;
virtual LONG GetFirstVisibleLine() const;
// Line info
virtual LONG GetLineText(LONG ili, TCHAR *pchBuff, LONG cchMost); virtual LONG CpFromLine(LONG ili, LONG *pdvpLine = NULL); virtual LONG LineFromCp(LONG cp, BOOL fAtEnd); // Point <-> cp conversion
virtual LONG CpFromPoint( POINTUV pt, const RECTUV *prcClient, CRchTxtPtr * const ptp, CLinePtr * const prp, BOOL fAllowEOL, HITTEST *pHit = NULL, CDispDim *pdispdim = 0, LONG *pcpActual = NULL, CLine *pliParent = NULL);
virtual LONG PointFromTp ( const CRchTxtPtr &tp, const RECTUV *prcClient, BOOL fAtEnd, POINTUV &pt, CLinePtr * const prp, UINT taMode, CDispDim *pdispdim = 0);
// Line break recalc
virtual BOOL RecalcView(BOOL fUpdateScrollBars, RECTUV* prc = NULL); virtual BOOL WaitForRecalcIli(LONG ili);
// Complete updating (recalc + rendering)
virtual BOOL UpdateView(CRchTxtPtr &tpFirst, LONG cchOld, LONG cchNew);
// Scrolling
virtual BOOL ScrollView(LONG upScroll, LONG vpScroll, BOOL fTracking, BOOL fFractionalScroll); // Selection
virtual BOOL InvertRange(LONG cp, LONG cch, SELDISPLAYACTION selAction);
// Natural size calculation
virtual HRESULT GetNaturalSize( HDC hdcDraw, HDC hicTarget, DWORD dwMode, LONG *pwidth, LONG *pheight);
virtual BOOL GetWordWrap() const;
virtual CDisplay *Clone() const;
virtual LONG GetMaxUScroll() const; };
#endif
|