//****************************************************************************** // // FieldDef.h: Common Column Definitions // Copyright (C) 1994-1997 Microsoft Corporation // All rights reserved. // //****************************************************************************** #pragma once #pragma warning(disable:4275) // Exported classes //------------------------------------------------------------------------------ struct LTAPIENTRY COLUMN_STRING_ENTRY { // Construction public: COLUMN_STRING_ENTRY(); COLUMN_STRING_ENTRY(const COLUMN_STRING_ENTRY & entry); // Data public: CLString st; // Display String long nID; // User value (unique ID) // Operations public: const COLUMN_STRING_ENTRY & operator=(const COLUMN_STRING_ENTRY & entry); }; typedef CArray CColStrEntryArray; //------------------------------------------------------------------------------ class LTAPIENTRY CColumnStrList : public CLocThingList { // Operations public: BOOL FindDisplayName(long nID, CLString & stName) const; BOOL FindID(const CLString &stName,long &nID) const; }; // RAID: LS42 Bug 46 fixed by MikeL // Pointer to a function to allow each column // type to have its own validation function. typedef BOOL (* PFNVALIDATE) (LPCTSTR, DWORD); // RAID: LS42 Bug 46 fixed by MikeL // Added m_pfnValidateFunc to allow each column // type to have its own validation function. //------------------------------------------------------------------------------ class LTAPIENTRY CColumnDefinition : public CRefCount { public: CColumnDefinition(const WCHAR * pszInternalName, long nID, const CLString &strName, const CLString &strHelp, CColumnVal::ColumnValType vt, Operators ops, BOOL fDisplayable, BOOL fSortable, BOOL fReadOnly, PFNVALIDATE pfnValidateFunc); void SetStringList(const CColumnStrList & lstColumnStr); const CPascalString & GetInternalName() const; long GetID() const; const CLString & GetDisplayName() const; const CLString & GetHelpText() const; BOOL IsDisplayable() const; BOOL IsSortable() const; BOOL IsReadOnly() const; CColumnVal::ColumnValType GetColumnType() const; Operators GetOperators() const; const CColumnStrList & GetStringList() const; BOOL Validate (LPCTSTR lpsz, DWORD dw) const; private: CPascalString m_pasInternalName; // Unique String ID long m_nID; // Unique Number ID (can be any number) CLString m_strDisplayName; // Displayed name CLString m_strHelpText; // Description of column CColumnVal::ColumnValType m_vt; // Type of data Operators m_ops; // Valid filtering operations BOOL m_fDisplayable; // Column is displayable BOOL m_fSortable; // Column is sortable BOOL m_fReadOnly; // Column is read-only PFNVALIDATE m_pfnValidateFunc; // Pointer to column value validation func CColumnStrList m_lstColumnStr; }; //------------------------------------------------------------------------------ // CEnumIntoColStrList provides a method of enumerating directly into a list of // COLUMN_STRING_ENTRY's. // class LTAPIENTRY CEnumIntoColStrList : public CEnumCallback { // Construction public: CEnumIntoColStrList(CColumnStrList & lstColStr, BOOL fLock = TRUE); ~CEnumIntoColStrList(); // CEnumCallback implementation public: virtual BOOL ProcessEnum(const EnumInfo &); protected: CColumnStrList & m_lstColStr; BOOL m_fLock; // Lock list when finished }; //------------------------------------------------------------------------------ class LTAPIENTRY CColDefUtil { // Operations public: static void FillBool(CButton * pbtn, BOOL fValue = TRUE); static void FillBool(CListBox * plbc, BOOL fValue = TRUE, BOOL fEmpty = TRUE); static void FillBool(CComboBox * pcbc, BOOL fValue = TRUE, BOOL fEmpty = TRUE); static void FillStringList(CListBox * plbc, const CColumnStrList & lstColStr, long idSelect = -1, BOOL fEmpty = TRUE); static void FillStringList(CComboBox * pcbc, const CColumnStrList & lstColStr, long idSelect = -1, BOOL fEmpty = TRUE); //------------------------------------------------------------------------------ class LTAPIENTRY CColDefCB : public CObject { public: virtual int AddItem(const CLString & stName, long nID); virtual void SetCurSel(long nSelect); virtual void FillBool(BOOL fValue = TRUE, BOOL fEmpty = TRUE); virtual void FillStringList(const CColumnStrList & lstColStr, long idSelect = -1, BOOL fEmpty = TRUE); virtual void Empty(); #ifdef _DEBUG virtual void AssertValid() const; #endif }; //------------------------------------------------------------------------------ class LTAPIENTRY CCheckBoxCB : public CColDefCB { public: CCheckBoxCB(CButton * pbtn); virtual void FillBool(BOOL fValue = TRUE, BOOL fEmpty = TRUE); #ifdef _DEBUG virtual void AssertValid() const; #endif protected: CButton * const m_pbtn; }; //------------------------------------------------------------------------------ class LTAPIENTRY CListBoxCB : public CColDefCB { public: CListBoxCB(CListBox * plbc); virtual int AddItem(const CLString & stName, long nID); virtual void SetCurSel(long nSelect); virtual void FillBool(BOOL fValue = TRUE, BOOL fEmpty = TRUE); virtual void FillStringList(const CColumnStrList & lstColStr, long idSelect = -1, BOOL fEmpty = TRUE); virtual void Empty(); #ifdef _DEBUG virtual void AssertValid() const; #endif protected: CListBox * const m_plbc; }; //------------------------------------------------------------------------------ class LTAPIENTRY CComboBoxCB : public CColDefCB { public: CComboBoxCB(CComboBox * pcbc); virtual int AddItem(const CLString & stName, long nID); virtual void SetCurSel(long nSelect); virtual void FillBool(BOOL fValue = TRUE, BOOL fEmpty = TRUE); virtual void FillStringList(const CColumnStrList & lstColStr, long idSelect = -1, BOOL fEmpty = TRUE); virtual void Empty(); #ifdef _DEBUG virtual void AssertValid() const; #endif protected: CComboBox * const m_pcbc; }; }; LTAPIENTRY int AddListBoxItem(CListBox * plbc, const CLString & stAdd, DWORD dwItemData); LTAPIENTRY int AddComboBoxItem(CComboBox * pcbc, const CLString & stAdd, DWORD dwItemData); LTAPIENTRY int AddListBoxItem(CListBox * plbc, HINSTANCE hDll, UINT nStringID, DWORD dwItemData); LTAPIENTRY int AddComboBoxItem(CComboBox * pcbc, HINSTANCE hDll, UINT nStringID, DWORD dwItemData); LTAPIENTRY void GetBoolValue(BOOL fValue, CLString & stValue); #pragma warning(default:4275) // Exported classes