summaryrefslogtreecommitdiff
path: root/cui/source
diff options
context:
space:
mode:
authorRishabh Kumar <kris.kr296@gmail.com>2016-07-20 14:57:11 +0530
committerCaolán McNamara <caolanm@redhat.com>2016-07-20 10:10:03 +0000
commit5df8024dc8a53c657d756dbe0ae6eb27185c1272 (patch)
tree7e8b7b990ce97038f8fb144ecba5f436aa46622d /cui/source
parent7abca37660487336e6da123bd13f8f9e0ef9e4a7 (diff)
Revert "Addition of new controls and their rearrangement in hatch tab"
Unfinished GSoC: Area Fill project feature. Introduces regression in LibreOffice-5-2. This reverts commit 7a4bd998e900c7f7a28f9068b97707ef76c99b85. Change-Id: I94c24b252983732161b8f2f0de51780a4d5c13bd Reviewed-on: https://gerrit.libreoffice.org/27331 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'cui/source')
-rw-r--r--cui/source/inc/cuitabarea.hxx11
-rw-r--r--cui/source/tabpages/tparea.cxx136
-rw-r--r--cui/source/tabpages/tphatch.cxx110
3 files changed, 185 insertions, 72 deletions
diff --git a/cui/source/inc/cuitabarea.hxx b/cui/source/inc/cuitabarea.hxx
index 79d1f33a7a74..c8235febabb7 100644
--- a/cui/source/inc/cuitabarea.hxx
+++ b/cui/source/inc/cuitabarea.hxx
@@ -193,6 +193,10 @@ private:
VclPtr<BitmapLB> m_pLbBitmap;
VclPtr<SvxXRectPreview> m_pCtlBitmapPreview;
+ VclPtr<VclFrame> m_pFlHatchBckgrd;
+ VclPtr<CheckBox> m_pCbxHatchBckgrd;
+ VclPtr<ColorLB> m_pLbHatchBckgrdColor;
+
VclPtr<VclBox> m_pBxBitmap;
VclPtr<VclFrame> m_pFlSize;
@@ -260,8 +264,10 @@ private:
DECL_LINK_TYPED(SelectDialogTypeHdl_Impl, ListBox&, void);
DECL_LINK_TYPED( ModifyColorHdl_Impl, ListBox&, void );
+ DECL_LINK_TYPED( ModifyHatchBckgrdColorHdl_Impl, ListBox&, void );
DECL_LINK_TYPED( ModifyGradientHdl_Impl, ListBox&, void );
DECL_LINK_TYPED( ModifyHatchingHdl_Impl, ListBox&, void );
+ DECL_LINK_TYPED( ToggleHatchBckgrdColorHdl_Impl, CheckBox&, void );
DECL_LINK_TYPED( ModifyBitmapHdl_Impl, ListBox&, void );
void ModifyStepCountHdl_Impl(void*);
@@ -467,10 +473,9 @@ class SvxHatchTabPage : public SvxTabPage
private:
VclPtr<MetricField> m_pMtrDistance;
VclPtr<MetricField> m_pMtrAngle;
- VclPtr<Slider> m_pSliderAngle;
+ VclPtr<SvxRectCtl> m_pCtlAngle;
VclPtr<ListBox> m_pLbLineType;
VclPtr<ColorLB> m_pLbLineColor;
- VclPtr<ColorLB> m_pLbBackgroundColor;
VclPtr<HatchingLB> m_pLbHatchings;
VclPtr<SvxXRectPreview> m_pCtlPreview;
VclPtr<PushButton> m_pBtnAdd;
@@ -501,8 +506,6 @@ private:
DECL_LINK_TYPED( ChangeHatchHdl_Impl, ListBox&, void );
DECL_LINK_TYPED( ModifiedEditHdl_Impl, Edit&, void );
DECL_LINK_TYPED( ModifiedListBoxHdl_Impl, ListBox&, void );
- DECL_LINK_TYPED( ModifiedBackgroundHdl_Impl, ListBox&, void );
- DECL_LINK_TYPED( ModifiedSliderHdl_Impl, Slider*, void );
void ModifiedHdl_Impl(void*);
DECL_LINK_TYPED( ClickAddHdl_Impl, Button*, void );
DECL_LINK_TYPED( ClickModifyHdl_Impl, Button*, void );
diff --git a/cui/source/tabpages/tparea.cxx b/cui/source/tabpages/tparea.cxx
index 29b34702068c..4b0faa319dcc 100644
--- a/cui/source/tabpages/tparea.cxx
+++ b/cui/source/tabpages/tparea.cxx
@@ -115,6 +115,10 @@ SvxAreaTabPage::SvxAreaTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs
get(m_pLbBitmap,"LB_BITMAP");
get(m_pCtlBitmapPreview,"CTL_BITMAP_PREVIEW");
+ get(m_pFlHatchBckgrd,"FL_HATCHCOLORS");
+ get(m_pLbHatchBckgrdColor,"LB_HATCHBCKGRDCOLOR");
+ get(m_pCbxHatchBckgrd,"CB_HATCHBCKGRD");
+
get(m_pBxBitmap,"boxBITMAP");
get(m_pFlSize,"FL_SIZE");
@@ -147,8 +151,11 @@ SvxAreaTabPage::SvxAreaTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs
//size required for any of the areas which might be selected
//later, so that there's sufficient space
VclContainer *pMainFrame = get<VclContainer>("mainframe");
+ Size aHatchSize(m_pFlHatchBckgrd->get_preferred_size());
Size aBitmapSize(m_pBxBitmap->get_preferred_size());
- Size aMainFrame(aBitmapSize.Width(),aBitmapSize.Height());
+ Size aMainFrame(
+ std::max(aHatchSize.Width(), aBitmapSize.Width()),
+ std::max(aHatchSize.Height(), aBitmapSize.Height()));
pMainFrame->set_width_request(aMainFrame.Width());
pMainFrame->set_height_request(aMainFrame.Height());
@@ -159,6 +166,9 @@ SvxAreaTabPage::SvxAreaTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs
m_pBxBitmap->Hide();
+ // Controls for Hatch-Background
+ m_pFlHatchBckgrd->Hide();
+
m_pTsbOriginal->EnableTriState( false );
// this page needs ExchangeSupport
@@ -190,6 +200,8 @@ SvxAreaTabPage::SvxAreaTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs
m_pCtlBitmapPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pLbColor->SetSelectHdl( LINK( this, SvxAreaTabPage, ModifyColorHdl_Impl ) );
+ m_pLbHatchBckgrdColor->SetSelectHdl( LINK( this, SvxAreaTabPage, ModifyHatchBckgrdColorHdl_Impl ) );
+ m_pCbxHatchBckgrd->SetToggleHdl( LINK( this, SvxAreaTabPage, ToggleHatchBckgrdColorHdl_Impl ) );
//UUUU
m_pBtnImport->SetClickHdl(LINK(this, SvxAreaTabPage, ClickImportHdl_Impl));
@@ -252,6 +264,9 @@ void SvxAreaTabPage::dispose()
m_pLbHatching.clear();
m_pLbBitmap.clear();
m_pCtlBitmapPreview.clear();
+ m_pFlHatchBckgrd.clear();
+ m_pCbxHatchBckgrd.clear();
+ m_pLbHatchBckgrdColor.clear();
m_pBxBitmap.clear();
m_pFlSize.clear();
m_pTsbOriginal.clear();
@@ -283,6 +298,8 @@ void SvxAreaTabPage::Construct()
{
// fill colortables / lists
m_pLbColor->Fill( m_pColorList );
+ m_pLbHatchBckgrdColor->Fill ( m_pColorList );
+
m_pLbGradient->Fill( m_pGradientList );
m_pLbHatching->Fill( m_pHatchingList );
m_pLbBitmap->Fill( m_pBitmapList );
@@ -324,6 +341,7 @@ void SvxAreaTabPage::ActivatePage( const SfxItemSet& rSet )
m_pLbBitmap->SelectEntryPos( 0 );
else
m_pLbBitmap->SelectEntryPos( _nPos );
+ ModifyBitmapHdl_Impl( *m_pLbBitmap );
}
if( *m_pnHatchingListState != ChangeType::NONE )
@@ -343,6 +361,8 @@ void SvxAreaTabPage::ActivatePage( const SfxItemSet& rSet )
else
m_pLbHatching->SelectEntryPos( _nPos );
ModifyHatchingHdl_Impl( *m_pLbHatching );
+
+ ModifyHatchBckgrdColorHdl_Impl( *m_pLbHatchBckgrdColor );
}
if( *m_pnGradientListState != ChangeType::NONE )
@@ -381,6 +401,20 @@ void SvxAreaTabPage::ActivatePage( const SfxItemSet& rSet )
m_pLbColor->SelectEntryPos( _nPos );
ModifyColorHdl_Impl( *m_pLbColor );
+
+ // Backgroundcolor of hatch
+ _nPos = m_pLbHatchBckgrdColor->GetSelectEntryPos();
+ m_pLbHatchBckgrdColor->Clear();
+ m_pLbHatchBckgrdColor->Fill( m_pColorList );
+ nCount = m_pLbHatchBckgrdColor->GetEntryCount();
+ if( nCount == 0 )
+ ; // This case should never occur
+ else if( nCount <= _nPos )
+ m_pLbHatchBckgrdColor->SelectEntryPos( 0 );
+ else
+ m_pLbHatchBckgrdColor->SelectEntryPos( _nPos );
+
+ ModifyHatchBckgrdColorHdl_Impl( *m_pLbHatchBckgrdColor );
}
// evaluate if any other Tabpage set another filltype
@@ -409,6 +443,7 @@ void SvxAreaTabPage::ActivatePage( const SfxItemSet& rSet )
case PT_COLOR:
m_pTypeLB->SelectEntryPos( drawing::FillStyle_SOLID );
m_pLbColor->SelectEntryPos( _nPos );
+ m_pLbHatchBckgrdColor->SelectEntryPos( _nPos );
ClickColorHdl_Impl();
break;
}
@@ -574,6 +609,21 @@ bool SvxAreaTabPage::FillItemSet( SfxItemSet* rAttrs )
bModified = true;
}
}
+ XFillBackgroundItem aItem ( m_pCbxHatchBckgrd->IsChecked() );
+ rAttrs->Put( aItem );
+ m_nPos = m_pLbHatchBckgrdColor->GetSelectEntryPos();
+ if( m_nPos != LISTBOX_ENTRY_NOTFOUND &&
+ m_pLbHatchBckgrdColor->IsValueChangedFromSaved() )
+ {
+ XFillColorItem aFillColorItem( m_pLbHatchBckgrdColor->GetSelectEntry(),
+ m_pLbHatchBckgrdColor->GetSelectEntryColor() );
+ pOld = GetOldItem( *rAttrs, XATTR_FILLCOLOR );
+ if ( !pOld || !( *static_cast<const XFillColorItem*>(pOld) == aFillColorItem ) )
+ {
+ rAttrs->Put( aFillColorItem );
+ bModified = true;
+ }
+ }
// NEW
if( (eSavedStyle != eStyle) &&
( bModified ||
@@ -883,6 +933,7 @@ void SvxAreaTabPage::Reset( const SfxItemSet* rAttrs )
XFillColorItem const& rColorItem(static_cast<const XFillColorItem&>(
rAttrs->Get(XATTR_FILLCOLOR)) );
m_pLbColor->SelectEntry( rColorItem.GetColorValue() );
+ m_pLbHatchBckgrdColor->SelectEntry( rColorItem.GetColorValue() );
}
SfxItemState const eGradState(rAttrs->GetItemState(XATTR_FILLGRADIENT));
@@ -918,6 +969,11 @@ void SvxAreaTabPage::Reset( const SfxItemSet* rAttrs )
m_pLbHatching->SelectEntryPos(0); // anything better than nothing
isMissingHatching = true;
}
+ if (SfxItemState::DONTCARE != rAttrs->GetItemState(XATTR_FILLBACKGROUND))
+ {
+ m_pCbxHatchBckgrd->Check( static_cast<const XFillBackgroundItem&>(
+ rAttrs->Get(XATTR_FILLBACKGROUND)).GetValue() );
+ }
SfxItemState const eBitmapState(rAttrs->GetItemState(XATTR_FILLBITMAP));
XFillBitmapItem const* pBitmapItem(nullptr);
@@ -951,6 +1007,7 @@ void SvxAreaTabPage::Reset( const SfxItemSet* rAttrs )
case drawing::FillStyle_HATCH:
ClickHatchingHdl_Impl();
+ ToggleHatchBckgrdColorHdl_Impl( *m_pCbxHatchBckgrd );
break;
case drawing::FillStyle_BITMAP:
@@ -1148,6 +1205,7 @@ void SvxAreaTabPage::Reset( const SfxItemSet* rAttrs )
m_pLbGradient->SaveValue();
if (!isMissingHatching)
m_pLbHatching->SaveValue();
+ m_pLbHatchBckgrdColor->SaveValue();
if (!isMissingBitmap)
m_pLbBitmap->SaveValue();
m_pTsbTile->SaveValue();
@@ -1168,6 +1226,7 @@ void SvxAreaTabPage::ChangesApplied()
m_pLbColor->SaveValue();
m_pLbGradient->SaveValue();
m_pLbHatching->SaveValue();
+ m_pLbHatchBckgrdColor->SaveValue();
m_pLbBitmap->SaveValue();
m_pTsbTile->SaveValue();
m_pTsbStretch->SaveValue();
@@ -1209,6 +1268,9 @@ void SvxAreaTabPage::ClickInvisibleHdl_Impl()
m_pCtlXRectPreview->Hide();
m_pCtlBitmapPreview->Hide();
+ // Controls for Hatch-Background
+ m_pFlHatchBckgrd->Hide();
+
m_rXFSet.Put( XFillStyleItem( drawing::FillStyle_NONE ) );
m_pCtlXRectPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlBitmapPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
@@ -1232,6 +1294,9 @@ void SvxAreaTabPage::ClickColorHdl_Impl()
m_pCtlXRectPreview->Show();
m_pCtlBitmapPreview->Hide();
+ // Controls for Hatch-Background
+ m_pFlHatchBckgrd->Hide();
+
ModifyColorHdl_Impl( *m_pLbColor );
}
@@ -1240,6 +1305,7 @@ IMPL_LINK_NOARG_TYPED(SvxAreaTabPage, ModifyColorHdl_Impl, ListBox&, void)
{
const SfxPoolItem* pPoolItem = nullptr;
sal_Int32 _nPos = m_pLbColor->GetSelectEntryPos();
+ m_pLbHatchBckgrdColor->SelectEntryPos( _nPos );
if( _nPos != LISTBOX_ENTRY_NOTFOUND )
{
m_rXFSet.Put( XFillStyleItem( drawing::FillStyle_SOLID ) );
@@ -1274,6 +1340,9 @@ void SvxAreaTabPage::ClickGradientHdl_Impl()
m_pCtlXRectPreview->Show();
m_pCtlBitmapPreview->Hide();
+ // Controls for Hatch-Background
+ m_pFlHatchBckgrd->Hide();
+
ModifyGradientHdl_Impl( *m_pLbGradient );
}
@@ -1322,12 +1391,19 @@ void SvxAreaTabPage::ClickHatchingHdl_Impl()
m_pBxBitmap->Hide();
+ // Controls for Hatch-Background
+ m_pFlHatchBckgrd->Show();
+ m_pCbxHatchBckgrd->Enable();
+ m_pLbHatchBckgrdColor->Enable();
+
ModifyHatchingHdl_Impl( *m_pLbHatching );
+ ModifyHatchBckgrdColorHdl_Impl( *m_pLbHatchBckgrdColor );
+ ToggleHatchBckgrdColorHdl_Impl( *m_pCbxHatchBckgrd );
}
+
IMPL_LINK_NOARG_TYPED(SvxAreaTabPage, ModifyHatchingHdl_Impl, ListBox&, void)
{
- // fill Hatch ItemSet
const SfxPoolItem* pPoolItem = nullptr;
sal_Int32 _nPos = m_pLbHatching->GetSelectEntryPos();
if( _nPos != LISTBOX_ENTRY_NOTFOUND )
@@ -1346,24 +1422,55 @@ IMPL_LINK_NOARG_TYPED(SvxAreaTabPage, ModifyHatchingHdl_Impl, ListBox&, void)
else
m_rXFSet.Put( XFillStyleItem( drawing::FillStyle_NONE ) );
- // fill Hatch background ItemSet
- XFillBackgroundItem aItem(static_cast<const XFillBackgroundItem&>(m_rOutAttrs.Get( XATTR_FILLBACKGROUND )));
- m_rXFSet.Put( aItem, XATTR_FILLBACKGROUND );
- if(aItem.GetValue())
+ m_pCtlXRectPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
+ m_pCtlXRectPreview->Invalidate();
+}
+
+
+IMPL_LINK_NOARG_TYPED(SvxAreaTabPage, ModifyHatchBckgrdColorHdl_Impl, ListBox&, void)
+{
+ const SfxPoolItem* pPoolItem = nullptr;
+ sal_Int32 _nPos = m_pLbHatchBckgrdColor->GetSelectEntryPos();
+ m_pLbColor->SelectEntryPos( _nPos );
+ if( _nPos != LISTBOX_ENTRY_NOTFOUND )
{
- if( SfxItemState::SET == m_rOutAttrs.GetItemState( GetWhich( XATTR_FILLCOLOR ), true, &pPoolItem ) )
- {
- Color aColor( static_cast<const XFillColorItem*>( pPoolItem )->GetColorValue() );
- m_rXFSet.Put( XFillColorItem( OUString(), aColor ) );
- }
- else
- m_rXFSet.Put( XFillStyleItem( drawing::FillStyle_NONE ) );
+ m_rXFSet.Put( XFillColorItem( OUString(), m_pLbHatchBckgrdColor->GetSelectEntryColor() ) );
+ }
+ else if( SfxItemState::SET == m_rOutAttrs.GetItemState( GetWhich( XATTR_FILLCOLOR ), true, &pPoolItem ) )
+ {
+ Color aColor( static_cast<const XFillColorItem*>( pPoolItem )->GetColorValue() );
+ m_rXFSet.Put( XFillColorItem( OUString(), aColor ) );
}
+ else
+ m_rXFSet.Put( XFillStyleItem( drawing::FillStyle_NONE ) );
m_pCtlXRectPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlXRectPreview->Invalidate();
}
+
+IMPL_LINK_NOARG_TYPED(SvxAreaTabPage, ToggleHatchBckgrdColorHdl_Impl, CheckBox&, void)
+{
+ // switch on/off backgroundcolor for hatches
+ m_pLbHatchBckgrdColor->Enable( m_pCbxHatchBckgrd->IsChecked() );
+
+ XFillBackgroundItem aItem( m_pCbxHatchBckgrd->IsChecked() );
+ m_rXFSet.Put ( aItem, XATTR_FILLBACKGROUND );
+
+ m_pCtlXRectPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
+ m_pCtlXRectPreview->Invalidate();
+
+ if( m_pLbHatchBckgrdColor->GetSelectEntryPos() == LISTBOX_ENTRY_NOTFOUND )
+ {
+ if ( SfxItemState::SET == m_rOutAttrs.GetItemState( XATTR_FILLCOLOR ) )//>= SfxItemState::DEFAULT )
+ {
+ XFillColorItem aColorItem( static_cast<const XFillColorItem&>(m_rOutAttrs.Get( XATTR_FILLCOLOR )) );
+ m_pLbHatchBckgrdColor->SelectEntry( aColorItem.GetColorValue() );
+ }
+ }
+}
+
+
void SvxAreaTabPage::ClickBitmapHdl_Impl()
{
m_pFillLB->Show();
@@ -1398,6 +1505,9 @@ void SvxAreaTabPage::ClickBitmapHdl_Impl()
if (!m_pRbtRow->IsChecked() && !m_pRbtColumn->IsChecked())
m_pRbtRow->Check();
+ // Controls for Hatch-Background
+ m_pFlHatchBckgrd->Hide();
+
m_pBxBitmap->Show();
ModifyBitmapHdl_Impl( *m_pLbBitmap );
diff --git a/cui/source/tabpages/tphatch.cxx b/cui/source/tabpages/tphatch.cxx
index ac5af61e9b08..f5d863ea94fb 100644
--- a/cui/source/tabpages/tphatch.cxx
+++ b/cui/source/tabpages/tphatch.cxx
@@ -54,6 +54,7 @@ SvxHatchTabPage::SvxHatchTabPage
SvxTabPage ( pParent, "HatchPage", "cui/ui/hatchpage.ui", rInAttrs ),
m_rOutAttrs ( rInAttrs ),
+
m_pnHatchingListState ( nullptr ),
m_pnColorListState ( nullptr ),
m_pPageType ( nullptr ),
@@ -69,10 +70,10 @@ SvxHatchTabPage::SvxHatchTabPage
{
get(m_pMtrDistance, "distancemtr");
get(m_pMtrAngle, "anglemtr");
- get(m_pSliderAngle, "angleslider");
+ get(m_pCtlAngle, "anglectl");
+ m_pCtlAngle->SetCS(CS_ANGLE);
get(m_pLbLineType, "linetypelb");
get(m_pLbLineColor, "linecolorlb");
- get(m_pLbBackgroundColor, "backgroundcolorlb");
get(m_pLbHatchings, "hatchingslb");
Size aSize = getDrawListBoxOptimalSize(this);
m_pLbHatchings->set_width_request(aSize.Width());
@@ -108,9 +109,6 @@ SvxHatchTabPage::SvxHatchTabPage
DBG_ASSERT( pPool, "Wo ist der Pool?" );
m_ePoolUnit = pPool->GetMetric( SID_ATTR_FILL_HATCH );
- // setting the slider range
- m_pSliderAngle->SetRange(Range(0,359));
-
// setting the output device
m_rXFSet.Put( m_aXFStyleItem );
m_rXFSet.Put( m_aXHatchItem );
@@ -122,10 +120,8 @@ SvxHatchTabPage::SvxHatchTabPage
Link<ListBox&,void> aLink2 = LINK( this, SvxHatchTabPage, ModifiedListBoxHdl_Impl );
m_pMtrDistance->SetModifyHdl( aLink );
m_pMtrAngle->SetModifyHdl( aLink );
- m_pSliderAngle->SetSlideHdl( LINK( this, SvxHatchTabPage, ModifiedSliderHdl_Impl ) );
m_pLbLineType->SetSelectHdl( aLink2 );
m_pLbLineColor->SetSelectHdl( aLink2 );
- m_pLbBackgroundColor->SetSelectHdl( LINK( this, SvxHatchTabPage, ModifiedBackgroundHdl_Impl ) );
m_pBtnAdd->SetClickHdl( LINK( this, SvxHatchTabPage, ClickAddHdl_Impl ) );
m_pBtnModify->SetClickHdl(
@@ -149,10 +145,9 @@ void SvxHatchTabPage::dispose()
{
m_pMtrDistance.clear();
m_pMtrAngle.clear();
- m_pSliderAngle.clear();
+ m_pCtlAngle.clear();
m_pLbLineType.clear();
m_pLbLineColor.clear();
- m_pLbBackgroundColor.clear();
m_pLbHatchings.clear();
m_pCtlPreview.clear();
m_pBtnAdd.clear();
@@ -167,7 +162,6 @@ void SvxHatchTabPage::dispose()
void SvxHatchTabPage::Construct()
{
m_pLbLineColor->Fill( m_pColorList );
- m_pLbBackgroundColor->Fill( m_pColorList );
m_pLbHatchings->Fill( m_pHatchingList );
}
@@ -234,15 +228,8 @@ void SvxHatchTabPage::ActivatePage( const SfxItemSet& rSet )
}
}
- XFillBackgroundItem aBckItem( static_cast<const XFillBackgroundItem&>(rSet.Get(XATTR_FILLBACKGROUND)));
- XFillColorItem aColorItem( static_cast<const XFillColorItem&>(rSet.Get(XATTR_FILLCOLOR)) );
- Color aColor(COL_WHITE);
- if(aBckItem.GetValue())
- aColor = aColorItem.GetColorValue();
- m_pLbBackgroundColor->SelectEntry(aColor);
- m_rXFSet.Put( aBckItem );
- m_rXFSet.Put( aColorItem );
-
+ m_rXFSet.Put( static_cast<const XFillColorItem&>( rSet.Get(XATTR_FILLCOLOR)) );
+ m_rXFSet.Put( static_cast<const XFillBackgroundItem&>(rSet.Get(XATTR_FILLBACKGROUND)) );
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlPreview->Invalidate();
}
@@ -335,19 +322,6 @@ bool SvxHatchTabPage::FillItemSet( SfxItemSet* rSet )
DBG_ASSERT( pXHatch, "XHatch konnte nicht erzeugt werden" );
rSet->Put( XFillStyleItem( drawing::FillStyle_HATCH ) );
rSet->Put( XFillHatchItem( aString, *pXHatch ) );
-
- sal_uInt32 nPosBckColor = m_pLbBackgroundColor->GetSelectEntryPos();
- XFillBackgroundItem aItem( m_pLbBackgroundColor->GetSelectEntryColor() != COL_WHITE );
- rSet->Put( aItem , XATTR_FILLBACKGROUND );
- if(aItem.GetValue())
- {
- OUString aBckColorString;
- if( nPosBckColor != LISTBOX_ENTRY_NOTFOUND )
- aBckColorString = m_pLbBackgroundColor->GetSelectEntry();
- else
- aBckColorString = OUString();
- rSet->Put( XFillColorItem( aBckColorString, m_pLbBackgroundColor->GetSelectEntryColor() ) );
- }
}
}
return true;
@@ -390,25 +364,27 @@ IMPL_LINK_TYPED( SvxHatchTabPage, ModifiedListBoxHdl_Impl, ListBox&, rListBox, v
{
ModifiedHdl_Impl(&rListBox);
}
-IMPL_LINK_TYPED( SvxHatchTabPage, ModifiedBackgroundHdl_Impl, ListBox&, rListBox, void )
-{
- ModifiedHdl_Impl(&rListBox);
-}
IMPL_LINK_TYPED( SvxHatchTabPage, ModifiedEditHdl_Impl, Edit&, rEdit, void )
{
ModifiedHdl_Impl(&rEdit);
}
-IMPL_LINK_TYPED( SvxHatchTabPage, ModifiedSliderHdl_Impl, Slider*, rSlider, void )
-{
- ModifiedHdl_Impl(rSlider);
-}
void SvxHatchTabPage::ModifiedHdl_Impl( void* p )
{
if( p == m_pMtrAngle )
- m_pSliderAngle->SetThumbPos( m_pMtrAngle->GetValue() );
-
- if( p == m_pSliderAngle )
- m_pMtrAngle->SetValue( m_pSliderAngle->GetThumbPos() );
+ {
+ switch( m_pMtrAngle->GetValue() )
+ {
+ case 135: m_pCtlAngle->SetActualRP( RP_LT ); break;
+ case 90: m_pCtlAngle->SetActualRP( RP_MT ); break;
+ case 45: m_pCtlAngle->SetActualRP( RP_RT ); break;
+ case 180: m_pCtlAngle->SetActualRP( RP_LM ); break;
+ case 0: m_pCtlAngle->SetActualRP( RP_RM ); break;
+ case 225: m_pCtlAngle->SetActualRP( RP_LB ); break;
+ case 270: m_pCtlAngle->SetActualRP( RP_MB ); break;
+ case 315: m_pCtlAngle->SetActualRP( RP_RB ); break;
+ default: m_pCtlAngle->SetActualRP( RP_MM ); break;
+ }
+ }
XHatch aXHatch( m_pLbLineColor->GetSelectEntryColor(),
(css::drawing::HatchStyle) m_pLbLineType->GetSelectEntryPos(),
@@ -416,16 +392,12 @@ void SvxHatchTabPage::ModifiedHdl_Impl( void* p )
static_cast<long>(m_pMtrAngle->GetValue() * 10) );
m_rXFSet.Put( XFillHatchItem( OUString(), aXHatch ) );
-
- XFillBackgroundItem aItem( m_pLbBackgroundColor->GetSelectEntryColor() != COL_WHITE );
- m_rXFSet.Put( aItem, XATTR_FILLBACKGROUND );
- if(aItem.GetValue())
- m_rXFSet.Put( XFillColorItem( OUString(), m_pLbBackgroundColor->GetSelectEntryColor() ) );
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlPreview->Invalidate();
}
+
IMPL_LINK_NOARG_TYPED(SvxHatchTabPage, ChangeHatchHdl_Impl, ListBox&, void)
{
std::unique_ptr<XHatch> pHatch;
@@ -466,9 +438,20 @@ IMPL_LINK_NOARG_TYPED(SvxHatchTabPage, ChangeHatchHdl_Impl, ListBox&, void)
m_pLbLineColor->SelectEntry( pHatch->GetColor() );
}
SetMetricValue( *m_pMtrDistance, pHatch->GetDistance(), m_ePoolUnit );
- long mHatchAngle = pHatch->GetAngle() / 10;
- m_pMtrAngle->SetValue( mHatchAngle );
- m_pSliderAngle->SetThumbPos( mHatchAngle );
+ m_pMtrAngle->SetValue( pHatch->GetAngle() / 10 );
+
+ switch( m_pMtrAngle->GetValue() )
+ {
+ case 135: m_pCtlAngle->SetActualRP( RP_LT ); break;
+ case 90: m_pCtlAngle->SetActualRP( RP_MT ); break;
+ case 45: m_pCtlAngle->SetActualRP( RP_RT ); break;
+ case 180: m_pCtlAngle->SetActualRP( RP_LM ); break;
+ case 0: m_pCtlAngle->SetActualRP( RP_RM ); break;
+ case 225: m_pCtlAngle->SetActualRP( RP_LB ); break;
+ case 270: m_pCtlAngle->SetActualRP( RP_MB ); break;
+ case 315: m_pCtlAngle->SetActualRP( RP_RB ); break;
+ default: m_pCtlAngle->SetActualRP( RP_MM ); break;
+ }
// fill ItemSet and pass it on to m_pCtlPreview
m_rXFSet.Put( XFillHatchItem( OUString(), *pHatch ) );
@@ -481,10 +464,10 @@ IMPL_LINK_NOARG_TYPED(SvxHatchTabPage, ChangeHatchHdl_Impl, ListBox&, void)
m_pMtrAngle->SaveValue();
m_pLbLineType->SaveValue();
m_pLbLineColor->SaveValue();
- m_pLbBackgroundColor->SaveValue();
m_pLbHatchings->SaveValue();
}
+
IMPL_LINK_NOARG_TYPED(SvxHatchTabPage, ClickAddHdl_Impl, Button*, void)
{
OUString aNewName( SVX_RES( RID_SVXSTR_HATCH ) );
@@ -630,7 +613,6 @@ IMPL_LINK_NOARG_TYPED(SvxHatchTabPage, ClickModifyHdl_Impl, Button*, void)
m_pMtrAngle->SaveValue();
m_pLbLineType->SaveValue();
m_pLbLineColor->SaveValue();
- m_pLbBackgroundColor->SaveValue();
m_pLbHatchings->SaveValue();
*m_pnHatchingListState |= ChangeType::MODIFIED;
@@ -837,10 +819,28 @@ IMPL_LINK_NOARG_TYPED(SvxHatchTabPage, ClickSaveHdl_Impl, Button*, void)
}
}
-void SvxHatchTabPage::PointChanged( vcl::Window*, RECT_POINT )
+
+void SvxHatchTabPage::PointChanged( vcl::Window* pWindow, RECT_POINT eRcPt )
{
+ if( pWindow == m_pCtlAngle )
+ {
+ switch( eRcPt )
+ {
+ case RP_LT: m_pMtrAngle->SetValue( 135 ); break;
+ case RP_MT: m_pMtrAngle->SetValue( 90 ); break;
+ case RP_RT: m_pMtrAngle->SetValue( 45 ); break;
+ case RP_LM: m_pMtrAngle->SetValue( 180 ); break;
+ case RP_RM: m_pMtrAngle->SetValue( 0 ); break;
+ case RP_LB: m_pMtrAngle->SetValue( 225 ); break;
+ case RP_MB: m_pMtrAngle->SetValue( 270 ); break;
+ case RP_RB: m_pMtrAngle->SetValue( 315 ); break;
+ case RP_MM: break;
+ }
+ ModifiedHdl_Impl( this );
+ }
}
+
void SvxHatchTabPage::DataChanged( const DataChangedEvent& rDCEvt )
{
if ( ( rDCEvt.GetType() == DataChangedEventType::SETTINGS ) && ( rDCEvt.GetFlags() & AllSettingsFlags::STYLE ) )