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.thuswaldner@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 ------------------------------------------
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.