weld SvxAreaTabPage
which itself has 5 sub tab pages
Change-Id: If71e91248b5771af4845ad6dba997ac4c7841b5d
Reviewed-on: https://gerrit.libreoffice.org/56112
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/Repository.mk b/Repository.mk
index 5f62c27..6787c1c 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -66,8 +66,7 @@
svdemo \
fftester \
svptest \
svpclient \
pixelctl ) \
svpclient ) \
$(if $(filter LINUX %BSD SOLARIS,$(OS)), tilebench) \
$(if $(filter LINUX MACOSX SOLARIS WNT %BSD,$(OS)),icontest \
outdevgrind) \
diff --git a/cui/source/inc/backgrnd.hxx b/cui/source/inc/backgrnd.hxx
index b08e9b92..078e78f 100644
--- a/cui/source/inc/backgrnd.hxx
+++ b/cui/source/inc/backgrnd.hxx
@@ -144,12 +144,12 @@
class SvxBkgTabPage : public SvxAreaTabPage
{
VclPtr<ListBox> m_pTblLBox;
std::unique_ptr<weld::ComboBoxText> m_xTblLBox;
bool bHighlighting : 1;
public:
using SvxAreaTabPage::DeactivatePage;
SvxBkgTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
SvxBkgTabPage(TabPageParent pParent, const SfxItemSet& rInAttrs);
virtual ~SvxBkgTabPage() override;
virtual void dispose() override;
diff --git a/cui/source/inc/cuitabarea.hxx b/cui/source/inc/cuitabarea.hxx
index 119c466a..de7fd90c 100644
--- a/cui/source/inc/cuitabarea.hxx
+++ b/cui/source/inc/cuitabarea.hxx
@@ -37,6 +37,7 @@
#define NO_BUTTON_SELECTED -1
class ColorListBox;
class SdrModel;
class SvxBitmapCtl;
class SvxColorListBox;
@@ -46,37 +47,37 @@
{
private:
sal_Int32 mnCurrentButton;
std::vector< VclPtr<PushButton> > maButtonList;
std::map< VclPtr<PushButton>, sal_Int32 > maButtonToPos;
std::vector<weld::ToggleButton*> maButtonList;
std::map<weld::ToggleButton*, sal_Int32 > maButtonToPos;
void SelectButtonImpl( sal_Int32 nPos )
{
if(mnCurrentButton != NO_BUTTON_SELECTED)
{
maButtonList[mnCurrentButton]->SetPressed(false);
maButtonList[mnCurrentButton]->set_active(false);
}
mnCurrentButton = nPos;
maButtonList[mnCurrentButton]->SetPressed(true);
maButtonList[mnCurrentButton]->set_active(true);
};
public:
ButtonBox()
{
mnCurrentButton = NO_BUTTON_SELECTED;
};
void AddButton(VclPtr<PushButton> pButton)
void AddButton(weld::ToggleButton* pButton)
{
maButtonList.push_back(pButton);
maButtonToPos.insert( std::make_pair(pButton, maButtonList.size() - 1) );
}
sal_Int32 GetCurrentButtonPos() { return mnCurrentButton; }
sal_Int32 GetButtonPos( VclPtr<PushButton> pButton )
sal_Int32 GetButtonPos(weld::ToggleButton* pButton)
{
std::map< VclPtr<PushButton>, sal_Int32 >::const_iterator aBtnPos = maButtonToPos.find(pButton);
std::map<weld::ToggleButton*, sal_Int32>::const_iterator aBtnPos = maButtonToPos.find(pButton);
if(aBtnPos != maButtonToPos.end())
return aBtnPos->second;
else
return -1;
}
void SelectButton( VclPtr<PushButton> pButton)
void SelectButton(weld::ToggleButton* pButton)
{
sal_Int32 nPos = GetButtonPos(pButton);
if(nPos != -1)
@@ -224,13 +225,6 @@
static const sal_uInt16 pAreaRanges[];
private:
ScopedVclPtr<SfxTabPage> m_pFillTabPage;
VclPtr<VclBox> m_pFillTab;
VclPtr<PushButton> m_pBtnNone;
VclPtr<PushButton> m_pBtnColor;
VclPtr<PushButton> m_pBtnGradient;
VclPtr<PushButton> m_pBtnHatch;
VclPtr<PushButton> m_pBtnBitmap;
VclPtr<PushButton> m_pBtnPattern;
ButtonBox maBox;
XColorListRef m_pColorList;
@@ -254,7 +248,17 @@
XFillAttrSetItem m_aXFillAttr;
SfxItemSet& m_rXFSet;
DECL_LINK(SelectFillTypeHdl_Impl, Button*, void);
protected:
std::unique_ptr<weld::Container> m_xFillTab;
std::unique_ptr<weld::ToggleButton> m_xBtnNone;
std::unique_ptr<weld::ToggleButton> m_xBtnColor;
std::unique_ptr<weld::ToggleButton> m_xBtnGradient;
std::unique_ptr<weld::ToggleButton> m_xBtnHatch;
std::unique_ptr<weld::ToggleButton> m_xBtnBitmap;
std::unique_ptr<weld::ToggleButton> m_xBtnPattern;
private:
DECL_LINK(SelectFillTypeHdl_Impl, weld::ToggleButton&, void);
template< typename TabPage >
bool FillItemSet_Impl( SfxItemSet* );
@@ -262,10 +266,11 @@
void Reset_Impl( const SfxItemSet* );
template< typename TabPage >
DeactivateRC DeactivatePage_Impl( SfxItemSet* pSet );
public:
using TabPage::DeactivatePage;
SvxAreaTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
SvxAreaTabPage(TabPageParent pParent, const SfxItemSet& rInAttrs);
virtual ~SvxAreaTabPage() override;
virtual void dispose() override;
@@ -356,25 +361,6 @@
using TabPage::DeactivatePage;
private:
VclPtr<ListBox> m_pLbGradientType;
VclPtr<FixedText> m_pFtCenter;
VclPtr<MetricField> m_pMtrCenterX;
VclPtr<MetricField> m_pMtrCenterY;
VclPtr<FixedText> m_pFtAngle;
VclPtr<MetricField> m_pMtrAngle;
VclPtr<MetricField> m_pMtrBorder;
VclPtr<Slider> m_pSliderBorder;
VclPtr<SvxColorListBox> m_pLbColorFrom;
VclPtr<MetricField> m_pMtrColorFrom;
VclPtr<SvxColorListBox> m_pLbColorTo;
VclPtr<MetricField> m_pMtrColorTo;
VclPtr<SvxPresetListBox> m_pGradientLB;
VclPtr<NumericField> m_pMtrIncrement;
VclPtr<CheckBox> m_pCbIncrement;
VclPtr<Slider> m_pSliderIncrement;
VclPtr<SvxXRectPreview> m_pCtlPreview;
VclPtr<PushButton> m_pBtnAdd;
VclPtr<PushButton> m_pBtnModify;
const SfxItemSet& m_rOutAttrs;
XColorListRef m_pColorList;
@@ -386,24 +372,47 @@
XFillAttrSetItem m_aXFillAttr;
SfxItemSet& m_rXFSet;
DECL_LINK( ClickAddHdl_Impl, Button*, void );
DECL_LINK( ClickModifyHdl_Impl, Button*, void );
DECL_LINK( ChangeGradientHdl, ValueSet*, void );
XRectPreview m_aCtlPreview;
std::unique_ptr<weld::ComboBoxText> m_xLbGradientType;
std::unique_ptr<weld::Label> m_xFtCenter;
std::unique_ptr<weld::MetricSpinButton> m_xMtrCenterX;
std::unique_ptr<weld::MetricSpinButton> m_xMtrCenterY;
std::unique_ptr<weld::Label> m_xFtAngle;
std::unique_ptr<weld::MetricSpinButton> m_xMtrAngle;
std::unique_ptr<weld::MetricSpinButton> m_xMtrBorder;
std::unique_ptr<weld::Scale> m_xSliderBorder;
std::unique_ptr<ColorListBox> m_xLbColorFrom;
std::unique_ptr<weld::MetricSpinButton> m_xMtrColorFrom;
std::unique_ptr<ColorListBox> m_xLbColorTo;
std::unique_ptr<weld::MetricSpinButton> m_xMtrColorTo;
std::unique_ptr<PresetListBox> m_xGradientLB;
std::unique_ptr<weld::SpinButton> m_xMtrIncrement;
std::unique_ptr<weld::CheckButton> m_xCbIncrement;
std::unique_ptr<weld::Scale> m_xSliderIncrement;
std::unique_ptr<weld::Button> m_xBtnAdd;
std::unique_ptr<weld::Button> m_xBtnModify;
std::unique_ptr<weld::CustomWeld> m_xCtlPreview;
std::unique_ptr<weld::CustomWeld> m_xGradientLBWin;
DECL_LINK( ClickAddHdl_Impl, weld::Button&, void );
DECL_LINK( ClickModifyHdl_Impl, weld::Button&, void );
DECL_LINK( ChangeGradientHdl, SvtValueSet*, void );
void ChangeGradientHdl_Impl();
DECL_LINK( ClickRenameHdl_Impl, SvxPresetListBox*, void );
DECL_LINK( ClickDeleteHdl_Impl, SvxPresetListBox*, void );
DECL_LINK( ModifiedEditHdl_Impl, Edit&, void );
DECL_LINK( ModifiedColorListBoxHdl_Impl, SvxColorListBox&, void );
DECL_LINK( ModifiedListBoxHdl_Impl, ListBox&, void );
DECL_LINK( ChangeAutoStepHdl_Impl, CheckBox&, void );
DECL_LINK( ModifiedSliderHdl_Impl, Slider*, void );
DECL_LINK( ClickRenameHdl_Impl, PresetListBox*, void );
DECL_LINK( ClickDeleteHdl_Impl, PresetListBox*, void );
DECL_LINK( ModifiedEditHdl_Impl, weld::SpinButton&, void );
DECL_LINK( ModifiedMetricHdl_Impl, weld::MetricSpinButton&, void );
DECL_LINK( ModifiedColorListBoxHdl_Impl, ColorListBox&, void );
DECL_LINK( ModifiedListBoxHdl_Impl, weld::ComboBoxText&, void );
DECL_LINK( ChangeAutoStepHdl_Impl, weld::ToggleButton&, void );
DECL_LINK( ModifiedSliderHdl_Impl, weld::Scale&, void );
void ModifiedHdl_Impl(void const *);
void SetControlState_Impl( css::awt::GradientStyle eXGS );
sal_Int32 SearchGradientList(const OUString& rGradientName);
public:
SvxGradientTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
SvxGradientTabPage(TabPageParent pParent, const SfxItemSet& rInAttrs);
virtual ~SvxGradientTabPage() override;
virtual void dispose() override;
@@ -431,18 +440,6 @@
using TabPage::DeactivatePage;
private:
VclPtr<MetricField> m_pMtrDistance;
VclPtr<MetricField> m_pMtrAngle;
VclPtr<Slider> m_pSliderAngle;
VclPtr<ListBox> m_pLbLineType;
VclPtr<SvxColorListBox> m_pLbLineColor;
VclPtr<CheckBox> m_pCbBackgroundColor;
VclPtr<SvxColorListBox> m_pLbBackgroundColor;
VclPtr<SvxPresetListBox> m_pHatchLB;
VclPtr<SvxXRectPreview> m_pCtlPreview;
VclPtr<PushButton> m_pBtnAdd;
VclPtr<PushButton> m_pBtnModify;
const SfxItemSet& m_rOutAttrs;
XColorListRef m_pColorList;
@@ -456,24 +453,38 @@
MapUnit m_ePoolUnit;
DECL_LINK( ChangeHatchHdl, ValueSet*, void );
XRectPreview m_aCtlPreview;
std::unique_ptr<weld::MetricSpinButton> m_xMtrDistance;
std::unique_ptr<weld::MetricSpinButton> m_xMtrAngle;
std::unique_ptr<weld::Scale> m_xSliderAngle;
std::unique_ptr<weld::ComboBoxText> m_xLbLineType;
std::unique_ptr<ColorListBox> m_xLbLineColor;
std::unique_ptr<weld::CheckButton> m_xCbBackgroundColor;
std::unique_ptr<ColorListBox> m_xLbBackgroundColor;
std::unique_ptr<PresetListBox> m_xHatchLB;
std::unique_ptr<weld::Button> m_xBtnAdd;
std::unique_ptr<weld::Button> m_xBtnModify;
std::unique_ptr<weld::CustomWeld> m_xHatchLBWin;
std::unique_ptr<weld::CustomWeld> m_xCtlPreview;
DECL_LINK(ChangeHatchHdl, SvtValueSet*, void);
void ChangeHatchHdl_Impl();
DECL_LINK( ModifiedEditHdl_Impl, Edit&, void );
DECL_LINK( ModifiedListBoxHdl_Impl, ListBox&, void );
DECL_LINK( ModifiedColorListBoxHdl_Impl, SvxColorListBox&, void );
DECL_LINK( ToggleHatchBackgroundColor_Impl, CheckBox&, void );
DECL_LINK( ModifiedBackgroundHdl_Impl, SvxColorListBox&, void );
DECL_LINK( ModifiedSliderHdl_Impl, Slider*, void );
DECL_LINK( ModifiedEditHdl_Impl, weld::MetricSpinButton&, void );
DECL_LINK( ModifiedListBoxHdl_Impl, weld::ComboBoxText&, void );
DECL_LINK( ModifiedColorListBoxHdl_Impl, ColorListBox&, void );
DECL_LINK( ToggleHatchBackgroundColor_Impl, weld::ToggleButton&, void );
DECL_LINK( ModifiedBackgroundHdl_Impl, ColorListBox&, void );
DECL_LINK( ModifiedSliderHdl_Impl, weld::Scale&, void );
void ModifiedHdl_Impl(void const *);
DECL_LINK( ClickAddHdl_Impl, Button*, void );
DECL_LINK( ClickModifyHdl_Impl, Button*, void );
DECL_LINK( ClickRenameHdl_Impl, SvxPresetListBox*, void );
DECL_LINK( ClickDeleteHdl_Impl, SvxPresetListBox*, void );
DECL_LINK( ClickAddHdl_Impl, weld::Button&, void );
DECL_LINK( ClickModifyHdl_Impl, weld::Button&, void );
DECL_LINK( ClickRenameHdl_Impl, PresetListBox*, void );
DECL_LINK( ClickDeleteHdl_Impl, PresetListBox*, void );
sal_Int32 SearchHatchList(const OUString& rHatchName);
public:
SvxHatchTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
SvxHatchTabPage(TabPageParent pParent, const SfxItemSet& rInAttrs);
virtual ~SvxHatchTabPage() override;
virtual void dispose() override;
@@ -508,23 +519,6 @@
static const sal_uInt16 pBitmapRanges[];
private:
VclPtr<SvxPresetListBox> m_pBitmapLB;
VclPtr<ListBox> m_pBitmapStyleLB;
VclPtr<VclBox> m_pSizeBox;
VclPtr<CheckBox> m_pTsbScale;
VclPtr<MetricField> m_pBitmapWidth;
VclPtr<MetricField> m_pBitmapHeight;
VclPtr<VclBox> m_pPositionBox;
VclPtr<ListBox> m_pPositionLB;
VclPtr<VclBox> m_pPositionOffBox;
VclPtr<MetricField> m_pPositionOffX;
VclPtr<MetricField> m_pPositionOffY;
VclPtr<VclBox> m_pTileOffBox;
VclPtr<ListBox> m_pTileOffLB;
VclPtr<MetricField> m_pTileOffset;
VclPtr<PushButton> m_pBtnImport;
VclPtr<SvxXRectPreview> m_pCtlBitmapPreview;
const SfxItemSet& m_rOutAttrs;
XBitmapListRef m_pBitmapList;
@@ -542,22 +536,42 @@
Size rBitmapSize;
Size rFilledSize;
Size rZoomedSize;
DECL_LINK( ModifyBitmapHdl, ValueSet*, void );
DECL_LINK( ClickScaleHdl, Button*, void );
DECL_LINK( ModifyBitmapStyleHdl, ListBox&, void );
DECL_LINK( ModifyBitmapSizeHdl, Edit&, void );
DECL_LINK( ModifyBitmapPositionHdl, ListBox&, void );
DECL_LINK( ModifyPositionOffsetHdl, Edit&, void );
DECL_LINK( ModifyTileOffsetHdl, Edit&, void );
DECL_LINK( ClickRenameHdl, SvxPresetListBox*, void );
DECL_LINK( ClickDeleteHdl, SvxPresetListBox*, void );
DECL_LINK( ClickImportHdl, Button*, void );
XRectPreview m_aCtlBitmapPreview;
std::unique_ptr<PresetListBox> m_xBitmapLB;
std::unique_ptr<weld::ComboBoxText> m_xBitmapStyleLB;
std::unique_ptr<weld::Container> m_xSizeBox;
std::unique_ptr<weld::CheckButton> m_xTsbScale;
std::unique_ptr<weld::MetricSpinButton> m_xBitmapWidth;
std::unique_ptr<weld::MetricSpinButton> m_xBitmapHeight;
std::unique_ptr<weld::Container> m_xPositionBox;
std::unique_ptr<weld::ComboBoxText> m_xPositionLB;
std::unique_ptr<weld::Container> m_xPositionOffBox;
std::unique_ptr<weld::MetricSpinButton> m_xPositionOffX;
std::unique_ptr<weld::MetricSpinButton> m_xPositionOffY;
std::unique_ptr<weld::Container> m_xTileOffBox;
std::unique_ptr<weld::ComboBoxText> m_xTileOffLB;
std::unique_ptr<weld::MetricSpinButton> m_xTileOffset;
std::unique_ptr<weld::Button> m_xBtnImport;
std::unique_ptr<weld::CustomWeld> m_xCtlBitmapPreview;
std::unique_ptr<weld::CustomWeld> m_xBitmapLBWin;
DECL_LINK( ModifyBitmapHdl, SvtValueSet*, void );
DECL_LINK( ClickScaleHdl, weld::Button&, void );
DECL_LINK( ModifyBitmapStyleHdl, weld::ComboBoxText&, void );
DECL_LINK( ModifyBitmapSizeHdl, weld::MetricSpinButton&, void );
DECL_LINK( ModifyBitmapPositionHdl, weld::ComboBoxText&, void );
DECL_LINK( ModifyPositionOffsetHdl, weld::MetricSpinButton&, void );
DECL_LINK( ModifyTileOffsetHdl, weld::MetricSpinButton&, void );
DECL_LINK( ClickRenameHdl, PresetListBox*, void );
DECL_LINK( ClickDeleteHdl, PresetListBox*, void );
DECL_LINK( ClickImportHdl, weld::Button&, void );
void ClickBitmapHdl_Impl();
void CalculateBitmapPresetSize();
sal_Int32 SearchBitmapList(const OUString& rBitmapName);
public:
SvxBitmapTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
SvxBitmapTabPage(TabPageParent pParent, const SfxItemSet& rInAttrs);
virtual ~SvxBitmapTabPage() override;
virtual void dispose() override;
@@ -584,16 +598,6 @@
using TabPage::DeactivatePage;
private:
VclPtr<SvxPixelCtl> m_pCtlPixel;
VclPtr<SvxColorListBox> m_pLbColor;
VclPtr<SvxColorListBox> m_pLbBackgroundColor;
VclPtr<SvxPresetListBox> m_pPatternLB;
VclPtr<SvxXRectPreview> m_pCtlPreview;
VclPtr<PushButton> m_pBtnAdd;
VclPtr<PushButton> m_pBtnModify;
std::unique_ptr<SvxBitmapCtl> m_pBitmapCtl;
const SfxItemSet& m_rOutAttrs;
XColorListRef m_pColorList;
@@ -605,17 +609,29 @@
XFillAttrSetItem m_aXFillAttr;
SfxItemSet& m_rXFSet;
DECL_LINK( ClickAddHdl_Impl, Button*, void );
DECL_LINK( ClickModifyHdl_Impl, Button*, void );
DECL_LINK( ChangePatternHdl_Impl, ValueSet*, void );
DECL_LINK( ChangeColorHdl_Impl, SvxColorListBox&, void );
DECL_LINK( ClickRenameHdl_Impl, SvxPresetListBox*, void );
DECL_LINK( ClickDeleteHdl_Impl, SvxPresetListBox*, void );
SvxPixelCtl m_aCtlPixel;
XRectPreview m_aCtlPreview;
std::unique_ptr<ColorListBox> m_xLbColor;
std::unique_ptr<ColorListBox> m_xLbBackgroundColor;
std::unique_ptr<PresetListBox> m_xPatternLB;
std::unique_ptr<weld::Button> m_xBtnAdd;
std::unique_ptr<weld::Button> m_xBtnModify;
std::unique_ptr<weld::CustomWeld> m_xCtlPixel;
std::unique_ptr<weld::CustomWeld> m_xCtlPreview;
std::unique_ptr<weld::CustomWeld> m_xPatternLBWin;
std::unique_ptr<SvxBitmapCtl> m_xBitmapCtl;
DECL_LINK( ClickAddHdl_Impl, weld::Button&, void );
DECL_LINK( ClickModifyHdl_Impl, weld::Button&, void );
DECL_LINK( ChangePatternHdl_Impl, SvtValueSet*, void );
DECL_LINK( ChangeColorHdl_Impl, ColorListBox&, void );
DECL_LINK( ClickRenameHdl_Impl, PresetListBox*, void );
DECL_LINK( ClickDeleteHdl_Impl, PresetListBox*, void );
sal_Int32 SearchPatternList(const OUString& rPatternName);
public:
SvxPatternTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
SvxPatternTabPage(TabPageParent pParent, const SfxItemSet& rInAttrs);
virtual ~SvxPatternTabPage() override;
virtual void dispose() override;
diff --git a/cui/source/tabpages/backgrnd.cxx b/cui/source/tabpages/backgrnd.cxx
index 9d9fa98..c6c325b 100644
--- a/cui/source/tabpages/backgrnd.cxx
+++ b/cui/source/tabpages/backgrnd.cxx
@@ -1443,16 +1443,14 @@
}
}
SvxBkgTabPage::SvxBkgTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs ) :
SvxAreaTabPage( pParent, rInAttrs ),
m_pTblLBox(nullptr),
bHighlighting(false)
SvxBkgTabPage::SvxBkgTabPage(TabPageParent pParent, const SfxItemSet& rInAttrs)
: SvxAreaTabPage(pParent, rInAttrs)
, bHighlighting(false)
{
VclPtr<vcl::Window> pBtn;
get(pBtn, "btngradient"); pBtn->Hide();
get(pBtn, "btnhatch"); pBtn->Hide();
get(pBtn, "btnbitmap"); pBtn->Hide();
get(pBtn, "btnpattern"); pBtn->Hide();
m_xBtnGradient->hide();
m_xBtnHatch->hide();
m_xBtnBitmap->hide();
m_xBtnPattern->hide();
SfxObjectShell* pDocSh = SfxObjectShell::Current();
const SfxPoolItem* pItem = nullptr;
@@ -1483,7 +1481,7 @@
void SvxBkgTabPage::dispose()
{
m_pTblLBox.clear();
m_xTblLBox.reset();
SvxAreaTabPage::dispose();
}
@@ -1501,9 +1499,9 @@
bool SvxBkgTabPage::FillItemSet( SfxItemSet* rCoreSet )
{
sal_uInt16 nSlot = SID_ATTR_BRUSH;
if ( m_pTblLBox && m_pTblLBox->IsVisible() )
if (m_xTblLBox && m_xTblLBox->get_visible())
{
switch( m_pTblLBox->GetSelectedEntryPos() )
switch (m_xTblLBox->get_active())
{
case TBL_DEST_CELL:
nSlot = SID_ATTR_BRUSH;
@@ -1549,10 +1547,9 @@
return true;
}
VclPtr<SfxTabPage> SvxBkgTabPage::Create( TabPageParent pWindow,
const SfxItemSet* rAttrs )
VclPtr<SfxTabPage> SvxBkgTabPage::Create(TabPageParent pWindow, const SfxItemSet* rAttrs)
{
return VclPtr<SvxBkgTabPage>::Create( pWindow.pParent, *rAttrs );
return VclPtr<SvxBkgTabPage>::Create(pWindow, *rAttrs);
}
void SvxBkgTabPage::PageCreated(const SfxAllItemSet& aSet)
@@ -1563,21 +1560,15 @@
SvxBackgroundTabFlags nFlags = static_cast<SvxBackgroundTabFlags>(pFlagItem->GetValue());
if ( nFlags & SvxBackgroundTabFlags::SHOW_TBLCTL )
{
VclPtr<vcl::Window> pBtn;
get(pBtn, "btnbitmap");
pBtn->Show();
get(m_pTblLBox, "tablelb");
m_pTblLBox->SelectEntryPos(0);
m_pTblLBox->Show();
m_xBtnBitmap->show();
m_xTblLBox = m_xBuilder->weld_combo_box_text("tablelb");
m_xTblLBox->set_active(0);
m_xTblLBox->show();
}
else if (nFlags & SvxBackgroundTabFlags::SHOW_HIGHLIGHTING)
bHighlighting = bool(nFlags & SvxBackgroundTabFlags::SHOW_HIGHLIGHTING);
else if (nFlags & SvxBackgroundTabFlags::SHOW_SELECTOR)
{
VclPtr<vcl::Window> pBtn;
get(pBtn, "btnbitmap");
pBtn->Show();
}
m_xBtnBitmap->show();
}
SvxAreaTabPage::PageCreated( aSet );
}
diff --git a/cui/source/tabpages/tparea.cxx b/cui/source/tabpages/tparea.cxx
index dbceed1..655c532 100644
--- a/cui/source/tabpages/tparea.cxx
+++ b/cui/source/tabpages/tparea.cxx
@@ -82,72 +82,64 @@
|*
\************************************************************************/
SvxAreaTabPage::SvxAreaTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs ) :
SvxTabPage( pParent,
"AreaTabPage",
"cui/ui/areatabpage.ui",
rInAttrs ),
m_pFillTabPage( nullptr ),
m_pColorList( nullptr ),
m_pGradientList( nullptr ),
m_pHatchingList( nullptr ),
m_pBitmapList( nullptr ),
m_pPatternList( nullptr ),
SvxAreaTabPage::SvxAreaTabPage(TabPageParent pParent, const SfxItemSet& rInAttrs)
: SvxTabPage(pParent, "cui/ui/areatabpage.ui", "AreaTabPage", rInAttrs)
, m_pFillTabPage(nullptr)
, m_pColorList(nullptr)
, m_pGradientList(nullptr)
, m_pHatchingList(nullptr)
, m_pBitmapList(nullptr)
, m_pPatternList(nullptr)
// local fixed not o be changed values for local pointers
maFixed_ChangeType(ChangeType::NONE),
, maFixed_ChangeType(ChangeType::NONE)
// init with pointers to fixed ChangeType
m_pnColorListState(&maFixed_ChangeType),
m_pnBitmapListState(&maFixed_ChangeType),
m_pnPatternListState(&maFixed_ChangeType),
m_pnGradientListState(&maFixed_ChangeType),
m_pnHatchingListState(&maFixed_ChangeType),
m_aXFillAttr ( rInAttrs.GetPool() ),
m_rXFSet ( m_aXFillAttr.GetItemSet() )
, m_pnColorListState(&maFixed_ChangeType)
, m_pnBitmapListState(&maFixed_ChangeType)
, m_pnPatternListState(&maFixed_ChangeType)
, m_pnGradientListState(&maFixed_ChangeType)
, m_pnHatchingListState(&maFixed_ChangeType)
, m_aXFillAttr(rInAttrs.GetPool())
, m_rXFSet(m_aXFillAttr.GetItemSet())
, m_xFillTab(m_xBuilder->weld_container("fillstylebox"))
, m_xBtnNone(m_xBuilder->weld_toggle_button("btnnone"))
, m_xBtnColor(m_xBuilder->weld_toggle_button("btncolor"))
, m_xBtnGradient(m_xBuilder->weld_toggle_button("btngradient"))
, m_xBtnHatch(m_xBuilder->weld_toggle_button("btnhatch"))
, m_xBtnBitmap(m_xBuilder->weld_toggle_button("btnbitmap"))
, m_xBtnPattern(m_xBuilder->weld_toggle_button("btnpattern"))
{
get(m_pBtnNone, "btnnone");
get(m_pBtnColor, "btncolor");
get(m_pBtnGradient, "btngradient");
get(m_pBtnHatch, "btnhatch");
get(m_pBtnBitmap, "btnbitmap");
get(m_pBtnPattern, "btnpattern");
get(m_pFillTab, "fillstylebox");
maBox.AddButton( m_pBtnNone );
maBox.AddButton( m_pBtnColor );
maBox.AddButton( m_pBtnGradient );
maBox.AddButton( m_pBtnHatch );
maBox.AddButton( m_pBtnBitmap );
maBox.AddButton( m_pBtnPattern );
Link< Button*, void > aLink = LINK(this, SvxAreaTabPage, SelectFillTypeHdl_Impl);
m_pBtnNone->SetClickHdl(aLink);
m_pBtnColor->SetClickHdl(aLink);
m_pBtnGradient->SetClickHdl(aLink);
m_pBtnHatch->SetClickHdl(aLink);
m_pBtnBitmap->SetClickHdl(aLink);
m_pBtnPattern->SetClickHdl(aLink);
maBox.AddButton(m_xBtnNone.get());
maBox.AddButton(m_xBtnColor.get());
maBox.AddButton(m_xBtnGradient.get());
maBox.AddButton(m_xBtnHatch.get());
maBox.AddButton(m_xBtnBitmap.get());
maBox.AddButton(m_xBtnPattern.get());
Link<weld::ToggleButton&, void> aLink = LINK(this, SvxAreaTabPage, SelectFillTypeHdl_Impl);
m_xBtnNone->connect_toggled(aLink);
m_xBtnColor->connect_toggled(aLink);
m_xBtnGradient->connect_toggled(aLink);
m_xBtnHatch->connect_toggled(aLink);
m_xBtnBitmap->connect_toggled(aLink);
m_xBtnPattern->connect_toggled(aLink);
SetExchangeSupport();
TabPageParent aFillTab(m_pFillTab);
TabPageParent aFillTab(m_xFillTab.get());
// Calculate optimal size of all pages..
m_pFillTabPage.disposeAndReset(SvxColorTabPage::Create(aFillTab, &m_rXFSet));
Size aSize = m_pFillTabPage->GetOptimalSize();
Size aSize = m_pFillTabPage->get_container_size();
m_pFillTabPage.disposeAndReset(SvxGradientTabPage::Create(aFillTab, &m_rXFSet));
lclExtendSize(aSize, m_pFillTabPage->GetOptimalSize());
lclExtendSize(aSize, m_pFillTabPage->get_container_size());
m_pFillTabPage.disposeAndReset(SvxBitmapTabPage::Create(aFillTab, &m_rXFSet));
lclExtendSize(aSize, m_pFillTabPage->GetOptimalSize());
lclExtendSize(aSize, m_pFillTabPage->get_container_size());
m_pFillTabPage.disposeAndReset(SvxHatchTabPage::Create(aFillTab, &m_rXFSet));
lclExtendSize(aSize, m_pFillTabPage->GetOptimalSize());
lclExtendSize(aSize, m_pFillTabPage->get_container_size());
m_pFillTabPage.disposeAndReset(SvxPatternTabPage::Create(aFillTab, &m_rXFSet));
lclExtendSize(aSize, m_pFillTabPage->GetOptimalSize());
lclExtendSize(aSize, m_pFillTabPage->get_container_size());
m_pFillTabPage.disposeAndClear();
m_pFillTab->set_width_request(aSize.Width());
m_pFillTab->set_height_request(aSize.Height());
m_xFillTab->set_size_request(aSize.Width(), aSize.Height());
}
SvxAreaTabPage::~SvxAreaTabPage()
@@ -157,13 +149,6 @@
void SvxAreaTabPage::dispose()
{
m_pBtnNone.clear();
m_pBtnColor.clear();
m_pBtnGradient.clear();
m_pBtnHatch.clear();
m_pBtnBitmap.clear();
m_pBtnPattern.clear();
m_pFillTab.clear();
m_pFillTabPage.disposeAndClear();
SvxTabPage::dispose();
}
@@ -183,25 +168,25 @@
default:
case drawing::FillStyle_NONE:
{
SelectFillTypeHdl_Impl( m_pBtnNone );
SelectFillTypeHdl_Impl(*m_xBtnNone);
break;
}
case drawing::FillStyle_SOLID:
{
m_rXFSet.Put( static_cast<const XFillColorItem&>( rSet.Get( GetWhich( XATTR_FILLCOLOR ) ) ) );
SelectFillTypeHdl_Impl( m_pBtnColor );
SelectFillTypeHdl_Impl(*m_xBtnColor);
break;
}
case drawing::FillStyle_GRADIENT:
{
m_rXFSet.Put( static_cast<const XFillGradientItem&>( rSet.Get( GetWhich( XATTR_FILLGRADIENT ) ) ) );
SelectFillTypeHdl_Impl( m_pBtnGradient );
SelectFillTypeHdl_Impl(*m_xBtnGradient);
break;
}
case drawing::FillStyle_HATCH:
{
m_rXFSet.Put( rSet.Get(XATTR_FILLHATCH) );
SelectFillTypeHdl_Impl( m_pBtnHatch );
SelectFillTypeHdl_Impl(*m_xBtnHatch);
break;
}
case drawing::FillStyle_BITMAP:
@@ -210,9 +195,9 @@
// pass full item set here, bitmap fill has many attributes (tiling, size, offset etc.)
m_rXFSet.Put( rSet );
if(!aItem.isPattern())
SelectFillTypeHdl_Impl( m_pBtnBitmap );
SelectFillTypeHdl_Impl(*m_xBtnBitmap);
else
SelectFillTypeHdl_Impl( m_pBtnPattern );
SelectFillTypeHdl_Impl(*m_xBtnPattern);
break;
}
}
@@ -335,15 +320,14 @@
}
}
VclPtr<SfxTabPage> SvxAreaTabPage::Create( TabPageParent pWindow,
const SfxItemSet* rAttrs )
VclPtr<SfxTabPage> SvxAreaTabPage::Create(TabPageParent pParent, const SfxItemSet* rAttrs)
{
return VclPtr<SvxAreaTabPage>::Create( pWindow.pParent, *rAttrs );
return VclPtr<SvxAreaTabPage>::Create(pParent, *rAttrs);
}
namespace {
VclPtr<SfxTabPage> lcl_CreateFillStyleTabPage( sal_uInt16 nId, vcl::Window* pParent, const SfxItemSet& rSet )
VclPtr<SfxTabPage> lcl_CreateFillStyleTabPage(sal_uInt16 nId, TabPageParent pParent, const SfxItemSet& rSet)
{
CreateTabPage fnCreate = nullptr;
switch(nId)
@@ -361,14 +345,16 @@
}
IMPL_LINK(SvxAreaTabPage, SelectFillTypeHdl_Impl, Button*, pButton, void)
IMPL_LINK(SvxAreaTabPage, SelectFillTypeHdl_Impl, weld::ToggleButton&, rButton, void)
{
sal_Int32 nPos = maBox.GetButtonPos( static_cast<PushButton*>(pButton) );
sal_Int32 nPos = maBox.GetButtonPos(&rButton);
if(nPos != -1 && nPos != maBox.GetCurrentButtonPos())
{
maBox.SelectButton(static_cast<PushButton*>(pButton));
maBox.SelectButton(&rButton);
FillType eFillType = static_cast<FillType>(maBox.GetCurrentButtonPos());
m_pFillTabPage.disposeAndReset( lcl_CreateFillStyleTabPage(eFillType, m_pFillTab, m_rXFSet) );
m_pFillTabPage.disposeAndReset(lcl_CreateFillStyleTabPage(eFillType, m_xFillTab.get(), m_rXFSet));
if (m_pFillTabPage)
m_pFillTabPage->SetTabDialog(GetTabDialog());
CreatePage( eFillType , m_pFillTabPage);
}
}
diff --git a/cui/source/tabpages/tpbitmap.cxx b/cui/source/tabpages/tpbitmap.cxx
index 982d15a..edd5f59 100644
--- a/cui/source/tabpages/tpbitmap.cxx
+++ b/cui/source/tabpages/tpbitmap.cxx
@@ -67,73 +67,66 @@
0
};
SvxBitmapTabPage::SvxBitmapTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs ) :
SvxTabPage( pParent,
"BitmapTabPage",
"cui/ui/bitmaptabpage.ui",
rInAttrs ),
m_rOutAttrs (rInAttrs ),
m_pBitmapList( nullptr ),
m_pnBitmapListState( nullptr ),
m_fObjectWidth(0.0),
m_fObjectHeight(0.0),
m_bLogicalSize(false),
m_aXFillAttr ( rInAttrs.GetPool() ),
m_rXFSet ( m_aXFillAttr.GetItemSet() ),
mpView(nullptr)
SvxBitmapTabPage::SvxBitmapTabPage(TabPageParent pParent, const SfxItemSet& rInAttrs)
: SvxTabPage(pParent, "cui/ui/bitmaptabpage.ui", "BitmapTabPage", rInAttrs)
, m_rOutAttrs(rInAttrs)
, m_pBitmapList(nullptr)
, m_pnBitmapListState(nullptr)
, m_fObjectWidth(0.0)
, m_fObjectHeight(0.0)
, m_bLogicalSize(false)
, m_aXFillAttr(rInAttrs.GetPool())
, m_rXFSet(m_aXFillAttr.GetItemSet())
, mpView(nullptr)
, m_xBitmapLB(new PresetListBox(m_xBuilder->weld_scrolled_window("bitmapwin")))
, m_xBitmapStyleLB(m_xBuilder->weld_combo_box_text("bitmapstyle"))
, m_xSizeBox(m_xBuilder->weld_container("sizebox"))
, m_xTsbScale(m_xBuilder->weld_check_button("scaletsb"))
, m_xBitmapWidth(m_xBuilder->weld_metric_spin_button("width", FUNIT_PERCENT))
, m_xBitmapHeight(m_xBuilder->weld_metric_spin_button("height", FUNIT_PERCENT))
, m_xPositionBox(m_xBuilder->weld_container("posbox"))
, m_xPositionLB(m_xBuilder->weld_combo_box_text("positionlb"))
, m_xPositionOffBox(m_xBuilder->weld_container("posoffbox"))
, m_xPositionOffX(m_xBuilder->weld_metric_spin_button("posoffx", FUNIT_PERCENT))
, m_xPositionOffY(m_xBuilder->weld_metric_spin_button("posoffy", FUNIT_PERCENT))
, m_xTileOffBox(m_xBuilder->weld_container("tileoffbox"))
, m_xTileOffLB(m_xBuilder->weld_combo_box_text("tileofflb"))
, m_xTileOffset(m_xBuilder->weld_metric_spin_button("tileoffmtr", FUNIT_PERCENT))
, m_xBtnImport(m_xBuilder->weld_button("BTN_IMPORT"))
, m_xCtlBitmapPreview(new weld::CustomWeld(*m_xBuilder, "CTL_BITMAP_PREVIEW", m_aCtlBitmapPreview))
, m_xBitmapLBWin(new weld::CustomWeld(*m_xBuilder, "BITMAP", *m_xBitmapLB))
{
get(m_pBitmapLB,"BITMAP");
get(m_pBitmapStyleLB, "bitmapstyle");
get(m_pSizeBox, "sizebox");
get(m_pBitmapWidth, "width");
get(m_pBitmapHeight, "height");
get(m_pTsbScale, "scaletsb");
get(m_pPositionBox, "posbox");
get(m_pPositionLB, "positionlb");
get(m_pPositionOffBox, "posoffbox");
get(m_pPositionOffX, "posoffx");
get(m_pPositionOffY, "posoffy");
get(m_pTileOffBox, "tileoffbox");
get(m_pTileOffLB, "tileofflb");
get(m_pTileOffset, "tileoffmtr");
get(m_pCtlBitmapPreview,"CTL_BITMAP_PREVIEW");
get(m_pBtnImport, "BTN_IMPORT");
// setting the output device
m_rXFSet.Put( XFillStyleItem(drawing::FillStyle_BITMAP) );
m_rXFSet.Put( XFillBitmapItem(OUString(), Graphic()) );
m_pCtlBitmapPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlBitmapPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_pBitmapLB->SetSelectHdl( LINK(this, SvxBitmapTabPage, ModifyBitmapHdl) );
m_pBitmapLB->SetRenameHdl( LINK(this, SvxBitmapTabPage, ClickRenameHdl) );
m_pBitmapLB->SetDeleteHdl( LINK(this, SvxBitmapTabPage, ClickDeleteHdl) );
m_pBitmapStyleLB->SetSelectHdl( LINK(this, SvxBitmapTabPage, ModifyBitmapStyleHdl) );
Link<Edit&, void> aLink1( LINK(this, SvxBitmapTabPage, ModifyBitmapSizeHdl) );
m_pBitmapWidth->SetModifyHdl( aLink1 );
m_pBitmapHeight->SetModifyHdl( aLink1 );
m_pTsbScale->SetClickHdl( LINK(this, SvxBitmapTabPage, ClickScaleHdl) );
m_pPositionLB->SetSelectHdl( LINK( this, SvxBitmapTabPage, ModifyBitmapPositionHdl ) );
Link<Edit&, void> aLink( LINK( this, SvxBitmapTabPage, ModifyPositionOffsetHdl ) );
m_pPositionOffX->SetModifyHdl(aLink);
m_pPositionOffY->SetModifyHdl(aLink);
m_pTileOffset->SetModifyHdl( LINK( this, SvxBitmapTabPage, ModifyTileOffsetHdl ) );
m_pBtnImport->SetClickHdl( LINK(this, SvxBitmapTabPage, ClickImportHdl) );
m_xBitmapLB->SetSelectHdl( LINK(this, SvxBitmapTabPage, ModifyBitmapHdl) );
m_xBitmapLB->SetRenameHdl( LINK(this, SvxBitmapTabPage, ClickRenameHdl) );
m_xBitmapLB->SetDeleteHdl( LINK(this, SvxBitmapTabPage, ClickDeleteHdl) );
m_xBitmapStyleLB->connect_changed( LINK(this, SvxBitmapTabPage, ModifyBitmapStyleHdl) );
Link<weld::MetricSpinButton&, void> aLink1( LINK(this, SvxBitmapTabPage, ModifyBitmapSizeHdl) );
m_xBitmapWidth->connect_value_changed( aLink1 );
m_xBitmapHeight->connect_value_changed( aLink1 );
m_xTsbScale->connect_clicked(LINK(this, SvxBitmapTabPage, ClickScaleHdl));
m_xPositionLB->connect_changed( LINK( this, SvxBitmapTabPage, ModifyBitmapPositionHdl ) );
Link<weld::MetricSpinButton&, void> aLink( LINK( this, SvxBitmapTabPage, ModifyPositionOffsetHdl ) );
m_xPositionOffX->connect_value_changed(aLink);
m_xPositionOffY->connect_value_changed(aLink);
m_xTileOffset->set_value(0, FUNIT_PERCENT);
m_xTileOffset->connect_value_changed( LINK( this, SvxBitmapTabPage, ModifyTileOffsetHdl ) );
m_xBtnImport->connect_clicked( LINK(this, SvxBitmapTabPage, ClickImportHdl) );
// Calculate size of display boxes
Size aSize = getDrawPreviewOptimalSize(this);
m_pBitmapLB->set_width_request(aSize.Width());
m_pBitmapLB->set_height_request(aSize.Height());
m_pCtlBitmapPreview->set_width_request(aSize.Width());
m_pCtlBitmapPreview->set_height_request(aSize.Height());
m_xBitmapLB->set_size_request(aSize.Width(), aSize.Height());
m_xCtlBitmapPreview->set_size_request(aSize.Width(), aSize.Height());
SfxItemPool* pPool = m_rXFSet.GetPool();
mePoolUnit = pPool->GetMetric( XATTR_FILLBMP_SIZEX );
meFieldUnit = GetModuleFieldUnit( rInAttrs );
SetFieldUnit( *m_pBitmapWidth, meFieldUnit, true );
SetFieldUnit( *m_pBitmapHeight, meFieldUnit, true );
SetFieldUnit( *m_xBitmapWidth, meFieldUnit, true );
SetFieldUnit( *m_xBitmapHeight, meFieldUnit, true );
SfxViewShell* pViewShell = SfxViewShell::Current();
if( pViewShell )
@@ -148,32 +141,17 @@
void SvxBitmapTabPage::dispose()
{
m_pBitmapLB.clear();
m_pBitmapStyleLB.clear();
m_pSizeBox.clear();
m_pBitmapWidth.clear();
m_pBitmapHeight.clear();
m_pTsbScale.clear();
m_pPositionBox.clear();
m_pPositionLB.clear();
m_pPositionOffBox.clear();
m_pPositionOffX.clear();
m_pPositionOffY.clear();
m_pTileOffBox.clear();
m_pTileOffLB.clear();
m_pTileOffset.clear();
m_pCtlBitmapPreview.clear();
m_pBtnImport.clear();
m_xBitmapLBWin.reset();
m_xBitmapLB.reset();
m_xCtlBitmapPreview.reset();
SvxTabPage::dispose();
}
void SvxBitmapTabPage::Construct()
{
m_pBitmapLB->FillPresetListBox( *m_pBitmapList );
m_xBitmapLB->FillPresetListBox( *m_pBitmapList );
}
void SvxBitmapTabPage::ActivatePage( const SfxItemSet& rSet )
{
XFillBitmapItem aItem( rSet.Get(XATTR_FILLBITMAP) );
@@ -181,8 +159,8 @@
sal_Int32 nPos = SearchBitmapList( aItem.GetName() );
if ( nPos != LISTBOX_ENTRY_NOTFOUND )
{
sal_uInt16 nId = m_pBitmapLB->GetItemId( static_cast<size_t>( nPos ) );
m_pBitmapLB->SelectItem( nId );
sal_uInt16 nId = m_xBitmapLB->GetItemId( static_cast<size_t>( nPos ) );
m_xBitmapLB->SelectItem( nId );
}
}
@@ -199,15 +177,15 @@
bool SvxBitmapTabPage::FillItemSet( SfxItemSet* rAttrs )
{
rAttrs->Put(XFillStyleItem(drawing::FillStyle_BITMAP));
size_t nPos = m_pBitmapLB->GetSelectItemPos();
size_t nPos = m_xBitmapLB->GetSelectItemPos();
if(VALUESET_ITEM_NOTFOUND != nPos)
{
const XBitmapEntry* pXBitmapEntry = m_pBitmapList->GetBitmap(nPos);
const OUString aString(m_pBitmapLB->GetItemText( m_pBitmapLB->GetSelectedItemId() ));
const OUString aString(m_xBitmapLB->GetItemText( m_xBitmapLB->GetSelectedItemId() ));
rAttrs->Put(XFillBitmapItem(aString, pXBitmapEntry->GetGraphicObject()));
}
BitmapStyle eStylePos = static_cast<BitmapStyle>(m_pBitmapStyleLB->GetSelectedEntryPos());
BitmapStyle eStylePos = static_cast<BitmapStyle>(m_xBitmapStyleLB->get_active());
bool bIsStretched( eStylePos == STRETCHED );
bool bIsTiled( eStylePos == TILED );
@@ -222,17 +200,17 @@
case CUSTOM:
case TILED:
{
sal_Int64 nWidthPercent = m_pBitmapWidth->GetValue();
sal_Int64 nHeightPercent = m_pBitmapHeight->GetValue();
if(m_pTsbScale->IsEnabled() && m_pTsbScale->GetState() == TRISTATE_TRUE)
sal_Int64 nWidthPercent = m_xBitmapWidth->get_value(FUNIT_NONE);
sal_Int64 nHeightPercent = m_xBitmapHeight->get_value(FUNIT_NONE);
if (m_xTsbScale->get_sensitive() && m_xTsbScale->get_state() == TRISTATE_TRUE)
{
aSetBitmapSize.setWidth( -nWidthPercent );
aSetBitmapSize.setHeight( -nHeightPercent );
}
else if (!m_bLogicalSize)
{
aSetBitmapSize.setWidth( GetCoreValue(*m_pBitmapWidth, mePoolUnit) );
aSetBitmapSize.setHeight( GetCoreValue(*m_pBitmapHeight, mePoolUnit) );
aSetBitmapSize.setWidth( GetCoreValue(*m_xBitmapWidth, mePoolUnit) );
aSetBitmapSize.setHeight( GetCoreValue(*m_xBitmapHeight, mePoolUnit) );
}
else
{
@@ -251,16 +229,16 @@
rAttrs->Put( XFillBmpSizeYItem( aSetBitmapSize.Height() ) );
}
if(m_pPositionLB->IsEnabled())
rAttrs->Put( XFillBmpPosItem( static_cast<RectPoint>( m_pPositionLB->GetSelectedEntryPos() ) ) );
if(m_pPositionOffX->IsEnabled())
rAttrs->Put( XFillBmpPosOffsetXItem( m_pPositionOffX->GetValue() ) );
if(m_pPositionOffY->IsEnabled())
rAttrs->Put( XFillBmpPosOffsetYItem( m_pPositionOffY->GetValue() ) );
if(m_pTileOffBox->IsEnabled())
if (m_xPositionLB->get_sensitive())
rAttrs->Put( XFillBmpPosItem( static_cast<RectPoint>( m_xPositionLB->get_active() ) ) );
if (m_xPositionOffX->get_sensitive())
rAttrs->Put( XFillBmpPosOffsetXItem(m_xPositionOffX->get_value(FUNIT_PERCENT)));
if (m_xPositionOffY->get_sensitive())
rAttrs->Put( XFillBmpPosOffsetYItem(m_xPositionOffY->get_value(FUNIT_PERCENT)));
if (m_xTileOffBox->get_sensitive())
{
TileOffset eValue = static_cast<TileOffset>(m_pTileOffLB->GetSelectedEntryPos());
sal_uInt16 nOffsetValue = static_cast<sal_uInt16>(m_pTileOffset->GetValue());
TileOffset eValue = static_cast<TileOffset>(m_xTileOffLB->get_active());
sal_uInt16 nOffsetValue = static_cast<sal_uInt16>(m_xTileOffset->get_value(FUNIT_PERCENT));
sal_uInt16 nRowOff = (eValue == ROW) ? nOffsetValue : 0;
sal_uInt16 nColOff = (eValue == COLUMN) ? nOffsetValue : 0;
rAttrs->Put( XFillBmpTileOffsetXItem(nRowOff) );
@@ -300,11 +278,11 @@
if(!aItem.isPattern())
{
m_rXFSet.Put( aItem );
m_pCtlBitmapPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlBitmapPreview->Invalidate();
m_aCtlBitmapPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlBitmapPreview.Invalidate();
}
else
m_pCtlBitmapPreview->Disable();
m_xCtlBitmapPreview->set_sensitive(false);
std::unique_ptr<GraphicObject> pGraphicObject;
pGraphicObject.reset( new GraphicObject(aItem.GetGraphicObject()) );
@@ -324,34 +302,32 @@
bStretched = rAttrs->Get( XATTR_FILLBMP_STRETCH ).GetValue();
if (bTiled)
m_pBitmapStyleLB->SelectEntryPos(static_cast<sal_Int32>(TILED));
m_xBitmapStyleLB->set_active(static_cast<sal_Int32>(TILED));
else if (bStretched)
m_pBitmapStyleLB->SelectEntryPos( static_cast<sal_Int32>(STRETCHED) );
m_xBitmapStyleLB->set_active(static_cast<sal_Int32>(STRETCHED));
else
m_pBitmapStyleLB->SelectEntryPos( static_cast<sal_Int32>(CUSTOM) );
m_xBitmapStyleLB->set_active(static_cast<sal_Int32>(CUSTOM));
long nWidth = 0;
long nHeight = 0;
if(rAttrs->GetItemState(XATTR_FILLBMP_SIZELOG) != SfxItemState::DONTCARE)
{
m_pTsbScale->EnableTriState( false );
if( rAttrs->Get( XATTR_FILLBMP_SIZELOG ).GetValue() )
if (rAttrs->Get( XATTR_FILLBMP_SIZELOG ).GetValue())
{
m_pTsbScale->SetState( TRISTATE_FALSE );
m_xTsbScale->set_state(TRISTATE_FALSE);
m_bLogicalSize = true;
}
else
{
m_pTsbScale->SetState( TRISTATE_TRUE );
m_xTsbScale->set_state(TRISTATE_TRUE);
m_bLogicalSize = false;
}
ClickScaleHdl( nullptr );
ClickScaleHdl(*m_xTsbScale);
}
else
m_pTsbScale->SetState( TRISTATE_INDET );
m_xTsbScale->set_state(TRISTATE_INDET);
TriState eRelative = TRISTATE_FALSE;
if(rAttrs->GetItemState(XATTR_FILLBMP_SIZEX) != SfxItemState::DONTCARE)
@@ -377,51 +353,51 @@
nHeight = std::abs(nHeight);
}
}
m_pTsbScale->SetState(eRelative);
m_xTsbScale->set_state(eRelative);
if(rBitmapSize.Width() > 0 && rBitmapSize.Height() > 0)
{
if(eRelative == TRISTATE_TRUE)
if (eRelative == TRISTATE_TRUE)
{
m_pBitmapWidth->SetValue(nWidth);
m_pBitmapHeight->SetValue(nHeight);
m_xBitmapWidth->set_value(nWidth, FUNIT_NONE);
m_xBitmapHeight->set_value(nHeight, FUNIT_NONE);
}
else
{
SetMetricValue(*m_pBitmapWidth, nWidth, mePoolUnit);
SetMetricValue(*m_pBitmapHeight, nHeight, mePoolUnit);
SetMetricValue(*m_xBitmapWidth, nWidth, mePoolUnit);
SetMetricValue(*m_xBitmapHeight, nHeight, mePoolUnit);
}
}
if( rAttrs->GetItemState( XATTR_FILLBMP_POS ) != SfxItemState::DONTCARE )
{
RectPoint eValue = rAttrs->Get( XATTR_FILLBMP_POS ).GetValue();
m_pPositionLB->SelectEntryPos( static_cast< sal_Int32 >(eValue) );
m_xPositionLB->set_active( static_cast< sal_Int32 >(eValue) );
}
if( rAttrs->GetItemState( XATTR_FILLBMP_POSOFFSETX ) != SfxItemState::DONTCARE )
{
sal_Int32 nValue = rAttrs->Get( XATTR_FILLBMP_POSOFFSETX ).GetValue();
m_pPositionOffX->SetValue( nValue );
m_xPositionOffX->set_value(nValue, FUNIT_PERCENT);
}
else
m_pPositionOffX->SetText("");
m_xPositionOffX->set_text("");
if( rAttrs->GetItemState( XATTR_FILLBMP_POSOFFSETY ) != SfxItemState::DONTCARE )
{
sal_Int32 nValue = rAttrs->Get( XATTR_FILLBMP_POSOFFSETY ).GetValue();
m_pPositionOffY->SetValue( nValue );
m_xPositionOffY->set_value(nValue, FUNIT_PERCENT);
}
else
m_pPositionOffY->SetText("");
m_xPositionOffY->set_text("");
if( rAttrs->GetItemState( XATTR_FILLBMP_TILEOFFSETX ) != SfxItemState::DONTCARE)
{
sal_Int32 nValue = rAttrs->Get( XATTR_FILLBMP_TILEOFFSETX ).GetValue();
if(nValue > 0)
{
m_pTileOffLB->SelectEntryPos(static_cast<sal_Int32>(ROW));
m_pTileOffset->SetValue( nValue );
m_xTileOffLB->set_active(static_cast<sal_Int32>(ROW));
m_xTileOffset->set_value(nValue, FUNIT_PERCENT);
}
}
@@ -430,28 +406,25 @@
sal_Int32 nValue = rAttrs->Get( XATTR_FILLBMP_TILEOFFSETY ).GetValue();
if(nValue > 0)
{
m_pTileOffLB->SelectEntryPos(static_cast<sal_Int32>(COLUMN));
m_pTileOffset->SetValue( nValue );
m_xTileOffLB->set_active(static_cast<sal_Int32>(COLUMN));
m_xTileOffset->set_value(nValue, FUNIT_PERCENT);
}
}
ClickBitmapHdl_Impl();
}
VclPtr<SfxTabPage> SvxBitmapTabPage::Create( TabPageParent pWindow,
const SfxItemSet* rAttrs )
VclPtr<SfxTabPage> SvxBitmapTabPage::Create(TabPageParent pWindow, const SfxItemSet* rAttrs)
{
return VclPtr<SvxBitmapTabPage>::Create( pWindow.pParent, *rAttrs );
return VclPtr<SvxBitmapTabPage>::Create(pWindow, *rAttrs);
}
void SvxBitmapTabPage::ClickBitmapHdl_Impl()
{
m_pBitmapLB->Enable();
m_pCtlBitmapPreview->Enable();
m_xBitmapLBWin->set_sensitive(true);
m_xCtlBitmapPreview->set_sensitive(true);
ModifyBitmapHdl( m_pBitmapLB );
ModifyBitmapHdl(m_xBitmapLB.get());
}
void SvxBitmapTabPage::CalculateBitmapPresetSize()
@@ -478,10 +451,10 @@
}
}
IMPL_LINK_NOARG(SvxBitmapTabPage, ModifyBitmapHdl, ValueSet*, void)
IMPL_LINK_NOARG(SvxBitmapTabPage, ModifyBitmapHdl, SvtValueSet*, void)
{
std::unique_ptr<GraphicObject> pGraphicObject;
size_t nPos = m_pBitmapLB->GetSelectItemPos();
size_t nPos = m_xBitmapLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
{
@@ -503,8 +476,8 @@
if(!pGraphicObject)
{
sal_uInt16 nId = m_pBitmapLB->GetItemId(0);
m_pBitmapLB->SelectItem(nId);
sal_uInt16 nId = m_xBitmapLB->GetItemId(0);
m_xBitmapLB->SelectItem(nId);
if(0 != nId)
{
@@ -522,16 +495,16 @@
rBitmapSize.setWidth( (OutputDevice::LogicToLogic(static_cast<sal_Int32>(aTempBitmapSize.Width()),MapUnit::MapPixel, MapUnit::Map100thMM )) / fUIScale );
rBitmapSize.setHeight( (OutputDevice::LogicToLogic(static_cast<sal_Int32>(aTempBitmapSize.Height()),MapUnit::MapPixel, MapUnit::Map100thMM )) / fUIScale );
CalculateBitmapPresetSize();
ModifyBitmapStyleHdl( *m_pBitmapStyleLB );
ModifyBitmapPositionHdl( *m_pPositionLB );
ModifyBitmapStyleHdl( *m_xBitmapStyleLB );
ModifyBitmapPositionHdl( *m_xPositionLB );
m_rXFSet.ClearItem();
m_rXFSet.Put(XFillStyleItem(drawing::FillStyle_BITMAP));
m_rXFSet.Put(XFillBitmapItem(OUString(), *pGraphicObject));
m_pCtlBitmapPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlBitmapPreview->Invalidate();
m_aCtlBitmapPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlBitmapPreview.Invalidate();
}
else
{
@@ -540,10 +513,10 @@
}
IMPL_LINK_NOARG(SvxBitmapTabPage, ClickRenameHdl, SvxPresetListBox*, void)
IMPL_LINK_NOARG(SvxBitmapTabPage, ClickRenameHdl, PresetListBox*, void)
{
sal_uInt16 nId = m_pBitmapLB->GetSelectedItemId();
size_t nPos = m_pBitmapLB->GetSelectItemPos();
sal_uInt16 nId = m_xBitmapLB->GetSelectedItemId();
size_t nPos = m_xBitmapLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
{
@@ -551,7 +524,7 @@
OUString aName( m_pBitmapList->GetBitmap( nPos )->GetName() );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetFrameWeld(), aName, aDesc));
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aName, aDesc));
bool bLoop = true;
while( bLoop && pDlg->Execute() == RET_OK )
@@ -565,14 +538,14 @@
bLoop = false;
m_pBitmapList->GetBitmap(nPos)->SetName(aName);
m_pBitmapLB->SetItemText(nId, aName);
m_pBitmapLB->SelectItem( nId );
m_xBitmapLB->SetItemText(nId, aName);
m_xBitmapLB->SelectItem( nId );
*m_pnBitmapListState |= ChangeType::MODIFIED;
}
else
{
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
xBox->run();
}
@@ -580,91 +553,86 @@
}
}
IMPL_LINK_NOARG(SvxBitmapTabPage, ClickDeleteHdl, SvxPresetListBox*, void)
IMPL_LINK_NOARG(SvxBitmapTabPage, ClickDeleteHdl, PresetListBox*, void)
{
sal_uInt16 nId = m_pBitmapLB->GetSelectedItemId();
size_t nPos = m_pBitmapLB->GetSelectItemPos();
sal_uInt16 nId = m_xBitmapLB->GetSelectedItemId();
size_t nPos = m_xBitmapLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
{
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querydeletebitmapdialog.ui"));
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/querydeletebitmapdialog.ui"));
std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("AskDelBitmapDialog"));
if (xQueryBox->run() == RET_YES)
{
m_pBitmapList->Remove( static_cast<sal_uInt16>(nPos) );
m_pBitmapLB->RemoveItem( nId );
nId = m_pBitmapLB->GetItemId(0);
m_pBitmapLB->SelectItem( nId );
m_xBitmapLB->RemoveItem( nId );
nId = m_xBitmapLB->GetItemId(0);
m_xBitmapLB->SelectItem( nId );
m_pCtlBitmapPreview->Invalidate();
ModifyBitmapHdl( m_pBitmapLB );
m_aCtlBitmapPreview.Invalidate();
ModifyBitmapHdl(m_xBitmapLB.get());
*m_pnBitmapListState |= ChangeType::MODIFIED;
}
}
}
IMPL_LINK_NOARG( SvxBitmapTabPage, ModifyBitmapSizeHdl, Edit&, void )
IMPL_LINK_NOARG( SvxBitmapTabPage, ModifyBitmapSizeHdl, weld::MetricSpinButton&, void )
{
m_bLogicalSize = false;
if( m_pTsbScale->GetState() != TRISTATE_TRUE && static_cast<BitmapStyle>(m_pBitmapStyleLB->GetSelectedEntryPos()) != TILED )
if (m_xTsbScale->get_state() != TRISTATE_TRUE && static_cast<BitmapStyle>(m_xBitmapStyleLB->get_active()) != TILED)
{
sal_Int64 nWidthPercent = m_pBitmapWidth->Denormalize( m_pBitmapWidth->GetValue() );
sal_Int64 nHeightPercent = m_pBitmapHeight->Denormalize( m_pBitmapHeight->GetValue() );
if( nWidthPercent == 100 && nHeightPercent == 100 )
m_pBitmapStyleLB->SelectEntryPos( static_cast<sal_Int32>(CUSTOM) );
sal_Int64 nWidthPercent = m_xBitmapWidth->denormalize(m_xBitmapWidth->get_value(FUNIT_NONE));
sal_Int64 nHeightPercent = m_xBitmapHeight->denormalize(m_xBitmapHeight->get_value(FUNIT_NONE));
if (nWidthPercent == 100 && nHeightPercent == 100)
m_xBitmapStyleLB->set_active(static_cast<sal_Int32>(CUSTOM));
}
ModifyBitmapStyleHdl(*m_pBitmapStyleLB);
ModifyBitmapStyleHdl(*m_xBitmapStyleLB);
m_pCtlBitmapPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlBitmapPreview->Invalidate();
m_aCtlBitmapPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlBitmapPreview.Invalidate();
}
IMPL_LINK_NOARG( SvxBitmapTabPage, ClickScaleHdl, Button*, void )
IMPL_LINK_NOARG( SvxBitmapTabPage, ClickScaleHdl, weld::Button&, void )
{
if( m_pTsbScale->GetState() == TRISTATE_TRUE )
if (m_xTsbScale->get_state() == TRISTATE_TRUE)
{
m_pBitmapWidth->SetDecimalDigits( 0 );
m_pBitmapWidth->SetUnit(FUNIT_PERCENT);
m_pBitmapWidth->SetValue( 100 );
m_pBitmapWidth->SetMax( 100 );
m_pBitmapWidth->SetLast( 100 );
m_xBitmapWidth->set_digits( 0 );
m_xBitmapWidth->set_unit(FUNIT_PERCENT);
m_xBitmapWidth->set_value(100, FUNIT_NONE);
m_xBitmapWidth->set_range(0, 100, FUNIT_NONE);
m_pBitmapHeight->SetDecimalDigits( 0 );
m_pBitmapHeight->SetUnit(FUNIT_PERCENT);
m_pBitmapHeight->SetValue( 100 );
m_pBitmapHeight->SetMax( 100 );
m_pBitmapHeight->SetLast( 100 );
m_xBitmapHeight->set_digits( 0 );
m_xBitmapHeight->set_unit(FUNIT_PERCENT);
m_xBitmapHeight->set_value(100, FUNIT_NONE);
m_xBitmapHeight->set_range(0, 100, FUNIT_NONE);
}
else
{
m_pBitmapWidth->SetDecimalDigits( 2 );
m_pBitmapWidth->SetUnit( meFieldUnit );
m_pBitmapWidth->SetValue( 100 );
m_pBitmapWidth->SetMax( 999900 );
m_pBitmapWidth->SetLast( 100000 );
m_xBitmapWidth->set_digits( 2 );
m_xBitmapWidth->set_unit(meFieldUnit);
m_xBitmapWidth->set_value(100, FUNIT_NONE);
m_xBitmapWidth->set_range(0, 999900, FUNIT_NONE);
m_pBitmapHeight->SetDecimalDigits( 2 );
m_pBitmapHeight->SetDecimalDigits( 2 );
m_pBitmapHeight->SetUnit( meFieldUnit );
m_pBitmapHeight->SetValue( 100 );
m_pBitmapHeight->SetMax( 999900 );
m_pBitmapHeight->SetLast( 100000 );
m_xBitmapHeight->set_digits( 2 );
m_xBitmapHeight->set_unit(meFieldUnit);
m_xBitmapHeight->set_value(100, FUNIT_NONE);
m_xBitmapHeight->set_range(0, 999900, FUNIT_NONE);
}
ModifyBitmapStyleHdl( *m_pBitmapStyleLB );
ModifyBitmapStyleHdl( *m_xBitmapStyleLB );
}
IMPL_LINK_NOARG( SvxBitmapTabPage, ModifyBitmapStyleHdl, ListBox&, void )
IMPL_LINK_NOARG( SvxBitmapTabPage, ModifyBitmapStyleHdl, weld::ComboBoxText&, void )
{
BitmapStyle eStylePos = static_cast<BitmapStyle>(m_pBitmapStyleLB->GetSelectedEntryPos());
BitmapStyle eStylePos = static_cast<BitmapStyle>(m_xBitmapStyleLB->get_active());
bool bIsStretched( eStylePos == STRETCHED );
bool bIsTiled( eStylePos == TILED );
m_pSizeBox->Enable( !bIsStretched );
m_pPositionBox->Enable( !bIsStretched );
m_pPositionOffBox->Enable( bIsTiled );
m_pTileOffBox->Enable( bIsTiled );
m_xSizeBox->set_sensitive( !bIsStretched );
m_xPositionBox->set_sensitive( !bIsStretched );
m_xPositionOffBox->set_sensitive( bIsTiled );
m_xTileOffBox->set_sensitive( bIsTiled );
m_rXFSet.Put( XFillBmpTileItem( bIsTiled ) );
m_rXFSet.Put( XFillBmpStretchItem( bIsStretched ) );
@@ -677,15 +645,15 @@
case CUSTOM:
case TILED:
{
if(m_pTsbScale->IsEnabled() && m_pTsbScale->GetState() == TRISTATE_TRUE)
if (m_xTsbScale->get_sensitive() && m_xTsbScale->get_state() == TRISTATE_TRUE)
{
aSetBitmapSize.setWidth( -m_pBitmapWidth->GetValue() );
aSetBitmapSize.setHeight( -m_pBitmapWidth->GetValue() );
aSetBitmapSize.setWidth(-m_xBitmapWidth->get_value(FUNIT_NONE));
aSetBitmapSize.setHeight(-m_xBitmapWidth->get_value(FUNIT_NONE));
}
else
{
aSetBitmapSize.setWidth( GetCoreValue( *m_pBitmapWidth, mePoolUnit ) );
aSetBitmapSize.setHeight( GetCoreValue( *m_pBitmapHeight, mePoolUnit ) );
aSetBitmapSize.setWidth( GetCoreValue( *m_xBitmapWidth, mePoolUnit ) );
aSetBitmapSize.setHeight( GetCoreValue( *m_xBitmapHeight, mePoolUnit ) );
}
}
break;
@@ -697,52 +665,52 @@
m_rXFSet.Put( XFillBmpSizeYItem( aSetBitmapSize.Height() ) );
}
m_pCtlBitmapPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlBitmapPreview->Invalidate();
m_aCtlBitmapPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlBitmapPreview.Invalidate();
}
IMPL_LINK_NOARG(SvxBitmapTabPage, ModifyBitmapPositionHdl, ListBox&, void)
IMPL_LINK_NOARG(SvxBitmapTabPage, ModifyBitmapPositionHdl, weld::ComboBoxText&, void)
{
if(m_pPositionLB->IsEnabled())
m_rXFSet.Put( XFillBmpPosItem( static_cast< RectPoint >( m_pPositionLB->GetSelectedEntryPos() ) ) );
if (m_xPositionLB->get_sensitive())
m_rXFSet.Put( XFillBmpPosItem( static_cast< RectPoint >( m_xPositionLB->get_active() ) ) );
m_pCtlBitmapPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlBitmapPreview->Invalidate();
m_aCtlBitmapPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlBitmapPreview.Invalidate();
}
IMPL_LINK_NOARG(SvxBitmapTabPage, ModifyPositionOffsetHdl, Edit&, void)
IMPL_LINK_NOARG(SvxBitmapTabPage, ModifyPositionOffsetHdl, weld::MetricSpinButton&, void)
{
if(m_pPositionOffX->IsEnabled())
m_rXFSet.Put( XFillBmpPosOffsetXItem( m_pPositionOffX->GetValue() ) );
if (m_xPositionOffX->get_sensitive())
m_rXFSet.Put( XFillBmpPosOffsetXItem( m_xPositionOffX->get_value(FUNIT_PERCENT) ) );
if(m_pPositionOffY->IsEnabled())
m_rXFSet.Put( XFillBmpPosOffsetYItem( m_pPositionOffY->GetValue() ) );
if (m_xPositionOffY->get_sensitive())
m_rXFSet.Put( XFillBmpPosOffsetYItem( m_xPositionOffY->get_value(FUNIT_PERCENT) ) );
m_pCtlBitmapPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlBitmapPreview->Invalidate();
m_aCtlBitmapPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlBitmapPreview.Invalidate();
}
IMPL_LINK_NOARG(SvxBitmapTabPage, ModifyTileOffsetHdl, Edit&, void)
IMPL_LINK_NOARG(SvxBitmapTabPage, ModifyTileOffsetHdl, weld::MetricSpinButton&, void)
{
sal_uInt16 nTileXOff = 0;
sal_uInt16 nTileYOff = 0;
if(m_pTileOffLB->GetSelectedEntryPos() == static_cast<sal_Int32>(ROW))
nTileXOff = m_pTileOffset->GetValue();
if(m_xTileOffLB->get_active() == static_cast<sal_Int32>(ROW))
nTileXOff = m_xTileOffset->get_value(FUNIT_PERCENT);
if(m_pTileOffLB->GetSelectedEntryPos() == static_cast<sal_Int32>(COLUMN))
nTileYOff = m_pTileOffset->GetValue();
if(m_xTileOffLB->get_active() == static_cast<sal_Int32>(COLUMN))
nTileYOff = m_xTileOffset->get_value(FUNIT_PERCENT);
m_rXFSet.Put( XFillBmpTileOffsetXItem(nTileXOff) );
m_rXFSet.Put( XFillBmpTileOffsetYItem(nTileYOff) );
m_pCtlBitmapPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlBitmapPreview->Invalidate();
m_aCtlBitmapPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlBitmapPreview.Invalidate();
}
IMPL_LINK_NOARG(SvxBitmapTabPage, ClickImportHdl, Button*, void)
IMPL_LINK_NOARG(SvxBitmapTabPage, ClickImportHdl, weld::Button&, void)
{
SvxOpenGraphicDialog aDlg("Import", GetFrameWeld());
SvxOpenGraphicDialog aDlg("Import", GetTabDialog()->GetFrameWeld());
aDlg.EnableLink(false);
long nCount = m_pBitmapList->Count();
@@ -762,7 +730,7 @@
OUString aName;
INetURLObject aURL( aDlg.GetPath() );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetFrameWeld(), aURL.GetName().getToken(0, '.'), aDesc));
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aURL.GetName().getToken(0, '.'), aDesc));
nError = ErrCode(1);
while( pDlg->Execute() == RET_OK )
@@ -780,7 +748,7 @@
break;
}
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
if (xBox->run() != RET_OK)
break;
@@ -792,20 +760,20 @@
{
m_pBitmapList->Insert(o3tl::make_unique<XBitmapEntry>(aGraphic, aName), nCount);
sal_Int32 nId = m_pBitmapLB->GetItemId( nCount - 1 );
BitmapEx aBitmap = m_pBitmapList->GetBitmapForPreview( nCount, m_pBitmapLB->GetIconSize() );
sal_Int32 nId = m_xBitmapLB->GetItemId( nCount - 1 );
BitmapEx aBitmap = m_pBitmapList->GetBitmapForPreview( nCount, m_xBitmapLB->GetIconSize() );
m_pBitmapLB->InsertItem( nId + 1, Image(aBitmap), aName );
m_pBitmapLB->SelectItem( nId + 1 );
m_xBitmapLB->InsertItem( nId + 1, Image(aBitmap), aName );
m_xBitmapLB->SelectItem( nId + 1 );
*m_pnBitmapListState |= ChangeType::MODIFIED;
ModifyBitmapHdl( m_pBitmapLB );
ModifyBitmapHdl(m_xBitmapLB.get());
}
}
else
{
// graphic couldn't be loaded
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querynoloadedfiledialog.ui"));
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/querynoloadedfiledialog.ui"));
std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("NoLoadedFileDialog"));
xBox->run();
}
diff --git a/cui/source/tabpages/tpcolor.cxx b/cui/source/tabpages/tpcolor.cxx
index 401c7f3..857bd63 100644
--- a/cui/source/tabpages/tpcolor.cxx
+++ b/cui/source/tabpages/tpcolor.cxx
@@ -341,7 +341,7 @@
}
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetFrameWeld(), aName, aDesc));
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aName, aDesc));
sal_uInt16 nError = 1;
while (pDlg->Execute() == RET_OK)
@@ -355,7 +355,7 @@
break;
}
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
if (xWarnBox->run() != RET_OK)
break;
@@ -395,7 +395,7 @@
aColorDlg.SetColor (aCurrentColor);
aColorDlg.SetMode( svtools::ColorPickerMode::Modify );
if (aColorDlg.Execute(GetFrameWeld()) == RET_OK)
if (aColorDlg.Execute(GetTabDialog()->GetFrameWeld()) == RET_OK)
{
Color aPreviewColor = aColorDlg.GetColor();
aCurrentColor = aPreviewColor;
diff --git a/cui/source/tabpages/tpgradnt.cxx b/cui/source/tabpages/tpgradnt.cxx
index 8e3e9d3..9e9c434 100644
--- a/cui/source/tabpages/tpgradnt.cxx
+++ b/cui/source/tabpages/tpgradnt.cxx
@@ -49,87 +49,76 @@
using namespace com::sun::star;
SvxGradientTabPage::SvxGradientTabPage
(
vcl::Window* pParent,
const SfxItemSet& rInAttrs
) :
SfxTabPage ( pParent, "GradientPage", "cui/ui/gradientpage.ui", &rInAttrs ),
m_rOutAttrs ( rInAttrs ),
m_pnGradientListState ( nullptr ),
m_pnColorListState ( nullptr ),
m_aXFillAttr ( rInAttrs.GetPool() ),
m_rXFSet ( m_aXFillAttr.GetItemSet() )
SvxGradientTabPage::SvxGradientTabPage(TabPageParent pParent, const SfxItemSet& rInAttrs)
: SfxTabPage(pParent, "cui/ui/gradientpage.ui", "GradientPage", &rInAttrs)
, m_rOutAttrs(rInAttrs)
, m_pnGradientListState(nullptr)
, m_pnColorListState(nullptr)
, m_aXFillAttr(rInAttrs.GetPool())
, m_rXFSet(m_aXFillAttr.GetItemSet())
, m_xLbGradientType(m_xBuilder->weld_combo_box_text("gradienttypelb"))
, m_xFtCenter(m_xBuilder->weld_label("centerft"))
, m_xMtrCenterX(m_xBuilder->weld_metric_spin_button("centerxmtr", FUNIT_PERCENT))
, m_xMtrCenterY(m_xBuilder->weld_metric_spin_button("centerymtr", FUNIT_PERCENT))
, m_xFtAngle(m_xBuilder->weld_label("angleft"))
, m_xMtrAngle(m_xBuilder->weld_metric_spin_button("anglemtr", FUNIT_DEGREE))
, m_xMtrBorder(m_xBuilder->weld_metric_spin_button("bordermtr", FUNIT_PERCENT))
, m_xSliderBorder(m_xBuilder->weld_scale("borderslider"))
, m_xLbColorFrom(new ColorListBox(m_xBuilder->weld_menu_button("colorfromlb"), GetFrameWeld()))
, m_xMtrColorFrom(m_xBuilder->weld_metric_spin_button("colorfrommtr", FUNIT_PERCENT))
, m_xLbColorTo(new ColorListBox(m_xBuilder->weld_menu_button("colortolb"), GetFrameWeld()))
, m_xMtrColorTo(m_xBuilder->weld_metric_spin_button("colortomtr", FUNIT_PERCENT))
, m_xGradientLB(new PresetListBox(m_xBuilder->weld_scrolled_window("gradientpresetlistwin")))
, m_xMtrIncrement(m_xBuilder->weld_spin_button("incrementmtr"))
, m_xCbIncrement(m_xBuilder->weld_check_button("autoincrement"))
, m_xSliderIncrement(m_xBuilder->weld_scale("incrementslider"))
, m_xBtnAdd(m_xBuilder->weld_button("add"))
, m_xBtnModify(m_xBuilder->weld_button("modify"))
, m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, "previewctl", m_aCtlPreview))
, m_xGradientLBWin(new weld::CustomWeld(*m_xBuilder, "gradientpresetlist", *m_xGradientLB))
{
get(m_pCbIncrement, "autoincrement");
get(m_pMtrIncrement, "incrementmtr");
get(m_pSliderIncrement,"incrementslider");
get(m_pLbGradientType, "gradienttypelb");
get(m_pFtCenter, "centerft");
get(m_pMtrCenterX, "centerxmtr");
get(m_pMtrCenterY, "centerymtr");
get(m_pFtAngle, "angleft");
get(m_pMtrAngle, "anglemtr");
get(m_pMtrBorder, "bordermtr");
get(m_pSliderBorder, "borderslider");
get(m_pLbColorFrom, "colorfromlb");
get(m_pMtrColorFrom, "colorfrommtr");
get(m_pLbColorTo, "colortolb");
get(m_pMtrColorTo, "colortomtr");
get(m_pGradientLB, "gradientpresetlist");
get(m_pCtlPreview, "previewctl");
Size aSize = getDrawPreviewOptimalSize(this);
m_pGradientLB->set_width_request(aSize.Width());
m_pGradientLB->set_height_request(aSize.Height());
m_pCtlPreview->set_width_request(aSize.Width());
m_pCtlPreview->set_height_request(aSize.Height());
get(m_pBtnAdd, "add");
get(m_pBtnModify, "modify");
m_xGradientLB->set_size_request(aSize.Width(), aSize.Height());
m_xCtlPreview->set_size_request(aSize.Width(), aSize.Height());
// this page needs ExchangeSupport
SetExchangeSupport();
// as long as NOT supported by the item
m_pSliderIncrement->SetRange(Range(3,256));
m_pMtrColorTo->SetValue( 100 );
m_pMtrColorFrom->SetValue( 100 );
m_pSliderBorder->SetRange(Range(0,100));
m_xMtrColorTo->set_value(100, FUNIT_PERCENT);
m_xMtrColorFrom->set_value(100, FUNIT_PERCENT);
// setting the output device
m_rXFSet.Put( XFillStyleItem(drawing::FillStyle_GRADIENT) );
m_rXFSet.Put( XFillGradientItem(OUString(), XGradient( COL_BLACK, COL_WHITE )) );
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlPreview.SetAttributes(m_aXFillAttr.GetItemSet());
// set handler
m_pGradientLB->SetSelectHdl( LINK( this, SvxGradientTabPage, ChangeGradientHdl ) );
m_pGradientLB->SetRenameHdl( LINK( this, SvxGradientTabPage, ClickRenameHdl_Impl ) );
m_pGradientLB->SetDeleteHdl( LINK( this, SvxGradientTabPage, ClickDeleteHdl_Impl ) );
m_pBtnAdd->SetClickHdl( LINK( this, SvxGradientTabPage, ClickAddHdl_Impl ) );
m_pBtnModify->SetClickHdl(
LINK( this, SvxGradientTabPage, ClickModifyHdl_Impl ) );
m_xGradientLB->SetSelectHdl( LINK( this, SvxGradientTabPage, ChangeGradientHdl ) );
m_xGradientLB->SetRenameHdl( LINK( this, SvxGradientTabPage, ClickRenameHdl_Impl ) );
m_xGradientLB->SetDeleteHdl( LINK( this, SvxGradientTabPage, ClickDeleteHdl_Impl ) );
m_xBtnAdd->connect_clicked(LINK(this, SvxGradientTabPage, ClickAddHdl_Impl));
m_xBtnModify->connect_clicked(LINK(this, SvxGradientTabPage, ClickModifyHdl_Impl));
Link<Edit&,void> aLink = LINK( this, SvxGradientTabPage, ModifiedEditHdl_Impl );
Link<ListBox&,void> aLink2 = LINK( this, SvxGradientTabPage, ModifiedListBoxHdl_Impl );
m_pLbGradientType->SetSelectHdl( aLink2 );
m_pCbIncrement->SetToggleHdl( LINK( this, SvxGradientTabPage, ChangeAutoStepHdl_Impl ) );
m_pMtrIncrement->SetModifyHdl( aLink );
m_pSliderIncrement->SetSlideHdl( LINK( this, SvxGradientTabPage, ModifiedSliderHdl_Impl ) );
m_pMtrCenterX->SetModifyHdl( aLink );
m_pMtrCenterY->SetModifyHdl( aLink );
m_pMtrAngle->SetModifyHdl( aLink );
m_pMtrBorder->SetModifyHdl( aLink );
m_pSliderBorder->SetSlideHdl( LINK( this, SvxGradientTabPage, ModifiedSliderHdl_Impl ) );
m_pMtrColorFrom->SetModifyHdl( aLink );
Link<SvxColorListBox&,void> aLink3 = LINK( this, SvxGradientTabPage, ModifiedColorListBoxHdl_Impl );
m_pLbColorFrom->SetSelectHdl( aLink3 );
m_pMtrColorTo->SetModifyHdl( aLink );
m_pLbColorTo->SetSelectHdl( aLink3 );
Link<weld::MetricSpinButton&,void> aLink = LINK( this, SvxGradientTabPage, ModifiedMetricHdl_Impl );
Link<weld::ComboBoxText&,void> aLink2 = LINK( this, SvxGradientTabPage, ModifiedListBoxHdl_Impl );
m_xLbGradientType->connect_changed( aLink2 );
m_xCbIncrement->connect_toggled(LINK(this, SvxGradientTabPage, ChangeAutoStepHdl_Impl));
m_xMtrIncrement->connect_value_changed(LINK(this, SvxGradientTabPage, ModifiedEditHdl_Impl));
m_xSliderIncrement->connect_value_changed(LINK(this, SvxGradientTabPage, ModifiedSliderHdl_Impl));
m_xMtrCenterX->connect_value_changed( aLink );
m_xMtrCenterY->connect_value_changed( aLink );
m_xMtrAngle->connect_value_changed( aLink );
m_xMtrBorder->connect_value_changed( aLink );
m_xSliderBorder->connect_value_changed(LINK(this, SvxGradientTabPage, ModifiedSliderHdl_Impl));
m_xMtrColorFrom->connect_value_changed( aLink );
Link<ColorListBox&,void> aLink3 = LINK( this, SvxGradientTabPage, ModifiedColorListBoxHdl_Impl );
m_xLbColorFrom->SetSelectHdl( aLink3 );
m_xMtrColorTo->connect_value_changed( aLink );
m_xLbColorTo->SetSelectHdl( aLink3 );
// #i76307# always paint the preview in LTR, because this is what the document does
m_pCtlPreview->EnableRTL( false );
setPreviewsToSamePlace(pParent, this);
m_aCtlPreview.EnableRTL(false);
}
SvxGradientTabPage::~SvxGradientTabPage()
@@ -139,31 +128,17 @@
void SvxGradientTabPage::dispose()
{
m_pCbIncrement.clear();
m_pMtrIncrement.clear();
m_pSliderIncrement.clear();
m_pLbGradientType.clear();
m_pFtCenter.clear();
m_pMtrCenterX.clear();
m_pMtrCenterY.clear();
m_pFtAngle.clear();
m_pMtrAngle.clear();
m_pMtrBorder.clear();
m_pSliderBorder.clear();
m_pLbColorFrom.clear();
m_pMtrColorFrom.clear();
m_pLbColorTo.clear();
m_pMtrColorTo.clear();
m_pGradientLB.clear();
m_pCtlPreview.clear();
m_pBtnAdd.clear();
m_pBtnModify.clear();
m_xCtlPreview.reset();
m_xGradientLBWin.reset();
m_xGradientLB.reset();
m_xLbColorTo.reset();
m_xLbColorFrom.reset();
SfxTabPage::dispose();
}
void SvxGradientTabPage::Construct()
{
m_pGradientLB->FillPresetListBox( *m_pGradientList );
m_xGradientLB->FillPresetListBox( *m_pGradientList );
}
void SvxGradientTabPage::ActivatePage( const SfxItemSet& rSet )
@@ -201,8 +176,8 @@
sal_Int32 nPos = SearchGradientList( rSet.Get(XATTR_FILLGRADIENT).GetName() );
if ( nPos != LISTBOX_ENTRY_NOTFOUND )
{
sal_uInt16 nId = m_pGradientLB->GetItemId( static_cast<size_t>( nPos ) );
m_pGradientLB->SelectItem( nId );
sal_uInt16 nId = m_xGradientLB->GetItemId( static_cast<size_t>( nPos ) );
m_xGradientLB->SelectItem( nId );
}
// colors could have been deleted
ChangeGradientHdl_Impl();
@@ -222,31 +197,31 @@
{
std::unique_ptr<XGradient> pXGradient;
OUString aString;
size_t nPos = m_pGradientLB->IsNoSelection() ? VALUESET_ITEM_NOTFOUND : m_pGradientLB->GetSelectItemPos();
size_t nPos = m_xGradientLB->IsNoSelection() ? VALUESET_ITEM_NOTFOUND : m_xGradientLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
{
pXGradient.reset(new XGradient( m_pGradientList->GetGradient( static_cast<sal_uInt16>(nPos) )->GetGradient() ));
aString = m_pGradientLB->GetItemText( m_pGradientLB->GetSelectedItemId() );
aString = m_xGradientLB->GetItemText( m_xGradientLB->GetSelectedItemId() );
}
else
// gradient was passed (unidentified)
{
aString = "gradient";
pXGradient.reset(new XGradient( m_pLbColorFrom->GetSelectEntryColor(),
m_pLbColorTo->GetSelectEntryColor(),
static_cast<css::awt::GradientStyle>(m_pLbGradientType->GetSelectedEntryPos()),
static_cast<long>(m_pMtrAngle->GetValue() * 10), // should be changed in resource
static_cast<sal_uInt16>(m_pMtrCenterX->GetValue()),
static_cast<sal_uInt16>(m_pMtrCenterY->GetValue()),
static_cast<sal_uInt16>(m_pMtrBorder->GetValue()),
static_cast<sal_uInt16>(m_pMtrColorFrom->GetValue()),
static_cast<sal_uInt16>(m_pMtrColorTo->GetValue()),
static_cast<sal_uInt16>(m_pMtrIncrement->GetValue()) ));
pXGradient.reset(new XGradient( m_xLbColorFrom->GetSelectEntryColor(),
m_xLbColorTo->GetSelectEntryColor(),
static_cast<css::awt::GradientStyle>(m_xLbGradientType->get_active()),
static_cast<long>(m_xMtrAngle->get_value(FUNIT_NONE) * 10), // should be changed in resource
static_cast<sal_uInt16>(m_xMtrCenterX->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrCenterY->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrBorder->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrColorFrom->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrColorTo->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrIncrement->get_value()) ));
}
sal_uInt16 nValue = 0;
if( !m_pCbIncrement->IsChecked() )
nValue = m_pMtrIncrement->GetValue();
if (!m_xCbIncrement->get_active())
nValue = m_xMtrIncrement->get_value();
assert( pXGradient && "XGradient could not be created" );
rSet->Put( XFillStyleItem( drawing::FillStyle_GRADIENT ) );
@@ -255,109 +230,111 @@
return true;
}
void SvxGradientTabPage::Reset( const SfxItemSet* )
{
m_pMtrIncrement->SetValue(DEFAULT_GRADIENTSTEP);
m_pSliderIncrement->SetThumbPos(DEFAULT_GRADIENTSTEP);
m_xMtrIncrement->set_value(DEFAULT_GRADIENTSTEP);
m_xSliderIncrement->set_value(DEFAULT_GRADIENTSTEP);
ChangeGradientHdl_Impl();
// determine state of the buttons
if( m_pGradientList->Count() )
m_pBtnModify->Enable();
m_xBtnModify->set_sensitive(true);
else
m_pBtnModify->Disable();
m_xBtnModify->set_sensitive(false);
}
VclPtr<SfxTabPage> SvxGradientTabPage::Create( TabPageParent pWindow,
const SfxItemSet* rOutAttrs )
{
return VclPtr<SvxGradientTabPage>::Create( pWindow.pParent, *rOutAttrs );
return VclPtr<SvxGradientTabPage>::Create(pWindow, *rOutAttrs);
}
IMPL_LINK( SvxGradientTabPage, ModifiedListBoxHdl_Impl, ListBox&, rListBox, void )
IMPL_LINK( SvxGradientTabPage, ModifiedListBoxHdl_Impl, weld::ComboBoxText&, rListBox, void )
{
ModifiedHdl_Impl(&rListBox);
// gradient params changed, it is no longer one of the presets
m_pGradientLB->SetNoSelection();
m_xGradientLB->SetNoSelection();
}
IMPL_LINK( SvxGradientTabPage, ModifiedColorListBoxHdl_Impl, SvxColorListBox&, rListBox, void )
IMPL_LINK( SvxGradientTabPage, ModifiedColorListBoxHdl_Impl, ColorListBox&, rListBox, void )
{
ModifiedHdl_Impl(&rListBox);
m_pGradientLB->SetNoSelection();
m_xGradientLB->SetNoSelection();
}
IMPL_LINK( SvxGradientTabPage, ModifiedEditHdl_Impl, Edit&, rBox, void )
IMPL_LINK( SvxGradientTabPage, ModifiedEditHdl_Impl, weld::SpinButton&, rBox, void )
{
ModifiedHdl_Impl(&rBox);
m_pGradientLB->SetNoSelection();
m_xGradientLB->SetNoSelection();
}
IMPL_LINK( SvxGradientTabPage, ModifiedSliderHdl_Impl, Slider*, rSlider, void )
IMPL_LINK( SvxGradientTabPage, ModifiedMetricHdl_Impl, weld::MetricSpinButton&, rBox, void )
{
ModifiedHdl_Impl(rSlider);
m_pGradientLB->SetNoSelection();
ModifiedHdl_Impl(&rBox);
m_xGradientLB->SetNoSelection();
}
IMPL_LINK_NOARG( SvxGradientTabPage, ChangeAutoStepHdl_Impl, CheckBox&, void )
IMPL_LINK( SvxGradientTabPage, ModifiedSliderHdl_Impl, weld::Scale&, rSlider, void )
{
if(m_pCbIncrement->IsChecked())
ModifiedHdl_Impl(&rSlider);
m_xGradientLB->SetNoSelection();
}
IMPL_LINK_NOARG( SvxGradientTabPage, ChangeAutoStepHdl_Impl, weld::ToggleButton&, void )
{
if (m_xCbIncrement->get_active())
{
m_pSliderIncrement->Disable();
m_pMtrIncrement->Disable();
m_xSliderIncrement->set_sensitive(false);
m_xMtrIncrement->set_sensitive(false);
}
else
{
m_pSliderIncrement->Enable();
m_pMtrIncrement->Enable();
m_xSliderIncrement->set_sensitive(true);
m_xMtrIncrement->set_sensitive(true);
}
ModifiedHdl_Impl(m_pMtrIncrement);
ModifiedHdl_Impl(m_xMtrIncrement.get());
}
void SvxGradientTabPage::ModifiedHdl_Impl( void const * pControl )
{
if( pControl == m_pMtrBorder )
m_pSliderBorder->SetThumbPos( m_pMtrBorder->GetValue() );
if( pControl == m_pSliderBorder )
m_pMtrBorder->SetValue( m_pSliderBorder->GetThumbPos() );
if( pControl == m_pMtrIncrement )
m_pSliderIncrement->SetThumbPos( m_pMtrIncrement->GetValue() );
if(pControl == m_pSliderIncrement)
m_pMtrIncrement->SetValue( m_pSliderIncrement->GetThumbPos() );
if (pControl == m_xMtrBorder.get())
m_xSliderBorder->set_value(m_xMtrBorder->get_value(FUNIT_NONE));
if (pControl == m_xSliderBorder.get())
m_xMtrBorder->set_value(m_xSliderBorder->get_value(), FUNIT_NONE);
if (pControl == m_xMtrIncrement.get())
m_xSliderIncrement->set_value(m_xMtrIncrement->get_value());
if (pControl == m_xSliderIncrement.get())
m_xMtrIncrement->set_value(m_xSliderIncrement->get_value());
css::awt::GradientStyle eXGS = static_cast<css::awt::GradientStyle>(m_pLbGradientType->GetSelectedEntryPos());
css::awt::GradientStyle eXGS = static_cast<css::awt::GradientStyle>(m_xLbGradientType->get_active());
XGradient aXGradient( m_pLbColorFrom->GetSelectEntryColor(),
m_pLbColorTo->GetSelectEntryColor(),
XGradient aXGradient( m_xLbColorFrom->GetSelectEntryColor(),
m_xLbColorTo->GetSelectEntryColor(),
eXGS,
static_cast<long>(m_pMtrAngle->GetValue() * 10), // should be changed in resource
static_cast<sal_uInt16>(m_pMtrCenterX->GetValue()),
static_cast<sal_uInt16>(m_pMtrCenterY->GetValue()),
static_cast<sal_uInt16>(m_pMtrBorder->GetValue()),
static_cast<sal_uInt16>(m_pMtrColorFrom->GetValue()),
static_cast<sal_uInt16>(m_pMtrColorTo->GetValue()),
static_cast<sal_uInt16>(m_pMtrIncrement->GetValue()) );
static_cast<long>(m_xMtrAngle->get_value(FUNIT_NONE) * 10), // should be changed in resource
static_cast<sal_uInt16>(m_xMtrCenterX->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrCenterY->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrBorder->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrColorFrom->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrColorTo->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrIncrement->get_value()) );
// enable/disable controls
if( pControl == m_pLbGradientType || pControl == this )
if (pControl == m_xLbGradientType.get() || pControl == this)
SetControlState_Impl( eXGS );
sal_uInt16 nValue = 0;
if(!m_pCbIncrement->IsChecked())
nValue = static_cast<sal_uInt16>(m_pMtrIncrement->GetValue());
if (!m_xCbIncrement->get_active())
nValue = static_cast<sal_uInt16>(m_xMtrIncrement->get_value());
m_rXFSet.Put( XGradientStepCountItem( nValue ) );
// displaying in XOutDev
m_rXFSet.Put( XFillGradientItem( OUString(), aXGradient ) );
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlPreview->Invalidate();
m_aCtlPreview.SetAttributes(m_aXFillAttr.GetItemSet());
m_aCtlPreview.Invalidate();
}
IMPL_LINK_NOARG(SvxGradientTabPage, ClickAddHdl_Impl, Button*, void)
IMPL_LINK_NOARG(SvxGradientTabPage, ClickAddHdl_Impl, weld::Button&, void)
{
OUString aNewName( SvxResId( RID_SVXSTR_GRADIENT ) );
OUString aDesc( CuiResId( RID_SVXSTR_DESC_GRADIENT ) );
@@ -374,7 +351,7 @@
}
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetFrameWeld(), aName, aDesc));
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aName, aDesc));
sal_uInt16 nError = 1;
while (pDlg->Execute() == RET_OK)
@@ -389,7 +366,7 @@
break;
}
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
if (xWarnBox->run() != RET_OK)
break;
@@ -398,24 +375,24 @@
if( !nError )
{
XGradient aXGradient( m_pLbColorFrom->GetSelectEntryColor(),
m_pLbColorTo->GetSelectEntryColor(),
static_cast<css::awt::GradientStyle>(m_pLbGradientType->GetSelectedEntryPos()),
static_cast<long>(m_pMtrAngle->GetValue() * 10), // should be changed in resource
static_cast<sal_uInt16>(m_pMtrCenterX->GetValue()),
static_cast<sal_uInt16>(m_pMtrCenterY->GetValue()),
static_cast<sal_uInt16>(m_pMtrBorder->GetValue()),
static_cast<sal_uInt16>(m_pMtrColorFrom->GetValue()),
static_cast<sal_uInt16>(m_pMtrColorTo->GetValue()),
static_cast<sal_uInt16>(m_pMtrIncrement->GetValue()) );
XGradient aXGradient( m_xLbColorFrom->GetSelectEntryColor(),
m_xLbColorTo->GetSelectEntryColor(),
static_cast<css::awt::GradientStyle>(m_xLbGradientType->get_active()),
static_cast<long>(m_xMtrAngle->get_value(FUNIT_NONE) * 10), // should be changed in resource
static_cast<sal_uInt16>(m_xMtrCenterX->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrCenterY->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrBorder->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrColorFrom->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrColorTo->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrIncrement->get_value()) );
m_pGradientList->Insert(o3tl::make_unique<XGradientEntry>(aXGradient, aName), nCount);
sal_Int32 nId = m_pGradientLB->GetItemId(nCount - 1); //calculate the last ID
BitmapEx aBitmap = m_pGradientList->GetBitmapForPreview( nCount, m_pGradientLB->GetIconSize() );
m_pGradientLB->InsertItem( nId + 1, Image(aBitmap), aName );
m_pGradientLB->SelectItem( nId + 1 );
m_pGradientLB->Resize();
sal_Int32 nId = m_xGradientLB->GetItemId(nCount - 1); //calculate the last ID
BitmapEx aBitmap = m_pGradientList->GetBitmapForPreview( nCount, m_xGradientLB->GetIconSize() );
m_xGradientLB->InsertItem( nId + 1, Image(aBitmap), aName );
m_xGradientLB->SelectItem( nId + 1 );
m_xGradientLB->Resize();
*m_pnGradientListState |= ChangeType::MODIFIED;
@@ -423,60 +400,60 @@
}
// determine button state
if( m_pGradientList->Count() )
m_pBtnModify->Enable();
if (m_pGradientList->Count())
m_xBtnModify->set_sensitive(true);
}
IMPL_LINK_NOARG(SvxGradientTabPage, ClickModifyHdl_Impl, Button*, void)
IMPL_LINK_NOARG(SvxGradientTabPage, ClickModifyHdl_Impl, weld::Button&, void)
{
sal_uInt16 nId = m_pGradientLB->GetSelectedItemId();
size_t nPos = m_pGradientLB->GetSelectItemPos();
sal_uInt16 nId = m_xGradientLB->GetSelectedItemId();
size_t nPos = m_xGradientLB->GetSelectItemPos();
if ( nPos != VALUESET_ITEM_NOTFOUND )
{
OUString aName( m_pGradientList->GetGradient( static_cast<sal_uInt16>(nPos) )->GetName() );
XGradient aXGradient( m_pLbColorFrom->GetSelectEntryColor(),
m_pLbColorTo->GetSelectEntryColor(),
static_cast<css::awt::GradientStyle>(m_pLbGradientType->GetSelectedEntryPos()),
static_cast<long>(m_pMtrAngle->GetValue() * 10), // should be changed in resource
static_cast<sal_uInt16>(m_pMtrCenterX->GetValue()),
static_cast<sal_uInt16>(m_pMtrCenterY->GetValue()),
static_cast<sal_uInt16>(m_pMtrBorder->GetValue()),
static_cast<sal_uInt16>(m_pMtrColorFrom->GetValue()),
static_cast<sal_uInt16>(m_pMtrColorTo->GetValue()),
static_cast<sal_uInt16>(m_pMtrIncrement->GetValue()) );
XGradient aXGradient( m_xLbColorFrom->GetSelectEntryColor(),
m_xLbColorTo->GetSelectEntryColor(),
static_cast<css::awt::GradientStyle>(m_xLbGradientType->get_active()),
static_cast<long>(m_xMtrAngle->get_value(FUNIT_NONE) * 10), // should be changed in resource
static_cast<sal_uInt16>(m_xMtrCenterX->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrCenterY->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrBorder->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrColorFrom->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrColorTo->get_value(FUNIT_NONE)),
static_cast<sal_uInt16>(m_xMtrIncrement->get_value()) );
m_pGradientList->Replace(o3tl::make_unique<XGradientEntry>(aXGradient, aName), nPos);
BitmapEx aBitmap = m_pGradientList->GetBitmapForPreview( static_cast<sal_uInt16>(nPos), m_pGradientLB->GetIconSize() );
m_pGradientLB->RemoveItem( nId );
m_pGradientLB->InsertItem( nId, Image(aBitmap), aName, static_cast<sal_uInt16>(nPos) );
m_pGradientLB->SelectItem( nId );
BitmapEx aBitmap = m_pGradientList->GetBitmapForPreview( static_cast<sal_uInt16>(nPos), m_xGradientLB->GetIconSize() );
m_xGradientLB->RemoveItem( nId );
m_xGradientLB->InsertItem( nId, Image(aBitmap), aName, static_cast<sal_uInt16>(nPos) );
m_xGradientLB->SelectItem( nId );
*m_pnGradientListState |= ChangeType::MODIFIED;
}
}
IMPL_LINK_NOARG(SvxGradientTabPage, ClickDeleteHdl_Impl, SvxPresetListBox*, void)
IMPL_LINK_NOARG(SvxGradientTabPage, ClickDeleteHdl_Impl, PresetListBox*, void)
{
sal_uInt16 nId = m_pGradientLB->GetSelectedItemId();
size_t nPos = m_pGradientLB->GetSelectItemPos();
sal_uInt16 nId = m_xGradientLB->GetSelectedItemId();
size_t nPos = m_xGradientLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
{
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querydeletegradientdialog.ui"));
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/querydeletegradientdialog.ui"));
std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("AskDelGradientDialog"));
if (xQueryBox->run() == RET_YES)
{
m_pGradientList->Remove(nPos);
m_pGradientLB->RemoveItem( nId );
nId = m_pGradientLB->GetItemId( 0 );
m_pGradientLB->SelectItem( nId );
m_pGradientLB->Resize();
m_xGradientLB->RemoveItem( nId );
nId = m_xGradientLB->GetItemId( 0 );
m_xGradientLB->SelectItem( nId );
m_xGradientLB->Resize();
m_pCtlPreview->Invalidate();
m_aCtlPreview.Invalidate();
ChangeGradientHdl_Impl();
@@ -485,13 +462,13 @@
}
// determine button state
if( !m_pGradientList->Count() )
m_pBtnModify->Disable();
m_xBtnModify->set_sensitive(false);
}
IMPL_LINK_NOARG(SvxGradientTabPage, ClickRenameHdl_Impl, SvxPresetListBox*, void)
IMPL_LINK_NOARG(SvxGradientTabPage, ClickRenameHdl_Impl, PresetListBox*, void)
{
sal_uInt16 nId = m_pGradientLB->GetSelectedItemId();
size_t nPos = m_pGradientLB->GetSelectItemPos();
sal_uInt16 nId = m_xGradientLB->GetSelectedItemId();
size_t nPos = m_xGradientLB->GetSelectItemPos();
if ( nPos != VALUESET_ITEM_NOTFOUND )
{
@@ -499,7 +476,7 @@
OUString aName( m_pGradientList->GetGradient( nPos )->GetName() );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetFrameWeld(), aName, aDesc));
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aName, aDesc));
bool bLoop = true;
while( bLoop && pDlg->Execute() == RET_OK )
@@ -513,14 +490,14 @@
bLoop = false;
m_pGradientList->GetGradient(nPos)->SetName(aName);
m_pGradientLB->SetItemText( nId, aName );
m_pGradientLB->SelectItem( nId );
m_xGradientLB->SetItemText( nId, aName );
m_xGradientLB->SelectItem( nId );
*m_pnGradientListState |= ChangeType::MODIFIED;
}
else
{
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
xBox->run();
}
@@ -528,7 +505,7 @@
}
}
IMPL_LINK_NOARG(SvxGradientTabPage, ChangeGradientHdl, ValueSet*, void)
IMPL_LINK_NOARG(SvxGradientTabPage, ChangeGradientHdl, SvtValueSet*, void)
{
ChangeGradientHdl_Impl();
}
@@ -536,7 +513,7 @@
void SvxGradientTabPage::ChangeGradientHdl_Impl()
{
std::unique_ptr<XGradient> pGradient;
size_t nPos = m_pGradientLB->GetSelectItemPos();
size_t nPos = m_xGradientLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
pGradient.reset(new XGradient( m_pGradientList->GetGradient( static_cast<sal_uInt16>( nPos ) )->GetGradient() ));
@@ -553,8 +530,8 @@
}
if( !pGradient )
{
sal_uInt16 nPosition = m_pGradientLB->GetItemId(0);
m_pGradientLB->SelectItem( nPosition );
sal_uInt16 nPosition = m_xGradientLB->GetItemId(0);
m_xGradientLB->SelectItem( nPosition );
if( nPosition != 0 )
pGradient.reset(new XGradient( m_pGradientList->GetGradient( 0 )->GetGradient() ));
}
@@ -566,35 +543,35 @@
sal_uInt16 nValue = pGradient->GetSteps();
if( nValue == 0 )
{
m_pCbIncrement->SetState(TRISTATE_TRUE);
m_pMtrIncrement->Disable();
m_pSliderIncrement->Disable();
m_xCbIncrement->set_state(TRISTATE_TRUE);
m_xMtrIncrement->set_sensitive(false);
m_xSliderIncrement->set_sensitive(false);
}
else
{
m_pCbIncrement->SetState(TRISTATE_FALSE);
m_pMtrIncrement->Enable();
m_pMtrIncrement->SetValue( nValue );
m_pSliderIncrement->Enable();
m_pSliderIncrement->SetThumbPos( nValue );
m_xCbIncrement->set_state(TRISTATE_FALSE);
m_xMtrIncrement->set_sensitive(true);
m_xMtrIncrement->set_value( nValue );
m_xSliderIncrement->set_sensitive(true);
m_xSliderIncrement->set_value(nValue);
}
m_pLbGradientType->SelectEntryPos(
m_xLbGradientType->set_active(
sal::static_int_cast< sal_Int32 >( eXGS ) );
// if the entry is not in the listbox,
// colors are added temporarily
m_pLbColorFrom->SetNoSelection();
m_pLbColorFrom->SelectEntry( pGradient->GetStartColor() );
m_xLbColorFrom->SetNoSelection();
m_xLbColorFrom->SelectEntry( pGradient->GetStartColor() );
m_pLbColorTo->SetNoSelection();
m_pLbColorTo->SelectEntry( pGradient->GetEndColor() );
m_xLbColorTo->SetNoSelection();
m_xLbColorTo->SelectEntry( pGradient->GetEndColor() );
m_pMtrAngle->SetValue( pGradient->GetAngle() / 10 ); // should be changed in resource
m_pMtrBorder->SetValue( pGradient->GetBorder() );
m_pSliderBorder->SetThumbPos( pGradient->GetBorder() );
m_pMtrCenterX->SetValue( pGradient->GetXOffset() );
m_pMtrCenterY->SetValue( pGradient->GetYOffset() );
m_pMtrColorFrom->SetValue( pGradient->GetStartIntens() );
m_pMtrColorTo->SetValue( pGradient->GetEndIntens() );
m_xMtrAngle->set_value(pGradient->GetAngle() / 10, FUNIT_NONE); // should be changed in resource
m_xMtrBorder->set_value(pGradient->GetBorder(), FUNIT_NONE);
m_xSliderBorder->set_value(pGradient->GetBorder());
m_xMtrCenterX->set_value(pGradient->GetXOffset(), FUNIT_NONE);
m_xMtrCenterY->set_value(pGradient->GetYOffset(), FUNIT_NONE);
m_xMtrColorFrom->set_value(pGradient->GetStartIntens(), FUNIT_NONE);
m_xMtrColorTo->set_value(pGradient->GetEndIntens(), FUNIT_NONE);
// disable/enable controls
SetControlState_Impl( eXGS );
@@ -602,49 +579,48 @@
// fill ItemSet and pass it on to aCtlPreview
m_rXFSet.Put( XFillGradientItem( OUString(), *pGradient ) );
m_rXFSet.Put( XGradientStepCountItem( nValue ) );
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlPreview.SetAttributes(m_aXFillAttr.GetItemSet());
m_pCtlPreview->Invalidate();
m_aCtlPreview.Invalidate();
}
}
void SvxGradientTabPage::SetControlState_Impl( css::awt::GradientStyle eXGS )
{
switch( eXGS )
{
case css::awt::GradientStyle_LINEAR:
case css::awt::GradientStyle_AXIAL:
m_pFtCenter->Disable();
m_pMtrCenterX->Disable();
m_pMtrCenterY->Disable();
m_pFtAngle->Enable();
m_pMtrAngle->Enable();
m_xFtCenter->set_sensitive(false);
m_xMtrCenterX->set_sensitive(false);
m_xMtrCenterY->set_sensitive(false);
m_xFtAngle->set_sensitive(true);
m_xMtrAngle->set_sensitive(true);
break;
case css::awt::GradientStyle_RADIAL:
m_pFtCenter->Enable();
m_pMtrCenterX->Enable();
m_pMtrCenterY->Enable();
m_pFtAngle->Disable();
m_pMtrAngle->Disable();
m_xFtCenter->set_sensitive(true);
m_xMtrCenterX->set_sensitive(true);
m_xMtrCenterY->set_sensitive(true);
m_xFtAngle->set_sensitive(false);
m_xMtrAngle->set_sensitive(false);
break;
case css::awt::GradientStyle_ELLIPTICAL:
m_pFtCenter->Enable();
m_pMtrCenterX->Enable();
m_pMtrCenterY->Enable();
m_pFtAngle->Enable();
m_pMtrAngle->Enable();
m_xFtCenter->set_sensitive(true);
m_xMtrCenterX->set_sensitive(true);
m_xMtrCenterY->set_sensitive(true);
m_xFtAngle->set_sensitive(true);
m_xMtrAngle->set_sensitive(true);
break;
case css::awt::GradientStyle_SQUARE:
case css::awt::GradientStyle_RECT:
m_pFtCenter->Enable();
m_pMtrCenterX->Enable();
m_pMtrCenterY->Enable();
m_pFtAngle->Enable();
m_pMtrAngle->Enable();
m_xFtCenter->set_sensitive(true);
m_xMtrCenterX->set_sensitive(true);
m_xMtrCenterY->set_sensitive(true);
m_xFtAngle->set_sensitive(true);
m_xMtrAngle->set_sensitive(true);
break;
default:
break;
diff --git a/cui/source/tabpages/tphatch.cxx b/cui/source/tabpages/tphatch.cxx
index a51ceab..110df65 100644
--- a/cui/source/tabpages/tphatch.cxx
+++ b/cui/source/tabpages/tphatch.cxx
@@ -49,36 +49,29 @@
using namespace com::sun::star;
SvxHatchTabPage::SvxHatchTabPage
(
vcl::Window* pParent,
const SfxItemSet& rInAttrs
) :
SvxTabPage ( pParent, "HatchPage", "cui/ui/hatchpage.ui", rInAttrs ),
m_rOutAttrs ( rInAttrs ),
m_pnHatchingListState ( nullptr ),
m_pnColorListState ( nullptr ),
m_aXFillAttr ( rInAttrs.GetPool() ),
m_rXFSet ( m_aXFillAttr.GetItemSet() )
SvxHatchTabPage::SvxHatchTabPage(TabPageParent pParent, const SfxItemSet& rInAttrs)
: SvxTabPage(pParent, "cui/ui/hatchpage.ui", "HatchPage", rInAttrs)
, m_rOutAttrs(rInAttrs)
, m_pnHatchingListState(nullptr)
, m_pnColorListState(nullptr)
, m_aXFillAttr(rInAttrs.GetPool())
, m_rXFSet(m_aXFillAttr.GetItemSet())
, m_xMtrDistance(m_xBuilder->weld_metric_spin_button("distancemtr", FUNIT_MM))
, m_xMtrAngle(m_xBuilder->weld_metric_spin_button("anglemtr", FUNIT_DEGREE))
, m_xSliderAngle(m_xBuilder->weld_scale("angleslider"))
, m_xLbLineType(m_xBuilder->weld_combo_box_text("linetypelb"))
, m_xLbLineColor(new ColorListBox(m_xBuilder->weld_menu_button("linecolorlb"), GetFrameWeld()))
, m_xCbBackgroundColor(m_xBuilder->weld_check_button("backgroundcolor"))
, m_xLbBackgroundColor(new ColorListBox(m_xBuilder->weld_menu_button("backgroundcolorlb"), GetFrameWeld()))
, m_xHatchLB(new PresetListBox(m_xBuilder->weld_scrolled_window("hatchpresetlistwin")))
, m_xBtnAdd(m_xBuilder->weld_button("add"))
, m_xBtnModify(m_xBuilder->weld_button("modify"))
, m_xHatchLBWin(new weld::CustomWeld(*m_xBuilder, "hatchpresetlist", *m_xHatchLB))
, m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, "previewctl", m_aCtlPreview))
{
get(m_pMtrDistance, "distancemtr");
get(m_pMtrAngle, "anglemtr");
get(m_pSliderAngle, "angleslider");
get(m_pLbLineType, "linetypelb");
get(m_pLbLineColor, "linecolorlb");
get(m_pCbBackgroundColor, "backgroundcolor");
get(m_pLbBackgroundColor, "backgroundcolorlb");
get(m_pHatchLB , "hatchpresetlist");
get(m_pCtlPreview, "previewctl");
Size aSize = getDrawPreviewOptimalSize(this);
m_pHatchLB->set_width_request(aSize.Width());
m_pHatchLB->set_height_request(aSize.Height());
m_pCtlPreview->set_width_request(aSize.Width());
m_pCtlPreview->set_height_request(aSize.Height());
get(m_pBtnAdd, "add");
get(m_pBtnModify, "modify");
m_xHatchLBWin->set_size_request(aSize.Width(), aSize.Height());
m_xCtlPreview->set_size_request(aSize.Width(), aSize.Height());
// this page needs ExchangeSupport
SetExchangeSupport();
@@ -94,7 +87,7 @@
break;
default: ;//prevent warning
}
SetFieldUnit( *m_pMtrDistance, eFUnit );
SetFieldUnit( *m_xMtrDistance, eFUnit );
// determine PoolUnit
SfxItemPool* pPool = m_rOutAttrs.GetPool();
@@ -104,27 +97,26 @@
// setting the output device
m_rXFSet.Put( XFillStyleItem(drawing::FillStyle_HATCH) );
m_rXFSet.Put( XFillHatchItem(OUString(), XHatch()) );
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pHatchLB->SetSelectHdl( LINK( this, SvxHatchTabPage, ChangeHatchHdl ) );
m_pHatchLB->SetRenameHdl( LINK( this, SvxHatchTabPage, ClickRenameHdl_Impl ) );
m_pHatchLB->SetDeleteHdl( LINK( this, SvxHatchTabPage, ClickDeleteHdl_Impl ) );
m_aCtlPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_xHatchLB->SetSelectHdl( LINK( this, SvxHatchTabPage, ChangeHatchHdl ) );
m_xHatchLB->SetRenameHdl( LINK( this, SvxHatchTabPage, ClickRenameHdl_Impl ) );
m_xHatchLB->SetDeleteHdl( LINK( this, SvxHatchTabPage, ClickDeleteHdl_Impl ) );
Link<Edit&,void> aLink = LINK( this, SvxHatchTabPage, ModifiedEditHdl_Impl );
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 );
Link<SvxColorListBox&,void> aLink3 = LINK( this, SvxHatchTabPage, ModifiedColorListBoxHdl_Impl );
m_pLbLineColor->SetSelectHdl( aLink3 );
m_pCbBackgroundColor->SetToggleHdl( LINK( this, SvxHatchTabPage, ToggleHatchBackgroundColor_Impl ) );
m_pLbBackgroundColor->SetSelectHdl( LINK( this, SvxHatchTabPage, ModifiedBackgroundHdl_Impl ) );
Link<weld::MetricSpinButton&,void> aLink = LINK( this, SvxHatchTabPage, ModifiedEditHdl_Impl );
Link<weld::ComboBoxText&,void> aLink2 = LINK( this, SvxHatchTabPage, ModifiedListBoxHdl_Impl );
m_xMtrDistance->connect_value_changed( aLink );
m_xMtrAngle->connect_value_changed( aLink );
m_xSliderAngle->connect_value_changed(LINK(this, SvxHatchTabPage, ModifiedSliderHdl_Impl));
m_xLbLineType->connect_changed( aLink2 );
Link<ColorListBox&,void> aLink3 = LINK( this, SvxHatchTabPage, ModifiedColorListBoxHdl_Impl );
m_xLbLineColor->SetSelectHdl( aLink3 );
m_xCbBackgroundColor->connect_toggled( LINK( this, SvxHatchTabPage, ToggleHatchBackgroundColor_Impl ) );
m_xLbBackgroundColor->SetSelectHdl( LINK( this, SvxHatchTabPage, ModifiedBackgroundHdl_Impl ) );
m_pBtnAdd->SetClickHdl( LINK( this, SvxHatchTabPage, ClickAddHdl_Impl ) );
m_pBtnModify->SetClickHdl( LINK( this, SvxHatchTabPage, ClickModifyHdl_Impl ) );
m_xBtnAdd->connect_clicked( LINK( this, SvxHatchTabPage, ClickAddHdl_Impl ) );
m_xBtnModify->connect_clicked( LINK( this, SvxHatchTabPage, ClickModifyHdl_Impl ) );
m_pCtlPreview->SetDrawMode( GetSettings().GetStyleSettings().GetHighContrastMode() ? OUTPUT_DRAWMODE_CONTRAST : OUTPUT_DRAWMODE_COLOR );
m_aCtlPreview.SetDrawMode( GetSettings().GetStyleSettings().GetHighContrastMode() ? OUTPUT_DRAWMODE_CONTRAST : OUTPUT_DRAWMODE_COLOR );
}
SvxHatchTabPage::~SvxHatchTabPage()
@@ -134,23 +126,17 @@
void SvxHatchTabPage::dispose()
{
m_pMtrDistance.clear();
m_pMtrAngle.clear();
m_pSliderAngle.clear();
m_pLbLineType.clear();
m_pLbLineColor.clear();
m_pCbBackgroundColor.clear();
m_pLbBackgroundColor.clear();
m_pHatchLB.clear();
m_pCtlPreview.clear();
m_pBtnAdd.clear();
m_pBtnModify.clear();
m_xCtlPreview.reset();
m_xHatchLBWin.reset();
m_xHatchLB.reset();
m_xLbBackgroundColor.reset();
m_xLbLineColor.reset();
SvxTabPage::dispose();
}
void SvxHatchTabPage::Construct()
{
m_pHatchLB->FillPresetListBox(*m_pHatchingList);
m_xHatchLB->FillPresetListBox(*m_pHatchingList);
}
void SvxHatchTabPage::ActivatePage( const SfxItemSet& rSet )
@@ -188,8 +174,8 @@
sal_Int32 nPos = SearchHatchList( rSet.Get(XATTR_FILLHATCH).GetName() );
if( nPos != LISTBOX_ENTRY_NOTFOUND )
{
sal_uInt16 nId = m_pHatchLB->GetItemId( static_cast<size_t>( nPos ) );
m_pHatchLB->SelectItem( nId );
sal_uInt16 nId = m_xHatchLB->GetItemId( static_cast<size_t>( nPos ) );
m_xHatchLB->SelectItem( nId );
}
// colors could have been deleted
ChangeHatchHdl_Impl();
@@ -200,24 +186,23 @@
if(aBckItem.GetValue())
{
m_pCbBackgroundColor->SetState(TRISTATE_TRUE);
m_xCbBackgroundColor->set_state(TRISTATE_TRUE);
XFillColorItem aColorItem( rSet.Get(XATTR_FILLCOLOR) );
Color aColor(aColorItem.GetColorValue());
m_pLbBackgroundColor->Enable();
m_pLbBackgroundColor->SelectEntry(aColor);
m_xLbBackgroundColor->set_sensitive(true);
m_xLbBackgroundColor->SelectEntry(aColor);
m_rXFSet.Put( aColorItem );
}
else
{
m_pCbBackgroundColor->SetState(TRISTATE_FALSE);
m_pLbBackgroundColor->Disable();
m_xCbBackgroundColor->set_state(TRISTATE_FALSE);
m_xLbBackgroundColor->set_sensitive(false);
}
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlPreview->Invalidate();
m_aCtlPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlPreview.Invalidate();
}
DeactivateRC SvxHatchTabPage::DeactivatePage( SfxItemSet* _pSet )
{
if( _pSet )
@@ -226,7 +211,6 @@
return DeactivateRC::LeavePage;
}
sal_Int32 SvxHatchTabPage::SearchHatchList(const OUString& rHatchName)
{
long nCount = m_pHatchingList->Count();
@@ -248,128 +232,127 @@
{
std::unique_ptr<XHatch> pXHatch;
OUString aString;
size_t nPos = m_pHatchLB->IsNoSelection() ? VALUESET_ITEM_NOTFOUND : m_pHatchLB->GetSelectItemPos();
size_t nPos = m_xHatchLB->IsNoSelection() ? VALUESET_ITEM_NOTFOUND : m_xHatchLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
{
pXHatch.reset(new XHatch( m_pHatchingList->GetHatch( static_cast<sal_uInt16>(nPos) )->GetHatch() ));
aString = m_pHatchLB->GetItemText( m_pHatchLB->GetSelectedItemId() );
aString = m_xHatchLB->GetItemText( m_xHatchLB->GetSelectedItemId() );
}
// unidentified hatch has been passed
else
{
pXHatch.reset(new XHatch( m_pLbLineColor->GetSelectEntryColor(),
static_cast<css::drawing::HatchStyle>(m_pLbLineType->GetSelectedEntryPos()),
GetCoreValue( *m_pMtrDistance, m_ePoolUnit ),
static_cast<long>(m_pMtrAngle->GetValue() * 10) ));
pXHatch.reset(new XHatch( m_xLbLineColor->GetSelectEntryColor(),
static_cast<css::drawing::HatchStyle>(m_xLbLineType->get_active()),
GetCoreValue( *m_xMtrDistance, m_ePoolUnit ),
static_cast<long>(m_xMtrAngle->get_value(FUNIT_NONE) * 10) ));
}
assert( pXHatch && "XHatch couldn't be created" );
rSet->Put( XFillStyleItem( drawing::FillStyle_HATCH ) );
rSet->Put( XFillHatchItem( aString, *pXHatch ) );
rSet->Put( XFillBackgroundItem( m_pCbBackgroundColor->IsChecked() ) );
if (m_pCbBackgroundColor->IsChecked())
rSet->Put( XFillBackgroundItem( m_xCbBackgroundColor->get_active() ) );
if (m_xCbBackgroundColor->get_active())
{
NamedColor aColor = m_pLbBackgroundColor->GetSelectedEntry();
NamedColor aColor = m_xLbBackgroundColor->GetSelectedEntry();
rSet->Put(XFillColorItem(aColor.second, aColor.first));
}
return true;
}
void SvxHatchTabPage::Reset( const SfxItemSet* rSet )
{
ChangeHatchHdl_Impl();
XFillBackgroundItem aBckItem( rSet->Get(XATTR_FILLBACKGROUND) );
if(aBckItem.GetValue())
m_pCbBackgroundColor->SetState(TRISTATE_TRUE);
m_xCbBackgroundColor->set_state(TRISTATE_TRUE);
else
m_pCbBackgroundColor->SetState(TRISTATE_FALSE);
m_xCbBackgroundColor->set_state(TRISTATE_FALSE);
m_rXFSet.Put( aBckItem );
XFillColorItem aColItem( rSet->Get(XATTR_FILLCOLOR) );
m_pLbBackgroundColor->SelectEntry(aColItem.GetColorValue());
m_xLbBackgroundColor->SelectEntry(aColItem.GetColorValue());
m_rXFSet.Put( aColItem );
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlPreview->Invalidate();
m_aCtlPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlPreview.Invalidate();
}
VclPtr<SfxTabPage> SvxHatchTabPage::Create( TabPageParent pWindow,
const SfxItemSet* rSet )
{
return VclPtr<SvxHatchTabPage>::Create( pWindow.pParent, *rSet );
return VclPtr<SvxHatchTabPage>::Create(pWindow, *rSet);
}
IMPL_LINK( SvxHatchTabPage, ModifiedListBoxHdl_Impl, ListBox&, rListBox, void )
IMPL_LINK( SvxHatchTabPage, ModifiedListBoxHdl_Impl, weld::ComboBoxText&, rListBox, void )
{
ModifiedHdl_Impl(&rListBox);
// hatch params have changed, it is no longer one of the presets
m_pHatchLB->SetNoSelection();
m_xHatchLB->SetNoSelection();
}
IMPL_LINK( SvxHatchTabPage, ModifiedColorListBoxHdl_Impl, SvxColorListBox&, rListBox, void )
IMPL_LINK( SvxHatchTabPage, ModifiedColorListBoxHdl_Impl, ColorListBox&, rListBox, void )
{
ModifiedHdl_Impl(&rListBox);
m_pHatchLB->SetNoSelection();
m_xHatchLB->SetNoSelection();
}
IMPL_LINK_NOARG( SvxHatchTabPage, ToggleHatchBackgroundColor_Impl, CheckBox&, void )
IMPL_LINK_NOARG( SvxHatchTabPage, ToggleHatchBackgroundColor_Impl, weld::ToggleButton&, void )
{
if(m_pCbBackgroundColor->IsChecked())
m_pLbBackgroundColor->Enable();
if (m_xCbBackgroundColor->get_active())
m_xLbBackgroundColor->set_sensitive(true);
else
m_pLbBackgroundColor->Disable();
m_rXFSet.Put( XFillBackgroundItem( m_pCbBackgroundColor->IsChecked() ) );
ModifiedBackgroundHdl_Impl(*m_pLbBackgroundColor);
m_xLbBackgroundColor->set_sensitive(false);
m_rXFSet.Put( XFillBackgroundItem( m_xCbBackgroundColor->get_active() ) );
ModifiedBackgroundHdl_Impl(*m_xLbBackgroundColor);
}
IMPL_LINK_NOARG( SvxHatchTabPage, ModifiedBackgroundHdl_Impl, SvxColorListBox&, void )
IMPL_LINK_NOARG( SvxHatchTabPage, ModifiedBackgroundHdl_Impl, ColorListBox&, void )
{
Color aColor(COL_TRANSPARENT);
if(m_pCbBackgroundColor->IsChecked())
if (m_xCbBackgroundColor->get_active())
{
aColor = m_pLbBackgroundColor->GetSelectEntryColor();
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlPreview->Invalidate();
aColor = m_xLbBackgroundColor->GetSelectEntryColor();
m_aCtlPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlPreview.Invalidate();
}
m_rXFSet.Put(XFillColorItem( OUString(), aColor ));
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlPreview->Invalidate();
m_aCtlPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlPreview.Invalidate();
}
IMPL_LINK( SvxHatchTabPage, ModifiedEditHdl_Impl, Edit&, rEdit, void )
IMPL_LINK( SvxHatchTabPage, ModifiedEditHdl_Impl, weld::MetricSpinButton&, rEdit, void )
{
ModifiedHdl_Impl(&rEdit);
m_pHatchLB->SetNoSelection();
m_xHatchLB->SetNoSelection();
}
IMPL_LINK( SvxHatchTabPage, ModifiedSliderHdl_Impl, Slider*, rSlider, void )
IMPL_LINK( SvxHatchTabPage, ModifiedSliderHdl_Impl, weld::Scale&, rSlider, void )
{
ModifiedHdl_Impl(rSlider);
m_pHatchLB->SetNoSelection();
ModifiedHdl_Impl(&rSlider);
m_xHatchLB->SetNoSelection();
}
void SvxHatchTabPage::ModifiedHdl_Impl( void const * p )
{
if( p == m_pMtrAngle )
m_pSliderAngle->SetThumbPos( m_pMtrAngle->GetValue() );
if (p == m_xMtrAngle.get())
m_xSliderAngle->set_value(m_xMtrAngle->get_value(FUNIT_NONE));
if( p == m_pSliderAngle )
m_pMtrAngle->SetValue( m_pSliderAngle->GetThumbPos() );
if (p == m_xSliderAngle.get())
m_xMtrAngle->set_value(m_xSliderAngle->get_value(), FUNIT_NONE);
XHatch aXHatch( m_pLbLineColor->GetSelectEntryColor(),
static_cast<css::drawing::HatchStyle>(m_pLbLineType->GetSelectedEntryPos()),
GetCoreValue( *m_pMtrDistance, m_ePoolUnit ),
static_cast<long>(m_pMtrAngle->GetValue() * 10) );
XHatch aXHatch( m_xLbLineColor->GetSelectEntryColor(),
static_cast<css::drawing::HatchStyle>(m_xLbLineType->get_active()),
GetCoreValue( *m_xMtrDistance, m_ePoolUnit ),
static_cast<long>(m_xMtrAngle->get_value(FUNIT_NONE) * 10) );
m_rXFSet.Put( XFillHatchItem( OUString(), aXHatch ) );
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlPreview->Invalidate();
m_aCtlPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlPreview.Invalidate();
}
IMPL_LINK_NOARG(SvxHatchTabPage, ChangeHatchHdl, ValueSet*, void)
IMPL_LINK_NOARG(SvxHatchTabPage, ChangeHatchHdl, SvtValueSet*, void)
{
ChangeHatchHdl_Impl();
}
@@ -377,7 +360,7 @@
void SvxHatchTabPage::ChangeHatchHdl_Impl()
{
std::unique_ptr<XHatch> pHatch;
size_t nPos = m_pHatchLB->GetSelectItemPos();
size_t nPos = m_xHatchLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
pHatch.reset(new XHatch( m_pHatchingList->GetHatch( static_cast<sal_uInt16>(nPos) )->GetHatch() ));
@@ -394,38 +377,38 @@
}
if( !pHatch )
{
sal_uInt16 nPosition = m_pHatchLB->GetItemId( 0 );
m_pHatchLB->SelectItem( nPosition );
sal_uInt16 nPosition = m_xHatchLB->GetItemId( 0 );
m_xHatchLB->SelectItem( nPosition );
if( nPosition != 0 )
pHatch.reset( new XHatch( m_pHatchingList->GetHatch( 0 )->GetHatch() ) );
}
}
if( pHatch )
{
m_pLbLineType->SelectEntryPos(
m_xLbLineType->set_active(
sal::static_int_cast< sal_Int32 >( pHatch->GetHatchStyle() ) );
m_pLbLineColor->SetNoSelection();
m_pLbLineColor->SelectEntry( pHatch->GetColor() );
SetMetricValue( *m_pMtrDistance, pHatch->GetDistance(), m_ePoolUnit );
m_xLbLineColor->SetNoSelection();
m_xLbLineColor->SelectEntry( pHatch->GetColor() );
SetMetricValue( *m_xMtrDistance, pHatch->GetDistance(), m_ePoolUnit );
long mHatchAngle = pHatch->GetAngle() / 10;
m_pMtrAngle->SetValue( mHatchAngle );
m_pSliderAngle->SetThumbPos( mHatchAngle );
m_xMtrAngle->set_value(mHatchAngle, FUNIT_NONE);
m_xSliderAngle->set_value(mHatchAngle);
// fill ItemSet and pass it on to m_pCtlPreview
// fill ItemSet and pass it on to m_aCtlPreview
m_rXFSet.Put( XFillHatchItem( OUString(), *pHatch ) );
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlPreview->Invalidate();
m_aCtlPreview.Invalidate();
pHatch.reset();
}
m_pMtrDistance->SaveValue();
m_pMtrAngle->SaveValue();
m_pLbLineType->SaveValue();
m_pLbLineColor->SaveValue();
m_pLbBackgroundColor->SaveValue();
m_xMtrDistance->save_value();
m_xMtrAngle->save_value();
m_xLbLineType->save_value();
m_xLbLineColor->SaveValue();
m_xLbBackgroundColor->SaveValue();
}
IMPL_LINK_NOARG(SvxHatchTabPage, ClickAddHdl_Impl, Button*, void)
IMPL_LINK_NOARG(SvxHatchTabPage, ClickAddHdl_Impl, weld::Button&, void)
{
OUString aNewName( SvxResId( RID_SVXSTR_HATCH ) );
OUString aDesc( CuiResId( RID_SVXSTR_DESC_HATCH ) );
@@ -442,7 +425,7 @@
}
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetFrameWeld(), aName, aDesc));
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aName, aDesc));
sal_uInt16 nError = 1;
while( pDlg->Execute() == RET_OK )
@@ -456,7 +439,7 @@
break;
}
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
if (xWarnBox->run() != RET_OK)
break;
@@ -465,19 +448,19 @@
if( !nError )
{
XHatch aXHatch( m_pLbLineColor->GetSelectEntryColor(),
static_cast<css::drawing::HatchStyle>(m_pLbLineType->GetSelectedEntryPos()),
GetCoreValue( *m_pMtrDistance, m_ePoolUnit ),
static_cast<long>(m_pMtrAngle->GetValue() * 10) );
XHatch aXHatch( m_xLbLineColor->GetSelectEntryColor(),
static_cast<css::drawing::HatchStyle>(m_xLbLineType->get_active()),
GetCoreValue( *m_xMtrDistance, m_ePoolUnit ),
static_cast<long>(m_xMtrAngle->get_value(FUNIT_NONE) * 10) );
m_pHatchingList->Insert(o3tl::make_unique<XHatchEntry>(aXHatch, aName), nCount);
sal_Int32 nId = m_pHatchLB->GetItemId(nCount - 1); // calculate the last ID
BitmapEx aBitmap = m_pHatchingList->GetBitmapForPreview( nCount, m_pHatchLB->GetIconSize() );
sal_Int32 nId = m_xHatchLB->GetItemId(nCount - 1); // calculate the last ID
BitmapEx aBitmap = m_pHatchingList->GetBitmapForPreview( nCount, m_xHatchLB->GetIconSize() );
// Insert the new entry at the next ID
m_pHatchLB->InsertItem( nId + 1, Image(aBitmap), aName );
m_pHatchLB->SelectItem( nId + 1 );
m_pHatchLB->Resize();
m_xHatchLB->InsertItem( nId + 1, Image(aBitmap), aName );
m_xHatchLB->SelectItem( nId + 1 );
m_xHatchLB->Resize();
*m_pnHatchingListState |= ChangeType::MODIFIED;
@@ -485,56 +468,56 @@
}
}
IMPL_LINK_NOARG(SvxHatchTabPage, ClickModifyHdl_Impl, Button*, void)
IMPL_LINK_NOARG(SvxHatchTabPage, ClickModifyHdl_Impl, weld::Button&, void)
{
sal_uInt16 nId = m_pHatchLB->GetSelectedItemId();
size_t nPos = m_pHatchLB->GetSelectItemPos();
sal_uInt16 nId = m_xHatchLB->GetSelectedItemId();
size_t nPos = m_xHatchLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
{
OUString aName( m_pHatchingList->GetHatch( static_cast<sal_uInt16>(nPos) )->GetName() );
XHatch aXHatch( m_pLbLineColor->GetSelectEntryColor(),
static_cast<css::drawing::HatchStyle>(m_pLbLineType->GetSelectedEntryPos()),
GetCoreValue( *m_pMtrDistance, m_ePoolUnit ),
static_cast<long>(m_pMtrAngle->GetValue() * 10) );
XHatch aXHatch( m_xLbLineColor->GetSelectEntryColor(),
static_cast<css::drawing::HatchStyle>(m_xLbLineType->get_active()),
GetCoreValue( *m_xMtrDistance, m_ePoolUnit ),
static_cast<long>(m_xMtrAngle->get_value(FUNIT_NONE) * 10) );
m_pHatchingList->Replace(o3tl::make_unique<XHatchEntry>(aXHatch, aName), nPos);
BitmapEx aBitmap = m_pHatchingList->GetBitmapForPreview( static_cast<sal_uInt16>(nPos), m_pHatchLB->GetIconSize() );
m_pHatchLB->RemoveItem( nId );
m_pHatchLB->InsertItem( nId, Image(aBitmap), aName, static_cast<sal_uInt16>(nPos) );
m_pHatchLB->SelectItem( nId );
BitmapEx aBitmap = m_pHatchingList->GetBitmapForPreview( static_cast<sal_uInt16>(nPos), m_xHatchLB->GetIconSize() );
m_xHatchLB->RemoveItem( nId );
m_xHatchLB->InsertItem( nId, Image(aBitmap), aName, static_cast<sal_uInt16>(nPos) );
m_xHatchLB->SelectItem( nId );
// save values for changes recognition (-> method)
m_pMtrDistance->SaveValue();
m_pMtrAngle->SaveValue();
m_pLbLineType->SaveValue();
m_pLbLineColor->SaveValue();
m_pLbBackgroundColor->SaveValue();
m_xMtrDistance->save_value();
m_xMtrAngle->save_value();
m_xLbLineType->save_value();
m_xLbLineColor->SaveValue();
m_xLbBackgroundColor->SaveValue();
*m_pnHatchingListState |= ChangeType::MODIFIED;
}
}
IMPL_LINK_NOARG(SvxHatchTabPage, ClickDeleteHdl_Impl, SvxPresetListBox*, void)
IMPL_LINK_NOARG(SvxHatchTabPage, ClickDeleteHdl_Impl, PresetListBox*, void)
{
sal_uInt16 nId = m_pHatchLB->GetSelectedItemId();
size_t nPos = m_pHatchLB->GetSelectItemPos();
sal_uInt16 nId = m_xHatchLB->GetSelectedItemId();
size_t nPos = m_xHatchLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
{
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querydeletehatchdialog.ui"));
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/querydeletehatchdialog.ui"));
std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("AskDelHatchDialog"));
if (xQueryBox->run() == RET_YES)
{
m_pHatchingList->Remove(nPos);
m_pHatchLB->RemoveItem( nId );
nId = m_pHatchLB->GetItemId(0);
m_pHatchLB->SelectItem( nId );
m_pHatchLB->Resize();
m_xHatchLB->RemoveItem( nId );
nId = m_xHatchLB->GetItemId(0);
m_xHatchLB->SelectItem( nId );
m_xHatchLB->Resize();
m_pCtlPreview->Invalidate();
m_aCtlPreview.Invalidate();
ChangeHatchHdl_Impl();
@@ -543,10 +526,10 @@
}
}
IMPL_LINK_NOARG(SvxHatchTabPage, ClickRenameHdl_Impl, SvxPresetListBox*, void )
IMPL_LINK_NOARG(SvxHatchTabPage, ClickRenameHdl_Impl, PresetListBox*, void )
{
sal_uInt16 nId = m_pHatchLB->GetSelectedItemId();
size_t nPos = m_pHatchLB->GetSelectItemPos();
sal_uInt16 nId = m_xHatchLB->GetSelectedItemId();
size_t nPos = m_xHatchLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
{
@@ -554,7 +537,7 @@
OUString aName( m_pHatchingList->GetHatch( nPos )->GetName() );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetFrameWeld(), aName, aDesc));
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aName, aDesc));
bool bLoop = true;
while( bLoop && pDlg->Execute() == RET_OK )
@@ -568,14 +551,14 @@
bLoop = false;
m_pHatchingList->GetHatch(nPos)->SetName(aName);
m_pHatchLB->SetItemText(nId, aName);
m_pHatchLB->SelectItem( nId );
m_xHatchLB->SetItemText(nId, aName);
m_xHatchLB->SelectItem( nId );
*m_pnHatchingListState |= ChangeType::MODIFIED;
}
else
{
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
xBox->run();
}
@@ -595,7 +578,7 @@
void SvxHatchTabPage::DataChanged( const DataChangedEvent& rDCEvt )
{
if ( ( rDCEvt.GetType() == DataChangedEventType::SETTINGS ) && ( rDCEvt.GetFlags() & AllSettingsFlags::STYLE ) )
m_pCtlPreview->SetDrawMode( GetSettings().GetStyleSettings().GetHighContrastMode() ? OUTPUT_DRAWMODE_CONTRAST : OUTPUT_DRAWMODE_COLOR );
m_aCtlPreview.SetDrawMode( GetSettings().GetStyleSettings().GetHighContrastMode() ? OUTPUT_DRAWMODE_CONTRAST : OUTPUT_DRAWMODE_COLOR );
SvxTabPage::DataChanged( rDCEvt );
}
diff --git a/cui/source/tabpages/tppattern.cxx b/cui/source/tabpages/tppattern.cxx
index a696204..b7f72a6 100644
--- a/cui/source/tabpages/tppattern.cxx
+++ b/cui/source/tabpages/tppattern.cxx
@@ -83,35 +83,29 @@
void SetBackgroundColor( Color aColor ) { aBackgroundColor = aColor; }
};
SvxPatternTabPage::SvxPatternTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs) :
SvxTabPage ( pParent,
"PatternTabPage",
"cui/ui/patterntabpage.ui",
rInAttrs ),
m_rOutAttrs ( rInAttrs ),
m_pnPatternListState ( nullptr ),
m_pnColorListState ( nullptr ),
m_aXFillAttr ( rInAttrs.GetPool() ),
m_rXFSet ( m_aXFillAttr.GetItemSet() )
SvxPatternTabPage::SvxPatternTabPage(TabPageParent pParent, const SfxItemSet& rInAttrs)
: SvxTabPage(pParent, "cui/ui/patterntabpage.ui", "PatternTabPage", rInAttrs)
, m_rOutAttrs(rInAttrs)
, m_pnPatternListState(nullptr)
, m_pnColorListState(nullptr)
, m_aXFillAttr(rInAttrs.GetPool())
, m_rXFSet(m_aXFillAttr.GetItemSet())
, m_aCtlPixel(this)
, m_xLbColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_COLOR"), GetFrameWeld()))
, m_xLbBackgroundColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_BACKGROUND_COLOR"), GetFrameWeld()))
, m_xPatternLB(new PresetListBox(m_xBuilder->weld_scrolled_window("patternpresetlistwin")))
, m_xBtnAdd(m_xBuilder->weld_button("BTN_ADD"))
, m_xBtnModify(m_xBuilder->weld_button("BTN_MODIFY"))
, m_xCtlPixel(new weld::CustomWeld(*m_xBuilder, "CTL_PIXEL", m_aCtlPixel))
, m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, "CTL_PREVIEW", m_aCtlPreview))
, m_xPatternLBWin(new weld::CustomWeld(*m_xBuilder, "patternpresetlist", *m_xPatternLB))
{
get(m_pCtlPixel,"CTL_PIXEL");
get(m_pLbColor,"LB_COLOR");
get(m_pLbBackgroundColor,"LB_BACKGROUND_COLOR");
get(m_pCtlPreview,"CTL_PREVIEW");
get(m_pPatternLB, "patternpresetlist");
get(m_pBtnAdd,"BTN_ADD");
get(m_pBtnModify,"BTN_MODIFY");
// size of the bitmap display
Size aSize = getDrawPreviewOptimalSize(this);
m_pPatternLB->set_width_request(aSize.Width());
m_pPatternLB->set_height_request(aSize.Height());
m_pCtlPreview->set_width_request(aSize.Width());
m_pCtlPreview->set_height_request(aSize.Height());
m_xPatternLB->set_size_request(aSize.Width(), aSize.Height());
m_xCtlPreview->set_size_request(aSize.Width(), aSize.Height());
m_pBitmapCtl.reset(new SvxBitmapCtl);
m_xBitmapCtl.reset(new SvxBitmapCtl);
// this page needs ExchangeSupport
SetExchangeSupport();
@@ -120,16 +114,14 @@
m_rXFSet.Put( XFillStyleItem(drawing::FillStyle_BITMAP) );
m_rXFSet.Put( XFillBitmapItem(OUString(), Graphic()) );
m_pBtnAdd->SetClickHdl( LINK( this, SvxPatternTabPage, ClickAddHdl_Impl ) );
m_pBtnModify->SetClickHdl( LINK( this, SvxPatternTabPage, ClickModifyHdl_Impl ) );
m_xBtnAdd->connect_clicked( LINK( this, SvxPatternTabPage, ClickAddHdl_Impl ) );
m_xBtnModify->connect_clicked( LINK( this, SvxPatternTabPage, ClickModifyHdl_Impl ) );
m_pPatternLB->SetSelectHdl( LINK( this, SvxPatternTabPage, ChangePatternHdl_Impl ) );
m_pPatternLB->SetRenameHdl( LINK( this, SvxPatternTabPage, ClickRenameHdl_Impl ) );
m_pPatternLB->SetDeleteHdl( LINK( this, SvxPatternTabPage, ClickDeleteHdl_Impl ) );
m_pLbColor->SetSelectHdl( LINK( this, SvxPatternTabPage, ChangeColorHdl_Impl ) );
m_pLbBackgroundColor->SetSelectHdl( LINK( this, SvxPatternTabPage, ChangeColorHdl_Impl ) );
setPreviewsToSamePlace(pParent, this);
m_xPatternLB->SetSelectHdl( LINK( this, SvxPatternTabPage, ChangePatternHdl_Impl ) );
m_xPatternLB->SetRenameHdl( LINK( this, SvxPatternTabPage, ClickRenameHdl_Impl ) );
m_xPatternLB->SetDeleteHdl( LINK( this, SvxPatternTabPage, ClickDeleteHdl_Impl ) );
m_xLbColor->SetSelectHdl( LINK( this, SvxPatternTabPage, ChangeColorHdl_Impl ) );
m_xLbBackgroundColor->SetSelectHdl( LINK( this, SvxPatternTabPage, ChangeColorHdl_Impl ) );
}
SvxPatternTabPage::~SvxPatternTabPage()
@@ -139,20 +131,18 @@
void SvxPatternTabPage::dispose()
{
m_pBitmapCtl.reset();
m_pCtlPixel.clear();
m_pLbColor.clear();
m_pLbBackgroundColor.clear();
m_pCtlPreview.clear();
m_pBtnAdd.clear();
m_pBtnModify.clear();
m_pPatternLB.clear();
m_xPatternLBWin.reset();
m_xCtlPreview.reset();
m_xCtlPixel.reset();
m_xPatternLB.reset();
m_xLbBackgroundColor.reset();
m_xLbColor.reset();
SvxTabPage::dispose();
}
void SvxPatternTabPage::Construct()
{
m_pPatternLB->FillPresetListBox( *m_pPatternList );
m_xPatternLB->FillPresetListBox( *m_pPatternList );
}
void SvxPatternTabPage::ActivatePage( const SfxItemSet& rSet )
@@ -188,8 +178,8 @@
sal_Int32 nPos = SearchPatternList( rSet.Get(XATTR_FILLBITMAP).GetName() );
if( nPos != LISTBOX_ENTRY_NOTFOUND )
{
sal_uInt16 nId = m_pPatternLB->GetItemId( static_cast<size_t>( nPos ) );
m_pPatternLB->SelectItem( nId );
sal_uInt16 nId = m_xPatternLB->GetItemId( static_cast<size_t>( nPos ) );
m_xPatternLB->SelectItem( nId );
}
}
}
@@ -207,17 +197,17 @@
bool SvxPatternTabPage::FillItemSet( SfxItemSet* _rOutAttrs )
{
_rOutAttrs->Put(XFillStyleItem(drawing::FillStyle_BITMAP));
size_t nPos = m_pPatternLB->IsNoSelection() ? VALUESET_ITEM_NOTFOUND : m_pPatternLB->GetSelectItemPos();
size_t nPos = m_xPatternLB->IsNoSelection() ? VALUESET_ITEM_NOTFOUND : m_xPatternLB->GetSelectItemPos();
if(VALUESET_ITEM_NOTFOUND != nPos)
{
const XBitmapEntry* pXBitmapEntry = m_pPatternList->GetBitmap( static_cast<sal_uInt16>(nPos) );
const OUString aString( m_pPatternLB->GetItemText( m_pPatternLB->GetSelectedItemId() ) );
const OUString aString( m_xPatternLB->GetItemText( m_xPatternLB->GetSelectedItemId() ) );
_rOutAttrs->Put(XFillBitmapItem(aString, pXBitmapEntry->GetGraphicObject()));
}
else
{
const BitmapEx aBitmapEx(m_pBitmapCtl->GetBitmapEx());
const BitmapEx aBitmapEx(m_xBitmapCtl->GetBitmapEx());
_rOutAttrs->Put(XFillBitmapItem(OUString(), Graphic(aBitmapEx)));
}
@@ -227,27 +217,27 @@
void SvxPatternTabPage::Reset( const SfxItemSet* )
{
m_pBitmapCtl->SetPixelColor( m_pLbColor->GetSelectEntryColor() );
m_pBitmapCtl->SetBackgroundColor( m_pLbBackgroundColor->GetSelectEntryColor() );
m_pBitmapCtl->SetBmpArray( m_pCtlPixel->GetBitmapPixelPtr() );
m_xBitmapCtl->SetPixelColor( m_xLbColor->GetSelectEntryColor() );
m_xBitmapCtl->SetBackgroundColor( m_xLbBackgroundColor->GetSelectEntryColor() );
m_xBitmapCtl->SetBmpArray( m_aCtlPixel.GetBitmapPixelPtr() );
// get bitmap and display it
const XFillBitmapItem aBmpItem(OUString(), Graphic(m_pBitmapCtl->GetBitmapEx()));
const XFillBitmapItem aBmpItem(OUString(), Graphic(m_xBitmapCtl->GetBitmapEx()));
m_rXFSet.Put( aBmpItem );
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlPreview->Invalidate();
m_aCtlPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlPreview.Invalidate();
ChangePatternHdl_Impl( m_pPatternLB );
ChangePatternHdl_Impl(m_xPatternLB.get());
// determine button state
if( m_pPatternList.is() && m_pPatternList->Count() )
{
m_pBtnAdd->Enable();
m_pBtnModify->Enable();
m_xBtnAdd->set_sensitive(true);
m_xBtnModify->set_sensitive(true);
}
else
{
m_pBtnModify->Disable();
m_xBtnModify->set_sensitive(false);;
}
}
@@ -255,14 +245,14 @@
VclPtr<SfxTabPage> SvxPatternTabPage::Create( TabPageParent pWindow,
const SfxItemSet* rSet )
{
return VclPtr<SvxPatternTabPage>::Create( pWindow.pParent, *rSet );
return VclPtr<SvxPatternTabPage>::Create(pWindow, *rSet);
}
IMPL_LINK_NOARG(SvxPatternTabPage, ChangePatternHdl_Impl, ValueSet*, void)
IMPL_LINK_NOARG(SvxPatternTabPage, ChangePatternHdl_Impl, SvtValueSet*, void)
{
std::unique_ptr<GraphicObject> pGraphicObject;
size_t nPos = m_pPatternLB->GetSelectItemPos();
size_t nPos = m_xPatternLB->GetSelectItemPos();
if(VALUESET_ITEM_NOTFOUND != nPos)
{
@@ -284,8 +274,8 @@
if(!pGraphicObject)
{
sal_uInt16 nPosition = m_pPatternLB->GetItemId( 0 );
m_pPatternLB->SelectItem( nPosition );
sal_uInt16 nPosition = m_xPatternLB->GetItemId( 0 );
m_xPatternLB->SelectItem( nPosition );
if( nPosition != 0 )
{
pGraphicObject.reset(new GraphicObject(m_pPatternList->GetBitmap(0)->GetGraphicObject()));
@@ -299,48 +289,47 @@
BitmapColor aFront;
bool bIs8x8(vcl::bitmap::isHistorical8x8(pGraphicObject->GetGraphic().GetBitmapEx(), aBack, aFront));
m_pLbColor->SetNoSelection();
m_pLbBackgroundColor->SetNoSelection();
m_xLbColor->SetNoSelection();
m_xLbBackgroundColor->SetNoSelection();
if(bIs8x8)
{
m_pCtlPixel->SetPaintable( true );
m_pBtnModify->Enable();
m_pBtnAdd->Enable();
m_aCtlPixel.SetPaintable( true );
m_xBtnModify->set_sensitive(true);
m_xBtnAdd->set_sensitive(true);
// setting the pixel control
m_pCtlPixel->SetXBitmap(pGraphicObject->GetGraphic().GetBitmapEx());
m_aCtlPixel.SetXBitmap(pGraphicObject->GetGraphic().GetBitmapEx());
Color aPixelColor = aFront.GetColor();
Color aBackColor = aBack.GetColor();
m_pLbColor->SelectEntry( aPixelColor );
m_pLbBackgroundColor->SelectEntry( aBackColor );
m_xLbColor->SelectEntry( aPixelColor );
m_xLbBackgroundColor->SelectEntry( aBackColor );
// update m_pBitmapCtl, rXFSet and m_pCtlPreview
m_pBitmapCtl->SetPixelColor( aPixelColor );
m_pBitmapCtl->SetBackgroundColor( aBackColor );
// update m_xBitmapCtl, rXFSet and m_aCtlPreview
m_xBitmapCtl->SetPixelColor( aPixelColor );
m_xBitmapCtl->SetBackgroundColor( aBackColor );
m_rXFSet.ClearItem();
m_rXFSet.Put(XFillStyleItem(drawing::FillStyle_BITMAP));
m_rXFSet.Put(XFillBitmapItem(OUString(), Graphic(m_pBitmapCtl->GetBitmapEx())));
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlPreview->Invalidate();
m_rXFSet.Put(XFillBitmapItem(OUString(), Graphic(m_xBitmapCtl->GetBitmapEx())));
m_aCtlPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlPreview.Invalidate();
}
else
{
m_pCtlPixel->Reset();
m_pCtlPixel->SetPaintable( false );
m_pBtnModify->Disable();
m_pBtnAdd->Disable();
m_aCtlPixel.Reset();
m_aCtlPixel.SetPaintable( false );
m_xBtnModify->set_sensitive(false);
m_xBtnAdd->set_sensitive(false);
}
m_pCtlPixel->Invalidate();
m_aCtlPixel.Invalidate();
}
}
IMPL_LINK_NOARG(SvxPatternTabPage, ClickAddHdl_Impl, Button*, void)
IMPL_LINK_NOARG(SvxPatternTabPage, ClickAddHdl_Impl, weld::Button&, void)
{
OUString aNewName( SvxResId( RID_SVXSTR_PATTERN_UNTITLED ) );
@@ -358,7 +347,7 @@
}
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetFrameWeld(), aName, aDesc));
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aName, aDesc));
sal_uInt16 nError(1);
while( pDlg->Execute() == RET_OK )
@@ -372,7 +361,7 @@
break;
}
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
if (xWarnBox->run() != RET_OK)
break;
@@ -383,9 +372,9 @@
if( !nError )
{
std::unique_ptr<XBitmapEntry> pEntry;
if( m_pCtlPixel->IsEnabled() )
if( m_aCtlPixel.IsEnabled() )
{
const BitmapEx aBitmapEx(m_pBitmapCtl->GetBitmapEx());
const BitmapEx aBitmapEx(m_xBitmapCtl->GetBitmapEx());
pEntry.reset(new XBitmapEntry(Graphic(aBitmapEx), aName));
}
@@ -404,58 +393,53 @@
if( pEntry )
{
m_pPatternList->Insert(std::move(pEntry), nCount);
sal_Int32 nId = m_pPatternLB->GetItemId( nCount - 1 );
BitmapEx aBitmap = m_pPatternList->GetBitmapForPreview( nCount, m_pPatternLB->GetIconSize() );
m_pPatternLB->InsertItem( nId + 1, Image(aBitmap), aName );
m_pPatternLB->SelectItem( nId + 1 );
m_pPatternLB->Resize();
sal_Int32 nId = m_xPatternLB->GetItemId( nCount - 1 );
BitmapEx aBitmap = m_pPatternList->GetBitmapForPreview( nCount, m_xPatternLB->GetIconSize() );
m_xPatternLB->InsertItem( nId + 1, Image(aBitmap), aName );
m_xPatternLB->SelectItem( nId + 1 );
m_xPatternLB->Resize();
*m_pnPatternListState |= ChangeType::MODIFIED;
ChangePatternHdl_Impl( m_pPatternLB );
ChangePatternHdl_Impl(m_xPatternLB.get());
}
}
// determine button state
if( m_pPatternList->Count() )
{
m_pBtnModify->Enable();
m_xBtnModify->set_sensitive(true);
}
}
/******************************************************************************/
/******************************************************************************/
IMPL_LINK_NOARG(SvxPatternTabPage, ClickModifyHdl_Impl, Button*, void)
IMPL_LINK_NOARG(SvxPatternTabPage, ClickModifyHdl_Impl, weld::Button&, void)
{
sal_uInt16 nId = m_pPatternLB->GetSelectedItemId();
size_t nPos = m_pPatternLB->GetSelectItemPos();
sal_uInt16 nId = m_xPatternLB->GetSelectedItemId();
size_t nPos = m_xPatternLB->GetSelectItemPos();
if ( nPos != VALUESET_ITEM_NOTFOUND )
{
OUString aName( m_pPatternList->GetBitmap( static_cast<sal_uInt16>(nPos) )->GetName() );
const BitmapEx aBitmapEx(m_pBitmapCtl->GetBitmapEx());
const BitmapEx aBitmapEx(m_xBitmapCtl->GetBitmapEx());
// #i123497# Need to replace the existing entry with a new one (old returned needs to be deleted)
m_pPatternList->Replace(o3tl::make_unique<XBitmapEntry>(Graphic(aBitmapEx), aName), nPos);
BitmapEx aBitmap = m_pPatternList->GetBitmapForPreview( static_cast<sal_uInt16>( nPos ), m_pPatternLB->GetIconSize() );
m_pPatternLB->RemoveItem(nId);
m_pPatternLB->InsertItem( nId, Image(aBitmap), aName, static_cast<sal_uInt16>(nPos) );
m_pPatternLB->SelectItem( nId );
BitmapEx aBitmap = m_pPatternList->GetBitmapForPreview( static_cast<sal_uInt16>( nPos ), m_xPatternLB->GetIconSize() );
m_xPatternLB->RemoveItem(nId);
m_xPatternLB->InsertItem( nId, Image(aBitmap), aName, static_cast<sal_uInt16>(nPos) );
m_xPatternLB->SelectItem( nId );
*m_pnPatternListState |= ChangeType::MODIFIED;
}
}
IMPL_LINK_NOARG(SvxPatternTabPage, ClickRenameHdl_Impl, SvxPresetListBox*, void)
IMPL_LINK_NOARG(SvxPatternTabPage, ClickRenameHdl_Impl, PresetListBox*, void)
{
size_t nPos = m_pPatternLB->GetSelectItemPos();
sal_Int32 nId = m_pPatternLB->GetSelectedItemId();
size_t nPos = m_xPatternLB->GetSelectItemPos();
sal_Int32 nId = m_xPatternLB->GetSelectedItemId();
if ( nPos != VALUESET_ITEM_NOTFOUND )
{
@@ -463,7 +447,7 @@
OUString aName(m_pPatternList->GetBitmap(nPos)->GetName());
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetFrameWeld(), aName, aDesc));
ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(GetTabDialog()->GetFrameWeld(), aName, aDesc));
bool bLoop = true;
@@ -479,14 +463,14 @@
m_pPatternList->GetBitmap(nPos)->SetName(aName);
m_pPatternLB->SetItemText( nId, aName );
m_pPatternLB->SelectItem( nId );
m_xPatternLB->SetItemText( nId, aName );
m_xPatternLB->SelectItem( nId );
*m_pnPatternListState |= ChangeType::MODIFIED;
}
else
{
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
xWarnBox->run();
}
@@ -494,27 +478,27 @@
}
}
IMPL_LINK_NOARG(SvxPatternTabPage, ClickDeleteHdl_Impl, SvxPresetListBox*, void)
IMPL_LINK_NOARG(SvxPatternTabPage, ClickDeleteHdl_Impl, PresetListBox*, void)
{
sal_uInt16 nId = m_pPatternLB->GetSelectedItemId();
size_t nPos = m_pPatternLB->GetSelectItemPos();
sal_uInt16 nId = m_xPatternLB->GetSelectedItemId();
size_t nPos = m_xPatternLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
{
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querydeletebitmapdialog.ui"));
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetTabDialog()->GetFrameWeld(), "cui/ui/querydeletebitmapdialog.ui"));
std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("AskDelBitmapDialog"));
if (xQueryBox->run() == RET_YES)
{
m_pPatternList->Remove(nPos);
m_pPatternLB->RemoveItem( nId );
nId = m_pPatternLB->GetItemId(0);
m_pPatternLB->SelectItem( nId );
m_pPatternLB->Resize();
m_xPatternLB->RemoveItem( nId );
nId = m_xPatternLB->GetItemId(0);
m_xPatternLB->SelectItem( nId );
m_xPatternLB->Resize();
m_pCtlPreview->Invalidate();
m_pCtlPixel->Invalidate();
m_aCtlPreview.Invalidate();
m_aCtlPixel.Invalidate();
ChangePatternHdl_Impl( m_pPatternLB );
ChangePatternHdl_Impl(m_xPatternLB.get());
*m_pnPatternListState |= ChangeType::MODIFIED;
}
@@ -522,56 +506,49 @@
// determine button state
if( !m_pPatternList->Count() )
{
m_pBtnModify->Disable();
m_xBtnModify->set_sensitive(false);
}
}
IMPL_LINK_NOARG(SvxPatternTabPage, ChangeColorHdl_Impl, SvxColorListBox&, void)
IMPL_LINK_NOARG(SvxPatternTabPage, ChangeColorHdl_Impl, ColorListBox&, void)
{
ChangeColor_Impl();
m_pPatternLB->SetNoSelection();
m_xPatternLB->SetNoSelection();
}
void SvxPatternTabPage::ChangeColor_Impl()
{
m_pCtlPixel->SetPixelColor( m_pLbColor->GetSelectEntryColor() );
m_pCtlPixel->SetBackgroundColor( m_pLbBackgroundColor->GetSelectEntryColor() );
m_pCtlPixel->Invalidate();
m_aCtlPixel.SetPixelColor( m_xLbColor->GetSelectEntryColor() );
m_aCtlPixel.SetBackgroundColor( m_xLbBackgroundColor->GetSelectEntryColor() );
m_aCtlPixel.Invalidate();
m_pBitmapCtl->SetPixelColor( m_pLbColor->GetSelectEntryColor() );
m_pBitmapCtl->SetBackgroundColor( m_pLbBackgroundColor->GetSelectEntryColor() );
m_xBitmapCtl->SetPixelColor( m_xLbColor->GetSelectEntryColor() );
m_xBitmapCtl->SetBackgroundColor( m_xLbBackgroundColor->GetSelectEntryColor() );
// get bitmap and display it
m_rXFSet.Put(XFillBitmapItem(OUString(), Graphic(m_pBitmapCtl->GetBitmapEx())));
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlPreview->Invalidate();
m_rXFSet.Put(XFillBitmapItem(OUString(), Graphic(m_xBitmapCtl->GetBitmapEx())));
m_aCtlPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlPreview.Invalidate();
}
void SvxPatternTabPage::PointChanged( vcl::Window* pWindow, RectPoint )
void SvxPatternTabPage::PointChanged( vcl::Window*, RectPoint )
{
if( pWindow == m_pCtlPixel )
assert(false);
}
void SvxPatternTabPage::PointChanged(weld::DrawingArea* pDrawingArea, RectPoint)
{
if (pDrawingArea == m_aCtlPixel.GetDrawingArea())
{
m_pBitmapCtl->SetBmpArray( m_pCtlPixel->GetBitmapPixelPtr() );
m_xBitmapCtl->SetBmpArray(m_aCtlPixel.GetBitmapPixelPtr());
// get bitmap and display it
m_rXFSet.Put(XFillBitmapItem(OUString(), Graphic(m_pBitmapCtl->GetBitmapEx())));
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlPreview->Invalidate();
m_rXFSet.Put(XFillBitmapItem(OUString(), Graphic(m_xBitmapCtl->GetBitmapEx())));
m_aCtlPreview.SetAttributes( m_aXFillAttr.GetItemSet() );
m_aCtlPreview.Invalidate();
}
m_pPatternLB->SetNoSelection();
}
void SvxPatternTabPage::PointChanged( weld::DrawingArea*, RectPoint )
{
m_pBitmapCtl->SetBmpArray( m_pCtlPixel->GetBitmapPixelPtr() );
// get bitmap and display it
m_rXFSet.Put(XFillBitmapItem(OUString(), Graphic(m_pBitmapCtl->GetBitmapEx())));
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
m_pCtlPreview->Invalidate();
m_pPatternLB->SetNoSelection();
m_xPatternLB->SetNoSelection();
}
sal_Int32 SvxPatternTabPage::SearchPatternList(const OUString& rPatternName)
diff --git a/cui/uiconfig/ui/areatabpage.ui b/cui/uiconfig/ui/areatabpage.ui
index f116581..6f21498 100644
--- a/cui/uiconfig/ui/areatabpage.ui
+++ b/cui/uiconfig/ui/areatabpage.ui
@@ -41,7 +41,7 @@
</packing>
</child>
<child>
<object class="GtkButton" id="btnnone">
<object class="GtkToggleButton" id="btnnone">
<property name="label" translatable="yes" context="areatabpage|btnnone">None</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -54,7 +54,7 @@
</packing>
</child>
<child>
<object class="GtkButton" id="btncolor">
<object class="GtkToggleButton" id="btncolor">
<property name="label" translatable="yes" context="areatabpage|btncolor">Color</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -67,7 +67,7 @@
</packing>
</child>
<child>
<object class="GtkButton" id="btngradient">
<object class="GtkToggleButton" id="btngradient">
<property name="label" translatable="yes" context="areatabpage|btngradient">Gradient</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -80,7 +80,7 @@
</packing>
</child>
<child>
<object class="GtkButton" id="btnbitmap">
<object class="GtkToggleButton" id="btnbitmap">
<property name="label" translatable="yes" context="areatabpage|btnbitmap">Bitmap</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -93,7 +93,7 @@
</packing>
</child>
<child>
<object class="GtkButton" id="btnpattern">
<object class="GtkToggleButton" id="btnpattern">
<property name="label" translatable="yes" context="areatabpage|btnpattern">Pattern</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -106,7 +106,7 @@
</packing>
</child>
<child>
<object class="GtkButton" id="btnhatch">
<object class="GtkToggleButton" id="btnhatch">
<property name="label" translatable="yes" context="areatabpage|btnhatch">Hatch</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
diff --git a/cui/uiconfig/ui/bitmaptabpage.ui b/cui/uiconfig/ui/bitmaptabpage.ui
index 69ebb75..7879259 100644
--- a/cui/uiconfig/ui/bitmaptabpage.ui
+++ b/cui/uiconfig/ui/bitmaptabpage.ui
@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<!-- Generated with glade 3.22.1 -->
<interface domain="cui">
<requires lib="gtk+" version="3.18"/>
<requires lib="LibreOffice" version="1.0"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">100</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkBox" id="BitmapTabPage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="border_width">6</property>
<property name="spacing">6</property>
<child>
@@ -23,17 +29,35 @@
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
<object class="GtkVBox" id="box1">
<object class="GtkBox" id="box1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="svxcorelo-SvxPresetListBox" id="BITMAP">
<object class="GtkScrolledWindow" id="bitmapwin">
<property name="visible">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>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkDrawingArea" id="BITMAP">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
@@ -171,7 +195,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="bitmaptabpage|label5">Width:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">width:0%</property>
<property name="mnemonic_widget">width</property>
</object>
<packing>
<property name="expand">False</property>
@@ -180,7 +204,7 @@
</packing>
</child>
<child>
<object class="GtkSpinButton" id="width:0%">
<object class="GtkSpinButton" id="width">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
@@ -197,7 +221,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="bitmaptabpage|label6">Height:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">height:0%</property>
<property name="mnemonic_widget">height</property>
</object>
<packing>
<property name="expand">False</property>
@@ -206,7 +230,7 @@
</packing>
</child>
<child>
<object class="GtkSpinButton" id="height:0%">
<object class="GtkSpinButton" id="height">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
@@ -328,7 +352,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="bitmaptabpage|label10">X-Offset:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">posoffx:0%</property>
<property name="mnemonic_widget">posoffx</property>
</object>
<packing>
<property name="expand">False</property>
@@ -337,7 +361,7 @@
</packing>
</child>
<child>
<object class="GtkSpinButton" id="posoffx:0%">
<object class="GtkSpinButton" id="posoffx">
<property name="visible">True</property>
<property name="can_focus">True</property>
</object>
@@ -353,7 +377,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="bitmaptabpage|label11">Y-Offset:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">posoffy:0%</property>
<property name="mnemonic_widget">posoffy</property>
</object>
<packing>
<property name="expand">False</property>
@@ -362,7 +386,7 @@
</packing>
</child>
<child>
<object class="GtkSpinButton" id="posoffy:0%">
<object class="GtkSpinButton" id="posoffy">
<property name="visible">True</property>
<property name="can_focus">True</property>
</object>
@@ -429,10 +453,11 @@
</packing>
</child>
<child>
<object class="GtkSpinButton" id="tileoffmtr:0%">
<object class="GtkSpinButton" id="tileoffmtr">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="adjustment">adjustment1</property>
</object>
<packing>
<property name="expand">False</property>
@@ -498,14 +523,31 @@
<property name="valign">start</property>
<property name="orientation">vertical</property>
<child>
<object class="svxlo-SvxXRectPreview" id="CTL_BITMAP_PREVIEW">
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="CTL_BITMAP_PREVIEW-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="bitmaptabpage|CTL_BITMAP_PREVIEW-atkobject">Example</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>
<child>
<object class="GtkDrawingArea" id="CTL_BITMAP_PREVIEW">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="CTL_BITMAP_PREVIEW-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="bitmaptabpage|CTL_BITMAP_PREVIEW-atkobject">Example</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/colorpage.ui b/cui/uiconfig/ui/colorpage.ui
index a629ee08..431f0a7 100644
--- a/cui/uiconfig/ui/colorpage.ui
+++ b/cui/uiconfig/ui/colorpage.ui
@@ -319,14 +319,31 @@
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkDrawingArea" id="oldpreview">
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="oldpreview-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="colorpage|oldpreview-atkobject">Old Color</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>
<child>
<object class="GtkDrawingArea" id="oldpreview">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="oldpreview-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="colorpage|oldpreview-atkobject">Old Color</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
@@ -621,14 +638,31 @@
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkDrawingArea" id="newpreview">
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="newpreview-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="colorpage|newpreview-atkobject">New Color</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>
<child>
<object class="GtkDrawingArea" id="newpreview">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="newpreview-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="colorpage|newpreview-atkobject">New Color</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/gradientpage.ui b/cui/uiconfig/ui/gradientpage.ui
index f275b93..2021908 100644
--- a/cui/uiconfig/ui/gradientpage.ui
+++ b/cui/uiconfig/ui/gradientpage.ui
@@ -1,14 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<!-- Generated with glade 3.22.1 -->
<interface domain="cui">
<requires lib="gtk+" version="3.18"/>
<requires lib="LibreOffice" version="1.0"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="lower">3</property>
<property name="upper">256</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment2">
<property name="lower">3</property>
<property name="upper">256</property>
<property name="value">3</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment3">
<property name="upper">100</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="angleadjustment">
<property name="upper">359</property>
<property name="step_increment">15</property>
@@ -17,6 +28,22 @@
<property name="upper">100</property>
<property name="step_increment">5</property>
</object>
<object class="GtkAdjustment" id="percentadjustment1">
<property name="upper">100</property>
<property name="step_increment">5</property>
</object>
<object class="GtkAdjustment" id="percentadjustment2">
<property name="upper">100</property>
<property name="step_increment">5</property>
</object>
<object class="GtkAdjustment" id="percentadjustment3">
<property name="upper">100</property>
<property name="step_increment">5</property>
</object>
<object class="GtkAdjustment" id="percentadjustment4">
<property name="upper">100</property>
<property name="step_increment">5</property>
</object>
<object class="GtkBox" id="GradientPage">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -41,11 +68,28 @@
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="svxcorelo-SvxPresetListBox" id="gradientpresetlist">
<object class="GtkScrolledWindow" id="gradientpresetlistwin">
<property name="visible">True</property>
<property name="can_focus">False</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>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkDrawingArea" id="gradientpresetlist">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
@@ -210,6 +254,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="adjustment">adjustment2</property>
<property name="round_digits">1</property>
<property name="draw_value">False</property>
</object>
@@ -271,7 +316,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="gradientpage|angleft">A_ngle:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">anglemtr:0degrees</property>
<property name="mnemonic_widget">anglemtr</property>
<property name="xalign">0</property>
<property name="yalign">0.43999999761581421</property>
</object>
@@ -281,7 +326,7 @@
</packing>
</child>
<child>
<object class="GtkSpinButton" id="anglemtr:0degrees">
<object class="GtkSpinButton" id="anglemtr">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">angleadjustment</property>
@@ -312,11 +357,11 @@
<property name="hexpand">True</property>
<property name="spacing">6</property>
<child>
<object class="GtkSpinButton" id="centerxmtr:%">
<object class="GtkSpinButton" id="centerxmtr">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="adjustment">percentadjustment</property>
<property name="adjustment">percentadjustment3</property>
</object>
<packing>
<property name="expand">True</property>
@@ -325,11 +370,11 @@
</packing>
</child>
<child>
<object class="GtkSpinButton" id="centerymtr:%">
<object class="GtkSpinButton" id="centerymtr">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="adjustment">percentadjustment</property>
<property name="adjustment">percentadjustment4</property>
</object>
<packing>
<property name="expand">True</property>
@@ -363,7 +408,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="gradientpage|borderft">_Border:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">bordermtr:%</property>
<property name="mnemonic_widget">bordermtr</property>
<property name="xalign">0</property>
<property name="yalign">0.43999999761581421</property>
</object>
@@ -377,6 +422,8 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="adjustment">adjustment3</property>
<property name="fill_level">0</property>
<property name="round_digits">1</property>
<property name="draw_value">False</property>
</object>
@@ -386,7 +433,7 @@
</packing>
</child>
<child>
<object class="GtkSpinButton" id="bordermtr:%">
<object class="GtkSpinButton" id="bordermtr">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="halign">end</property>
@@ -429,11 +476,14 @@
</packing>
</child>
<child>
<object class="svxcorelo-SvxColorListBox" id="colorfromlb">
<object class="GtkMenuButton" id="colorfromlb">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="entry_text_column">0</property>
<property name="id_column">1</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="left_attach">0</property>
@@ -441,11 +491,11 @@
</packing>
</child>
<child>
<object class="GtkSpinButton" id="colorfrommtr:%">
<object class="GtkSpinButton" id="colorfrommtr">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="margin_left">6</property>
<property name="adjustment">percentadjustment</property>
<property name="adjustment">percentadjustment1</property>
</object>
<packing>
<property name="left_attach">1</property>
@@ -470,11 +520,14 @@
<property name="row_spacing">3</property>
<property name="column_spacing">6</property>
<child>
<object class="svxcorelo-SvxColorListBox" id="colortolb">
<object class="GtkMenuButton" id="colortolb">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="entry_text_column">0</property>
<property name="id_column">1</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="left_attach">0</property>
@@ -482,11 +535,11 @@
</packing>
</child>
<child>
<object class="GtkSpinButton" id="colortomtr:%">
<object class="GtkSpinButton" id="colortomtr">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="margin_left">6</property>
<property name="adjustment">percentadjustment</property>
<property name="adjustment">percentadjustment2</property>
</object>
<packing>
<property name="left_attach">1</property>
@@ -526,7 +579,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="gradientpage|a11y_center_x">Center X</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">centerxmtr:%</property>
<property name="mnemonic_widget">centerxmtr</property>
</object>
<packing>
<property name="expand">False</property>
@@ -540,7 +593,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="gradientpage|a11y_center_y">Center Y</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">centerymtr:%</property>
<property name="mnemonic_widget">centerymtr</property>
</object>
<packing>
<property name="expand">False</property>
@@ -554,7 +607,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="gradientpage|a11y_percentage_from">From color percentage</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">colorfrommtr:%</property>
<property name="mnemonic_widget">colorfrommtr</property>
</object>
<packing>
<property name="expand">False</property>
@@ -568,7 +621,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="gradientpage|a11y_percentage_to">To color percentage</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">colortomtr:%</property>
<property name="mnemonic_widget">colortomtr</property>
</object>
<packing>
<property name="expand">False</property>
@@ -628,14 +681,31 @@
<property name="valign">start</property>
<property name="orientation">vertical</property>
<child>
<object class="svxlo-SvxXRectPreview" id="previewctl">
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="previewctl-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="gradientpage|previewctl-atkobject">Example</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>
<child>
<object class="GtkDrawingArea" id="previewctl">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="previewctl-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="gradientpage|previewctl-atkobject">Example</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/hatchpage.ui b/cui/uiconfig/ui/hatchpage.ui
index 4fcf069..e55dc25 100644
--- a/cui/uiconfig/ui/hatchpage.ui
+++ b/cui/uiconfig/ui/hatchpage.ui
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.16.1 -->
<!-- Generated with glade 3.22.1 -->
<interface domain="cui">
<requires lib="gtk+" version="3.18"/>
<!-- interface-requires LibreOffice 1.0 -->
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">359</property>
<property name="step_increment">15</property>
@@ -43,12 +42,29 @@
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="svxcorelo-SvxPresetListBox" id="hatchpresetlist">
<object class="GtkScrolledWindow" id="hatchpresetlistwin">
<property name="visible">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>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child>
<object class="GtkDrawingArea" id="hatchpresetlist">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
@@ -144,9 +160,10 @@
<object class="GtkLabel" id="distanceft">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="hatchpage|distanceft">_Spacing:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">distancemtr</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -155,7 +172,7 @@
</packing>
</child>
<child>
<object class="GtkSpinButton" id="distancemtr:0mm">
<object class="GtkSpinButton" id="distancemtr">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">distanceadjustment</property>
@@ -170,9 +187,9 @@
<object class="GtkLabel" id="angleft">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="hatchpage|angleft">A_ngle:</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -201,7 +218,7 @@
</packing>
</child>
<child>
<object class="GtkSpinButton" id="anglemtr:0degrees">
<object class="GtkSpinButton" id="anglemtr">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">angleadjustment</property>
@@ -223,9 +240,10 @@
<object class="GtkLabel" id="linetypeft">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="hatchpage|linetypeft">_Line type:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">linetypelb</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -253,9 +271,10 @@
<object class="GtkLabel" id="linecolorft">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="hatchpage|linecolorft">Line _color:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">linecolorlb</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -264,10 +283,17 @@
</packing>
</child>
<child>
<object class="svxcorelo-SvxColorListBox" id="linecolorlb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<object class="GtkMenuButton" id="linecolorlb">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="receives_default">False</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="xalign">0</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
@@ -283,6 +309,9 @@
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
<accessibility>
<relation type="label-for" target="backgroundcolorlb"/>
</accessibility>
</object>
<packing>
<property name="expand">False</property>
@@ -291,10 +320,20 @@
</packing>
</child>
<child>
<object class="svxcorelo-SvxColorListBox" id="backgroundcolorlb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<object class="GtkMenuButton" id="backgroundcolorlb">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="receives_default">False</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="xalign">0</property>
<child>
<placeholder/>
</child>
<accessibility>
<relation type="labelled-by" target="backgroundcolor"/>
</accessibility>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
@@ -346,17 +385,34 @@
<property name="valign">start</property>
<property name="orientation">vertical</property>
<child>
<object class="svxlo-SvxXRectPreview" id="previewctl">
<object class="GtkScrolledWindow">
<property name="visible">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>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="previewctl-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="hatchpage|previewctl-atkobject">Example</property>
<child>
<object class="GtkDrawingArea" id="previewctl">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="previewctl-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="hatchpage|previewctl-atkobject">Example</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
diff --git a/cui/uiconfig/ui/patterntabpage.ui b/cui/uiconfig/ui/patterntabpage.ui
index 142eea4..57bf90c 100644
--- a/cui/uiconfig/ui/patterntabpage.ui
+++ b/cui/uiconfig/ui/patterntabpage.ui
@@ -1,11 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.16.1 -->
<!-- Generated with glade 3.22.1 -->
<interface domain="cui">
<requires lib="gtk+" version="3.18"/>
<!-- interface-requires LibreOffice 1.0 -->
<object class="GtkBox" id="PatternTabPage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="border_width">6</property>
<property name="spacing">6</property>
<child>
@@ -27,11 +28,28 @@
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="svxcorelo-SvxPresetListBox" id="patternpresetlist">
<object class="GtkScrolledWindow" id="patternpresetlistwin">
<property name="visible">True</property>
<property name="can_focus">False</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>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkDrawingArea" id="patternpresetlist">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
@@ -131,8 +149,8 @@
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="patterntabpage|label4">Pattern Editor:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -141,14 +159,31 @@
</packing>
</child>
<child>
<object class="svxlo-SvxPixelCtl" id="CTL_PIXEL">
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="can_focus">True</property>
<property name="halign">start</property>
<property name="valign">start</property>
<child internal-child="accessible">
<object class="AtkObject" id="CTL_PIXEL-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="patterntabpage|CTL_PIXEL-atkobject">Pattern Editor</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>
<child>
<object class="GtkDrawingArea" id="CTL_PIXEL">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<child internal-child="accessible">
<object class="AtkObject" id="CTL_PIXEL-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="patterntabpage|CTL_PIXEL-atkobject">Pattern Editor</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
@@ -175,8 +210,10 @@
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="patterntabpage|label5">Foreground Color:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">LB_COLOR</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -185,10 +222,14 @@
</packing>
</child>
<child>
<object class="svxcorelo-SvxColorListBox" id="LB_COLOR">
<object class="GtkMenuButton" id="LB_COLOR">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
@@ -213,8 +254,10 @@
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="patterntabpage|label6">Background Color:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">LB_BACKGROUND_COLOR</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -223,10 +266,14 @@
</packing>
</child>
<child>
<object class="svxcorelo-SvxColorListBox" id="LB_BACKGROUND_COLOR">
<object class="GtkMenuButton" id="LB_BACKGROUND_COLOR">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
@@ -285,17 +332,34 @@
<property name="valign">start</property>
<property name="orientation">vertical</property>
<child>
<object class="svxlo-SvxXRectPreview" id="CTL_PREVIEW">
<object class="GtkScrolledWindow">
<property name="visible">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>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="CTL_PREVIEW-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="patterntabpage|CTL_PREVIEW-atkobject">Example</property>
<child>
<object class="GtkDrawingArea" id="CTL_PREVIEW">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="CTL_PREVIEW-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="patterntabpage|CTL_PREVIEW-atkobject">Example</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
diff --git a/extras/source/glade/libreoffice-catalog.xml.in b/extras/source/glade/libreoffice-catalog.xml.in
index 994bdd3..3e9db8c 100644
--- a/extras/source/glade/libreoffice-catalog.xml.in
+++ b/extras/source/glade/libreoffice-catalog.xml.in
@@ -284,9 +284,6 @@
<glade-widget-class title="Shadow Preview" name="svxlo-SvxXShadowPreview"
generic-name="Shadow Preview Window" parent="GtkDrawingArea"
icon-name="widget-gtk-drawingarea"/>
<glade-widget-class title="Bitmap Pixel Editor" name="svxlo-SvxPixelCtl"
generic-name="Bitmap Pixel Editor" parent="GtkDrawingArea"
icon-name="widget-gtk-drawingarea"/>
<glade-widget-class title="Svx 3D Light Control" name="svxlo-SvxLightCtl3D"
generic-name="3D Light Control" parent="GtkDrawingArea"
icon-name="widget-gtk-drawingarea"/>
diff --git a/include/sfx2/tabdlg.hxx b/include/sfx2/tabdlg.hxx
index ebcaf8c1..d0c28f1 100644
--- a/include/sfx2/tabdlg.hxx
+++ b/include/sfx2/tabdlg.hxx
@@ -352,7 +352,9 @@
}
SfxTabDialog* GetTabDialog() const;
public:
void SetTabDialog(SfxTabDialog* pDialog);
protected:
SfxTabDialogController* GetDialogController() const;
void SetDialogController(SfxTabDialogController* pDialog);
@@ -394,6 +396,12 @@
css::uno::Reference< css::frame::XFrame > GetFrame();
OString GetConfigId() const;
//TODO rename to get_preferred_size when SfxTabPage doesn't inherit from anything
Size get_container_size() const
{
return m_xContainer->get_preferred_size();
}
};
#endif
diff --git a/include/svtools/valueset.hxx b/include/svtools/valueset.hxx
index 1e2921b..9acfd77 100644
--- a/include/svtools/valueset.hxx
+++ b/include/svtools/valueset.hxx
@@ -495,6 +495,9 @@
void SetStyle(WinBits nStyle);
WinBits GetStyle() const { return mnStyle; }
/// Insert @rImage item with @rStr as either a legend or tooltip depending on @bShowLegend.
void InsertItem(sal_uInt16 nItemId, const Image& rImage,
const OUString& rStr, size_t nPos = VALUESET_APPEND, bool bShowLegend = false);
/// Insert an @rColor item with @rStr tooltip.
void InsertItem(sal_uInt16 nItemId, const Color& rColor,
const OUString& rStr);
@@ -533,12 +536,15 @@
}
Color GetItemColor( sal_uInt16 nItemId ) const;
void SetItemText( sal_uInt16 nItemId, const OUString& rStr );
OUString GetItemText( sal_uInt16 nItemId ) const;
bool IsColor() const
{
return maColor.GetTransparency() == 0;
}
void SetExtraSpacing( sal_uInt16 nNewSpacing );
void Format(vcl::RenderContext const & rRenderContext);
Size CalcWindowSizePixel(const Size& rItemSize,
diff --git a/include/svx/SvxPresetListBox.hxx b/include/svx/SvxPresetListBox.hxx
index c9c75a5..c886032 100644
--- a/include/svx/SvxPresetListBox.hxx
+++ b/include/svx/SvxPresetListBox.hxx
@@ -65,6 +65,45 @@
};
class SVX_DLLPUBLIC PresetListBox : public SvtValueSet
{
private:
sal_uInt32 nColCount;
Size aIconSize;
Link<PresetListBox*,void> maRenameHdl;
Link<PresetListBox*,void> maDeleteHdl;
void OnMenuItemSelected(const OString& rIdent);
template< typename ListType, typename EntryType >
void FillPresetListBoxImpl(ListType& pList, sal_uInt32 nStartIndex);
public:
PresetListBox(std::unique_ptr<weld::ScrolledWindow> pWindow);
virtual void Resize() override;
virtual bool ContextMenu(const Point& rPos) override;
sal_uInt32 getColumnCount() const { return nColCount; }
Size const & GetIconSize() const { return aIconSize; }
void SetRenameHdl( const Link<PresetListBox*,void>& rLink )
{
maRenameHdl = rLink;
}
void SetDeleteHdl( const Link<PresetListBox*,void>& rLink )
{
maDeleteHdl = rLink;
}
void FillPresetListBox(XGradientList& pList, sal_uInt32 nStartIndex = 1);
void FillPresetListBox(XHatchList& pList, sal_uInt32 nStartIndex = 1);
void FillPresetListBox(XBitmapList& pList, sal_uInt32 nStartIndex = 1);
void FillPresetListBox(XPatternList& pList, sal_uInt32 nStartIndex = 1);
void DrawLayout();
};
#endif // INCLUDED_SVX_SVXPRESETLISTBOX_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/svx/colorbox.hxx b/include/svx/colorbox.hxx
index efa949d..6ce1d61 100644
--- a/include/svx/colorbox.hxx
+++ b/include/svx/colorbox.hxx
@@ -119,6 +119,7 @@
}
Color const & GetSelectEntryColor() const { return m_aSelectedColor.first; }
NamedColor const & GetSelectedEntry() const { return m_aSelectedColor; }
void SelectEntry(const Color& rColor);
@@ -129,6 +130,8 @@
void SaveValue() { m_aSaveColor = GetSelectEntryColor(); }
bool IsValueChangedFromSaved() const { return m_aSaveColor != GetSelectEntryColor(); }
void set_sensitive(bool sensitive) { m_xButton->set_sensitive(sensitive); }
};
/** A wrapper for SvxColorListBox. */
diff --git a/include/svx/dlgctrl.hxx b/include/svx/dlgctrl.hxx
index a355c50..467dc8a 100644
--- a/include/svx/dlgctrl.hxx
+++ b/include/svx/dlgctrl.hxx
@@ -216,11 +216,14 @@
|* Control for editing bitmaps
\************************************************************************/
class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxPixelCtl final : public Control
class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxPixelCtl final : public weld::CustomWidgetController
{
private:
static sal_uInt16 constexpr nLines = 8;
static sal_uInt16 constexpr nSquares = nLines * nLines;
VclPtr<SvxTabPage> m_pPage;
Color aPixelColor;
Color aBackgroundColor;
Size aRectSize;
@@ -230,20 +233,24 @@
Point aFocusPosition;
rtl::Reference<SvxPixelCtlAccessible> m_xAccess;
using OutputDevice::SetLineColor;
tools::Rectangle implCalFocusRect( const Point& aPosition );
void ChangePixel( sal_uInt16 nPixel );
SvxPixelCtl(SvxPixelCtl const&) = delete;
SvxPixelCtl(SvxPixelCtl&&) = delete;
SvxPixelCtl& operator=(SvxPixelCtl const&) = delete;
SvxPixelCtl& operator=(SvxPixelCtl&&) = delete;
public:
SvxPixelCtl( vcl::Window* pParent );
SvxPixelCtl(SvxTabPage* pPage);
virtual ~SvxPixelCtl() override;
virtual void SetDrawingArea(weld::DrawingArea* pDrawingArea) override;
virtual void Paint( vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect ) override;
virtual void MouseButtonDown( const MouseEvent& rMEvt ) override;
virtual void Resize() override;
virtual Size GetOptimalSize() const override;
virtual tools::Rectangle GetFocusRect() override;
void SetXBitmap( const BitmapEx& rBitmapEx );
@@ -257,10 +264,15 @@
void SetPaintable( bool bTmp ) { bPaintable = bTmp; }
void Reset();
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override;
css::uno::Reference<css::accessibility::XAccessible> getAccessibleParent() { return GetDrawingArea()->get_accessible_parent(); }
virtual css::uno::Reference<css::accessibility::XAccessible> CreateAccessible() override;
a11yrelationset get_accessible_relation_set() { return GetDrawingArea()->get_accessible_relation_set(); }
static long GetSquares() { return nSquares ; }
long GetWidth() const { return aRectSize.getWidth() ; }
long GetHeight() const { return aRectSize.getHeight() ; }
SvxTabPage* GetTabPage() const { return m_pPage; }
//Device Pixel .
long ShowPosition( const Point &pt);
@@ -269,7 +281,7 @@
Point IndexToPoint(long nIndex) const ;
long GetFocusPosIndex() const ;
//Keyboard function for key input and focus handling function
virtual void KeyInput( const KeyEvent& rKEvt ) override;
virtual bool KeyInput( const KeyEvent& rKEvt ) override;
virtual void GetFocus() override;
virtual void LoseFocus() override;
};
@@ -406,6 +418,11 @@
// change support
virtual void StyleUpdated() override;
void SetDrawMode(DrawModeFlags nDrawMode)
{
mpBufferDevice->SetDrawMode(nDrawMode);
}
// dada read access
SdrModel& getModel() const
{
diff --git a/include/vcl/customweld.hxx b/include/vcl/customweld.hxx
index f6770c8..167b5b9 100644
--- a/include/vcl/customweld.hxx
+++ b/include/vcl/customweld.hxx
@@ -33,6 +33,7 @@
virtual void GetFocus() {}
virtual void LoseFocus() {}
virtual void StyleUpdated() { Invalidate(); }
virtual bool ContextMenu(const Point&) { return false; }
virtual bool KeyInput(const KeyEvent&) { return false; }
virtual tools::Rectangle GetFocusRect() { return tools::Rectangle(); }
virtual FactoryFunction GetUITestFactory() const { return nullptr; }
@@ -57,6 +58,10 @@
bool IsEnabled() const { return m_pDrawingArea->get_sensitive(); }
int GetTextHeight() const { return m_pDrawingArea->get_text_height(); }
OUString GetAccessibleName() const { return m_pDrawingArea->get_accessible_name(); }
OUString GetAccessibleDescription() const
{
return m_pDrawingArea->get_accessible_description();
}
void CaptureMouse() { m_pDrawingArea->grab_add(); }
bool IsMouseCaptured() const { return m_pDrawingArea->has_grab(); }
void EnableRTL(bool bEnable) { m_pDrawingArea->set_direction(bEnable); }
@@ -95,6 +100,7 @@
DECL_LINK(DoLoseFocus, weld::Widget&, void);
DECL_LINK(DoKeyPress, const KeyEvent&, bool);
DECL_LINK(DoFocusRect, weld::Widget&, tools::Rectangle);
DECL_LINK(DoPopupMenu, const Point&, bool);
DECL_LINK(DoStyleUpdated, weld::Widget&, void);
DECL_LINK(DoRequestHelp, tools::Rectangle&, OUString);
diff --git a/include/vcl/layout.hxx b/include/vcl/layout.hxx
index d33a942..50fd576 100644
--- a/include/vcl/layout.hxx
+++ b/include/vcl/layout.hxx
@@ -620,6 +620,7 @@
Link<const KeyEvent&, bool> m_aKeyPressHdl;
Link<const KeyEvent&, bool> m_aKeyReleaseHdl;
Link<VclDrawingArea&, void> m_aStyleUpdatedHdl;
Link<const Point&, bool> m_aPopupMenuHdl;
Link<tools::Rectangle&, OUString> m_aQueryTooltipHdl;
virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override
@@ -671,6 +672,12 @@
Invalidate();
}
}
virtual void Command(const CommandEvent& rEvent) override
{
if (rEvent.GetCommand() == CommandEventId::ContextMenu && m_aPopupMenuHdl.Call(rEvent.GetMousePosPixel()))
return;
Control::Command(rEvent);
}
virtual void RequestHelp(const HelpEvent& rHelpEvent) override
{
if (rHelpEvent.GetMode() & (HelpEventMode::QUICK | HelpEventMode::BALLOON))
@@ -745,6 +752,10 @@
{
m_aStyleUpdatedHdl = rLink;
}
void SetPopupMenuHdl(const Link<const Point&, bool>& rLink)
{
m_aPopupMenuHdl = rLink;
}
void SetQueryTooltipHdl(const Link<tools::Rectangle&, OUString>& rLink)
{
m_aQueryTooltipHdl = rLink;
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index cee22af..74ad380 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -82,6 +82,8 @@
virtual void set_accessible_name(const OUString& rName) = 0;
virtual OUString get_accessible_name() const = 0;
virtual OUString get_accessible_description() const = 0;
virtual void set_tooltip_text(const OUString& rTip) = 0;
virtual void connect_focus_in(const Link<Widget&, void>& rLink)
@@ -845,6 +847,7 @@
Link<const KeyEvent&, bool> m_aKeyPressHdl;
Link<const KeyEvent&, bool> m_aKeyReleaseHdl;
Link<Widget&, void> m_aStyleUpdatedHdl;
Link<const Point&, bool> m_aPopupMenuHdl;
Link<Widget&, tools::Rectangle> m_aGetFocusRectHdl;
Link<tools::Rectangle&, OUString> m_aQueryTooltipHdl;
@@ -871,6 +874,7 @@
void connect_key_press(const Link<const KeyEvent&, bool>& rLink) { m_aKeyPressHdl = rLink; }
void connect_key_release(const Link<const KeyEvent&, bool>& rLink) { m_aKeyReleaseHdl = rLink; }
void connect_style_updated(const Link<Widget&, void>& rLink) { m_aStyleUpdatedHdl = rLink; }
void connect_popup_menu(const Link<const Point&, bool>& rLink) { m_aPopupMenuHdl = rLink; }
void connect_focus_rect(const Link<Widget&, tools::Rectangle>& rLink)
{
m_aGetFocusRectHdl = rLink;
diff --git a/solenv/sanitizers/ui/cui.suppr b/solenv/sanitizers/ui/cui.suppr
index b503cb8..e14c833 100644
--- a/solenv/sanitizers/ui/cui.suppr
+++ b/solenv/sanitizers/ui/cui.suppr
@@ -49,7 +49,7 @@
cui/uiconfig/ui/baselinksdialog.ui://GtkLabel[@id='FULL_TYPE_NAME'] orphan-label
cui/uiconfig/ui/bitmaptabpage.ui://GtkLabel[@id='label4'] orphan-label
cui/uiconfig/ui/bitmaptabpage.ui://GtkLabel[@id='label9'] orphan-label
cui/uiconfig/ui/bitmaptabpage.ui://GtkSpinButton[@id='tileoffmtr:0%'] no-labelled-by
cui/uiconfig/ui/bitmaptabpage.ui://GtkSpinButton[@id='tileoffmtr'] no-labelled-by
cui/uiconfig/ui/blackorwhitelistentrydialog.ui://GtkComboBox[@id='os'] no-labelled-by
cui/uiconfig/ui/blackorwhitelistentrydialog.ui://GtkEntry[@id='osversion'] no-labelled-by
cui/uiconfig/ui/blackorwhitelistentrydialog.ui://GtkEntry[@id='platformvendor'] no-labelled-by
@@ -235,16 +235,11 @@
cui/uiconfig/ui/hangulhanjaconversiondialog.ui://cuilo-SuggestionDisplay[@id='suggestions:border'] no-labelled-by
cui/uiconfig/ui/hangulhanjaconversiondialog.ui://GtkLabel[@id='label5'] orphan-label
cui/uiconfig/ui/hangulhanjaconversiondialog.ui://GtkLabel[@id='label6'] orphan-label
cui/uiconfig/ui/hatchpage.ui://GtkLabel[@id='distanceft'] orphan-label
cui/uiconfig/ui/hatchpage.ui://GtkSpinButton[@id='distancemtr:0mm'] no-labelled-by
cui/uiconfig/ui/hatchpage.ui://GtkLabel[@id='angleft'] orphan-label
cui/uiconfig/ui/hatchpage.ui://GtkScale[@id='angleslider'] no-labelled-by
cui/uiconfig/ui/hatchpage.ui://GtkSpinButton[@id='anglemtr:0degrees'] no-labelled-by
cui/uiconfig/ui/hatchpage.ui://GtkLabel[@id='linetypeft'] orphan-label
cui/uiconfig/ui/hatchpage.ui://GtkComboBoxText[@id='linetypelb'] no-labelled-by
cui/uiconfig/ui/hatchpage.ui://GtkLabel[@id='linecolorft'] orphan-label
cui/uiconfig/ui/hatchpage.ui://svxcorelo-SvxColorListBox[@id='linecolorlb'] no-labelled-by
cui/uiconfig/ui/hatchpage.ui://svxcorelo-SvxColorListBox[@id='backgroundcolorlb'] no-labelled-by
cui/uiconfig/ui/hatchpage.ui://GtkSpinButton[@id='anglemtr'] no-labelled-by
cui/uiconfig/ui/hatchpage.ui://GtkMenuButton[@id='linecolorlb'] button-no-label
cui/uiconfig/ui/hatchpage.ui://GtkMenuButton[@id='backgroundcolorlb'] button-no-label
cui/uiconfig/ui/hyperlinkdocpage.ui://GtkLabel[@id='url_label'] orphan-label
cui/uiconfig/ui/hyperlinkdocpage.ui://GtkLabel[@id='url'] orphan-label
cui/uiconfig/ui/hyphenate.ui://GtkLabel[@id='label1'] orphan-label
@@ -387,10 +382,8 @@
cui/uiconfig/ui/pastespecial.ui://GtkLabel[@id='label2'] orphan-label
cui/uiconfig/ui/pastespecial.ui://GtkLabel[@id='source'] orphan-label
cui/uiconfig/ui/patterntabpage.ui://GtkLabel[@id='label4'] orphan-label
cui/uiconfig/ui/patterntabpage.ui://GtkLabel[@id='label5'] orphan-label
cui/uiconfig/ui/patterntabpage.ui://svxcorelo-SvxColorListBox[@id='LB_COLOR'] no-labelled-by
cui/uiconfig/ui/patterntabpage.ui://GtkLabel[@id='label6'] orphan-label
cui/uiconfig/ui/patterntabpage.ui://svxcorelo-SvxColorListBox[@id='LB_BACKGROUND_COLOR'] no-labelled-by
cui/uiconfig/ui/patterntabpage.ui://GtkMenuButton[@id='LB_COLOR'] button-no-label
cui/uiconfig/ui/patterntabpage.ui://GtkMenuButton[@id='LB_BACKGROUND_COLOR'] button-no-label
cui/uiconfig/ui/percentdialog.ui://GtkSpinButton[@id='margin'] no-labelled-by
cui/uiconfig/ui/personalization_tab.ui://GtkButton[@id='default1'] button-no-label
cui/uiconfig/ui/personalization_tab.ui://GtkButton[@id='default2'] button-no-label
diff --git a/svtools/source/control/valueacc.cxx b/svtools/source/control/valueacc.cxx
index 2192435..d661c6f 100644
--- a/svtools/source/control/valueacc.cxx
+++ b/svtools/source/control/valueacc.cxx
@@ -1405,6 +1405,25 @@
return nRet;
}
void SvtValueItemAcc::FireAccessibleEvent( short nEventId, const uno::Any& rOldValue, const uno::Any& rNewValue )
{
if( !nEventId )
return;
::std::vector< uno::Reference< accessibility::XAccessibleEventListener > > aTmpListeners( mxEventListeners );
accessibility::AccessibleEventObject aEvtObject;
aEvtObject.EventId = nEventId;
aEvtObject.Source = static_cast<uno::XWeak*>(this);
aEvtObject.NewValue = rNewValue;
aEvtObject.OldValue = rOldValue;
for (auto const& tmpListener : aTmpListeners)
{
tmpListener->notifyEvent( aEvtObject );
}
}
SvtValueSetAcc::SvtValueSetAcc( SvtValueSet* pParent ) :
ValueSetAccComponentBase (m_aMutex),
mpParent( pParent ),
diff --git a/svtools/source/control/valueimp.hxx b/svtools/source/control/valueimp.hxx
index 7be6ca5..ee685d2 100644
--- a/svtools/source/control/valueimp.hxx
+++ b/svtools/source/control/valueimp.hxx
@@ -75,6 +75,7 @@
sal_uInt16 mnId;
sal_uInt8 meType;
bool mbVisible;
Image maImage;
Color maColor;
OUString maText;
css::uno::Reference< css::accessibility::XAccessible > mxAcc;
@@ -408,6 +409,8 @@
SvtValueItemAcc(SvtValueSetItem* pParent, bool bIsTransientChildrenDisabled);
virtual ~SvtValueItemAcc() override;
void FireAccessibleEvent( short nEventId, const css::uno::Any& rOldValue, const css::uno::Any& rNewValue );
static SvtValueItemAcc* getImplementation( const css::uno::Reference< css::uno::XInterface >& rxData ) throw();
public:
diff --git a/svtools/source/control/valueset.cxx b/svtools/source/control/valueset.cxx
index 50e674b..e45cf99 100644
--- a/svtools/source/control/valueset.cxx
+++ b/svtools/source/control/valueset.cxx
@@ -3463,17 +3463,28 @@
}
else
{
Size aImageSize = pItem->maImage.GetSizePixel();
Size aRectSize = aRect.GetSize();
Point aPos(aRect.Left(), aRect.Top());
aPos.AdjustX(aRectSize.Width() / 2 );
aPos.AdjustX((aRectSize.Width() - aImageSize.Width()) / 2 );
if (pItem->meType != VALUESETITEM_IMAGE_AND_TEXT)
aPos.AdjustY(aRectSize.Height() / 2 );
aPos.AdjustY((aRectSize.Height() - aImageSize.Height()) / 2 );
DrawImageFlags nImageStyle = DrawImageFlags::NONE;
if (!IsEnabled())
nImageStyle |= DrawImageFlags::Disable;
if (aImageSize.Width() > aRectSize.Width() ||
aImageSize.Height() > aRectSize.Height())
{
maVirDev->SetClipRegion(vcl::Region(aRect));
maVirDev->DrawImage(aPos, pItem->maImage, nImageStyle);
maVirDev->SetClipRegion();
}
else
maVirDev->DrawImage(aPos, pItem->maImage, nImageStyle);
if (pItem->meType == VALUESETITEM_IMAGE_AND_TEXT)
{
maVirDev->SetFont(rRenderContext.GetFont());
@@ -3638,6 +3649,18 @@
return aSize;
}
void SvtValueSet::InsertItem( sal_uInt16 nItemId, const Image& rImage,
const OUString& rText, size_t nPos,
bool bShowLegend )
{
SvtValueSetItem* pItem = new SvtValueSetItem( *this );
pItem->mnId = nItemId;
pItem->meType = bShowLegend ? VALUESETITEM_IMAGE_AND_TEXT : VALUESETITEM_IMAGE;
pItem->maImage = rImage;
pItem->maText = rText;
ImplInsertItem( pItem, nPos );
}
void SvtValueSet::InsertItem( sal_uInt16 nItemId, const Color& rColor,
const OUString& rText )
{
@@ -3771,4 +3794,52 @@
return OUString();
}
void SvtValueSet::SetExtraSpacing( sal_uInt16 nNewSpacing )
{
if ( GetStyle() & WB_ITEMBORDER )
{
mnSpacing = nNewSpacing;
mbFormat = true;
queue_resize();
if ( IsReallyVisible() && IsUpdateMode() )
Invalidate();
}
}
void SvtValueSet::SetItemText(sal_uInt16 nItemId, const OUString& rText)
{
size_t nPos = GetItemPos( nItemId );
if ( nPos == VALUESET_ITEM_NOTFOUND )
return;
SvtValueSetItem* pItem = mItemList[nPos];
// Remember old and new name for accessibility event.
Any aOldName;
Any aNewName;
OUString sString (pItem->maText);
aOldName <<= sString;
sString = rText;
aNewName <<= sString;
pItem->maText = rText;
if (!mbFormat && IsReallyVisible() && IsUpdateMode())
{
sal_uInt16 nTempId = mnSelItemId;
if (nTempId == nItemId)
Invalidate();
}
if (ImplHasAccessibleListeners())
{
Reference<XAccessible> xAccessible(pItem->GetAccessible( false/*bIsTransientChildrenDisabled*/));
SvtValueItemAcc* pValueItemAcc = static_cast<SvtValueItemAcc*>(xAccessible.get());
pValueItemAcc->FireAccessibleEvent(AccessibleEventId::NAME_CHANGED, aOldName, aNewName);
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/Executable_pixelctl.mk b/svx/Executable_pixelctl.mk
deleted file mode 100644
index 3140af4..0000000
--- a/svx/Executable_pixelctl.mk
+++ /dev/null
@@ -1,40 +0,0 @@
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
#
# 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/.
#
$(eval $(call gb_Executable_Executable,pixelctl))
$(eval $(call gb_Executable_use_api,pixelctl,\
offapi \
udkapi \
))
$(eval $(call gb_Executable_use_external,pixelctl,boost_headers))
$(eval $(call gb_Executable_set_include,pixelctl,\
$$(INCLUDE) \
-I$(SRCDIR)/vcl/inc \
-I$(SRCDIR)/svx/inc \
))
$(eval $(call gb_Executable_use_libraries,pixelctl,\
svx \
tl \
sal \
vcl \
cppu \
cppuhelper \
comphelper \
))
$(eval $(call gb_Executable_add_exception_objects,pixelctl,\
svx/workben/pixelctl \
))
# vim: set noet sw=4 ts=4:
diff --git a/svx/Module_svx.mk b/svx/Module_svx.mk
index da7c3b2..48ab6bc 100644
--- a/svx/Module_svx.mk
+++ b/svx/Module_svx.mk
@@ -44,8 +44,6 @@
Executable_gengal \
$(if $(filter-out MACOSX WNT,$(OS)), \
Package_gengal) \
$(if $(filter-out WNT,$(OS)), \
Executable_pixelctl) \
))
endif
diff --git a/svx/inc/pch/precompiled_svx.hxx b/svx/inc/pch/precompiled_svx.hxx
index 30f2dae..ec72315 100644
--- a/svx/inc/pch/precompiled_svx.hxx
+++ b/svx/inc/pch/precompiled_svx.hxx
@@ -13,7 +13,7 @@
manual changes will be rewritten by the next run of update_pch.sh (which presumably
also fixes all possible problems, so it's usually better to use it).
Generated on 2017-09-20 22:54:10 using:
Generated on 2018-08-29 17:19:11 using:
./bin/update_pch svx svx --cutoff=3 --exclude:system --exclude:module --include:local
If after updating build fails, use the following command to locate conflicting headers:
@@ -21,6 +21,7 @@
*/
#include <algorithm>
#include <array>
#include <cassert>
#include <climits>
#include <config_features.h>
@@ -34,7 +35,6 @@
#include <helpids.h>
#include <iomanip>
#include <limits.h>
#include <list>
#include <map>
#include <memory>
#include <ostream>
@@ -63,20 +63,31 @@
#include <rtl/instance.hxx>
#include <rtl/math.hxx>
#include <rtl/ref.hxx>
#include <rtl/strbuf.h>
#include <rtl/strbuf.hxx>
#include <rtl/string.h>
#include <rtl/string.hxx>
#include <rtl/stringutils.hxx>
#include <rtl/tencinfo.h>
#include <rtl/textenc.h>
#include <rtl/uri.hxx>
#include <rtl/ustrbuf.hxx>
#include <rtl/ustring.h>
#include <rtl/ustring.hxx>
#include <rtl/uuid.h>
#include <sal/config.h>
#include <sal/log.hxx>
#include <sal/macros.h>
#include <sal/saldllapi.h>
#include <sal/types.h>
#include <sal/typesizes.h>
#include <salhelper/simplereferenceobject.hxx>
#include <salhelper/singletonref.hxx>
#include <vcl/BitmapFilter.hxx>
#include <vcl/EnumContext.hxx>
#include <vcl/GraphicObject.hxx>
#include <vcl/IDialogRenderable.hxx>
#include <vcl/abstdlg.hxx>
#include <vcl/bitmap.hxx>
#include <vcl/bitmapex.hxx>
#include <vcl/builder.hxx>
@@ -87,6 +98,8 @@
#include <vcl/commandevent.hxx>
#include <vcl/commandinfoprovider.hxx>
#include <vcl/ctrl.hxx>
#include <vcl/cursor.hxx>
#include <vcl/customweld.hxx>
#include <vcl/dialog.hxx>
#include <vcl/dllapi.h>
#include <vcl/dockwin.hxx>
@@ -100,7 +113,6 @@
#include <vcl/font.hxx>
#include <vcl/gradient.hxx>
#include <vcl/graph.hxx>
#include <vcl/GraphicObject.hxx>
#include <vcl/group.hxx>
#include <vcl/idle.hxx>
#include <vcl/image.hxx>
@@ -112,6 +124,8 @@
#include <vcl/metric.hxx>
#include <vcl/outdev.hxx>
#include <vcl/region.hxx>
#include <vcl/salbtype.hxx>
#include <vcl/salgtype.hxx>
#include <vcl/scopedbitmapaccess.hxx>
#include <vcl/scrbar.hxx>
#include <vcl/settings.hxx>
@@ -126,6 +140,7 @@
#include <vcl/vclenum.hxx>
#include <vcl/vclptr.hxx>
#include <vcl/virdev.hxx>
#include <vcl/weld.hxx>
#include <vcl/window.hxx>
#include <vcl/wrkwin.hxx>
#include <avmedia/avmediadllapi.h>
@@ -140,11 +155,7 @@
#include <basegfx/polygon/b2dpolypolygon.hxx>
#include <basegfx/polygon/b2dpolypolygontools.hxx>
#include <basegfx/polygon/b3dpolypolygon.hxx>
#include <basegfx/range/b2drange.hxx>
#include <basegfx/range/b3drange.hxx>
#include <basegfx/range/basicrange.hxx>
#include <basegfx/tuple/b2dtuple.hxx>
#include <basegfx/vector/b2dvector.hxx>
#include <basegfx/vector/b2enums.hxx>
#include <basegfx/vector/b3dvector.hxx>
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
@@ -155,6 +166,7 @@
#include <com/sun/star/accessibility/TextSegment.hpp>
#include <com/sun/star/accessibility/XAccessible.hpp>
#include <com/sun/star/accessibility/XAccessibleContext.hpp>
#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
#include <com/sun/star/awt/FontDescriptor.hpp>
#include <com/sun/star/awt/FontSlant.hpp>
#include <com/sun/star/awt/GradientStyle.hpp>
@@ -183,7 +195,6 @@
#include <com/sun/star/drawing/DashStyle.hpp>
#include <com/sun/star/drawing/FillStyle.hpp>
#include <com/sun/star/drawing/LineCap.hpp>
#include <com/sun/star/drawing/PolyPolygonBezierCoords.hpp>
#include <com/sun/star/drawing/XShapeDescriptor.hpp>
#include <com/sun/star/drawing/XShapes.hpp>
#include <com/sun/star/embed/VerbDescriptor.hpp>
@@ -207,6 +218,7 @@
#include <com/sun/star/i18n/NumberFormatMapper.hpp>
#include <com/sun/star/i18n/ParseResult.hpp>
#include <com/sun/star/i18n/UnicodeScript.hpp>
#include <com/sun/star/i18n/WordType.hpp>
#include <com/sun/star/i18n/XCharacterClassification.hpp>
#include <com/sun/star/io/XInputStream.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
@@ -235,6 +247,7 @@
#include <com/sun/star/text/XTextRange.hpp>
#include <com/sun/star/text/XTextRangeCompare.hpp>
#include <com/sun/star/text/XTextRangeMover.hpp>
#include <com/sun/star/text/textfield/Type.hpp>
#include <com/sun/star/ui/XContextChangeEventListener.hpp>
#include <com/sun/star/ui/XSidebar.hpp>
#include <com/sun/star/ui/XSidebarPanel.hpp>
@@ -249,7 +262,6 @@
#include <com/sun/star/uno/Sequence.h>
#include <com/sun/star/uno/Sequence.hxx>
#include <com/sun/star/uno/Type.hxx>
#include <com/sun/star/uno/XAggregation.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/uno/XInterface.hpp>
#include <com/sun/star/uno/XWeak.hpp>
@@ -271,9 +283,9 @@
#include <comphelper/property.hxx>
#include <comphelper/propertycontainer.hxx>
#include <comphelper/propertysequence.hxx>
#include <comphelper/propertysetinfo.hxx>
#include <comphelper/sequence.hxx>
#include <comphelper/servicehelper.hxx>
#include <comphelper/string.hxx>
#include <comphelper/types.hxx>
#include <comphelper/uno3.hxx>
#include <comphelper/weak.hxx>
@@ -301,8 +313,11 @@
#include <editeng/editdata.hxx>
#include <editeng/editeng.hxx>
#include <editeng/editengdllapi.h>
#include <editeng/editstat.hxx>
#include <editeng/editview.hxx>
#include <editeng/eeitem.hxx>
#include <editeng/fhgtitem.hxx>
#include <editeng/flditem.hxx>
#include <editeng/itemtype.hxx>
#include <editeng/kernitem.hxx>
#include <editeng/lrspitem.hxx>
@@ -325,6 +340,7 @@
#include <i18nlangtag/mslangid.hxx>
#include <o3tl/cow_wrapper.hxx>
#include <o3tl/make_unique.hxx>
#include <o3tl/safeint.hxx>
#include <o3tl/strong_int.hxx>
#include <o3tl/typed_flags_set.hxx>
#include <sfx2//dllapi.h>
@@ -346,6 +362,7 @@
#include <sfx2/sfxuno.hxx>
#include <sfx2/shell.hxx>
#include <sfx2/sidebar/ControlFactory.hxx>
#include <sfx2/sidebar/DeckDescriptor.hxx>
#include <sfx2/sidebar/IContextChangeReceiver.hxx>
#include <sfx2/sidebar/ResourceManager.hxx>
#include <sfx2/sidebar/SidebarPanelBase.hxx>
@@ -375,6 +392,7 @@
#include <svl/style.hxx>
#include <svl/stylesheetuser.hxx>
#include <svl/svldllapi.h>
#include <svl/typedwhich.hxx>
#include <svl/urihelper.hxx>
#include <svl/zforlist.hxx>
#include <svtools/colorcfg.hxx>
@@ -428,6 +446,7 @@
#include <unotools/viewoptions.hxx>
#include <svx/AccessibleShape.hxx>
#include <svx/AccessibleShapeInfo.hxx>
#include <svx/ClassificationField.hxx>
#include <svx/DescriptionGenerator.hxx>
#include <svx/IAccessibleViewForwarder.hxx>
#include <svx/ShapeTypeHandler.hxx>
diff --git a/svx/source/accessibility/svxpixelctlaccessiblecontext.cxx b/svx/source/accessibility/svxpixelctlaccessiblecontext.cxx
index 8908e36..f5821243 100644
--- a/svx/source/accessibility/svxpixelctlaccessiblecontext.cxx
+++ b/svx/source/accessibility/svxpixelctlaccessiblecontext.cxx
@@ -48,21 +48,19 @@
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::accessibility;
SvxPixelCtlAccessible::SvxPixelCtlAccessible( SvxPixelCtl& rControl) :
SvxPixelCtlAccessible_BASE(m_aMutex),
mrPixelCtl(rControl),
mnClientId(0)
SvxPixelCtlAccessible::SvxPixelCtlAccessible(SvxPixelCtl* pControl)
: mpPixelCtl(pControl)
{
}
SvxPixelCtlAccessible::~SvxPixelCtlAccessible()
{
if( IsAlive() )
{
osl_atomic_increment( &m_refCount );
dispose(); // set mpRepr = NULL & release all children
}
ensureDisposed();
}
IMPLEMENT_FORWARD_XINTERFACE2( SvxPixelCtlAccessible, OAccessibleSelectionHelper, OAccessibleHelper_Base )
IMPLEMENT_FORWARD_XTYPEPROVIDER2( SvxPixelCtlAccessible, OAccessibleSelectionHelper, OAccessibleHelper_Base )
uno::Reference< XAccessibleContext > SvxPixelCtlAccessible::getAccessibleContext( )
{
return this;
@@ -78,31 +76,18 @@
::osl::MutexGuard aGuard( m_aMutex );
if ( i < 0 || i >= getAccessibleChildCount())
throw lang::IndexOutOfBoundsException();
return CreateChild(i, mrPixelCtl.IndexToPoint(i));
Reference< XAccessible > xChild;
if (mpPixelCtl)
xChild = CreateChild(i, mpPixelCtl->IndexToPoint(i));
return xChild;
}
uno::Reference< XAccessible > SvxPixelCtlAccessible::getAccessibleParent( )
{
::osl::MutexGuard aGuard( m_aMutex );
vcl::Window *pTabPage = getNonLayoutParent(&mrPixelCtl);
if (!pTabPage || WindowType::TABPAGE != pTabPage->GetType())
return uno::Reference< XAccessible >();
else
return pTabPage->GetAccessible();
}
sal_Int32 SvxPixelCtlAccessible::getAccessibleIndexInParent( )
{
::osl::MutexGuard aGuard( m_aMutex );
sal_uInt16 nIdx = 0;
vcl::Window *pTabPage = getNonLayoutParent(&mrPixelCtl);
if (!pTabPage || WindowType::TABPAGE != pTabPage->GetType())
return -1;
sal_uInt16 nChildren = pTabPage->GetChildCount();
for(nIdx = 0; nIdx < nChildren; nIdx++)
if(pTabPage->GetChild( nIdx ) == &mrPixelCtl)
break;
return nIdx;
if (mpPixelCtl)
return mpPixelCtl->getAccessibleParent();
return uno::Reference<css::accessibility::XAccessible>();
}
sal_Int16 SvxPixelCtlAccessible::getAccessibleRole( )
@@ -114,282 +99,146 @@
{
::osl::MutexGuard aGuard( m_aMutex );
return mrPixelCtl.GetAccessibleDescription();
return mpPixelCtl ? mpPixelCtl->GetAccessibleDescription() : "";
}
OUString SvxPixelCtlAccessible::getAccessibleName( )
{
::osl::MutexGuard aGuard( m_aMutex );
return mrPixelCtl.GetAccessibleName();
return mpPixelCtl ? mpPixelCtl->GetAccessibleName() : "";
}
uno::Reference< XAccessibleRelationSet > SvxPixelCtlAccessible::getAccessibleRelationSet( )
Reference< XAccessibleRelationSet > SAL_CALL SvxPixelCtlAccessible::getAccessibleRelationSet()
{
::osl::MutexGuard aGuard( m_aMutex );
utl::AccessibleRelationSetHelper* rRelationSet = new utl::AccessibleRelationSetHelper;
uno::Reference< css::accessibility::XAccessibleRelationSet > rSet = rRelationSet;
vcl::Window *pLabeledBy = mrPixelCtl.GetAccessibleRelationLabeledBy();
if ( pLabeledBy && pLabeledBy != &mrPixelCtl )
{
uno::Sequence< uno::Reference< uno::XInterface > > aSequence { pLabeledBy->GetAccessible() };
rRelationSet->AddRelation( css::accessibility::AccessibleRelation( css::accessibility::AccessibleRelationType::LABELED_BY, aSequence ) );
}
vcl::Window* pMemberOf = mrPixelCtl.GetAccessibleRelationMemberOf();
if ( pMemberOf && pMemberOf != &mrPixelCtl )
{
uno::Sequence< uno::Reference< uno::XInterface > > aSequence { pMemberOf->GetAccessible() };
rRelationSet->AddRelation( css::accessibility::AccessibleRelation( css::accessibility::AccessibleRelationType::MEMBER_OF, aSequence ) );
}
return rSet;
if (mpPixelCtl)
return mpPixelCtl->get_accessible_relation_set();
return uno::Reference<css::accessibility::XAccessibleRelationSet>();
}
uno::Reference< XAccessibleStateSet > SvxPixelCtlAccessible::getAccessibleStateSet( )
{
::osl::MutexGuard aGuard( m_aMutex );
utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
uno::Reference< XAccessibleStateSet > xRet = pStateSetHelper;
const sal_Int16 aStandardStates[] =
if (mpPixelCtl)
{
AccessibleStateType::FOCUSABLE,
AccessibleStateType::SELECTABLE,
AccessibleStateType::SHOWING,
AccessibleStateType::VISIBLE,
AccessibleStateType::OPAQUE,
0
};
const sal_Int16 aStandardStates[] =
{
AccessibleStateType::FOCUSABLE,
AccessibleStateType::SELECTABLE,
AccessibleStateType::SHOWING,
AccessibleStateType::VISIBLE,
AccessibleStateType::OPAQUE,
0
};
sal_Int16 nState = 0;
while(aStandardStates[nState])
{
pStateSetHelper->AddState(aStandardStates[nState++]);
sal_Int16 nState = 0;
while (aStandardStates[nState])
{
pStateSetHelper->AddState(aStandardStates[nState++]);
}
if (mpPixelCtl->IsEnabled())
pStateSetHelper->AddState(AccessibleStateType::ENABLED);
if (mpPixelCtl->HasFocus())
pStateSetHelper->AddState(AccessibleStateType::FOCUSED);
pStateSetHelper->AddState(AccessibleStateType::MANAGES_DESCENDANTS);
}
if(mrPixelCtl.IsEnabled())
pStateSetHelper->AddState(AccessibleStateType::ENABLED);
if(mrPixelCtl.HasFocus())
pStateSetHelper->AddState(AccessibleStateType::FOCUSED);
pStateSetHelper->AddState(AccessibleStateType::MANAGES_DESCENDANTS);
return xRet;
}
css::lang::Locale SvxPixelCtlAccessible::getLocale( )
uno::Reference<XAccessible > SAL_CALL SvxPixelCtlAccessible::getAccessibleAtPoint (
const awt::Point& rPoint)
{
::osl::MutexGuard aGuard( m_aMutex );
if( getAccessibleParent().is() )
Reference< XAccessible > xRet;
if (mpPixelCtl)
{
uno::Reference< XAccessibleContext > xParentContext( getAccessibleParent()->getAccessibleContext() );
if( xParentContext.is() )
return xParentContext->getLocale();
long nIndex = mpPixelCtl->PointToIndex(Point(rPoint.X, rPoint.Y));
xRet = CreateChild(nIndex, mpPixelCtl->IndexToPoint(nIndex));
}
// No locale and no parent. Therefore throw exception to indicate this
// cluelessness.
throw IllegalAccessibleComponentStateException();
return xRet;
}
sal_Bool SvxPixelCtlAccessible::containsPoint( const awt::Point& aPt )
awt::Rectangle SvxPixelCtlAccessible::implGetBounds()
{
::osl::MutexGuard aGuard( m_aMutex );
Point aPoint(aPt.X, aPt.Y);
return (aPoint.X() >= 0)
&& (aPoint.X() < mrPixelCtl.GetSizePixel().getWidth())
&& (aPoint.Y() >= 0)
&& (aPoint.Y() < mrPixelCtl.GetSizePixel().getHeight());
}
uno::Reference<XAccessible > SAL_CALL SvxPixelCtlAccessible::getAccessibleAtPoint (
const awt::Point& aPoint)
{
::osl::MutexGuard aGuard( m_aMutex );
if( !IsAlive() )
throw lang::DisposedException();
Point childPoint;
childPoint.setX( aPoint.X );
childPoint.setY( aPoint.Y );
Point pt= mrPixelCtl.PixelToLogic(childPoint);
long nIndex = mrPixelCtl.PointToIndex(pt);
return CreateChild(nIndex, mrPixelCtl.IndexToPoint(nIndex));
}
awt::Rectangle SvxPixelCtlAccessible::getBounds( )
{
::osl::MutexGuard aGuard( m_aMutex );
awt::Rectangle aRet;
Size aSz = mrPixelCtl.GetSizePixel();
Point aPos = mrPixelCtl.GetPosPixel();
aRet.X = aPos.X();
aRet.Y = aPos.Y();
aRet.Width = aSz.Width();
aRet.Height = aSz.Height();
if (mpPixelCtl)
{
const Point aOutPos;
Size aOutSize(mpPixelCtl->GetOutputSizePixel());
aRet.X = aOutPos.X();
aRet.Y = aOutPos.Y();
aRet.Width = aOutSize.Width();
aRet.Height = aOutSize.Height();
}
return aRet;
}
awt::Point SvxPixelCtlAccessible::getLocation( )
{
::osl::MutexGuard aGuard( m_aMutex );
Point aPos;
aPos = mrPixelCtl.GetPosPixel();
awt::Point aRet(aPos.X(), aPos.Y());
return aRet;
}
awt::Point SvxPixelCtlAccessible::getLocationOnScreen( )
{
::osl::MutexGuard aGuard( m_aMutex );
tools::Rectangle rect = mrPixelCtl.GetWindowExtentsRelative(nullptr);
return awt::Point(rect.Left(),rect.Top() );
}
awt::Size SvxPixelCtlAccessible::getSize( )
{
::osl::MutexGuard aGuard( m_aMutex );
Size aSz = mrPixelCtl.GetSizePixel();
return awt::Size(aSz.Width(),aSz.Height());
}
void SvxPixelCtlAccessible::grabFocus( )
{
::osl::MutexGuard aGuard( m_aMutex );
mrPixelCtl.GrabFocus();
if (mpPixelCtl)
mpPixelCtl->GrabFocus();
}
sal_Int32 SvxPixelCtlAccessible::getForeground( )
{
::osl::MutexGuard aGuard( m_aMutex );
return sal_Int32(mrPixelCtl.GetControlForeground());
//see SvxPixelCtl::Paint
const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings();
return sal_Int32(rStyles.GetLabelTextColor());
}
sal_Int32 SvxPixelCtlAccessible::getBackground( )
{
::osl::MutexGuard aGuard( m_aMutex );
return sal_Int32(mrPixelCtl.GetControlBackground());
//see SvxPixelCtl::Paint
const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings();
return sal_Int32(rStyles.GetDialogColor());
}
OUString SvxPixelCtlAccessible::getImplementationName( )
{
return OUString("SvxPixelCtlAccessible");
}
sal_Bool SvxPixelCtlAccessible::supportsService( const OUString& rServiceName )
{
return cppu::supportsService( this, rServiceName );
}
uno::Sequence< OUString > SvxPixelCtlAccessible::getSupportedServiceNames( )
{
return uno::Sequence< OUString >{
"Accessible",
"AccessibleContext",
"AccessibleComponent"
};
}
// XAccessibleSelection
void SAL_CALL SvxPixelCtlAccessible::selectAccessibleChild( sal_Int32 nChildIndex )
void SvxPixelCtlAccessible::implSelect(sal_Int32 nChildIndex, bool bSelect)
{
::osl::MutexGuard aGuard( m_aMutex );
if ( nChildIndex < 0 || nChildIndex >= getAccessibleChildCount())
throw lang::IndexOutOfBoundsException();
long nIndex = mrPixelCtl.ShowPosition(mrPixelCtl.IndexToPoint(nChildIndex));
NotifyChild(nIndex,true,false);
if (!mpPixelCtl)
return;
long nIndex = mpPixelCtl->ShowPosition(mpPixelCtl->IndexToPoint(nChildIndex));
NotifyChild(nIndex, bSelect, false);
}
sal_Bool SAL_CALL SvxPixelCtlAccessible::isAccessibleChildSelected( sal_Int32 nChildIndex )
bool SvxPixelCtlAccessible::implIsSelected(sal_Int32 nChildIndex)
{
::osl::MutexGuard aGuard( m_aMutex );
return mrPixelCtl.GetFocusPosIndex() == nChildIndex;
}
if (!mpPixelCtl)
return false;
void SAL_CALL SvxPixelCtlAccessible::clearAccessibleSelection( )
{
}
void SAL_CALL SvxPixelCtlAccessible::selectAllAccessibleChildren( )
{
}
sal_Int32 SAL_CALL SvxPixelCtlAccessible::getSelectedAccessibleChildCount( )
{
return 1;
}
uno::Reference< XAccessible > SAL_CALL SvxPixelCtlAccessible::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
{
::osl::MutexGuard aGuard( m_aMutex );
if ( nSelectedChildIndex >= 1)
throw lang::IndexOutOfBoundsException();
uno::Reference< XAccessible > xChild;
if(m_xCurChild.is())
{
xChild = m_xCurChild;
}
return xChild;
}
void SAL_CALL SvxPixelCtlAccessible::deselectAccessibleChild( sal_Int32 )
{
}
//XAccessibleEventBroadcaster
void SAL_CALL SvxPixelCtlAccessible::addAccessibleEventListener( const uno::Reference< XAccessibleEventListener >& xListener )
{
if (xListener.is())
{
::osl::MutexGuard aGuard( m_aMutex );
if (!mnClientId)
mnClientId = comphelper::AccessibleEventNotifier::registerClient( );
comphelper::AccessibleEventNotifier::addEventListener( mnClientId, xListener );
}
}
void SAL_CALL SvxPixelCtlAccessible::removeAccessibleEventListener( const uno::Reference< XAccessibleEventListener >& xListener )
{
if (xListener.is())
{
::osl::MutexGuard aGuard( m_aMutex );
if (!mnClientId)
return;
sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( mnClientId, xListener );
if ( !nListenerCount )
{
comphelper::AccessibleEventNotifier::revokeClient( mnClientId );
mnClientId = 0;
}
}
}
//Solution:Add the event handling method
void SvxPixelCtlAccessible::FireAccessibleEvent (short nEventId, const css::uno::Any& rOld, const css::uno::Any& rNew)
{
const uno::Reference< XInterface > xSource( *this );
if (mnClientId)
comphelper::AccessibleEventNotifier::addEvent( mnClientId, AccessibleEventObject( xSource, nEventId, rNew,rOld ) );
return mpPixelCtl->GetFocusPosIndex() == nChildIndex;
}
void SAL_CALL SvxPixelCtlAccessible::disposing()
{
if( !rBHelper.bDisposed )
{
::osl::MutexGuard aGuard( m_aMutex );
if ( mnClientId )
{
comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( mnClientId, *this );
mnClientId = 0;
}
}
::osl::MutexGuard aGuard(m_aMutex);
OAccessibleSelectionHelper::disposing();
m_xCurChild.clear();
mpPixelCtl = nullptr;
}
void SvxPixelCtlAccessible::NotifyChild(long nIndex,bool bSelect ,bool bCheck)
@@ -410,21 +259,19 @@
}
if (bCheck)
{
pChild->ChangePixelColorOrBG( mrPixelCtl.GetBitmapPixel(sal_uInt16(nIndex)) != 0);
pChild->ChangePixelColorOrBG(mpPixelCtl->GetBitmapPixel(sal_uInt16(nIndex)) != 0);
pChild->CheckChild();
}
return ;
}
}
uno::Reference <XAccessible> xNewChild =CreateChild(nIndex, mrPixelCtl.IndexToPoint(nIndex));
uno::Reference <XAccessible> xNewChild =CreateChild(nIndex, mpPixelCtl->IndexToPoint(nIndex));
SvxPixelCtlAccessibleChild *pNewChild= static_cast<SvxPixelCtlAccessibleChild*>(xNewChild.get());
DBG_ASSERT(pNewChild,"Child Must be Valid");
Any aNewValue,aOldValue;
aNewValue<<= xNewChild;
FireAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
aOldValue,
aNewValue );
NotifyAccessibleEvent(AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aOldValue, aNewValue);
if (bSelect)
{
@@ -439,16 +286,14 @@
pNewChild->CheckChild();
}
m_xCurChild= xNewChild;
}
uno::Reference<XAccessible> SvxPixelCtlAccessible::CreateChild (long nIndex,Point mPoint)
{
bool bPixelColorOrBG = mrPixelCtl.GetBitmapPixel(sal_uInt16(nIndex)) != 0;
Size size(mrPixelCtl.GetWidth() / SvxPixelCtl::GetLineCount(), mrPixelCtl.GetHeight() / SvxPixelCtl::GetLineCount());
bool bPixelColorOrBG = mpPixelCtl->GetBitmapPixel(sal_uInt16(nIndex)) != 0;
Size size(mpPixelCtl->GetWidth() / SvxPixelCtl::GetLineCount(), mpPixelCtl->GetHeight() / SvxPixelCtl::GetLineCount());
uno::Reference<XAccessible> xChild;
xChild = new SvxPixelCtlAccessibleChild(mrPixelCtl,
xChild = new SvxPixelCtlAccessibleChild(*mpPixelCtl,
bPixelColorOrBG,
tools::Rectangle(mPoint,size),
this,
@@ -457,7 +302,6 @@
return xChild;
}
void SvxPixelCtlAccessible::LoseFocus()
{
m_xCurChild.clear();
@@ -470,15 +314,11 @@
if (m_bPixelColorOrBG)//Current Child State
{
FireAccessibleEvent( AccessibleEventId::STATE_CHANGED,
Any(),
aChecked);
NotifyAccessibleEvent(AccessibleEventId::STATE_CHANGED, Any(), aChecked);
}
else
{
FireAccessibleEvent( AccessibleEventId::STATE_CHANGED,
aChecked,
Any() );
NotifyAccessibleEvent(AccessibleEventId::STATE_CHANGED, aChecked, Any());
}
}
@@ -489,118 +329,58 @@
if (bSelect)
{
FireAccessibleEvent( AccessibleEventId::STATE_CHANGED,
Any(),
aSelected);
NotifyAccessibleEvent(AccessibleEventId::STATE_CHANGED, Any(), aSelected);
}
else
{
FireAccessibleEvent( AccessibleEventId::STATE_CHANGED,
aSelected,
Any());
NotifyAccessibleEvent(AccessibleEventId::STATE_CHANGED, aSelected, Any());
}
}
void SvxPixelCtlAccessibleChild::FireAccessibleEvent (
short nEventId,
const css::uno::Any& rOld,
const css::uno::Any& rNew)
{
const uno::Reference< XInterface > xSource( *this );
if (mnClientId)
comphelper::AccessibleEventNotifier::addEvent( mnClientId, AccessibleEventObject( xSource, nEventId, rNew,rOld ) );
}
SvxPixelCtlAccessibleChild::SvxPixelCtlAccessibleChild(
SvxPixelCtl& rWindow,
bool bPixelColorOrBG,
const tools::Rectangle& rBoundingBox,
const uno::Reference<XAccessible>& rxParent,
long nIndexInParent ) :
SvxPixelCtlAccessibleChild_BASE( m_aMutex ),
mrParentWindow( rWindow ),
mxParent(rxParent),
m_bPixelColorOrBG(bPixelColorOrBG),
maBoundingBox( rBoundingBox ),
mnIndexInParent( nIndexInParent ),
mnClientId( 0 )
SvxPixelCtlAccessibleChild::SvxPixelCtlAccessibleChild( SvxPixelCtl& rWindow, bool bPixelColorOrBG,
const tools::Rectangle& rBoundingBox, const rtl::Reference<SvxPixelCtlAccessible>& rxParent,
long nIndexInParent)
: mrParentWindow( rWindow )
, mxParent(rxParent)
, m_bPixelColorOrBG(bPixelColorOrBG)
, maBoundingBox( rBoundingBox )
, mnIndexInParent( nIndexInParent )
{
}
SvxPixelCtlAccessibleChild::~SvxPixelCtlAccessibleChild()
{
if( IsAlive() )
{
osl_atomic_increment( &m_refCount );
dispose(); // set mpRepr = NULL & release all children
}
ensureDisposed();
}
IMPLEMENT_FORWARD_XINTERFACE2( SvxPixelCtlAccessibleChild, OAccessibleComponentHelper, OAccessibleHelper_Base )
IMPLEMENT_FORWARD_XTYPEPROVIDER2( SvxPixelCtlAccessibleChild, OAccessibleComponentHelper, OAccessibleHelper_Base )
// XAccessible
uno::Reference< XAccessibleContext> SAL_CALL SvxPixelCtlAccessibleChild::getAccessibleContext()
{
return this;
}
// XAccessibleComponent
sal_Bool SAL_CALL SvxPixelCtlAccessibleChild::containsPoint( const awt::Point& rPoint )
{
// no guard -> done in getBounds()
// return GetBoundingBox().IsInside( VCLPoint( rPoint ) );
return tools::Rectangle( Point( 0, 0 ), GetBoundingBox().GetSize() ).IsInside( VCLPoint( rPoint ) );
}
uno::Reference< XAccessible > SAL_CALL SvxPixelCtlAccessibleChild::getAccessibleAtPoint( const awt::Point& )
{
return uno::Reference< XAccessible >();
}
awt::Rectangle SAL_CALL SvxPixelCtlAccessibleChild::getBounds()
{
// no guard -> done in getBoundingBox()
//Modified by lq, 09/26
//return AWTRectangle( GetBoundingBox() );
awt::Rectangle rect = AWTRectangle( GetBoundingBox() );
rect.X = rect.X + mrParentWindow.GetClientWindowExtentsRelative().Left()-mrParentWindow.GetWindowExtentsRelative(nullptr).Left();
rect.Y = rect.Y + mrParentWindow.GetClientWindowExtentsRelative().Top()-mrParentWindow.GetWindowExtentsRelative(nullptr).Top();
return rect;
// End
}
awt::Point SAL_CALL SvxPixelCtlAccessibleChild::getLocation()
{
// no guard -> done in getBoundingBox()
return AWTPoint( GetBoundingBox().TopLeft() );
}
awt::Point SAL_CALL SvxPixelCtlAccessibleChild::getLocationOnScreen()
{
// no guard -> done in getBoundingBoxOnScreen()
return AWTPoint( GetBoundingBoxOnScreen().TopLeft() );
}
awt::Size SAL_CALL SvxPixelCtlAccessibleChild::getSize()
{
// no guard -> done in getBoundingBox()
return AWTSize( GetBoundingBox().GetSize() );
}
void SAL_CALL SvxPixelCtlAccessibleChild::grabFocus()
{
}
sal_Int32 SvxPixelCtlAccessibleChild::getForeground( )
sal_Int32 SvxPixelCtlAccessibleChild::getForeground()
{
::osl::MutexGuard aGuard( m_aMutex );
ThrowExceptionIfNotAlive();
return sal_Int32(mrParentWindow.GetControlForeground());
return mxParent.is() ? mxParent->getForeground() : -1;
}
sal_Int32 SvxPixelCtlAccessibleChild::getBackground( )
sal_Int32 SvxPixelCtlAccessibleChild::getBackground()
{
::osl::MutexGuard aGuard( m_aMutex );
ThrowExceptionIfNotAlive();
return sal_Int32(mrParentWindow.GetControlBackground());
return mxParent.is() ? mxParent->getBackground() : -1;
}
// XAccessibleContext
@@ -616,12 +396,7 @@
uno::Reference< XAccessible > SAL_CALL SvxPixelCtlAccessibleChild::getAccessibleParent()
{
return mxParent;
}
sal_Int32 SAL_CALL SvxPixelCtlAccessibleChild::getAccessibleIndexInParent()
{
return mnIndexInParent;
return mxParent.get();
}
sal_Int16 SAL_CALL SvxPixelCtlAccessibleChild::getAccessibleRole()
@@ -655,7 +430,7 @@
::osl::MutexGuard aGuard( m_aMutex );
utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
if( IsAlive() )
if (!rBHelper.bDisposed)
{
pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
@@ -681,111 +456,16 @@
return pStateSetHelper;
}
lang::Locale SAL_CALL SvxPixelCtlAccessibleChild::getLocale()
{
::osl::MutexGuard aGuard( m_aMutex );
if( mxParent.is() )
{
uno::Reference< XAccessibleContext > xParentContext( mxParent->getAccessibleContext() );
if( xParentContext.is() )
return xParentContext->getLocale();
}
// No locale and no parent. Therefore throw exception to indicate this
// cluelessness.
throw IllegalAccessibleComponentStateException();
}
void SAL_CALL SvxPixelCtlAccessibleChild::addAccessibleEventListener( const uno::Reference< XAccessibleEventListener >& xListener )
{
if (xListener.is())
{
::osl::MutexGuard aGuard( m_aMutex );
if (!mnClientId)
mnClientId = comphelper::AccessibleEventNotifier::registerClient( );
comphelper::AccessibleEventNotifier::addEventListener( mnClientId, xListener );
}
}
void SAL_CALL SvxPixelCtlAccessibleChild::removeAccessibleEventListener( const uno::Reference< XAccessibleEventListener >& xListener )
{
if (xListener.is())
{
::osl::MutexGuard aGuard( m_aMutex );
sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( mnClientId, xListener );
if ( !nListenerCount )
{
// no listeners anymore
// -> revoke ourself. This may lead to the notifier thread dying (if we were the last client),
// and at least to us not firing any events anymore, in case somebody calls
// NotifyAccessibleEvent, again
comphelper::AccessibleEventNotifier::revokeClient( mnClientId );
mnClientId = 0;
}
}
}
// XServiceInfo
OUString SAL_CALL SvxPixelCtlAccessibleChild::getImplementationName()
{
return OUString( "SvxPixelCtlAccessibleChild" );
}
sal_Bool SAL_CALL SvxPixelCtlAccessibleChild::supportsService( const OUString& rServiceName )
{
return cppu::supportsService( this, rServiceName );
}
Sequence< OUString > SAL_CALL SvxPixelCtlAccessibleChild::getSupportedServiceNames()
{
uno::Sequence< OUString > aRet(3);
OUString* pArray = aRet.getArray();
pArray[0] = "Accessible";
pArray[1] = "AccessibleContext";
pArray[2] = "AccessibleComponent";
return aRet;
}
void SAL_CALL SvxPixelCtlAccessibleChild::disposing()
{
if( !rBHelper.bDisposed )
{
::osl::MutexGuard aGuard( m_aMutex );
// Send a disposing to all listeners.
if ( mnClientId )
{
comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( mnClientId, *this );
mnClientId = 0;
}
mxParent.clear();
}
OAccessibleComponentHelper::disposing();
mxParent.clear();
}
void SvxPixelCtlAccessibleChild::ThrowExceptionIfNotAlive()
{
if( rBHelper.bDisposed || rBHelper.bInDispose )
throw lang::DisposedException();
}
tools::Rectangle SvxPixelCtlAccessibleChild::GetBoundingBoxOnScreen()
{
::osl::MutexGuard aGuard( m_aMutex );
// no ThrowExceptionIfNotAlive() because its done in GetBoundingBox()
tools::Rectangle aRect( GetBoundingBox() );
return tools::Rectangle( mrParentWindow.OutputToAbsoluteScreenPixel( aRect.TopLeft() ), aRect.GetSize() );
}
tools::Rectangle const & SvxPixelCtlAccessibleChild::GetBoundingBox()
awt::Rectangle SvxPixelCtlAccessibleChild::implGetBounds()
{
// no guard necessary, because no one changes maBoundingBox after creating it
ThrowExceptionIfNotAlive();
return maBoundingBox;
return AWTRectangle(maBoundingBox);
}
OUString SvxPixelCtlAccessibleChild::GetName()
diff --git a/svx/source/accessibility/svxrectctaccessiblecontext.cxx b/svx/source/accessibility/svxrectctaccessiblecontext.cxx
index d18fff3..a92bdac 100644
--- a/svx/source/accessibility/svxrectctaccessiblecontext.cxx
+++ b/svx/source/accessibility/svxrectctaccessiblecontext.cxx
@@ -400,6 +400,7 @@
return sal_Int32(mpRepr->GetControlForeground());
}
sal_Int32 SvxRectCtlAccessibleContext::getBackground( )
{
::SolarMutexGuard aSolarGuard;
@@ -705,6 +706,7 @@
Reference< XAccessible > SAL_CALL RectCtlAccessibleContext::getAccessibleParent()
{
::osl::MutexGuard aGuard( m_aMutex );
if (mpRepr)
return mpRepr->getAccessibleParent();
return uno::Reference<css::accessibility::XAccessible>();
@@ -732,6 +734,7 @@
*/
Reference< XAccessibleRelationSet > SAL_CALL RectCtlAccessibleContext::getAccessibleRelationSet()
{
::osl::MutexGuard aGuard( m_aMutex );
if (mpRepr)
return mpRepr->get_accessible_relation_set();
return uno::Reference<css::accessibility::XAccessibleRelationSet>();
diff --git a/svx/source/dialog/dlgctrl.cxx b/svx/source/dialog/dlgctrl.cxx
index aee18ab..626debc 100644
--- a/svx/source/dialog/dlgctrl.cxx
+++ b/svx/source/dialog/dlgctrl.cxx
@@ -103,14 +103,12 @@
Control::dispose();
}
void SvxRectCtl::Resize()
{
Resize_Impl();
Control::Resize();
}
void SvxRectCtl::Resize_Impl()
{
aSize = GetOutputSize();
@@ -612,7 +610,7 @@
RectPoint SvxRectCtl::GetApproxRPFromPixPt( const css::awt::Point& r ) const
{
return GetRPFromPoint( GetApproxLogPtFromPixPt( Point( r.X, r.Y ) ) );
return GetRPFromPoint(GetApproxLogPtFromPixPt(Point(r.X, r.Y )));
}
BitmapEx& RectCtl::GetRectBitmap()
@@ -1135,14 +1133,11 @@
css::uno::Reference< css::accessibility::XAccessible > SvxPixelCtl::CreateAccessible()
{
if(!m_xAccess.is())
{
m_xAccess = new SvxPixelCtlAccessible(*this);
}
if (!m_xAccess.is())
m_xAccess = new SvxPixelCtlAccessible(this);
return m_xAccess.get();
}
//Logic Pixel
long SvxPixelCtl::PointToIndex(const Point &aPt) const
{
long nX = aPt.X() * nLines / aRectSize.Width();
@@ -1170,56 +1165,48 @@
return aFocusPosition.getX() + aFocusPosition.getY() * nLines ;
}
long SvxPixelCtl::ShowPosition( const Point &pt)
long SvxPixelCtl::ShowPosition( const Point &rPt)
{
Point aPt = PixelToLogic( pt );
sal_Int32 nX = aPt.X() * nLines / aRectSize.Width();
sal_Int32 nY = aPt.Y() * nLines / aRectSize.Height();
sal_Int32 nX = rPt.X() * nLines / aRectSize.Width();
sal_Int32 nY = rPt.Y() * nLines / aRectSize.Height();
ChangePixel( nX + nY * nLines );
//Solution:Set new focus position and repaint
//Invalidate( Rectangle( aPtTl, aPtBr ) );
aFocusPosition.setX(nX);
aFocusPosition.setY(nY);
Invalidate(tools::Rectangle(Point(0,0),aRectSize));
vcl::Window *pTabPage = getNonLayoutParent(this);
if (pTabPage && WindowType::TABPAGE == pTabPage->GetType())
static_cast<SvxTabPage*>(pTabPage)->PointChanged( this, RectPoint::MM ); // RectPoint is dummy
if (m_pPage)
m_pPage->PointChanged(GetDrawingArea(), RectPoint::MM ); // RectPoint is dummy
return GetFocusPosIndex();
}
SvxPixelCtl::SvxPixelCtl(vcl::Window* pParent)
: Control(pParent, WB_BORDER)
SvxPixelCtl::SvxPixelCtl(SvxTabPage* pPage)
: m_pPage(pPage)
, bPaintable(true)
, aFocusPosition(0,0)
{
SetPixelColor( COL_BLACK );
SetBackgroundColor( COL_WHITE );
SetLineColor( COL_LIGHTGRAY );
maPixelData.fill(0);
}
void SvxPixelCtl::Resize()
{
Control::Resize();
aRectSize = GetOutputSize();
CustomWidgetController::Resize();
aRectSize = GetOutputSizePixel();
}
Size SvxPixelCtl::GetOptimalSize() const
void SvxPixelCtl::SetDrawingArea(weld::DrawingArea* pDrawingArea)
{
return LogicToPixel(Size(72, 72), MapMode(MapUnit::MapAppFont));
pDrawingArea->set_size_request(pDrawingArea->get_approximate_digit_width() * 25,
pDrawingArea->get_text_height() * 10);
CustomWidgetController::SetDrawingArea(pDrawingArea);
}
VCL_BUILDER_FACTORY(SvxPixelCtl)
SvxPixelCtl::~SvxPixelCtl( )
SvxPixelCtl::~SvxPixelCtl()
{
disposeOnce();
}
// Changes the foreground or Background color
@@ -1253,8 +1240,16 @@
}
}
// Draws the Control (Rectangle with nine circles)
tools::Rectangle SvxPixelCtl::GetFocusRect()
{
tools::Rectangle aRet;
//Draw visual focus when has focus
if (HasFocus())
aRet = implCalFocusRect(aFocusPosition);
return aRet;
}
// Draws the Control (Rectangle with nine circles)
void SvxPixelCtl::Paint( vcl::RenderContext& rRenderContext, const tools::Rectangle& )
{
if (!aRectSize.Width() || !aRectSize.Height())
@@ -1300,11 +1295,6 @@
rRenderContext.DrawRect(tools::Rectangle(aPtTl, aPtBr));
}
}
//Draw visual focus when has focus
if (HasFocus())
{
ShowFocus(implCalFocusRect(aFocusPosition));
}
}
else
{
@@ -1330,7 +1320,7 @@
}
//Solution:Keyboard function
void SvxPixelCtl::KeyInput( const KeyEvent& rKEvt )
bool SvxPixelCtl::KeyInput( const KeyEvent& rKEvt )
{
vcl::KeyCode aKeyCode = rKEvt.GetKeyCode();
sal_uInt16 nCode = aKeyCode.GetCode();
@@ -1383,8 +1373,7 @@
Invalidate( implCalFocusRect(aFocusPosition) );
break;
default:
Control::KeyInput( rKEvt );
return;
return CustomWidgetController::KeyInput( rKEvt );
}
if(m_xAccess.is())
{
@@ -1407,10 +1396,11 @@
break;
}
}
return true;
}
else
{
Control::KeyInput( rKEvt );
return CustomWidgetController::KeyInput( rKEvt );
}
}
@@ -1419,23 +1409,15 @@
{
Invalidate(implCalFocusRect(aFocusPosition));
if(m_xAccess.is())
if (m_xAccess.is())
{
m_xAccess->NotifyChild(GetFocusPosIndex(),true,false);
}
Control::GetFocus();
}
//Hide focus when lose focus
void SvxPixelCtl::LoseFocus()
{
HideFocus();
if (m_xAccess.is())
{
m_xAccess->LoseFocus();
}
Control::LoseFocus();
Invalidate();
}
void SvxPixelCtl::SetXBitmap(const BitmapEx& rBitmapEx)
diff --git a/svx/source/inc/svxpixelctlaccessiblecontext.hxx b/svx/source/inc/svxpixelctlaccessiblecontext.hxx
index 4f399ea..23af17a 100644
--- a/svx/source/inc/svxpixelctlaccessiblecontext.hxx
+++ b/svx/source/inc/svxpixelctlaccessiblecontext.hxx
@@ -35,6 +35,7 @@
#include <com/sun/star/lang/XServiceName.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
#include <comphelper/accessibleselectionhelper.hxx>
#include <cppuhelper/interfacecontainer.h>
#include <cppuhelper/compbase6.hxx>
#include <cppuhelper/compbase5.hxx>
@@ -51,197 +52,121 @@
class XFocusListener;
} } } };
class SvxPixelCtl;
class SvxPixelCtlAccessible;
typedef ::cppu::ImplHelper1<css::accessibility::XAccessible> OAccessibleHelper_Base;
typedef ::cppu::WeakAggComponentImplHelper5<
css::accessibility::XAccessible,
css::accessibility::XAccessibleComponent,
css::accessibility::XAccessibleContext,
css::accessibility::XAccessibleEventBroadcaster,
css::lang::XServiceInfo >
SvxPixelCtlAccessibleChild_BASE;
class SvxPixelCtlAccessibleChild :
public ::cppu::BaseMutex,
public SvxPixelCtlAccessibleChild_BASE
class SvxPixelCtlAccessibleChild final : public ::comphelper::OAccessibleComponentHelper,
public OAccessibleHelper_Base
{
SvxPixelCtl& mrParentWindow;
css::uno::Reference< css::accessibility::XAccessible > mxParent;
bool m_bPixelColorOrBG;//Pixel Color Or BackGround Color
tools::Rectangle maBoundingBox;
/// index of child in parent
long mnIndexInParent;
public:
SvxPixelCtlAccessibleChild(
SvxPixelCtl& rWindow,
bool bPixelColorOrBG,
const tools::Rectangle& rBounds,
const css::uno::Reference< css::accessibility::XAccessible >& xParent,
const rtl::Reference<SvxPixelCtlAccessible>& xParent,
long nIndexInParent );
virtual ~SvxPixelCtlAccessibleChild() override;
//XAccessible
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
DECLARE_XINTERFACE( )
DECLARE_XTYPEPROVIDER( )
//XAccessibleComponent
virtual void SAL_CALL grabFocus( ) override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override;
//XAccessibleContext
virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override;
virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) override;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) override;
virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) override;
virtual css::lang::Locale SAL_CALL getLocale( ) override;
virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) override;
//XAccessible
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
//XAccessibleComponent
virtual sal_Bool SAL_CALL containsPoint( const css::awt::Point& aPoint ) override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override;
virtual css::awt::Rectangle SAL_CALL getBounds( ) override;
virtual css::awt::Point SAL_CALL getLocation( ) override;
virtual css::awt::Point SAL_CALL getLocationOnScreen( ) override;
virtual css::awt::Size SAL_CALL getSize( ) override;
virtual sal_Int32 SAL_CALL getForeground( ) override;
virtual sal_Int32 SAL_CALL getBackground( ) override;
virtual void SAL_CALL grabFocus( ) override;
//XServiceInfo
virtual OUString SAL_CALL getImplementationName( ) override;
virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) override;
//Methods for XAccessibleEventBroadcaster
sal_uInt32 mnClientId;
virtual void SAL_CALL
addAccessibleEventListener(
const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override;
virtual void SAL_CALL
removeAccessibleEventListener(
const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override;
//Solution: Add the event handling method
void FireAccessibleEvent (short nEventId, const css::uno::Any& rOld, const css::uno::Any& rNew);
virtual void SAL_CALL disposing() override;
/// @throws css::uno::RuntimeException
tools::Rectangle GetBoundingBoxOnScreen();
/// @throws css::uno::RuntimeException
tools::Rectangle const & GetBoundingBox();
/// @returns true if it's disposed or in disposing
inline bool IsAlive() const;
/// @throws css::lang::DisposedException if it's not alive
void ThrowExceptionIfNotAlive();
void CheckChild();
void SelectChild( bool bSelect);
void ChangePixelColorOrBG(bool bPixelColorOrBG){ m_bPixelColorOrBG = bPixelColorOrBG ;}
OUString GetName();
private:
virtual ~SvxPixelCtlAccessibleChild() override;
virtual void SAL_CALL disposing() override;
// OCommonAccessibleComponent
/// implements the calculation of the bounding rectangle
virtual css::awt::Rectangle implGetBounds( ) override;
SvxPixelCtl& mrParentWindow;
rtl::Reference<SvxPixelCtlAccessible> mxParent;
bool m_bPixelColorOrBG;//Pixel Color Or BackGround Color
tools::Rectangle maBoundingBox;
/// index of child in parent
long mnIndexInParent;
};
typedef ::cppu::WeakAggComponentImplHelper6<
css::accessibility::XAccessible,
css::accessibility::XAccessibleComponent,
css::accessibility::XAccessibleContext,
css::accessibility::XAccessibleEventBroadcaster,
css::accessibility::XAccessibleSelection,
css::lang::XServiceInfo >
SvxPixelCtlAccessible_BASE;
class SvxPixelCtlAccessible :
public ::cppu::BaseMutex,
public SvxPixelCtlAccessible_BASE
class SvxPixelCtlAccessible final : public ::comphelper::OAccessibleSelectionHelper,
public OAccessibleHelper_Base
{
SvxPixelCtl& mrPixelCtl;
public:
SvxPixelCtlAccessible(SvxPixelCtl& rWindow);
virtual ~SvxPixelCtlAccessible() override;
SvxPixelCtlAccessible(SvxPixelCtl* pPixelCtl);
DECLARE_XINTERFACE( )
DECLARE_XTYPEPROVIDER( )
//XAccessibleComponent
virtual void SAL_CALL grabFocus( ) override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override;
//XAccessible
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
//XAccessibleContext
virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override;
virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) override;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) override;
virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) override;
virtual css::lang::Locale SAL_CALL getLocale( ) override;
virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) override;
//XAccessibleComponent
virtual sal_Bool SAL_CALL containsPoint( const css::awt::Point& aPoint ) override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override;
virtual css::awt::Rectangle SAL_CALL getBounds( ) override;
virtual css::awt::Point SAL_CALL getLocation( ) override;
virtual css::awt::Point SAL_CALL getLocationOnScreen( ) override;
virtual css::awt::Size SAL_CALL getSize( ) override;
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
virtual sal_Int32 SAL_CALL getForeground( ) override;
virtual sal_Int32 SAL_CALL getBackground( ) override;
virtual void SAL_CALL grabFocus( ) override;
//XServiceInfo
virtual OUString SAL_CALL getImplementationName( ) override;
virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) override;
// XAccessibleSelection
void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) override;
sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) override;
void SAL_CALL clearAccessibleSelection( ) override;
void SAL_CALL selectAllAccessibleChildren( ) override;
sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) override;
css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
//Methods for XAccessibleEventBroadcaster
sal_uInt32 mnClientId;
virtual void SAL_CALL
addAccessibleEventListener(
const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override;
virtual void SAL_CALL
removeAccessibleEventListener(
const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override;
//Solution: Add the event handling method
void FireAccessibleEvent (short nEventId, const css::uno::Any& rOld, const css::uno::Any& rNew);
virtual void SAL_CALL disposing() override;
css::uno::Reference< css::accessibility::XAccessible >
CreateChild (long nIndex, Point mPoint);
void LoseFocus();
/// @returns true if it's disposed or in disposing
inline bool IsAlive() const;
private:
virtual ~SvxPixelCtlAccessible() override;
protected:
// OCommonAccessibleSelection
// return if the specified child is visible => watch for special ChildIndexes (ACCESSIBLE_SELECTION_CHILD_xxx)
virtual bool implIsSelected(sal_Int32 nAccessibleChildIndex) override;
// select the specified child => watch for special ChildIndexes (ACCESSIBLE_SELECTION_CHILD_xxx)
virtual void implSelect(sal_Int32 nAccessibleChildIndex, bool bSelect) override;
// OCommonAccessibleComponent
virtual css::awt::Rectangle implGetBounds() override;
virtual void SAL_CALL disposing() override;
SvxPixelCtl* mpPixelCtl;
css::uno::Reference< css::accessibility::XAccessible> m_xCurChild;
public:
void NotifyChild(long nIndex, bool bSelect, bool bCheck);
};
inline bool SvxPixelCtlAccessible::IsAlive() const
{
return !rBHelper.bDisposed && !rBHelper.bInDispose;
}
inline bool SvxPixelCtlAccessibleChild::IsAlive() const
{
return !rBHelper.bDisposed && !rBHelper.bInDispose;
}
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/inc/svxrectctaccessiblecontext.hxx b/svx/source/inc/svxrectctaccessiblecontext.hxx
index de5df8a..6e3fb5b 100644
--- a/svx/source/inc/svxrectctaccessiblecontext.hxx
+++ b/svx/source/inc/svxrectctaccessiblecontext.hxx
@@ -545,8 +545,8 @@
css::accessibility::XAccessibleAction
> OAccessibleHelper_Base_3;
class RectCtlChildAccessibleContext : public ::comphelper::OAccessibleComponentHelper,
public OAccessibleHelper_Base_3
class RectCtlChildAccessibleContext final : public ::comphelper::OAccessibleComponentHelper,
public OAccessibleHelper_Base_3
{
public:
RectCtlChildAccessibleContext(
@@ -554,13 +554,6 @@
const OUString& rName, const OUString& rDescription,
const tools::Rectangle& rBoundingBox,
long nIndexInParent );
protected:
virtual ~RectCtlChildAccessibleContext() override;
// OCommonAccessibleComponent
/// implements the calculation of the bounding rectangle - still waiting to be overwritten
virtual css::awt::Rectangle implGetBounds( ) override;
public:
DECLARE_XINTERFACE( )
DECLARE_XTYPEPROVIDER( )
@@ -608,10 +601,14 @@
void setStateChecked(bool bChecked);
void FireFocusEvent();
protected:
private:
virtual ~RectCtlChildAccessibleContext() override;
virtual void SAL_CALL disposing() override;
private:
// OCommonAccessibleComponent
/// implements the calculation of the bounding rectangle
virtual css::awt::Rectangle implGetBounds( ) override;
/** Description of this object. This is not a constant because it can
be set from the outside. Furthermore, it changes according to the
diff --git a/svx/source/tbxctrls/SvxPresetListBox.cxx b/svx/source/tbxctrls/SvxPresetListBox.cxx
index fd320d8..d6ee051 100644
--- a/svx/source/tbxctrls/SvxPresetListBox.cxx
+++ b/svx/source/tbxctrls/SvxPresetListBox.cxx
@@ -130,4 +130,82 @@
return false;
}
PresetListBox::PresetListBox(std::unique_ptr<weld::ScrolledWindow> pWindow)
: SvtValueSet(std::move(pWindow))
, nColCount(3)
, aIconSize(60, 64)
{
SetEdgeBlending(true);
SetExtraSpacing(4);
}
void PresetListBox::Resize()
{
DrawLayout();
WinBits aWinBits(GetStyle());
aWinBits |= WB_VSCROLL;
SetStyle(aWinBits);
SvtValueSet::Resize();
}
bool PresetListBox::ContextMenu(const Point& rPos)
{
const sal_uInt16 nIndex = GetSelectedItemId();
if(nIndex > 0)
{
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetDrawingArea(), "svx/ui/presetmenu.ui"));
std::unique_ptr<weld::Menu> xMenu(xBuilder->weld_menu("menu"));
OnMenuItemSelected(xMenu->popup_at_rect(GetDrawingArea(), tools::Rectangle(rPos, Size(1,1))));
return true;
}
return false;
}
void PresetListBox::DrawLayout()
{
SetColCount(getColumnCount());
SetLineCount(5);
}
template< typename ListType, typename EntryType >
void PresetListBox::FillPresetListBoxImpl(ListType & pList, sal_uInt32 nStartIndex)
{
const Size aSize( GetIconSize() );
BitmapEx aBitmap;
for(long nIndex = 0; nIndex < pList.Count(); nIndex++, nStartIndex++)
{
aBitmap = pList.GetBitmapForPreview(nIndex, aSize);
EntryType* pItem = static_cast<EntryType*>( pList.Get(nIndex) );
InsertItem(nStartIndex, Image(aBitmap), pItem->GetName());
}
}
void PresetListBox::FillPresetListBox(XGradientList& pList, sal_uInt32 nStartIndex)
{
FillPresetListBoxImpl< XGradientList, XGradientEntry>( pList, nStartIndex );
}
void PresetListBox::FillPresetListBox(XHatchList& pList, sal_uInt32 nStartIndex)
{
FillPresetListBoxImpl< XHatchList, XHatchEntry>( pList, nStartIndex );
}
void PresetListBox::FillPresetListBox(XBitmapList& pList, sal_uInt32 nStartIndex)
{
FillPresetListBoxImpl< XBitmapList, XBitmapEntry >( pList, nStartIndex );
}
void PresetListBox::FillPresetListBox(XPatternList& pList, sal_uInt32 nStartIndex)
{
FillPresetListBoxImpl< XPatternList, XBitmapEntry >( pList, nStartIndex );
}
void PresetListBox::OnMenuItemSelected(const OString& rIdent)
{
if (rIdent == "rename")
maRenameHdl.Call(this);
else if (rIdent == "delete")
maDeleteHdl.Call(this);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/workben/pixelctl.cxx b/svx/workben/pixelctl.cxx
deleted file mode 100644
index 854dcd7..0000000
--- a/svx/workben/pixelctl.cxx
+++ /dev/null
@@ -1,127 +0,0 @@
/* -*- 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 <sal/main.h>
#include <cppuhelper/bootstrap.hxx>
#include <comphelper/processfactory.hxx>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <vcl/event.hxx>
#include <vcl/svapp.hxx>
#include <vcl/wrkwin.hxx>
#include <tools/extendapplicationenvironment.hxx>
#include <svx/dlgctrl.hxx>
#include <rtl/strbuf.hxx>
#include <rtl/ustrbuf.hxx>
#include <sal/log.hxx>
#include <math.h>
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
using namespace cppu;
// Forward declaration
void Main();
SAL_IMPLEMENT_MAIN()
{
try
{
tools::extendApplicationEnvironment();
// create the global service-manager
Reference< XComponentContext > xContext = defaultBootstrap_InitialComponentContext();
Reference< XMultiServiceFactory > xServiceManager( xContext->getServiceManager(), UNO_QUERY );
if( !xServiceManager.is() )
Application::Abort( "Failed to bootstrap" );
comphelper::setProcessServiceFactory( xServiceManager );
InitVCL();
::Main();
DeInitVCL();
}
catch (const Exception& e)
{
SAL_WARN("vcl.app", "Fatal: " << e);
return 1;
}
catch (const std::exception& e)
{
SAL_WARN("vcl.app", "Fatal: " << e.what());
return 1;
}
return 0;
}
class MyWin : public WorkWindow
{
VclPtr<SvxPixelCtl> maPixelCtl;
public:
MyWin(vcl::Window* pParent, WinBits nWinStyle);
virtual ~MyWin() override
{
disposeOnce();
}
virtual void dispose() override;
bool Close() override;
};
void Main()
{
ScopedVclPtrInstance< MyWin > aMainWin( nullptr, WB_STDWORK );
aMainWin->SetText( "SvxPixelCtl" );
aMainWin->Show();
Application::Execute();
}
MyWin::MyWin( vcl::Window* pParent, WinBits nWinStyle ) :
WorkWindow( pParent, nWinStyle ),
maPixelCtl( VclPtr<SvxPixelCtl>::Create(this) )
{
maPixelCtl->SetPosSizePixel( Point( 10, 10 ), Size( 200, 200 ) );
maPixelCtl->Show();
}
void MyWin::dispose()
{
maPixelCtl.disposeAndClear();
WorkWindow::dispose();
}
bool MyWin::Close()
{
bool bRet = WorkWindow::Close();
if( bRet )
Application::Quit();
return bRet;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/app/customweld.cxx b/vcl/source/app/customweld.cxx
index 860a9d2..110d2e7 100644
--- a/vcl/source/app/customweld.cxx
+++ b/vcl/source/app/customweld.cxx
@@ -30,6 +30,7 @@
m_xDrawingArea->connect_key_press(LINK(this, CustomWeld, DoKeyPress));
m_xDrawingArea->connect_focus_rect(LINK(this, CustomWeld, DoFocusRect));
m_xDrawingArea->connect_style_updated(LINK(this, CustomWeld, DoStyleUpdated));
m_xDrawingArea->connect_popup_menu(LINK(this, CustomWeld, DoPopupMenu));
m_xDrawingArea->connect_query_tooltip(LINK(this, CustomWeld, DoRequestHelp));
m_rWidgetController.SetDrawingArea(m_xDrawingArea.get());
}
@@ -79,6 +80,11 @@
m_rWidgetController.StyleUpdated();
}
IMPL_LINK(CustomWeld, DoPopupMenu, const Point&, rPos, bool)
{
return m_rWidgetController.ContextMenu(rPos);
}
IMPL_LINK(CustomWeld, DoRequestHelp, tools::Rectangle&, rHelpArea, OUString)
{
return m_rWidgetController.RequestHelp(rHelpArea);
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 44d2aee..43eb8d5 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -351,6 +351,11 @@
return m_xWidget->GetAccessibleName();
}
virtual OUString get_accessible_description() const override
{
return m_xWidget->GetAccessibleDescription();
}
virtual void set_tooltip_text(const OUString& rTip) override
{
m_xWidget->SetQuickHelpText(rTip);
@@ -455,7 +460,7 @@
{
SalInstanceWidget* pVclWidget = dynamic_cast<SalInstanceWidget*>(pParent);
assert(pVclWidget);
m_xMenu->Execute(pVclWidget->getWidget(), rRect, PopupMenuFlags::ExecuteDown);
m_xMenu->Execute(pVclWidget->getWidget(), rRect, PopupMenuFlags::ExecuteDown | PopupMenuFlags::NoMouseUpClose);
return m_xMenu->GetCurItemIdent();
}
virtual void set_sensitive(const OString& rIdent, bool bSensitive) override
@@ -1855,6 +1860,7 @@
DECL_LINK(KeyPressHdl, const KeyEvent&, bool);
DECL_LINK(KeyReleaseHdl, const KeyEvent&, bool);
DECL_LINK(StyleUpdatedHdl, VclDrawingArea&, void);
DECL_LINK(PopupMenuHdl, const Point&, bool);
DECL_LINK(QueryTooltipHdl, tools::Rectangle&, OUString);
public:
@@ -1873,6 +1879,7 @@
m_xDrawingArea->SetKeyPressHdl(LINK(this, SalInstanceDrawingArea, KeyPressHdl));
m_xDrawingArea->SetKeyReleaseHdl(LINK(this, SalInstanceDrawingArea, KeyReleaseHdl));
m_xDrawingArea->SetStyleUpdatedHdl(LINK(this, SalInstanceDrawingArea, StyleUpdatedHdl));
m_xDrawingArea->SetPopupMenuHdl(LINK(this, SalInstanceDrawingArea, PopupMenuHdl));
m_xDrawingArea->SetQueryTooltipHdl(LINK(this, SalInstanceDrawingArea, QueryTooltipHdl));
}
@@ -1930,6 +1937,7 @@
virtual ~SalInstanceDrawingArea() override
{
m_xDrawingArea->SetQueryTooltipHdl(Link<tools::Rectangle&, OUString>());
m_xDrawingArea->SetPopupMenuHdl(Link<const Point&, bool>());
m_xDrawingArea->SetStyleUpdatedHdl(Link<VclDrawingArea&, void>());
m_xDrawingArea->SetMousePressHdl(Link<const MouseEvent&, void>());
m_xDrawingArea->SetMouseMoveHdl(Link<const MouseEvent&, void>());
@@ -1989,6 +1997,11 @@
m_aStyleUpdatedHdl.Call(*this);
}
IMPL_LINK(SalInstanceDrawingArea, PopupMenuHdl, const Point&, rPos, bool)
{
return m_aPopupMenuHdl.Call(rPos);
}
IMPL_LINK(SalInstanceDrawingArea, QueryTooltipHdl, tools::Rectangle&, rHelpArea, OUString)
{
return m_aQueryTooltipHdl.Call(rHelpArea);
diff --git a/vcl/source/uitest/uiobject.cxx b/vcl/source/uitest/uiobject.cxx
index 7962a11..7d95907 100644
--- a/vcl/source/uitest/uiobject.cxx
+++ b/vcl/source/uitest/uiobject.cxx
@@ -561,7 +561,16 @@
const StringMap& rParameters)
{
if (rAction == "CLICK")
{
//Click doesn't call toggle when its a pushbutton tweaked to be a toggle-button
if (PushButton *pPushButton = (mxButton->GetStyle() & WB_TOGGLE) ? dynamic_cast<PushButton*>(mxButton.get()) : nullptr)
{
pPushButton->Check(!pPushButton->IsChecked());
pPushButton->Toggle();
return;
}
mxButton->Click();
}
else
WindowUIObject::execute(rAction, rParameters);
}
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 6cc7f98..039f4a7 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -1390,6 +1390,13 @@
return OUString(pStr, pStr ? strlen(pStr) : 0, RTL_TEXTENCODING_UTF8);
}
virtual OUString get_accessible_description() const override
{
AtkObject* pAtkObject = gtk_widget_get_accessible(m_pWidget);
const char* pStr = pAtkObject ? atk_object_get_description(pAtkObject) : nullptr;
return OUString(pStr, pStr ? strlen(pStr) : 0, RTL_TEXTENCODING_UTF8);
}
virtual void set_tooltip_text(const OUString& rTip) override
{
gtk_widget_set_tooltip_text(m_pWidget, OUStringToOString(rTip, RTL_TEXTENCODING_UTF8).getStr());
@@ -4137,6 +4144,7 @@
gulong m_nKeyReleaseSignalId;
gulong m_nStyleUpdatedSignalId;
gulong m_nQueryTooltip;
gulong m_nPopupMenu;
static gboolean signalDraw(GtkWidget*, cairo_t* cr, gpointer widget)
{
@@ -4207,6 +4215,19 @@
gtk_tooltip_set_tip_area(tooltip, &aGdkHelpArea);
return true;
}
bool signal_popup_menu(const Point& rPos)
{
return m_aPopupMenuHdl.Call(rPos);
}
static gboolean signalPopupMenu(GtkWidget* pWidget, gpointer widget)
{
GtkInstanceDrawingArea* pThis = static_cast<GtkInstanceDrawingArea*>(widget);
SolarMutexGuard aGuard;
//center it when we don't know where else to use
Point aPos(gtk_widget_get_allocated_width(pWidget) / 2,
gtk_widget_get_allocated_height(pWidget) / 2);
return pThis->signal_popup_menu(aPos);
}
static gboolean signalButton(GtkWidget*, GdkEventButton* pEvent, gpointer widget)
{
GtkInstanceDrawingArea* pThis = static_cast<GtkInstanceDrawingArea*>(widget);
@@ -4266,6 +4287,14 @@
Point aPos(pEvent->x, pEvent->y);
if (AllSettings::GetLayoutRTL())
aPos.setX(gtk_widget_get_allocated_width(m_pWidget) - 1 - aPos.X());
if (gdk_event_triggers_context_menu(reinterpret_cast<GdkEvent*>(pEvent)) && pEvent->type == GDK_BUTTON_PRESS)
{
//if handled for context menu, stop processing
if (signal_popup_menu(aPos))
return true;
}
sal_uInt32 nModCode = GtkSalFrame::GetMouseModCode(pEvent->state);
sal_uInt16 nCode = m_nLastMouseButton | (nModCode & (KEY_SHIFT | KEY_MOD1 | KEY_MOD2));
MouseEvent aMEvt(aPos, nClicks, ImplGetMouseButtonMode(m_nLastMouseButton, nModCode), nCode, nCode);
@@ -4339,6 +4368,7 @@
, m_nKeyReleaseSignalId(g_signal_connect(m_pDrawingArea,"key-release-event", G_CALLBACK(signalKey), this))
, m_nStyleUpdatedSignalId(g_signal_connect(m_pDrawingArea,"style-updated", G_CALLBACK(signalStyleUpdated), this))
, m_nQueryTooltip(g_signal_connect(m_pDrawingArea, "query-tooltip", G_CALLBACK(signalQueryTooltip), this))
, m_nPopupMenu(g_signal_connect(m_pDrawingArea, "popup-menu", G_CALLBACK(signalPopupMenu), this))
{
gtk_widget_set_has_tooltip(m_pWidget, true);
g_object_set_data(G_OBJECT(m_pDrawingArea), "g-lo-GtkInstanceDrawingArea", this);
@@ -4424,6 +4454,7 @@
g_object_steal_data(G_OBJECT(m_pDrawingArea), "g-lo-GtkInstanceDrawingArea");
if (m_pAccessible)
g_object_unref(m_pAccessible);
g_signal_handler_disconnect(m_pDrawingArea, m_nPopupMenu);
g_signal_handler_disconnect(m_pDrawingArea, m_nQueryTooltip);
g_signal_handler_disconnect(m_pDrawingArea, m_nStyleUpdatedSignalId);
g_signal_handler_disconnect(m_pDrawingArea, m_nKeyPressSignalId);
@@ -5366,6 +5397,8 @@
weld::Builder* GtkInstance::CreateBuilder(weld::Widget* pParent, const OUString& rUIRoot, const OUString& rUIFile)
{
GtkInstanceWidget* pParentWidget = dynamic_cast<GtkInstanceWidget*>(pParent);
if (pParent && !pParentWidget) //remove when complete
return SalInstance::CreateBuilder(pParent, rUIRoot, rUIFile);
GtkWidget* pBuilderParent = pParentWidget ? pParentWidget->getWidget() : nullptr;
return new GtkInstanceBuilder(pBuilderParent, rUIRoot, rUIFile);
}