diff options
Diffstat (limited to 'svx/inc/svx/simptabl.hxx')
-rw-r--r-- | svx/inc/svx/simptabl.hxx | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/svx/inc/svx/simptabl.hxx b/svx/inc/svx/simptabl.hxx new file mode 100644 index 000000000000..98020a97fcc4 --- /dev/null +++ b/svx/inc/svx/simptabl.hxx @@ -0,0 +1,176 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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 _SVX_SIMPTABL_HXX +#define _SVX_SIMPTABL_HXX + +#include <vcl/morebtn.hxx> + +#include <vcl/combobox.hxx> + +#include <vcl/group.hxx> +#include <svtools/headbar.hxx> +#include <svtools/svtabbx.hxx> +#include <vcl/lstbox.hxx> +#include "svx/svxdllapi.h" + +class SvxSimpleTable; +class SvxSimpTblContainer : public Control +{ +private: + SvxSimpleTable* m_pTable; + +protected: + virtual long PreNotify( NotifyEvent& rNEvt ); + +public: + SvxSimpTblContainer( Window* pParent, WinBits nWinStyle = 0 ); + SvxSimpTblContainer( Window* pParent, const ResId& rResId ); + + inline void SetTable( SvxSimpleTable* _pTable ) { m_pTable = _pTable; } +}; + +class SVX_DLLPUBLIC SvxSimpleTable : public SvHeaderTabListBox +{ + using Window::SetPosSizePixel; +private: + + Link aHeaderBarClickLink; + Link aHeaderBarDblClickLink; + Link aCommandLink; + CommandEvent aCEvt; + SvxSimpTblContainer aPrivContainer; + HeaderBar aHeaderBar; + long nOldPos; + sal_uInt16 nHeaderItemId; + sal_Bool bResizeFlag; + sal_Bool bPaintFlag; + sal_Bool bSortDirection; + sal_uInt16 nSortCol; + Window* pMyParentWin; + + DECL_LINK( StartDragHdl, HeaderBar* ); + DECL_LINK( DragHdl, HeaderBar* ); + DECL_LINK( EndDragHdl, HeaderBar* ); + DECL_LINK( HeaderBarClick, HeaderBar* ); + DECL_LINK( HeaderBarDblClick, HeaderBar* ); + DECL_LINK( CompareHdl, SvSortData* ); + +protected: + + virtual void NotifyScrolled(); + + virtual void SetTabs(); + virtual void Paint( const Rectangle& rRect ); + virtual void UpdateViewSize(); + + virtual void HBarClick(); + virtual void HBarDblClick(); + virtual void HBarStartDrag(); + virtual void HBarDrag(); + virtual void HBarEndDrag(); + + virtual void Command( const CommandEvent& rCEvt ); + + virtual StringCompare ColCompare(SvLBoxEntry*,SvLBoxEntry*); + HeaderBar* GetTheHeaderBar(){return &aHeaderBar;} + +public: + + SvxSimpleTable( Window* pParent,WinBits nBits =WB_BORDER ); + SvxSimpleTable( Window* pParent,const ResId& ); + ~SvxSimpleTable(); + + void InsertHeaderEntry(const XubString& rText, + sal_uInt16 nCol=HEADERBAR_APPEND, + HeaderBarItemBits nBits = HIB_STDSTYLE); + + void SetTabs( long* pTabs, MapUnit = MAP_APPFONT ); + + void ClearAll(); + void ClearHeader(); + + // to be removed all calls of the related methods are redirected to *Table() methods + using Window::Show; + using Window::Hide; + using Window::Enable; + using Window::Disable; + using Window::ToTop; + + void Show(); + void Hide(); + void Enable(); + void Disable(); + void ToTop(); + + // remove until this line + + void ShowTable(); + void HideTable(); + sal_Bool IsVisible() const; + + void EnableTable(); + void DisableTable(); + sal_Bool IsEnabled() const; + + void TableToTop(); + void SetPosPixel( const Point& rNewPos ); + Point GetPosPixel() const ; + virtual void SetPosSizePixel( const Point& rNewPos, Size& rNewSize ); + void SetPosSize( const Point& rNewPos, const Size& rNewSize ); + void SetSizePixel(const Size& rNewSize ); + void SetOutputSizePixel(const Size& rNewSize ); + + Size GetSizePixel() const; + Size GetOutputSizePixel() const; + + sal_uInt16 GetSelectedCol(); + void SortByCol(sal_uInt16,sal_Bool bDir=sal_True); + sal_Bool GetSortDirection(){ return bSortDirection;} + sal_uInt16 GetSortedCol(){ return nSortCol;} + SvLBoxItem* GetEntryAtPos( SvLBoxEntry* pEntry, sal_uInt16 nPos ) const; + + CommandEvent GetCommandEvent()const; + inline sal_Bool IsFocusOnCellEnabled() const { return IsCellFocusEnabled(); } + + void SetCommandHdl( const Link& rLink ) { aCommandLink = rLink; } + const Link& GetCommandHdl() const { return aCommandLink; } + + void SetHeaderBarClickHdl( const Link& rLink ) { aHeaderBarClickLink = rLink; } + const Link& GetHeaderBarClickHdl() const { return aHeaderBarClickLink; } + + void SetHeaderBarDblClickHdl( const Link& rLink ) { aHeaderBarDblClickLink = rLink; } + const Link& GetHeaderBarDblClickHdl() const { return aHeaderBarDblClickLink; } + + void SetHeaderBarHelpId(const rtl::OString& rHelpId) {aHeaderBar.SetHelpId(rHelpId);} +}; + + +#endif // _SVX_SIMPTABL_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |