diff options
Diffstat (limited to 'toolkit/inc/layout/layout.hxx')
-rw-r--r-- | toolkit/inc/layout/layout.hxx | 826 |
1 files changed, 826 insertions, 0 deletions
diff --git a/toolkit/inc/layout/layout.hxx b/toolkit/inc/layout/layout.hxx new file mode 100644 index 000000000000..5d013e8a74c4 --- /dev/null +++ b/toolkit/inc/layout/layout.hxx @@ -0,0 +1,826 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _LAYOUT_HXX +#define _LAYOUT_HXX + +#include <com/sun/star/awt/XLayoutContainer.hpp> +#include <com/sun/star/uno/XInterface.hpp> +#include <com/sun/star/util/Color.hpp> +#include <i18npool/lang.h> +#include <toolkit/dllapi.h> +#include <tools/gen.hxx> +#include <tools/link.hxx> +#include <tools/string.hxx> +#include <vcl/bitmap.hxx> +#include <vcl/combobox.h> +#include <vcl/fldunit.hxx> +#include <vcl/lstbox.h> +#include <vcl/wintypes.hxx> + +class Button; +class ComboBox; +class Color; +class Control; +class Dialog; +class Edit; +class Font; +class Image; +class ListBox; +class MapMode; +class MultiListBox; +class NotifyEvent; +class Pointer; +class PushButton; +class RadioButton; +class ResId; +struct SfxChildWinInfo; +//class SvxFontListBox; +//class SvxLanguageBox; +class TabControl; +class TabPage; +class VCLXRadioButton; +class VCLXWindow; +class Window; + +namespace layoutimpl +{ +class VCLXTabControl; +} + +class VCLXTabControl; + +namespace com { namespace sun { namespace star { namespace awt { class XWindow; } } } } + +namespace layout +{ + +namespace css = ::com::sun::star; + +typedef css::uno::Reference< css::uno::XInterface > PeerHandle; +class ContextImpl; +class TOOLKIT_DLLPUBLIC Context +{ + ContextImpl *pImpl; +public: + Context( char const* pPath ); + virtual ~Context(); + PeerHandle GetPeerHandle( char const* id, sal_uInt32 nId = 0 ) const; + void setToplevel( PeerHandle xToplevel ); + PeerHandle getToplevel(); + PeerHandle getRoot(); +}; + +// make declaring wrappers easier ... +#define DECL_CONSTRUCTORS(t,par,defaultWinBit) \ + protected: \ + explicit t( WindowImpl *pImpl ) : \ + par( pImpl ) {} \ + char const* GetUnoName() const; \ + public: \ + t( Context *context, char const* id, sal_uInt32 nId = 0 ); \ + t( Window *parent, WinBits nStyle = defaultWinBit ); \ + t (Window *parent, ResId const &res) +#define DECL_GET_IMPL(t) \ + inline t##Impl &getImpl() const + +#define DECL_GET_WINDOW( cls ) ::cls* Get##cls() const +#define IMPL_GET_WINDOW( cls ) ::cls* cls::Get##cls() const { return dynamic_cast< ::cls*>( GetWindow() ); } + +#define DECL_GET_VCLXWINDOW( cls ) ::VCLX##cls* GetVCLX##cls() const +#define IMPL_GET_VCLXWINDOW( cls ) ::VCLX##cls* cls::Get##VCLX##cls() const { return dynamic_cast< ::VCLX##cls*>( GetVCLXWindow() ); } + +#define DECL_GET_LAYOUT_VCLXWINDOW( cls ) ::layoutimpl::VCLX##cls* GetVCLX##cls() const +#define IMPL_GET_LAYOUT_VCLXWINDOW( cls ) ::layoutimpl::VCLX##cls* cls::Get##VCLX##cls() const { return dynamic_cast< ::layoutimpl::VCLX##cls*>( GetVCLXWindow() ); } + +// follows the VCL inheritance hierarchy ... + +class WindowImpl; +class TOOLKIT_DLLPUBLIC Window +{ +protected: + friend class WindowImpl; + WindowImpl *mpImpl; + static PeerHandle CreatePeer( Window *parent, WinBits nStyle, + char const* pName); + + virtual void setRes (ResId const& res); + +public: + DECL_GET_IMPL( Window ); + explicit Window( WindowImpl *pImpl ); + virtual ~Window(); + + PeerHandle GetPeer() const; + Context *getContext(); + + void Enable( bool bEnable = true ); + inline void Disable() { Enable( false ); } + void Show( bool bVisible = true ); + inline void Hide() { Show( false ); } + void GrabFocus(); + void FreeResource() {} + + void SetParent( ::Window *parent ); + virtual void ParentSet (Window *window); + void SetParent( Window *parent ); + + css::uno::Reference<css::awt::XWindow> GetRef() const; + VCLXWindow* GetVCLXWindow() const; + ::Window* GetWindow() const; + ::Window* GetParent() const; + + void SetPointer( Pointer const& pointer ); + Pointer const& GetPointer() const; + WinBits GetStyle(); + void SetText( rtl::OUString const& str ); + String GetText() const; + void SetStyle( WinBits style ); + void SetUpdateMode( bool mode ); + void SetHelpId( const rtl::OString& id ); + const rtl::OString& GetHelpId() const; + void EnterWait (); + void LeaveWait (); + bool IsWait () const; + //void Enable (bool enable=true, bool child=true); + //void Disable (bool child=true); + bool IsEnabled () const; + void EnableInput (bool enable=true, bool child=true); + bool IsInputEnabled () const; + + bool IsVisible () const; + bool HasChildPathFocus (bool systemWindow=false) const; + void SetPosPixel (Point const&); + Point GetPosPixel () const; + void SetSizePixel (Size const&); + Size GetSizePixel () const; + void SetPosSizePixel (Point const&, Size const&); + sal_Int32 GetCtrlTextWidth (rtl::OUString const& str) const; + sal_Int32 GetTextHeight () const; + + Size LogicToPixel( Size const& size ) const; + Size LogicToPixel( Size const& size, MapMode const& mapMode ) const; + + bool HasFocus () const; + Font& GetFont () const; + void SetFont (Font const& font); + virtual void Invalidate (sal_uInt8 flags=0); +}; + +class ControlImpl; +class TOOLKIT_DLLPUBLIC Control : public Window +{ + DECL_GET_IMPL( Control ); + DECL_CONSTRUCTORS( Control, Window, 0 ); + +public: + ~Control (); + void SetGetFocusHdl (Link const& link); + Link& GetGetFocusHdl (); + void SetLoseFocusHdl (Link const& link); + Link& GetLoseFocusHdl (); +}; + +class FixedLineImpl; +class TOOLKIT_DLLPUBLIC FixedLine : public Control +{ + DECL_GET_IMPL( FixedLine ); + DECL_CONSTRUCTORS( FixedLine, Control, WB_HORZ ); + +public: + bool IsEnabled() const; +}; + +class FixedTextImpl; +class TOOLKIT_DLLPUBLIC FixedText : public Control +{ + DECL_GET_IMPL( FixedText ); + DECL_CONSTRUCTORS( FixedText, Control, 0 ); + +public: + ~FixedText (); + void SetText( rtl::OUString const& rStr ); +}; + +class FixedImageImpl; +class TOOLKIT_DLLPUBLIC FixedImage : public Control +{ + DECL_GET_IMPL( FixedImage ); + DECL_CONSTRUCTORS( FixedImage, Control, 0 ); +public: + void setImage( ::Image const& ); +}; + +class FixedInfoImpl; +class TOOLKIT_DLLPUBLIC FixedInfo : public FixedText +{ + DECL_GET_IMPL( FixedInfo ); + DECL_CONSTRUCTORS( FixedInfo, FixedText, 0 ); +}; + +class ImageImpl; +class TOOLKIT_DLLPUBLIC Image +{ + ImageImpl *pImpl; +public: + Image( char const* pName ); + ~Image(); + ImageImpl &getImpl() const { return *pImpl; } +}; + +class ButtonImpl; +class TOOLKIT_DLLPUBLIC Button : public Control +{ + DECL_GET_IMPL( Button ); + DECL_CONSTRUCTORS( Button, Control, 0 ); + DECL_GET_WINDOW (Button); + +public: + ~Button (); + static String GetStandardText (sal_uInt16 button_type); + void SetText( rtl::OUString const& rStr ); + bool SetModeImage (Image const& image); + bool SetModeImage (::Image const& image, BmpColorMode mode=BMP_COLOR_NORMAL); + void SetImageAlign( ImageAlign eAlign ); + + void SetClickHdl( Link const& rLink ); + virtual void Click() /* pure virtual? */; + Link& GetClickHdl (); +}; + +class PushButtonImpl; +class TOOLKIT_DLLPUBLIC PushButton : public Button +{ + DECL_GET_IMPL( PushButton ); + DECL_CONSTRUCTORS( PushButton, Button, 0 ); + DECL_GET_WINDOW (PushButton); + +public: + ~PushButton (); + void Check( bool bCheck=true ); + bool IsChecked() const; + + void Toggle(); + void SetToggleHdl( Link const& rLink ); +}; + +class TOOLKIT_DLLPUBLIC OKButton : public PushButton +{ + DECL_CONSTRUCTORS( OKButton, PushButton, WB_DEFBUTTON ); +}; +class TOOLKIT_DLLPUBLIC CancelButton : public PushButton +{ + DECL_CONSTRUCTORS( CancelButton, PushButton, 0 ); +}; +class TOOLKIT_DLLPUBLIC YesButton : public PushButton +{ + DECL_CONSTRUCTORS( YesButton, PushButton, WB_DEFBUTTON ); +}; +class TOOLKIT_DLLPUBLIC NoButton : public PushButton +{ + DECL_CONSTRUCTORS( NoButton, PushButton, 0 ); +}; +class TOOLKIT_DLLPUBLIC RetryButton : public PushButton +{ + DECL_CONSTRUCTORS( RetryButton, PushButton, 0 ); +}; +class TOOLKIT_DLLPUBLIC IgnoreButton : public PushButton +{ + DECL_CONSTRUCTORS( IgnoreButton, PushButton, 0 ); +}; +class TOOLKIT_DLLPUBLIC ResetButton : public PushButton +{ + DECL_CONSTRUCTORS( ResetButton, PushButton, 0 ); +}; +class TOOLKIT_DLLPUBLIC ApplyButton : public PushButton +{ + DECL_CONSTRUCTORS( ApplyButton, PushButton, 0 ); +}; +class TOOLKIT_DLLPUBLIC HelpButton : public PushButton +{ + DECL_CONSTRUCTORS( HelpButton, PushButton, 0 ); +}; +class TOOLKIT_DLLPUBLIC ImageButton : public PushButton +{ + DECL_CONSTRUCTORS( ImageButton, PushButton, 0 ); +}; + +class AdvancedButtonImpl; +class TOOLKIT_DLLPUBLIC AdvancedButton : public PushButton +{ + DECL_CONSTRUCTORS( AdvancedButton, PushButton, 0 ); + DECL_GET_IMPL( AdvancedButton ); + + void AddAdvanced( Window* w ); + void AddSimple( Window* w ); + void RemoveAdvanced( Window* w ); + void RemoveSimple( Window* w ); + + void SetAdvancedText (rtl::OUString const& text); + void SetSimpleText (rtl::OUString const& text); + rtl::OUString GetAdvancedText () const; + rtl::OUString GetSimpleText () const; + void SetDelta (int); +}; + +class MoreButtonImpl; +class TOOLKIT_DLLPUBLIC MoreButton : public AdvancedButton +{ + DECL_CONSTRUCTORS( MoreButton, AdvancedButton, 0 ); + DECL_GET_IMPL( MoreButton ); + void AddWindow( Window* w ); + void RemoveWindow( Window* w ); + + void SetMoreText (rtl::OUString const& text); + void SetLessText (rtl::OUString const& text); + rtl::OUString GetMoreText () const; + rtl::OUString GetLessText () const; +}; + +class RadioButtonImpl; +class TOOLKIT_DLLPUBLIC RadioButton : public Button +{ + DECL_GET_IMPL( RadioButton ); + DECL_CONSTRUCTORS( RadioButton, Button, 0 ); + DECL_GET_WINDOW( RadioButton ); + DECL_GET_VCLXWINDOW( RadioButton ); +public: + ~RadioButton (); + void Check( bool bCheck=true ); + bool IsChecked() const; + + void Toggle(); + void SetToggleHdl( Link const& rLink ); +}; + +class CheckBoxImpl; +class TOOLKIT_DLLPUBLIC CheckBox : public Button +{ + DECL_GET_IMPL( CheckBox ); + DECL_CONSTRUCTORS( CheckBox, Button, 0 ); + +public: + ~CheckBox (); + void Check( bool bCheck=true ); + bool IsChecked() const; + + void Toggle(); + void SetToggleHdl( Link const& rLink ); +}; + +class EditImpl; +class TOOLKIT_DLLPUBLIC Edit : public Control +{ + DECL_GET_IMPL( Edit ); + DECL_CONSTRUCTORS( Edit, Control, WB_BORDER ); + DECL_GET_WINDOW (Edit); + +public: + ~Edit (); + void SetText( rtl::OUString const& rStr ); + String GetText() const; + void SetModifyHdl( Link const& rLink ); + void SetSelection( Selection const& rSelection ); +}; + +class MultiLineEditImpl; +class TOOLKIT_DLLPUBLIC MultiLineEdit : public Edit +{ + DECL_GET_IMPL( MultiLineEdit ); + DECL_CONSTRUCTORS( MultiLineEdit, Edit, WB_LEFT|WB_BORDER ); +}; + +class SpinFieldImpl; +class TOOLKIT_DLLPUBLIC SpinField : public Edit +{ + DECL_GET_IMPL( SpinField ); + DECL_CONSTRUCTORS( SpinField, Edit, 0 ); +}; + +class FormatterBaseImpl; +class TOOLKIT_DLLPUBLIC FormatterBase +{ +protected: + FormatterBaseImpl *mpFormatImpl; + FormatterBase( FormatterBaseImpl *pFormatImpl ); +}; + +class NumericFormatterImpl; +class TOOLKIT_DLLPUBLIC NumericFormatter : public FormatterBase +{ +protected: + explicit NumericFormatter( FormatterBaseImpl *pImpl ); + NumericFormatterImpl &getFormatImpl() const; +public: + void SetMin( sal_Int64 nNewMin ); + void SetMax( sal_Int64 nNewMax ); + void SetFirst( sal_Int64 nNewFirst ); + void SetLast( sal_Int64 nNewLast ); + void SetSpinSize( sal_Int64 nNewSize ); + + void SetValue( sal_Int64 nNewValue ); + sal_Int64 GetValue() const; +}; + +class NumericFieldImpl; +class TOOLKIT_DLLPUBLIC NumericField : public SpinField, public NumericFormatter +{ + DECL_GET_IMPL( NumericField ); +public: + NumericField( Context *context, char const* id, sal_uInt32 nId=0 ); + NumericField( Window *parent, WinBits nStyle ); +}; + +class MetricFormatterImpl; +// Different inheritance to save code +class TOOLKIT_DLLPUBLIC MetricFormatter : public FormatterBase +{ + protected: + explicit MetricFormatter( FormatterBaseImpl *pImpl ); + MetricFormatterImpl &getFormatImpl() const; +public: + void SetMin( sal_Int64 nNewMin, FieldUnit nUnit=FUNIT_NONE ); + void SetMax( sal_Int64 nNewMax, FieldUnit nUnit=FUNIT_NONE ); + void SetFirst( sal_Int64 nNewFirst, FieldUnit nUnit=FUNIT_NONE ); + void SetLast( sal_Int64 nNewLast, FieldUnit nUnit=FUNIT_NONE ); + void SetValue( sal_Int64 nNewValue, FieldUnit nUnit=FUNIT_NONE ); + sal_Int64 GetValue( FieldUnit nUnit=FUNIT_NONE ) const; + + void SetSpinSize( sal_Int64 nNewSize ); +}; + +class MetricFieldImpl; +class TOOLKIT_DLLPUBLIC MetricField : public SpinField, public MetricFormatter +{ + DECL_GET_IMPL( MetricField ); +public: + MetricField( Context *context, char const* id, sal_uInt32 nId=0 ); + MetricField( Window *parent, WinBits nStyle ); +}; + +class ComboBoxImpl; +class TOOLKIT_DLLPUBLIC ComboBox : public Edit +{ + DECL_GET_IMPL( ComboBox ); + DECL_GET_WINDOW (ComboBox ); + DECL_CONSTRUCTORS( ComboBox, Edit, 0 ); + +public: + ~ComboBox (); + sal_uInt16 InsertEntry( String const& rStr, sal_uInt16 nPos=COMBOBOX_APPEND ); + void RemoveEntry( String const& rStr ); + void RemoveEntry( sal_uInt16 nPos ); + void Clear(); + + sal_uInt16 GetEntryPos( String const& rStr ) const; + String GetEntry( sal_uInt16 nPos ) const; + sal_uInt16 GetEntryCount() const; + + void SetClickHdl( Link const& rLink ); + void SetSelectHdl( Link const& rLink ); + void EnableAutocomplete (bool enable, bool matchCase=false ); +}; + +class ListBoxImpl; +class TOOLKIT_DLLPUBLIC ListBox : public Control +{ + DECL_GET_IMPL( ListBox ); + DECL_CONSTRUCTORS( ListBox, Control, WB_BORDER ); + DECL_GET_WINDOW (ListBox); + +public: + ~ListBox (); + sal_uInt16 InsertEntry( String const& rStr, sal_uInt16 nPos=LISTBOX_APPEND ); + + void RemoveEntry( String const& rStr ); + void RemoveEntry( sal_uInt16 nPos ); + void Clear(); + + sal_uInt16 GetEntryPos( String const& rStr ) const; + String GetEntry( sal_uInt16 nPos ) const; + sal_uInt16 GetEntryCount() const; + + void SelectEntry( String const& rStr, bool bSelect=true ); + void SelectEntryPos( sal_uInt16 nPos, bool bSelect=true ); + + sal_uInt16 GetSelectEntryCount() const; + String GetSelectEntry( sal_uInt16 nSelIndex=0 ) const; + sal_uInt16 GetSelectEntryPos( sal_uInt16 nSelIndex=0 ) const; + + void SetSelectHdl (Link const& link); + Link& GetSelectHdl (); + + void SetClickHdl (Link const& link); + Link& GetClickHdl (); + + void SetDoubleClickHdl (Link const& link); + Link& GetDoubleClickHdl (); + + void SetEntryData (sal_uInt16 pos, void* data); + void* GetEntryData (sal_uInt16 pos) const; + + virtual void SetNoSelection (); +}; + +class MultiListBoxImpl; +class TOOLKIT_DLLPUBLIC MultiListBox : public ListBox +{ + DECL_GET_IMPL( MultiListBox ); + DECL_CONSTRUCTORS( MultiListBox, ListBox, 0 ); + DECL_GET_WINDOW( MultiListBox ); +}; + +class DialogImpl; +class TOOLKIT_DLLPUBLIC Dialog : public Context, public Window +{ + DECL_GET_WINDOW (Dialog); + +public: + DECL_GET_IMPL (Dialog); + Dialog( Window *parent, char const* xml_file, char const* id, sal_uInt32 nId=0 ); + Dialog( ::Window *parent, char const* xml_file, char const* id, sal_uInt32 nId=0 ); + ~Dialog (); + virtual short Execute(); + void EndDialog( long nResult=0 ); + void SetText( rtl::OUString const& rStr ); + void SetTitle (rtl::OUString const& rStr ); + bool Close (); + long Notify (NotifyEvent & event); + + // Sxf*Dialog + bool bConstruct; + void Initialize (SfxChildWinInfo*); +}; + +#define DECL_MESSAGE_BOX_CTORS(Name)\ + public:\ + Name##Box (::Window *parent, char const* message,\ + char const* yes=0, char const* no=0, const rtl::OString& help_id=rtl::OString(),\ + char const* xml_file="message-box.xml", char const* id="message-box");\ + Name##Box (::Window *parent, rtl::OUString const& message,\ + rtl::OUString yes=String (),\ + rtl::OUString no=String (),\ + const rtl::OString& help_id=rtl::OString(),\ + char const* xml_file="message-box.xml", char const* id="message-box");\ + Name##Box (::Window *parent, WinBits, char const* message,\ + char const* yes=0, char const* no=0, const rtl::OString& help_id=rtl::OString(),\ + char const* xml_file="message-box.xml", char const* id="message-box");\ + Name##Box (::Window *parent, WinBits, rtl::OUString const& message,\ + rtl::OUString yes=String (),\ + rtl::OUString no=String (),\ + const rtl::OString& help_id=rtl::OString(),\ + char const* xml_file="message-box.xml", char const* id="message-box")\ + +class TOOLKIT_DLLPUBLIC MessageBox : public Dialog +{ + DECL_MESSAGE_BOX_CTORS(Message); + +protected: + FixedImage imageError; + FixedImage imageInfo; + FixedImage imageQuery; + FixedImage imageWarning; + FixedText messageText; + CancelButton cancelButton; + HelpButton helpButton; + IgnoreButton ignoreButton; + NoButton noButton; + RetryButton retryButton; + YesButton yesButton; + + void bits_init (WinBits bits, rtl::OUString const& message, + rtl::OUString yes, rtl::OUString, const rtl::OString& help_id); + void init (rtl::OUString const& message, + rtl::OUString const& yes, rtl::OUString const& no, const rtl::OString& help_id); + void init (char const* message, char const* yes, char const* no, const rtl::OString& help_id); +}; + +#define CLASS_MESSAGE_BOX(Name)\ + class TOOLKIT_DLLPUBLIC Name##Box : public MessageBox\ + {\ + DECL_MESSAGE_BOX_CTORS (Name);\ + } + +//CLASS_MESSAGE_BOX (Mess); +typedef MessageBox MessBox; +CLASS_MESSAGE_BOX (Error); +CLASS_MESSAGE_BOX (Info); +CLASS_MESSAGE_BOX (Query); +CLASS_MESSAGE_BOX (Warning); + +#undef CLASS_MESSAGE_BOX + +#undef TAB_APPEND + +class TabControlImpl; +class TOOLKIT_DLLPUBLIC TabControl : public Control +{ +//#ifndef TAB_APPEND +#define TAB_APPEND 0xFFFF +//#endif /* !TAB_APPEND */ + + DECL_GET_IMPL (TabControl); + DECL_CONSTRUCTORS (TabControl, Control, 0); + DECL_GET_WINDOW (TabControl); + DECL_GET_LAYOUT_VCLXWINDOW (TabControl); + +public: + ~TabControl (); + void InsertPage (sal_uInt16 id, rtl::OUString const& title, sal_uInt16 pos=TAB_APPEND); + void RemovePage (sal_uInt16 id); + sal_uInt16 GetPageCount () const; + sal_uInt16 GetPageId (sal_uInt16 pos) const; + sal_uInt16 GetPagePos (sal_uInt16 id) const; + void SetCurPageId (sal_uInt16 id); + sal_uInt16 GetCurPageId () const; + void SetTabPage (sal_uInt16 id, ::TabPage* page); + ::TabPage* GetTabPage (sal_uInt16 id) const; + void SetActivatePageHdl (Link const& link); + Link& GetActivatePageHdl () const; + void SetDeactivatePageHdl (Link const& link); + Link& GetDeactivatePageHdl () const; + void SetTabPageSizePixel (Size const& size); + Size GetTabPageSizePixel () const; +}; + +class TabPageImpl; +class TOOLKIT_DLLPUBLIC TabPage : public Context, public Window +{ + DECL_GET_IMPL( TabPage ); +public: + static ::Window* global_parent; + static TabControl* global_tabcontrol; + + TabPage( Window *parent, char const* xml_file, char const* id, sal_uInt32 nId=0 ); + TabPage( ::Window *parent, char const* xml_file, char const* id, sal_uInt32 nId=0 ); + ~TabPage(); + DECL_GET_WINDOW( TabPage ); + virtual void ActivatePage(); + virtual void DeactivatePage(); +}; + +class ProgressBarImpl; +class TOOLKIT_DLLPUBLIC ProgressBar : public Control +{ + DECL_GET_IMPL( ProgressBar ); + DECL_CONSTRUCTORS( ProgressBar, Control, WB_BORDER ); +public: + void SetForegroundColor( css::util::Color color ); + void SetBackgroundColor( css::util::Color color ); + void SetValue( sal_Int32 i ); + void SetRange( sal_Int32 min, sal_Int32 max ); + sal_Int32 GetValue(); +}; + +// ----------------------------------------------------------------- +// layout container / helper wrappers +// ----------------------------------------------------------------- + +class TOOLKIT_DLLPUBLIC Container +{ +protected: + css::uno::Reference< css::awt::XLayoutContainer > mxContainer; + Container( rtl::OUString const& rName, sal_Int32 nBorder ); +public: + Container( Context const* context, char const* id ); + + void Add( Window *pWindow ); + void Add( Container *pContainer ); + + void Remove( Window *pWindow ); + void Remove( Container *pContainer ); + void Clear(); + // we can't really do a GetChildren() as they don't have a common class, + // besides we would need to keep track of children, uh + + void ShowAll( bool bVisible ); + void Show(); + void Hide(); + + css::uno::Reference< css::awt::XLayoutContainer > getImpl() + { return mxContainer; } +}; + +class TOOLKIT_DLLPUBLIC Table : public Container +{ +protected: + Table( sal_Int32 nBorder, sal_Int32 nColumns ); +public: + Table( Context const* context, char const* id ); + void Add( Window *pWindow, bool bXExpand, bool bYExpand, + sal_Int32 nXSpan=1, sal_Int32 nYSpan=1 ); + void Add( Container *pContainer, bool bXExpand, bool bYExpand, + sal_Int32 nXSpan=1, sal_Int32 nYSpan=1 ); + +private: + void setProps( css::uno::Reference< css::awt::XLayoutConstrains > xChild, + bool bXExpand, bool bYExpand, sal_Int32 nXSpan, sal_Int32 nYSpan ); +}; + +class TOOLKIT_DLLPUBLIC Box : public Container +{ +protected: + Box( rtl::OUString const& rName, sal_Int32 nBorder, bool bHomogeneous ); +public: + Box( Context const* context, char const* id ); + void Add( Window *pWindow, bool bExpand, bool bFill, sal_Int32 nPadding); + void Add( Container *pContainer, bool bExpand, bool bFill, sal_Int32 nPadding); + +private: + void setProps( css::uno::Reference< css::awt::XLayoutConstrains > xChild, + bool bXExpand, bool bYExpand, sal_Int32 nPadding ); +}; + +class TOOLKIT_DLLPUBLIC HBox : public Box +{ +public: + HBox( Context const* context, char const* id ); + HBox( sal_Int32 nBorder, bool bHomogeneous ); +}; +class TOOLKIT_DLLPUBLIC VBox : public Box +{ +public: + VBox( Context const* context, char const* id ); + VBox( sal_Int32 nBorder, bool bHomogeneous ); +}; + +class PluginImpl; +class TOOLKIT_DLLPUBLIC Plugin : public Control +{ + DECL_GET_IMPL( Plugin ); + //DECL_CONSTRUCTORS( Plugin, Control, 0 ); +public: + ::Control *mpPlugin; + Plugin( Context *context, char const* id, ::Control *plugin ); +}; + +class LocalizedStringImpl; +class TOOLKIT_DLLPUBLIC LocalizedString : public Window +{ + DECL_GET_IMPL( LocalizedString ); + +public: + LocalizedString( Context *context, char const* id ); + + rtl::OUString operator= (rtl::OUString const&); + rtl::OUString operator+= (sal_Unicode ); + rtl::OUString operator+= (rtl::OUString const&); + + operator rtl::OUString (); + operator rtl::OUString const& (); + operator String(); + String getString (); + rtl::OUString getOUString (); + String GetToken (USHORT i, sal_Char c); +}; + +class InPlugImpl; +class TOOLKIT_DLLPUBLIC InPlug : public Context, public Window +{ + DECL_GET_IMPL (InPlug); + +public: + InPlug ( Window *parent, char const* xml_file, char const* id, sal_uInt32 nId=0); + InPlug ( ::Window *parent, char const* xml_file, char const* id, sal_uInt32 nId=0); + + void ParentSet (Window *window); +}; + +} // end namespace layout + +#if ENABLE_LAYOUT +#define LAYOUT_NS layout:: +#define LAYOUT_DIALOG_PARENT\ + VCLXWindow::GetImplementation( uno::Reference <awt::XWindow> ( GetPeer(), uno::UNO_QUERY ) )->GetWindow() +#define LAYOUT_THIS_WINDOW( this ) this->GetWindow () +#else /* !ENABLE_LAYOUT */ +#define LAYOUT_NS +#define LAYOUT_DIALOG_PARENT this +#define LAYOUT_THIS_WINDOW( this ) this +#endif /* !ENABLE_LAYOUT */ + +#endif /* _LAYOUT_HXX */ |