blob: 766573935f9921edfff55c1c3b9d5cb5c1b4c00b [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 SC_TPSUBT_HXX
#define SC_TPSUBT_HXX
#include <sfx2/tabdlg.hxx>
#include <svx/checklbx.hxx>
#include <vcl/fixed.hxx>
#include "global.hxx"
//------------------------------------------------------------------------
// +1 because one field is reserved for the "- none -" entry
#define SC_MAXFIELDS MAXCOLCOUNT+1
class ScViewData;
class ScDocument;
//========================================================================
// Gruppenseiten: Basisklasse
class ScTpSubTotalGroup : public SfxTabPage
{
protected:
ScTpSubTotalGroup( Window* pParent, sal_uInt16 nResId,
const SfxItemSet& rArgSet );
public:
virtual ~ScTpSubTotalGroup();
static sal_uInt16* GetRanges ();
sal_Bool DoReset ( sal_uInt16 nGroupNo,
const SfxItemSet& rArgSet );
sal_Bool DoFillItemSet ( sal_uInt16 nGroupNo,
SfxItemSet& rArgSet );
protected:
FixedText aFtGroup;
ListBox aLbGroup;
FixedText aFtColumns;
SvxCheckListBox aLbColumns;
FixedText aFtFunctions;
ListBox aLbFunctions;
const String aStrNone;
const String aStrColumn;
ScViewData* pViewData;
ScDocument* pDoc;
const sal_uInt16 nWhichSubTotals;
const ScSubTotalParam& rSubTotalData;
SCCOL nFieldArr[SC_MAXFIELDS];
const sal_uInt16 nFieldCount;
private:
void Init ();
void FillListBoxes ();
ScSubTotalFunc LbPosToFunc ( sal_uInt16 nPos );
sal_uInt16 FuncToLbPos ( ScSubTotalFunc eFunc );
sal_uInt16 GetFieldSelPos ( SCCOL nField );
// Handler ------------------------
DECL_LINK( SelectHdl, ListBox * );
DECL_LINK( CheckHdl, ListBox * );
};
//------------------------------------------------------------------------
class ScTpSubTotalGroup1 : public ScTpSubTotalGroup
{
protected:
ScTpSubTotalGroup1( Window* pParent,
const SfxItemSet& rArgSet );
public:
virtual ~ScTpSubTotalGroup1();
static SfxTabPage* Create ( Window* pParent,
const SfxItemSet& rArgSet );
virtual sal_Bool FillItemSet ( SfxItemSet& rArgSet );
virtual void Reset ( const SfxItemSet& rArgSet );
};
//------------------------------------------------------------------------
class ScTpSubTotalGroup2 : public ScTpSubTotalGroup
{
protected:
ScTpSubTotalGroup2( Window* pParent,
const SfxItemSet& rArgSet );
public:
virtual ~ScTpSubTotalGroup2();
static SfxTabPage* Create ( Window* pParent,
const SfxItemSet& rArgSet );
virtual sal_Bool FillItemSet ( SfxItemSet& rArgSet );
virtual void Reset ( const SfxItemSet& rArgSet );
};
//------------------------------------------------------------------------
class ScTpSubTotalGroup3 : public ScTpSubTotalGroup
{
protected:
ScTpSubTotalGroup3( Window* pParent,
const SfxItemSet& rArgSet );
public:
virtual ~ScTpSubTotalGroup3();
static SfxTabPage* Create ( Window* pParent,
const SfxItemSet& rArgSet );
virtual sal_Bool FillItemSet ( SfxItemSet& rArgSet );
virtual void Reset ( const SfxItemSet& rArgSet );
};
//========================================================================
// Optionen:
class ScTpSubTotalOptions : public SfxTabPage
{
protected:
ScTpSubTotalOptions( Window* pParent,
const SfxItemSet& rArgSet );
public:
virtual ~ScTpSubTotalOptions();
static sal_uInt16* GetRanges ();
static SfxTabPage* Create ( Window* pParent,
const SfxItemSet& rArgSet );
virtual sal_Bool FillItemSet ( SfxItemSet& rArgSet );
virtual void Reset ( const SfxItemSet& rArgSet );
private:
FixedLine aFlGroup;
CheckBox aBtnPagebreak;
CheckBox aBtnCase;
CheckBox aBtnSort;
FixedLine aFlSort;
RadioButton aBtnAscending;
RadioButton aBtnDescending;
CheckBox aBtnFormats;
CheckBox aBtnUserDef;
ListBox aLbUserDef;
ScViewData* pViewData;
ScDocument* pDoc;
const sal_uInt16 nWhichSubTotals;
const ScSubTotalParam& rSubTotalData;
private:
void Init ();
void FillUserSortListBox ();
// Handler ------------------------
DECL_LINK( CheckHdl, CheckBox * );
};
#endif // SC_TPSORT_HXX