[Libreoffice-commits] core.git: 2 commits - include/sfx2 sd/inc sd/sdi sd/source sfx2/sdi sfx2/source

Noel Grandin noel.grandin at collabora.co.uk
Fri Dec 22 16:17:42 UTC 2017


 include/sfx2/sfxsids.hrc                   |   21 +
 sd/inc/app.hrc                             |   42 +-
 sd/sdi/ViewShellBase.sdi                   |    9 
 sd/sdi/_drvwsh.sdi                         |  123 +++++
 sd/sdi/drviewsh.sdi                        |   10 
 sd/sdi/sdraw.sdi                           |  554 ++++++++++++++++++++++++++
 sd/source/ui/view/GraphicViewShellBase.cxx |    2 
 sd/source/ui/view/ViewShellBase.cxx        |   13 
 sd/source/ui/view/drviews2.cxx             |   24 +
 sd/source/ui/view/drviews6.cxx             |    3 
 sd/source/ui/view/drviews9.cxx             |  603 ++++++++++++++++++++++++++++-
 sd/source/ui/view/drviewsa.cxx             |    6 
 sd/source/ui/view/drviewse.cxx             |    7 
 sfx2/sdi/appslots.sdi                      |   36 +
 sfx2/sdi/docslots.sdi                      |   38 +
 sfx2/sdi/frmslots.sdi                      |   31 +
 sfx2/sdi/sfx.sdi                           |  378 ++++++++++++++++++
 sfx2/sdi/viwslots.sdi                      |    5 
 sfx2/source/appl/appserv.cxx               |  101 ++++
 sfx2/source/doc/objserv.cxx                |   61 ++
 sfx2/source/view/viewfrm.cxx               |    4 
 sfx2/source/view/viewfrm2.cxx              |   48 ++
 sfx2/source/view/viewsh.cxx                |    2 
 23 files changed, 2107 insertions(+), 14 deletions(-)

New commits:
commit b9b2ab0f9f1ad91bba899068d2be7fc7767f41c9
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Fri Dec 22 13:20:26 2017 +0200

    Revert "unused SID command in sfx2"
    
    This reverts commit 08f4ecd5823c420bb7157c238460d50f1f1f9791.
    
    Change-Id: I93c4e44de73ce62b4cad7e3c6c56943dafaaebb4
    Reviewed-on: https://gerrit.libreoffice.org/46966
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/include/sfx2/sfxsids.hrc b/include/sfx2/sfxsids.hrc
index b234ef92a445..995f3641a744 100644
--- a/include/sfx2/sfxsids.hrc
+++ b/include/sfx2/sfxsids.hrc
@@ -103,7 +103,9 @@
 #define SID_SAVEACOPY                       (SID_SFX_START + 999)
 #define SID_SAVEACOPYITEM                   (SID_SFX_START + 998)
 #define SID_CONVERT_IMAGES                  (SID_SFX_START + 997)
+#define SID_CLOSING                         (SID_SFX_START +1539)
 #define SID_CLOSEDOC                        (SID_SFX_START + 503)
+#define SID_CLOSEDOCS                       (SID_SFX_START + 595)
 #define SID_CLOSEDOC_SAVE                   (SID_SFX_START +   1)
 #define SID_CLOSEDOC_FILENAME               (SID_SFX_START +   2)
 #define SID_PRINTDOC                        (SID_SFX_START + 504)
@@ -142,6 +144,7 @@
 // browse-ids
 #define SID_BROWSE_FORWARD                  (SID_SFX_START + 1300)
 #define SID_BROWSE_BACKWARD                 (SID_SFX_START + 1301)
+#define SID_CREATELINK                      (SID_SFX_START + 1309)
 #define SID_EDITDOC                         (SID_SFX_START + 1312)
 #define SID_BROWSER_MODE                    (SID_SFX_START + 1313)
 #define SID_READONLYDOC                     (SID_SFX_START + 1314)
@@ -172,6 +175,7 @@
 #define SID_DOCUMENT_COMPARE                (SID_SFX_START + 1586)
 #define SID_DOCUMENT_MERGE                  (SID_SFX_START + 1587)
 
+#define SID_OFFICE_CHECK_PLZ                (SID_SFX_START + 1610)
 #define SID_CURRENT_URL                     (SID_SFX_START + 1613)
 
 #define SID_CHARSET                         (SID_SFX_START + 1633)
@@ -179,6 +183,7 @@
     // FREE (was: SID_CRASH)
 #define SID_FAIL_ON_WARNING                 (SID_SFX_START + 1646)
 #define SID_INPUTSTREAM                     (SID_SFX_START + 1648)
+#define SID_LOGOUT                          (SID_SFX_START + 1652)
 #define SID_JUMPMARK                        (SID_SFX_START + 1654)
 #define SID_BROWSE                          (SID_SFX_START + 1658)
     // FREE (was: SID_BACKTOWEBTOP)
@@ -216,6 +221,7 @@
 #define SID_MACRO_SIGNATURE                 (SID_SFX_START + 1704)
 #define SID_ATTR_WARNALIENFORMAT            (SID_SFX_START + 1705)
 #define SID_COPY_STREAM_IF_POSSIBLE         (SID_SFX_START + 1706)
+#define SID_MAIL_SENDDOCASFORMAT            (SID_SFX_START + 1707)
 #define SID_MAIL_SENDDOCASMS                (SID_SFX_START + 1708)
 #define SID_MAIL_SENDDOCASOOO               (SID_SFX_START + 1709)
 #define SID_NO_ACCEPT_DIALOG                (SID_SFX_START + 1710)
@@ -253,6 +259,9 @@
 
 #define SID_FOCUSURLBOX                     (SID_SFX_START + 1406)
 
+#define SID_ACTIVATE                        (SID_SFX_START + 525)
+#define SID_PRINTOUT                        (SID_SFX_START + 526)
+
 #define SID_FILTER_NAME                     (SID_SFX_START + 530)
 #define SID_DOC_SALVAGE                     (SID_SFX_START + 531)
 #define SID_INSERTDOC                       (SID_SFX_START + 532)
@@ -261,7 +270,10 @@
 #define SID_DOC_READONLY                    (SID_SFX_START + 590)
 #define SID_DOC_MODIFIED                    (SID_SFX_START + 584)
 #define SID_DOC_LOADING                     (SID_SFX_START + 585)
+#define SID_IMG_LOADING                     (SID_SFX_START + 586)
+#define SID_DOC_SAVED                       (SID_SFX_START + 599)
 #define SID_DOCINFO                         (SID_SFX_START + 535)
+#define SID_DOCINFO_KEYWORDS                (SID_SFX_START + 591)
 #define SID_DOCINFO_COMMENTS                (SID_SFX_START + 592)
 #define SID_DOCINFO_AUTHOR                  (SID_SFX_START + 593)
 #define SID_DOCINFO_MAJOR                   (SID_SFX_START + 594)
@@ -272,6 +284,7 @@
 #define SID_DONELINK                        (SID_SFX_START + 646)
 #define SID_REFERER                         (SID_SFX_START + 654)
 #define SID_MODIFIER                        (SID_SFX_START + 669)
+#define SID_SETOPTIONS                      (SID_SFX_START + 670)
 #define SID_SOURCEVIEW                      (SID_SFX_START + 675)
 #define SID_DOC_STARTPRESENTATION           (SID_SFX_START + 695)
 #define SID_DDE_RECONNECT_ONLOAD            (SID_SFX_START + 696)
@@ -333,6 +346,7 @@
 
 // Doc-Properties
 #define SID_DOCFULLNAME                     (SID_SFX_START + 581)
+#define SID_DOCPATH                         (SID_SFX_START + 582)
 #define SID_DOCTITLE                        (SID_SFX_START + 583)
 
 #define SID_DOCUMENT                        (SID_SFX_START + 588)
@@ -348,6 +362,8 @@
 #define SID_VIEWSHELL0                      (SID_SFX_START + 630)
 #define SID_VIEWSHELL1                      (SID_SFX_START + 631)
 #define SID_VIEWSHELL2                      (SID_SFX_START + 632)
+#define SID_VIEWSHELL3                      (SID_SFX_START + 633)
+#define SID_VIEWSHELL4                      (SID_SFX_START + 634)
 
 // id for thesaurus entry in context menu
 #define SID_THES                            (SID_SFX_START + 698)
@@ -393,11 +409,16 @@
 
 // default-ids for configuration
 #define SID_CONFIG                          (SID_SFX_START + 904)
+#define SID_TOOLBOXOPTIONS                  (SID_SFX_START + 907)
 #define SID_TOGGLEFUNCTIONBAR               (SID_SFX_START + 910)
 #define SID_MACROINFO                       (SID_SFX_START + 919)
 #define SID_TOGGLESTATUSBAR                 (SID_SFX_START + 920)
+#define SID_CONFIGSTATUSBAR                 (SID_SFX_START + 921)
+#define SID_CONFIGMENU                      (SID_SFX_START + 924)
+#define SID_CONFIGACCEL                     (SID_SFX_START + 925)
 #define SID_CONFIGEVENT                     (SID_SFX_START + 926)
 #define SID_CFGFILE                         (SID_SFX_START + 927)
+#define SID_SHOWPOPUPS                      (SID_SFX_START + 929)
 
 // Item-Id for the assigned event Tabpage
 #define SID_ATTR_MACROITEM                  (SID_SFX_START + 934)
diff --git a/sfx2/sdi/appslots.sdi b/sfx2/sdi/appslots.sdi
index 7e9eef75047a..da6d084403fe 100644
--- a/sfx2/sdi/appslots.sdi
+++ b/sfx2/sdi/appslots.sdi
@@ -25,11 +25,18 @@ interface Application
     [
         ExecMethod = MiscExec_Impl ;
     ]
+    SID_SETOPTIONS
+    [
+        ExecMethod = MiscExec_Impl ;
+    ]
     SID_QUITAPP // ole(req) api(final/play)
     [
         ExecMethod = MiscExec_Impl ;
         StateMethod = MiscState_Impl ;
     ]
+    SID_LOGOUT // ole(req) api(final/play)
+    [
+    ]
     SID_HELPINDEX // ole(no) api(final/todo)
     [
         ExecMethod = MiscExec_Impl ;
@@ -54,6 +61,26 @@ interface Application
         ExecMethod = MiscExec_Impl ;
         StateMethod = MiscState_Impl ;
     ]
