Hi again, In case my original email got stuck in peoples spam filter (I accidentally managed to send it as a HTML mail) here it is again. If it still went through, sorry for spamming the list. Regards, /Albert
On Sun, May 8, 2011 at 17:09, Albert Thuswaldner <albert.thuswald...@gmail.com> wrote: > Dear List, > As a first attempt to contribute some code to LO, I've started hacking on > his: > > https://bugs.freedesktop.org/show_bug.cgi?id=33293 > > I think I have come quite far with implementing the changes to the > configuration dialog (see the patch). Here there is still some things to do, > like figuring out why the contents of the tab page isn't showing up. Any > hints? > > Also why are many of the same resource id's defined both in > libs-core/svx/source/src/app.hrc and libs-core/svx/inc/svx/dialogs.hrc? > > > For the other part of problem i.e, how to actually set the number of sheets > for a new spreadsheet, I am completely lost. I haven't found where in the > code this should be done, (using opengrok.+ guessing). Could someone please > give me a hint on how to go about finding this? How is a new spreadsheet > generated? xml template? through using the internal api? > > > TIA > > /Albert > >
diff --git a/sc/inc/helpids.h b/sc/inc/helpids.h index de666a3..eb21b62 100644 --- a/sc/inc/helpids.h +++ b/sc/inc/helpids.h @@ -99,6 +99,7 @@ #define HID_SCPAGE_COMPATIBILITY "SC_HID_SCPAGE_COMPATIBILITY" #define HID_SCPAGE_TABLE "SC_HID_SCPAGE_TABLE" #define HID_SCPAGE_PRINT "SC_HID_SCPAGE_PRINT" +#define HID_SCPAGE_INIT "SC_HID_SCPAGE_INIT" #define HID_SCPAGE_SUBT_GROUP1 "SC_HID_SCPAGE_SUBT_GROUP1" #define HID_SCPAGE_SUBT_GROUP2 "SC_HID_SCPAGE_SUBT_GROUP2" diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc index ffaa64c..d182be3 100644 --- a/sc/inc/sc.hrc +++ b/sc/inc/sc.hrc @@ -1251,5 +1251,8 @@ // compatibility options page #define RID_SCPAGE_COMPATIBILITY (SC_OOO_BUILD_START + 9) +// init option page +#define RID_SCPAGE_INIT (SC_OOO_BUILD_START + 10) + #endif diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx index 097893f..6e292ab 100644 --- a/sc/source/ui/app/scmod.cxx +++ b/sc/source/ui/app/scmod.cxx @@ -100,6 +100,7 @@ #include "dwfunctr.hxx" #include "formdata.hxx" #include "tpprint.hxx" +#include "tpinit.hxx" #include "transobj.hxx" #include "detfunc.hxx" #include "preview.hxx" @@ -2054,6 +2055,14 @@ SfxTabPage* ScModule::CreateTabPage( sal_uInt16 nId, Window* pParent, const Sfx pRet = (*ScTpPrintOptionsCreate)( pParent, rSet); } break; + case RID_SC_TP_INIT: + { + ::CreateTabPage ScTpInitOptionsCreate = pFact->GetTabPageCreatorFunc( RID_SCPAGE_INIT ); + if ( ScTpInitOptionsCreate ) + pRet = (*ScTpInitOptionsCreate)( pParent, rSet); + } + break; + case RID_OFA_TP_INTERNATIONAL: { SfxAbstractDialogFactory* pSfxFact = SfxAbstractDialogFactory::Create(); diff --git a/sc/source/ui/inc/optdlg.hrc b/sc/source/ui/inc/optdlg.hrc index d62819b..21fe3b0 100644 --- a/sc/source/ui/inc/optdlg.hrc +++ b/sc/source/ui/inc/optdlg.hrc @@ -43,6 +43,7 @@ #define TP_INPUT 13 #define TP_CHANGES 14 #define TP_FORMULA 15 +#define TP_INIT 16 // TP_CALC: #define BTN_ITERATE 1 @@ -194,3 +195,8 @@ #define FL_KEY_BINDINGS 1 #define FT_KEY_BINDINGS 2 #define LB_KEY_BINDINGS 3 + +// TP_INIT +#define FL_INIT_SPREADSHEET 92 +#define FT_NSHEETS 93 +#define ED_NSHEETS 94 diff --git a/sc/source/ui/inc/tpinit.hxx b/sc/source/ui/inc/tpinit.hxx new file mode 100644 index 0000000..f3101b5 --- /dev/null +++ b/sc/source/ui/inc/tpinit.hxx @@ -0,0 +1,62 @@ +/* -*- 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 2010 Novell, Inc. + * + * LibreOffice - a multi-platform office productivity suite + * + * This file is part of LibreOffice. + * + * LibreOffice 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. + * + * LibreOffice 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 LibreOffice. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __SC_TPINIT_HXX__ +#define __SC_TPINIT_HXX__ + +#include <sfx2/tabdlg.hxx> +#include <vcl/fixed.hxx> +#include <vcl/field.hxx> + +class ScDocOptions; + +class ScTpInitOptions : public SfxTabPage +{ +public: + using SfxTabPage::DeactivatePage; + + static SfxTabPage* Create (Window* pParent, const SfxItemSet& rCoreAttrs); + + virtual sal_Bool FillItemSet(SfxItemSet& rCoreAttrs); + virtual void Reset(const SfxItemSet& rCoreAttrs); + virtual int DeactivatePage(SfxItemSet* pSet = NULL); + +private: + explicit ScTpInitOptions(Window* pParent, const SfxItemSet& rCoreAttrs); + virtual ~ScTpInitOptions(); + +private: + FixedLine aFLInitSpreadSheet; + FixedText aFtNSheets; + NumericField aEdNSheets; + +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/optdlg/tpinit.cxx b/sc/source/ui/optdlg/tpinit.cxx new file mode 100644 index 0000000..2354e43 --- /dev/null +++ b/sc/source/ui/optdlg/tpinit.cxx @@ -0,0 +1,74 @@ +/* -*- 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 2010 Novell, Inc. + * + * LibreOffice - a multi-platform office productivity suite + * + * This file is part of LibreOffice. + * + * LibreOffice 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. + * + * LibreOffice 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 LibreOffice. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_sc.hxx" + +#undef SC_DLLIMPLEMENTATION + +#include "tpinit.hxx" +#include "optdlg.hrc" +#include "scresid.hxx" + +// Default is three worksheets for a new spreadsheet +static sal_uInt16 nNSheets = 3; + +ScTpInitOptions::ScTpInitOptions(Window *pParent, const SfxItemSet &rCoreAttrs) : + SfxTabPage(pParent, ScResId(RID_SCPAGE_INIT), rCoreAttrs), + aFlInitSpreadSheet ( this, ScResId( FL_INIT_SPREADSHEET ) ), + aFtNSheets ( this, ScResId( FT_NSHEETS ) ), + aEdNSheets ( this, ScResId( ED_NSHEETS ) ) +{ + FreeResource(); +} + +ScTpInitOptions::~ScTpInitOptions() +{ +} + +SfxTabPage* ScTpInitOptions::Create(Window *pParent, const SfxItemSet &rCoreAttrs) +{ + return new ScTpInitOptions(pParent, rCoreAttrs); +} + +sal_Bool ScTpInitOptions::FillItemSet(SfxItemSet &rCoreAttrs) +{ + return true; +} + +void ScTpInitOptions::Reset(const SfxItemSet &/*rCoreAttrs*/) +{ + aEdNSheets.SetValue(nNSheets); +} + +int ScTpInitOptions::DeactivatePage(SfxItemSet* /*pSet*/) +{ + return KEEP_PAGE; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/src/optdlg.src b/sc/source/ui/src/optdlg.src index a73f582..d50e8b0 100644 --- a/sc/source/ui/src/optdlg.src +++ b/sc/source/ui/src/optdlg.src @@ -908,3 +908,34 @@ TabPage RID_SCPAGE_PRINT Text [ en-US ] = "~Print only selected sheets"; }; }; + +TabPage RID_SCPAGE_INIT +{ + HelpId = HID_SCPAGE_INIT ; + SVLook = TRUE ; + Hide = TRUE ; + Pos = MAP_APPFONT ( 0 , 0 ) ; + Size = MAP_APPFONT ( 260 , 185 ) ; + FixedLine FL_INIT_SPREADSHEET + { + Pos = MAP_APPFONT ( 6 , 3 ) ; + Size = MAP_APPFONT ( 248 , 8 ) ; + Text [ en-US ] = "New Spreadsheet"; + }; + FixedText FT_NSHEETS + { + Pos = MAP_APPFONT ( 12 , 32 ) ; + Size = MAP_APPFONT ( 60 , 8 ) ; + Text [ en-US ] = "Number of worksheets in new document"; + }; + NumericField ED_NSHEETS + { + HelpID = "sc:NumericField:RID_SCPAGE_CALC:ED_NSHEETS"; + Border = TRUE ; + Pos = MAP_APPFONT ( 226 , 145 ) ; + Size = MAP_APPFONT ( 25 , 12 ) ; + Maximum = 9999 ; + Spin = TRUE ; + Repeat = TRUE ; + }; +}; \ No newline at end of file diff --git a/cui/source/options/treeopt.cxx b/cui/source/options/treeopt.cxx index e84eedb..c449ae6 100644 --- a/cui/source/options/treeopt.cxx +++ b/cui/source/options/treeopt.cxx @@ -438,6 +438,7 @@ static OptionsMapping_Impl const OptionsMap_Impl[] = { "Math", "Settings", SID_SM_TP_PRINTOPTIONS }, { "Calc", NULL, SID_SC_EDITOPTIONS }, { "Calc", "General", SID_SC_TP_LAYOUT }, + { "Calc", "Initialize", RID_SC_TP_INIT }, { "Calc", "View", SID_SC_TP_CONTENT }, { "Calc", "International", RID_OFA_TP_INTERNATIONAL }, { "Calc", "Calculate", SID_SC_TP_CALC }, diff --git a/cui/source/options/treeopt.src b/cui/source/options/treeopt.src index a1924ad..2159bd0 100644 --- a/cui/source/options/treeopt.src +++ b/cui/source/options/treeopt.src @@ -237,6 +237,7 @@ Resource RID_OFADLG_OPTIONS_TREE_PAGES { < "%PRODUCTNAME Calc" ; 0; > ; < "General" ; SID_SC_TP_LAYOUT ;> ; + < "Initialize" ; RID_SC_TP_INIT ;> ; < "View" ; SID_SC_TP_CONTENT ;> ; < "International" ; RID_OFA_TP_INTERNATIONAL ;> ; < "Calculate" ; SID_SC_TP_CALC ;> ; diff --git a/helpcontent2/helpers/help_hid.lst b/helpcontent2/helpers/help_hid.lst index 3164a82..5cc067c 100644 --- a/helpcontent2/helpers/help_hid.lst +++ b/helpcontent2/helpers/help_hid.lst @@ -3520,6 +3520,7 @@ HID_SCPAGE_SUBT_GROUP2,58886, HID_SCPAGE_SUBT_GROUP3,58887, HID_SCPAGE_SUBT_OPTIONS,58875, HID_SCPAGE_TABLE,58883, +HID_SCPAGE_TABLE,58894, HID_SCPAGE_USERLISTS,58880, HID_SCRIPTORG_DIALOG,39987, HID_SCRIPTSBOX,40011, diff --git a/svx/inc/svx/dialogs.hrc b/svx/inc/svx/dialogs.hrc index 4a30eb4..90248bf 100755 --- a/svx/inc/svx/dialogs.hrc +++ b/svx/inc/svx/dialogs.hrc @@ -166,7 +166,7 @@ #define RID_OFA_TP_INTERNATIONAL_SD (RID_OFA_START + 253) #define RID_OFA_TP_INTERNATIONAL_IMPR (RID_OFA_START + 254) #define RID_OFA_TP_INTERNATIONAL (RID_OFA_START + 252) // calc - +#define RID_SC_TP_INIT (RID_OFA_START + 253) //--------------------------------------------------------------------- // ResId's fuer die Zeichen-TabPages #define RID_SVXPAGE_CHAR_STD (RID_SVX_START + 3) diff --git a/svx/source/src/app.hrc b/svx/source/src/app.hrc index 69f5766..75c1d96 100755 --- a/svx/source/src/app.hrc +++ b/svx/source/src/app.hrc @@ -199,6 +199,7 @@ #define RID_SW_TP_OPTCAPTION_PAGE (RID_OFA_START + 256) #define SID_SC_TP_FORMULA (RID_OFA_START + 257) #define SID_SC_TP_COMPATIBILITY (RID_OFA_START + 258) +#define RID_SC_TP_INIT (RID_OFA_START + 259) // Strings ------------------------------------------
_______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice