summaryrefslogtreecommitdiff
path: root/svtools/inc/svtools/taskbar.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'svtools/inc/svtools/taskbar.hxx')
-rw-r--r--svtools/inc/svtools/taskbar.hxx461
1 files changed, 0 insertions, 461 deletions
diff --git a/svtools/inc/svtools/taskbar.hxx b/svtools/inc/svtools/taskbar.hxx
deleted file mode 100644
index c29fe770f7..0000000000
--- a/svtools/inc/svtools/taskbar.hxx
+++ /dev/null
@@ -1,461 +0,0 @@
-/* -*- 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 _TASKBAR_HXX
-#define _TASKBAR_HXX
-
-#include "svtools/svtdllapi.h"
-#include <tools/time.hxx>
-#include <vcl/timer.hxx>
-#include <vcl/toolbox.hxx>
-#include <vcl/status.hxx>
-
-class TaskBar;
-class TaskStatusFieldItem;
-class ImplTaskBarFloat;
-struct ImplTaskSBFldItem;
-
-struct ImplTaskItem;
-typedef ::std::vector< ImplTaskItem* > ImplTaskItemList;
-
-struct ImplTaskSBFldItem;
-typedef ::std::vector< ImplTaskSBFldItem* > ImplTaskSBItemList;
-
-// -----------------
-// - Dokumentation -
-// -----------------
-
-/*
-
-TaskToolBox
-===========
-
-StartUpdateTask()/UpdateTask()/EndUpdateTask()
-Diese muessen gerufen werden, wenn die Task upgedatet werden muessen.
-Dann muss StartUpdateTask() gerufen werden, dann UpdateTask() fuer alle
-Task's und danach EndUpdateTask() wo dann die TaskButtons entsprechend
-neu angeordnet werden.
-
-ActivateTask()
-Handler der gerufen wird, wenn ein Task aktiviert werden muss.
-
-ContextMenu()
-Dieser Handler wird gerufen, wenn ein ContextMenu angezeigt werden soll.
-Mit GetTaskMode() kann abgefragt werden, ob fuer einen Task oder ein
-Item.
-
-GetContextMenuPos()
-Liefert die Position zurueck, wo das Contextmenu angezeigt werden soll.
-
-
-TaskStatusBar
-=============
-
-InsertStatusField()/RemoveStatusField()
-Fuegt ein Statusfeld ein, wo die aktuelle Uhrzeit angezeigt wird. In
-dieses Feld koennen dann mit AddStatusFielItem(), ModifyStatusFielItem()
-und RemoveStatusFielItem() Status-Items eingefuegt werden. Bei diesen
-muss man ein Image angeben, welches dann angezeigt wird. Ausserdem kann
-man bei diesen noch Hilfe-Texte angeben oder sagen, ob sie blinken
-sollen und ein Notify-Object, worueber man informiert wird, wenn ein
-Kontextmenu angezeigt wird oder das Item angeklickt wird. Am
-TaskStatusBar kann auch ein Notify-Object gesetzt werden, wenn man
-benachrichtigt werden will, wenn die Uhrzeit oder die TaskStatusBar
-angeklickt wird. Wenn der Notify fuer die Uhrzeit kommt, ist die
-Id TASKSTATUSBAR_CLOCKID, wenn er fuer die TaskStatusBar kommt, ist
-die Id 0.
-
-
-TaskBar
-=======
-
-Erlaubte StyleBits
-------------------
-
-WB_BORDER - Border an der oberen Kante
-WB_SIZEABLE - Zwischen TaskToolBox und TaskStatusBar kann der Anwender
- die Groesse aendern.
-
-Wenn WB_SIZEABLE gesetzt ist, kann die Breite des StatusBars gesetzt und
-abgefragt werden. Dazu kann man SetStatusSize()/GetStatusSize() aufrufen.
-0 steht dabei fuer optimale Groesse, was auch der Default ist. Bei einem
-Doppelklick auf den Trenner kann der Anwender auch wieder die optimale
-Groesse einstellen.
-
-Wichtige Methoden
-------------------
-
-virtual TaskToolBox* TaskBar::CreateButtonBar();
-virtual TaskToolBox* TaskBar::CreateTaskToolBox();
-virtual TaskStatusBar* TaskBar::CreateTaskStatusBar();
-
-Diese Methoden muesste man ueberladen, wenn man eine eigene Klasse anlegen
-will.
-
-void TaskBar::ShowStatusText( const String& rText );
-void TaskBar::HideStatusText();
-
-Blendet den ButtonBar und die TaskBar ein bzw. aus um den Hilfetexte in der
-gesammten Zeile anzuzeigen.
-*/
-
-// -----------------
-// - TaskButtonBar -
-// -----------------
-
-class TaskButtonBar : public ToolBox
-{
- friend class TaskBar;
-
-private:
- TaskBar* mpNotifyTaskBar;
- void* mpDummy1;
- void* mpDummy2;
- void* mpDummy3;
- void* mpDummy4;
-
-public:
- TaskButtonBar( Window* pParent, WinBits nWinStyle = 0 );
- ~TaskButtonBar();
-
- virtual void RequestHelp( const HelpEvent& rHEvt );
-
- void InsertButton( sal_uInt16 nItemId,
- const Image& rImage, const String& rText,
- sal_uInt16 nPos = TOOLBOX_APPEND )
- { InsertItem( nItemId, rImage, rText, TIB_LEFT | TIB_AUTOSIZE, nPos ); }
- void RemoveButton( sal_uInt16 nItemId )
- { RemoveItem( nItemId ); }
-};
-
-// ---------------
-// - TaskToolBox -
-// ---------------
-
-class SVT_DLLPUBLIC TaskToolBox : public ToolBox
-{
- friend class TaskBar;
-
-private:
- ImplTaskItemList* mpItemList;
- TaskBar* mpNotifyTaskBar;
- Point maContextMenuPos;
- size_t mnOldItemCount;
- long mnMaxTextWidth;
- long mnDummy1;
- size_t mnUpdatePos;
- size_t mnUpdateNewPos;
- size_t mnActiveItemId;
- size_t mnNewActivePos;
- sal_uInt16 mnSmallItem;
- sal_uInt16 mnDummy2;
- sal_Bool mbMinActivate;
- sal_Bool mbDummy1;
- Link maActivateTaskHdl;
- Link maContextMenuHdl;
-
-#ifdef _TASKBAR_CXX
- SVT_DLLPRIVATE void ImplFormatTaskToolBox();
-#endif
-
- // Forbidden and not implemented.
- TaskToolBox (const TaskToolBox &);
- TaskToolBox & operator= (const TaskToolBox &);
-
-public:
- TaskToolBox( Window* pParent, WinBits nWinStyle = 0 );
- ~TaskToolBox();
-
- void ActivateTaskItem( sal_uInt16 nItemId,
- sal_Bool bMinActivate = sal_False );
-
- virtual void ActivateTask();
- virtual void ContextMenu();
-
- virtual void Select();
-
- virtual void MouseButtonDown( const MouseEvent& rMEvt );
- virtual void Resize();
- virtual void Command( const CommandEvent& rCEvt );
- virtual void RequestHelp( const HelpEvent& rHEvt );
-
- void StartUpdateTask();
- void UpdateTask( const Image& rImage, const String& rText,
- sal_Bool bActive = sal_False );
- void EndUpdateTask();
-
- const Point& GetContextMenuPos() const { return maContextMenuPos; }
- sal_Bool IsMinActivate() const { return mbMinActivate; }
-
- void SetActivateTaskHdl( const Link& rLink ) { maActivateTaskHdl = rLink; }
- const Link& GetActivateTaskHdl() const { return maActivateTaskHdl; }
- void SetContextMenuHdl( const Link& rLink ) { maContextMenuHdl = rLink; }
- const Link& GetContextMenuHdl() const { return maContextMenuHdl; }
-};
-
-// ---------------------
-// - ITaskStatusNotify -
-// ---------------------
-
-class ITaskStatusNotify
-{
-public:
- virtual sal_Bool MouseButtonDown( sal_uInt16 nItemd, const MouseEvent& rMEvt );
- virtual sal_Bool MouseButtonUp( sal_uInt16 nItemd, const MouseEvent& rMEvt );
- virtual sal_Bool MouseMove( sal_uInt16 nItemd, const MouseEvent& rMEvt );
- virtual sal_Bool Command( sal_uInt16 nItemd, const CommandEvent& rCEvt );
- virtual sal_Bool UpdateHelp( sal_uInt16 nItemd );
-};
-
-// -----------------------
-// - TaskStatusFieldItem -
-// -----------------------
-
-#define TASKSTATUSFIELDITEM_FLASH ((sal_uInt16)0x0001)
-
-class TaskStatusFieldItem
-{
-private:
- ITaskStatusNotify* mpNotify;
- Image maImage;
- XubString maQuickHelpText;
- XubString maHelpText;
- rtl::OString maHelpId;
- sal_uInt16 mnFlags;
-
-public:
- TaskStatusFieldItem();
- TaskStatusFieldItem( const TaskStatusFieldItem& rItem );
- ~TaskStatusFieldItem();
-
- void SetNotifyObject( ITaskStatusNotify* pNotify ) { mpNotify = pNotify; }
- ITaskStatusNotify* GetNotifyObject() const { return mpNotify; }
- void SetImage( const Image& rImage ) { maImage = rImage; }
- const Image& GetImage() const { return maImage; }
- void SetQuickHelpText( const XubString& rStr ) { maQuickHelpText = rStr; }
- const XubString& GetQuickHelpText() const { return maQuickHelpText; }
- void SetHelpText( const XubString& rStr ) { maHelpText = rStr; }
- const XubString& GetHelpText() const { return maHelpText; }
- void SetHelpId( const rtl::OString& rHelpId ) { maHelpId = rHelpId; }
- const rtl::OString& GetHelpId() const { return maHelpId; }
- void SetFlags( sal_uInt16 nFlags ) { mnFlags = nFlags; }
- sal_uInt16 GetFlags() const { return mnFlags; }
-
- const TaskStatusFieldItem& operator=( const TaskStatusFieldItem& rItem );
-};
-
-// -----------------
-// - TaskStatusBar -
-// -----------------
-
-#define TASKSTATUSBAR_STATUSFIELDID ((sal_uInt16)61000)
-
-#define TASKSTATUSBAR_CLOCKID ((sal_uInt16)61000)
-#define TASKSTATUSFIELD_CLOCK ((sal_uInt16)0x0001)
-
-class SVT_DLLPUBLIC TaskStatusBar : public StatusBar
-{
- friend class TaskBar;
-
-private:
- ImplTaskSBItemList* mpFieldItemList;
- TaskBar* mpNotifyTaskBar;
- ITaskStatusNotify* mpNotify;
- Time maTime;
- XubString maTimeText;
- AutoTimer maTimer;
- long mnClockWidth;
- long mnItemWidth;
- long mnFieldWidth;
- sal_uInt16 mnFieldFlags;
- sal_uInt16 mnDummy1;
- sal_Bool mbFlashItems;
- sal_Bool mbOutInterval;
- sal_Bool mbDummy1;
- sal_Bool mbDummy2;
-
-#ifdef _TASKBAR_CXX
- SVT_DLLPRIVATE ImplTaskSBFldItem* ImplGetFieldItem( sal_uInt16 nItemId ) const;
- SVT_DLLPRIVATE ImplTaskSBFldItem* ImplGetFieldItem( const Point& rPos, sal_Bool& rFieldRect ) const;
- SVT_DLLPRIVATE sal_Bool ImplUpdateClock();
- SVT_DLLPRIVATE sal_Bool ImplUpdateFlashItems();
- SVT_DLLPRIVATE void ImplUpdateField( sal_Bool bItems );
- DECL_DLLPRIVATE_LINK( ImplTimerHdl, Timer* );
-#endif
-
-public:
- TaskStatusBar( Window* pParent, WinBits nWinStyle = WB_LEFT );
- ~TaskStatusBar();
-
- virtual void MouseButtonDown( const MouseEvent& rMEvt );
- virtual void MouseButtonUp( const MouseEvent& rMEvt );
- virtual void MouseMove( const MouseEvent& rMEvt );
- virtual void Command( const CommandEvent& rCEvt );
- virtual void RequestHelp( const HelpEvent& rHEvt );
- virtual void UserDraw( const UserDrawEvent& rUDEvt );
-
- void InsertStatusField( long nOffset = STATUSBAR_OFFSET,
- sal_uInt16 nPos = STATUSBAR_APPEND,
- sal_uInt16 nFlags = TASKSTATUSFIELD_CLOCK );
- void RemoveStatusField()
- { maTimer.Stop(); RemoveItem( TASKSTATUSBAR_STATUSFIELDID ); }
- sal_uInt16 GetFieldFlags() const { return mnFieldFlags; }
- void SetNotifyObject( ITaskStatusNotify* pNotify ) { mpNotify = pNotify; }
- ITaskStatusNotify* GetNotifyObject() const { return mpNotify; }
-};
-
-// -----------
-// - TaskBar -
-// -----------
-
-class SVT_DLLPUBLIC TaskBar : public Window
-{
-private:
- ImplTaskBarFloat* mpAutoHideBar;
- TaskButtonBar* mpButtonBar;
- TaskToolBox* mpTaskToolBox;
- TaskStatusBar* mpStatusBar;
- void* mpDummy1;
- void* mpDummy2;
- void* mpDummy3;
- void* mpDummy4;
- String maOldText;
- long mnStatusWidth;
- long mnMouseOff;
- long mnOldStatusWidth;
- long mnDummy1;
- long mnDummy2;
- long mnDummy3;
- long mnDummy4;
- WinBits mnWinBits;
- sal_uInt16 mnLines;
- sal_Bool mbStatusText;
- sal_Bool mbShowItems;
- sal_Bool mbAutoHide;
- sal_Bool mbAlignDummy1;
- sal_Bool mbDummy1;
- sal_Bool mbDummy2;
- sal_Bool mbDummy3;
- sal_Bool mbDummy4;
- Link maTaskResizeHdl;
-
-#ifdef _TASKBAR_CXX
- SVT_DLLPRIVATE void ImplInitSettings();
- SVT_DLLPRIVATE void ImplNewHeight( long nNewHeight );
-#endif
-
-public:
- TaskBar( Window* pParent, WinBits nWinStyle = WB_BORDER | WB_SIZEABLE );
- ~TaskBar();
-
- virtual void TaskResize();
-
- virtual TaskButtonBar* CreateButtonBar();
- virtual TaskToolBox* CreateTaskToolBox();
- virtual TaskStatusBar* CreateTaskStatusBar();
-
- virtual void MouseMove( const MouseEvent& rMEvt );
- virtual void MouseButtonDown( const MouseEvent& rMEvt );
- virtual void Tracking( const TrackingEvent& rMEvt );
- virtual void Paint( const Rectangle& rRect );
- virtual void Resize();
- virtual void StateChanged( StateChangedType nType );
- virtual void DataChanged( const DataChangedEvent& rDCEvt );
-
- void Format();
-
- sal_uInt16 GetLines() const { return mnLines; }
- sal_Bool IsAutoHideEnabled() const { return mbAutoHide; }
-
- void SetStatusSize( long nNewSize )
- { mnStatusWidth=nNewSize; Resize(); }
- long GetStatusSize() const { return mnStatusWidth; }
-
- Size CalcWindowSizePixel() const;
-
- TaskButtonBar* GetButtonBar() const;
- TaskToolBox* GetTaskToolBox() const;
- TaskStatusBar* GetStatusBar() const;
-
- void SetTaskResizeHdl( const Link& rLink ) { maTaskResizeHdl = rLink; }
- const Link& GetTaskResizeHdl() const { return maTaskResizeHdl; }
-};
-
-// -----------------------
-// - WindowArrange-Types -
-// -----------------------
-
-#define WINDOWARRANGE_TILE 1
-#define WINDOWARRANGE_HORZ 2
-#define WINDOWARRANGE_VERT 3
-#define WINDOWARRANGE_CASCADE 4
-
-class ImplWindowArrangeList;
-
-// -----------------------
-// - class WindowArrange -
-// -----------------------
-
-typedef ::std::vector< Window* > WindowList_impl;
-
-class SVT_DLLPUBLIC WindowArrange
-{
-private:
- WindowList_impl maWinList;
-
-#ifdef _TASKBAR_CXX
- SVT_DLLPRIVATE void ImplTile( const Rectangle& rRect );
- SVT_DLLPRIVATE void ImplHorz( const Rectangle& rRect );
- SVT_DLLPRIVATE void ImplVert( const Rectangle& rRect );
- SVT_DLLPRIVATE void ImplCascade( const Rectangle& rRect );
-#endif
-
-public:
- WindowArrange();
- ~WindowArrange();
-
- void AddWindow( Window* pWindow, size_t nPos = size_t(-1) )
- {
- if ( nPos < maWinList.size() ) {
- maWinList.insert( maWinList.begin() + nPos, pWindow );
- } else {
- maWinList.push_back( pWindow );
- }
- }
-
- void RemoveAllWindows()
- {
- maWinList.clear();
- }
-
- void Arrange( sal_uInt16 nType, const Rectangle& rRect );
-};
-
-#endif // _TASKBAR_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */