summaryrefslogtreecommitdiff
path: root/cui/source/tabpages/tabarea.cxx
diff options
context:
space:
mode:
authorMathias Bauer <mba@openoffice.org>2009-10-31 00:36:06 +0100
committerMathias Bauer <mba@openoffice.org>2009-10-31 00:36:06 +0100
commitd32b3a714fe55892bdead03502c5a9b0e77fa61d (patch)
tree05a682f7a6b9210ddeb38b2afb05c7886caaf4cf /cui/source/tabpages/tabarea.cxx
parent7176bc595f46ef90375de21314f86e02249b69f8 (diff)
#i106421#: move svx/source/cui to cui
Diffstat (limited to 'cui/source/tabpages/tabarea.cxx')
-rw-r--r--cui/source/tabpages/tabarea.cxx370
1 files changed, 370 insertions, 0 deletions
diff --git a/cui/source/tabpages/tabarea.cxx b/cui/source/tabpages/tabarea.cxx
new file mode 100644
index 000000000000..412b1affe5c4
--- /dev/null
+++ b/cui/source/tabpages/tabarea.cxx
@@ -0,0 +1,370 @@
+/*************************************************************************
+ *
+ * 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: tabarea.cxx,v $
+ * $Revision: 1.13 $
+ *
+ * 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_cui.hxx"
+
+// include ---------------------------------------------------------------
+
+#include <tools/ref.hxx>
+#include <sfx2/app.hxx>
+#include <sfx2/objsh.hxx>
+#include <vcl/msgbox.hxx>
+#include <unotools/pathoptions.hxx>
+#include <svx/svdmark.hxx>
+#include <svx/svdobj.hxx>
+#include <svx/svdview.hxx>
+
+#define _SVX_TABAREA_CXX
+
+#include <svx/dialogs.hrc>
+#include <svx/xtable.hxx>
+#include "svx/globl3d.hxx"
+#include <svx/svdmodel.hxx>
+#include "svx/drawitem.hxx"
+#include "cuitabarea.hxx"
+#include "tabarea.hrc"
+#include "dlgname.hxx"
+//#include "dlgname.hrc"
+#include <svx/dialmgr.hxx>
+
+#define DLGWIN this->GetParent()->GetParent()
+
+/*************************************************************************
+|*
+|* Konstruktor des Tab-Dialogs: Fuegt die Seiten zum Dialog hinzu
+|*
+|************************************************************************/
+
+SvxAreaTabDialog::SvxAreaTabDialog
+(
+ Window* pParent,
+ const SfxItemSet* pAttr,
+ SdrModel* pModel,
+ const SdrView* /* pSdrView */
+) :
+
+ SfxTabDialog( pParent, SVX_RES( RID_SVXDLG_AREA ), pAttr ),
+
+ mpDrawModel ( pModel ),
+// mpView ( pSdrView ),
+ mpColorTab ( pModel->GetColorTable() ),
+ mpNewColorTab ( pModel->GetColorTable() ),
+ mpGradientList ( pModel->GetGradientList() ),
+ mpNewGradientList ( pModel->GetGradientList() ),
+ mpHatchingList ( pModel->GetHatchList() ),
+ mpNewHatchingList ( pModel->GetHatchList() ),
+ mpBitmapList ( pModel->GetBitmapList() ),
+ mpNewBitmapList ( pModel->GetBitmapList() ),
+ mrOutAttrs ( *pAttr ),
+ mnColorTableState ( CT_NONE ),
+ mnBitmapListState ( CT_NONE ),
+ mnGradientListState ( CT_NONE ),
+ mnHatchingListState ( CT_NONE ),
+ mnPageType( PT_AREA ),
+ mnDlgType( 0 ),
+ mnPos( 0 ),
+ mbAreaTP( sal_False ),
+ mbDeleteColorTable( TRUE )
+{
+ FreeResource();
+
+ AddTabPage( RID_SVXPAGE_AREA, SvxAreaTabPage::Create, 0 );
+ AddTabPage( RID_SVXPAGE_SHADOW, SvxShadowTabPage::Create, 0 );
+ AddTabPage( RID_SVXPAGE_TRANSPARENCE, SvxTransparenceTabPage::Create, 0);
+ AddTabPage( RID_SVXPAGE_COLOR, SvxColorTabPage::Create, 0 );
+ AddTabPage( RID_SVXPAGE_GRADIENT, SvxGradientTabPage::Create, 0 );
+ AddTabPage( RID_SVXPAGE_HATCH, SvxHatchTabPage::Create, 0 );
+ AddTabPage( RID_SVXPAGE_BITMAP, SvxBitmapTabPage::Create, 0);
+
+ SetCurPageId( RID_SVXPAGE_AREA );
+
+ CancelButton& rBtnCancel = GetCancelButton();
+ rBtnCancel.SetClickHdl( LINK( this, SvxAreaTabDialog, CancelHdlImpl ) );
+//! rBtnCancel.SetText( SVX_RESSTR( RID_SVXSTR_CLOSE ) );
+}
+
+// -----------------------------------------------------------------------
+
+SvxAreaTabDialog::~SvxAreaTabDialog()
+{
+}
+
+
+// -----------------------------------------------------------------------
+
+void SvxAreaTabDialog::SavePalettes()
+{
+ SfxObjectShell* pShell = SfxObjectShell::Current();
+ /*uno::Reference< frame::XDispatchProvider > xDispatchProvider;
+ if ( !pShell )
+ {
+ uno::Reference< frame::XModel> xModel = mpDrawModel->getUnoModel();
+ if ( xModel.is() )
+ xDispatchProvider.set(xModel->getCurrentController(),uno::UNO_QUERY);
+ }*/
+ if( mpNewColorTab != mpDrawModel->GetColorTable() )
+ {
+ if(mbDeleteColorTable)
+ delete mpDrawModel->GetColorTable();
+ mpDrawModel->SetColorTable( mpNewColorTab );
+ SvxColorTableItem aColorTableItem( mpNewColorTab, SID_COLOR_TABLE );
+ if ( pShell )
+ pShell->PutItem( aColorTableItem );
+ else
+ {
+ mpDrawModel->GetItemPool().Put(aColorTableItem,SID_COLOR_TABLE);
+ }
+ mpColorTab = mpDrawModel->GetColorTable();
+ }
+ if( mpNewGradientList != mpDrawModel->GetGradientList() )
+ {
+ delete mpDrawModel->GetGradientList();
+ mpDrawModel->SetGradientList( mpNewGradientList );
+ SvxGradientListItem aItem( mpNewGradientList, SID_GRADIENT_LIST );
+ if ( pShell )
+ pShell->PutItem( aItem );
+ else
+ {
+ mpDrawModel->GetItemPool().Put(aItem,SID_GRADIENT_LIST);
+ }
+ mpGradientList = mpDrawModel->GetGradientList();
+ }
+ if( mpNewHatchingList != mpDrawModel->GetHatchList() )
+ {
+ delete mpDrawModel->GetHatchList();
+ mpDrawModel->SetHatchList( mpNewHatchingList );
+ SvxHatchListItem aItem( mpNewHatchingList, SID_HATCH_LIST );
+ if ( pShell )
+ pShell->PutItem( aItem );
+ else
+ {
+ mpDrawModel->GetItemPool().Put(aItem,SID_HATCH_LIST);
+ }
+ mpHatchingList = mpDrawModel->GetHatchList();
+ }
+ if( mpNewBitmapList != mpDrawModel->GetBitmapList() )
+ {
+ delete mpDrawModel->GetBitmapList();
+ mpDrawModel->SetBitmapList( mpNewBitmapList );
+ SvxBitmapListItem aItem( mpNewBitmapList, SID_BITMAP_LIST );
+ if ( pShell )
+ pShell->PutItem( aItem );
+ else
+ {
+ mpDrawModel->GetItemPool().Put(aItem,SID_BITMAP_LIST);
+ }
+ mpBitmapList = mpDrawModel->GetBitmapList();
+ }
+
+ // Speichern der Tabellen, wenn sie geaendert wurden.
+
+ const String aPath( SvtPathOptions().GetPalettePath() );
+
+ if( mnHatchingListState & CT_MODIFIED )
+ {
+ mpHatchingList->SetPath( aPath );
+ mpHatchingList->Save();
+
+ SvxHatchListItem aItem( mpHatchingList, SID_HATCH_LIST );
+ // ToolBoxControls werden benachrichtigt:
+ if ( pShell )
+ pShell->PutItem( aItem );
+ else
+ {
+ mpDrawModel->GetItemPool().Put(aItem);
+ }
+ }
+
+ if( mnBitmapListState & CT_MODIFIED )
+ {
+ mpBitmapList->SetPath( aPath );
+ mpBitmapList->Save();
+
+ SvxBitmapListItem aItem( mpBitmapList, SID_BITMAP_LIST );
+ // ToolBoxControls werden benachrichtigt:
+ if ( pShell )
+ pShell->PutItem( aItem );
+ else
+ {
+ mpDrawModel->GetItemPool().Put(aItem);
+ }
+ }
+
+ if( mnGradientListState & CT_MODIFIED )
+ {
+ mpGradientList->SetPath( aPath );
+ mpGradientList->Save();
+
+ SvxGradientListItem aItem( mpGradientList, SID_GRADIENT_LIST );
+ // ToolBoxControls werden benachrichtigt:
+ if ( pShell )
+ pShell->PutItem( aItem );
+ else
+ {
+ mpDrawModel->GetItemPool().Put(aItem);
+ }
+ }
+
+ if( mnColorTableState & CT_MODIFIED )
+ {
+ mpColorTab->SetPath( aPath );
+ mpColorTab->Save();
+
+ SvxColorTableItem aItem( mpColorTab, SID_COLOR_TABLE );
+ // ToolBoxControls werden benachrichtigt:
+ if ( pShell )
+ pShell->PutItem( aItem );
+ else
+ {
+ mpDrawModel->GetItemPool().Put(aItem);
+ }
+ }
+}
+// -----------------------------------------------------------------------
+
+short SvxAreaTabDialog::Ok()
+{
+ SavePalettes();
+
+ // Es wird RET_OK zurueckgeliefert, wenn wenigstens eine
+ // TabPage in FillItemSet() TRUE zurueckliefert. Dieses
+ // geschieht z.Z. standardmaessig.
+ return( SfxTabDialog::Ok() );
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK_INLINE_START( SvxAreaTabDialog, CancelHdlImpl, void *, EMPTYARG)
+{
+ SavePalettes();
+
+ EndDialog( RET_CANCEL );
+ return 0;
+}
+IMPL_LINK_INLINE_END( SvxAreaTabDialog, CancelHdlImpl, void *, p )
+
+// -----------------------------------------------------------------------
+
+void SvxAreaTabDialog::PageCreated( USHORT nId, SfxTabPage &rPage )
+{
+ switch( nId )
+ {
+ case RID_SVXPAGE_AREA:
+ ( (SvxAreaTabPage&) rPage ).SetColorTable( mpColorTab );
+ ( (SvxAreaTabPage&) rPage ).SetGradientList( mpGradientList );
+ ( (SvxAreaTabPage&) rPage ).SetHatchingList( mpHatchingList );
+ ( (SvxAreaTabPage&) rPage ).SetBitmapList( mpBitmapList );
+ //CHINA001 ( (SvxAreaTabPage&) rPage ).SetPageType( &mnPageType );
+ ( (SvxAreaTabPage&) rPage ).SetPageType( mnPageType ); //add CHINA001
+ //CHINA001 ( (SvxAreaTabPage&) rPage ).SetDlgType( &mnDlgType );
+ ( (SvxAreaTabPage&) rPage ).SetDlgType( mnDlgType );//add CHINA001
+ //CHINA001 ( (SvxAreaTabPage&) rPage ).SetPos( &nPos );
+ ( (SvxAreaTabPage&) rPage ).SetPos( mnPos );//add CHINA001
+ ( (SvxAreaTabPage&) rPage ).SetAreaTP( &mbAreaTP );
+ ( (SvxAreaTabPage&) rPage ).SetGrdChgd( &mnGradientListState );
+ ( (SvxAreaTabPage&) rPage ).SetHtchChgd( &mnHatchingListState );
+ ( (SvxAreaTabPage&) rPage ).SetBmpChgd( &mnBitmapListState );
+ ( (SvxAreaTabPage&) rPage ).SetColorChgd( &mnColorTableState );
+ ( (SvxAreaTabPage&) rPage ).Construct();
+ // ActivatePage() wird das erste mal nicht gerufen
+ ( (SvxAreaTabPage&) rPage ).ActivatePage( mrOutAttrs );
+
+ break;
+
+ case RID_SVXPAGE_SHADOW:
+ {
+ ( (SvxShadowTabPage&) rPage ).SetColorTable( mpColorTab );
+ ( (SvxShadowTabPage&) rPage ).SetPageType( mnPageType );//CHINA001 ( (SvxShadowTabPage&) rPage ).SetPageType( &mnPageType );
+ ( (SvxShadowTabPage&) rPage ).SetDlgType( mnDlgType );//CHINA001 ( (SvxShadowTabPage&) rPage ).SetDlgType( &mnDlgType );
+ //( (SvxShadowTabPage&) rPage ).SetPos( &nPos );
+ ( (SvxShadowTabPage&) rPage ).SetAreaTP( &mbAreaTP );
+ ( (SvxShadowTabPage&) rPage ).SetColorChgd( &mnColorTableState );
+ ( (SvxShadowTabPage&) rPage ).Construct();
+ }
+ break;
+
+ case RID_SVXPAGE_GRADIENT:
+ ( (SvxGradientTabPage&) rPage ).SetColorTable( mpColorTab );
+ ( (SvxGradientTabPage&) rPage ).SetGradientList( mpGradientList );
+ ( (SvxGradientTabPage&) rPage ).SetPageType( &mnPageType );
+ ( (SvxGradientTabPage&) rPage ).SetDlgType( &mnDlgType );
+ ( (SvxGradientTabPage&) rPage ).SetPos( &mnPos );
+ ( (SvxGradientTabPage&) rPage ).SetAreaTP( &mbAreaTP );
+ ( (SvxGradientTabPage&) rPage ).SetGrdChgd( &mnGradientListState );
+ ( (SvxGradientTabPage&) rPage ).SetColorChgd( &mnColorTableState );
+ ( (SvxGradientTabPage&) rPage ).Construct();
+ break;
+
+ case RID_SVXPAGE_HATCH:
+ ( (SvxHatchTabPage&) rPage ).SetColorTable( mpColorTab );
+ ( (SvxHatchTabPage&) rPage ).SetHatchingList( mpHatchingList );
+ ( (SvxHatchTabPage&) rPage ).SetPageType( &mnPageType );
+ ( (SvxHatchTabPage&) rPage ).SetDlgType( &mnDlgType );
+ ( (SvxHatchTabPage&) rPage ).SetPos( &mnPos );
+ ( (SvxHatchTabPage&) rPage ).SetAreaTP( &mbAreaTP );
+ ( (SvxHatchTabPage&) rPage ).SetHtchChgd( &mnHatchingListState );
+ ( (SvxHatchTabPage&) rPage ).SetColorChgd( &mnColorTableState );
+ ( (SvxHatchTabPage&) rPage ).Construct();
+ break;
+
+ case RID_SVXPAGE_BITMAP:
+ ( (SvxBitmapTabPage&) rPage ).SetColorTable( mpColorTab );
+ ( (SvxBitmapTabPage&) rPage ).SetBitmapList( mpBitmapList );
+ ( (SvxBitmapTabPage&) rPage ).SetPageType( &mnPageType );
+ ( (SvxBitmapTabPage&) rPage ).SetDlgType( &mnDlgType );
+ ( (SvxBitmapTabPage&) rPage ).SetPos( &mnPos );
+ ( (SvxBitmapTabPage&) rPage ).SetAreaTP( &mbAreaTP );
+ ( (SvxBitmapTabPage&) rPage ).SetBmpChgd( &mnBitmapListState );
+ ( (SvxBitmapTabPage&) rPage ).SetColorChgd( &mnColorTableState );
+ ( (SvxBitmapTabPage&) rPage ).Construct();
+ break;
+
+ case RID_SVXPAGE_COLOR:
+ ( (SvxColorTabPage&) rPage ).SetColorTable( mpColorTab );
+ ( (SvxColorTabPage&) rPage ).SetPageType( &mnPageType );
+ ( (SvxColorTabPage&) rPage ).SetDlgType( &mnDlgType );
+ ( (SvxColorTabPage&) rPage ).SetPos( &mnPos );
+ ( (SvxColorTabPage&) rPage ).SetAreaTP( &mbAreaTP );
+ ( (SvxColorTabPage&) rPage ).SetColorChgd( &mnColorTableState );
+ ( (SvxColorTabPage&) rPage ).SetDeleteColorTable( mbDeleteColorTable );
+ ( (SvxColorTabPage&) rPage ).Construct();
+ break;
+
+ case RID_SVXPAGE_TRANSPARENCE:
+ ( (SvxTransparenceTabPage&) rPage ).SetPageType( mnPageType );//CHINA001 ( (SvxTransparenceTabPage&) rPage ).SetPageType( &mnPageType );
+ ( (SvxTransparenceTabPage&) rPage ).SetDlgType( mnDlgType );//CHINA001 ( (SvxTransparenceTabPage&) rPage ).SetDlgType( &mnDlgType );
+ ( (SvxTransparenceTabPage&) rPage ).Construct();
+ break;
+
+ }
+}
+
+