+    SID_TOOLBOXOPTIONS // ole(no) api(final/play)
+    [
+        ExecMethod = MiscExec_Impl ;
+        StateMethod = MiscState_Impl ;
+    ]
+    SID_CONFIGSTATUSBAR // ole(no) api(final/play)
+    [
+        ExecMethod = MiscExec_Impl ;
+        StateMethod = MiscState_Impl ;
+    ]
+    SID_CONFIGMENU // ole(no) api(final/play)
+    [
+        ExecMethod = MiscExec_Impl ;
+        StateMethod = MiscState_Impl ;
+    ]
+    SID_CONFIGACCEL // ole(no) api(final/play)
+    [
+        ExecMethod = MiscExec_Impl ;
+        StateMethod = MiscState_Impl ;
+    ]
     SID_CONFIGEVENT // ole(no) api(final/play)
     [
         ExecMethod = MiscExec_Impl ;
@@ -189,6 +216,11 @@ shell SfxApplication
     [
         ExecMethod = NewDocDirectExec_Impl ;
     ]
+    SID_CLOSEDOCS
+    [
+        ExecMethod = MiscExec_Impl ;
+        StateMethod = MiscState_Impl ;
+    ]
     SID_BASICIDE_APPEAR // status(final|play)
     [
         ExecMethod = OfaExec_Impl;
@@ -216,6 +248,10 @@ shell SfxApplication
 
 
 
+    SID_OFFICE_CHECK_PLZ
+    [
+        ExecMethod = OfaExec_Impl;
+    ]
     SID_NEWSD // status(final|play)
     [
         ExecMethod = OfaExec_Impl;
diff --git a/sfx2/sdi/docslots.sdi b/sfx2/sdi/docslots.sdi
index 5789187c8963..811467cd94be 100644
--- a/sfx2/sdi/docslots.sdi
+++ b/sfx2/sdi/docslots.sdi
@@ -46,6 +46,11 @@ interface Documents
     [
         ExecMethod = OpenDocExec_Impl ;
     ]
+    SID_CLOSEDOCS // ole(req) api(final/play/rec)
+    [
+        ExecMethod = MiscExec_Impl ;
+        StateMethod = MiscState_Impl ;
+    ]
     SID_SAVEDOCS // ole(no) api(final/play/rec)
     [
         ExecMethod = MiscExec_Impl ;
@@ -61,6 +66,11 @@ interface Document
         ExecMethod = ExecProps_Impl ;
         StateMethod = StateProps_Impl ;
     ]
+    SID_DOCPATH // ole(req) api(final/play/norec)
+    [
+        ExecMethod = ExecProps_Impl ;
+        StateMethod = StateProps_Impl ;
+    ]
     SID_DOCFULLNAME // ole(req) api(final/play/norec)
     [
         ExecMethod = ExecProps_Impl ;
@@ -71,6 +81,15 @@ interface Document
         ExecMethod = ExecFile_Impl ;
         StateMethod = GetState_Impl ;
     ]
+    SID_CLOSING // ole(no) api(final/play/norec)
+    [
+        StateMethod = StateProps_Impl ;
+    ]
+    SID_ACTIVATE // ole(no) api(final/play/norec)
+    [
+        ExecMethod = ExecView_Impl ;
+        StateMethod = StateView_Impl ;
+    ]
 }
 
 interface OfficeDocument : Document
@@ -85,11 +104,21 @@ interface OfficeDocument : Document
         ExecMethod = ExecProps_Impl ;
         StateMethod = StateProps_Impl ;
     ]
+    SID_DOCINFO_KEYWORDS // ole(opt) api(todo)
+    [
+        ExecMethod = ExecProps_Impl ;
+        StateMethod = StateProps_Impl ;
+    ]
     SID_DOC_READONLY // ole(opt) api(final/play/norec)
     [
         ExecMethod = ExecProps_Impl ;
         StateMethod = StateProps_Impl ;
     ]
+    SID_DOC_SAVED // ole(req) api(final/play/norec)
+    [
+        ExecMethod = ExecProps_Impl ;
+        StateMethod = StateProps_Impl ;
+    ]
     SID_DOC_MODIFIED // ole(no) api(final/noplay/norec)
     [
         StateMethod = GetState_Impl ;
@@ -130,10 +159,19 @@ interface OfficeDocument : Document
         ExecMethod = PrintExec_Impl ;
         StateMethod = NoState ;
     ]
+    SID_PRINTOUT // ole(opt) api(final/play/norec)
+    [
+        ExecMethod = PrintExec_Impl ;
+        StateMethod = PrintState_Impl ;
+    ]
     SID_DOC_LOADING // ole(no) api(final/play/norec)
     [
         StateMethod = StateProps_Impl ;
     ]
+    SID_IMG_LOADING // ole(no) api(final/play/norec)
+    [
+        StateMethod = StateProps_Impl ;
+    ]
     SID_VERSION
     [
         ExecMethod = ExecFile_Impl;
diff --git a/sfx2/sdi/frmslots.sdi b/sfx2/sdi/frmslots.sdi
index 8ea5a60bb7b9..09aafef95b7d 100644
--- a/sfx2/sdi/frmslots.sdi
+++ b/sfx2/sdi/frmslots.sdi
@@ -194,6 +194,10 @@ interface Window
 
 interface BrowseWindow : Window
 {
+    SID_ACTIVATE // ole(no) api(final/play/rec)
+    [
+        // Implementations in Subclasses
+    ]
     SID_NEWWINDOW // ole(no) api(play/rec)
     [
         ExecMethod = ExecView_Impl ;
@@ -234,6 +238,16 @@ interface BrowseWindow : Window
         ExecMethod = ExecView_Impl ;
         StateMethod = StateView_Impl ;
     ]
+    SID_VIEWSHELL3 // ole(no) api(no)
+    [
+        ExecMethod = ExecView_Impl ;
+        StateMethod = StateView_Impl ;
+    ]
+    SID_VIEWSHELL4 // ole(no) api(no)
+    [
+        ExecMethod = ExecView_Impl ;
+        StateMethod = StateView_Impl ;
+    ]
 }
 
 interface TopWindow : BrowseWindow
@@ -263,6 +277,11 @@ interface TopWindow : BrowseWindow
         ExecMethod = INetExecute_Impl ;
         StateMethod = INetState_Impl ;
     ]
+    SID_CREATELINK // ole(no) api()
+    [
+        ExecMethod = INetExecute_Impl ;
+        StateMethod = INetState_Impl ;
+    ]
     SID_FOCUSURLBOX // ole(no) api(final/play/rec)
     [
         ExecMethod = INetExecute_Impl ;
@@ -275,5 +294,17 @@ interface TopWindow : BrowseWindow
 shell SfxViewFrame
 {
     import TopWindow;
+
+    SID_ACTIVATE // ole(no) api(final/play/rec)
+    [
+        ExecMethod = Exec_Impl ;
+        StateMethod = GetState_Impl ;
+    ]
+
+    SID_SHOWPOPUPS
+    [
+        ExecMethod = Exec_Impl ;
+        StateMethod = GetState_Impl ;
+    ]
 }
 
diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi
index 6a34243d396e..79d10caa0716 100644
--- a/sfx2/sdi/sfx.sdi
+++ b/sfx2/sdi/sfx.sdi
@@ -77,6 +77,46 @@ SfxBoolItem _SwitchViewShell2 SID_VIEWSHELL2
 ]
 
 
+SfxBoolItem _SwitchViewShell3 SID_VIEWSHELL3
+
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::View;
+]
+
+
+SfxBoolItem _SwitchViewShell4 SID_VIEWSHELL4
+
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::View;
+]
+
+
 SfxVoidItem About SID_ABOUT
 ()
 [
@@ -95,6 +135,24 @@ SfxVoidItem About SID_ABOUT
 ]
 
 
+SfxVoidItem Activate SID_ACTIVATE
+()
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = TRUE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::View;
+]
+
+
 SfxBoolItem ActiveHelp SID_HELPBALLOONS
 
 [
@@ -151,6 +209,25 @@ SfxStringItem NewDoc SID_NEWDOC
     GroupId = SfxGroupId::Application;
 ]
 
+
+SfxVoidItem AddBookmark SID_CREATELINK
+()
+[
+    AutoUpdate = FALSE,
+    FastCall = TRUE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Explorer;
+]
+
+
 SfxStringItem AddDirect SID_NEWDOCDIRECT
 ()
 [
@@ -543,6 +620,25 @@ SfxVoidItem ClearHistory SID_CLEARHISTORY
     GroupId = SfxGroupId::Options;
 ]
 
+SfxVoidItem CloseDocs SID_CLOSEDOCS
+()
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Application;
+]
+
+
 SfxStringItem CloseDoc SID_CLOSEDOC
 (SfxBoolItem saveChanges SID_CLOSEDOC_SAVE,SfxStringItem fileName SID_CLOSEDOC_FILENAME)
 [
@@ -581,6 +677,25 @@ SfxVoidItem CloseWin SID_CLOSEWIN
 ]
 
 
+SfxBoolItem Closing SID_CLOSING
+
+[
+    AutoUpdate = TRUE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Intern;
+]
+
+
 SfxStringItem Comments SID_DOCINFO_COMMENTS
 
 [
@@ -1876,6 +1991,43 @@ SfxBoolItem IsLoading SID_DOC_LOADING
 ]
 
 
+SfxBoolItem IsLoadingImages SID_IMG_LOADING
+
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::View;
+]
+
+
+SfxBoolItem PrintOut SID_PRINTOUT
+(SfxInt16Item copies SID_PRINT_COPIES,SfxBoolItem silent SID_SILENT)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Document;
+]
+
+
 SfxVoidItem JumpToMark SID_JUMPTOMARK
 (SfxStringItem Bookmark SID_JUMPTOMARK)
 [
@@ -1894,6 +2046,25 @@ SfxVoidItem JumpToMark SID_JUMPTOMARK
 ]
 
 
+SfxStringItem Keywords SID_DOCINFO_KEYWORDS
+
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = ;
+]
+
+
 SfxStringItem LibLoaded SID_BASICIDE_LIBLOADED
 (SfxUsrAnyItem Document SID_BASICIDE_ARG_DOCUMENT_MODEL,SfxStringItem LibName SID_BASICIDE_ARG_LIBNAME)
 [
@@ -1967,6 +2138,25 @@ SfxStringItem LibSelector SID_BASICIDE_LIBSELECTOR
 ]
 
 
+SfxVoidItem LoadAccel SID_CONFIGACCEL
+(SfxStringItem FileName SID_CFGFILE)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Options;
+]
+
+
 SfxVoidItem LoadBasic SID_BASICLOAD
 ()
 [
@@ -2005,6 +2195,82 @@ SfxVoidItem LoadEvents SID_CONFIGEVENT
 ]
 
 
+SfxVoidItem LoadMenu SID_CONFIGMENU
+(SfxStringItem FileName SID_CFGFILE)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Options;
+]
+
+
+SfxVoidItem LoadStatusBar SID_CONFIGSTATUSBAR
+(SfxStringItem FileName SID_CFGFILE)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Options;
+]
+
+
+SfxVoidItem LoadToolBox SID_TOOLBOXOPTIONS
+()
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Options;
+]
+
+
+SfxStringItem Logout SID_LOGOUT
+()
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Application;
+]
+
+
 SfxScriptOrganizerItem ScriptOrganizer SID_SCRIPTORGANIZER
 (SfxScriptOrganizerItem ScriptOrganizer SID_SCRIPTORGANIZER)
 [
@@ -2843,6 +3109,25 @@ SfxVoidItem PasteOnlyValue SID_PASTE_ONLY_VALUE
 ]
 
 
+SfxStringItem DocPath SID_DOCPATH
+
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = ;
+]
+
+
 SfxVoidItem Print SID_PRINTDOC
 (SfxStringItem PrinterName SID_PRINTER_NAME,SfxStringItem FileName SID_FILE_NAME,SfxInt16Item Copies SID_PRINT_COPIES,SfxStringItem RangeText SID_PRINT_PAGES,SfxBoolItem Selection SID_SELECTION,SfxBoolItem Asynchron SID_ASYNCHRON,SfxBoolItem Collate SID_PRINT_COLLATE,SfxBoolItem Silent SID_SILENT)
 [
@@ -3399,6 +3684,25 @@ SfxVoidItem ImportDialog SID_IMPORT_DIALOG
 ]
 
 
+SfxBoolItem Saved SID_DOC_SAVED
+
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = ;
+]
+
+
 SfxVoidItem SbxDeleted SID_BASICIDE_SBXDELETED
 (SbxItem Sbx SID_BASICIDE_ARG_SBX)
 [
@@ -3618,6 +3922,24 @@ SfxStringItem SendViaBluetooth SID_BLUETOOTH_SENDDOC
 ]
 
 
+SfxStringItem SendMailDocAsFormat SID_MAIL_SENDDOCASFORMAT
+(SfxStringItem Recipient SID_MAIL_RECIPIENT,SfxStringItem Subject SID_MAIL_SUBJECT,SfxStringItem MailText SID_MAIL_TEXT,SfxUInt16Item Priority SID_MAIL_PRIORITY,SfxStringItem TypeName SID_TYPE_NAME)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+        AccelConfig = FALSE,
+        MenuConfig = FALSE,
+        ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Document;
+]
+
 SfxStringItem SendMailDocAsMS SID_MAIL_SENDDOCASMS
 (SfxStringItem Recipient SID_MAIL_RECIPIENT,SfxStringItem Subject SID_MAIL_SUBJECT,SfxStringItem MailText SID_MAIL_TEXT,SfxUInt16Item Priority SID_MAIL_PRIORITY)
 [
@@ -3655,6 +3977,44 @@ SfxStringItem SendMailDocAsOOo SID_MAIL_SENDDOCASOOO
 ]
 
 
+SfxVoidItem SetOptions SID_SETOPTIONS
+()
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = ;
+]
+
+
+SfxBoolItem ShowPopups SID_SHOWPOPUPS
+
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Options;
+]
+
+
 SfxVoidItem ShowSbx SID_BASICIDE_SHOWSBX
 (SbxItem Sbx SID_BASICIDE_ARG_SBX)
 [
@@ -4589,6 +4949,24 @@ SfxVoidItem InternetDialog SID_INET_DLG
 ]
 
 
+SfxVoidItem CheckPLZ SID_OFFICE_CHECK_PLZ
+(SfxStringItem PLZ SID_OFFICE_CHECK_PLZ)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Special;
+]
+
+
 SfxVoidItem AutoPilotAddressDataSource SID_ADDRESS_DATA_SOURCE
 ()
 [
diff --git a/sfx2/sdi/viwslots.sdi b/sfx2/sdi/viwslots.sdi
index 2e89181f9d04..111180b30d7d 100644
--- a/sfx2/sdi/viwslots.sdi
+++ b/sfx2/sdi/viwslots.sdi
@@ -34,6 +34,11 @@ interface View
         ExecMethod = ExecMisc_Impl ;
         StateMethod = GetState_Impl ;
     ]
+    SID_MAIL_SENDDOCASFORMAT // ole(no) api(todo)
+    [
+        ExecMethod = ExecMisc_Impl ;
+        StateMethod = GetState_Impl ;
+    ]
     SID_MAIL_SENDDOCASMS // ole(no) api(todo)
     [
         ExecMethod = ExecMisc_Impl ;
diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx
index eaa244153fc2..31de5352644b 100644
--- a/sfx2/source/appl/appserv.cxx
+++ b/sfx2/source/appl/appserv.cxx
@@ -324,12 +324,45 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq )
     bool bDone = false;
     switch ( rReq.GetSlot() )
     {
+        case SID_SETOPTIONS:
+        {
+            if( rReq.GetArgs() )
+                SetOptions_Impl( *rReq.GetArgs() );
+            break;
+        }
+
         case SID_QUITAPP:
+        case SID_LOGOUT:
         {
             // protect against reentrant calls
             if ( pImpl->bInQuit )
                 return;
 
+            if ( rReq.GetSlot() == SID_LOGOUT )
+            {
+                for ( SfxObjectShell *pObjSh = SfxObjectShell::GetFirst();
+                    pObjSh; pObjSh = SfxObjectShell::GetNext( *pObjSh ) )
+                {
+                    if ( !pObjSh->IsModified() )
+                        continue;
+
+                    SfxViewFrame* pFrame = SfxViewFrame::GetFirst( pObjSh );
+                    if ( !pFrame || !pFrame->GetWindow().IsReallyVisible() )
+                        continue;
+
+                    if (pObjSh->PrepareClose())
+                        pObjSh->SetModified( false );
+                    else
+                        return;
+                }
+
+                SfxStringItem aNameItem( SID_FILE_NAME, OUString("vnd.sun.star.cmd:logout") );
+                SfxStringItem aReferer( SID_REFERER, "private/user" );
+                pImpl->pAppDispat->ExecuteList(SID_OPENDOC,
+                        SfxCallMode::SLOT, { &aNameItem, &aReferer });
+                return;
+            }
+
             // try from nested requests again after 100ms
             if( Application::GetDispatchLevel() > 1 )
             {
@@ -361,6 +394,10 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq )
         }
 
         case SID_CONFIG:
+        case SID_TOOLBOXOPTIONS:
+        case SID_CONFIGSTATUSBAR:
+        case SID_CONFIGMENU:
+        case SID_CONFIGACCEL:
         case SID_CONFIGEVENT:
         {
             SfxAbstractDialogFactory* pFact =
@@ -399,6 +436,40 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq )
             break;
         }
 
+        case SID_CLOSEDOCS:
+        {
+
+            Reference < XDesktop2 > xDesktop  = Desktop::create( ::comphelper::getProcessComponentContext() );
+            Reference< XIndexAccess > xTasks( xDesktop->getFrames(), UNO_QUERY );
+            if ( !xTasks.is() )
+                break;
+
+            sal_Int32 n=0;
+            do
+            {
+                if ( xTasks->getCount() <= n )
+                    break;
+
+                Any aAny = xTasks->getByIndex(n);
+                Reference < XCloseable > xTask;
+                aAny >>= xTask;
+                try
+                {
+                    xTask->close(true);
+                    n++;
+                }
+                catch( CloseVetoException& )
+                {
+                }
+            }
+            while( true );
+
+            bool bOk = ( n == 0);
+            rReq.SetReturnValue( SfxBoolItem( 0, bOk ) );
+            bDone = true;
+            break;
+        }
+
         case SID_SAVEDOCS:
         {
             bool bOK = true;
@@ -958,6 +1029,10 @@ void SfxApplication::MiscState_Impl(SfxItemSet &rSet)
                 }
 
                 case SID_CONFIG:
+                case SID_TOOLBOXOPTIONS:
+                case SID_CONFIGSTATUSBAR:
+                case SID_CONFIGMENU:
+                case SID_CONFIGACCEL:
                 case SID_CONFIGEVENT:
                 {
                     if( SvtMiscOptions().DisableUICustomization() )
@@ -988,6 +1063,15 @@ void SfxApplication::MiscState_Impl(SfxItemSet &rSet)
                 }
                 break;
 
+                case SID_CLOSEDOCS:
+                {
+                    Reference < XDesktop2 > xDesktop = Desktop::create( ::comphelper::getProcessComponentContext() );
+                    Reference< XIndexAccess > xTasks( xDesktop->getFrames(), UNO_QUERY );
+                    if ( !xTasks.is() || !xTasks->getCount() )
+                        rSet.DisableItem(nWhich);
+                    break;
+                }
+
                 case SID_SAVEDOCS:
                 {
                     bool bModified = false;
@@ -1485,6 +1569,23 @@ void SfxApplication::OfaExec_Impl( SfxRequest& rReq )
         break;
 #endif // HAVE_FEATURE_SCRIPTING
 
+        case SID_OFFICE_CHECK_PLZ:
+        {
+            bool bRet = false;
+            const SfxStringItem* pStringItem = rReq.GetArg<SfxStringItem>(rReq.GetSlot());
+
+            if ( pStringItem )
+            {
+                bRet = true /*!!!SfxIniManager::CheckPLZ( aPLZ )*/;
+            }
+#if HAVE_FEATURE_SCRIPTING
+            else
+                SbxBase::SetError( ERRCODE_BASIC_WRONG_ARGS );
+#endif
+            rReq.SetReturnValue( SfxBoolItem( rReq.GetSlot(), bRet ) );
+        }
+        break;
+
         case SID_AUTO_CORRECT_DLG:
         {
             SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create();
diff --git a/sfx2/source/doc/objserv.cxx b/sfx2/source/doc/objserv.cxx
index 4304a659c111..50fa6bc2b5f1 100644
--- a/sfx2/source/doc/objserv.cxx
+++ b/sfx2/source/doc/objserv.cxx
@@ -244,8 +244,16 @@ void SfxObjectShell::PrintExec_Impl(SfxRequest &rReq)
 }
 
 
-void SfxObjectShell::PrintState_Impl(SfxItemSet &/*rSet*/)
+void SfxObjectShell::PrintState_Impl(SfxItemSet &rSet)
 {
+    bool bPrinting = false;
+    SfxViewFrame* pFrame = SfxViewFrame::GetFirst( this );
+    if ( pFrame )
+    {
+        SfxPrinter *pPrinter = pFrame->GetViewShell()->GetPrinter();
+        bPrinting = pPrinter && pPrinter->IsPrinting();
+    }
+    rSet.Put( SfxBoolItem( SID_PRINTOUT, bPrinting ) );
 }
 
 bool SfxObjectShell::APISaveAs_Impl(const OUString& aFileName, SfxItemSet& rItemSet)
@@ -1103,6 +1111,14 @@ void SfxObjectShell::ExecProps_Impl(SfxRequest &rReq)
         case SID_DOCINFO_COMMENTS :
             getDocProperties()->setDescription( static_cast<const SfxStringItem&>(rReq.GetArgs()->Get(rReq.GetSlot())).GetValue() );
             break;
+
+        case SID_DOCINFO_KEYWORDS :
+        {
+            const OUString aStr = static_cast<const SfxStringItem&>(rReq.GetArgs()->Get(rReq.GetSlot())).GetValue();
+            getDocProperties()->setKeywords(
+                ::comphelper::string::convertCommaSeparated(aStr) );
+            break;
+        }
     }
 }
 
@@ -1128,6 +1144,19 @@ void SfxObjectShell::StateProps_Impl(SfxItemSet &rSet)
                 break;
             }
 
+            case SID_DOCINFO_KEYWORDS :
+            {
+                rSet.Put( SfxStringItem( nSID, ::comphelper::string::
+                    convertCommaSeparated(getDocProperties()->getKeywords())) );
+                break;
+            }
+
+            case SID_DOCPATH:
+            {
+                OSL_FAIL( "Not supported anymore!" );
+                break;
+            }
+
             case SID_DOCFULLNAME:
             {
                 rSet.Put( SfxStringItem( SID_DOCFULLNAME, GetTitle(SFX_TITLE_FULLNAME) ) );
@@ -1146,16 +1175,44 @@ void SfxObjectShell::StateProps_Impl(SfxItemSet &rSet)
                 break;
             }
 
+            case SID_DOC_SAVED:
+            {
+                rSet.Put( SfxBoolItem( SID_DOC_SAVED, !IsModified() ) );
+                break;
+            }
+
+            case SID_CLOSING:
+            {
+                rSet.Put( SfxBoolItem( SID_CLOSING, false ) );
+                break;
+            }
+
             case SID_DOC_LOADING:
                 rSet.Put( SfxBoolItem( nSID, ! ( pImpl->nLoadedFlags & SfxLoadedFlags::MAINDOCUMENT ) ) );
                 break;
+
+            case SID_IMG_LOADING:
+                rSet.Put( SfxBoolItem( nSID, ! ( pImpl->nLoadedFlags & SfxLoadedFlags::IMAGES ) ) );
+                break;
         }
     }
 }
 
 
-void SfxObjectShell::ExecView_Impl(SfxRequest & /*rReq*/)
+void SfxObjectShell::ExecView_Impl(SfxRequest &rReq)
 {
+    switch ( rReq.GetSlot() )
+    {
+        case SID_ACTIVATE:
+        {
+            SfxViewFrame *pFrame = SfxViewFrame::GetFirst( this );
+            if ( pFrame )
+                pFrame->GetFrame().Appear();
+            rReq.SetReturnValue( SfxObjectItem( 0, pFrame ) );
+            rReq.Done();
+            break;
+        }
+    }
 }
 
 
diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx
index 95f97dee1672..149b24b89826 100644
--- a/sfx2/source/view/viewfrm.cxx
+++ b/sfx2/source/view/viewfrm.cxx
@@ -2038,6 +2038,8 @@ void SfxViewFrame::ExecView_Impl
         case SID_VIEWSHELL0:
         case SID_VIEWSHELL1:
         case SID_VIEWSHELL2:
+        case SID_VIEWSHELL3:
+        case SID_VIEWSHELL4:
         {
             const sal_uInt16 nViewNo = rReq.GetSlot() - SID_VIEWSHELL0;
             bool bSuccess = SwitchToViewShell_Impl( nViewNo, true );
@@ -2184,6 +2186,8 @@ void SfxViewFrame::StateView_Impl
                 case SID_VIEWSHELL0:
                 case SID_VIEWSHELL1:
                 case SID_VIEWSHELL2:
+                case SID_VIEWSHELL3:
+                case SID_VIEWSHELL4:
                 {
                     sal_uInt16 nViewNo = nWhich - SID_VIEWSHELL0;
                     if ( GetObjectShell()->GetFactory().GetViewFactoryCount() >
diff --git a/sfx2/source/view/viewfrm2.cxx b/sfx2/source/view/viewfrm2.cxx
index f32bb3a6eca1..0357d90c987e 100644
--- a/sfx2/source/view/viewfrm2.cxx
+++ b/sfx2/source/view/viewfrm2.cxx
@@ -155,6 +155,39 @@ void SfxViewFrame::Exec_Impl(SfxRequest &rReq )
 
     switch ( rReq.GetSlot() )
     {
+        case SID_SHOWPOPUPS :
+        {
+            const SfxBoolItem* pShowItem = rReq.GetArg<SfxBoolItem>(SID_SHOWPOPUPS);
+            bool bShow = pShowItem == nullptr || pShowItem->GetValue();
+
+            SfxWorkWindow *pWorkWin = GetFrame().GetWorkWindow_Impl();
+            if ( bShow )
+            {
+                // First, make the floats viewable
+                pWorkWin->MakeChildrenVisible_Impl( bShow );
+                GetDispatcher()->Update_Impl( true );
+
+                // Then view it
+                GetBindings().HidePopups( !bShow );
+            }
+            else
+            {
+                pWorkWin->HidePopups_Impl( !bShow, true );
+                pWorkWin->MakeChildrenVisible_Impl( bShow );
+            }
+
+            Invalidate( rReq.GetSlot() );
+            rReq.Done();
+            break;
+        }
+
+        case SID_ACTIVATE:
+        {
+            MakeActive_Impl( true );
+            rReq.SetReturnValue( SfxObjectItem( 0, this ) );
+            break;
+        }
+
         case SID_NEWDOCDIRECT :
         {
             const SfxStringItem* pFactoryItem = rReq.GetArg<SfxStringItem>(SID_NEWDOCDIRECT);
@@ -266,6 +299,9 @@ void SfxViewFrame::GetState_Impl( SfxItemSet &rSet )
                 break;
             }
 
+            case SID_SHOWPOPUPS :
+                break;
+
             case SID_OBJECT:
                 if ( GetViewShell() && GetViewShell()->GetVerbs().getLength() && !GetObjectShell()->IsInPlaceActive() )
                 {
@@ -293,6 +329,12 @@ void SfxViewFrame::INetExecute_Impl( SfxRequest &rRequest )
         case SID_BROWSE_BACKWARD:
             OSL_FAIL( "SfxViewFrame::INetExecute_Impl: SID_BROWSE_FORWARD/BACKWARD are dead!" );
             break;
+        case SID_CREATELINK:
+        {
+/*! (pb) we need new implementation to create a link
+*/
+            break;
+        }
         case SID_FOCUSURLBOX:
         {
             SfxStateCache *pCache = GetBindings().GetAnyStateCache_Impl( SID_OPENURL );
@@ -316,6 +358,12 @@ void SfxViewFrame::INetState_Impl( SfxItemSet &rItemSet )
 {
     rItemSet.DisableItem( SID_BROWSE_FORWARD );
     rItemSet.DisableItem( SID_BROWSE_BACKWARD );
+
+    // Add/SaveToBookmark at BASIC-IDE, QUERY-EDITOR etc. disable
+    SfxObjectShell *pDocSh = GetObjectShell();
+    bool bEmbedded = pDocSh && pDocSh->GetCreateMode() == SfxObjectCreateMode::EMBEDDED;
+    if ( !pDocSh || bEmbedded || !pDocSh->HasName() )
+        rItemSet.DisableItem( SID_CREATELINK );
 }
 
 void SfxViewFrame::Activate( bool /*bMDI*/ )
diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx
index 6f3519a81d85..8060a330f132 100644
--- a/sfx2/source/view/viewsh.cxx
+++ b/sfx2/source/view/viewsh.cxx
@@ -444,6 +444,7 @@ void SfxViewShell::ExecMisc_Impl( SfxRequest &rReq )
         case SID_MAIL_SENDDOCASOOO:
         case SID_MAIL_SENDDOCASPDF:
         case SID_MAIL_SENDDOC:
+        case SID_MAIL_SENDDOCASFORMAT:
         {
             SfxObjectShell* pDoc = GetObjectShell();
             if ( pDoc && pDoc->QueryHiddenInformation(
@@ -656,6 +657,7 @@ void SfxViewShell::GetState_Impl( SfxItemSet &rSet )
 #if HAVE_FEATURE_MACOSX_SANDBOX
             case SID_BLUETOOTH_SENDDOC:
             case SID_MAIL_SENDDOC:
+            case SID_MAIL_SENDDOCASFORMAT:
             case SID_MAIL_SENDDOCASMS:
             case SID_MAIL_SENDDOCASOOO:
             case SID_MAIL_SENDDOCASPDF:
commit de6ccf060cc85a6ea154989bcc254e37854aa07b
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Fri Dec 22 13:20:22 2017 +0200

    Revert "unused SID command in sd"
    
    This reverts commit 46db544b41fd30f61dd7b7b4fa2b97ab22ceb079.
    
    Change-Id: I8eed13269000a7fc4c52c1695e36df8607b470ac
    Reviewed-on: https://gerrit.libreoffice.org/46965
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/sd/inc/app.hrc b/sd/inc/app.hrc
index 2624480081da..f6c6752e8c66 100644
--- a/sd/inc/app.hrc
+++ b/sd/inc/app.hrc
@@ -166,7 +166,7 @@
 // In svxids.hrc:  SID_ATTR_SYMBOLTYPE          (SID_SD_START+115)
 // In svxids.hrc:  SID_ATTR_SYMBOLSIZE          (SID_SD_START+116)
 #define SID_REVERSE_ORDER                   (SID_SD_START+117)
-    // FREE
+#define SID_CLEAR_UNDO_STACK                (SID_SD_START+118)
 #define SID_CONNECTOR_ARROW_START           (SID_SD_START+119)
 #define SID_CONNECTOR_ARROW_END             (SID_SD_START+120)
 #define SID_CONNECTOR_ARROWS                (SID_SD_START+121)
@@ -269,17 +269,36 @@
 #define ID_VAL_WIDTH                        (SID_SD_START+247)
 #define SID_GRID_FRONT                      (SID_SD_START+248)
 #define ID_VAL_ISVISIBLE                    (SID_SD_START+249)
-    // FREE
+#define SID_MOVETO                          (SID_SD_START+250)
+#define SID_LINETO                          (SID_SD_START+251)
 // In svxids.hrc: SID_BEZIERTO                  (SID_SD_START+252)
-    // FREE
+#define SID_PAGESIZE                        (SID_SD_START+253)
 #define SID_PAGEMARGIN                      (SID_SD_START+254)
     // FREE
 #define SID_COLORVIEW                       (SID_SD_START+257)
     // FREE
+#define SID_GETRED                          (SID_SD_START+259)
+#define SID_GETBLUE                         (SID_SD_START+260)
+#define SID_GETGREEN                        (SID_SD_START+261)
+#define SID_SETFILLSTYLE                    (SID_SD_START+262)
+#define SID_SETFILLCOLOR                    (SID_SD_START+263)
+#define SID_GRADIENT                        (SID_SD_START+264)
+#define SID_SETLINESTYLE                    (SID_SD_START+265)
+#define SID_SETLINEWIDTH                    (SID_SD_START+266)
 // In svxids.hrc: SID_DASH                      (SID_SD_START+267)
 #define SID_RENAMEPAGE                      (SID_SD_START+268)
 #define SID_RENAMELAYER                     (SID_SD_START+269)
-    // FREE
+#define SID_HATCH                           (SID_SD_START+270)
+#define SID_GETFILLSTYLE                    (SID_SD_START+271)
+#define SID_GETLINESTYLE                    (SID_SD_START+272)
+#define SID_GETLINEWIDTH                    (SID_SD_START+273)
+#define SID_SETLINECOLOR                    (SID_SD_START+274)
+#define SID_SETHATCHCOLOR                   (SID_SD_START+275)
+#define SID_SETGRADSTARTCOLOR               (SID_SD_START+276)
+#define SID_SETGRADENDCOLOR                 (SID_SD_START+277)
+#define SID_SELECTGRADIENT                  (SID_SD_START+278)
+#define SID_SELECTHATCH                     (SID_SD_START+279)
+#define SID_UNSELECT                        (SID_SD_START+280)
 #define SID_TEXTATTR_DLG                    (SID_SD_START+281)
 #define SID_ORIGINAL_SIZE                   (SID_SD_START+282)
 #define SID_PAGES_PER_ROW                   (SID_SD_START+284)
@@ -291,7 +310,7 @@
     // FREE
 #define SID_NAVIGATOR_PAGE                  (SID_SD_START+292)
 #define SID_NAVIGATOR_OBJECT                (SID_SD_START+293)
-    // FREE
+#define SID_ANIMATOR_INIT                   (SID_SD_START+294)
 #define SID_DRAWTBX_3D_OBJECTS              (SID_SD_START+295)
 #define SID_3D_CUBE                         (SID_SD_START+296)
 #define SID_3D_SPHERE                       (SID_SD_START+297)
@@ -382,7 +401,7 @@
 #define SID_PREVIEW_QUALITY_CONTRAST        (SID_SD_START+401)
     // FREE
 #define SID_RENAMEPAGE_QUICK                (SID_SD_START+405)
-    // FREE
+#define SID_SWITCH_SHELL                    (SID_SD_START+406)
 #define SID_HEADER_AND_FOOTER               (SID_SD_START+407)
 #define SID_MASTER_LAYOUTS                  (SID_SD_START+408)
     // FREE
@@ -396,12 +415,21 @@
 #define SID_LEFT_PANE_IMPRESS               (SID_SD_START+414)
 #define SID_LEFT_PANE_DRAW                  (SID_SD_START+415)
         // FREE
+#define SID_NOTES_WINDOW                    (SID_SD_START+417)
+        // FREE
 #define SID_NORMAL_MULTI_PANE_GUI           (SID_SD_START+420)
 #define SID_SLIDE_SORTER_MULTI_PANE_GUI     (SID_SD_START+421)
 
 #define SID_SELECT_BACKGROUND               (SID_SD_START+422)
 #define SID_SAVE_BACKGROUND                 (SID_SD_START+423)
         // FREE
+// Slots for the tool pane popup
+#define SID_TP_APPLY_TO_ALL_SLIDES          (SID_SD_START+425)
+#define SID_TP_APPLY_TO_SELECTED_SLIDES     (SID_SD_START+426)
+#define SID_TP_USE_FOR_NEW_PRESENTATIONS    (SID_SD_START+427)
+#define SID_TP_SHOW_LARGE_PREVIEW           (SID_SD_START+428)
+#define SID_TP_SHOW_SMALL_PREVIEW           (SID_SD_START+429)
+        // FREE
 #define SID_INSERT_MASTER_PAGE              (SID_SD_START+431)
 #define SID_DELETE_MASTER_PAGE              (SID_SD_START+432)
 #define SID_RENAME_MASTER_PAGE              (SID_SD_START+433)
@@ -410,7 +438,7 @@
 #define SID_DISPLAY_MASTER_BACKGROUND       (SID_SD_START+436)
 #define SID_DISPLAY_MASTER_OBJECTS          (SID_SD_START+437)
 #define SID_INSERTPAGE_LAYOUT_MENU          (SID_SD_START+438)
-    // FREE
+#define SID_TP_EDIT_MASTER                  (SID_SD_START+439)
 #define SID_OUTLINE_TEXT_AUTOFIT            (SID_SD_START+440)
 
 // Add companion for the SID_HIDE_SLIDE (that is defined in svx)
diff --git a/sd/sdi/ViewShellBase.sdi b/sd/sdi/ViewShellBase.sdi
index 21eba48bb46a..cc60732b7178 100644
--- a/sd/sdi/ViewShellBase.sdi
+++ b/sd/sdi/ViewShellBase.sdi
@@ -18,6 +18,10 @@
 
 interface ViewShellBaseView
 {
+    SID_SWITCH_SHELL
+    [
+        ExecMethod = Execute;
+    ]
     SID_LEFT_PANE_IMPRESS
     [
         ExecMethod = Execute;
@@ -28,6 +32,11 @@ interface ViewShellBaseView
         ExecMethod = Execute;
         StateMethod = GetState;
     ]
+    SID_NOTES_WINDOW
+    [
+        ExecMethod = Execute;
+        StateMethod = GetState;
+    ]
     SID_NORMAL_MULTI_PANE_GUI
     [
         ExecMethod = Execute;
diff --git a/sd/sdi/_drvwsh.sdi b/sd/sdi/_drvwsh.sdi
index 9cdb63eb9321..a18924f36a13 100644
--- a/sd/sdi/_drvwsh.sdi
+++ b/sd/sdi/_drvwsh.sdi
@@ -422,6 +422,11 @@ interface DrawView
         ExecMethod = FuTemporary ;
         StateMethod = GetMenuState ;
     ]
+    SID_PAGESIZE // ole : no, status : rec play
+    [
+        ExecMethod = FuTemporary ;
+        StateMethod = GetMenuState ;
+    ]
     SID_PAGEMARGIN // ole : no, status : rec play
     [
         ExecMethod = FuTemporary ;
@@ -1122,6 +1127,16 @@ interface DrawView
         ExecMethod = FuPermanent ;
         StateMethod = GetMenuState ;
     ]
+    SID_MOVETO // ole : no, status : play rec
+    [
+        ExecMethod = FuPermanent ;
+        StateMethod = GetMenuState ;
+    ]
+    SID_LINETO // ole : no, status : play rec
+    [
+        ExecMethod = FuPermanent ;
+        StateMethod = GetMenuState ;
+    ]
     SID_BEZIERTO // ole : no, status : play rec
     [
         ExecMethod = FuPermanent ;
@@ -1799,11 +1814,119 @@ interface DrawView
         ExecMethod = FuSupport ;
         StateMethod = GetMenuState ;
     ]
+     // problem with SID_ATTR_FILL_STYLE:
+     // former XFillStyle, now property FillStyle (Get/Set)
+     // therefore Export = FALSE !
+    SID_SETFILLSTYLE // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+        Export = FALSE ;
+    ]
+    SID_GETFILLSTYLE // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+    ]
+    SID_SETLINESTYLE // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+    ]
+    SID_GETLINESTYLE // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+    ]
+     // problem with SID_ATTR_LINE_WIDTH:
+     // former XLineWidth, now property LineWidth (Get/Set)
+     // therefore Export = FALSE !
+    SID_SETLINEWIDTH // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+        Export = FALSE ;
+    ]
+    SID_GETLINEWIDTH // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+    ]
+     //DB: FillColor -> SetFillColor
+     // problem with SID_ATTR_FILL_COLOR:
+     // former XFillColor, now property FillColor (Get/Set)
+     // therefore Export = FALSE !
+    SID_SETFILLCOLOR // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+        Export = FALSE ;
+    ]
+    SID_SETLINECOLOR // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+    ]
+    SID_SETHATCHCOLOR // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+    ]
+    SID_SETGRADSTARTCOLOR // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+    ]
+    SID_SETGRADENDCOLOR // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+    ]
+    SID_GETRED // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+    ]
+    SID_GETBLUE // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+    ]
+    SID_GETGREEN // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+    ]
     SID_DASH // ole : no, status : play rec
     [
         ExecMethod = AttrExec ;
         StateMethod = AttrState ;
     ]
+    SID_HATCH // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+    ]
+    SID_GRADIENT // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+    ]
+    SID_SELECTGRADIENT // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+    ]
+    SID_SELECTHATCH // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+    ]
+    SID_UNSELECT // ole : no, status : play rec
+    [
+        ExecMethod = AttrExec ;
+        StateMethod = AttrState ;
+    ]
     SID_TEXTATTR_DLG // ole : no, status : play rec
     [
         ExecMethod = FuTemporary ;
diff --git a/sd/sdi/drviewsh.sdi b/sd/sdi/drviewsh.sdi
index 616bbd15580e..931a54ee983d 100644
--- a/sd/sdi/drviewsh.sdi
+++ b/sd/sdi/drviewsh.sdi
@@ -72,12 +72,22 @@ interface ImpressEditView : DrawView
         ExecMethod = FuSupport ;
         StateMethod = GetMenuState ;
     ]
+    SID_CLEAR_UNDO_STACK // ole : no, status : ?
+    [
+        ExecMethod = FuSupport ;
+        StateMethod = GetMenuState ;
+    ]
     SID_STYLE_FAMILY5 // ole : no, status : ?
     [
         ExecMethod = FuTemporary ;
         StateMethod = GetAttrState ;
         Export = FALSE ;
     ]
+    SID_ANIMATOR_INIT // ole : no, status : ?
+    [
+        ExecMethod = ExecAnimationWin ;
+        StateMethod = GetAnimationWinState ;
+    ]
     SID_ANIMATOR_ADD // ole : no, status : ?
     [
         ExecMethod = ExecAnimationWin ;
diff --git a/sd/sdi/sdraw.sdi b/sd/sdi/sdraw.sdi
index 937315af1b57..0d39885e1584 100644
--- a/sd/sdi/sdraw.sdi
+++ b/sd/sdi/sdraw.sdi
@@ -105,6 +105,24 @@ SfxBoolItem AnimatorCreateObject SID_ANIMATOR_CREATE
     GroupId = SfxGroupId::Options;
 ]
 
+SfxBoolItem AnimatorInit SID_ANIMATOR_INIT
+
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Options;
+]
+
 SfxUInt16Item AnimatorState SID_ANIMATOR_STATE
 
 [
@@ -1180,6 +1198,23 @@ SfxStringItem DeleteSnapItem SID_DELETE_SNAPITEM
     GroupId = SfxGroupId::Edit;
 ]
 
+SfxVoidItem DeSelect SID_UNSELECT
+()
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Edit;
+]
+
 SfxBoolItem DiaMode SID_SLIDE_SORTER_MODE
 [
     AutoUpdate = FALSE,
@@ -1354,6 +1389,23 @@ SfxVoidItem ExpandPage SID_EXPAND_PAGE
     GroupId = SfxGroupId::Edit;
 ]
 
+SfxVoidItem SetFillColor SID_SETFILLCOLOR
+(SfxUInt32Item Red ID_VAL_RED,SfxUInt32Item Green ID_VAL_GREEN,SfxUInt32Item Blue ID_VAL_BLUE)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Format;
+]
+
 SfxVoidItem Forward SID_MOREFRONT
 ()
 [
@@ -1371,6 +1423,111 @@ SfxVoidItem Forward SID_MOREFRONT
     GroupId = SfxGroupId::Modify;
 ]
 
+SfxVoidItem GetBlue SID_GETBLUE
+(SfxUInt32Item WhatKind ID_VAL_WHATKIND)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Drawing;
+]
+
+SfxUInt32Item GetFillStyle SID_GETFILLSTYLE
+
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Drawing;
+]
+
+SfxVoidItem GetGreen SID_GETGREEN
+(SfxUInt32Item WhatKind ID_VAL_WHATKIND)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Drawing;
+]
+
+SfxUInt32Item GetLineStyle SID_GETLINESTYLE
+
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Drawing;
+]
+
+SfxUInt32Item GetLineWidth SID_GETLINEWIDTH
+
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Drawing;
+]
+
+SfxVoidItem GetRed SID_GETRED
+(SfxUInt32Item WhatKind ID_VAL_WHATKIND)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Drawing;
+]
+
 SfxBoolItem GlueEditMode SID_GLUE_EDITMODE
 
 [
@@ -1623,6 +1780,57 @@ SfxBoolItem GlueVertAlignTop SID_GLUE_VERTALIGN_TOP
     GroupId = SfxGroupId::Drawing;
 ]
 
