summaryrefslogtreecommitdiff
path: root/vcl/inc/vcl/status.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/inc/vcl/status.hxx')
-rw-r--r--vcl/inc/vcl/status.hxx228
1 files changed, 228 insertions, 0 deletions
diff --git a/vcl/inc/vcl/status.hxx b/vcl/inc/vcl/status.hxx
new file mode 100644
index 000000000000..e5ff3c5ee2da
--- /dev/null
+++ b/vcl/inc/vcl/status.hxx
@@ -0,0 +1,228 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: status.hxx,v $
+ * $Revision: 1.4 $
+ *
+ * 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 _SV_STATUS_HXX
+#define _SV_STATUS_HXX
+
+#include <vcl/sv.h>
+#include <vcl/dllapi.h>
+#include <vcl/window.hxx>
+
+class ImplStatusItemList;
+
+// --------------------
+// - Progress-Ausgabe -
+// --------------------
+
+void VCL_DLLPUBLIC DrawProgress( Window* pWindow, const Point& rPos,
+ long nOffset, long nPrgsWidth, long nPrgsHeight,
+ USHORT nPercent1, USHORT nPercent2, USHORT nPercentCount,
+ const Rectangle& rFramePosSize
+ );
+
+// ---------------------
+// - StatusBarItemBits -
+// ---------------------
+
+typedef USHORT StatusBarItemBits;
+
+// ----------------------------
+// - Bits fuer StatusBarItems -
+// ----------------------------
+
+#define SIB_LEFT ((StatusBarItemBits)0x0001)
+#define SIB_CENTER ((StatusBarItemBits)0x0002)
+#define SIB_RIGHT ((StatusBarItemBits)0x0004)
+#define SIB_IN ((StatusBarItemBits)0x0008)
+#define SIB_OUT ((StatusBarItemBits)0x0010)
+#define SIB_FLAT ((StatusBarItemBits)0x0020)
+#define SIB_AUTOSIZE ((StatusBarItemBits)0x0040)
+#define SIB_USERDRAW ((StatusBarItemBits)0x0080)
+
+// -------------------
+// - StatusBar-Types -
+// -------------------
+
+#define STATUSBAR_APPEND ((USHORT)0xFFFF)
+#define STATUSBAR_ITEM_NOTFOUND ((USHORT)0xFFFF)
+#define STATUSBAR_OFFSET ((long)5)
+
+// -------------
+// - StatusBar -
+// -------------
+
+class VCL_DLLPUBLIC StatusBar : public Window
+{
+ class ImplData;
+private:
+ ImplStatusItemList* mpItemList;
+ ImplData* mpImplData;
+ XubString maPrgsTxt;
+ Point maPrgsTxtPos;
+ Rectangle maPrgsFrameRect;
+ long mnPrgsSize;
+ long mnItemsWidth;
+ long mnDX;
+ long mnDY;
+ long mnCalcHeight;
+ long mnTextY;
+ long mnItemY;
+ USHORT mnCurItemId;
+ USHORT mnPercent;
+ USHORT mnPercentCount;
+ BOOL mbVisibleItems;
+ BOOL mbFormat;
+ BOOL mbProgressMode;
+ BOOL mbInUserDraw;
+ BOOL mbBottomBorder;
+ Link maClickHdl;
+ Link maDoubleClickHdl;
+
+ using Window::ImplInit;
+ SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle );
+ SAL_DLLPRIVATE void ImplInitSettings( BOOL bFont, BOOL bForeground, BOOL bBackground );
+ SAL_DLLPRIVATE void ImplFormat();
+ SAL_DLLPRIVATE BOOL ImplIsItemUpdate();
+// #if 0 // _SOLAR__PRIVATE
+ using OutputDevice::ImplDrawText;
+// #endif
+ SAL_DLLPRIVATE void ImplDrawText( BOOL bOffScreen, long nOldTextWidth );
+ SAL_DLLPRIVATE void ImplDrawItem( BOOL bOffScreen, USHORT nPos, BOOL bDrawText, BOOL bDrawFrame );
+ SAL_DLLPRIVATE void ImplDrawProgress( BOOL bPaint,
+ USHORT nOldPerc, USHORT nNewPerc );
+ SAL_DLLPRIVATE void ImplCalcProgressRect();
+ SAL_DLLPRIVATE Rectangle ImplGetItemRectPos( USHORT nPos ) const;
+ SAL_DLLPRIVATE void ImplCalcBorder();
+
+public:
+ StatusBar( Window* pParent,
+ WinBits nWinStyle = WB_BORDER | WB_RIGHT );
+ StatusBar( Window* pParent, const ResId& rResId );
+ ~StatusBar();
+
+ virtual void MouseButtonDown( const MouseEvent& rMEvt );
+ virtual void Paint( const Rectangle& rRect );
+ virtual void Move();
+ virtual void Resize();
+ virtual void RequestHelp( const HelpEvent& rHEvt );
+ virtual void StateChanged( StateChangedType nType );
+ virtual void DataChanged( const DataChangedEvent& rDCEvt );
+
+ virtual void Click();
+ virtual void DoubleClick();
+ virtual void UserDraw( const UserDrawEvent& rUDEvt );
+
+ void InsertItem( USHORT nItemId, ULONG nWidth,
+ StatusBarItemBits nBits = SIB_CENTER | SIB_IN,
+ long nOffset = STATUSBAR_OFFSET,
+ USHORT nPos = STATUSBAR_APPEND );
+ void RemoveItem( USHORT nItemId );
+
+ void ShowItem( USHORT nItemId );
+ void HideItem( USHORT nItemId );
+ BOOL IsItemVisible( USHORT nItemId ) const;
+
+ void ShowItems();
+ void HideItems();
+ BOOL AreItemsVisible() const { return mbVisibleItems; }
+
+ void CopyItems( const StatusBar& rStatusBar );
+ void Clear();
+
+ USHORT GetItemCount() const;
+ USHORT GetItemId( USHORT nPos ) const;
+ USHORT GetItemId( const Point& rPos ) const;
+ USHORT GetItemPos( USHORT nItemId ) const;
+ Rectangle GetItemRect( USHORT nItemId ) const;
+ Point GetItemTextPos( USHORT nItemId ) const;
+ USHORT GetCurItemId() const { return mnCurItemId; }
+
+ ULONG GetItemWidth( USHORT nItemId ) const;
+ StatusBarItemBits GetItemBits( USHORT nItemId ) const;
+ long GetItemOffset( USHORT nItemId ) const;
+
+ void SetItemText( USHORT nItemId, const XubString& rText );
+ const XubString& GetItemText( USHORT nItemId ) const;
+
+ void SetItemData( USHORT nItemId, void* pNewData );
+ void* GetItemData( USHORT nItemId ) const;
+
+ void SetItemCommand( USHORT nItemId, const XubString& rCommand );
+ const XubString& GetItemCommand( USHORT nItemId );
+
+ void SetHelpText( USHORT nItemId, const XubString& rText );
+ const XubString& GetHelpText( USHORT nItemId ) const;
+
+ using Window::SetQuickHelpText;
+ void SetQuickHelpText( USHORT nItemId, const XubString& rText );
+ using Window::GetQuickHelpText;
+ const XubString& GetQuickHelpText( USHORT nItemId ) const;
+
+ void SetHelpId( USHORT nItemId, ULONG nHelpId );
+ ULONG GetHelpId( USHORT nItemId ) const;
+
+ void SetBottomBorder( BOOL bBottomBorder = TRUE );
+ BOOL IsBottomBorder() const { return mbBottomBorder; }
+
+ void SetTopBorder( BOOL bTopBorder = TRUE );
+ BOOL IsTopBorder() const;
+
+ void StartProgressMode( const XubString& rText );
+ void SetProgressValue( USHORT nPercent );
+ void EndProgressMode();
+ BOOL IsProgressMode() const { return mbProgressMode; }
+ void ResetProgressMode();
+
+ void SetText( const XubString& rText );
+
+ void SetHelpText( const XubString& rText )
+ { Window::SetHelpText( rText ); }
+ const XubString& GetHelpText() const
+ { return Window::GetHelpText(); }
+
+ void SetHelpId( ULONG nId )
+ { Window::SetHelpId( nId ); }
+ ULONG GetHelpId() const
+ { return Window::GetHelpId(); }
+
+ Size CalcWindowSizePixel() const;
+
+ void SetClickHdl( const Link& rLink ) { maClickHdl = rLink; }
+ const Link& GetClickHdl() const { return maClickHdl; }
+ void SetDoubleClickHdl( const Link& rLink ) { maDoubleClickHdl = rLink; }
+ const Link& GetDoubleClickHdl() const { return maDoubleClickHdl; }
+
+ using Window::SetAccessibleName;
+ void SetAccessibleName( USHORT nItemId, const XubString& rName );
+ using Window::GetAccessibleName;
+ const XubString& GetAccessibleName( USHORT nItemId ) const;
+};
+
+#endif // _SV_STATUS_HXX