|
|
/**********************************************************************/ /** Microsoft Windows/NT **/ /** Copyright(c) Microsoft Corp., 1993 **/ /**********************************************************************/
/*
ellipsis.hxx Definition for fancy enhanced ellipsis-science edit control
FILE HISTORY: Congpa You (congpay) 01-April-1993 created. */
#ifndef _BLT_HXX_
#error "Don't include this file directly; instead, include it through blt.hxx"
#endif // _BLT_HXX_
#ifndef _ELLIPSIS_HXX_
#define _ELLIPSIS_HXX_
#include "bltctrl.hxx"
#include "bltedit.hxx"
#include "string.hxx"
enum ELLIPSIS_STYLE { ELLIPSIS_NONE, // no ellipsis text
ELLIPSIS_LEFT, // "dotdot" on the left
ELLIPSIS_RIGHT, // "dotdot" on the right - default
ELLIPSIS_CENTER, // "dotdot" in the middle
ELLIPSIS_PATH // "dotdot" for the directory path
};
/*********************************************************************
NAME: BASE_ELLIPSIS
SYNOPSIS: The base class for all ellipsis classes.
INTERFACE: Init() Term() SetEllipsis(NLS_STR * pnlsStr ) // set the ellipsis text
SetEllipsis(TCHAR * lpStr) // set the ellipsis text
QueryOriginalStr() SetOriginalStr (const TCHAR * psz) QueryStyle() SetStyle( const ELLIPSIS_STYLE nStyle = ELLIPSIS_NONE ) QueryText( NLS_STR * pnls ) QueryText( TCHAR * pszBuffer, UINT cbBufSize ) QueryTextLength() QueryTextSize()
PARENT: BASE
USES: NLS_STR
NOTES:
HISTORY: Congpa You (congpay) 01-April-1993 Created.
*********************************************************************/
DLL_CLASS BASE_ELLIPSIS : public BASE { private: NLS_STR _nlsOriginalStr; // original string
ELLIPSIS_STYLE _nStyle; // style of the display method
protected: BASE_ELLIPSIS(ELLIPSIS_STYLE nStyle = ELLIPSIS_NONE);
virtual INT QueryStrLen (NLS_STR nlsStr) = 0;
virtual INT QueryStrLen (const TCHAR * lpStr, INT nIstr) = 0;
virtual INT QueryLimit () = 0;
virtual INT QueryMaxCharWidth() = 0;
APIERR SetEllipsisLeft(NLS_STR * pnls);
APIERR SetEllipsisCenter(NLS_STR * pnls);
APIERR SetEllipsisRight(NLS_STR * pnls);
APIERR SetEllipsisPath(NLS_STR * pnls);
BOOL IsValidStyle( const ELLIPSIS_STYLE nStyle ) const;
public: static APIERR Init();
static VOID Term();
APIERR SetEllipsis(NLS_STR * pnlsStr ); // set the ellipsis text
APIERR SetEllipsis(TCHAR * lpStr); // set the ellipsis text
NLS_STR QueryOriginalStr() const;
APIERR SetOriginalStr (const TCHAR * psz);
ELLIPSIS_STYLE QueryStyle() const;
VOID SetStyle( const ELLIPSIS_STYLE nStyle = ELLIPSIS_NONE );
APIERR QueryText( NLS_STR * pnls ) const;
APIERR QueryText( TCHAR * pszBuffer, UINT cbBufSize ) const;
INT QueryTextLength() const;
INT QueryTextSize() const; };
/*********************************************************************
NAME: CONSOLE_ELLIPSIS
SYNOPSIS: The ellipsis class for all console apps.
INTERFACE: CONSOLE_ELLIPSIS() - constructor ~CONSOLE_ELLIPSIS() - destructor SetSize() - change the size of the object
PARENT: BASE_ELLIPSIS
USES: NLS_STR
NOTES:
HISTORY: Congpa You (congpay) 01-April-1993 Created.
*********************************************************************/
DLL_CLASS CONSOLE_ELLIPSIS : public BASE_ELLIPSIS { private: INT _nLimit;
protected: virtual INT QueryStrLen (NLS_STR nlsStr); virtual INT QueryStrLen (const TCHAR * lpStr, INT nIstr); virtual INT QueryLimit (); virtual INT QueryMaxCharWidth();
public: CONSOLE_ELLIPSIS( ELLIPSIS_STYLE nStyle , INT nLimit );
VOID SetSize (INT nLimit); };
/*********************************************************************
NAME: WIN_ELLIPSIS
SYNOPSIS: The ellipsis base class for all Win aware classes.
INTERFACE: WIN_ELLIPSIS() - constructor ~WIN_ELLIPSIS() - destructor SetSize() - change the size of the window object
PARENT: BASE_ELLIPSIS
USES: NLS_STR
NOTES:
HISTORY: Congpa You (congpay) 01-April-1993 Created.
*********************************************************************/
DLL_CLASS WIN_ELLIPSIS : public BASE_ELLIPSIS { private: DISPLAY_CONTEXT _dc; RECT _rect;
protected: virtual INT QueryStrLen (NLS_STR nlsStr); virtual INT QueryStrLen (const TCHAR * lpStr, INT nIstr); virtual INT QueryLimit (); virtual INT QueryMaxCharWidth();
public: WIN_ELLIPSIS( WINDOW * pwin, ELLIPSIS_STYLE nStyle = ELLIPSIS_NONE);
WIN_ELLIPSIS( WINDOW * pwin, HDC hdc, const RECT * prect, ELLIPSIS_STYLE nStyle = ELLIPSIS_NONE);
VOID SetSize (INT dxWidth, INT dyHeight); };
/*********************************************************************
NAME: SLT_ELLIPSIS
SYNOPSIS: The ellipsis class for SLT
INTERFACE: SLT_ELLIPSIS() - constructor ~SLT_ELLIPSIS() - destructor SetText() ClearText() ResetStyle() SetSize()
PARENT: WIN_ELLIPSIS, SLT
USES: NLS_STR
NOTES:
HISTORY: Congpa You (congpay) 01-April-1993 Created.
*********************************************************************/
DLL_CLASS SLT_ELLIPSIS : public SLT, public WIN_ELLIPSIS { DECLARE_MI_NEWBASE (SLT_ELLIPSIS);
protected: APIERR ConvertAndSetStr();
public: SLT_ELLIPSIS( OWNER_WINDOW * pownd, CID cid, ELLIPSIS_STYLE nStyle = ELLIPSIS_NONE); SLT_ELLIPSIS( OWNER_WINDOW * pownd, CID cid, XYPOINT xy, XYDIMENSION dxy, ULONG flStyle, const TCHAR * pszClassName = CW_CLASS_STATIC, ELLIPSIS_STYLE nStyle = ELLIPSIS_NONE);
APIERR QueryText( TCHAR * pszBuffer, UINT cbBufSize ) const; APIERR QueryText( NLS_STR * pnls ) const; APIERR SetText (const TCHAR * psz); APIERR SetText (const NLS_STR & nls); VOID ClearText();
VOID ResetStyle( const ELLIPSIS_STYLE nStyle = ELLIPSIS_NONE ); VOID SetSize (INT dxWidth, INT dyHeight, BOOL fRepaint = TRUE); };
/*********************************************************************
NAME: STR_DTE_ELLIPSIS
SYNOPSIS: The ellipsis class for STR_DTE
INTERFACE: STR_DTE_ELLIPSIS() - constructor ~STR_DTE_ELLIPSIS() - destructor Paint()
PARENT: STR_DTE
USES: NLS_STR
NOTES:
HISTORY: Congpa You (congpay) 01-April-1993 Created.
*********************************************************************/
DLL_CLASS STR_DTE_ELLIPSIS : public STR_DTE { private: LISTBOX * _plb; ELLIPSIS_STYLE _nStyle;
public: STR_DTE_ELLIPSIS( const TCHAR * pch, LISTBOX * plb, ELLIPSIS_STYLE nStyle = ELLIPSIS_NONE);
virtual VOID Paint (HDC hdc, const RECT * prect) const; };
#endif // _ELLIPSIS_HXX_ - end of file
|