+SfxVoidItem Gradient SID_GRADIENT
+(SfxStringItem Name ID_VAL_INDEX,SfxUInt32Item Style ID_VAL_STYLE,SfxUInt32Item Angle ID_VAL_ANGLE,SfxUInt32Item Border ID_VAL_BORDER,SfxUInt32Item XOffset ID_VAL_CENTER_X,SfxUInt32Item YOffset ID_VAL_CENTER_Y,SfxUInt32Item StartIntens ID_VAL_STARTINTENS,SfxUInt32Item EndIntens ID_VAL_ENDINTENS)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Drawing;
+]
+
+SfxVoidItem GradientEndColor SID_SETGRADENDCOLOR
+(SfxStringItem Name ID_VAL_INDEX,SfxUInt32Item Red ID_VAL_RED,SfxUInt32Item Green ID_VAL_GREEN,SfxUInt32Item Blue ID_VAL_BLUE)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Format;
+]
+
+SfxVoidItem GradientStartColor SID_SETGRADSTARTCOLOR
+(SfxStringItem Name ID_VAL_INDEX,SfxUInt32Item Red ID_VAL_RED,SfxUInt32Item Green ID_VAL_GREEN,SfxUInt32Item Blue ID_VAL_BLUE)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Format;
+]
+
 SfxBoolItem GridFront SID_GRID_FRONT
 
 [
@@ -1676,6 +1884,40 @@ SfxBoolItem HandoutMode SID_HANDOUT_MASTER_MODE
     GroupId = SfxGroupId::Document;
 ]
 
+SfxVoidItem Hatch SID_HATCH
+(SfxStringItem Name ID_VAL_INDEX,SfxUInt32Item Style ID_VAL_STYLE,SfxUInt32Item Distance ID_VAL_DISTANCE,SfxUInt32Item Angle ID_VAL_ANGLE)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Drawing;
+]
+
+SfxVoidItem HatchColor SID_SETHATCHCOLOR
+(SfxStringItem Name ID_VAL_INDEX,SfxUInt32Item Red ID_VAL_RED,SfxUInt32Item Green ID_VAL_GREEN,SfxUInt32Item Blue ID_VAL_BLUE)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Format;
+]
+
 SfxBoolItem HelplinesFront SID_HELPLINES_FRONT
 
 [
@@ -2108,6 +2350,23 @@ SfxBoolItem LeaveAllGroups SID_LEAVE_ALL_GROUPS
     GroupId = SfxGroupId::Modify;
 ]
 
+SfxVoidItem LineColor SID_SETLINECOLOR
+(SfxUInt32Item Red ID_VAL_RED,SfxUInt32Item Green ID_VAL_GREEN,SfxUInt32Item Blue ID_VAL_BLUE)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Format;
+]
+
 SfxVoidItem LineEndPolygon SID_LINEEND_POLYGON
 ()
 [
@@ -2125,6 +2384,23 @@ SfxVoidItem LineEndPolygon SID_LINEEND_POLYGON
     GroupId = SfxGroupId::Drawing;
 ]
 
+SfxVoidItem LineTo SID_LINETO
+(SfxUInt32Item MouseEndX ID_VAL_MOUSEEND_X,SfxUInt32Item MouseEndY ID_VAL_MOUSEEND_Y)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Drawing;
+]
+
 SfxVoidItem ManageLinks SID_MANAGE_LINKS
 ()
 [
@@ -2348,6 +2624,23 @@ SfxVoidItem Morphing SID_POLYGON_MORPHING
     GroupId = SfxGroupId::Modify;
 ]
 
+SfxVoidItem MoveTo SID_MOVETO
+(SfxUInt32Item MouseStartX ID_VAL_MOUSESTART_X,SfxUInt32Item MouseStartY ID_VAL_MOUSESTART_Y)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Drawing;
+]
+
 SfxVoidItem NameGroup SID_NAME_GROUP
 ()
 [
@@ -2724,6 +3017,23 @@ SfxVoidItem PageSetup SID_PAGESETUP
     GroupId = SfxGroupId::Options;
 ]
 
+SfxVoidItem PageSize SID_PAGESIZE
+(SfxUInt32Item PageWidth ID_VAL_PAGEWIDTH,SfxUInt32Item PageHeight ID_VAL_PAGEHEIGHT,SfxBoolItem ScaleObjects ID_VAL_SCALEOBJECTS)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Application;
+]
+
 SfxUInt16Item PagesPerRow SID_PAGES_PER_ROW
 
 [
@@ -2866,6 +3176,23 @@ SfxVoidItem PresentationEnd SID_PRESENTATION_END
     GroupId = SfxGroupId::View;
 ]
 
+SfxVoidItem ClearUndoStack SID_CLEAR_UNDO_STACK
+()
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::View;
+]
+
 SfxVoidItem PresentationLayout SID_PRESENTATION_LAYOUT
 ()
 [
@@ -3040,6 +3367,91 @@ SvxObjectItem RulerObject SID_RULER_OBJECT
     GroupId = ;
 ]
 
+SfxVoidItem SelectGradient SID_SELECTGRADIENT
+(SfxStringItem Name ID_VAL_INDEX)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Edit;
+]
+
+SfxVoidItem SelectHatch SID_SELECTHATCH
+(SfxStringItem Name ID_VAL_INDEX)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Edit;
+]
+
+SfxVoidItem SetFillStyle SID_SETFILLSTYLE
+(SfxUInt32Item Style ID_VAL_STYLE)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Format;
+]
+
+SfxVoidItem SetLineStyle SID_SETLINESTYLE
+(SfxUInt32Item Style ID_VAL_STYLE)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Format;
+]
+
+SfxVoidItem SetLineWidth SID_SETLINEWIDTH
+(SfxUInt32Item Width ID_VAL_WIDTH)
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Format;
+]
+
 SfxStringItem SetSnapItem SID_SET_SNAPITEM
 
 [
@@ -3712,6 +4124,108 @@ SfxVoidItem DistributeRows SID_TABLE_DISTRIBUTE_ROWS
     GroupId = SfxGroupId::Table;
 ]
 
+SfxVoidItem TaskPaneApplyToAllSlides SID_TP_APPLY_TO_ALL_SLIDES
+[
+    AutoUpdate = TRUE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::View;
+]
+
+SfxVoidItem TaskPaneApplyToSelectedSlides SID_TP_APPLY_TO_SELECTED_SLIDES
+[
+    AutoUpdate = TRUE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::View;
+]
+
+SfxVoidItem TaskPaneUseForNewPresentations SID_TP_USE_FOR_NEW_PRESENTATIONS
+[
+    AutoUpdate = TRUE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::View;
+]
+
+SfxVoidItem TaskPaneShowSmallPreview SID_TP_SHOW_SMALL_PREVIEW
+[
+    AutoUpdate = TRUE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::View;
+]
+
+SfxVoidItem TaskPaneShowLargePreview SID_TP_SHOW_LARGE_PREVIEW
+[
+    AutoUpdate = TRUE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::View;
+]
+
+SfxVoidItem TaskPaneEditMaster SID_TP_EDIT_MASTER
+[
+    AutoUpdate = TRUE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::View;
+]
+
 SfxVoidItem TaskPaneInsertPage SID_INSERTPAGE_LAYOUT_MENU
 [
     AutoUpdate = FALSE,
@@ -3729,6 +4243,27 @@ SfxVoidItem TaskPaneInsertPage SID_INSERTPAGE_LAYOUT_MENU
     GroupId = SfxGroupId::Insert;
 ]
 
