Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

181 lines
5.0 KiB

//
// cuitb.h
// UI object library - define UI objects
//
// CUIFObject
// +- CUIFBorder border object
// +- CUIFStatic static object
// +- CUIFButton button object
// | +- CUIFScrollButton scrollbar button object (used in CUIFScroll)
// +- CUIFScrollButton scrollbar thumb object (used in CUIFScroll)
// +- CUIFScroll scrollbar object
// +- CUIFList listbox object
// +- CUIFWindow window frame object (need to be at top of parent)
//
#ifndef CUITB_H
#define CUITB_H
#include "cuiobj.h"
#include "cuiwnd.h"
//-----------------------------------------------------------------------------
//
// CUIFToolbarButtonElement
//
//-----------------------------------------------------------------------------
class CUIFToolbarButton;
class CUIFToolbarButtonElement : public CUIFButton2
{
public:
CUIFToolbarButtonElement( CUIFToolbarButton *pParent, DWORD dwID, RECT *prc, DWORD dwStyle);
virtual ~CUIFToolbarButtonElement( void );
// virtual void OnPaint(HDC hDC);
virtual void OnLButtonUp( POINT pt );
virtual void OnRButtonUp( POINT pt );
virtual BOOL OnSetCursor( UINT uMsg, POINT pt );
virtual LPCWSTR GetToolTip( void );
protected:
CUIFToolbarButton *_pTBButton;
};
//-----------------------------------------------------------------------------
//
// CUIFToolbarMenuButton
//
//-----------------------------------------------------------------------------
class CUIFToolbarButton;
class CUIFToolbarMenuButton : public CUIFButton2
{
public:
CUIFToolbarMenuButton( CUIFToolbarButton *pParent, DWORD dwID, RECT *prc, DWORD dwStyle);
virtual ~CUIFToolbarMenuButton( void );
// virtual void OnPaint(HDC hDC);
virtual void OnLButtonUp( POINT pt );
virtual BOOL OnSetCursor( UINT uMsg, POINT pt );
protected:
CUIFToolbarButton *_pTBButton;
};
//
// CUIFToolbarButton
//-----------------------------------------------------------------------------
// UIToolbarButton show type
#define UITBBUTTON_BUTTON 0x00010000
#define UITBBUTTON_MENU 0x00020000
#define UITBBUTTON_TOGGLE 0x00040000
#define UITBBUTTON_VERTICAL 0x00080000
// UIToolbarButton show type
#define UITBBUTTON_TEXT 0x0001
//
// CUIFToolbarButton
//
class CUIFToolbarButton : public CUIFObject
{
public:
CUIFToolbarButton( CUIFObject *pParent, DWORD dwID, RECT *prc, DWORD dwStyle , DWORD dwSBtnStyle, DWORD dwSBtnShowType);
virtual ~CUIFToolbarButton( void );
BOOL Init();
void SetShowType(DWORD dwSBtnShowType);
virtual void SetRect( const RECT *prc );
virtual void OnRightClick() {}
virtual void OnLeftClick() {}
virtual void OnShowMenu() {}
virtual void Enable( BOOL fEnable );
void SetIcon( HICON hIcon );
HICON GetIcon( );
void SetBitmap( HBITMAP hBmp );
HBITMAP GetBitmap( );
void SetBitmapMask( HBITMAP hBmp );
HBITMAP GetBitmapMask( );
void SetText( WCHAR *psz);
void SetToolTip( LPCWSTR pwchToolTip );
void SetFont(HFONT hfont);
virtual LPCWSTR GetToolTip( void );
BOOL IsMenuOnly();
BOOL IsMenuButton();
BOOL IsButtonOnly();
BOOL IsToggle();
BOOL IsVertical();
void DetachWndObj( void );
const WCHAR *GetText()
{
Assert(PtrToInt(_pBtn));
return _pBtn->GetText();
}
virtual void SetActiveTheme(LPCWSTR pszClassList, int iPartID = 0, int iStateID = 0)
{
if (_pBtn)
_pBtn->SetActiveTheme(pszClassList, iPartID, iStateID);
if (_pMenuBtn)
_pMenuBtn->SetActiveTheme(pszClassList, iPartID, iStateID);
CUIFObject::SetActiveTheme(pszClassList, iPartID, iStateID);
}
virtual void ClearWndObj()
{
if (_pBtn)
_pBtn->ClearWndObj();
if (_pMenuBtn)
_pMenuBtn->ClearWndObj();
CUIFObject::ClearWndObj();
}
CUIFToolbarButtonElement *_pBtn;
CUIFToolbarMenuButton *_pMenuBtn;
DWORD m_dwSBtnStyle;
DWORD m_dwSBtnShowType;
};
//
//
//-----------------------------------------------------------------------------
// UIFSeparator style
#define UITBSEPARATOR_VERTICAL 0x00000001
class CUIFSeparator : public CUIFObject
{
public:
CUIFSeparator( CUIFObject *pParent, DWORD dwId, RECT *prc, DWORD dwStyle) : CUIFObject( pParent, dwId, prc, dwStyle )
{
if (IsVertical())
SetActiveTheme(L"TOOLBAR", TP_SEPARATORVERT);
else
SetActiveTheme(L"TOOLBAR", TP_SEPARATOR);
}
virtual ~CUIFSeparator()
{
}
protected:
virtual BOOL OnPaintTheme( HDC hDC );
virtual void OnPaintNoTheme( HDC hDC );
private:
BOOL IsVertical() {return (GetStyle() & UITBSEPARATOR_VERTICAL) ? TRUE : FALSE;}
};
#endif /* CUITB_H */