Files
libreoffice/sw/source/ui/table/tablepg.hxx
Stephan Bergmann bd205223ec New IMPL_LINK_NOARG to work around SAL_UNUSED_PARAMETER problem
...see ebe26f72e9 "WaE: 'unused' attribute ignored when parsing type"
for the problem.
2012-03-01 18:00:32 +01:00

233 lines
7.3 KiB
C++

/* -*- 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.
*
************************************************************************/
#ifndef _SWTABLEPG_HXX
#define _SWTABLEPG_HXX
#include <sfx2/tabdlg.hxx>
#include <vcl/fixed.hxx>
#include <vcl/button.hxx>
#include <vcl/lstbox.hxx>
#include <actctrl.hxx>
#include "prcntfld.hxx"
#include "swtypes.hxx"
#include "textcontrolcombo.hxx"
class SwWrtShell;
class SwTableRep;
struct TColumn
{
SwTwips nWidth;
sal_Bool bVisible;
};
class SwFormatTablePage : public SfxTabPage
{
FixedLine aOptionsFL;
FixedText aNameFT;
TableNameEdit aNameED;
FixedText aWidthFT;
PercentField aWidthMF;
CheckBox aRelWidthCB;
FixedLine aPosFL;
RadioButton aFullBtn;
RadioButton aLeftBtn;
RadioButton aFromLeftBtn;
RadioButton aRightBtn;
RadioButton aCenterBtn;
RadioButton aFreeBtn;
FixedLine aDistFL;
FixedText aLeftFT;
PercentField aLeftMF;
FixedText aRightFT;
PercentField aRightMF;
FixedText aTopFT;
MetricField aTopMF;
FixedText aBottomFT;
MetricField aBottomMF;
FixedLine aPropertiesFL;
FixedText aTextDirectionFT;
ListBox aTextDirectionLB;
SwTableRep* pTblData;
SwTwips nSaveWidth;
SwTwips nMinTableWidth;
sal_uInt16 nOldAlign;
sal_Bool bModified;
sal_Bool bFull:1;
sal_Bool bHtmlMode : 1;
void Init();
void ModifyHdl( Edit* pEdit );
DECL_LINK( AutoClickHdl, CheckBox * );
DECL_LINK( RelWidthClickHdl, CheckBox * );
void RightModify();
DECL_LINK( UpDownLoseFocusHdl, MetricField * );
using TabPage::ActivatePage;
using TabPage::DeactivatePage;
public:
SwFormatTablePage( Window* pParent, const SfxItemSet& rSet );
static SfxTabPage* Create( Window* pParent, const SfxItemSet& rAttrSet);
virtual sal_Bool FillItemSet( SfxItemSet& rSet );
virtual void Reset( const SfxItemSet& rSet );
virtual void ActivatePage( const SfxItemSet& rSet );
virtual int DeactivatePage( SfxItemSet* pSet = 0 );
};
/*-------------------------------------------------------
TabPage Format/Tabelle/Spalten
--------------------------------------------------------- */
#define MET_FIELDS 6 //Anzahl der verwendeten MetricFields
class SwTableColumnPage : public SfxTabPage
{
CheckBox aModifyTableCB;
CheckBox aProportionalCB;
FixedText aSpaceFT;
MetricField aSpaceED;
FixedLine aColFL;
ImageButton aUpBtn;
FixedText aFT1;
PercentField aMF1;
FixedText aFT2;
PercentField aMF2;
FixedText aFT3;
PercentField aMF3;
FixedText aFT4;
PercentField aMF4;
FixedText aFT5;
PercentField aMF5;
FixedText aFT6;
PercentField aMF6;
ImageButton aDownBtn;
SwTableRep* pTblData;
PercentField* pFieldArr[MET_FIELDS];
FixedText* pTextArr[MET_FIELDS];
SwTwips nTableWidth;
SwTwips nMinWidth;
sal_uInt16 nNoOfCols;
sal_uInt16 nNoOfVisibleCols;
//Breite merken, wenn auf autom. Ausrichtung gestellt wird
sal_uInt16 aValueTbl[MET_FIELDS];//primaere Zuordnung der MetricFields
sal_Bool bModified:1;
sal_Bool bModifyTbl:1;
sal_Bool bPercentMode:1;
void Init(sal_Bool bWeb);
DECL_LINK( AutoClickHdl, CheckBox * );
void ModifyHdl( PercentField* pEdit );
DECL_LINK( UpHdl, PercentField * );
DECL_LINK( DownHdl, PercentField * );
DECL_LINK( LoseFocusHdl, PercentField * );
DECL_LINK( ModeHdl, CheckBox * );
void UpdateCols( sal_uInt16 nAktPos );
SwTwips GetVisibleWidth(sal_uInt16 nPos);
void SetVisibleWidth(sal_uInt16 nPos, SwTwips nNewWidth);
using TabPage::ActivatePage;
using TabPage::DeactivatePage;
public:
SwTableColumnPage( Window* pParent, const SfxItemSet& rSet );
~SwTableColumnPage();
static SfxTabPage* Create( Window* pParent, const SfxItemSet& rAttrSet);
virtual sal_Bool FillItemSet( SfxItemSet& rSet );
virtual void Reset( const SfxItemSet& rSet );
virtual void ActivatePage( const SfxItemSet& rSet );
virtual int DeactivatePage( SfxItemSet* pSet = 0 );
};
class SwTextFlowPage : public SfxTabPage
{
FixedLine aFlowFL;
CheckBox aPgBrkCB;
RadioButton aPgBrkRB;
RadioButton aColBrkRB;
RadioButton aPgBrkBeforeRB;
RadioButton aPgBrkAfterRB;
CheckBox aPageCollCB;
ListBox aPageCollLB;
FixedText aPageNoFT;
NumericField aPageNoNF;
CheckBox aSplitCB;
TriStateBox aSplitRowCB;
CheckBox aKeepCB;
CheckBox aHeadLineCB;
FixedText aRepeatHeaderFT; // "dummy" to build before and after FT
FixedText aRepeatHeaderBeforeFT;
NumericField aRepeatHeaderNF;
FixedText aRepeatHeaderAfterFT;
TextControlCombo aRepeatHeaderCombo;
FixedText aTextDirectionFT;
ListBox aTextDirectionLB;
FixedLine aVertOrientFL;
FixedText aVertOrientFT;
ListBox aVertOrientLB;
SwWrtShell* pShell;
sal_Bool bPageBreak;
sal_Bool bHtmlMode;
DECL_LINK(PageBreakHdl_Impl, void *);
DECL_LINK(ApplyCollClickHdl_Impl, void *);
DECL_LINK( PageBreakPosHdl_Impl, RadioButton* );
DECL_LINK( PageBreakTypeHdl_Impl, RadioButton* );
DECL_LINK( SplitHdl_Impl, CheckBox* );
DECL_LINK( SplitRowHdl_Impl, TriStateBox* );
DECL_LINK( HeadLineCBClickHdl, void* p = 0 );
SwTextFlowPage( Window* pParent, const SfxItemSet& rSet );
~SwTextFlowPage();
public:
static SfxTabPage* Create( Window* pParent, const SfxItemSet& rAttrSet);
virtual sal_Bool FillItemSet( SfxItemSet& rSet );
virtual void Reset( const SfxItemSet& rSet );
void SetShell(SwWrtShell* pSh);
void DisablePageBreak();
};
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */