summaryrefslogtreecommitdiff
path: root/svtools/source/control/taskbar.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svtools/source/control/taskbar.cxx')
-rw-r--r--svtools/source/control/taskbar.cxx527
1 files changed, 0 insertions, 527 deletions
diff --git a/svtools/source/control/taskbar.cxx b/svtools/source/control/taskbar.cxx
deleted file mode 100644
index 39024f4aa5..0000000000
--- a/svtools/source/control/taskbar.cxx
+++ /dev/null
@@ -1,527 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#define _TASKBAR_CXX
-
-#include <tools/debug.hxx>
-#include <vcl/floatwin.hxx>
-
-#include <svtools/taskbar.hxx>
-
-// =======================================================================
-
-class ImplTaskBarFloat : public FloatingWindow
-{
-public:
- TaskBar* mpTaskBar;
-
-public:
- ImplTaskBarFloat( TaskBar* pTaskBar );
-};
-
-// -----------------------------------------------------------------------
-
-ImplTaskBarFloat::ImplTaskBarFloat( TaskBar* pTaskBar ) :
- FloatingWindow( pTaskBar, 0 )
-{
- mpTaskBar = pTaskBar;
-}
-
-// =======================================================================
-
-#define TASKBAR_BORDER 2
-#define TASKBAR_OFFSIZE 3
-#define TASKBAR_OFFX 2
-#define TASKBAR_OFFY 1
-#define TASKBAR_BUTTONOFF 5
-#define TASKBAR_AUTOHIDE_HEIGHT 2
-
-// =======================================================================
-
-TaskBar::TaskBar( Window* pParent, WinBits nWinStyle ) :
- Window( pParent, WB_3DLOOK )
-{
- mpButtonBar = NULL;
- mpTaskToolBox = NULL;
- mpStatusBar = NULL;
- mnStatusWidth = 0;
- mnOldStatusWidth = 0;
- mnLines = 1;
- mnWinBits = nWinStyle;
- mbStatusText = sal_False;
- mbShowItems = sal_False;
- mbAutoHide = sal_False;
-
- ImplInitSettings();
-}
-
-// -----------------------------------------------------------------------
-
-TaskBar::~TaskBar()
-{
- if ( mpButtonBar )
- delete mpButtonBar;
- if ( mpTaskToolBox )
- delete mpTaskToolBox;
- if ( mpStatusBar )
- delete mpStatusBar;
-}
-
-// -----------------------------------------------------------------------
-
-void TaskBar::ImplInitSettings()
-{
- const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
-
- Color aColor;
- if ( IsControlBackground() )
- aColor = GetControlBackground();
- else if ( Window::GetStyle() & WB_3DLOOK )
- aColor = rStyleSettings.GetFaceColor();
- else
- aColor = rStyleSettings.GetWindowColor();
- SetBackground( aColor );
-}
-
-// -----------------------------------------------------------------------
-
-void TaskBar::ImplNewHeight( long nNewHeight )
-{
- long nOldHeight = GetSizePixel().Height();
- if ( nNewHeight != nOldHeight )
- {
- long nY = GetPosPixel().Y()-(nNewHeight-nOldHeight);
- SetPosSizePixel( 0, nY, 0, nNewHeight,
- WINDOW_POSSIZE_Y | WINDOW_POSSIZE_HEIGHT );
- TaskResize();
- }
-}
-
-// -----------------------------------------------------------------------
-
-void TaskBar::TaskResize()
-{
- maTaskResizeHdl.Call( this );
-}
-
-// -----------------------------------------------------------------------
-
-TaskButtonBar* TaskBar::CreateButtonBar()
-{
- return new TaskButtonBar( this );
-}
-
-// -----------------------------------------------------------------------
-
-TaskToolBox* TaskBar::CreateTaskToolBox()
-{
- return new TaskToolBox( this );
-}
-
-// -----------------------------------------------------------------------
-
-TaskStatusBar* TaskBar::CreateTaskStatusBar()
-{
- return new TaskStatusBar( this );
-}
-
-// -----------------------------------------------------------------------
-
-void TaskBar::MouseMove( const MouseEvent& rMEvt )
-{
- if ( mnWinBits & WB_SIZEABLE )
- {
- TaskToolBox* pTempTaskToolBox = GetTaskToolBox();
- TaskStatusBar* pTempStatusBar = GetStatusBar();
-
- if ( pTempTaskToolBox && pTempStatusBar )
- {
- long nStatusX = pTempStatusBar->GetPosPixel().X()-TASKBAR_OFFSIZE-2;
- long nMouseX = rMEvt.GetPosPixel().X();
- PointerStyle ePtrStyle;
- if ( (nMouseX >= nStatusX-1) && (nMouseX <= nStatusX+3) )
- ePtrStyle = POINTER_HSIZEBAR;
- else
- ePtrStyle = POINTER_ARROW;
- Pointer aPtr( ePtrStyle );
- SetPointer( aPtr );
- }
- }
-}
-
-// -----------------------------------------------------------------------
-
-void TaskBar::MouseButtonDown( const MouseEvent& rMEvt )
-{
- if ( rMEvt.IsLeft() && (mnWinBits & WB_SIZEABLE) )
- {
- TaskToolBox* pTempTaskToolBox = GetTaskToolBox();
- TaskStatusBar* pTempStatusBar = GetStatusBar();
-
- if ( pTempTaskToolBox && pTempStatusBar )
- {
- long nStatusX = pTempStatusBar->GetPosPixel().X()-TASKBAR_OFFSIZE-2;
- long nMouseX = rMEvt.GetPosPixel().X();
- if ( (nMouseX >= nStatusX-1) && (nMouseX <= nStatusX+3) )
- {
- if ( rMEvt.GetClicks() == 2 )
- {
- if ( mnStatusWidth )
- {
- mnStatusWidth = 0;
- Resize();
- }
- }
- else
- {
- StartTracking();
- mnOldStatusWidth = mnStatusWidth;
- mnMouseOff = nMouseX-nStatusX;
- }
- }
- }
- }
-}
-
-// -----------------------------------------------------------------------
-
-void TaskBar::Tracking( const TrackingEvent& rTEvt )
-{
- if ( rTEvt.IsTrackingEnded() )
- {
- if ( rTEvt.IsTrackingCanceled() )
- {
- mnStatusWidth = mnOldStatusWidth;
- Resize();
- Update();
- }
- }
- else
- {
- Size aSize = GetOutputSizePixel();
-
- long nMouseX = rTEvt.GetMouseEvent().GetPosPixel().X()-mnMouseOff;
- if ( nMouseX < 0 )
- nMouseX = 0;
- long nMaxX = aSize.Width()-TASKBAR_OFFX-TASKBAR_OFFSIZE-1;
- if ( nMouseX > nMaxX )
- nMouseX = nMaxX;
- mnStatusWidth = aSize.Width()-nMouseX-TASKBAR_OFFX-TASKBAR_OFFSIZE;
- Resize();
- Update();
- }
-}
-
-// -----------------------------------------------------------------------
-
-void TaskBar::Paint( const Rectangle& rRect )
-{
- if ( mnWinBits & (WB_BORDER | WB_SIZEABLE) )
- {
- const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
- Size aSize = GetOutputSizePixel();
- long nY = 0;
-
- if ( mnWinBits & WB_BORDER )
- {
- SetLineColor( rStyleSettings.GetShadowColor() );
- DrawLine( Point( 0, 0 ), Point( aSize.Width()-1, 0 ) );
- SetLineColor( rStyleSettings.GetLightColor() );
- DrawLine( Point( 0, 1 ), Point( aSize.Width()-1, 1 ) );
- nY += 2;
- }
-
- if ( (mnWinBits & WB_SIZEABLE) )
- {
- //TaskButtonBar* pTempButtonBar = GetButtonBar();
- TaskToolBox* pTempTaskToolBox = GetTaskToolBox();
- TaskStatusBar* pTempStatusBar = GetStatusBar();
-
- if ( pTempTaskToolBox && pTempStatusBar )
- {
- long nStatusX = pTempStatusBar->GetPosPixel().X()-TASKBAR_OFFSIZE-2;
- if ( nStatusX > 0 )
- {
- SetLineColor( rStyleSettings.GetShadowColor() );
- DrawLine( Point( nStatusX, nY ), Point( nStatusX, aSize.Height()-1 ) );
- nStatusX++;
- SetLineColor( rStyleSettings.GetLightColor() );
- DrawLine( Point( nStatusX, nY ), Point( nStatusX, aSize.Height()-1 ) );
- }
- }
- }
- }
-
- Window::Paint( rRect );
-}
-
-// -----------------------------------------------------------------------
-
-void TaskBar::Resize()
-{
- if ( !IsReallyShown() )
- return;
-
- TaskButtonBar* pTempButtonBar = GetButtonBar();
- TaskToolBox* pTempTaskToolBox = GetTaskToolBox();
- TaskStatusBar* pTempStatusBar = GetStatusBar();
- Point aToolPos( TASKBAR_OFFX, 0 );
- Size aSize = GetOutputSizePixel();
- Size aStatusSize;
- Size aToolSize( aSize.Width()-(TASKBAR_OFFX*2), 0 );
- long nOldStatusX = -1;
- long nNewStatusX = -1;
- long nTaskHeight = aSize.Height() - (TASKBAR_OFFY*2);
-
- if ( mnWinBits & WB_BORDER )
- {
- nTaskHeight -= TASKBAR_BORDER;
- aToolPos.Y() += TASKBAR_BORDER;
- }
-
- if ( pTempButtonBar )
- {
- sal_uInt16 i = 0;
- sal_Bool bVisibleItems = sal_False;
- while ( i < pTempButtonBar->GetItemCount() )
- {
- if ( pTempButtonBar->IsItemVisible( pTempButtonBar->GetItemId( i ) ) )
- {
- bVisibleItems = sal_True;
- break;
- }
- i++;
- }
- if ( mbStatusText || !bVisibleItems )
- pTempButtonBar->Hide();
- else
- {
- Size aButtonBarSize = pTempButtonBar->CalcWindowSizePixel();
- if ( pTempButtonBar->GetItemCount() )
- nTaskHeight = aButtonBarSize.Height();
- else
- aButtonBarSize.Height() = nTaskHeight;
- Point aTempPos = aToolPos;
- aTempPos.Y() += (aSize.Height()-aButtonBarSize.Height()-aTempPos.Y())/2;
- pTempButtonBar->SetPosSizePixel( aTempPos, aButtonBarSize );
- pTempButtonBar->Show();
- aToolPos.X() += aButtonBarSize.Width()+TASKBAR_BUTTONOFF;
- }
- }
-
- if ( pTempStatusBar )
- {
- aStatusSize = pTempStatusBar->CalcWindowSizePixel();
- if ( mnStatusWidth )
- aStatusSize.Width() = mnStatusWidth;
- if ( !pTempTaskToolBox || mbStatusText )
- aStatusSize.Width() = aSize.Width();
- long nMaxHeight = aSize.Height()-(TASKBAR_OFFY*2);
- if ( mnWinBits & WB_BORDER )
- nMaxHeight -= TASKBAR_BORDER;
- if ( nMaxHeight+2 > aStatusSize.Height() )
- aStatusSize.Height() = nMaxHeight;
- Point aPos( aSize.Width()-aStatusSize.Width(), 0 );
- if ( pTempTaskToolBox && (mnWinBits & WB_SIZEABLE) && !mbStatusText )
- {
- long nMinToolWidth = aToolPos.X()+50;
- if ( aPos.X() < nMinToolWidth )
- {
- aStatusSize.Width() -= nMinToolWidth-aPos.X();
- aPos.X() = nMinToolWidth;
- }
- }
- if ( aPos.X() < 0 )
- {
- aStatusSize.Width() = aSize.Width();
- aPos.X() = 0;
- }
- if ( mnWinBits & WB_BORDER )
- aPos.Y() += TASKBAR_BORDER;
- aPos.Y() += (aSize.Height()-aStatusSize.Height()-aPos.Y())/2;
- if ( mnWinBits & WB_SIZEABLE )
- {
- if ( pTempTaskToolBox )
- {
- nOldStatusX = pTempStatusBar->GetPosPixel().X()-TASKBAR_OFFSIZE-2;
- nNewStatusX = aPos.X()-TASKBAR_OFFSIZE-2;
- }
- }
- pTempStatusBar->SetPosSizePixel( aPos, aStatusSize );
- pTempStatusBar->Show();
- aToolSize.Width() = aPos.X()-aToolPos.X()-TASKBAR_OFFX;
- if ( mnWinBits & WB_SIZEABLE )
- aToolSize.Width() -= (TASKBAR_OFFSIZE*2)-2;
- }
-
- if ( pTempTaskToolBox )
- {
- if ( aToolSize.Width() <= 24 )
- pTempTaskToolBox->Hide();
- else
- {
- aToolSize.Height() = pTempTaskToolBox->CalcWindowSizePixel().Height();
- if ( pTempTaskToolBox->GetItemCount() )
- nTaskHeight = aToolSize.Height();
- else
- aToolSize.Height() = nTaskHeight;
- aToolPos.Y() += (aSize.Height()-aToolSize.Height()-aToolPos.Y())/2;
- pTempTaskToolBox->SetPosSizePixel( aToolPos, aToolSize );
- pTempTaskToolBox->Show();
- }
- }
-
- if ( nOldStatusX != nNewStatusX )
- {
- if ( nOldStatusX > 0 )
- {
- Rectangle aRect( nOldStatusX, 0, nOldStatusX+2, aSize.Height()-1 );
- Invalidate( aRect );
- }
- if ( nNewStatusX > 0 )
- {
- Rectangle aRect( nNewStatusX, 0, nNewStatusX+2, aSize.Height()-1 );
- Invalidate( aRect );
- }
- }
-}
-
-// -----------------------------------------------------------------------
-
-void TaskBar::StateChanged( StateChangedType nType )
-{
- Window::StateChanged( nType );
-
- if ( nType == STATE_CHANGE_INITSHOW )
- Format();
- else if ( nType == STATE_CHANGE_CONTROLBACKGROUND )
- {
- ImplInitSettings();
- Invalidate();
- }
- else if ( nType == STATE_CHANGE_FORMAT )
- {
- ImplInitSettings();
- ImplNewHeight( CalcWindowSizePixel().Height() );
- Format();
- Invalidate();
- }
-}
-
-// -----------------------------------------------------------------------
-
-void TaskBar::DataChanged( const DataChangedEvent& rDCEvt )
-{
- Window::DataChanged( rDCEvt );
-
- if ( (rDCEvt.GetType() == DATACHANGED_FONTS) ||
- (rDCEvt.GetType() == DATACHANGED_FONTSUBSTITUTION) ||
- ((rDCEvt.GetType() == DATACHANGED_SETTINGS) &&
- (rDCEvt.GetFlags() & SETTINGS_STYLE)) )
- {
- // Asyncronen StateChanged ausloesen, damit sich die
- // TaskBar an die neuen Groessen der Child-Fenster
- // orientieren kann
- PostStateChanged( STATE_CHANGE_FORMAT );
- }
-}
-
-// -----------------------------------------------------------------------
-
-void TaskBar::Format()
-{
- ImplNewHeight( CalcWindowSizePixel().Height() );
- Resize();
-}
-
-// -----------------------------------------------------------------------
-
-Size TaskBar::CalcWindowSizePixel() const
-{
- TaskButtonBar* pTempButtonBar = GetButtonBar();
- TaskToolBox* pTempTaskToolBox = GetTaskToolBox();
- TaskStatusBar* pTempStatusBar = GetStatusBar();
- Size aSize;
- long nTempHeight;
-
- if ( pTempButtonBar && pTempButtonBar->GetItemCount() )
- aSize.Height() = pTempButtonBar->CalcWindowSizePixel().Height()+(TASKBAR_OFFY*2);
- if ( pTempTaskToolBox && pTempTaskToolBox->GetItemCount() )
- {
- nTempHeight = pTempTaskToolBox->CalcWindowSizePixel().Height()+(TASKBAR_OFFY*2);
- if ( nTempHeight > aSize.Height() )
- aSize.Height() = nTempHeight;
- }
- if ( pTempStatusBar )
- {
- nTempHeight = pTempStatusBar->GetSizePixel().Height();
- if ( nTempHeight > aSize.Height() )
- aSize.Height() = nTempHeight;
- }
-
- if ( mnWinBits & WB_BORDER )
- aSize.Height() += TASKBAR_BORDER;
-
- return aSize;
-}
-
-// -----------------------------------------------------------------------
-
-TaskButtonBar* TaskBar::GetButtonBar() const
-{
- if ( !mpButtonBar )
- ((TaskBar*)this)->mpButtonBar = ((TaskBar*)this)->CreateButtonBar();
- return mpButtonBar;
-}
-
-// -----------------------------------------------------------------------
-
-TaskToolBox* TaskBar::GetTaskToolBox() const
-{
- if ( !mpTaskToolBox )
- ((TaskBar*)this)->mpTaskToolBox = ((TaskBar*)this)->CreateTaskToolBox();
- return mpTaskToolBox;
-}
-
-// -----------------------------------------------------------------------
-
-TaskStatusBar* TaskBar::GetStatusBar() const
-{
- if ( !mpStatusBar )
- {
- ((TaskBar*)this)->mpStatusBar = ((TaskBar*)this)->CreateTaskStatusBar();
- if ( mpStatusBar )
- mpStatusBar->mpNotifyTaskBar = (TaskBar*)this;
- }
- return mpStatusBar;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */