/* * Xailer source code: * * TabItem.prg * Clase TabItem() * * Copyright 2003, 2007 Ignacio Ortiz de Zuņiga * Copyright 2003, 2007 Xailer.com * All rights reserved * */ #include "Xailer.ch" //-------------------------------------------------------------------------- CLASS XTabItem FROM TComponent PUBLISHED: PROPERTY cText INIT "" WRITE METHOD SetText PROPERTY nImage INIT 0 WRITE METHOD SetImage EDITOR PE_ImageIndex PROPERTY lEnabled INIT .T. WRITE INLINE IIf( Value, ::Enable(), ::Disable() ) PROPERTY nClrText INIT clWindowText WRITE METHOD SetClrText EDITOR PE_Color PROPERTY cTooltip INIT "" PUBLIC: PROPERTY oParent AS TTabControl PROPERTY nItem INIT 0 METHOD New( oParent ) CONSTRUCTOR METHOD Create( oParent, nItem, cText, xImage, cTooltip, nClrText, lEnabled ) CONSTRUCTOR METHOD SetItem( cText, xImage, cTooltip, nClrText ) // --> Nil METHOD Select() INLINE ::oParent:nIndex := ::nItem // --> Nil METHOD Delete() INLINE ::oParent:DeleteItem( ::nItem ) // --> Nil RESERVED: METHOD Enable() METHOD Disable() PROTECTED: METHOD SetText( cText ) METHOD SetImage( nImage ) METHOD SetClrText( nClrtext ) ENDCLASS //-------------------------------------------------------------------------- METHOD New( oParent ) CLASS XTabItem ::oParent := oParent RETURN Self //-------------------------------------------------------------------------- METHOD Create( oParent, nItem, cText, xImage, cTooltip, nClrText, lEnabled ) CLASS XTabItem DEFAULT xImage TO ::nImage UPDATE ::oParent TO oParent UPDATE ::nItem TO nItem UPDATE ::FcText TO cText UPDATE ::FcTooltip TO cTooltip UPDATE ::FnClrText TO nClrText UPDATE ::FlEnabled TO lEnabled IF ValType( xImage ) == "C" ::FnImage := ::oParent:AddImage( xImage ) ELSEIF ValType( xImage ) == "N" ::FnImage := xImage ENDIF IF Empty( ::nItem ) .OR. ::nItem > Len( ::oParent:aItems ) AAdd( ::oParent:aItems, Self ) ::nItem := Len( ::oParent:aItems ) ELSE AAdd( ::oParent:aItems, Nil ) AIns( ::oParent:aItems, ::nItem ) ::oParent:aItems[ ::nItem ] := Self nItem := ::nItem + 1 WHILE nItem < Len( ::oParent:aItems ) ::oParent:aItems[ nItem ]:nItem := nItem++ ENDDO ENDIF IF ! Empty( ::oParent:Handle ) TabCtrl_InsertItem( ::oParent:Handle, ::nItem, ::FcText, ::FnImage ) ::oParent:UpdateClientRect() ::oParent:SetShortCuts() ENDIF RETURN Self //-------------------------------------------------------------------------- METHOD SetItem( cText, xImage, cTooltip, nClrText ) CLASS XTabItem UPDATE ::FcText TO cText UPDATE ::cTooltip TO cTooltip UPDATE ::FnClrText TO nClrText IF ValType( xImage ) == "C" ::FnImage := ::oParent:AddImage( xImage ) ELSEIF ValType( xImage ) == "N" ::FnImage := xImage ENDIF IF ::oParent:Handle != 0 TabCtrl_SetItem( ::oParent:Handle, ::nItem, ::FcText, ::FnImage ) ::oParent:UpdateClientRect() ::oParent:SetShortCuts() ENDIF RETURN .T. //-------------------------------------------------------------------------- METHOD SetText( cText ) CLASS XTabItem UPDATE ::FcText TO cText IF ! Empty( ::oParent:Handle ) TabCtrl_SetItem( ::oParent:Handle, ::nItem, ::FcText, ::FnImage ) ::oParent:UpdateClientRect() ::oParent:SetShortCuts() ENDIF RETURN ::FcText //-------------------------------------------------------------------------- METHOD SetImage( nImage ) CLASS XTabItem IF nImage != Nil IF ValType( nImage ) == "C" ::FnImage := ::oParent:AddImage( nImage ) ELSEIF ValType( nImage ) == "N" ::FnImage := nImage ENDIF IF ! Empty( ::oParent:Handle ) TabCtrl_SetItem( ::oParent:Handle, ::nItem, ::FcText, ::FnImage ) ::oParent:UpdateClientRect() ENDIF ENDIF RETURN ::FnImage //-------------------------------------------------------------------------- METHOD Enable() CLASS XTabItem ::FlEnabled := .T. ::oParent:Refresh() RETURN .T. //-------------------------------------------------------------------------- METHOD Disable() CLASS XTabItem ::FlEnabled := .F. ::oParent:Refresh() RETURN .F. //-------------------------------------------------------------------------- METHOD SetClrText( nClrText ) CLASS XTabItem UPDATE ::FnClrText TO nClrText ::oParent:Refresh() RETURN ::FnClrText //--------------------------------------------------------------------------