/**********************************************************************/ /** Microsoft Windows NT **/ /** Copyright(c) Microsoft Corp., 1991 **/ /**********************************************************************/ /* grplb.hxx GROUP_LISTBOX and GROUP_LBI class declarations FILE HISTORY: rustanl 18-Jul-1991 Created o-SimoP 11-Dec-1991 Added support for multiple bitmaps o-SimoP 31-Dec-1991 CR changes, attended by BenG, JonN and I JonN 27-Feb-1992 Multiple bitmaps in both panes JonN 10-Feb-1992 ALIAS_LBI */ #ifndef _GRPLB_HXX_ #define _GRPLB_HXX_ #include #include #include // forward declarations class SUBJECT_BITMAP_BLOCK; enum MAINGRPLB_GRP_INDEX // indexes to array containing { // DMIDs for listboxes MAINGRPLB_GROUP = 0, MAINGRPLB_ALIAS, MAINGRPLB_LB_OF_DMID_SIZE // KEEP THIS LAST INDEX }; /************************************************************************* NAME: GROUP_LBI SYNOPSIS: LBI for main group/alias listbox INTERFACE: GROUP_LBI() - constructor ~GROUP_LBI() - destructor QueryGroup() - returns pointer to group name QueryName() - returns pointer to account name CompareAll() - returns TRUE iff LBIs are identical PARENT: ADMIN_LBI HISTORY: rustanl 01-Jul-1991 Created o-SimoP 16-Dec-1991 Added header beng 22-Apr-1992 Change to LBI::Paint **************************************************************************/ class GROUP_LBI : public ADMIN_LBI { private: NLS_STR _nlsGroup; NLS_STR _nlsComment; enum MAINGRPLB_GRP_INDEX _nIndex; ULONG _ulRID; protected: virtual VOID Paint( LISTBOX * plb, HDC hdc, const RECT * prect, GUILTT_INFO * pGUILTT ) const; virtual WCHAR QueryLeadingChar() const; virtual INT Compare( const LBI * plbi ) const; virtual INT Compare_HAWforHawaii( const NLS_STR & nls ) const; public: GROUP_LBI( const TCHAR * pszGroup, const TCHAR * pszComment, ULONG ulRID = 0, enum MAINGRPLB_GRP_INDEX nIndex = MAINGRPLB_GROUP ); virtual ~GROUP_LBI() { ; } enum MAINGRPLB_GRP_INDEX QueryIndex() { return _nIndex; } const TCHAR * QueryGroup() const { return _nlsGroup.QueryPch(); } const TCHAR * QueryComment() const { return _nlsComment.QueryPch(); } // virtual replacement from ADMIN_LBI virtual const TCHAR * QueryName() const; // virtual replacement from ADMIN_LBI virtual BOOL CompareAll( const ADMIN_LBI * plbi ); ULONG QueryRID() const { return _ulRID; } BOOL IsAliasLBI() const { return (_nIndex == MAINGRPLB_ALIAS); } }; /************************************************************************* NAME: ALIAS_LBI SYNOPSIS: Alias LBI for main group/alias listbox (pure inline) INTERFACE: ALIAS_LBI() - constructor ~ALIAS_LBI() - destructor QueryRID() - returns ULONG identifier PARENT: GROUP_LBI HISTORY: JonN 10-Mar-1992 Created **************************************************************************/ class ALIAS_LBI : public GROUP_LBI { private: BOOL _fBuiltinAlias; public: ALIAS_LBI( const TCHAR * pszGroup, const TCHAR * pszComment, ULONG ulRID, BOOL fBuiltinAlias = FALSE ) : GROUP_LBI( pszGroup, pszComment, ulRID, MAINGRPLB_ALIAS ), _fBuiltinAlias( fBuiltinAlias ) { ; } virtual ~ALIAS_LBI() { ; } BOOL IsBuiltinAlias() const { return _fBuiltinAlias; } }; /************************************************************************* NAME: GROUP_LISTBOX SYNOPSIS: Group listbox appearing in main window of User Tool INTERFACE: GROUP_LISTBOX() - ~GROUP_LISTBOX() - QueryDmDte() - Returns a pointer to a DM_DTE to be used by GROUP_LBI items in this listbox when painting themselves PARENT: USRMGR_LISTBOX USES: USER10_ENUM, USER10_ENUM_ITER HISTORY: rustanl 01-Jul-1991 Created o-SimoP 16-Dec-1991 Added header jonn 11-Oct-1994 optimize for large groups **************************************************************************/ class GROUP_LISTBOX : public USRMGR_LISTBOX { private: ADMIN_COL_WIDTHS * _padColGroup; BOOL _fGroupRidsKnown; // Are group RIDS known? #ifdef WIN32 APIERR NtRefreshAliases(); #endif // WIN32 protected: // The following virtuals are rooted in ADMIN_LISTBOX virtual APIERR CreateNewRefreshInstance(); virtual VOID DeleteRefreshInstance(); virtual APIERR RefreshNext(); public: GROUP_LISTBOX( UM_ADMIN_APP * puappwin, CID cid, XYPOINT xy, XYDIMENSION dxy ); ~GROUP_LISTBOX(); DECLARE_LB_QUERY_ITEM( GROUP_LBI ); DM_DTE * QueryDmDte( enum MAINGRPLB_GRP_INDEX nIndex ); ADMIN_COL_WIDTHS * QuerypadColGroup (VOID) const { return _padColGroup; } APIERR ChangeFont( HINSTANCE hmod, FONT & font ); SUBJECT_BITMAP_BLOCK & QueryBitmapBlock() const; BOOL QueryGroupRidsKnown() const { return _fGroupRidsKnown; } }; /************************************************************************* NAME: GROUP_COLUMN_HEADER SYNOPSIS: Column header for main group listbox INTERFACE: GROUP_COLUMN_HEADER() - constructor ~GROUP_COLUMN_HEADER() - destructor PARENT: ADMIN_COLUMN_HEADER HISTORY: rustanl 01-Jul-1991 Created o-SimoP 16-Dec-1991 Added header **************************************************************************/ class GROUP_COLUMN_HEADER : public ADMIN_COLUMN_HEADER { private: const GROUP_LISTBOX * _pulb; NLS_STR _nlsGroupName; NLS_STR _nlsComment; protected: virtual BOOL OnPaintReq(); public: GROUP_COLUMN_HEADER( OWNER_WINDOW * powin, CID cid, XYPOINT xy, XYDIMENSION dxy, const GROUP_LISTBOX * pulb); ~GROUP_COLUMN_HEADER(); }; #endif // _GRPLB_HXX_