blob: 1ca74f5aa8f3aad3a4b4e482596e092eeb1a272f [file] [log] [blame]
/**************************************************************
*
* 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_FONTWORK_HXX
#define _SVX_FONTWORK_HXX
// include ---------------------------------------------------------------
#ifndef _TOOLBOX_HXX //autogen
#include <vcl/toolbox.hxx>
#endif
#ifndef _FIXED_HXX //autogen
#include <vcl/fixed.hxx>
#endif
#include <svtools/valueset.hxx>
#include <sfx2/dockwin.hxx>
#include <sfx2/ctrlitem.hxx>
#include <svx/xenum.hxx>
#include <svx/dlgctrl.hxx>
#include "svx/svxdllapi.h"
// forward ---------------------------------------------------------------
class SdrView;
class SdrPageView;
class SdrObject;
class XFormTextAdjustItem;
class XFormTextDistanceItem;
class XFormTextStartItem;
class XFormTextMirrorItem;
class XFormTextHideFormItem;
class XFormTextOutlineItem;
class XFormTextShadowItem;
class XFormTextShadowColorItem;
class XFormTextShadowXValItem;
class XFormTextShadowYValItem;
/*************************************************************************
|*
|* ControllerItem fuer Fontwork
|*
\************************************************************************/
class SvxFontWorkDialog;
class SvxFontWorkControllerItem : public SfxControllerItem
{
SvxFontWorkDialog &rFontWorkDlg;
protected:
virtual void StateChanged(sal_uInt16 nSID, SfxItemState eState,
const SfxPoolItem* pState);
public:
SvxFontWorkControllerItem(sal_uInt16 nId, SvxFontWorkDialog&, SfxBindings&);
};
/*************************************************************************
|*
|* Ableitung vom SfxChildWindow als "Behaelter" fuer Fontwork-Dialog
|*
\************************************************************************/
class SVX_DLLPUBLIC SvxFontWorkChildWindow : public SfxChildWindow
{
public:
SvxFontWorkChildWindow(Window*, sal_uInt16, SfxBindings*, SfxChildWinInfo*);
SFX_DECL_CHILDWINDOW(SvxFontWorkChildWindow);
};
/*************************************************************************
|*
|* Floating Window zur Attributierung von Texteffekten
|*
\************************************************************************/
class SVX_DLLPUBLIC SvxFontWorkDialog : public SfxDockingWindow
{
#define CONTROLLER_COUNT 11
SvxFontWorkControllerItem* pCtrlItems[CONTROLLER_COUNT];
ToolBox aTbxStyle;
ToolBox aTbxAdjust;
FixedImage aFbDistance;
MetricField aMtrFldDistance;
FixedImage aFbTextStart;
MetricField aMtrFldTextStart;
ToolBox aTbxShadow;
FixedImage aFbShadowX;
MetricField aMtrFldShadowX;
FixedImage aFbShadowY;
MetricField aMtrFldShadowY;
ColorLB aShadowColorLB;
SfxBindings& rBindings;
Timer aInputTimer;
sal_Bool bUserZoomedIn;
sal_uInt16 nLastStyleTbxId;
sal_uInt16 nLastAdjustTbxId;
sal_uInt16 nLastShadowTbxId;
long nSaveShadowX;
long nSaveShadowY;
long nSaveShadowAngle;
long nSaveShadowSize;
ImageList maImageList;
ImageList maImageListH;
XColorListSharedPtr maColorTable;
#ifdef _SVX_FONTWORK_CXX
friend class SvxFontWorkChildWindow;
friend class SvxFontWorkControllerItem;
DECL_LINK( SelectStyleHdl_Impl, void * );
DECL_LINK( SelectAdjustHdl_Impl, void * );
DECL_LINK( SelectShadowHdl_Impl, void * );
DECL_LINK( ModifyInputHdl_Impl, void * );
DECL_LINK( InputTimoutHdl_Impl, void * );
DECL_LINK( ColorSelectHdl_Impl, void * );
void SetStyle_Impl(const XFormTextStyleItem*);
void SetAdjust_Impl(const XFormTextAdjustItem*);
void SetDistance_Impl(const XFormTextDistanceItem*);
void SetStart_Impl(const XFormTextStartItem*);
void SetMirror_Impl(const XFormTextMirrorItem*);
void SetShowForm_Impl(const XFormTextHideFormItem*);
void SetOutline_Impl(const XFormTextOutlineItem*);
void SetShadow_Impl(const XFormTextShadowItem*, sal_Bool bRestoreValues = sal_False);
void SetShadowColor_Impl(const XFormTextShadowColorItem*);
void SetShadowXVal_Impl(const XFormTextShadowXValItem*);
void SetShadowYVal_Impl(const XFormTextShadowYValItem*);
#endif
virtual void DataChanged( const DataChangedEvent& rDCEvt );
void ApplyImageList();
protected:
virtual void Zoom();
virtual SfxChildAlignment CheckAlignment( SfxChildAlignment eActAlign,
SfxChildAlignment eAlign );
public:
SvxFontWorkDialog( SfxBindings *pBindinx,
SfxChildWindow *pCW,
Window* pParent,
const ResId& rResId );
~SvxFontWorkDialog();
void SetColorTable(XColorListSharedPtr aTable);
void SetActive(sal_Bool bActivate = sal_True);
};
#endif // _SVX_FONTWORK_HXX