summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/svx/strings.hrc3
-rw-r--r--sc/qa/unit/ucalc.cxx74
-rw-r--r--svx/inc/bitmaps.hlst3
-rw-r--r--svx/source/tbxctrls/tbcontrl.cxx199
-rw-r--r--svx/uiconfig/ui/floatingframeborder.ui22
5 files changed, 244 insertions, 57 deletions
diff --git a/include/svx/strings.hrc b/include/svx/strings.hrc
index e18af6a34981..d9b640774755 100644
--- a/include/svx/strings.hrc
+++ b/include/svx/strings.hrc
@@ -1782,6 +1782,9 @@
#define RID_SVXSTR_TABLE_PRESET_OUTERVERI NC_("RID_SVXSTR_TABLE_PRESET_OUTERVERI", "Set Outer Border and Vertical Lines")
#define RID_SVXSTR_TABLE_PRESET_OUTERINNER NC_("RID_SVXSTR_TABLE_PRESET_OUTERINNER", "Set Outer Border Without Changing Inner Lines")
#define RID_SVXSTR_PARA_PRESET_DIAGONAL NC_("RID_SVXSTR_PARA_PRESET_DIAGONAL", "Set Diagonal Lines Only")
+#define RID_SVXSTR_PARA_PRESET_DIAGONALLEFT NC_("RID_SVXSTR_PARA_PRESET_DIAGONALLEFT", "Set Diagonal Left Border")
+#define RID_SVXSTR_PARA_PRESET_DIAGONALRIGHT NC_("RID_SVXSTR_PARA_PRESET_DIAGONALRIGHT", "Set Diagonal Right Border")
+#define RID_SVXSTR_PARA_PRESET_CRISSCROSS NC_("RID_SVXSTR_PARA_PRESET_CRISSCROSS", "Set Criss-Cross Border")
#define RID_SVXSTR_PARA_PRESET_ALL NC_("RID_SVXSTR_PARA_PRESET_ALL", "Set All Four Borders")
#define RID_SVXSTR_PARA_PRESET_LEFTRIGHT NC_("RID_SVXSTR_PARA_PRESET_LEFTRIGHT", "Set Left and Right Borders Only")
#define RID_SVXSTR_PARA_PRESET_TOPBOTTOM NC_("RID_SVXSTR_PARA_PRESET_TOPBOTTOM", "Set Top and Bottom Borders Only")
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index f8ddc85a01a4..48ad56946d93 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -76,6 +76,7 @@
#include <editeng/eeitem.hxx>
#include <editeng/wghtitem.hxx>
#include <editeng/postitem.hxx>
+#include <editeng/lineitem.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdocirc.hxx>
@@ -179,6 +180,7 @@ public:
void testSearchCells();
void testFormulaPosition();
void testFormulaWizardSubformula();
+ void testDiagonalBorders();
/**
* Make sure the sheet streams are invalidated properly.
@@ -301,6 +303,7 @@ public:
CPPUNIT_TEST(testSearchCells);
CPPUNIT_TEST(testFormulaPosition);
CPPUNIT_TEST(testFormulaWizardSubformula);
+ CPPUNIT_TEST(testDiagonalBorders);
CPPUNIT_TEST(testJumpToPrecedentsDependents);
CPPUNIT_TEST(testSetBackgroundColor);
CPPUNIT_TEST(testRenameTable);
@@ -5923,6 +5926,77 @@ void Test::testFormulaWizardSubformula()
m_pDoc->DeleteTab(0);
}
+void Test::testDiagonalBorders()
+{
+ m_pDoc->InsertTab(0, "Diagonal");
+
+ ScAddress aPos;
+ const editeng::SvxBorderLine* pLine;
+ const ScPatternAttr* pPat;
+
+ // diagonal left border
+ ::editeng::SvxBorderLine dLeftBorderLine( nullptr, 1 );
+ SvxLineItem dLeftLineItem( ATTR_BORDER_TLBR );
+ dLeftLineItem.SetLine(&dLeftBorderLine);
+
+ // set diagonal left border to cell(A1)
+ m_pDoc->ApplyAttr(0, 0, 0, dLeftLineItem);
+
+ aPos = { 0, 0, 0 };
+ pPat = m_pDoc->GetPattern(aPos);
+ CPPUNIT_ASSERT(pPat);
+
+ pLine = pPat->GetItem(ATTR_BORDER_TLBR).GetLine();
+ CPPUNIT_ASSERT_MESSAGE("Diagonal left border was expected, but not found!", pLine);
+
+ // diagonal right border
+ ::editeng::SvxBorderLine dRightBorderLine( nullptr, 1 );
+ SvxLineItem dRightLineItem( ATTR_BORDER_BLTR );
+ dRightLineItem.SetLine(&dRightBorderLine);
+
+ // set diagonal right border to cell(A2)
+ m_pDoc->ApplyAttr(0, 1, 0, dRightLineItem);
+
+ aPos = { 0, 1, 0 };
+ pPat = m_pDoc->GetPattern(aPos);
+ CPPUNIT_ASSERT(pPat);
+
+ pLine = pPat->GetItem(ATTR_BORDER_BLTR).GetLine();
+ CPPUNIT_ASSERT_MESSAGE("Diagonal right border was expected, but not found!", pLine);
+
+ // diagonal left and right border in the same cell (A5)
+ m_pDoc->ApplyAttr(0, 4, 0, dLeftLineItem);
+ m_pDoc->ApplyAttr(0, 4, 0, dRightLineItem);
+
+ // test if both borders are applied successfully in the same cell (A5)
+ aPos = { 0, 4, 0 };
+ pPat = m_pDoc->GetPattern(aPos);
+ CPPUNIT_ASSERT(pPat);
+
+ pLine = pPat->GetItem(ATTR_BORDER_TLBR).GetLine();
+ CPPUNIT_ASSERT_MESSAGE("Diagonal left border was expected, but not found!", pLine);
+ pLine = pPat->GetItem(ATTR_BORDER_BLTR).GetLine();
+ CPPUNIT_ASSERT_MESSAGE("Diagonal right border was expected, but not found!", pLine);
+
+ // test if both borders are removed successfully
+ dLeftLineItem.SetLine(nullptr);
+ dRightLineItem.SetLine(nullptr);
+
+ // SetLine(nullptr) should remove the lines from (A5)
+ m_pDoc->ApplyAttr(0, 4, 0, dLeftLineItem);
+ m_pDoc->ApplyAttr(0, 4, 0, dRightLineItem);
+
+ pPat = m_pDoc->GetPattern(aPos);
+ CPPUNIT_ASSERT(pPat);
+
+ pLine = pPat->GetItem(ATTR_BORDER_TLBR).GetLine();
+ CPPUNIT_ASSERT_MESSAGE("Diagonal left border was not expected, but is found!", !pLine);
+ pLine = pPat->GetItem(ATTR_BORDER_BLTR).GetLine();
+ CPPUNIT_ASSERT_MESSAGE("Diagonal right border was not expected, but is found!", !pLine);
+
+ m_pDoc->DeleteTab(0);
+}
+
void Test::testSetStringAndNote()
{
m_pDoc->InsertTab(0, "Test");
diff --git a/svx/inc/bitmaps.hlst b/svx/inc/bitmaps.hlst
index 3bf954339846..78b5509c52f5 100644
--- a/svx/inc/bitmaps.hlst
+++ b/svx/inc/bitmaps.hlst
@@ -272,6 +272,9 @@
#define RID_SVXBMP_FRAME10 "svx/res/fr010.png"
#define RID_SVXBMP_FRAME11 "svx/res/fr011.png"
#define RID_SVXBMP_FRAME12 "svx/res/fr012.png"
+#define RID_SVXBMP_FRAME13 "svx/res/fr013.png"
+#define RID_SVXBMP_FRAME14 "svx/res/fr014.png"
+#define RID_SVXBMP_FRAME15 "svx/res/pr06.png"
#define RID_SVXBMP_GRAF_RED "res/sc10865.png"
#define RID_SVXBMP_GRAF_GREEN "res/sc10866.png"
#define RID_SVXBMP_GRAF_BLUE "res/sc10867.png"
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index 2bd7d5fb2e0d..71dcd4ee811d 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -2170,25 +2170,25 @@ SvxFrameWindow_Impl::SvxFrameWindow_Impl(SvxFrameToolBoxControl* pControl, weld:
InitImageList();
/*
- * 1 2 3 4
- * -------------------------------------
- * NONE LEFT RIGHT LEFTRIGHT
- * TOP BOTTOM TOPBOTTOM OUTER
- * -------------------------------------
- * HOR HORINNER VERINNER ALL <- can be switched of via bParagraphMode
+ * 1 2 3 4 5
+ * ------------------------------------------------------
+ * NONE LEFT RIGHT LEFTRIGHT DIAGONALLEFT
+ * TOP BOTTOM TOPBOTTOM OUTER DIAGONALRIGHT
+ * ------------------------------------------------------
+ * HOR HORINNER VERINNER ALL CRISSCROSS <- can be switched of via bParagraphMode
*/
sal_uInt16 i = 0;
- for ( i=1; i<9; i++ )
+ for ( i=1; i<11; i++ )
mxFrameSet->InsertItem(i, Image(aImgVec[i-1].first), aImgVec[i-1].second);
//bParagraphMode should have been set in StateChanged
if ( !bParagraphMode )
- for ( i = 9; i < 13; i++ )
+ for ( i = 11; i < 16; i++ )
mxFrameSet->InsertItem(i, Image(aImgVec[i-1].first), aImgVec[i-1].second);
- mxFrameSet->SetColCount( 4 );
+ mxFrameSet->SetColCount( 5 );
mxFrameSet->SetSelectHdl( LINK( this, SvxFrameWindow_Impl, SelectHdl ) );
CalcSizeValueSet();
@@ -2223,6 +2223,15 @@ IMPL_LINK_NOARG(SvxFrameWindow_Impl, SelectHdl, ValueSet*, void)
SvxBoxItem aBorderOuter( SID_ATTR_BORDER_OUTER );
SvxBoxInfoItem aBorderInner( SID_ATTR_BORDER_INNER );
SvxBorderLine theDefLine;
+
+ // diagonal left border
+ SvxBorderLine dLeftBorderLine( nullptr, 1 );
+ SvxLineItem dLeftLineItem( SID_ATTR_BORDER_DIAG_TLBR );
+
+ // diagonal right border
+ SvxBorderLine dRightBorderLine( nullptr, 1 );
+ SvxLineItem dRightLineItem( SID_ATTR_BORDER_DIAG_BLTR );
+
SvxBorderLine *pLeft = nullptr,
*pRight = nullptr,
*pTop = nullptr,
@@ -2236,6 +2245,9 @@ IMPL_LINK_NOARG(SvxFrameWindow_Impl, SelectHdl, ValueSet*, void)
switch ( nSel )
{
case 1: nValidFlags |= FrmValidFlags::AllMask;
+ // set nullptr to remove diagonal lines
+ dLeftLineItem.SetLine(nullptr);
+ dRightLineItem.SetLine(nullptr);
break; // NONE
case 2: pLeft = &theDefLine;
nValidFlags |= FrmValidFlags::Left;
@@ -2246,75 +2258,167 @@ IMPL_LINK_NOARG(SvxFrameWindow_Impl, SelectHdl, ValueSet*, void)
case 4: pLeft = pRight = &theDefLine;
nValidFlags |= FrmValidFlags::Right|FrmValidFlags::Left;
break; // LEFTRIGHT
- case 5: pTop = &theDefLine;
+ case 5: dLeftLineItem.SetLine(&dLeftBorderLine);
+ break; // DIAGONAL LEFT
+ case 6: pTop = &theDefLine;
nValidFlags |= FrmValidFlags::Top;
break; // TOP
- case 6: pBottom = &theDefLine;
+ case 7: pBottom = &theDefLine;
nValidFlags |= FrmValidFlags::Bottom;
break; // BOTTOM
- case 7: pTop = pBottom = &theDefLine;
+ case 8: pTop = pBottom = &theDefLine;
nValidFlags |= FrmValidFlags::Bottom|FrmValidFlags::Top;
break; // TOPBOTTOM
- case 8: pLeft = pRight = pTop = pBottom = &theDefLine;
+ case 9: pLeft = pRight = pTop = pBottom = &theDefLine;
nValidFlags |= FrmValidFlags::Left | FrmValidFlags::Right | FrmValidFlags::Top | FrmValidFlags::Bottom;
break; // OUTER
+ case 10:
+ dRightLineItem.SetLine(&dRightBorderLine);
+ break; // DIAGONAL RIGHT
// Inner Table:
- case 9: // HOR
+ case 11: // HOR
pTop = pBottom = &theDefLine;
aBorderInner.SetLine( &theDefLine, SvxBoxInfoItemLine::HORI );
aBorderInner.SetLine( nullptr, SvxBoxInfoItemLine::VERT );
nValidFlags |= FrmValidFlags::HInner|FrmValidFlags::Top|FrmValidFlags::Bottom;
break;
- case 10: // HORINNER
+ case 12: // HORINNER
pLeft = pRight = pTop = pBottom = &theDefLine;
aBorderInner.SetLine( &theDefLine, SvxBoxInfoItemLine::HORI );
aBorderInner.SetLine( nullptr, SvxBoxInfoItemLine::VERT );
nValidFlags |= FrmValidFlags::Right|FrmValidFlags::Left|FrmValidFlags::HInner|FrmValidFlags::Top|FrmValidFlags::Bottom;
break;
- case 11: // VERINNER
+ case 13: // VERINNER
pLeft = pRight = pTop = pBottom = &theDefLine;
aBorderInner.SetLine( nullptr, SvxBoxInfoItemLine::HORI );
aBorderInner.SetLine( &theDefLine, SvxBoxInfoItemLine::VERT );
nValidFlags |= FrmValidFlags::Right|FrmValidFlags::Left|FrmValidFlags::VInner|FrmValidFlags::Top|FrmValidFlags::Bottom;
break;
- case 12: // ALL
+ case 14: // ALL
pLeft = pRight = pTop = pBottom = &theDefLine;
aBorderInner.SetLine( &theDefLine, SvxBoxInfoItemLine::HORI );
aBorderInner.SetLine( &theDefLine, SvxBoxInfoItemLine::VERT );
nValidFlags |= FrmValidFlags::AllMask;
break;
+ case 15:
+ // set both diagonal lines to draw criss-cross line
+ dLeftLineItem.SetLine(&dLeftBorderLine);
+ dRightLineItem.SetLine(&dRightBorderLine);
+ break; // CRISS-CROSS
+
default:
break;
}
- aBorderOuter.SetLine( pLeft, SvxBoxItemLine::LEFT );
- aBorderOuter.SetLine( pRight, SvxBoxItemLine::RIGHT );
- aBorderOuter.SetLine( pTop, SvxBoxItemLine::TOP );
- aBorderOuter.SetLine( pBottom, SvxBoxItemLine::BOTTOM );
-
- if(nModifier == KEY_SHIFT)
- nValidFlags |= FrmValidFlags::AllMask;
- aBorderInner.SetValid( SvxBoxInfoItemValidFlags::TOP, bool(nValidFlags&FrmValidFlags::Top ));
- aBorderInner.SetValid( SvxBoxInfoItemValidFlags::BOTTOM, bool(nValidFlags&FrmValidFlags::Bottom ));
- aBorderInner.SetValid( SvxBoxInfoItemValidFlags::LEFT, bool(nValidFlags&FrmValidFlags::Left));
- aBorderInner.SetValid( SvxBoxInfoItemValidFlags::RIGHT, bool(nValidFlags&FrmValidFlags::Right ));
- aBorderInner.SetValid( SvxBoxInfoItemValidFlags::HORI, bool(nValidFlags&FrmValidFlags::HInner ));
- aBorderInner.SetValid( SvxBoxInfoItemValidFlags::VERT, bool(nValidFlags&FrmValidFlags::VInner));
- aBorderInner.SetValid( SvxBoxInfoItemValidFlags::DISTANCE );
- aBorderInner.SetValid( SvxBoxInfoItemValidFlags::DISABLE, false );
- Any a;
- Sequence< PropertyValue > aArgs( 2 );
- aArgs[0].Name = "OuterBorder";
- aBorderOuter.QueryValue( a );
- aArgs[0].Value = a;
- aArgs[1].Name = "InnerBorder";
- aBorderInner.QueryValue( a );
- aArgs[1].Value = a;
+ if (nSel == 5)
+ {
+ // apply diagonal left border
+ Any a;
+ Sequence< PropertyValue > aArgs( 1 );
+ aArgs[0].Name = "BorderTLBR";
+ dLeftLineItem.QueryValue( a );
+ aArgs[0].Value = a;
+
+ mxControl->dispatchCommand( ".uno:BorderTLBR", aArgs );
+ }
+ else if (nSel == 10)
+ {
+ // apply diagonal right border
+ Any a;
+ Sequence< PropertyValue > aArgs( 1 );
+ aArgs[0].Name = "BorderBLTR";
+ dRightLineItem.QueryValue( a );
+ aArgs[0].Value = a;
+
+ mxControl->dispatchCommand( ".uno:BorderBLTR", aArgs );
+ }
+ else if (nSel == 15)
+ {
+ // to draw criss-cross line,
+ // we need to set diagonal left and
+ // diagonal right border together
+
+ // apply diagonal left border (TLBR)
+ Any aLeft;
+ Sequence< PropertyValue > aArgsTLBR( 1 );
+ aArgsTLBR[0].Name = "BorderTLBR";
+ dLeftLineItem.QueryValue( aLeft );
+ aArgsTLBR[0].Value = aLeft;
+
+ // apply diagonal right border (BLTR)
+ Any aRight;
+ Sequence< PropertyValue > aArgsBLTR( 1 );
+ aArgsBLTR[0].Name = "BorderBLTR";
+ dRightLineItem.QueryValue( aRight );
+ aArgsBLTR[0].Value = aRight;
+
+ // execute dispatchCommand for both of them
+ mxControl->dispatchCommand( ".uno:BorderTLBR", aArgsTLBR );
+ mxControl->dispatchCommand( ".uno:BorderBLTR", aArgsBLTR );
+ }
+ else
+ {
+ aBorderOuter.SetLine( pLeft, SvxBoxItemLine::LEFT );
+ aBorderOuter.SetLine( pRight, SvxBoxItemLine::RIGHT );
+ aBorderOuter.SetLine( pTop, SvxBoxItemLine::TOP );
+ aBorderOuter.SetLine( pBottom, SvxBoxItemLine::BOTTOM );
+
+ if(nModifier == KEY_SHIFT)
+ nValidFlags |= FrmValidFlags::AllMask;
+ aBorderInner.SetValid( SvxBoxInfoItemValidFlags::TOP, bool(nValidFlags&FrmValidFlags::Top ));
+ aBorderInner.SetValid( SvxBoxInfoItemValidFlags::BOTTOM, bool(nValidFlags&FrmValidFlags::Bottom ));
+ aBorderInner.SetValid( SvxBoxInfoItemValidFlags::LEFT, bool(nValidFlags&FrmValidFlags::Left));
+ aBorderInner.SetValid( SvxBoxInfoItemValidFlags::RIGHT, bool(nValidFlags&FrmValidFlags::Right ));
+ aBorderInner.SetValid( SvxBoxInfoItemValidFlags::HORI, bool(nValidFlags&FrmValidFlags::HInner ));
+ aBorderInner.SetValid( SvxBoxInfoItemValidFlags::VERT, bool(nValidFlags&FrmValidFlags::VInner));
+ aBorderInner.SetValid( SvxBoxInfoItemValidFlags::DISTANCE );
+ aBorderInner.SetValid( SvxBoxInfoItemValidFlags::DISABLE, false );
+
+ // if nSel == 1, we should remove all lines from the cell.
+ // additionally, we should remove diagonal borders here,
+ // because diagonal left and right borders are NOT
+ // the member of aBorderOuter and aBorderInner.
+ if (nSel == 1)
+ {
+ // remove left diagonal line
+ {
+ Any a;
+ Sequence< PropertyValue > aArgs( 1 );
+ aArgs[0].Name = "BorderTLBR";
+ dLeftLineItem.QueryValue( a );
+ aArgs[0].Value = a;
+
+ mxControl->dispatchCommand( ".uno:BorderTLBR", aArgs );
+ }
+
+ // remove right diagonal line
+ {
+ Any a;
+ Sequence< PropertyValue > aArgs( 1 );
+ aArgs[0].Name = "BorderBLTR";
+ dRightLineItem.QueryValue( a );
+ aArgs[0].Value = a;
+
+ mxControl->dispatchCommand( ".uno:BorderBLTR", aArgs );
+ }
+ }
+
+ Any a;
+ Sequence< PropertyValue > aArgs( 2 );
+ aArgs[0].Name = "OuterBorder";
+ aBorderOuter.QueryValue( a );
+ aArgs[0].Value = a;
+ aArgs[1].Name = "InnerBorder";
+ aBorderInner.QueryValue( a );
+ aArgs[1].Value = a;
+
+ mxControl->dispatchCommand( ".uno:SetBorderStyle", aArgs );
+ }
if (mxFrameSet)
{
@@ -2324,8 +2428,6 @@ IMPL_LINK_NOARG(SvxFrameWindow_Impl, SelectHdl, ValueSet*, void)
mxFrameSet->SetNoSelection();
}
- mxControl->dispatchCommand( ".uno:SetBorderStyle", aArgs );
-
mxControl->EndPopupMode();
}
@@ -2343,18 +2445,18 @@ void SvxFrameWindow_Impl::statusChanged( const css::frame::FeatureStateEvent& rE
if(!mxFrameSet->GetItemCount())
return;
- bool bTableMode = ( mxFrameSet->GetItemCount() == 12 );
+ bool bTableMode = ( mxFrameSet->GetItemCount() == 15 );
bool bResize = false;
if ( bTableMode && bParagraphMode )
{
- for ( sal_uInt16 i = 9; i < 13; i++ )
+ for ( sal_uInt16 i = 11; i < 16; i++ )
mxFrameSet->RemoveItem(i);
bResize = true;
}
else if ( !bTableMode && !bParagraphMode )
{
- for ( sal_uInt16 i = 9; i < 13; i++ )
+ for ( sal_uInt16 i = 11; i < 16; i++ )
mxFrameSet->InsertItem(i, Image(aImgVec[i-1].first), aImgVec[i-1].second);
bResize = true;
}
@@ -2382,14 +2484,19 @@ void SvxFrameWindow_Impl::InitImageList()
{BitmapEx(RID_SVXBMP_FRAME2), SvxResId(RID_SVXSTR_PARA_PRESET_ONLYLEFT)},
{BitmapEx(RID_SVXBMP_FRAME3), SvxResId(RID_SVXSTR_PARA_PRESET_ONLYRIGHT)},
{BitmapEx(RID_SVXBMP_FRAME4), SvxResId(RID_SVXSTR_PARA_PRESET_LEFTRIGHT)},
+ {BitmapEx(RID_SVXBMP_FRAME14), SvxResId(RID_SVXSTR_PARA_PRESET_DIAGONALLEFT)}, // diagonal left border
+
{BitmapEx(RID_SVXBMP_FRAME5), SvxResId(RID_SVXSTR_PARA_PRESET_ONLYTOP)},
{BitmapEx(RID_SVXBMP_FRAME6), SvxResId(RID_SVXSTR_PARA_PRESET_ONLYTBOTTOM)},
{BitmapEx(RID_SVXBMP_FRAME7), SvxResId(RID_SVXSTR_PARA_PRESET_TOPBOTTOM)},
{BitmapEx(RID_SVXBMP_FRAME8), SvxResId(RID_SVXSTR_TABLE_PRESET_ONLYOUTER)},
+ {BitmapEx(RID_SVXBMP_FRAME13), SvxResId(RID_SVXSTR_PARA_PRESET_DIAGONALRIGHT)}, // diagonal right border
+
{BitmapEx(RID_SVXBMP_FRAME9), SvxResId(RID_SVXSTR_PARA_PRESET_TOPBOTTOMHORI)},
{BitmapEx(RID_SVXBMP_FRAME10), SvxResId(RID_SVXSTR_TABLE_PRESET_OUTERHORI)},
{BitmapEx(RID_SVXBMP_FRAME11), SvxResId(RID_SVXSTR_TABLE_PRESET_OUTERVERI)},
- {BitmapEx(RID_SVXBMP_FRAME12), SvxResId(RID_SVXSTR_TABLE_PRESET_OUTERALL)}
+ {BitmapEx(RID_SVXBMP_FRAME12), SvxResId(RID_SVXSTR_TABLE_PRESET_OUTERALL)},
+ {BitmapEx(RID_SVXBMP_FRAME15), SvxResId(RID_SVXSTR_PARA_PRESET_CRISSCROSS)} // criss-cross border
};
}
diff --git a/svx/uiconfig/ui/floatingframeborder.ui b/svx/uiconfig/ui/floatingframeborder.ui
index 36236939e6e9..66e11a863b77 100644
--- a/svx/uiconfig/ui/floatingframeborder.ui
+++ b/svx/uiconfig/ui/floatingframeborder.ui
@@ -1,34 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="svx">
<requires lib="gtk+" version="3.20"/>
<object class="GtkPopover" id="FloatingFrameBorder">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="border_width">4</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="border-width">5</property>
<child>
<object class="GtkBox" id="container">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkScrolledWindow" id="valuesetwin">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="valueset">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>