office-gobmx/sd/source/ui/view/GraphicObjectBar.cxx
Oliver Bolte 393ad50836 CWS-TOOLING: integrate CWS impress174
2009-08-27 18:21:38 +0200 af  r275502 : #i73289# Fixed detection of the cases when the layout menu is be disabled.
2009-08-24 17:45:50 +0200 sj  r275326 : #i103360# only setting filltype if there is also a correct fill element
2009-08-24 16:11:06 +0200 cl  r275322 : #i73871# only remove replaced objects from mark list if replaced by SdrEditView::ReplaceObjectAtView(). see issue for reason
2009-08-24 15:03:33 +0200 cl  r275319 : fixed merge error
2009-08-20 12:45:29 +0200 sj  r275174 : CWS-TOOLING: rebase CWS impress174 to trunk@275001 (milestone: DEV300:m55)
2009-08-19 15:54:47 +0200 sj  r275153 : #158486# text of flipped shapes is not flipped in word
2009-08-17 17:30:16 +0200 sj  r275063 : #158486# also correcting text bound for additional text rotation
2009-08-05 11:09:32 +0200 sj  r274643 : #i102797# adapted customshape coloring (fixed fontwork)
2009-08-04 14:17:36 +0200 sj  r274620 : #i99501# pdf export: fixed export of rotated graphics
2009-07-30 16:15:44 +0200 sj  r274494 : #158653# binary ppt import: fixed table border lines
2009-07-27 18:28:02 +0200 sj  r274376 : added shape text clipping for customshapes
2009-07-20 18:09:14 +0200 sj  r274154 : #i101918# fixed gallery preview (now taking the correct mapmode)
2009-07-13 18:00:58 +0200 cl  r273948 : #i103238# clear hard set attributes only if new style set is manually applied
2009-07-13 17:58:07 +0200 cl  r273947 : #i73289# do not expand a toolpanel when it gets enabled
2009-07-08 12:39:49 +0200 sj  r273827 : #i101566# applied patch from cmc to solve font width inconsistencies
2009-07-08 12:11:13 +0200 sj  r273826 : #i87727# added PDFDialog service
2009-07-06 17:22:40 +0200 sj  r273755 : #i103360# fixed a merge problem, no more looping when loading transparence gradients on background page
2009-07-03 14:42:07 +0200 sj  r273701 : #102797# added patch from thb (Adapted customshape coloring)
2009-07-03 14:09:44 +0200 sj  r273696 : #102797# removed warning
2009-07-03 14:01:47 +0200 sj  r273695 : #102797# added patch from thb (Adapted customshape coloring)
2009-07-03 13:13:39 +0200 sj  r273688 : #102797# added patch from thb (Adapted customshape coloring)
2009-07-03 11:25:30 +0200 sj  r273684 : #i103278# fixed import of lines
2009-07-01 16:23:47 +0200 cl  r273599 : #i96820# correctly call setChanged on model if table is modified
2009-07-01 14:43:09 +0200 cl  r273588 : #i8770# Patch: fix missing type provider for pdf export dialog
2009-07-01 14:40:28 +0200 cl  r273586 : #i73871# activate picture bar after converting shape to bitmap
2009-07-01 14:39:05 +0200 cl  r273584 : #i73871# activate picture bar after converting shape to bitmap
2009-07-01 14:04:53 +0200 cl  r273578 : #i73289# PATCH: Disable layout pane on the masterslide
2009-09-09 09:19:53 +00:00

188 lines
5.5 KiB
C++

