Added: openoffice/branches/sidebar/main/svx/inc/svx/nbdtmg.hxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/inc/svx/nbdtmg.hxx?rev=1463154&view=auto
==============================================================================
--- openoffice/branches/sidebar/main/svx/inc/svx/nbdtmg.hxx (added)
+++ openoffice/branches/sidebar/main/svx/inc/svx/nbdtmg.hxx Mon Apr  1 14:43:34 
2013
@@ -0,0 +1,412 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2009.
+ * Copyright 2009. by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: nbdtmg.hxx,v $
+ * $Revision: 1.00.00.0 $
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+/***********************************************************************
+ *
+ *     Tool to Visualize Internal Data Structure for Productive Development
+ *     It is a developer's tool from Lotus Symphony Documents Editor Team
+ *
+ *     This file provides developers of OpenOffice.org a visualize tool for 
tracing 
+ *     the internal data structure and its parameters. 
+ *
+ *     Date: 05/25/2009
+ *
+ ***********************************************************************/
+
+#ifndef _NBDTMG_HXX
+#define _NBDTMG_HXX
+#include "svx/svxdllapi.h"
+
+#ifndef _SVX_NUMITEM_HXX
+#include <editeng/numitem.hxx>
+#endif
+#define _SVSTDARR_USHORTS
+#include <svl/svstdarr.hxx>
+#include <svl/svarray.hxx>
+#ifndef _LIST_HXX
+#include <tools/list.hxx>
+#endif
+#ifndef _SV_FONT_HXX
+#include <vcl/font.hxx>
+#endif
+
+namespace svx { namespace sidebar {
+
+#define DEFAULT_BULLET_TYPES                                                   
8
+#define DEFAULT_NONE                                                           
        10
+#define DEFAULT_NUM_TYPE_MEMBER                                                
        5 
+#define DEFAULT_NUM_VALUSET_COUNT                                              
8
+#define DEFAULT_NUMBERING_CACHE_FORMAT_VERSION                 0x10
+
+typedef sal_uInt16 NBOType;
+namespace eNBOType
+{
+    const NBOType BULLETS = 0x01;
+    const NBOType GRAPHICBULLETS = 0x02;
+    const NBOType NUMBERING = 0x03;
+    const NBOType OUTLINE = 0x04;
+    const NBOType MIXBULLETS = 0x05;
+}
+
+typedef sal_uInt16 NBType;
+namespace eNBType
+{
+    const NBOType BULLETS = 0x01;
+    const NBOType GRAPHICBULLETS = 0x02;
+}
+
+class  SVX_DLLPUBLIC NumSettings_Impl
+{
+       public:
+               short           nNumberType;
+               short           nParentNumbering;
+               SvxNumberFormat::SvxNumLabelFollowedBy eLabelFollowedBy;
+               long            nTabValue;
+               SvxAdjust       eNumAlign;
+               long                    nNumAlignAt;
+               long                    nNumIndentAt;
+               rtl::OUString   sPrefix;
+               rtl::OUString   sSuffix;
+               rtl::OUString   sBulletChar;
+               rtl::OUString   sBulletFont;
+               SvxBrushItem   *pBrushItem;
+               Size                    aSize;
+
+       public:
+               NumSettings_Impl() :
+                       nNumberType(0),
+                               pBrushItem(0),
+                               aSize(0,0),
+                       nParentNumbering(0)
+                       {}
+               ~NumSettings_Impl(){}
+};
+/*
+typedef NumSettings_Impl* NumSettings_ImplPtr;
+SV_DECL_PTRARR_DEL(NumSettingsArr_Impl,NumSettings_ImplPtr,8,4)
+SV_IMPL_PTRARR( NumSettingsArr_Impl, NumSettings_ImplPtr )*/
+
+class NumSettingsArr_Impl;
+
+class  SVX_DLLPUBLIC BulletsSettings
+{
+       public:
+               sal_Bool                bIsCustomized;
+               rtl::OUString   sDescription;
+               NBType          eType;          
+       public:
+               BulletsSettings(NBType eTy) :
+                       bIsCustomized(sal_False),                       
+                       eType(eTy)
+                       {}
+               virtual ~BulletsSettings(){}
+};
+
+class  SVX_DLLPUBLIC BulletsSettings_Impl:public BulletsSettings
+{
+       public:         
+               sal_Unicode     cBulletChar;
+               //rtl::OUString sBulletFont;
+               Font                    aFont;
+               
+       public:
+               BulletsSettings_Impl(NBType eTy) :
+                       BulletsSettings(eTy)                    
+                       {}
+               virtual ~BulletsSettings_Impl(){}
+};
+
+class  SVX_DLLPUBLIC GrfBulDataRelation: public BulletsSettings
+{
+       public:
+               String  sGrfName;
+               sal_uInt16      nTabIndex;
+               sal_uInt16      nGallaryIndex;
+               const Graphic*  pGrfObj;
+               Size aSize;
+       GrfBulDataRelation(NBType eTy):
+               BulletsSettings(eTy),
+               nTabIndex((sal_uInt16)0xFFFF),
+               nGallaryIndex((sal_uInt16)0xFFFF),
+               aSize(0,0),
+               pGrfObj(0)
+       {}
+       virtual ~GrfBulDataRelation(){}
+};
+
+class  SVX_DLLPUBLIC MixBulletsSettings_Impl
+{
+       public:
+               NBType                  eType;
+               sal_uInt16                      nIndex; //index in the tab page 
display
+               sal_uInt16                      nIndexDefault;
+               BulletsSettings*        pBullets;               
+       public:
+               MixBulletsSettings_Impl(NBType eTy) :                   
+                       eType(eTy),
+                       nIndex((sal_uInt16)0xFFFF),
+                       nIndexDefault((sal_uInt16)0xFFFF),
+                       pBullets(0)
+                       {}
+               ~MixBulletsSettings_Impl(){}
+};
+
+class  SVX_DLLPUBLIC NumberSettings_Impl
+{
+       public:
+               sal_Bool                bIsCustomized;
+               rtl::OUString   sDescription;
+               sal_uInt16              nIndex; //index in the tab page display
+               sal_uInt16              nIndexDefault;
+               NumSettings_Impl        *pNumSetting;
+       public:
+               NumberSettings_Impl() :
+                       bIsCustomized(sal_False),
+                       nIndex((sal_uInt16)0xFFFF),
+                       nIndexDefault((sal_uInt16)0xFFFF),
+                       pNumSetting(NULL)
+                       {}
+               ~NumberSettings_Impl(){}
+};
+
+class NumberSettingsArr_Impl;
+
+class  SVX_DLLPUBLIC OutlineSettings_Impl
+{
+       public:
+               sal_Bool                bIsCustomized;
+               rtl::OUString   sDescription;
+               NumSettingsArr_Impl     *pNumSettingsArr;
+       public:
+               OutlineSettings_Impl() :
+                       bIsCustomized(sal_False),
+                       pNumSettingsArr(NULL)
+                       {}
+               ~OutlineSettings_Impl(){
+               }
+};
+
+class SVX_DLLPUBLIC NBOTypeMgrBase
+{
+       public:
+               NBOType                 eType;
+       private:
+               const SfxItemSet*       pSet;
+               SfxMapUnit              eCoreUnit;
+               //Sym3_2508    store the attributes passed from pSet
+               String                  aNumCharFmtName;
+               void                    StoreBulCharFmtName_impl();
+               void                    StoreMapUnit_impl();
+
+       public:
+               NBOTypeMgrBase(const NBOType 
aType):eType(aType),pSet(0),eCoreUnit(SFX_MAPUNIT_TWIP),aNumCharFmtName(String()){}
+               NBOTypeMgrBase(const NBOType aType,const SfxItemSet* 
pArg):eType(aType),pSet(pArg),eCoreUnit(SFX_MAPUNIT_TWIP),aNumCharFmtName(String()){}
+               NBOTypeMgrBase(const NBOTypeMgrBase& aTypeMgr){eType = 
aTypeMgr.eType;pSet = aTypeMgr.pSet;eCoreUnit = 
aTypeMgr.eCoreUnit;aNumCharFmtName = aTypeMgr.aNumCharFmtName; }
+               virtual ~NBOTypeMgrBase() {}    
+               virtual void Init()=0;
+               virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& 
aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0)=0;
+               virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 
nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF)=0;
+               virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 
nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF, sal_Bool isDefault=false,sal_Bool 
isResetSize=false)=0;
+               virtual String GetDescription(sal_uInt16 nIndex,sal_Bool 
isDefault=false)=0;
+               virtual sal_Bool IsCustomized(sal_uInt16 nIndex)=0;
+               sal_uInt16 IsSingleLevel(sal_uInt16 nCurLevel);
+               const SfxItemSet* GetItems() { return pSet;}
+               //Sym3_2508    store the attributes passed from pSet
+               void SetItems(const SfxItemSet* pArg) { pSet = 
pArg;StoreBulCharFmtName_impl();StoreMapUnit_impl();}
+       protected:
+               String GetBulCharFmtName();
+               SfxMapUnit GetMapUnit();
+       protected:
+               sal_Bool        bIsLoading;
+               void    ImplLoad(String filename);
+               void    ImplStore(String filename);
+               
+};
+
+
+class SVX_DLLPUBLIC BulletsTypeMgr: public NBOTypeMgrBase
+{
+       friend class OutlineTypeMgr;
+       friend class NumberingTypeMgr;
+       public:
+               static sal_Unicode aDynamicBulletTypes[DEFAULT_BULLET_TYPES];
+               static sal_Unicode aDynamicRTLBulletTypes[DEFAULT_BULLET_TYPES];
+               static BulletsSettings_Impl* 
pActualBullets[DEFAULT_BULLET_TYPES];
+               static BulletsTypeMgr* _instance;
+       public:         
+               BulletsTypeMgr(const NBOType aType);
+               BulletsTypeMgr(const NBOType aType,const SfxItemSet* pArg);
+               BulletsTypeMgr(const BulletsTypeMgr& aTypeMgr);
+               virtual ~BulletsTypeMgr() {}
+               virtual void Init();                    
+               virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& 
aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0);
+               virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 
nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF);
+               virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 
nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool 
isResetSize=false);     
+               virtual String GetDescription(sal_uInt16 nIndex,sal_Bool 
isDefault=false);
+               virtual sal_Bool IsCustomized(sal_uInt16 nIndex);
+               sal_Unicode GetBulChar(sal_uInt16 nIndex);
+               Font GetBulCharFont(sal_uInt16 nIndex);
+               static BulletsTypeMgr* GetInstance()
+               {
+                        if ( _instance == 0 )
+                       {
+                           _instance = new BulletsTypeMgr(eNBOType::BULLETS);
+                       }
+
+                       return _instance;
+               }
+               
+};
+
+class SVX_DLLPUBLIC GraphyicBulletsTypeMgr: public NBOTypeMgrBase
+{
+       friend class OutlineTypeMgr;
+       friend class NumberingTypeMgr;
+       public:
+               List    aGrfDataLst;
+               static GraphyicBulletsTypeMgr* _instance;
+       public:         
+               GraphyicBulletsTypeMgr(const NBOType aType);
+               GraphyicBulletsTypeMgr(const NBOType aType,const SfxItemSet* 
pArg);
+               GraphyicBulletsTypeMgr(const GraphyicBulletsTypeMgr& aTypeMgr);
+               virtual ~GraphyicBulletsTypeMgr() {}
+               virtual void Init();                    
+               virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& 
aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0);
+               virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 
nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF);
+               virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 
nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool 
isResetSize=false);     
+               virtual String GetDescription(sal_uInt16 nIndex,sal_Bool 
isDefault=false);
+               virtual sal_Bool IsCustomized(sal_uInt16 nIndex);
+               String GetGrfName(sal_uInt16 nIndex);
+               static GraphyicBulletsTypeMgr* GetInstance()
+               {
+                        if ( _instance == 0 )
+                       {
+                           _instance = new 
GraphyicBulletsTypeMgr(eNBOType::BULLETS);
+                       }
+
+                       return _instance;
+               }
+               
+};
+
+class SVX_DLLPUBLIC MixBulletsTypeMgr: public NBOTypeMgrBase
+{
+       friend class OutlineTypeMgr;
+       friend class NumberingTypeMgr;
+       public:         
+               static MixBulletsSettings_Impl* 
pActualBullets[DEFAULT_BULLET_TYPES];
+               static MixBulletsSettings_Impl* 
pDefaultActualBullets[DEFAULT_BULLET_TYPES];
+               static MixBulletsTypeMgr* _instance;
+       public:         
+               MixBulletsTypeMgr(const NBOType aType);
+               MixBulletsTypeMgr(const NBOType aType,const SfxItemSet* pArg);
+               MixBulletsTypeMgr(const MixBulletsTypeMgr& aTypeMgr);
+               virtual ~MixBulletsTypeMgr() {}
+               virtual void Init();                    
+               virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& 
aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0);
+               virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 
nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF);
+               virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 
nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool 
isResetSize=false);     
+               virtual String GetDescription(sal_uInt16 nIndex,sal_Bool 
isDefault=false);
+               virtual sal_Bool IsCustomized(sal_uInt16 nIndex);               
+               static MixBulletsTypeMgr* GetInstance()
+               {
+                        if ( _instance == 0 )
+                       {
+                           _instance = new 
MixBulletsTypeMgr(eNBOType::MIXBULLETS);
+                       }
+
+                       return _instance;
+               }
+               
+};
+
+class SVX_DLLPUBLIC NumberingTypeMgr: public NBOTypeMgrBase
+{
+       public:
+               //NumSettingsArr_Impl*          pNumSettingsArr;
+               NumberSettingsArr_Impl*         pNumberSettingsArr;
+               NumberSettingsArr_Impl*         pDefaultNumberSettingsArr;
+               static NumberingTypeMgr*        _instance;
+       public:         
+               NumberingTypeMgr(const NBOType aType);
+               NumberingTypeMgr(const NBOType aType,const SfxItemSet* pArg);
+               NumberingTypeMgr(const NumberingTypeMgr& aTypeMgr);
+               virtual ~NumberingTypeMgr() {}
+               virtual void Init();
+               virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& 
aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0);
+               virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 
nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF);
+               virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 
nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool 
isResetSize=false);     
+               virtual String GetDescription(sal_uInt16 nIndex,sal_Bool 
isDefault=false);
+               virtual sal_Bool IsCustomized(sal_uInt16 nIndex);
+               sal_uInt16 GetNumCount() const;
+               NumberSettings_Impl* GetNumSettingByIndex(sal_uInt16 nIndex) 
const;
+               static NumberingTypeMgr* GetInstance()
+               {
+                        if ( _instance == 0 )
+                       {
+                           _instance = new 
NumberingTypeMgr(eNBOType::NUMBERING);
+                       }
+
+                       return _instance;
+               }
+};
+
+class SVX_DLLPUBLIC OutlineTypeMgr: public NBOTypeMgrBase
+{
+       public:
+               //NumSettingsArr_Impl*          
pNumSettingsArrs[DEFAULT_NUM_VALUSET_COUNT];
+               OutlineSettings_Impl*           
pOutlineSettingsArrs[DEFAULT_NUM_VALUSET_COUNT];
+               OutlineSettings_Impl*           
pDefaultOutlineSettingsArrs[DEFAULT_NUM_VALUSET_COUNT];
+               static OutlineTypeMgr*  _instance;
+       public:         
+               OutlineTypeMgr(const NBOType aType);
+               OutlineTypeMgr(const NBOType aType,const SfxItemSet* pArg);
+               OutlineTypeMgr(const OutlineTypeMgr& aTypeMgr);
+               virtual ~OutlineTypeMgr() {}
+               virtual void Init();
+               virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& 
aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0);
+               virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 
nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF);
+               virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 
nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool 
isResetSize=false);     
+               virtual String GetDescription(sal_uInt16 nIndex,sal_Bool 
isDefault=false);
+               virtual sal_Bool IsCustomized(sal_uInt16 nIndex);
+               static OutlineTypeMgr* GetInstance()
+               {
+                        if ( _instance == 0 )
+                       {
+                           _instance = new OutlineTypeMgr(eNBOType::OUTLINE);
+                       }
+
+                       return _instance;
+               }
+};
+}}
+#endif
+

Propchange: openoffice/branches/sidebar/main/svx/inc/svx/nbdtmg.hxx
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/sidebar/main/svx/inc/svx/nbdtmgfact.hxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/inc/svx/nbdtmgfact.hxx?rev=1463154&view=auto
==============================================================================
--- openoffice/branches/sidebar/main/svx/inc/svx/nbdtmgfact.hxx (added)
+++ openoffice/branches/sidebar/main/svx/inc/svx/nbdtmgfact.hxx Mon Apr  1 
14:43:34 2013
@@ -0,0 +1,59 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2009.
+ * Copyright 2009. by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: nbdtmgfact.hxx,v $
+ * $Revision: 1.00.00.0 $
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+/********************************************************************************
+ *
+ *     Tool to Visualize Internal Data Structure for Productive Development
+ *     It is a developer's tool from Lotus Symphony Documents Editor Team
+ *
+ *     This file implements the base abstract exporter and 2 inherited 
sub-classes for 
+ *     the internal data structure tracer. 
+ *
+ *     Date: 05/25/2009
+ *
+ 
********************************************************************************/
+
+#ifndef _NBDTMGFACT_HXX
+#define _NBDTMGFACT_HXX
+#ifndef _NBDTMG_HXX
+#include "nbdtmg.hxx"
+#endif
+namespace svx { namespace sidebar {
+class SVX_DLLPUBLIC NBOutlineTypeMgrFact
+{
+public:
+       static NBOTypeMgrBase* CreateInstance(const NBOType aType);
+       NBOutlineTypeMgrFact();
+       virtual ~NBOutlineTypeMgrFact() {}
+};
+}}
+#endif
+

Propchange: openoffice/branches/sidebar/main/svx/inc/svx/nbdtmgfact.hxx
------------------------------------------------------------------------------
    svn:executable = *

Added: 
openoffice/branches/sidebar/main/svx/inc/svx/sdr/table/tablecontroller.hxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/inc/svx/sdr/table/tablecontroller.hxx?rev=1463154&view=auto
==============================================================================
--- openoffice/branches/sidebar/main/svx/inc/svx/sdr/table/tablecontroller.hxx 
(added)
+++ openoffice/branches/sidebar/main/svx/inc/svx/sdr/table/tablecontroller.hxx 
Mon Apr  1 14:43:34 2013
@@ -0,0 +1,169 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+
+
+#ifndef _SVX_TABLECONTROLLER_HXX_
+#define _SVX_TABLECONTROLLER_HXX_
+
+#include <com/sun/star/util/XModifyListener.hpp>
+#include <com/sun/star/table/XTable.hpp>
+#include <rtl/ref.hxx>
+
+#include <svx/sdr/overlay/overlayobjectlist.hxx>
+#include <svx/selectioncontroller.hxx>
+#include <svx/svdotable.hxx>
+#include <svx/svdview.hxx>
+//#include <tablemodel.hxx>
+
+class SdrObjEditView;
+class SdrObject;
+class SfxItemSet;
+
+namespace sdr { namespace table {
+
+class TableModel;
+
+const sal_Int16 SELTYPE_NONE = 0;
+const sal_Int16 SELTYPE_MOUSE = 1;
+const sal_Int16 SELTYPE_KEYS = 2;
+
+class SVX_DLLPUBLIC SvxTableController: public sdr::SelectionController
+{
+public:
+    SVX_DLLPRIVATE SvxTableController( SdrObjEditView* pView, const SdrObject* 
pObj );
+    SVX_DLLPRIVATE virtual ~SvxTableController();
+
+    // from sdr::SelectionController
+    SVX_DLLPRIVATE virtual bool onKeyInput(const KeyEvent& rKEvt, Window* 
pWin);
+    SVX_DLLPRIVATE virtual bool onMouseButtonDown(const MouseEvent& rMEvt, 
Window* pWin);
+    SVX_DLLPRIVATE virtual bool onMouseButtonUp(const MouseEvent& rMEvt, 
Window* pWin);
+    SVX_DLLPRIVATE virtual bool onMouseMove(const MouseEvent& rMEvt, Window* 
pWin);
+
+    SVX_DLLPRIVATE virtual bool DeleteMarked();
+
+    SVX_DLLPRIVATE virtual void onSelectionHasChanged();
+
+    SVX_DLLPRIVATE virtual void GetState( SfxItemSet& rSet );
+    SVX_DLLPRIVATE virtual void Execute( SfxRequest& rReq );
+
+    SVX_DLLPRIVATE virtual bool GetStyleSheet( SfxStyleSheet* &rpStyleSheet ) 
const;
+    SVX_DLLPRIVATE virtual bool SetStyleSheet( SfxStyleSheet* pStyleSheet, 
bool bDontRemoveHardAttr );
+
+       SVX_DLLPRIVATE virtual bool TakeFormatPaintBrush( boost::shared_ptr< 
SfxItemSet >& rFormatSet  );
+       SVX_DLLPRIVATE virtual bool ApplyFormatPaintBrush( SfxItemSet& 
rFormatSet, bool bNoCharacterFormats, bool bNoParagraphFormats );        
+
+       // slots
+    SVX_DLLPRIVATE void onInsert( sal_uInt16 nSId, const SfxItemSet* pArgs = 0 
);
+    SVX_DLLPRIVATE void onDelete( sal_uInt16 nSId );
+    SVX_DLLPRIVATE void onSelect( sal_uInt16 nSId );
+    SVX_DLLPRIVATE void onFormatTable( SfxRequest& rReq );
+    SVX_DLLPRIVATE void MergeMarkedCells();
+    SVX_DLLPRIVATE void SplitMarkedCells();
+    SVX_DLLPRIVATE void DistributeColumns();
+    SVX_DLLPRIVATE void DistributeRows();
+    SVX_DLLPRIVATE void SetVertical( sal_uInt16 nSId );
+
+    SVX_DLLPRIVATE static rtl::Reference< sdr::SelectionController > create( 
SdrObjEditView* pView, const SdrObject* pObj, const rtl::Reference< 
sdr::SelectionController >& xRefController );
+
+    SVX_DLLPRIVATE void MergeAttrFromSelectedCells(SfxItemSet& rAttr, bool 
bOnlyHardAttr) const;
+    SVX_DLLPRIVATE void SetAttrToSelectedCells(const SfxItemSet& rAttr, bool 
bReplaceAll);
+
+    SVX_DLLPRIVATE virtual bool GetAttributes(SfxItemSet& rTargetSet, bool 
bOnlyHardAttr) const;
+    SVX_DLLPRIVATE virtual bool SetAttributes(const SfxItemSet& rSet, bool 
bReplaceAll);
+
+    SVX_DLLPRIVATE virtual bool GetMarkedObjModel( SdrPage* pNewPage );
+    SVX_DLLPRIVATE virtual bool PasteObjModel( const SdrModel& rModel );
+
+    SVX_DLLPRIVATE bool hasSelectedCells() const { return mbCellSelectionMode 
|| mpView->IsTextEdit(); }
+
+       void getSelectedCells( CellPos& rFirstPos, CellPos& rLastPos );
+       void setSelectedCells( const CellPos& rFirstPos, const CellPos& 
rLastPos );
+       void clearSelection();
+       void selectAll();
+
+    SVX_DLLPRIVATE void onTableModified();
+
+private:
+    SvxTableController(SvxTableController &); // not defined
+    void operator =(SvxTableController &); // not defined
+
+       // internals
+    SVX_DLLPRIVATE void ApplyBorderAttr( const SfxItemSet& rAttr );
+    SVX_DLLPRIVATE void UpdateTableShape();
+
+    SVX_DLLPRIVATE void SetTableStyle( const SfxItemSet* pArgs );
+    SVX_DLLPRIVATE void SetTableStyleSettings( const SfxItemSet* pArgs );
+
+    SVX_DLLPRIVATE bool PasteObject( SdrTableObj* pPasteTableObj );
+
+    SVX_DLLPRIVATE bool checkTableObject();
+    SVX_DLLPRIVATE bool updateTableObject();
+    SVX_DLLPRIVATE const CellPos& getSelectionStart();
+    SVX_DLLPRIVATE void setSelectionStart( const CellPos& rPos );
+    SVX_DLLPRIVATE const CellPos& getSelectionEnd();
+    SVX_DLLPRIVATE ::com::sun::star::uno::Reference< 
::com::sun::star::table::XCellCursor > getSelectionCursor();
+    SVX_DLLPRIVATE void checkCell( CellPos& rPos );
+
+    SVX_DLLPRIVATE void MergeRange( sal_Int32 nFirstCol, sal_Int32 nFirstRow, 
sal_Int32 nLastCol, sal_Int32 nLastRow );
+
+    SVX_DLLPRIVATE void EditCell( const CellPos& rPos, ::Window* pWindow, 
const ::com::sun::star::awt::MouseEvent* pMouseEvent = 0, sal_uInt16 nAction = 
0 );
+    SVX_DLLPRIVATE bool StopTextEdit();
+
+    SVX_DLLPRIVATE void DeleteTable();
+
+    SVX_DLLPRIVATE sal_uInt16 getKeyboardAction( const KeyEvent& rKEvt, 
Window* pWindow );
+    SVX_DLLPRIVATE bool executeAction( sal_uInt16 nAction, bool bSelect, 
Window* pWindow );
+    SVX_DLLPRIVATE void gotoCell( const CellPos& rCell, bool bSelect, Window* 
pWindow, sal_uInt16 nAction = 0 );
+
+    SVX_DLLPRIVATE void StartSelection( const CellPos& rPos );
+    SVX_DLLPRIVATE void UpdateSelection( const CellPos& rPos );
+    SVX_DLLPRIVATE void RemoveSelection();
+    SVX_DLLPRIVATE void updateSelectionOverlay();
+    SVX_DLLPRIVATE void destroySelectionOverlay();
+
+    SVX_DLLPRIVATE void findMergeOrigin( CellPos& rPos );
+
+       DECL_LINK( UpdateHdl, void * );
+
+       //TableModelRef mxTable;
+       rtl::Reference< TableModel > mxTable;
+
+       CellPos maCursorFirstPos;
+       CellPos maCursorLastPos;
+       bool mbCellSelectionMode;
+       CellPos maMouseDownPos;
+       bool mbLeftButtonDown;
+       ::sdr::overlay::OverlayObjectList*      mpSelectionOverlay;
+
+       SdrView* mpView;
+       SdrObjectWeakRef mxTableObj;
+       SdrModel* mpModel;
+
+       ::com::sun::star::uno::Reference< 
::com::sun::star::util::XModifyListener > mxModifyListener;
+
+       sal_uLong mnUpdateEvent;
+};
+
+} }
+
+#endif // _SVX_TABLECONTROLLER_HXX_
+

Propchange: 
openoffice/branches/sidebar/main/svx/inc/svx/sdr/table/tablecontroller.hxx
------------------------------------------------------------------------------
    svn:executable = *

Modified: 
openoffice/branches/sidebar/main/svx/inc/svx/sidebar/ValueSetWithTextControl.hxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/inc/svx/sidebar/ValueSetWithTextControl.hxx?rev=1463154&r1=1463153&r2=1463154&view=diff
==============================================================================
--- 
openoffice/branches/sidebar/main/svx/inc/svx/sidebar/ValueSetWithTextControl.hxx
 (original)
+++ 
openoffice/branches/sidebar/main/svx/inc/svx/sidebar/ValueSetWithTextControl.hxx
 Mon Apr  1 14:43:34 2013
@@ -25,11 +25,27 @@
 #include "svx/svxdllapi.h"
 
 #include <svtools/valueset.hxx>
+#include <limits.h>
+#include <com/sun/star/uno/Reference.h>
+#include <com/sun/star/uno/Sequence.h>
+#include <com/sun/star/lang/Locale.hpp>
 
 #include <vcl/image.hxx>
 
 #include <vector>
 
+namespace com{namespace sun{ namespace star{
+       namespace container{
+               class XIndexAccess;
+       }
+       namespace beans{
+               struct PropertyValue;
+       }
+       namespace text{
+               class XNumberingFormatter;
+       }
+}}}
+
 namespace svx { namespace sidebar {
 
 /** Specialization of class <ValueSet>.
@@ -101,6 +117,45 @@ private:
     tItemList maItems;
 };
 
+class SVX_DLLPUBLIC SvxNumValueSet2 : public ValueSet
+{
+       Color                   aLineColor;
+       Rectangle               aOrgRect;
+       VirtualDevice*  pVDev;
+
+       
com::sun::star::uno::Reference<com::sun::star::text::XNumberingFormatter> 
xFormatter;
+       com::sun::star::lang::Locale aLocale;
+
+       com::sun::star::uno::Sequence<
+               com::sun::star::uno::Sequence<
+                       com::sun::star::beans::PropertyValue> > aNumSettings;
+
+
+       public:
+               SvxNumValueSet2( Window* pParent, const ResId& rResId);
+               ~SvxNumValueSet2();
+
+       virtual void    UserDraw( const UserDrawEvent& rUDEvt );
+
+       
+       void                    SetNumberingSettings(
+               const com::sun::star::uno::Sequence<
+                       com::sun::star::uno::Sequence<
+                               com::sun::star::beans::PropertyValue> >& aNum,
+               
com::sun::star::uno::Reference<com::sun::star::text::XNumberingFormatter>& 
xFormatter,
+               const com::sun::star::lang::Locale& rLocale     );      
+};
+
+class SVX_DLLPUBLIC SvxNumValueSet3 : public ValueSet
+{
+       public:
+               SvxNumValueSet3( Window* pParent, const ResId& rResId);
+               ~SvxNumValueSet3();
+
+       virtual void    UserDraw( const UserDrawEvent& rUDEvt );        
+       
+};
+
 } } // end of namespace svx::sidebar
 
 #endif

Modified: openoffice/branches/sidebar/main/svx/inc/svx/svdedxv.hxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/inc/svx/svdedxv.hxx?rev=1463154&r1=1463153&r2=1463154&view=diff
==============================================================================
--- openoffice/branches/sidebar/main/svx/inc/svx/svdedxv.hxx (original)
+++ openoffice/branches/sidebar/main/svx/inc/svx/svdedxv.hxx Mon Apr  1 
14:43:34 2013
@@ -270,6 +270,9 @@ public:
        virtual void AddWindowToPaintView(OutputDevice* pNewWin);
        virtual void DeleteWindowFromPaintView(OutputDevice* pOldWin);
 
+       sal_uInt16 GetSelectionLevel() const;
+       
+
        
//************************************************************************
        // Object-MacroModus (z.B. Rect als Button oder sowas):
        
//************************************************************************

Modified: openoffice/branches/sidebar/main/svx/inc/svx/svxids.hrc
URL: 
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/inc/svx/svxids.hrc?rev=1463154&r1=1463153&r2=1463154&view=diff
==============================================================================
--- openoffice/branches/sidebar/main/svx/inc/svx/svxids.hrc (original)
+++ openoffice/branches/sidebar/main/svx/inc/svx/svxids.hrc Mon Apr  1 14:43:34 
2013
@@ -373,6 +373,8 @@
 #define FN_NUM_BULLET_OFF       (FN_EDIT + 37)  /* Numerierung aus */
 #define FN_NUM_BULLET_ON        (FN_EDIT + 38)  /* Numerierung mit Bullets an 
*/
 #define FN_NUM_NUMBERING_ON     (FN_EDIT + 44)  /* Numerierung an */
+#define FN_BUL_NUM_RULE_INDEX  (FN_EDIT + 120)  /* Achieving num rule index */
+#define FN_NUM_NUM_RULE_INDEX  (FN_EDIT + 121)
 
 #define FN_INSERT               (SID_SW_START +  300)
 #define FN_DELETE_BOOKMARK      (FN_INSERT + 1)
@@ -1269,11 +1271,17 @@
 #define SID_ATTR_LINE_JOINT                             (SID_SVX_START+1110)
 #define SID_ATTR_LINE_CAP                               (SID_SVX_START+1111)
 #define SID_ATTR_TRANSFORM_MATRIX                       (SID_SVX_START+1112)
+
 #define SID_CELL_FORMAT_BORDER                          (SID_SVX_START+1113)
-#define SID_CHAR_DLG_EFFECT                             (SID_SVX_START+1114)
+#define SID_CHAR_DLG_EFFECT                            (SID_SVX_START+1114) 
+#define SID_ATTR_PARA_LEFT                             (SID_SVX_START + 1115) 
+#define SID_ATTR_PARA_RIGHT                            (SID_SVX_START + 1116)
+
+#define FN_SVX_SET_NUMBER                              (RID_SVX_START + 1117)
+#define FN_SVX_SET_BULLET                              (RID_SVX_START + 1118)
 
 // IMPORTANT NOTE: adjust SID_SVX_FIRSTFREE, when adding new slot id
-#define SID_SVX_FIRSTFREE                               (SID_CHAR_DLG_EFFECT + 
1)
+#define SID_SVX_FIRSTFREE                               (FN_SVX_SET_BULLET + 1)
 
 // --------------------------------------------------------------------------
 // Overflow check for slot IDs

Modified: openoffice/branches/sidebar/main/svx/sdi/svx.sdi
URL: 
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/sdi/svx.sdi?rev=1463154&r1=1463153&r2=1463154&view=diff
==============================================================================
--- openoffice/branches/sidebar/main/svx/sdi/svx.sdi (original)
+++ openoffice/branches/sidebar/main/svx/sdi/svx.sdi Mon Apr  1 14:43:34 2013
@@ -4339,6 +4339,55 @@ XFormTextStyleItem FontWorkTextStyle SID
        GroupId = GID_SPECIAL;
 ]
 
