summaryrefslogtreecommitdiff
path: root/svx/source/tbxctrls/grafctrl.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/tbxctrls/grafctrl.cxx')
-rw-r--r--svx/source/tbxctrls/grafctrl.cxx1290
1 files changed, 1290 insertions, 0 deletions
diff --git a/svx/source/tbxctrls/grafctrl.cxx b/svx/source/tbxctrls/grafctrl.cxx
new file mode 100644
index 000000000000..0d9728067d27
--- /dev/null
+++ b/svx/source/tbxctrls/grafctrl.cxx
@@ -0,0 +1,1290 @@
+/* -*- 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_svx.hxx"
+
+#include <string> // HACK: prevent conflict between STLPORT and Workshop headers
+
+#include <vcl/toolbox.hxx>
+#include <vcl/field.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/msgbox.hxx>
+#include <svl/intitem.hxx>
+#include <svl/eitem.hxx>
+#include <svl/whiter.hxx>
+#include <sfx2/app.hxx>
+#include <sfx2/dispatch.hxx>
+#include <sfx2/objsh.hxx>
+#include <sfx2/viewsh.hxx>
+#include <sfx2/request.hxx>
+#include <sfx2/basedlgs.hxx>
+#include <tools/urlobj.hxx>
+#include <comphelper/processfactory.hxx>
+
+#include <svx/svxids.hrc>
+#include "grafctrl.hrc"
+#include <svx/dialogs.hrc>
+#include <editeng/brshitem.hxx>
+#include <editeng/sizeitem.hxx>
+#include <svx/sdgcpitm.hxx>
+
+#include <svx/itemwin.hxx>
+#include <svx/dialmgr.hxx>
+#include <svx/svdview.hxx>
+#include <svx/svdmodel.hxx>
+#include <svx/svdograf.hxx>
+#include <svx/svdundo.hxx>
+#include <svx/svdtrans.hxx>
+#include "grafctrl.hxx"
+#include "tbxcolor.hxx"
+
+// namespaces
+using ::rtl::OUString;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::frame;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::lang;
+
+#include <svx/svxdlg.hxx>
+// -----------
+// - Defines -
+// -----------
+
+#define SYMBOL_TO_FIELD_OFFSET 4
+#define ITEMVALUE(ItemSet,Id,Cast) ((const Cast&)(ItemSet).Get(Id)).GetValue()
+#define TOOLBOX_NAME ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "colorbar" ) )
+
+// ----------------
+// - TbxImageItem -
+// ----------------
+
+TYPEINIT1_AUTOFACTORY( TbxImageItem, SfxUInt16Item );
+
+//---------------------------------------------------------
+
+TbxImageItem::TbxImageItem( USHORT _nWhich, UINT16 nImage ) :
+ SfxUInt16Item( _nWhich, nImage )
+{
+}
+
+//---------------------------------------------------------
+
+SfxPoolItem* TbxImageItem::Clone( SfxItemPool* ) const
+{
+ return new TbxImageItem( *this );
+}
+
+//---------------------------------------------------------
+
+int TbxImageItem::operator==( const SfxPoolItem& rItem ) const
+{
+ return( ( (TbxImageItem&) rItem ).GetValue() == GetValue() );
+}
+
+// -----------------------
+// - ImplGrafMetricField -
+// -----------------------
+
+class ImplGrafMetricField : public MetricField
+{
+ using Window::Update;
+
+private:
+ Timer maTimer;
+ OUString maCommand;
+ Reference< XFrame > mxFrame;
+
+ DECL_LINK( ImplModifyHdl, Timer* );
+
+protected:
+
+ virtual void Modify();
+
+public:
+
+ ImplGrafMetricField( Window* pParent, const rtl::OUString& aCmd, const Reference< XFrame >& rFrame );
+ ~ImplGrafMetricField();
+
+ void Update( const SfxPoolItem* pItem );
+ const OUString& GetCommand() const { return maCommand; }
+};
+
+// -----------------------------------------------------------------------------
+
+ImplGrafMetricField::ImplGrafMetricField( Window* pParent, const rtl::OUString& rCmd, const Reference< XFrame >& rFrame ) :
+ MetricField( pParent, WB_BORDER | WB_SPIN | WB_REPEAT | WB_3DLOOK ),
+ maCommand( rCmd ),
+ mxFrame( rFrame )
+{
+ Size aSize( GetTextWidth( String::CreateFromAscii("-100 %") ), GetTextHeight() );
+
+ aSize.Width() += 20, aSize.Height() += 6;
+ SetSizePixel( aSize );
+
+ if ( maCommand.equalsAscii( ".uno:GrafGamma" ))
+ {
+ SetDecimalDigits( 2 );
+
+ SetMin( 10 );
+ SetFirst( 10 );
+ SetMax( 1000 );
+ SetLast( 1000 );
+ SetSpinSize( 10 );
+ }
+ else
+ {
+ const long nMinVal = ( maCommand.equalsAscii( ".uno:GrafTransparence" )) ? 0 : -100;
+
+ SetUnit( FUNIT_CUSTOM );
+ SetCustomUnitText( String::CreateFromAscii(" %") );
+ SetDecimalDigits( 0 );
+
+ SetMin( nMinVal );
+ SetFirst( nMinVal );
+ SetMax( 100 );
+ SetLast( 100 );
+ SetSpinSize( 1 );
+ }
+
+ maTimer.SetTimeout( 100 );
+ maTimer.SetTimeoutHdl( LINK( this, ImplGrafMetricField, ImplModifyHdl ) );
+}
+
+// -----------------------------------------------------------------------------
+
+ImplGrafMetricField::~ImplGrafMetricField()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+void ImplGrafMetricField::Modify()
+{
+ maTimer.Start();
+}
+
+// -----------------------------------------------------------------------------
+
+IMPL_LINK( ImplGrafMetricField, ImplModifyHdl, Timer*, EMPTYARG )
+{
+ const sal_Int64 nVal = GetValue();
+
+ // Convert value to an any to be usable with dispatch API
+ Any a;
+ if ( maCommand.equalsAscii( ".uno:GrafRed" ) ||
+ maCommand.equalsAscii( ".uno:GrafGreen" ) ||
+ maCommand.equalsAscii( ".uno:GrafBlue" ) ||
+ maCommand.equalsAscii( ".uno:GrafLuminance" ) ||
+ maCommand.equalsAscii( ".uno:GrafContrast" ))
+ a = makeAny( sal_Int16( nVal ));
+ else if ( maCommand.equalsAscii( ".uno:GrafGamma" ) ||
+ maCommand.equalsAscii( ".uno:GrafTransparence" ))
+ a = makeAny( sal_Int32( nVal ));
+
+ if ( a.hasValue() )
+ {
+ INetURLObject aObj( maCommand );
+
+ Sequence< PropertyValue > aArgs( 1 );
+ aArgs[0].Name = aObj.GetURLPath();
+ aArgs[0].Value = a;
+
+ SfxToolBoxControl::Dispatch(
+ Reference< XDispatchProvider >( mxFrame->getController(), UNO_QUERY ),
+ maCommand,
+ aArgs );
+ }
+ return 0L;
+}
+
+// -----------------------------------------------------------------------------
+
+void ImplGrafMetricField::Update( const SfxPoolItem* pItem )
+{
+ if( pItem )
+ {
+ long nValue;
+
+ if ( maCommand.equalsAscii( ".uno:GrafTransparence" ))
+ nValue = ( (SfxUInt16Item*) pItem )->GetValue();
+ else if ( maCommand.equalsAscii( ".uno:GrafGamma" ))
+ nValue = ( (SfxUInt32Item*) pItem )->GetValue();
+ else
+ nValue = ( (SfxInt16Item*) pItem )->GetValue();
+
+ SetValue( nValue );
+ }
+ else
+ SetText( String() );
+}
+
+// --------------------
+// - ImplGrafControl -
+// --------------------
+
+struct CommandToRID
+{
+ const char* pCommand;
+ USHORT nResId;
+ USHORT nHCResId;
+};
+
+static USHORT ImplGetRID( const OUString& aCommand, bool bHighContrast )
+{
+ static const CommandToRID aImplCommandToResMap[] =
+ {
+ { ".uno:GrafRed", RID_SVXIMG_GRAF_RED, RID_SVXIMG_GRAF_RED_H },
+ { ".uno:GrafGreen", RID_SVXIMG_GRAF_GREEN, RID_SVXIMG_GRAF_GREEN_H },
+ { ".uno:GrafBlue", RID_SVXIMG_GRAF_BLUE, RID_SVXIMG_GRAF_BLUE_H },
+ { ".uno:GrafLuminance", RID_SVXIMG_GRAF_LUMINANCE, RID_SVXIMG_GRAF_LUMINANCE_H },
+ { ".uno:GrafContrast", RID_SVXIMG_GRAF_CONTRAST, RID_SVXIMG_GRAF_CONTRAST_H },
+ { ".uno:GrafGamma", RID_SVXIMG_GRAF_GAMMA, RID_SVXIMG_GRAF_GAMMA_H },
+ { ".uno:GrafTransparence", RID_SVXIMG_GRAF_TRANSPARENCE, RID_SVXIMG_GRAF_TRANSPARENCE_H },
+ { 0, 0, 0 }
+ };
+
+ USHORT nRID = 0;
+
+ sal_Int32 i( 0 );
+ while ( aImplCommandToResMap[ i ].pCommand )
+ {
+ if ( aCommand.equalsAscii( aImplCommandToResMap[ i ].pCommand ))
+ {
+ if ( bHighContrast )
+ nRID = aImplCommandToResMap[ i ].nHCResId;
+ else
+ nRID = aImplCommandToResMap[ i ].nResId;
+ break;
+ }
+ ++i;
+ }
+
+ return nRID;
+}
+
+// -----------------------------------------------------------------------------
+
+class ImplGrafControl : public Control
+{
+ using Window::Update;
+private:
+ FixedImage maImage;
+ ImplGrafMetricField maField;
+
+protected:
+
+ virtual void GetFocus();
+
+public:
+
+ ImplGrafControl( Window* pParent, USHORT nSlotId, const rtl::OUString& rCmd, const Reference< XFrame >& rFrame );
+ ~ImplGrafControl();
+
+ void Update( const SfxPoolItem* pItem ) { maField.Update( pItem ); }
+ void SetText( const String& rStr ) { maField.SetText( rStr ); }
+};
+
+// -----------------------------------------------------------------------------
+
+ImplGrafControl::ImplGrafControl( Window* pParent, USHORT nSlotId, const rtl::OUString& rCmd, const Reference< XFrame >& rFrame ) :
+ Control( pParent, WB_TABSTOP ),
+ maImage ( this ),
+ maField ( this, rCmd, rFrame )
+{
+ ResId aResId( ImplGetRID( rCmd, false ), DIALOG_MGR() ) ;
+ Image aImage( aResId );
+
+ ResId aResIdHC( ImplGetRID( rCmd, true ), DIALOG_MGR() ) ;
+ Image aImageHC( aResIdHC );
+
+ Size aImgSize( aImage.GetSizePixel() );
+ Size aFldSize( maField.GetSizePixel() );
+ long nFldY, nImgY;
+
+ maImage.SetImage( aImage );
+ maImage.SetModeImage( aImageHC, BMP_COLOR_HIGHCONTRAST );
+ maImage.SetSizePixel( aImgSize );
+ // we want to see the backbround of the toolbox, not of the FixedImage or Control
+ maImage.SetBackground( Wallpaper( COL_TRANSPARENT ) );
+ SetBackground( Wallpaper( COL_TRANSPARENT ) );
+
+ if( aImgSize.Height() > aFldSize.Height() )
+ nImgY = 0, nFldY = ( aImgSize.Height() - aFldSize.Height() ) >> 1;
+ else
+ nFldY = 0, nImgY = ( aFldSize.Height() - aImgSize.Height() ) >> 1;
+
+ long nOffset = SYMBOL_TO_FIELD_OFFSET / 2;
+ maImage.SetPosPixel( Point( nOffset, nImgY ) );
+ maField.SetPosPixel( Point( aImgSize.Width() + SYMBOL_TO_FIELD_OFFSET, nFldY ) );
+ SetSizePixel( Size( aImgSize.Width() + aFldSize.Width() + SYMBOL_TO_FIELD_OFFSET + nOffset,
+ Max( aImgSize.Height(), aFldSize.Height() ) ) );
+
+ SetBackground( Wallpaper() ); // transparent background
+
+ maImage.Show();
+
+ maField.SetHelpId( nSlotId );
+ maField.SetSmartHelpId( SmartId( rCmd ));
+ maField.Show();
+}
+
+// -----------------------------------------------------------------------------
+
+ImplGrafControl::~ImplGrafControl()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+void ImplGrafControl::GetFocus()
+{
+ maField.GrabFocus();
+}
+
+// -----------------------
+// - ImplGrafModeControl -
+// -----------------------
+
+class ImplGrafModeControl : public ListBox
+{
+ using Window::Update;
+private:
+ USHORT mnCurPos;
+ Reference< XFrame > mxFrame;
+
+ virtual void Select();
+ virtual long PreNotify( NotifyEvent& rNEvt );
+ virtual long Notify( NotifyEvent& rNEvt );
+ void ImplReleaseFocus();
+
+public:
+
+ ImplGrafModeControl( Window* pParent, const Reference< XFrame >& rFrame );
+ ~ImplGrafModeControl();
+
+ void Update( const SfxPoolItem* pItem );
+};
+
+// -----------------------------------------------------------------------------
+
+ImplGrafModeControl::ImplGrafModeControl( Window* pParent, const Reference< XFrame >& rFrame ) :
+ ListBox( pParent, WB_BORDER | WB_DROPDOWN | WB_AUTOHSCROLL ),
+ mnCurPos( 0 ),
+ mxFrame( rFrame )
+{
+ SetSizePixel( Size( 100, 260 ) );
+
+ InsertEntry( SVX_RESSTR( RID_SVXSTR_GRAFMODE_STANDARD ) );
+ InsertEntry( SVX_RESSTR( RID_SVXSTR_GRAFMODE_GREYS ) );
+ InsertEntry( SVX_RESSTR( RID_SVXSTR_GRAFMODE_MONO ) );
+ InsertEntry( SVX_RESSTR( RID_SVXSTR_GRAFMODE_WATERMARK ) );
+
+ Show();
+}
+
+// -----------------------------------------------------------------------
+
+ImplGrafModeControl::~ImplGrafModeControl()
+{
+}
+
+// -----------------------------------------------------------------------
+
+void ImplGrafModeControl::Select()
+{
+ if ( !IsTravelSelect() )
+ {
+ Sequence< PropertyValue > aArgs( 1 );
+ aArgs[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "GrafMode" ));
+ aArgs[0].Value = makeAny( sal_Int16( GetSelectEntryPos() ));
+
+ /* #i33380# DR 2004-09-03 Moved the following line above the Dispatch() call.
+ This instance may be deleted in the meantime (i.e. when a dialog is opened
+ while in Dispatch()), accessing members will crash in this case. */
+ ImplReleaseFocus();
+
+ SfxToolBoxControl::Dispatch(
+ Reference< XDispatchProvider >( mxFrame->getController(), UNO_QUERY ),
+ OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:GrafMode" )),
+ aArgs );
+ }
+}
+
+// -----------------------------------------------------------------------
+
+long ImplGrafModeControl::PreNotify( NotifyEvent& rNEvt )
+{
+ USHORT nType = rNEvt.GetType();
+
+ if( EVENT_MOUSEBUTTONDOWN == nType || EVENT_GETFOCUS == nType )
+ mnCurPos = GetSelectEntryPos();
+
+ return ListBox::PreNotify( rNEvt );
+}
+
+// -----------------------------------------------------------------------
+
+long ImplGrafModeControl::Notify( NotifyEvent& rNEvt )
+{
+ long nHandled = ListBox::Notify( rNEvt );
+
+ if( rNEvt.GetType() == EVENT_KEYINPUT )
+ {
+ const KeyEvent* pKEvt = rNEvt.GetKeyEvent();
+
+ switch( pKEvt->GetKeyCode().GetCode() )
+ {
+ case KEY_RETURN:
+ {
+ Select();
+ nHandled = 1;
+ }
+ break;
+
+ case KEY_ESCAPE:
+ {
+ SelectEntryPos( mnCurPos );
+ ImplReleaseFocus();
+ nHandled = 1;
+ }
+ break;
+ }
+ }
+
+ return nHandled;
+}
+
+// -----------------------------------------------------------------------
+
+void ImplGrafModeControl::ImplReleaseFocus()
+{
+ if( SfxViewShell::Current() )
+ {
+ Window* pShellWnd = SfxViewShell::Current()->GetWindow();
+
+ if( pShellWnd )
+ pShellWnd->GrabFocus();
+ }
+}
+
+// -----------------------------------------------------------------------
+
+void ImplGrafModeControl::Update( const SfxPoolItem* pItem )
+{
+ if( pItem )
+ SelectEntryPos( ((SfxUInt16Item*)pItem)->GetValue() );
+ else
+ SetNoSelection();
+}
+
+// -----------------------
+// - ImplGrafFilterPopup -
+// -----------------------
+/*
+CD!!!
+class ImplGrafFilterPopup : public SfxPopupWindow
+{
+private:
+
+ SvxGrafFilterToolBoxControl* mpParent;
+ Reference< XConfigurableUIElement > m_xToolBar;
+// SfxToolBoxManager maTbxMgr;
+ ResId maResIdWin;
+ ResId maResIdTbx;
+ WindowAlign meTbxAlign;
+ Link maSelectHdl;
+
+ DECL_LINK( TbxSelectHdl, void* );
+
+public:
+ ImplGrafFilterPopup( USHORT nId, SvxGrafFilterToolBoxControl* pParent,
+ WindowAlign eAlign,
+ const ResId& rResIdWin, const ResId& rResIdTbx,
+ SfxBindings& rBindings );
+ ~ImplGrafFilterPopup();
+
+ virtual SfxPopupWindow* Clone() const;
+ virtual void PopupModeEnd();
+
+ void StartSelection() { maTbxMgr.GetToolBox().StartSelection(); }
+ void Update();
+};
+
+// -----------------------------------------------------------------------------
+
+ImplGrafFilterPopup::ImplGrafFilterPopup( USHORT nId, SvxGrafFilterToolBoxControl* pParent,
+ WindowAlign eAlign,
+ const ResId& rResIdWin, const ResId& rResIdTbx ) :
+ SfxPopupWindow ( nId, rResIdWin ),
+ mpParent ( pParent ),
+ maTbxMgr ( this, GetBindings(), rResIdTbx ),
+ maResIdWin ( rResIdWin ),
+ maResIdTbx ( rResIdTbx ),
+ meTbxAlign ( eAlign )
+{
+ maTbxMgr.UseDefault();
+
+ maSelectHdl = maTbxMgr.GetToolBox().GetSelectHdl();
+ maTbxMgr.GetToolBox().SetSelectHdl( LINK( this, ImplGrafFilterPopup, TbxSelectHdl ) );
+
+ FreeResource();
+
+ const Size aSize( maTbxMgr.CalcWindowSizePixel() );
+ maTbxMgr.SetPosSizePixel( Point(), aSize );
+ SetOutputSizePixel( aSize );
+}
+
+// -----------------------------------------------------------------------------
+
+ImplGrafFilterPopup::~ImplGrafFilterPopup()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+SfxPopupWindow* ImplGrafFilterPopup::Clone() const
+{
+ return( new ImplGrafFilterPopup( GetId(), mpParent, meTbxAlign,
+ maResIdWin, maResIdTbx,
+ (SfxBindings&) GetBindings() ) );
+}
+
+// -----------------------------------------------------------------------------
+
+void ImplGrafFilterPopup::Update()
+{
+ ToolBox* pBox = &maTbxMgr.GetToolBox();
+ maTbxMgr.Activate( pBox );
+ maTbxMgr.Deactivate( pBox );
+}
+
+// -----------------------------------------------------------------------------
+
+void ImplGrafFilterPopup::PopupModeEnd()
+{
+ maTbxMgr.GetToolBox().EndSelection();
+ SfxPopupWindow::PopupModeEnd();
+}
+
+// -----------------------------------------------------------------------------
+
+IMPL_LINK( ImplGrafFilterPopup, TbxSelectHdl, void*, EMPTYARG )
+{
+ const USHORT nSlotId = maTbxMgr.GetToolBox().GetCurItemId();
+
+ if( IsInPopupMode() )
+ EndPopupMode();
+
+ GetBindings().GetDispatcher()->Execute( nSlotId, SFX_CALLMODE_ASYNCHRON );
+
+ return 0;
+}
+*/
+// -------------------------------
+// - SvxGrafFilterToolBoxControl -
+// -------------------------------
+
+SFX_IMPL_TOOLBOX_CONTROL( SvxGrafFilterToolBoxControl, TbxImageItem );
+
+// -----------------------------------------------------------------------------
+
+SvxGrafFilterToolBoxControl::SvxGrafFilterToolBoxControl( USHORT nSlotId, USHORT nId, ToolBox& rTbx ) :
+ SfxToolBoxControl( nSlotId, nId, rTbx )
+{
+ rTbx.SetItemBits( nId, TIB_DROPDOWNONLY | rTbx.GetItemBits( nId ) );
+ rTbx.Invalidate();
+}
+
+// -----------------------------------------------------------------------------
+
+SvxGrafFilterToolBoxControl::~SvxGrafFilterToolBoxControl()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+void SvxGrafFilterToolBoxControl::StateChanged( USHORT, SfxItemState eState, const SfxPoolItem* )
+{
+ GetToolBox().EnableItem( GetId(), ( eState != SFX_ITEM_DISABLED ) );
+}
+
+// -----------------------------------------------------------------------------
+
+SfxPopupWindowType SvxGrafFilterToolBoxControl::GetPopupWindowType() const
+{
+ return SFX_POPUPWINDOW_ONCLICK;
+}
+
+// -----------------------------------------------------------------------------
+
+SfxPopupWindow* SvxGrafFilterToolBoxControl::CreatePopupWindow()
+{
+ rtl::OUString aSubTbxResName(
+ RTL_CONSTASCII_USTRINGPARAM( "private:resource/toolbar/graffilterbar" ) );
+ createAndPositionSubToolBar( aSubTbxResName );
+
+ return NULL;
+}
+
+// -------------------------
+// - SvxGrafToolBoxControl -
+// -------------------------
+
+SFX_IMPL_TOOLBOX_CONTROL( SvxGrafToolBoxControl, SfxVoidItem );
+
+// -----------------------------------------------------------------------------
+
+SvxGrafToolBoxControl::SvxGrafToolBoxControl( USHORT nSlotId, USHORT nId, ToolBox& rTbx) :
+ SfxToolBoxControl( nSlotId, nId, rTbx )
+{
+ rTbx.SetItemBits( nId, TIB_DROPDOWN | rTbx.GetItemBits( nId ) );
+ rTbx.Invalidate();
+}
+
+// -----------------------------------------------------------------------------
+
+SvxGrafToolBoxControl::~SvxGrafToolBoxControl()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+void SvxGrafToolBoxControl::StateChanged( USHORT, SfxItemState eState, const SfxPoolItem* pState )
+
+{
+ ImplGrafControl* pCtrl = (ImplGrafControl*) GetToolBox().GetItemWindow( GetId() );
+ DBG_ASSERT( pCtrl, "Control not found" );
+
+ if( eState == SFX_ITEM_DISABLED )
+ {
+ pCtrl->Disable();
+ pCtrl->SetText( String() );
+ }
+ else
+ {
+ pCtrl->Enable();
+
+ if( eState == SFX_ITEM_AVAILABLE )
+ pCtrl->Update( pState );
+ else
+ pCtrl->Update( NULL );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+Window* SvxGrafToolBoxControl::CreateItemWindow( Window *pParent )
+{
+ return( new ImplGrafControl( pParent, GetSlotId(), m_aCommandURL, m_xFrame ) );
+}
+
+// ----------------------------
+// - SvxGrafRedToolBoxControl -
+// ----------------------------
+
+SFX_IMPL_TOOLBOX_CONTROL( SvxGrafRedToolBoxControl, SfxInt16Item );
+
+// -----------------------------------------------------------------------------
+
+SvxGrafRedToolBoxControl::SvxGrafRedToolBoxControl( USHORT nSlotId, USHORT nId, ToolBox& rTbx ) :
+ SvxGrafToolBoxControl( nSlotId, nId, rTbx )
+{
+}
+
+// ------------------------------
+// - SvxGrafGreenToolBoxControl -
+// ------------------------------
+
+SFX_IMPL_TOOLBOX_CONTROL( SvxGrafGreenToolBoxControl, SfxInt16Item );
+
+// -----------------------------------------------------------------------------
+
+SvxGrafGreenToolBoxControl::SvxGrafGreenToolBoxControl( USHORT nSlotId, USHORT nId, ToolBox& rTbx ) :
+ SvxGrafToolBoxControl( nSlotId, nId, rTbx )
+{
+}
+
+// -----------------------------
+// - SvxGrafBlueToolBoxControl -
+// -----------------------------
+
+SFX_IMPL_TOOLBOX_CONTROL( SvxGrafBlueToolBoxControl, SfxInt16Item );
+
+// -----------------------------------------------------------------------------
+
+SvxGrafBlueToolBoxControl::SvxGrafBlueToolBoxControl( USHORT nSlotId, USHORT nId, ToolBox& rTbx ) :
+ SvxGrafToolBoxControl( nSlotId, nId, rTbx )
+{
+}
+
+// ----------------------------------
+// - SvxGrafLuminanceToolBoxControl -
+// ----------------------------------
+
+SFX_IMPL_TOOLBOX_CONTROL( SvxGrafLuminanceToolBoxControl, SfxInt16Item );
+
+// -----------------------------------------------------------------------------
+
+SvxGrafLuminanceToolBoxControl::SvxGrafLuminanceToolBoxControl( USHORT nSlotId, USHORT nId, ToolBox& rTbx ) :
+ SvxGrafToolBoxControl( nSlotId, nId, rTbx )
+{
+}
+
+// ----------------------------------
+// - SvxGrafContrastToolBoxControl -
+// ----------------------------------
+
+SFX_IMPL_TOOLBOX_CONTROL( SvxGrafContrastToolBoxControl, SfxInt16Item );
+
+// -----------------------------------------------------------------------------
+
+SvxGrafContrastToolBoxControl::SvxGrafContrastToolBoxControl( USHORT nSlotId, USHORT nId, ToolBox& rTbx ) :
+ SvxGrafToolBoxControl( nSlotId, nId, rTbx )
+{
+}
+
+// ------------------------------
+// - SvxGrafGammaToolBoxControl -
+// ------------------------------
+
+SFX_IMPL_TOOLBOX_CONTROL( SvxGrafGammaToolBoxControl, SfxUInt32Item );
+
+// -----------------------------------------------------------------------------
+
+SvxGrafGammaToolBoxControl::SvxGrafGammaToolBoxControl( USHORT nSlotId, USHORT nId, ToolBox& rTbx ) :
+ SvxGrafToolBoxControl( nSlotId, nId, rTbx )
+{
+}
+
+// -------------------------------------
+// - SvxGrafTransparenceToolBoxControl -
+// -------------------------------------
+
+SFX_IMPL_TOOLBOX_CONTROL( SvxGrafTransparenceToolBoxControl, SfxUInt16Item );
+
+// -----------------------------------------------------------------------------
+
+SvxGrafTransparenceToolBoxControl::SvxGrafTransparenceToolBoxControl( USHORT nSlotId, USHORT nId, ToolBox& rTbx ) :
+ SvxGrafToolBoxControl( nSlotId, nId, rTbx )
+{
+}
+
+// -----------------------------
+// - SvxGrafModeToolBoxControl -
+// -----------------------------
+
+SFX_IMPL_TOOLBOX_CONTROL( SvxGrafModeToolBoxControl, SfxUInt16Item );
+
+// -----------------------------------------------------------------------------
+
+SvxGrafModeToolBoxControl::SvxGrafModeToolBoxControl( USHORT nSlotId, USHORT nId, ToolBox& rTbx ) :
+ SfxToolBoxControl( nSlotId, nId, rTbx )
+{
+}
+
+// -----------------------------------------------------------------------------
+
+SvxGrafModeToolBoxControl::~SvxGrafModeToolBoxControl()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+void SvxGrafModeToolBoxControl::StateChanged( USHORT, SfxItemState eState, const SfxPoolItem* pState )
+
+{
+ ImplGrafModeControl* pCtrl = (ImplGrafModeControl*) GetToolBox().GetItemWindow( GetId() );
+ DBG_ASSERT( pCtrl, "Control not found" );
+
+ if( eState == SFX_ITEM_DISABLED )
+ {
+ pCtrl->Disable();
+ pCtrl->SetText( String() );
+ }
+ else
+ {
+ pCtrl->Enable();
+
+ if( eState == SFX_ITEM_AVAILABLE )
+ pCtrl->Update( pState );
+ else
+ pCtrl->Update( NULL );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+Window* SvxGrafModeToolBoxControl::CreateItemWindow( Window *pParent )
+{
+ return( new ImplGrafModeControl( pParent, m_xFrame ) );
+}
+
+// ---------------------
+// - SvxGrafAttrHelper -
+// ---------------------
+
+void SvxGrafAttrHelper::ExecuteGrafAttr( SfxRequest& rReq, SdrView& rView )
+{
+ SfxItemPool& rPool = rView.GetModel()->GetItemPool();
+ SfxItemSet aSet( rPool, SDRATTR_GRAF_FIRST, SDRATTR_GRAF_LAST );
+
+ const bool bUndo = rView.IsUndoEnabled();
+
+ String aUndoStr;
+
+ if( bUndo )
+ {
+ aUndoStr = rView.GetDescriptionOfMarkedObjects();
+ aUndoStr.Append( sal_Unicode(' ') );
+ }
+
+ const SfxItemSet* pArgs = rReq.GetArgs();
+ const SfxPoolItem* pItem;
+ USHORT nSlot = rReq.GetSlot();
+
+ if( !pArgs || SFX_ITEM_SET != pArgs->GetItemState( nSlot, FALSE, &pItem ))
+ pItem = 0;
+
+ switch( nSlot )
+ {
+ case SID_ATTR_GRAF_RED:
+ {
+ if( pItem )
+ {
+ aSet.Put( SdrGrafRedItem( ((SfxInt16Item*)pItem)->GetValue() ));
+ if( bUndo )
+ aUndoStr.Append( String( SVX_RESSTR( RID_SVXSTR_UNDO_GRAFRED ) ) );
+ }
+ }
+ break;
+
+ case SID_ATTR_GRAF_GREEN:
+ {
+ if( pItem )
+ {
+ aSet.Put( SdrGrafGreenItem( ((SfxInt16Item*)pItem)->GetValue() ));
+ if( bUndo )
+ aUndoStr.Append( String( SVX_RESSTR( RID_SVXSTR_UNDO_GRAFGREEN ) ) );
+ }
+ }
+ break;
+
+ case SID_ATTR_GRAF_BLUE:
+ {
+ if( pItem )
+ {
+ aSet.Put( SdrGrafBlueItem( ((SfxInt16Item*)pItem)->GetValue() ));
+ if( bUndo )
+ aUndoStr.Append( String( SVX_RESSTR( RID_SVXSTR_UNDO_GRAFBLUE ) ) );
+ }
+ }
+ break;
+
+ case SID_ATTR_GRAF_LUMINANCE:
+ {
+ if( pItem )
+ {
+ aSet.Put( SdrGrafLuminanceItem( ((SfxInt16Item*)pItem)->GetValue() ));
+ if( bUndo )
+ aUndoStr.Append( String( SVX_RESSTR( RID_SVXSTR_UNDO_GRAFLUMINANCE ) ) );
+ }
+ }
+ break;
+
+ case SID_ATTR_GRAF_CONTRAST:
+ {
+ if( pItem )
+ {
+ aSet.Put( SdrGrafContrastItem( ((SfxInt16Item*)pItem)->GetValue() ));
+ if( bUndo )
+ aUndoStr.Append( String( SVX_RESSTR( RID_SVXSTR_UNDO_GRAFCONTRAST ) ) );
+ }
+ }
+ break;
+
+ case SID_ATTR_GRAF_GAMMA:
+ {
+ if( pItem )
+ {
+ aSet.Put( SdrGrafGamma100Item( ((SfxUInt32Item*)pItem)->GetValue() ));
+ if( bUndo )
+ aUndoStr.Append( String( SVX_RESSTR( RID_SVXSTR_UNDO_GRAFGAMMA ) ) );
+ }
+ }
+ break;
+
+ case SID_ATTR_GRAF_TRANSPARENCE:
+ {
+ if( pItem )
+ {
+ aSet.Put( SdrGrafTransparenceItem( ((SfxUInt16Item*)pItem)->GetValue() ));
+ if( bUndo )
+ aUndoStr.Append( String( SVX_RESSTR( RID_SVXSTR_UNDO_GRAFTRANSPARENCY ) ) );
+ }
+ }
+ break;
+
+ case SID_ATTR_GRAF_MODE:
+ {
+ if( pItem )
+ {
+ aSet.Put( SdrGrafModeItem( (GraphicDrawMode) ((SfxUInt16Item*)pItem)->GetValue() ));
+ if( bUndo )
+ aUndoStr.Append( String( SVX_RESSTR( RID_SVXSTR_UNDO_GRAFMODE ) ) );
+ }
+ }
+ break;
+
+ case( SID_ATTR_GRAF_CROP ):
+ {
+ const SdrMarkList& rMarkList = rView.GetMarkedObjectList();
+
+ if( 0 < rMarkList.GetMarkCount() )
+ {
+ SdrGrafObj* pObj = (SdrGrafObj*) rMarkList.GetMark( 0 )->GetMarkedSdrObj();
+
+ if( pObj && pObj->ISA( SdrGrafObj ) &&
+ ( pObj->GetGraphicType() != GRAPHIC_NONE ) &&
+ ( pObj->GetGraphicType() != GRAPHIC_DEFAULT ) )
+ {
+ SfxItemSet aGrfAttr( rPool, SDRATTR_GRAFCROP, SDRATTR_GRAFCROP, 0 );
+ const SfxMapUnit eOldMetric = rPool.GetMetric( 0 );
+ const MapMode aMap100( MAP_100TH_MM );
+ const MapMode aMapTwip( MAP_TWIP );
+
+ aGrfAttr.Put(pObj->GetMergedItemSet());
+ rPool.SetDefaultMetric( SFX_MAPUNIT_TWIP );
+
+ SfxItemSet aCropDlgAttr( rPool,
+ SDRATTR_GRAFCROP, SDRATTR_GRAFCROP,
+ SID_ATTR_GRAF_GRAPHIC, SID_ATTR_GRAF_GRAPHIC,
+ SID_ATTR_PAGE_SIZE, SID_ATTR_PAGE_SIZE,
+ SID_ATTR_GRAF_FRMSIZE, SID_ATTR_GRAF_FRMSIZE,
+ SID_ATTR_GRAF_CROP, SID_ATTR_GRAF_CROP, 0 );
+
+ aCropDlgAttr.Put( SvxBrushItem( pObj->GetGraphic(), GPOS_MM, SID_ATTR_GRAF_GRAPHIC ) );
+ aCropDlgAttr.Put( SvxSizeItem( SID_ATTR_PAGE_SIZE,
+ Size( OutputDevice::LogicToLogic(
+ Size( 200000, 200000 ), aMap100, aMapTwip ) ) ) );
+ aCropDlgAttr.Put( SvxSizeItem( SID_ATTR_GRAF_FRMSIZE, OutputDevice::LogicToLogic(
+ pObj->GetLogicRect().GetSize(), aMap100, aMapTwip ) ) );
+
+ const SdrGrafCropItem& rCrop = (const SdrGrafCropItem&) aGrfAttr.Get( SDRATTR_GRAFCROP );
+ Size aLTSize( OutputDevice::LogicToLogic(
+ Size( rCrop.GetLeft(), rCrop.GetTop() ), aMap100, aMapTwip ) );
+ Size aRBSize( OutputDevice::LogicToLogic(
+ Size( rCrop.GetRight(), rCrop.GetBottom() ), aMap100, aMapTwip ) );
+
+ aCropDlgAttr.Put( SdrGrafCropItem( aLTSize.Width(), aLTSize.Height(),
+ aRBSize.Width(), aRBSize.Height() ) );
+
+ SfxSingleTabDialog aCropDialog( SfxViewShell::Current() ? SfxViewShell::Current()->GetWindow() : NULL,
+ aCropDlgAttr, 950 );
+ const String aCropStr = SVX_RESSTR( RID_SVXSTR_GRAFCROP );
+
+ SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create();
+ DBG_ASSERT(pFact, "Dialogdiet error!");
+ ::CreateTabPage fnCreatePage = pFact->GetTabPageCreatorFunc( RID_SVXPAGE_GRFCROP );
+ DBG_ASSERT(fnCreatePage, "Dialogdiet error!");
+ SfxTabPage* pTabPage = (*fnCreatePage)( &aCropDialog, aCropDlgAttr );
+
+ pTabPage->SetText( aCropStr );
+ aCropDialog.SetTabPage( pTabPage );
+
+ if( aCropDialog.Execute() == RET_OK )
+ {
+ const SfxItemSet* pOutAttr = aCropDialog.GetOutputItemSet();
+
+ if( pOutAttr )
+ {
+ aUndoStr.Append( String( SVX_RESSTR( RID_SVXSTR_UNDO_GRAFCROP ) ) );
+
+ // set crop attributes
+ if( SFX_ITEM_SET <= pOutAttr->GetItemState( SDRATTR_GRAFCROP ) )
+ {
+ const SdrGrafCropItem& rNewCrop = (const SdrGrafCropItem&) pOutAttr->Get( SDRATTR_GRAFCROP );
+
+ aLTSize = OutputDevice::LogicToLogic( Size( rNewCrop.GetLeft(), rNewCrop.GetTop() ), aMapTwip, aMap100 );
+ aRBSize = OutputDevice::LogicToLogic( Size( rNewCrop.GetRight(), rNewCrop.GetBottom() ), aMapTwip, aMap100 );
+ aSet.Put( SdrGrafCropItem( aLTSize.Width(), aLTSize.Height(), aRBSize.Width(), aRBSize.Height() ) );
+ }
+
+ // set new logic rect
+ if( SFX_ITEM_SET <= pOutAttr->GetItemState( SID_ATTR_GRAF_FRMSIZE ) )
+ {
+ Point aNewOrigin( pObj->GetLogicRect().TopLeft() );
+ const Size& rGrfSize = ( (const SvxSizeItem&) pOutAttr->Get( SID_ATTR_GRAF_FRMSIZE ) ).GetSize();
+ Size aNewGrfSize( OutputDevice::LogicToLogic( rGrfSize, aMapTwip, aMap100 ) );
+ Size aOldGrfSize( pObj->GetLogicRect().GetSize() );
+
+ Rectangle aNewRect( aNewOrigin, aNewGrfSize );
+ Point aOffset( (aNewGrfSize.Width() - aOldGrfSize.Width()) >> 1,
+ (aNewGrfSize.Height() - aOldGrfSize.Height()) >> 1 );
+
+ // #106181# rotate snap rect before setting it
+ const GeoStat& aGeo = pObj->GetGeoStat();
+
+ if (aGeo.nDrehWink!=0 || aGeo.nShearWink!=0)
+ {
+ Polygon aPol(aNewRect);
+
+ // also transform origin offset
+ if (aGeo.nShearWink!=0)
+ {
+ ShearPoly(aPol,
+ aNewRect.TopLeft(),
+ aGeo.nTan);
+ ShearPoint(aOffset, Point(0,0), aGeo.nTan);
+ }
+ if (aGeo.nDrehWink!=0)
+ {
+ RotatePoly(aPol,
+ aNewRect.TopLeft(),
+ aGeo.nSin,aGeo.nCos);
+ RotatePoint(aOffset, Point(0,0), aGeo.nSin,aGeo.nCos);
+ }
+
+ // apply offset
+ aPol.Move( -aOffset.X(), -aOffset.Y() );
+ aNewRect=aPol.GetBoundRect();
+ }
+ else
+ {
+ aNewRect.Move( -aOffset.X(), -aOffset.Y() );
+ }
+
+ if( !aSet.Count() )
+ rView.SetMarkedObjRect( aNewRect );
+ else
+ {
+ if( bUndo )
+ {
+ rView.BegUndo( aUndoStr );
+ rView.AddUndo( rView.GetModel()->GetSdrUndoFactory().CreateUndoGeoObject( *pObj ) );
+ }
+ pObj->SetSnapRect( aNewRect );
+ rView.SetAttributes( aSet );
+
+ if( bUndo )
+ rView.EndUndo();
+ aSet.ClearItem();
+ }
+ }
+ }
+ }
+
+ rPool.SetDefaultMetric( eOldMetric );
+ }
+ }
+ }
+ break;
+
+ case SID_COLOR_SETTINGS:
+ {
+ svx::ToolboxAccess aToolboxAccess( TOOLBOX_NAME );
+ aToolboxAccess.toggleToolbox();
+ rReq.Done();
+ break;
+ }
+
+ default:
+ break;
+ }
+
+ if( aSet.Count() )
+ {
+ if( bUndo )
+ rView.BegUndo( aUndoStr );
+
+ rView.SetAttributes( aSet );
+
+ if( bUndo )
+ rView.EndUndo();
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void SvxGrafAttrHelper::GetGrafAttrState( SfxItemSet& rSet, SdrView& rView )
+{
+ SfxItemPool& rPool = rView.GetModel()->GetItemPool();
+ SfxItemSet aAttrSet( rPool );
+ SfxWhichIter aIter( rSet );
+ USHORT nWhich = aIter.FirstWhich();
+
+ rView.GetAttributes( aAttrSet );
+
+ while( nWhich )
+ {
+ USHORT nSlotId = SfxItemPool::IsWhich( nWhich ) ? rPool.GetSlotId( nWhich ) : nWhich;
+
+ switch( nSlotId )
+ {
+ case( SID_ATTR_GRAF_MODE ):
+ {
+ if( SFX_ITEM_AVAILABLE <= aAttrSet.GetItemState( SDRATTR_GRAFMODE ) )
+ {
+ rSet.Put( SfxUInt16Item( nSlotId,
+ sal::static_int_cast< UINT16 >( ITEMVALUE( aAttrSet, SDRATTR_GRAFMODE, SdrGrafModeItem ) ) ) );
+ }
+ }
+ break;
+
+ case( SID_ATTR_GRAF_RED ):
+ {
+ if( SFX_ITEM_AVAILABLE <= aAttrSet.GetItemState( SDRATTR_GRAFRED ) )
+ {
+ rSet.Put( SfxInt16Item( nSlotId,
+ ITEMVALUE( aAttrSet, SDRATTR_GRAFRED, SdrGrafRedItem ) ) );
+ }
+ }
+ break;
+
+ case( SID_ATTR_GRAF_GREEN ):
+ {
+ if( SFX_ITEM_AVAILABLE <= aAttrSet.GetItemState( SDRATTR_GRAFGREEN ) )
+ {
+ rSet.Put( SfxInt16Item( nSlotId,
+ ITEMVALUE( aAttrSet, SDRATTR_GRAFGREEN, SdrGrafGreenItem ) ) );
+ }
+ }
+ break;
+
+ case( SID_ATTR_GRAF_BLUE ):
+ {
+ if( SFX_ITEM_AVAILABLE <= aAttrSet.GetItemState( SDRATTR_GRAFBLUE ) )
+ {
+ rSet.Put( SfxInt16Item( nSlotId,
+ ITEMVALUE( aAttrSet, SDRATTR_GRAFBLUE, SdrGrafBlueItem ) ) );
+ }
+ }
+ break;
+
+ case( SID_ATTR_GRAF_LUMINANCE ):
+ {
+ if( SFX_ITEM_AVAILABLE <= aAttrSet.GetItemState( SDRATTR_GRAFLUMINANCE ) )
+ {
+ rSet.Put( SfxInt16Item( nSlotId,
+ ITEMVALUE( aAttrSet, SDRATTR_GRAFLUMINANCE, SdrGrafLuminanceItem ) ) );
+ }
+ }
+ break;
+
+ case( SID_ATTR_GRAF_CONTRAST ):
+ {
+ if( SFX_ITEM_AVAILABLE <= aAttrSet.GetItemState( SDRATTR_GRAFCONTRAST ) )
+ {
+ rSet.Put( SfxInt16Item( nSlotId,
+ ITEMVALUE( aAttrSet, SDRATTR_GRAFCONTRAST, SdrGrafContrastItem ) ) );
+ }
+ }
+ break;
+
+ case( SID_ATTR_GRAF_GAMMA ):
+ {
+ if( SFX_ITEM_AVAILABLE <= aAttrSet.GetItemState( SDRATTR_GRAFGAMMA ) )
+ {
+ rSet.Put( SfxUInt32Item( nSlotId,
+ ITEMVALUE( aAttrSet, SDRATTR_GRAFGAMMA, SdrGrafGamma100Item ) ) );
+ }
+ }
+ break;
+
+ case( SID_ATTR_GRAF_TRANSPARENCE ):
+ {
+ if( SFX_ITEM_AVAILABLE <= aAttrSet.GetItemState( SDRATTR_GRAFTRANSPARENCE ) )
+ {
+ const SdrMarkList& rMarkList = rView.GetMarkedObjectList();
+ BOOL bEnable = TRUE;
+
+ for( USHORT i = 0, nCount = (USHORT) rMarkList.GetMarkCount();
+ ( i < nCount ) && bEnable; i++ )
+ {
+ SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
+
+ if( !pObj || !pObj->ISA( SdrGrafObj ) ||
+ ( (SdrGrafObj*) pObj )->HasGDIMetaFile() ||
+ ( (SdrGrafObj*) pObj )->IsAnimated() )
+ {
+ bEnable = FALSE;
+ }
+ }
+
+ if( bEnable )
+ rSet.Put( SfxUInt16Item( nSlotId,
+ ITEMVALUE( aAttrSet, SDRATTR_GRAFTRANSPARENCE, SdrGrafTransparenceItem ) ) );
+ else
+ rSet.DisableItem( SID_ATTR_GRAF_TRANSPARENCE );
+ }
+ }
+ break;
+
+ case( SID_ATTR_GRAF_CROP ):
+ {
+ const SdrMarkList& rMarkList = rView.GetMarkedObjectList();
+ BOOL bDisable = TRUE;
+
+ if( 1 == rMarkList.GetMarkCount() )
+ {
+ SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
+
+ if( pObj && pObj->ISA( SdrGrafObj ) )
+ {
+ SdrGrafObj* pGrafObj = (SdrGrafObj*) pObj;
+
+ if( ( pGrafObj->GetGraphicType() != GRAPHIC_NONE ) &&
+ ( pGrafObj->GetGraphicType() != GRAPHIC_DEFAULT ) )
+ {
+ bDisable = FALSE;
+ }
+ }
+ }
+
+ if( bDisable )
+ rSet.DisableItem( nSlotId );
+ }
+ break;
+
+ case SID_COLOR_SETTINGS :
+ {
+ svx::ToolboxAccess aToolboxAccess( TOOLBOX_NAME );
+ rSet.Put( SfxBoolItem( nWhich, aToolboxAccess.isToolboxVisible() ) );
+ break;
+ }
+
+ default:
+ break;
+ }
+
+ nWhich = aIter.NextWhich();
+ }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */