include/svx/strings.hrc | 3 sc/qa/unit/ucalc.cxx | 74 ++++++++++++ svx/inc/bitmaps.hlst | 3 svx/source/tbxctrls/tbcontrl.cxx | 199 +++++++++++++++++++++++++-------- svx/uiconfig/ui/floatingframeborder.ui | 22 +-- 5 files changed, 244 insertions(+), 57 deletions(-)
New commits: commit 3a9167e1b8a236da2862f4377e2040a8c189c99c Author: Bayram Çiçek <m...@bayramcicek.com.tr> AuthorDate: Wed Jul 14 21:25:05 2021 +0300 Commit: Muhammet Kara <muhammet.k...@collabora.com> CommitDate: Mon Aug 23 13:20:26 2021 +0200 tdf#143919: Calc: add diagonal borders in Toolbar>Borders In "Table toolbar > Borders" tab; - Borders UI column size increased to 5 - diagonal left border icon added to 5th place - diagonal right border icon added to 10th place - criss-cross border icon added to 15th place - added diagonal left and diagonal right borders feature - implemented removing diagonal borders when set "no border" - added criss-cross line feature - added a unit test for diagonal borders Change-Id: I2dd7ab797b1a191eb650cc6340ee57d39e45a1ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118951 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tie...@documentfoundation.org> Reviewed-by: Muhammet Kara <muhammet.k...@collabora.com> 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>