+/** This item holds the requested type of view shell when calling the
+    SID_SWITCH_SHELL slot.
+*/
+SfxInt32Item SwitchViewShell SID_SWITCH_SHELL
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::View;
+]
+
 SfxBoolItem LeftPaneImpress SID_LEFT_PANE_IMPRESS
 
 [
@@ -3767,6 +4302,25 @@ SfxBoolItem LeftPaneDraw SID_LEFT_PANE_DRAW
     GroupId = SfxGroupId::Modify;
 ]
 
+SfxVoidItem NotesChildWindow SID_NOTES_WINDOW
+
+[
+    AutoUpdate = TRUE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = TRUE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::View;
+]
+
 SfxBoolItem NormalMultiPaneGUI SID_NORMAL_MULTI_PANE_GUI
 
 [
diff --git a/sd/source/ui/view/GraphicViewShellBase.cxx b/sd/source/ui/view/GraphicViewShellBase.cxx
index a9522e43de4f..300b0bdbf669 100644
--- a/sd/source/ui/view/GraphicViewShellBase.cxx
+++ b/sd/source/ui/view/GraphicViewShellBase.cxx
@@ -70,6 +70,7 @@ void GraphicViewShellBase::Execute (SfxRequest& rRequest)
 
     switch (nSlotId)
     {
+        case SID_NOTES_WINDOW:
         case SID_SLIDE_SORTER_MULTI_PANE_GUI:
         case SID_SLIDE_SORTER_MODE:
         case SID_SLIDE_MASTER_MODE:
@@ -81,6 +82,7 @@ void GraphicViewShellBase::Execute (SfxRequest& rRequest)
             rRequest.Cancel();
             break;
 
+        case SID_SWITCH_SHELL:
         case SID_LEFT_PANE_DRAW:
         case SID_LEFT_PANE_IMPRESS:
         default:
diff --git a/sd/source/ui/view/ViewShellBase.cxx b/sd/source/ui/view/ViewShellBase.cxx
index 3eae7a0bd194..99dca2efed88 100644
--- a/sd/source/ui/view/ViewShellBase.cxx
+++ b/sd/source/ui/view/ViewShellBase.cxx
@@ -614,6 +614,19 @@ void ViewShellBase::Execute (SfxRequest& rRequest)
 
     switch (nSlotId)
     {
+        case SID_SWITCH_SHELL:
+        {
+            Reference<XControllerManager> xControllerManager (GetController(), UNO_QUERY);
+            if (xControllerManager.is())
+            {
+                Reference<XConfigurationController> xConfigurationController (
+                    xControllerManager->getConfigurationController());
+                if (xConfigurationController.is())
+                    xConfigurationController->update();
+            }
+        }
+        break;
+
         case SID_LEFT_PANE_DRAW:
             mpImpl->SetPaneVisibility(
                 rRequest,
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index fc29346f09df..4fd1a539607f 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -827,6 +827,30 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
         }
         break;
 
+        case SID_PAGESIZE :  // either this (no menu entries or something else!)
+        {
+            const SfxItemSet *pArgs = rReq.GetArgs ();
+
+            if (pArgs)
+                if (pArgs->Count () == 3)
+                {
+                    const SfxUInt32Item* pWidth = rReq.GetArg<SfxUInt32Item>(ID_VAL_PAGEWIDTH);
+                    const SfxUInt32Item* pHeight = rReq.GetArg<SfxUInt32Item>(ID_VAL_PAGEHEIGHT);
+                    const SfxBoolItem* pScaleAll = rReq.GetArg<SfxBoolItem>(ID_VAL_SCALEOBJECTS);
+
+                    Size aSize (pWidth->GetValue (), pHeight->GetValue ());
+
+                    SetupPage (aSize, 0, 0, 0, 0, true, false, pScaleAll->GetValue ());
+                    rReq.Ignore ();
+                    break;
+                }
+#if HAVE_FEATURE_SCRIPTING
+            StarBASIC::FatalError (ERRCODE_BASIC_WRONG_ARGS);
+#endif
+            rReq.Ignore ();
+            break;
+        }
+
         case SID_PAGEMARGIN :  // or this (no menu entries or something else!)
         {
             const SfxItemSet *pArgs = rReq.GetArgs ();
diff --git a/sd/source/ui/view/drviews6.cxx b/sd/source/ui/view/drviews6.cxx
index 3591a6280eb1..d332935e4799 100644
--- a/sd/source/ui/view/drviews6.cxx
+++ b/sd/source/ui/view/drviews6.cxx
@@ -136,6 +136,7 @@ void DrawViewShell::ExecAnimationWin( SfxRequest& rReq )
 
     switch( nSId )
     {
+        case SID_ANIMATOR_INIT:
         case SID_ANIMATOR_ADD:
         case SID_ANIMATOR_CREATE:
         {
@@ -150,7 +151,7 @@ void DrawViewShell::ExecAnimationWin( SfxRequest& rReq )
             {
                 if( nSId == SID_ANIMATOR_ADD )
                     pAnimWin->AddObj( *mpDrawView );
-                else // SID_ANIMATOR_CREATE
+                else if( nSId == SID_ANIMATOR_CREATE )
                     pAnimWin->CreateAnimObj( *mpDrawView );
             }
         }
diff --git a/sd/source/ui/view/drviews9.cxx b/sd/source/ui/view/drviews9.cxx
index 1c037979e581..c3a55f55f031 100644
--- a/sd/source/ui/view/drviews9.cxx
+++ b/sd/source/ui/view/drviews9.cxx
@@ -211,6 +211,257 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
 
     switch (rReq.GetSlot ())
     {
+        // set new fill-style
+        case SID_SETFILLSTYLE :
+            if (pArgs)
+                if (pArgs->Count () == 1)
+                {
+                    const SfxUInt32Item* pFillStyle = rReq.GetArg<SfxUInt32Item>(ID_VAL_STYLE);
+                    if (CHECK_RANGE (drawing::FillStyle_NONE, (drawing::FillStyle)pFillStyle->GetValue (), drawing::FillStyle_BITMAP))
+                    {
+                        pAttr->ClearItem (XATTR_FILLSTYLE);
+                        XFillStyleItem aStyleItem((drawing::FillStyle) pFillStyle->GetValue ());
+                        aStyleItem.SetWhich(XATTR_FILLSTYLE);
+                        pAttr->Put (aStyleItem);
+                        rBindings.Invalidate (SID_ATTR_FILL_STYLE);
+                        rBindings.Invalidate (SID_ATTR_PAGE_FILLSTYLE);
+                    }
+#if HAVE_FEATURE_SCRIPTING
+                    else StarBASIC::FatalError (ERRCODE_BASIC_BAD_PROP_VALUE);
+#endif
+                    break;
+                }
+#if HAVE_FEATURE_SCRIPTING
+            StarBASIC::FatalError (ERRCODE_BASIC_WRONG_ARGS);
+#endif
+            break;
+
+        // determine new line style
+        case SID_SETLINESTYLE :
+            if (pArgs)
+                if (pArgs->Count () == 1)
+                {
+                    const SfxUInt32Item* pLineStyle = rReq.GetArg<SfxUInt32Item>(ID_VAL_STYLE);
+                    if (CHECK_RANGE ((sal_Int32)drawing::LineStyle_NONE, (sal_Int32)pLineStyle->GetValue(), (sal_Int32)drawing::LineStyle_DASH))
+                    {
+                        pAttr->ClearItem (XATTR_LINESTYLE);
+                        XLineStyleItem aStyleItem((drawing::LineStyle) pLineStyle->GetValue());
+                        aStyleItem.SetWhich(XATTR_LINESTYLE);
+                        pAttr->Put(aStyleItem);
+                        rBindings.Invalidate (SID_ATTR_LINE_STYLE);
+                    }
+#if HAVE_FEATURE_SCRIPTING
+                    else StarBASIC::FatalError (ERRCODE_BASIC_BAD_PROP_VALUE);
+#endif
+                    break;
+                }
+#if HAVE_FEATURE_SCRIPTING
+            StarBASIC::FatalError (ERRCODE_BASIC_WRONG_ARGS);
+#endif
+            break;
+
+        // set line width
+        case SID_SETLINEWIDTH :
+            if (pArgs)
+                if (pArgs->Count () == 1)
+                {
+                    const SfxUInt32Item* pLineWidth = rReq.GetArg<SfxUInt32Item>(ID_VAL_WIDTH);
+                    pAttr->ClearItem (XATTR_LINEWIDTH);
+                    XLineWidthItem aWidthItem(pLineWidth->GetValue());
+                    aWidthItem.SetWhich(XATTR_LINEWIDTH);
+                    pAttr->Put(aWidthItem);
+                    rBindings.Invalidate (SID_ATTR_LINE_WIDTH);
+                    break;
+                }
+#if HAVE_FEATURE_SCRIPTING
+            StarBASIC::FatalError (ERRCODE_BASIC_WRONG_ARGS);
+#endif
+            break;
+
+        case SID_SETFILLCOLOR :
+            if (pArgs)
+                if (pArgs->Count () == 3)
+                {
+                    const SfxUInt32Item* pRed = rReq.GetArg<SfxUInt32Item>(ID_VAL_RED);
+                    const SfxUInt32Item* pGreen = rReq.GetArg<SfxUInt32Item>(ID_VAL_GREEN);
+                    const SfxUInt32Item* pBlue = rReq.GetArg<SfxUInt32Item>(ID_VAL_BLUE);
+
+                    pAttr->ClearItem (XATTR_FILLCOLOR);
+                    pAttr->ClearItem (XATTR_FILLSTYLE);
+                    XFillColorItem aColorItem(-1, Color ((sal_uInt8) pRed->GetValue (),
+                                                           (sal_uInt8) pGreen->GetValue (),
+                                                           (sal_uInt8) pBlue->GetValue ()));
+                    aColorItem.SetWhich(XATTR_FILLCOLOR);
+                    pAttr->Put(aColorItem);
+                    rBindings.Invalidate (SID_ATTR_FILL_COLOR);
+                    rBindings.Invalidate (SID_ATTR_PAGE_COLOR);
+                    rBindings.Invalidate (SID_ATTR_FILL_STYLE);
+                    rBindings.Invalidate (SID_ATTR_PAGE_FILLSTYLE);
+                    break;
+                }
+#if HAVE_FEATURE_SCRIPTING
+            StarBASIC::FatalError (ERRCODE_BASIC_WRONG_ARGS);
+#endif
+            break;
+
+        case SID_SETLINECOLOR :
+            if (pArgs)
+                if (pArgs->Count () == 3)
+                {
+                    const SfxUInt32Item* pRed = rReq.GetArg<SfxUInt32Item>(ID_VAL_RED);
+                    const SfxUInt32Item* pGreen = rReq.GetArg<SfxUInt32Item>(ID_VAL_GREEN);
+                    const SfxUInt32Item* pBlue = rReq.GetArg<SfxUInt32Item>(ID_VAL_BLUE);
+
+                    pAttr->ClearItem (XATTR_LINECOLOR);
+                    XLineColorItem aColorItem(-1, Color((sal_uInt8) pRed->GetValue(),
+                                                        (sal_uInt8) pGreen->GetValue(),
+                                                        (sal_uInt8) pBlue->GetValue()));
+                    aColorItem.SetWhich(XATTR_LINECOLOR);
+                    pAttr->Put(aColorItem);
+                    rBindings.Invalidate (SID_ATTR_LINE_COLOR);
+                    break;
+                }
+#if HAVE_FEATURE_SCRIPTING
+            StarBASIC::FatalError (ERRCODE_BASIC_WRONG_ARGS);
+#endif
+            break;
+
+        case SID_SETGRADSTARTCOLOR :
+        case SID_SETGRADENDCOLOR :
+            if (pArgs)
+                if (pArgs->Count () == 4)
+                {
+                    const SfxStringItem* pName = rReq.GetArg<SfxStringItem>(ID_VAL_INDEX);
+                    const SfxUInt32Item* pRed = rReq.GetArg<SfxUInt32Item>(ID_VAL_RED);
+                    const SfxUInt32Item* pGreen = rReq.GetArg<SfxUInt32Item>(ID_VAL_GREEN);
+                    const SfxUInt32Item* pBlue = rReq.GetArg<SfxUInt32Item>(ID_VAL_BLUE);
+
+                    XGradientListRef pGradientList = GetDoc()->GetGradientList ();
+                    long          nCounts        = pGradientList->Count ();
+                    Color         aColor ((sal_uInt8) pRed->GetValue (),
+                                          (sal_uInt8) pGreen->GetValue (),
+                                          (sal_uInt8) pBlue->GetValue ());
+                    long i;
+
+                    pAttr->ClearItem (XATTR_FILLGRADIENT);
+                    pAttr->ClearItem (XATTR_FILLSTYLE);
+
+                    for ( i = 0; i < nCounts; i ++)
+                    {
+                        const XGradientEntry* pEntry = pGradientList->GetGradient(i);
+
+                        if (pEntry->GetName () == pName->GetValue ())
+                        {
+                            XGradient aGradient(pEntry->GetGradient());
+
+                            if (rReq.GetSlot () == SID_SETGRADSTARTCOLOR) aGradient.SetStartColor (aColor);
+                            else aGradient.SetEndColor (aColor);
+
+                            XFillStyleItem aStyleItem(drawing::FillStyle_GRADIENT);
+                            aStyleItem.SetWhich(XATTR_FILLSTYLE);
+                            pAttr->Put(aStyleItem);
+                            XFillGradientItem aGradientItem(pName->GetValue (), aGradient);
+                            aGradientItem.SetWhich(XATTR_FILLGRADIENT);
+                            pAttr->Put(aGradientItem);
+                            break;
+                        }
+                    }
+
+                    if (i >= nCounts)
+                    {
+                        Color aBlack (0, 0, 0);
+                        XGradient aGradient ((rReq.GetSlot () == SID_SETGRADSTARTCOLOR)
+                                                 ? aColor
+                                                 : aBlack,
+                                             (rReq.GetSlot () == SID_SETGRADENDCOLOR)
+                                                 ? aColor
+                                                 : aBlack);
+
+                        GetDoc()->GetGradientList()->Insert(o3tl::make_unique<XGradientEntry>(aGradient, pName->GetValue()));
+
+                        XFillStyleItem aStyleItem(drawing::FillStyle_GRADIENT);
+                        aStyleItem.SetWhich(XATTR_FILLSTYLE);
+                        pAttr->Put(aStyleItem);
+                        XFillGradientItem aGradientItem(pName->GetValue(), aGradient);
+                        aGradientItem.SetWhich(XATTR_FILLGRADIENT);
+                        pAttr->Put(aGradientItem);
+                    }
+
+                    rBindings.Invalidate (SID_ATTR_FILL_STYLE);
+                    rBindings.Invalidate (SID_ATTR_PAGE_FILLSTYLE);
+                    rBindings.Invalidate (SID_ATTR_FILL_GRADIENT);
+                    rBindings.Invalidate (SID_ATTR_PAGE_GRADIENT);
+                    break;
+                }
+#if HAVE_FEATURE_SCRIPTING
+            StarBASIC::FatalError (ERRCODE_BASIC_WRONG_ARGS);
+#endif
+            break;
+
+        case SID_SETHATCHCOLOR :
+            if (pArgs)
+                if (pArgs->Count () == 4)
+                {
+                    const SfxStringItem* pName = rReq.GetArg<SfxStringItem>(ID_VAL_INDEX);
+                    const SfxUInt32Item* pRed = rReq.GetArg<SfxUInt32Item>(ID_VAL_RED);
+                    const SfxUInt32Item* pGreen = rReq.GetArg<SfxUInt32Item>(ID_VAL_GREEN);
+                    const SfxUInt32Item* pBlue = rReq.GetArg<SfxUInt32Item>(ID_VAL_BLUE);
+
+                    XHatchListRef pHatchList = GetDoc()->GetHatchList ();
+                    long       nCounts     = pHatchList->Count ();
+                    Color      aColor ((sal_uInt8) pRed->GetValue (),
+                                       (sal_uInt8) pGreen->GetValue (),
+                                       (sal_uInt8) pBlue->GetValue ());
+                    long i;
+
+                    pAttr->ClearItem (XATTR_FILLHATCH);
+                    pAttr->ClearItem (XATTR_FILLSTYLE);
+
+                    for ( i = 0; i < nCounts; i ++)
+                    {
+                        const XHatchEntry* pEntry = pHatchList->GetHatch(i);
+
+                        if (pEntry->GetName () == pName->GetValue ())
+                        {
+                            XHatch aHatch(pEntry->GetHatch());
+
+                            aHatch.SetColor (aColor);
+
+                            XFillStyleItem aStyleItem(drawing::FillStyle_HATCH);
+                            aStyleItem.SetWhich(XATTR_FILLSTYLE);
+                            pAttr->Put(aStyleItem);
+                            XFillHatchItem aHatchItem(pName->GetValue(), aHatch);
+                            aHatchItem.SetWhich(XATTR_FILLHATCH);
+                            pAttr->Put(aHatchItem);
+                            break;
+                        }
+                    }
+
+                    if (i >= nCounts)
+                    {
+                        XHatch aHatch (aColor);
+
+                        GetDoc()->GetHatchList()->Insert(o3tl::make_unique<XHatchEntry>(aHatch, pName->GetValue()));
+
+                        XFillStyleItem aStyleItem(drawing::FillStyle_HATCH);
+                        aStyleItem.SetWhich(XATTR_FILLSTYLE);
+                        pAttr->Put(aStyleItem);
+                        XFillHatchItem aHatchItem(pName->GetValue (), aHatch);
+                        aHatchItem.SetWhich(XATTR_FILLHATCH);
+                        pAttr->Put(aHatchItem);
+                    }
+
+                    rBindings.Invalidate (SID_ATTR_FILL_HATCH);
+                    rBindings.Invalidate (SID_ATTR_PAGE_HATCH);
+                    rBindings.Invalidate (SID_ATTR_FILL_STYLE);
+                    rBindings.Invalidate (SID_ATTR_PAGE_FILLSTYLE);
+                    break;
+                }
+#if HAVE_FEATURE_SCRIPTING
+            StarBASIC::FatalError (ERRCODE_BASIC_WRONG_ARGS);
+#endif
+            break;
+
         // configuration for line-dash
         case SID_DASH :
             if (pArgs)
@@ -265,6 +516,259 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
 #endif
             break;
 
+        // configuration for gradients
+        case SID_GRADIENT :
+            if (pArgs)
+                if (pArgs->Count () == 8)
+                {
+                    const SfxStringItem* pName = rReq.GetArg<SfxStringItem>(ID_VAL_INDEX);
+                    const SfxUInt32Item* pStyle = rReq.GetArg<SfxUInt32Item>(ID_VAL_STYLE);
+                    const SfxUInt32Item* pAngle = rReq.GetArg<SfxUInt32Item>(ID_VAL_ANGLE);
+                    const SfxUInt32Item* pBorder = rReq.GetArg<SfxUInt32Item>(ID_VAL_BORDER);
+                    const SfxUInt32Item* pCenterX = rReq.GetArg<SfxUInt32Item>(ID_VAL_CENTER_X);
+                    const SfxUInt32Item* pCenterY = rReq.GetArg<SfxUInt32Item>(ID_VAL_CENTER_Y);
+                    const SfxUInt32Item* pStart = rReq.GetArg<SfxUInt32Item>(ID_VAL_STARTINTENS);
+                    const SfxUInt32Item* pEnd = rReq.GetArg<SfxUInt32Item>(ID_VAL_ENDINTENS);
+
+                    if (CHECK_RANGE ((sal_Int32)css::awt::GradientStyle_LINEAR, (sal_Int32)pStyle->GetValue(), (sal_Int32)css::awt::GradientStyle_RECT) &&
+                        CHECK_RANGE (0, (sal_Int32)pAngle->GetValue (), 360) &&
+                        CHECK_RANGE (0, (sal_Int32)pBorder->GetValue (), 100) &&
+                        CHECK_RANGE (0, (sal_Int32)pCenterX->GetValue (), 100) &&
+                        CHECK_RANGE (0, (sal_Int32)pCenterY->GetValue (), 100) &&
+                        CHECK_RANGE (0, (sal_Int32)pStart->GetValue (), 100) &&
+                        CHECK_RANGE (0, (sal_Int32)pEnd->GetValue (), 100))
+                    {
+                        pAttr->ClearItem (XATTR_FILLGRADIENT);
+                        pAttr->ClearItem (XATTR_FILLSTYLE);
+
+                        XGradientListRef pGradientList = GetDoc()->GetGradientList ();
+                        long           nCounts        = pGradientList->Count ();
+                        long i;
+
+                        for ( i = 0; i < nCounts; i++ )
+                        {
+                            const XGradientEntry* pEntry = pGradientList->GetGradient(i);
+
+                            if (pEntry->GetName () == pName->GetValue ())
+                            {
+                                XGradient aGradient(pEntry->GetGradient());
+
+                                aGradient.SetGradientStyle ((css::awt::GradientStyle) pStyle->GetValue ());
+                                aGradient.SetAngle (pAngle->GetValue () * 10);
+                                aGradient.SetBorder ((short) pBorder->GetValue ());
+                                aGradient.SetXOffset ((short) pCenterX->GetValue ());
+                                aGradient.SetYOffset ((short) pCenterY->GetValue ());
+                                aGradient.SetStartIntens ((short) pStart->GetValue ());
+                                aGradient.SetEndIntens ((short) pEnd->GetValue ());
+
+                                XFillStyleItem aStyleItem(drawing::FillStyle_GRADIENT);
+                                aStyleItem.SetWhich(XATTR_FILLSTYLE);
+                                pAttr->Put(aStyleItem);
+                                XFillGradientItem aGradientItem(pName->GetValue (), aGradient);
+                                aGradientItem.SetWhich(XATTR_FILLGRADIENT);
+                                pAttr->Put(aGradientItem);
+                                break;
+                            }
+                        }
+
+                        if (i >= nCounts)
+                        {
+                            Color aBlack (0, 0, 0);
+                            XGradient aGradient (aBlack, aBlack, (css::awt::GradientStyle) pStyle->GetValue (),
+                                                 pAngle->GetValue () * 10, (short) pCenterX->GetValue (),
+                                                 (short) pCenterY->GetValue (), (short) pBorder->GetValue (),
+                                                 (short) pStart->GetValue (), (short) pEnd->GetValue ());
+
+                            pGradientList->Insert(o3tl::make_unique<XGradientEntry>(aGradient, pName->GetValue()));
+                            XFillStyleItem aStyleItem(drawing::FillStyle_GRADIENT);
+                            aStyleItem.SetWhich(XATTR_FILLSTYLE);
+                            pAttr->Put(aStyleItem);
+                            XFillGradientItem aGradientItem(pName->GetValue (), aGradient);
+                            aGradientItem.SetWhich(XATTR_FILLGRADIENT);
+                            pAttr->Put(aGradientItem);
+                        }
+
+                        rBindings.Invalidate (SID_ATTR_FILL_GRADIENT);
+                        rBindings.Invalidate (SID_ATTR_PAGE_GRADIENT);
+                        rBindings.Invalidate (SID_ATTR_FILL_STYLE);
+                        rBindings.Invalidate (SID_ATTR_PAGE_FILLSTYLE);
+                    }
+#if HAVE_FEATURE_SCRIPTING
+                    else StarBASIC::FatalError (ERRCODE_BASIC_BAD_PROP_VALUE);
+#endif
+                    break;
+                }
+#if HAVE_FEATURE_SCRIPTING
+            StarBASIC::FatalError (ERRCODE_BASIC_WRONG_ARGS);
+#endif
+            break;
+
+        // configuration for hatch
+        case SID_HATCH :
+            if (pArgs)
+                if (pArgs->Count () == 4)
+                {
+                    const SfxStringItem* pName = rReq.GetArg<SfxStringItem>(ID_VAL_INDEX);
+                    const SfxUInt32Item* pStyle = rReq.GetArg<SfxUInt32Item>(ID_VAL_STYLE);
+                    const SfxUInt32Item* pDistance = rReq.GetArg<SfxUInt32Item>(ID_VAL_DISTANCE);
+                    const SfxUInt32Item* pAngle = rReq.GetArg<SfxUInt32Item>(ID_VAL_ANGLE);
+
+                    if (CHECK_RANGE ((sal_Int32)css::drawing::HatchStyle_SINGLE, (sal_Int32)pStyle->GetValue(), (sal_Int32)css::drawing::HatchStyle_TRIPLE) &&
+                        CHECK_RANGE (0, (sal_Int32)pAngle->GetValue (), 360))
+                    {
+                        pAttr->ClearItem (XATTR_FILLHATCH);
+                        pAttr->ClearItem (XATTR_FILLSTYLE);
+
+                        XHatchListRef pHatchList = GetDoc()->GetHatchList ();
+                        long       nCounts     = pHatchList->Count ();
+                        long i;
+
+                        for ( i = 0; i < nCounts; i++ )
+                        {
+                            const XHatchEntry* pEntry = pHatchList->GetHatch(i);
+
+                            if (pEntry->GetName () == pName->GetValue ())
+                            {
+                                XHatch aHatch(pEntry->GetHatch());
+
+                                aHatch.SetHatchStyle ((css::drawing::HatchStyle) pStyle->GetValue ());
+                                aHatch.SetDistance (pDistance->GetValue ());
+                                aHatch.SetAngle (pAngle->GetValue () * 10);
+
+                                XFillStyleItem aStyleItem(drawing::FillStyle_HATCH);
+                                aStyleItem.SetWhich(XATTR_FILLSTYLE);
+                                pAttr->Put(aStyleItem);
+                                XFillHatchItem aHatchItem(pName->GetValue (), aHatch);
+                                aHatchItem.SetWhich(XATTR_FILLHATCH);
+                                pAttr->Put(aHatchItem);
+                                break;
+                            }
+                        }
+
+                        if (i >= nCounts)
+                        {
+                            Color  aBlack (0, 0, 0);
+                            XHatch aHatch (aBlack, (css::drawing::HatchStyle) pStyle->GetValue (), pDistance->GetValue (),
+                                           pAngle->GetValue () * 10);
+
+                            pHatchList->Insert(o3tl::make_unique<XHatchEntry>(aHatch, pName->GetValue()));
+                            XFillStyleItem aStyleItem(drawing::FillStyle_HATCH);
+                            aStyleItem.SetWhich(XATTR_FILLSTYLE);
+                            pAttr->Put(aStyleItem);
+                            XFillHatchItem aHatchItem(pName->GetValue (), aHatch);
+                            aHatchItem.SetWhich(XATTR_FILLHATCH);
+                            pAttr->Put(aHatchItem);
+                        }
+
+                        rBindings.Invalidate (SID_ATTR_FILL_HATCH);
+                        rBindings.Invalidate (SID_ATTR_FILL_STYLE);
+                    }
+#if HAVE_FEATURE_SCRIPTING
+                    else StarBASIC::FatalError (ERRCODE_BASIC_BAD_PROP_VALUE);
+#endif
+                    break;
+                }
+#if HAVE_FEATURE_SCRIPTING
+            StarBASIC::FatalError (ERRCODE_BASIC_WRONG_ARGS);
+#endif
+            break;
+
+        case SID_SELECTGRADIENT :
+            if (pArgs)
+                if (pArgs->Count () == 1)
+                {
+                    const SfxStringItem* pName = rReq.GetArg<SfxStringItem>(ID_VAL_INDEX);
+
+                    XGradientListRef pGradientList = GetDoc()->GetGradientList ();
+                    long           nCounts        = pGradientList->Count ();
+
+                    for (long i = 0;
+                              i < nCounts;
+                              i ++)
+                    {
+                        const XGradientEntry* pEntry = pGradientList->GetGradient(i);
+
+                        if (pEntry->GetName () == pName->GetValue ())
+                        {
+                            pAttr->ClearItem (XATTR_FILLGRADIENT);
+                            pAttr->ClearItem (XATTR_FILLSTYLE);
+                            XFillStyleItem aStyleItem(drawing::FillStyle_GRADIENT);
+                            aStyleItem.SetWhich(XATTR_FILLSTYLE);
+                            pAttr->Put(aStyleItem);
+                            XFillGradientItem aGradientItem(pName->GetValue (), pEntry->GetGradient ());
+                            aGradientItem.SetWhich(XATTR_FILLGRADIENT);
+                            pAttr->Put(aGradientItem);
+                            rBindings.Invalidate (SID_ATTR_FILL_GRADIENT);
+                            rBindings.Invalidate (SID_ATTR_PAGE_GRADIENT);
+                            rBindings.Invalidate (SID_ATTR_FILL_STYLE);
+                            rBindings.Invalidate (SID_ATTR_PAGE_FILLSTYLE);
+                            break;
+                        }
+                    }
+
+                    break;
+                }
+#if HAVE_FEATURE_SCRIPTING
+            StarBASIC::FatalError (ERRCODE_BASIC_WRONG_ARGS);
+#endif
+            break;
+
+        case SID_SELECTHATCH :
+            if (pArgs)
+                if (pArgs->Count () == 1)
+                {
+                    const SfxStringItem* pName = rReq.GetArg<SfxStringItem>(ID_VAL_INDEX);
+
+                    XHatchListRef pHatchList = GetDoc()->GetHatchList ();
+                    long       nCounts     = pHatchList->Count ();
+
+                    for (long i = 0;
+                              i < nCounts;
+                              i ++)
+                    {
+                        const XHatchEntry* pEntry = pHatchList->GetHatch(i);
+
+                        if (pEntry->GetName () == pName->GetValue ())
+                        {
+                            pAttr->ClearItem (XATTR_FILLHATCH);
+                            pAttr->ClearItem (XATTR_FILLSTYLE);
+                            XFillStyleItem aStyleItem(drawing::FillStyle_HATCH);
+                            aStyleItem.SetWhich(XATTR_FILLSTYLE);
+                            pAttr->Put(aStyleItem);
+                            XFillHatchItem aHatchItem(pName->GetValue (), pEntry->GetHatch ());
+                            aHatchItem.SetWhich(XATTR_FILLHATCH);
+                            pAttr->Put(aHatchItem);
+
+                            rBindings.Invalidate (SID_ATTR_FILL_HATCH);
+                            rBindings.Invalidate (SID_ATTR_PAGE_HATCH);
+                            rBindings.Invalidate (SID_ATTR_FILL_STYLE);
+                            rBindings.Invalidate (SID_ATTR_PAGE_FILLSTYLE);
+                            break;
+                        }
+                    }
+
+                    break;
+                }
+#if HAVE_FEATURE_SCRIPTING
+            StarBASIC::FatalError (ERRCODE_BASIC_WRONG_ARGS);
+#endif
+            break;
+
+        case SID_UNSELECT :
+            mpDrawView->UnmarkAll ();
+            break;
+
+        case SID_GETRED :
+            if (pArgs)
+                if (pArgs->Count () == 1)
+                {
+                    break;
+                }
+#if HAVE_FEATURE_SCRIPTING
+            StarBASIC::FatalError (ERRCODE_BASIC_WRONG_ARGS);
+#endif
+            break;
+
 /*        case SID_SETFONTFAMILYNAME :
         case SID_SETFONTSTYLENAME :
         case SID_SETFONTFAMILY :
@@ -295,8 +799,105 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
 /**
  * Edit macros for attribute configuration
  */
-void DrawViewShell::AttrState (SfxItemSet& /*rSet*/)
+void DrawViewShell::AttrState (SfxItemSet& rSet)
 {
+    SfxWhichIter     aIter (rSet);
+    sal_uInt16           nWhich = aIter.FirstWhich ();
+    SfxItemSet aAttr( GetDoc()->GetPool() );
+    mpDrawView->GetAttributes( aAttr );
+
+    while (nWhich)
+    {
+        switch (nWhich)
+        {
+            case SID_GETFILLSTYLE :
+            {
+                const XFillStyleItem &rFillStyleItem = aAttr.Get (XATTR_FILLSTYLE);
+
+                rSet.Put (SfxUInt32Item (nWhich, (long) rFillStyleItem.GetValue ()));
+                break;
+            }
+
+            case SID_GETLINESTYLE :
+            {
+                const XLineStyleItem &rLineStyleItem = aAttr.Get (XATTR_LINESTYLE);
+
+                rSet.Put (SfxUInt32Item (nWhich, (long) rLineStyleItem.GetValue ()));
+                break;
+            }
+
+            case SID_GETLINEWIDTH :
+            {
+                const XLineWidthItem &rLineWidthItem = aAttr.Get (XATTR_LINEWIDTH);
+
+                rSet.Put (SfxUInt32Item (nWhich, (long) rLineWidthItem.GetValue ()));
+                break;
+            }
+
+            case SID_GETGREEN :
+            case SID_GETRED :
+            case SID_GETBLUE :
+            {
+                const SfxUInt32Item &rWhatKind = static_cast<const SfxUInt32Item &>( rSet.Get (ID_VAL_WHATKIND) );
+                Color               aColor;
+
+                switch (rWhatKind.GetValue ())
+                {
+                    case 1 :
+                    {
+                        const XLineColorItem &rLineColorItem = aAttr.Get (XATTR_LINECOLOR);
+
+                        aColor = rLineColorItem.GetColorValue ();
+                        break;
+                    }
+
+                    case 2 :
+                    {
+                        const XFillColorItem &rFillColorItem = aAttr.Get (XATTR_FILLCOLOR);
+
+                        aColor = rFillColorItem.GetColorValue ();
+                        break;
+                    }
+
+                    case 3 :
+                    case 4 :
+                    {
+                        const XFillGradientItem &rFillGradientItem = aAttr.Get (XATTR_FILLGRADIENT);
+                        const XGradient         &rGradient         = rFillGradientItem.GetGradientValue ();
+
+                        aColor = (rWhatKind.GetValue () == 3)
+                                    ? rGradient.GetStartColor ()
+                                    : rGradient.GetEndColor ();
+                        break;
+                    }
+
+                    case 5:
+                    {
+                        const XFillHatchItem &rFillHatchItem = aAttr.Get (XATTR_FILLHATCH);
+                        const XHatch         &rHatch         = rFillHatchItem.GetHatchValue ();
+
+                        aColor = rHatch.GetColor ();
+                        break;
+                    }
+
+                    default :
+                        ;
+                }
+
+                rSet.Put (SfxUInt32Item (nWhich, (long) ((nWhich == SID_GETRED)
+                                                             ? aColor.GetRed ()
+                                                             : (nWhich == SID_GETGREEN)
+                                                                   ? aColor.GetGreen ()
+                                                                   : aColor.GetBlue ())));
+                break;
+            }
+
+            default :
+                ;
+        }
+
+        nWhich = aIter.NextWhich ();
+    }
 }
 
 } // end of namespace sd
diff --git a/sd/source/ui/view/drviewsa.cxx b/sd/source/ui/view/drviewsa.cxx
index 9a1cffc7a4fd..8032e66608cc 100644
--- a/sd/source/ui/view/drviewsa.cxx
+++ b/sd/source/ui/view/drviewsa.cxx
@@ -398,9 +398,9 @@ void DrawViewShell::CheckLineTo(SfxRequest& rReq)
 #ifdef DBG_UTIL
     if(rReq.IsAPI())
     {
-        if(SID_BEZIERTO == rReq.GetSlot() )
+        if(SID_LINETO == rReq.GetSlot() || SID_BEZIERTO == rReq.GetSlot() || SID_MOVETO == rReq.GetSlot() )
         {
-            OSL_FAIL("DrawViewShell::CheckLineTo: slots SID_BEZIERTO no longer supported.");
+            OSL_FAIL("DrawViewShell::CheckLineTo: slots SID_LINETO, SID_BEZIERTO, SID_MOVETO no longer supported.");
         }
     }
 #endif
@@ -409,7 +409,7 @@ void DrawViewShell::CheckLineTo(SfxRequest& rReq)
 }
 
 /**
- * Change page parameter if SID_PAGEMARGIN
+ * Change page parameter if SID_PAGESIZE or SID_PAGEMARGIN
  */
 void DrawViewShell::SetupPage (Size const &rSize,
                                  long nLeft,
diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx
index 5f0aa45bc91e..517417adda4c 100644
--- a/sd/source/ui/view/drviewse.cxx
+++ b/sd/source/ui/view/drviewse.cxx
@@ -710,6 +710,13 @@ void DrawViewShell::FuSupport(SfxRequest& rReq)
 
     switch ( nSId )
     {
+        case SID_CLEAR_UNDO_STACK:
+        {
+            GetDocSh()->ClearUndoBuffer();
+            rReq.Ignore ();
+        }
+        break;
+
         case SID_PRESENTATION:
         case SID_PRESENTATION_CURRENT_SLIDE:
         case SID_REHEARSE_TIMINGS:


More information about the Libreoffice-commits mailing list