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

Reply via email to