+SvxLRSpaceItem ParaOutlineLeft SID_ATTR_PARA_LEFT
+
+[
+       /* flags: */
+       AutoUpdate = FALSE,
+       Cachable = Cachable,
+       FastCall = FALSE,
+       HasCoreId = FALSE,
+       HasDialog = FALSE,
+       ReadOnlyDoc = TRUE,
+       Toggle = FALSE,
+       Container = FALSE,
+       RecordAbsolute = FALSE,
+       RecordPerSet;
+       Synchron;
+
+       /* config: */
+       AccelConfig = FALSE,
+       MenuConfig = FALSE,
+       StatusBarConfig = FALSE,
+       ToolBoxConfig = TRUE,
+       GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SvxLRSpaceItem ParaOutlineRight SID_ATTR_PARA_RIGHT
+()
+[
+       /* flags: */
+       AutoUpdate = FALSE,
+       Cachable = Cachable,
+       FastCall = FALSE,
+       HasCoreId = FALSE,
+       HasDialog = FALSE,
+       ReadOnlyDoc = TRUE,
+       Toggle = FALSE,
+       Container = FALSE,
+       RecordAbsolute = FALSE,
+       RecordPerSet;
+       Synchron;
+
+       /* config: */
+       AccelConfig = FALSE,
+       MenuConfig = FALSE,
+       StatusBarConfig = FALSE,
+       ToolBoxConfig = TRUE,
+       GroupId = GID_VIEW;
+]
+
 //--------------------------------------------------------------------------
 SfxVoidItem FormatArea SID_ATTRIBUTES_AREA
 ()
@@ -7252,6 +7301,32 @@ SvxLineSpacingItem LineSpacing SID_ATTR_
        GroupId = GID_FORMAT;
 ]
 
+SvxULSpaceItem ULSpacing SID_ATTR_PARA_ULSPACE
+
+[
+       /* flags: */
+       AutoUpdate = FALSE,
+       Cachable = Cachable,
+       FastCall = FALSE,
+       HasCoreId = FALSE,
+       HasDialog = FALSE,
+       ReadOnlyDoc = FALSE,
+       Toggle = FALSE,
+       Container = FALSE,
+       RecordAbsolute = FALSE,
+       RecordPerSet;
+       Synchron;
+
+       Readonly = FALSE,
+
+       /* config: */
+       AccelConfig = FALSE,
+       MenuConfig = FALSE,
+       StatusBarConfig = FALSE,
+       ToolBoxConfig = FALSE,
+       GroupId = GID_FORMAT;
+]
+
 //--------------------------------------------------------------------------
 SvxLineItem LineStyle SID_FRAME_LINESTYLE
 
@@ -7705,6 +7780,57 @@ SfxVoidItem OutlineBullet SID_OUTLINE_BU
        GroupId = GID_FORMAT;
 ]
 
+SfxUInt16Item SetNumber FN_SVX_SET_NUMBER
+[      
+       /* flags: */
+       AutoUpdate = TRUE,
+       Cachable = Cachable,
+       FastCall = FALSE,
+       HasCoreId = FALSE,
+       HasDialog = FALSE,
+       ReadOnlyDoc = FALSE,
+       Toggle = FALSE,
+       Container = FALSE,
+       RecordAbsolute = FALSE,
+       RecordPerSet;
+       Synchron;
+
+       Readonly = FALSE,
+
+       /* config: */
+       AccelConfig = FALSE,
+       MenuConfig = FALSE,
+       StatusBarConfig = FALSE,
+       ToolBoxConfig = FALSE,
+       GroupId = GID_SPECIAL;
+]
+
+//--------------------------------------------------------------------------
+SfxUInt16Item SetBullet FN_SVX_SET_BULLET
+[      
+       /* flags: */
+       AutoUpdate = TRUE,
+       Cachable = Cachable,
+       FastCall = FALSE,
+       HasCoreId = FALSE,
+       HasDialog = FALSE,
+       ReadOnlyDoc = FALSE,
+       Toggle = FALSE,
+       Container = FALSE,
+       RecordAbsolute = FALSE,
+       RecordPerSet;
+       Synchron;
+
+       Readonly = FALSE,
+
+       /* config: */
+       AccelConfig = FALSE,
+       MenuConfig = FALSE,
+       StatusBarConfig = FALSE,
+       ToolBoxConfig = FALSE,
+       GroupId = GID_SPECIAL;
+]
+
 //--------------------------------------------------------------------------
 SfxVoidItem OutlineCollapse SID_OUTLINE_COLLAPSE
 ()
@@ -15658,6 +15784,60 @@ SfxBoolItem SvxAutoWidth SID_ATTR_TRANSF
        AccelConfig = FALSE,
        MenuConfig = FALSE,
        StatusBarConfig = FALSE,
+       ToolBoxConfig = TRUE,
+       GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+
+SfxVoidItem SvxFlipVertical SID_FLIP_VERTICAL
+[
+       /* flags: */
+       AutoUpdate = TRUE,
+       Cachable = Cachable,
+       FastCall = FALSE,
+       HasCoreId = FALSE,
+       HasDialog = FALSE,
+       ReadOnlyDoc = FALSE,
+       Toggle = FALSE,
+       Container = FALSE,
+       RecordAbsolute = FALSE,
+       RecordPerSet;
+       Synchron;
+
+       Readonly = FALSE,
+
+       /* config: */
+       AccelConfig = FALSE,
+       MenuConfig = FALSE,
+       StatusBarConfig = FALSE,
+       ToolBoxConfig = TRUE,
+       GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+
+SfxBoolItem SvxAutoWidth SID_ATTR_TRANSFORM_AUTOWIDTH
+[
+       /* flags: */
+       AutoUpdate = TRUE,
+       Cachable = Cachable,
+       FastCall = FALSE,
+       HasCoreId = FALSE,
+       HasDialog = FALSE,
+       ReadOnlyDoc = FALSE,
+       Toggle = FALSE,
+       Container = FALSE,
+       RecordAbsolute = FALSE,
+       RecordPerSet;
+       Synchron;
+
+       Readonly = FALSE,
+
+       /* config: */
+       AccelConfig = FALSE,
+       MenuConfig = FALSE,
+       StatusBarConfig = FALSE,
        ToolBoxConfig = FALSE,
        GroupId = GID_SPECIAL;
 ]

Modified: 
openoffice/branches/sidebar/main/svx/source/dialog/svxbmpnumvalueset.src
URL: 
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/source/dialog/svxbmpnumvalueset.src?rev=1463154&r1=1463153&r2=1463154&view=diff
==============================================================================
--- openoffice/branches/sidebar/main/svx/source/dialog/svxbmpnumvalueset.src 
(original)
+++ openoffice/branches/sidebar/main/svx/source/dialog/svxbmpnumvalueset.src 
Mon Apr  1 14:43:34 2013
@@ -57,7 +57,8 @@ String RID_SVXSTR_BULLET_DESCRIPTION_7
 };
 String RID_SVXSTR_SINGLENUM_DESCRIPTION_0
 {
-    Text [en-US] = "Number 1) 2) 3)";
+    //Text [en-US] = "Number 1) 2) 3)";
+    Text [en-US] = "Number %NUMBERINGSAMPLE";
 };
 String RID_SVXSTR_SINGLENUM_DESCRIPTION_1
 {

Modified: openoffice/branches/sidebar/main/svx/source/sidebar/PanelFactory.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/source/sidebar/PanelFactory.cxx?rev=1463154&r1=1463153&r2=1463154&view=diff
==============================================================================
--- openoffice/branches/sidebar/main/svx/source/sidebar/PanelFactory.cxx 
(original)
+++ openoffice/branches/sidebar/main/svx/source/sidebar/PanelFactory.cxx Mon 
Apr  1 14:43:34 2013
@@ -22,6 +22,7 @@
 #include "sidebar/PanelFactory.hxx"
 
 #include "text/TextPropertyPanel.hxx"
+#include "paragraph/ParaPropertyPanel.hxx"
 #include "area/AreaPropertyPanel.hxx"
 #include "graphic/GraphicPropertyPanel.hxx"
 #include "line/LinePropertyPanel.hxx"
@@ -141,6 +142,16 @@ Reference<ui::XUIElement> SAL_CALL Panel
             pPanel,
             ui::LayoutSize(-1,-1,-1));
     }
+    if (DoesResourceEndWith("/ParaPropertyPanel"))
+    {
+        ParaPropertyPanel* pPanel = ParaPropertyPanel::Create(pParentWindow, 
xFrame, pBindings);
+        xElement = sfx2::sidebar::SidebarPanelBase::Create(
+            rsResourceURL,
+            xFrame,
+            pPanel,
+            //::boost::bind(&ParaPropertyPanel::ShowMenu, pPanel),
+            ui::LayoutSize(-1,-1,-1));
+    }
     else if (DoesResourceEndWith("/AreaPropertyPanel"))
     {
         AreaPropertyPanel* pPanel = AreaPropertyPanel::Create(pParentWindow, 
xFrame, pBindings);


Reply via email to