summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKatarina Behrens <bubli@bubli.org>2013-12-18 18:59:19 +0100
committerKatarina Behrens <bubli@bubli.org>2013-12-18 19:04:39 +0100
commit151cc01f6afb389ab4d98131ba918dbf6e06e749 (patch)
treee4616b8f071aec6ecc2285bf4f12aa632e3e3699
parent4256491ffe48b8be09ec66a003988193e8585584 (diff)
Converted subtotals group tab page to .ui
+ translated some German comments :P Change-Id: I2e3aa8bbdb1fc39c963ed5c59ef4511dce0044f9
-rw-r--r--sc/UIConfig_scalc.mk1
-rw-r--r--sc/source/ui/dbgui/tpsubt.cxx129
-rw-r--r--sc/source/ui/inc/tpsubt.hxx11
-rw-r--r--sc/source/ui/src/subtdlg.src83
-rw-r--r--sc/uiconfig/scalc/ui/subtotalgrppage.ui175
5 files changed, 242 insertions, 157 deletions
diff --git a/sc/UIConfig_scalc.mk b/sc/UIConfig_scalc.mk
index 033238bb28c1..fb8b69658217 100644
--- a/sc/UIConfig_scalc.mk
+++ b/sc/UIConfig_scalc.mk
@@ -133,6 +133,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/scalc,\
sc/uiconfig/scalc/ui/sortoptionspage \
sc/uiconfig/scalc/ui/sortwarning \
sc/uiconfig/scalc/ui/subtotaloptionspage \
+ sc/uiconfig/scalc/ui/subtotalgrppage \
sc/uiconfig/scalc/ui/statisticsinfopage \
sc/uiconfig/scalc/ui/textimportoptions \
sc/uiconfig/scalc/ui/textimportcsv \
diff --git a/sc/source/ui/dbgui/tpsubt.cxx b/sc/source/ui/dbgui/tpsubt.cxx
index 48b12e91710d..94be6039c808 100644
--- a/sc/source/ui/dbgui/tpsubt.cxx
+++ b/sc/source/ui/dbgui/tpsubt.cxx
@@ -33,19 +33,13 @@
#include "tpsubt.hxx"
//========================================================================
-// Zwischenergebnisgruppen-Tabpage:
+// Subtotals group tabpage:
-ScTpSubTotalGroup::ScTpSubTotalGroup( Window* pParent, sal_uInt16 nResId,
+ScTpSubTotalGroup::ScTpSubTotalGroup( Window* pParent,
const SfxItemSet& rArgSet )
: SfxTabPage ( pParent,
- ScResId( nResId ),
+ "SubTotalGrpPage", "modules/scalc/ui/subtotalgrppage.ui",
rArgSet ),
- aFtGroup ( this, ScResId( FT_GROUP ) ),
- aLbGroup ( this, ScResId( LB_GROUP ) ),
- aFtColumns ( this, ScResId( FT_COLUMNS ) ),
- aLbColumns ( this, ScResId( WND_COLUMNS ) ),
- aFtFunctions ( this, ScResId( FT_FUNCTIONS ) ),
- aLbFunctions ( this, ScResId( LB_FUNCTIONS ) ),
aStrNone ( SC_RESSTR( SCSTR_NONE ) ),
aStrColumn ( SC_RESSTR( SCSTR_COLUMN ) ),
pViewData ( NULL ),
@@ -56,21 +50,22 @@ ScTpSubTotalGroup::ScTpSubTotalGroup( Window* pParent, sal_uInt16 nResId,
GetSubTotalData() ),
nFieldCount ( 0 )
{
+ get( mpLbGroup, "group_by");
+ get( mpLbColumns, "columns");
+ get( mpLbFunctions, "functions");
// Font is correctly initialized by SvTreeListBox ctor
- aLbColumns.SetSelectionMode( SINGLE_SELECTION );
- aLbColumns.SetDragDropMode( SV_DRAGDROP_NONE );
- aLbColumns.SetSpaceBetweenEntries( 0 );
- aLbColumns.Show();
+ mpLbColumns->SetSelectionMode( SINGLE_SELECTION );
+ mpLbColumns->SetDragDropMode( SV_DRAGDROP_NONE );
+ mpLbColumns->SetSpaceBetweenEntries( 0 );
Init ();
- FreeResource();
}
// -----------------------------------------------------------------------
ScTpSubTotalGroup::~ScTpSubTotalGroup()
{
- sal_uInt16 nCount = (sal_uInt16)aLbColumns.GetEntryCount();
+ sal_uInt16 nCount = (sal_uInt16)mpLbColumns->GetEntryCount();
if ( nCount > 0 )
{
@@ -78,7 +73,7 @@ ScTpSubTotalGroup::~ScTpSubTotalGroup()
for ( sal_uInt16 i=0; i<nCount; i++ )
{
- pData = (sal_uInt16*)(aLbColumns.GetEntryData( i ));
+ pData = (sal_uInt16*)(mpLbColumns->GetEntryData( i ));
OSL_ENSURE( pData, "EntryData not found" );
delete pData;
@@ -98,10 +93,10 @@ void ScTpSubTotalGroup::Init()
OSL_ENSURE( pViewData && pDoc, "ViewData or Document not found :-(" );
- aLbGroup.SetSelectHdl ( LINK( this, ScTpSubTotalGroup, SelectHdl ) );
- aLbColumns.SetSelectHdl ( LINK( this, ScTpSubTotalGroup, SelectHdl ) );
- aLbColumns.SetCheckButtonHdl ( LINK( this, ScTpSubTotalGroup, CheckHdl ) );
- aLbFunctions.SetSelectHdl ( LINK( this, ScTpSubTotalGroup, SelectHdl ) );
+ mpLbGroup->SetSelectHdl ( LINK( this, ScTpSubTotalGroup, SelectHdl ) );
+ mpLbColumns->SetSelectHdl ( LINK( this, ScTpSubTotalGroup, SelectHdl ) );
+ mpLbColumns->SetCheckButtonHdl ( LINK( this, ScTpSubTotalGroup, CheckHdl ) );
+ mpLbFunctions->SetSelectHdl ( LINK( this, ScTpSubTotalGroup, SelectHdl ) );
nFieldArr[0] = 0;
FillListBoxes();
@@ -124,12 +119,12 @@ bool ScTpSubTotalGroup::DoReset( sal_uInt16 nGroupNo,
//----------------------------------------------------------
// first we have to clear the listboxes...
- for ( sal_uInt16 nLbEntry = 0; nLbEntry < aLbColumns.GetEntryCount(); ++nLbEntry )
+ for ( sal_uInt16 nLbEntry = 0; nLbEntry < mpLbColumns->GetEntryCount(); ++nLbEntry )
{
- aLbColumns.CheckEntryPos( nLbEntry, false );
- *((sal_uInt16*)aLbColumns.GetEntryData( nLbEntry )) = 0;
+ mpLbColumns->CheckEntryPos( nLbEntry, false );
+ *((sal_uInt16*)mpLbColumns->GetEntryData( nLbEntry )) = 0;
}
- aLbFunctions.SelectEntryPos( 0 );
+ mpLbFunctions->SelectEntryPos( 0 );
ScSubTotalParam theSubTotalData( ((const ScSubTotalItem&)
rArgSet.Get( nWhichSubTotals )).
@@ -142,28 +137,28 @@ bool ScTpSubTotalGroup::DoReset( sal_uInt16 nGroupNo,
SCCOL* pSubTotals = theSubTotalData.pSubTotals[nGroupIdx];
ScSubTotalFunc* pFunctions = theSubTotalData.pFunctions[nGroupIdx];
- aLbGroup.SelectEntryPos( GetFieldSelPos( nField )+1 );
+ mpLbGroup->SelectEntryPos( GetFieldSelPos( nField )+1 );
sal_uInt16 nFirstChecked = 0;
for ( sal_uInt16 i=0; i<nSubTotals; i++ )
{
sal_uInt16 nCheckPos = GetFieldSelPos( pSubTotals[i] );
- sal_uInt16* pFunction = (sal_uInt16*)aLbColumns.GetEntryData( nCheckPos );
+ sal_uInt16* pFunction = (sal_uInt16*)mpLbColumns->GetEntryData( nCheckPos );
- aLbColumns.CheckEntryPos( nCheckPos );
+ mpLbColumns->CheckEntryPos( nCheckPos );
*pFunction = FuncToLbPos( pFunctions[i] );
if (i == 0 || (i > 0 && nCheckPos < nFirstChecked))
nFirstChecked = nCheckPos;
}
// Select the first checked field from the top.
- aLbColumns.SelectEntryPos(nFirstChecked);
+ mpLbColumns->SelectEntryPos(nFirstChecked);
}
else
{
- aLbGroup.SelectEntryPos( (nGroupNo == 1) ? 1 : 0 );
- aLbColumns.SelectEntryPos( 0 );
- aLbFunctions.SelectEntryPos( 0 );
+ mpLbGroup->SelectEntryPos( (nGroupNo == 1) ? 1 : 0 );
+ mpLbColumns->SelectEntryPos( 0 );
+ mpLbFunctions->SelectEntryPos( 0 );
}
return true;
@@ -177,16 +172,16 @@ bool ScTpSubTotalGroup::DoFillItemSet( sal_uInt16 nGroupNo,
sal_uInt16 nGroupIdx = 0;
OSL_ENSURE( (nGroupNo<=3) && (nGroupNo>0), "Invalid group" );
- OSL_ENSURE( (aLbGroup.GetEntryCount() > 0)
- && (aLbColumns.GetEntryCount() > 0)
- && (aLbFunctions.GetEntryCount() > 0),
+ OSL_ENSURE( (mpLbGroup->GetEntryCount() > 0)
+ && (mpLbColumns->GetEntryCount() > 0)
+ && (mpLbFunctions->GetEntryCount() > 0),
"Non-initialized Lists" );
if ( (nGroupNo > 3) || (nGroupNo == 0)
- || (aLbGroup.GetEntryCount() == 0)
- || (aLbColumns.GetEntryCount() == 0)
- || (aLbFunctions.GetEntryCount() == 0)
+ || (mpLbGroup->GetEntryCount() == 0)
+ || (mpLbColumns->GetEntryCount() == 0)
+ || (mpLbFunctions->GetEntryCount() == 0)
)
return false;
else
@@ -206,9 +201,9 @@ bool ScTpSubTotalGroup::DoFillItemSet( sal_uInt16 nGroupNo,
ScSubTotalFunc* pFunctions = NULL;
SCCOL* pSubTotals = NULL;
- sal_uInt16 nGroup = aLbGroup.GetSelectEntryPos();
- sal_uInt16 nEntryCount = (sal_uInt16)aLbColumns.GetEntryCount();
- sal_uInt16 nCheckCount = aLbColumns.GetCheckedEntryCount();
+ sal_uInt16 nGroup = mpLbGroup->GetSelectEntryPos();
+ sal_uInt16 nEntryCount = (sal_uInt16)mpLbColumns->GetEntryCount();
+ sal_uInt16 nCheckCount = mpLbColumns->GetCheckedEntryCount();
theSubTotalData.nCol1 = rSubTotalData.nCol1;
theSubTotalData.nRow1 = rSubTotalData.nRow1;
@@ -228,11 +223,11 @@ bool ScTpSubTotalGroup::DoFillItemSet( sal_uInt16 nGroupNo,
for ( sal_uInt16 i=0, nCheck=0; i<nEntryCount; i++ )
{
- if ( aLbColumns.IsChecked( i ) )
+ if ( mpLbColumns->IsChecked( i ) )
{
OSL_ENSURE( nCheck <= nCheckCount,
"Range error :-(" );
- nFunction = *((sal_uInt16*)aLbColumns.GetEntryData( i ));
+ nFunction = *((sal_uInt16*)mpLbColumns->GetEntryData( i ));
pSubTotals[nCheck] = nFieldArr[i];
pFunctions[nCheck] = LbPosToFunc( nFunction );
nCheck++;
@@ -268,9 +263,9 @@ void ScTpSubTotalGroup::FillListBoxes()
SCCOL col;
OUString aFieldName;
- aLbGroup.Clear();
- aLbColumns.Clear();
- aLbGroup.InsertEntry( aStrNone, 0 );
+ mpLbGroup->Clear();
+ mpLbColumns->Clear();
+ mpLbGroup->InsertEntry( aStrNone, 0 );
sal_uInt16 i=0;
for ( col=nFirstCol; col<=nMaxCol && i<SC_MAXFIELDS; col++ )
@@ -281,12 +276,12 @@ void ScTpSubTotalGroup::FillListBoxes()
aFieldName = ScGlobal::ReplaceOrAppend( aStrColumn, "%1", ScColToAlpha( col ));
}
nFieldArr[i] = col;
- aLbGroup.InsertEntry( aFieldName, i+1 );
- aLbColumns.InsertEntry( aFieldName, i );
- aLbColumns.SetEntryData( i, new sal_uInt16(0) );
+ mpLbGroup->InsertEntry( aFieldName, i+1 );
+ mpLbColumns->InsertEntry( aFieldName, i );
+ mpLbColumns->SetEntryData( i, new sal_uInt16(0) );
i++;
}
- // Nachtraegliche "Konstanteninitialisierung":
+ // subsequent initialization of the constant:
(sal_uInt16&)nFieldCount = i;
}
}
@@ -364,25 +359,25 @@ sal_uInt16 ScTpSubTotalGroup::FuncToLbPos( ScSubTotalFunc eFunc )
IMPL_LINK( ScTpSubTotalGroup, SelectHdl, ListBox *, pLb )
{
- if ( (aLbColumns.GetEntryCount() > 0)
- && (aLbColumns.GetSelectionCount() > 0) )
+ if ( (mpLbColumns->GetEntryCount() > 0)
+ && (mpLbColumns->GetSelectionCount() > 0) )
{
- sal_uInt16 nFunction = aLbFunctions.GetSelectEntryPos();
- sal_uInt16 nColumn = aLbColumns.GetSelectEntryPos();
- sal_uInt16* pFunction = (sal_uInt16*)aLbColumns.GetEntryData( nColumn );
+ sal_uInt16 nFunction = mpLbFunctions->GetSelectEntryPos();
+ sal_uInt16 nColumn = mpLbColumns->GetSelectEntryPos();
+ sal_uInt16* pFunction = (sal_uInt16*)mpLbColumns->GetEntryData( nColumn );
- OSL_ENSURE( pFunction, "EntryData nicht gefunden!" );
+ OSL_ENSURE( pFunction, "EntryData not found!" );
if ( !pFunction )
return 0;
- if ( ((SvxCheckListBox*)pLb) == &aLbColumns )
+ if ( ((SvxCheckListBox*)pLb) == mpLbColumns )
{
- aLbFunctions.SelectEntryPos( *pFunction );
+ mpLbFunctions->SelectEntryPos( *pFunction );
}
- else if ( pLb == &aLbFunctions )
+ else if ( pLb == mpLbFunctions )
{
*pFunction = nFunction;
- aLbColumns.CheckEntryPos( nColumn, true );
+ mpLbColumns->CheckEntryPos( nColumn, true );
}
}
return 0;
@@ -392,13 +387,13 @@ IMPL_LINK( ScTpSubTotalGroup, SelectHdl, ListBox *, pLb )
IMPL_LINK( ScTpSubTotalGroup, CheckHdl, ListBox *, pLb )
{
- if ( ((SvxCheckListBox*)pLb) == &aLbColumns )
+ if ( ((SvxCheckListBox*)pLb) == mpLbColumns )
{
- SvTreeListEntry* pEntry = aLbColumns.GetHdlEntry();
+ SvTreeListEntry* pEntry = mpLbColumns->GetHdlEntry();
if ( pEntry )
{
- aLbColumns.SelectEntryPos( (sal_uInt16)aLbColumns.GetModel()->GetAbsPos( pEntry ) );
+ mpLbColumns->SelectEntryPos( (sal_uInt16)mpLbColumns->GetModel()->GetAbsPos( pEntry ) );
SelectHdl( pLb );
}
}
@@ -406,7 +401,7 @@ IMPL_LINK( ScTpSubTotalGroup, CheckHdl, ListBox *, pLb )
}
//========================================================================
-// Abgeleitete Gruppen-TabPages:
+// Derived Group TabPages:
SfxTabPage* ScTpSubTotalGroup1::Create( Window* pParent,
const SfxItemSet& rArgSet )
@@ -427,15 +422,15 @@ SfxTabPage* ScTpSubTotalGroup3::Create( Window* pParent,
// -----------------------------------------------------------------------
ScTpSubTotalGroup1::ScTpSubTotalGroup1( Window* pParent, const SfxItemSet& rArgSet ) :
- ScTpSubTotalGroup( pParent, RID_SCPAGE_SUBT_GROUP1, rArgSet )
+ ScTpSubTotalGroup( pParent, rArgSet )
{}
ScTpSubTotalGroup2::ScTpSubTotalGroup2( Window* pParent, const SfxItemSet& rArgSet ) :
- ScTpSubTotalGroup( pParent, RID_SCPAGE_SUBT_GROUP2, rArgSet )
+ ScTpSubTotalGroup( pParent, rArgSet )
{}
ScTpSubTotalGroup3::ScTpSubTotalGroup3( Window* pParent, const SfxItemSet& rArgSet ) :
- ScTpSubTotalGroup( pParent, RID_SCPAGE_SUBT_GROUP3, rArgSet )
+ ScTpSubTotalGroup( pParent, rArgSet )
{}
// -----------------------------------------------------------------------
@@ -500,7 +495,7 @@ void ScTpSubTotalOptions::Init()
pViewData = rSubTotalItem.GetViewData();
pDoc = ( pViewData ) ? pViewData->GetDocument() : NULL;
- OSL_ENSURE( pViewData && pDoc, "ViewData oder Document nicht gefunden!" );
+ OSL_ENSURE( pViewData && pDoc, "ViewData or Document not found!" );
pBtnSort->SetClickHdl ( LINK( this, ScTpSubTotalOptions, CheckHdl ) );
pBtnUserDef->SetClickHdl ( LINK( this, ScTpSubTotalOptions, CheckHdl ) );
diff --git a/sc/source/ui/inc/tpsubt.hxx b/sc/source/ui/inc/tpsubt.hxx
index 4b6b1f292203..a7ebe1f0cb89 100644
--- a/sc/source/ui/inc/tpsubt.hxx
+++ b/sc/source/ui/inc/tpsubt.hxx
@@ -39,7 +39,7 @@ struct ScSubTotalParam;
class ScTpSubTotalGroup : public SfxTabPage
{
protected:
- ScTpSubTotalGroup( Window* pParent, sal_uInt16 nResId,
+ ScTpSubTotalGroup( Window* pParent,
const SfxItemSet& rArgSet );
public:
@@ -50,12 +50,9 @@ public:
bool DoFillItemSet ( sal_uInt16 nGroupNo,
SfxItemSet& rArgSet );
protected:
- FixedText aFtGroup;
- ListBox aLbGroup;
- FixedText aFtColumns;
- SvxCheckListBox aLbColumns;
- FixedText aFtFunctions;
- ListBox aLbFunctions;
+ ListBox* mpLbGroup;
+ SvxCheckListBox* mpLbColumns;
+ ListBox* mpLbFunctions;
const OUString aStrNone;
const OUString aStrColumn;
diff --git a/sc/source/ui/src/subtdlg.src b/sc/source/ui/src/subtdlg.src
index 4fa023f10299..227690889c68 100644
--- a/sc/source/ui/src/subtdlg.src
+++ b/sc/source/ui/src/subtdlg.src
@@ -18,89 +18,6 @@
*/
#include "subtdlg.hrc"
-TabPage RID_SUBTBASE
-{
- // Die Elemente haben hart vergebene Hilfe-IDs, weil automatisch generierte
- // aus den Ableitungen nicht in der HID-Liste auftauchen wuerden
- HelpId = HID_SCPAGE_SUBT_GROUP ;
- Pos = MAP_APPFONT ( 0 , 0 ) ;
- Size = MAP_APPFONT ( TP_WIDTH , TP_HEIGHT ) ;
- Hide = TRUE ;
- FixedText FT_GROUP
- {
- Pos = MAP_APPFONT ( 6 , 3 ) ;
- Size = MAP_APPFONT ( 121 , 8 ) ;
- Text [ en-US ] = "~Group by" ;
- };
- ListBox LB_GROUP
- {
- HelpId = HID_SC_SUBT_GROUP ;
- Border = TRUE ;
- Pos = MAP_APPFONT ( 6 , 14 ) ;
- Size = MAP_APPFONT ( 121 , 90 ) ;
- TabStop = TRUE ;
- DropDown = TRUE ;
- };
- FixedText FT_COLUMNS
- {
- Pos = MAP_APPFONT ( 6 , 32 ) ;
- Size = MAP_APPFONT ( 121 , 8 ) ;
- Text [ en-US ] = "~Calculate subtotals for" ;
- };
- Control WND_COLUMNS
- {
- HelpId = HID_SC_SUBT_COLS ;
- Border = TRUE ;
- Pos = MAP_APPFONT ( 6 , 43 ) ;
- Size = MAP_APPFONT ( 121 , 136 ) ;
- TabStop = TRUE ;
- };
- FixedText FT_FUNCTIONS
- {
- Pos = MAP_APPFONT ( 133 , 32 ) ;
- Size = MAP_APPFONT ( 121 , 8 ) ;
- Text [ en-US ] = "Use ~function" ;
- };
- ListBox LB_FUNCTIONS
- {
- HelpId = HID_SC_SUBT_FUNC ;
- Border = TRUE ;
- Pos = MAP_APPFONT ( 133 , 43 ) ;
- Size = MAP_APPFONT ( 121 , 136 ) ;
- TabStop = TRUE ;
- StringList [ en-US ] =
- {
- < "Sum" ; Default ; > ;
- < "Count" ; Default ; > ;
- < "Average" ; Default ; > ;
- < "Max" ; Default ; > ;
- < "Min" ; Default ; > ;
- < "Product" ; Default ; > ;
- < "Count (numbers only)" ; Default ; > ;
- < "StDev (Sample)" ; Default ; > ;
- < "StDevP (Population)" ; Default ; > ;
- < "Var (Sample)" ; Default ; > ;
- < "VarP (Population)" ; Default ; > ;
- };
- };
-};
-
- // "Control" braucht immer eigene HelpId - ansonsten aus RID_SUBTBASE kopiert
-
-TabPage RID_SCPAGE_SUBT_GROUP1 < RID_SUBTBASE
-{
- HelpId = HID_SCPAGE_SUBT_GROUP1 ;
-};
-
-TabPage RID_SCPAGE_SUBT_GROUP2 < RID_SUBTBASE
-{
- HelpId = HID_SCPAGE_SUBT_GROUP2 ;
-};
-
-TabPage RID_SCPAGE_SUBT_GROUP3 < RID_SUBTBASE
-{
- HelpId = HID_SCPAGE_SUBT_GROUP3 ;
-};
TabDialog RID_SCDLG_SUBTOTALS
{
diff --git a/sc/uiconfig/scalc/ui/subtotalgrppage.ui b/sc/uiconfig/scalc/ui/subtotalgrppage.ui
new file mode 100644
index 000000000000..b0aeaf1e7564
--- /dev/null
+++ b/sc/uiconfig/scalc/ui/subtotalgrppage.ui
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.0 -->
+ <object class="GtkListStore" id="liststore1">
+ <columns>
+ <!-- column-name gchararray1 -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Sum</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Count</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Average</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Max</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Min</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Count (numbers only)</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">StDev (Sample)</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">StDevP (Population)</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Var (Sample)</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">VarP (Sample)</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkBox" id="SubTotalGrpPage">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="border_width">6</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkBox" id="box2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Group by:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="group_by">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Calculate subtotals for:</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Use function:</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="svxcorelo-SvxCheckListBox" id="columns">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkTreeView" id="functions">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="model">liststore1</property>
+ <property name="search_column">0</property>
+ <items>
+ <item translatable="yes">Sum</item>
+ <item translatable="yes">Count</item>
+ <item translatable="yes">Average</item>
+ <item translatable="yes">Max</item>
+ <item translatable="yes">Min</item>
+ <item translatable="yes">Product</item>
+ <item translatable="yes">Count (numbers only)</item>
+ <item translatable="yes">StDev (Sample)</item>
+ <item translatable="yes">StDevP (Population)</item>
+ <item translatable="yes">Var (Sample)</item>
+ <item translatable="yes">VarP (Population)</item>
+ </items>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="treeview-selection2"/>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+</interface>