summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorZolnai Tamás <tamas.zolnai@collabora.com>2014-02-27 08:32:54 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-02-27 03:18:49 -0600
commite661e6cb6f9e7c45bbd97c4dc8c489a7af952d60 (patch)
treeef5722affe306f2a0af8e8d65c9f837a58ad6def /sw
parent4274001144adeb0b0a1e7da05d52c1bedbe899e5 (diff)
fdo#73159 Make border dialog work again
I removed border dialog with commit 8560fb88c7252e5ad60674e447f2e194298f08de because it seems unused and when the corresponding command was called only a blank window was opened. It seems it was just bugous, so revert this commit and fix the dialog. Conflicts: sw/inc/swabstdlg.hxx sw/source/ui/dialog/swdlgfact.cxx sw/source/ui/dialog/swdlgfact.hxx (cherry picked from commit f73ffb91b85422067274fafc0d411aef8a6e6abb) Change-Id: I68f8c13457e899a894f03bdd60ebedfb2b70afea Reviewed-on: https://gerrit.libreoffice.org/8375 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'sw')
-rw-r--r--sw/Library_swui.mk1
-rw-r--r--sw/inc/cmdid.h1
-rw-r--r--sw/inc/dialog.hrc1
-rw-r--r--sw/inc/swabstdlg.hxx1
-rw-r--r--sw/sdi/_basesh.sdi6
-rw-r--r--sw/sdi/swriter.sdi25
-rw-r--r--sw/source/ui/dialog/swdlgfact.cxx18
-rw-r--r--sw/source/ui/dialog/swdlgfact.hxx1
-rw-r--r--sw/source/ui/frmdlg/frmui.src4
-rw-r--r--sw/source/ui/frmdlg/uiborder.cxx58
-rw-r--r--sw/source/ui/inc/frmui.hrc1
-rw-r--r--sw/source/ui/inc/uiborder.hxx41
-rw-r--r--sw/source/ui/shells/basesh.cxx67
13 files changed, 225 insertions, 0 deletions
diff --git a/sw/Library_swui.mk b/sw/Library_swui.mk
index ab0c2642e78b..8ae22a60c90b 100644
--- a/sw/Library_swui.mk
+++ b/sw/Library_swui.mk
@@ -119,6 +119,7 @@ $(eval $(call gb_Library_add_exception_objects,swui,\
sw/source/ui/frmdlg/frmdlg \
sw/source/ui/frmdlg/frmpage \
sw/source/ui/frmdlg/pattern \
+ sw/source/ui/frmdlg/uiborder \
sw/source/ui/frmdlg/wrap \
sw/source/ui/index/cntex \
sw/source/ui/index/cnttab \
diff --git a/sw/inc/cmdid.h b/sw/inc/cmdid.h
index 2c7afacda34a..7d506a3cd216 100644
--- a/sw/inc/cmdid.h
+++ b/sw/inc/cmdid.h
@@ -323,6 +323,7 @@ included in c-context files, so c++ style stuff will cause problems.
#define FN_FORMAT_PAGE_SETTING_DLG (FN_FORMAT + 42) /* */
#define FN_NUM_FORMAT_TABLE_DLG (FN_FORMAT + 45) /* number format in table */
+#define FN_FORMAT_BORDER_DLG (FN_FORMAT + 48) /* */
#define FN_FORMAT_PAGE_COLUMN_DLG (FN_FORMAT + 49) /* columns per page */
#define FN_FORMAT_BACKGROUND_DLG (FN_FORMAT + 50) /* background */
#define FN_FORMAT_PAGE_DLG (FN_FORMAT + 52) /* page */
diff --git a/sw/inc/dialog.hrc b/sw/inc/dialog.hrc
index b39567516224..f95ef0fda046 100644
--- a/sw/inc/dialog.hrc
+++ b/sw/inc/dialog.hrc
@@ -54,6 +54,7 @@
#define RC_DLG_ADDR (RC_DIALOG_BEGIN + 90)
#define RC_SWDLG_BACKGROUND (RC_DIALOG_BEGIN + 91)
#define RC_DLG_SWNUMFMTDLG (RC_DIALOG_BEGIN + 92)
+#define RC_DLG_SWBORDERDLG (RC_DIALOG_BEGIN + 93)
#define RC_DLG_SWWRAPDLG (RC_DIALOG_BEGIN + 94)
#define RC_DLG_SWFLDEDITDLG (RC_DIALOG_BEGIN + 95)
// Ueberlaufpruefung ********************************************************
diff --git a/sw/inc/swabstdlg.hxx b/sw/inc/swabstdlg.hxx
index d7b81e810557..5a163c40071c 100644
--- a/sw/inc/swabstdlg.hxx
+++ b/sw/inc/swabstdlg.hxx
@@ -373,6 +373,7 @@ public:
virtual AbstractSwAutoFormatDlg * CreateSwAutoFormatDlg( Window* pParent, SwWrtShell* pShell,
sal_Bool bSetAutoFmt = sal_True,
const SwTableAutoFmt* pSelFmt = 0 ) = 0;
+ virtual SfxAbstractDialog * CreateSwBorderDlg ( Window* pParent, SfxItemSet& rSet, sal_uInt16 nType, int nResId ) = 0;
virtual SfxAbstractDialog * CreateSwWrapDlg ( Window* pParent, SfxItemSet& rSet, SwWrtShell* pSh, sal_Bool bDrawMode, int nResId ) = 0;
virtual VclAbstractDialog * CreateSwTableWidthDlg(Window *pParent, SwTableFUNC &rFnc) = 0;
diff --git a/sw/sdi/_basesh.sdi b/sw/sdi/_basesh.sdi
index 060ec160605a..aabe0fc9aa38 100644
--- a/sw/sdi/_basesh.sdi
+++ b/sw/sdi/_basesh.sdi
@@ -276,6 +276,12 @@ interface BaseTextSelection
DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
]
+ FN_FORMAT_BORDER_DLG // status(final|play)
+ [
+ ExecMethod = ExecDlg ;
+ DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
+ ]
+
SID_ATTR_BORDER_INNER // status()
[
StateMethod = GetBorderState ;
diff --git a/sw/sdi/swriter.sdi b/sw/sdi/swriter.sdi
index 9cb8c62c7b03..f8218fe4b862 100644
--- a/sw/sdi/swriter.sdi
+++ b/sw/sdi/swriter.sdi
@@ -624,6 +624,31 @@ SfxVoidItem SwBackspace FN_BACKSPACE
]
//--------------------------------------------------------------------------
+SfxVoidItem BorderDialog FN_FORMAT_BORDER_DLG
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = TRUE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Asynchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
SfxVoidItem BulletsAndNumberingDialog FN_NUMBER_BULLETS
()
[
diff --git a/sw/source/ui/dialog/swdlgfact.cxx b/sw/source/ui/dialog/swdlgfact.cxx
index e337589c65f1..e87f631feb24 100644
--- a/sw/source/ui/dialog/swdlgfact.cxx
+++ b/sw/source/ui/dialog/swdlgfact.cxx
@@ -90,6 +90,7 @@
#include <svx/dialogs.hrc>
#include <mailmergewizard.hxx>
#include <mailconfigpage.hxx>
+#include <uiborder.hxx>
using namespace ::com::sun::star;
@@ -848,6 +849,23 @@ AbstractSwAutoFormatDlg * SwAbstractDialogFactory_Impl::CreateSwAutoFormatDlg(Wi
return new AbstractSwAutoFormatDlg_Impl(pDlg);
}
+SfxAbstractDialog * SwAbstractDialogFactory_Impl::CreateSwBorderDlg(Window* pParent, SfxItemSet& rSet, sal_uInt16 nType, int nResId )
+{
+ SfxModalDialog* pDlg=NULL;
+ switch ( nResId )
+ {
+ case RC_DLG_SWBORDERDLG :
+ pDlg = new SwBorderDlg( pParent, rSet, nType );
+ break;
+ default:
+ break;
+ }
+
+ if ( pDlg )
+ return new SwAbstractSfxDialog_Impl( pDlg );
+ return 0;
+}
+
SfxAbstractDialog* SwAbstractDialogFactory_Impl::CreateSwWrapDlg ( Window* pParent, SfxItemSet& rSet, SwWrtShell* pSh, sal_Bool bDrawMode, int nResId )
{
SfxModalDialog* pDlg=NULL;
diff --git a/sw/source/ui/dialog/swdlgfact.hxx b/sw/source/ui/dialog/swdlgfact.hxx
index de45486a1645..f9e0101f427f 100644
--- a/sw/source/ui/dialog/swdlgfact.hxx
+++ b/sw/source/ui/dialog/swdlgfact.hxx
@@ -424,6 +424,7 @@ public:
virtual AbstractSwAutoFormatDlg * CreateSwAutoFormatDlg( Window* pParent, SwWrtShell* pShell,
sal_Bool bSetAutoFmt = sal_True,
const SwTableAutoFmt* pSelFmt = 0 );
+ virtual SfxAbstractDialog * CreateSwBorderDlg (Window* pParent, SfxItemSet& rSet, sal_uInt16 nType, int nResId );
virtual SfxAbstractDialog * CreateSwWrapDlg ( Window* pParent, SfxItemSet& rSet, SwWrtShell* pSh, sal_Bool bDrawMode, int nResId );
virtual VclAbstractDialog * CreateSwTableWidthDlg(Window *pParent, SwTableFUNC &rFnc);
diff --git a/sw/source/ui/frmdlg/frmui.src b/sw/source/ui/frmdlg/frmui.src
index 939f5af33e62..c6d436a8baf3 100644
--- a/sw/source/ui/frmdlg/frmui.src
+++ b/sw/source/ui/frmdlg/frmui.src
@@ -102,6 +102,10 @@ String STR_COLL_HEADER
{
Text [ en-US ] = " (Template: " ;
};
+String STR_FRMUI_BORDER
+{
+ Text [ en-US ] = "Borders" ;
+};
String STR_FRMUI_PATTERN
{
Text [ en-US ] = "Background" ;
diff --git a/sw/source/ui/frmdlg/uiborder.cxx b/sw/source/ui/frmdlg/uiborder.cxx
new file mode 100644
index 000000000000..98aace7c01cb
--- /dev/null
+++ b/sw/source/ui/frmdlg/uiborder.cxx
@@ -0,0 +1,58 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <svx/svxdlg.hxx>
+#include <svx/svxids.hrc>
+#include <svx/dialogs.hrc>
+#include <svl/itemset.hxx>
+#include <svx/flagsdef.hxx>
+#include <sfx2/tabdlg.hxx>
+#include <svl/intitem.hxx>
+
+#include "swtypes.hxx"
+#include "uiborder.hxx"
+#include "frmui.hrc"
+
+SwBorderDlg::SwBorderDlg(Window* pParent, SfxItemSet& rSet, sal_uInt16 nType) :
+ SfxSingleTabDialog(pParent, rSet)
+
+{
+ SetText(SW_RESSTR(STR_FRMUI_BORDER));
+
+ SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create();
+ OSL_ENSURE(pFact, "Dialogdiet fail!");
+ ::CreateTabPage fnCreatePage = pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER );
+
+ if ( fnCreatePage )
+ {
+ SfxTabPage* pNewPage = (*fnCreatePage)( get_content_area(), rSet );
+ SfxAllItemSet aSet(*(rSet.GetPool()));
+ aSet.Put (SfxUInt16Item(SID_SWMODE_TYPE,nType));
+ if(SW_BORDER_MODE_TABLE == nType)
+ aSet.Put (SfxUInt32Item(SID_FLAG_TYPE,SVX_HIDESHADOWCTL));
+ pNewPage->PageCreated(aSet);
+ setTabPage(pNewPage);
+ }
+}
+
+SwBorderDlg::~SwBorderDlg()
+{
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/ui/inc/frmui.hrc b/sw/source/ui/inc/frmui.hrc
index ae14bbb4e035..4e765f9c9456 100644
--- a/sw/source/ui/inc/frmui.hrc
+++ b/sw/source/ui/inc/frmui.hrc
@@ -44,6 +44,7 @@
#define STR_TOPPRT (STR_FRMDLG_BEGIN + 1)
+#define STR_BORDER (STR_FRMDLG_BEGIN + 16)
#define STR_COLUMN (STR_FRMDLG_BEGIN + 17)
#define STR_CHAR (STR_FRMDLG_BEGIN + 19)
diff --git a/sw/source/ui/inc/uiborder.hxx b/sw/source/ui/inc/uiborder.hxx
new file mode 100644
index 000000000000..78adaeb7846d
--- /dev/null
+++ b/sw/source/ui/inc/uiborder.hxx
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef _UIBORDER_HXX
+#define _UIBORDER_HXX
+
+#include <sfx2/basedlgs.hxx>
+class Window;
+class SfxItemSet;
+
+class SwBorderDlg : public SfxSingleTabDialog
+{
+public:
+
+ // nType may be:
+ // SW_BORDER_MODE_PARA
+ // SW_BORDER_MODE_TABLE
+ // SW_BORDER_MODE_FRAME
+
+ SwBorderDlg(Window* pParent, SfxItemSet& rSet, sal_uInt16 nType);
+ ~SwBorderDlg();
+};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/ui/shells/basesh.cxx b/sw/source/ui/shells/basesh.cxx
index 4b5d9f80aa4c..b5de5febe3ff 100644
--- a/sw/source/ui/shells/basesh.cxx
+++ b/sw/source/ui/shells/basesh.cxx
@@ -2373,6 +2373,73 @@ void SwBaseShell::ExecDlg(SfxRequest &rReq)
}
}
break;
+ case FN_FORMAT_BORDER_DLG:
+ {
+ SfxItemSet aSet( rSh.GetAttrPool(),
+ RES_BOX , RES_SHADOW,
+ SID_ATTR_BORDER_INNER, SID_ATTR_BORDER_INNER,
+ 0 );
+ SfxAbstractDialog * pDlg = 0;
+ // Table cell(s) selected?
+ if ( rSh.IsTableMode() )
+ {
+ // Set border attributes Get/SetTabBorders()
+ ::PrepareBoxInfo( aSet, rSh );
+ rSh.GetTabBorders( aSet );
+ SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
+ OSL_ENSURE(pFact, "SwAbstractDialogFactory fail!");
+
+ pDlg = pFact->CreateSwBorderDlg( pMDI, aSet, SW_BORDER_MODE_TABLE, RC_DLG_SWBORDERDLG );
+ OSL_ENSURE(pDlg, "Dialogdiet fail!");
+ if ( pDlg->Execute() == RET_OK )
+ {
+ rSh.SetTabBorders( *pDlg->GetOutputItemSet() );
+ pOutSet = pDlg->GetOutputItemSet();
+ }
+ }
+ else if ( rSh.IsFrmSelected() )
+ {
+ // Set border attributes via Frame-Manager
+ SwFlyFrmAttrMgr aMgr( sal_False, &rSh, FRMMGR_TYPE_NONE );
+ aSet.Put( aMgr.GetAttrSet() );
+
+ SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
+ OSL_ENSURE(pFact, "SwAbstractDialogFactory fail!");
+
+ pDlg = pFact->CreateSwBorderDlg( pMDI, aSet, SW_BORDER_MODE_FRAME, RC_DLG_SWBORDERDLG );
+ OSL_ENSURE(pDlg, "Dialogdiet fail!");
+ if ( pDlg->Execute() == RET_OK )
+ {
+ aMgr.SetAttrSet( *pDlg->GetOutputItemSet() );
+ aMgr.UpdateFlyFrm();
+ pOutSet = pDlg->GetOutputItemSet();
+ }
+ }
+ else
+ {
+ // Set border attributes via Shell quite normal
+ rSh.GetCurAttr( aSet );
+ ::PrepareBoxInfo( aSet, rSh );
+
+ SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
+ OSL_ENSURE(pFact, "SwAbstractDialogFactory fail!");
+
+ pDlg = pFact->CreateSwBorderDlg( pMDI, aSet, SW_BORDER_MODE_PARA, RC_DLG_SWBORDERDLG );
+ OSL_ENSURE(pDlg, "Dialogdiet fail!");
+ if ( pDlg->Execute() == RET_OK )
+ {
+ rSh.SetAttrSet( *pDlg->GetOutputItemSet() );
+ pOutSet = pDlg->GetOutputItemSet();
+ }
+ }
+ if(pOutSet)
+ {
+ rReq.Done(*pOutSet);
+ bDone = true;
+ }
+ delete pDlg;
+ }
+ break;
case FN_FORMAT_BACKGROUND_DLG:
{
SfxItemSet aSet( rSh.GetAttrPool(),