/*************************************************************************
*
* 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: GraphicObjectBar.cxx,v $
* $Revision: 1.11 $
*
* 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_sd.hxx"
#include "GraphicObjectBar.hxx"
#include <limits.h>
#include <vcl/msgbox.hxx>
#include <svtools/whiter.hxx>
#include <svtools/itempool.hxx>
#include <sfx2/app.hxx>
#include <sfx2/shell.hxx>
#include <svx/svxids.hrc>
#include <sfx2/request.hxx>
#include <sfx2/basedlgs.hxx>
#include <svx/svdograf.hxx>
#include <svx/grfflt.hxx>
#include <svtools/aeitem.hxx>
#include <svx/grafctrl.hxx>
#include <sfx2/objface.hxx>
#include "app.hrc"
#include "res_bmp.hrc"
#include "glob.hrc"
#include "strings.hrc"
#include "DrawDocShell.hxx"
#include "ViewShell.hxx"
#include "Window.hxx"
#include "drawview.hxx"
#include "sdresid.hxx"
#include "drawdoc.hxx"
using namespace sd;
#define GraphicObjectBar
#include "sdslots.hxx"
namespace sd {
// -----------------------
// - GraphicObjectBar -
// -----------------------
SFX_IMPL_INTERFACE( GraphicObjectBar, SfxShell, SdResId( STR_GRAFOBJECTBARSHELL ) )
{
}
// -----------------------------------------------------------------------------
TYPEINIT1( GraphicObjectBar, SfxShell );
// -----------------------------------------------------------------------------
GraphicObjectBar::GraphicObjectBar (
ViewShell* pSdViewShell,
::sd::View* pSdView )
: SfxShell (pSdViewShell->GetViewShell()),
mpView ( pSdView ),
mpViewSh ( pSdViewShell ),
nMappedSlotFilter ( SID_GRFFILTER_INVERT )
{
DrawDocShell* pDocShell = mpViewSh->GetDocSh();
SetPool( &pDocShell->GetPool() );
SetUndoManager( pDocShell->GetUndoManager() );
SetRepeatTarget( mpView );
SetHelpId( SD_IF_SDDRAWGRAFOBJECTBAR );
SetName( String( RTL_CONSTASCII_USTRINGPARAM( "Graphic objectbar" )));
}
// -----------------------------------------------------------------------------
GraphicObjectBar::~GraphicObjectBar()
{
SetRepeatTarget( NULL );
}
// -----------------------------------------------------------------------------
void GraphicObjectBar::GetAttrState( SfxItemSet& rSet )
{
if( mpView )
SvxGrafAttrHelper::GetGrafAttrState( rSet, *mpView );
}
// -----------------------------------------------------------------------------
void GraphicObjectBar::Execute( SfxRequest& rReq )
{
if( mpView )
{
SvxGrafAttrHelper::ExecuteGrafAttr( rReq, *mpView );
Invalidate();
}
}
// -----------------------------------------------------------------------------
void GraphicObjectBar::GetFilterState( SfxItemSet& rSet )
{
const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
BOOL bEnable = FALSE;
if( rMarkList.GetMarkCount() == 1 )
{
SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
if( pObj && pObj->ISA( SdrGrafObj ) && ( ( (SdrGrafObj*) pObj )->GetGraphicType() == GRAPHIC_BITMAP ) )
bEnable = TRUE;
}
if( !bEnable )
SvxGraphicFilter::DisableGraphicFilterSlots( rSet );
}
// -----------------------------------------------------------------------------
void GraphicObjectBar::ExecuteFilter( SfxRequest& rReq )
{
const SdrMarkList& rMarkList = mpView->GetMarkedObjectList();
if( rMarkList.GetMarkCount() == 1 )
{
SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
if( pObj && pObj->ISA( SdrGrafObj ) && ( (SdrGrafObj*) pObj )->GetGraphicType() == GRAPHIC_BITMAP )
{
GraphicObject aFilterObj( ( (SdrGrafObj*) pObj )->GetGraphicObject() );
if( SVX_GRAPHICFILTER_ERRCODE_NONE ==
SvxGraphicFilter::ExecuteGrfFilterSlot( rReq, aFilterObj ) )
{
SdrPageView* pPageView = mpView->GetSdrPageView();
if( pPageView )
{
SdrGrafObj* pFilteredObj = (SdrGrafObj*) pObj->Clone();
String aStr( mpView->GetDescriptionOfMarkedObjects() );
aStr.Append( sal_Unicode(' ') );
aStr.Append( String( SdResId( STR_UNDO_GRAFFILTER ) ) );
mpView->BegUndo( aStr );
pFilteredObj->SetGraphicObject( aFilterObj );
::sd::View* const pView = mpView;
pView->ReplaceObjectAtView( pObj, *pPageView, pFilteredObj );
pView->EndUndo();
return;
}
}
}
}
Invalidate();
}
} // end of namespace sd