summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extras/source/glade/libreoffice-catalog.xml.in3
-rw-r--r--include/svx/contdlg.hxx13
-rwxr-xr-xsolenv/bin/native-code.py1
-rw-r--r--solenv/sanitizers/ui/svx.suppr2
-rw-r--r--svx/source/dialog/_contdlg.cxx431
-rw-r--r--svx/source/dialog/contimp.hxx92
-rw-r--r--svx/source/dialog/contwnd.cxx56
-rw-r--r--svx/source/dialog/contwnd.hxx14
-rw-r--r--svx/source/dialog/imapdlg.cxx19
-rw-r--r--svx/uiconfig/ui/floatingcontour.ui610
-rw-r--r--svx/uiconfig/ui/imapdialog.ui2
-rw-r--r--sw/source/uibase/shells/basesh.cxx6
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx9
13 files changed, 661 insertions, 597 deletions
diff --git a/extras/source/glade/libreoffice-catalog.xml.in b/extras/source/glade/libreoffice-catalog.xml.in
index 581a3b844416..49f03362101c 100644
--- a/extras/source/glade/libreoffice-catalog.xml.in
+++ b/extras/source/glade/libreoffice-catalog.xml.in
@@ -381,9 +381,6 @@
generic-name="DriverListControl" parent="GtkEntry"
icon-name="widget-gtk-combobox"/>
- <glade-widget-class title="Statusbar" name="svxlo-StatusBar"
- generic-name="Statusbar" parent="GtkStatusbar"
- icon-name="widget-gtk-statusbar"/>
<glade-widget-class title="DataTreeListBox" name="svxcorelo-DataTreeListBox"
generic-name="DataTreeListBox" parent="GtkTreeView"
icon-name="widget-gtk-treeview"/>
diff --git a/include/svx/contdlg.hxx b/include/svx/contdlg.hxx
index 2153ececae5e..4a488543622f 100644
--- a/include/svx/contdlg.hxx
+++ b/include/svx/contdlg.hxx
@@ -50,12 +50,9 @@ public:
class SvxSuperContourDlg;
-class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxContourDlg : public SfxFloatingWindow
+class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxContourDlg : public SfxModelessDialogController
{
- using Window::Update;
-
- VclPtr<SvxSuperContourDlg> pSuperClass;
-
+ std::unique_ptr<SvxSuperContourDlg> m_xImpl;
protected:
@@ -63,15 +60,13 @@ protected:
public:
- SvxContourDlg(SfxBindings *pBindings, SfxChildWindow *pCW,
- vcl::Window* pParent);
+ SvxContourDlg(SfxBindings *pBindings, SfxChildWindow *pCW, weld::Window* pParent);
virtual ~SvxContourDlg() override;
- virtual void dispose() override;
const Graphic& GetGraphic() const;
bool IsGraphicChanged() const;
- tools::PolyPolygon GetPolyPolygon();
+ tools::PolyPolygon GetPolyPolygon();
const void* GetEditingObject() const;
diff --git a/solenv/bin/native-code.py b/solenv/bin/native-code.py
index 4eeae29270de..15153784ab72 100755
--- a/solenv/bin/native-code.py
+++ b/solenv/bin/native-code.py
@@ -477,7 +477,6 @@ custom_widgets = [
'SidebarDialControl',
'SidebarToolBox',
'SpacingListBox',
- 'StatusBar',
'SvSimpleTableContainer',
'SvTreeListBox',
'SvtFileView',
diff --git a/solenv/sanitizers/ui/svx.suppr b/solenv/sanitizers/ui/svx.suppr
index 4548b24fa2e5..91bf57803542 100644
--- a/solenv/sanitizers/ui/svx.suppr
+++ b/solenv/sanitizers/ui/svx.suppr
@@ -37,6 +37,8 @@ svx/uiconfig/ui/findreplacedialog.ui://GtkLabel[@id='label7'] orphan-label
svx/uiconfig/ui/findreplacedialog.ui://GtkLabel[@id='searchinlabel'] orphan-label
svx/uiconfig/ui/findreplacedialog.ui://GtkComboBoxText[@id='calcsearchin'] no-labelled-by
svx/uiconfig/ui/findreplacedialog.ui://GtkLabel[@id='searchdir'] orphan-label
+svx/uiconfig/ui/floatingcontour.ui://GtkLabel[@id='statuspos'] orphan-label
+svx/uiconfig/ui/floatingcontour.ui://GtkLabel[@id='statussize'] orphan-label
svx/uiconfig/ui/fontworkgallerydialog.ui://GtkLabel[@id='label1'] orphan-label
svx/uiconfig/ui/headfootformatpage.ui://GtkLabel[@id='labelHeaderFormat'] orphan-label
svx/uiconfig/ui/headfootformatpage.ui://GtkLabel[@id='labelFooterFormat'] orphan-label
diff --git a/svx/source/dialog/_contdlg.cxx b/svx/source/dialog/_contdlg.cxx
index a63ee17c932b..67001af2f779 100644
--- a/svx/source/dialog/_contdlg.cxx
+++ b/svx/source/dialog/_contdlg.cxx
@@ -43,7 +43,7 @@
#include "dlgunit.hxx"
#include <vcl/weld.hxx>
-SFX_IMPL_FLOATINGWINDOW_WITHID( SvxContourDlgChildWindow, SID_CONTOUR_DLG );
+SFX_IMPL_MODELESSDIALOGCONTOLLER_WITHID(SvxContourDlgChildWindow, SID_CONTOUR_DLG);
SvxContourDlgItem::SvxContourDlgItem( SvxSuperContourDlg& rContourDlg, SfxBindings& rBindings ) :
SfxControllerItem ( SID_CONTOUR_EXEC, rBindings ),
@@ -62,41 +62,24 @@ void SvxContourDlgItem::StateChanged( sal_uInt16 nSID, SfxItemState /*eState*/,
}
}
-SvxContourDlgChildWindow::SvxContourDlgChildWindow( vcl::Window* _pParent, sal_uInt16 nId,
- SfxBindings* pBindings, SfxChildWinInfo const * pInfo ) :
- SfxChildWindow( _pParent, nId )
+SvxContourDlgChildWindow::SvxContourDlgChildWindow(vcl::Window* _pParent, sal_uInt16 nId,
+ SfxBindings* pBindings, SfxChildWinInfo const * pInfo)
+ : SfxChildWindow( _pParent, nId )
{
- VclPtr<SvxSuperContourDlg> pDlg = VclPtr<SvxSuperContourDlg>::Create(pBindings, this, _pParent);
- SetWindow(pDlg);
-
- if ( pInfo->nFlags & SfxChildWindowFlags::ZOOMIN )
- pDlg->RollUp();
-
+ SetController(std::make_shared<SvxContourDlg>(pBindings, this, _pParent->GetFrameWeld()));
+ SvxContourDlg* pDlg = static_cast<SvxContourDlg*>(GetController().get());
pDlg->Initialize( pInfo );
}
SvxContourDlg::SvxContourDlg(SfxBindings* _pBindings, SfxChildWindow* pCW,
- vcl::Window* _pParent)
- : SfxFloatingWindow(_pBindings, pCW, _pParent , "FloatingContour",
- "svx/ui/floatingcontour.ui")
- , pSuperClass(nullptr)
+ weld::Window* _pParent)
+ : SfxModelessDialogController(_pBindings, pCW, _pParent, "svx/ui/floatingcontour.ui", "FloatingContour")
+ , m_xImpl(std::make_unique<SvxSuperContourDlg>(*m_xBuilder, *m_xDialog, _pBindings))
{
}
SvxContourDlg::~SvxContourDlg()
{
- disposeOnce();
-}
-
-void SvxContourDlg::dispose()
-{
- pSuperClass.clear();
- SfxFloatingWindow::dispose();
-}
-
-void SvxContourDlg::SetSuperClass( SvxSuperContourDlg& rSuperClass )
-{
- pSuperClass = &rSuperClass;
}
tools::PolyPolygon SvxContourDlg::CreateAutoContour( const Graphic& rGraphic,
@@ -188,106 +171,65 @@ tools::PolyPolygon SvxContourDlg::CreateAutoContour( const Graphic& rGraphic,
const Graphic& SvxContourDlg::GetGraphic() const
{
- return pSuperClass->GetGraphic();
+ return m_xImpl->GetGraphic();
}
bool SvxContourDlg::IsGraphicChanged() const
{
- return pSuperClass->IsGraphicChanged();
+ return m_xImpl->IsGraphicChanged();
}
tools::PolyPolygon SvxContourDlg::GetPolyPolygon()
{
- return pSuperClass->GetPolyPolygon();
+ return m_xImpl->GetPolyPolygon();
}
const void* SvxContourDlg::GetEditingObject() const
{
- return pSuperClass->GetEditingObject();
+ return m_xImpl->GetEditingObject();
}
void SvxContourDlg::Update( const Graphic& rGraphic, bool bGraphicLinked,
const tools::PolyPolygon* pPolyPoly, void* pEditingObj )
{
- pSuperClass->UpdateGraphic( rGraphic, bGraphicLinked, pPolyPoly, pEditingObj );
-}
-
-SvxSuperContourDlg::SvxSuperContourDlg(SfxBindings *_pBindings, SfxChildWindow *pCW,
- vcl::Window* _pParent) :
- SvxContourDlg ( _pBindings, pCW, _pParent ),
- aUpdateIdle ( "SvxSuperContourDlg UpdateIdle" ),
- aCreateIdle ( "SvxSuperContourDlg CreateIdle" ),
- pUpdateEditingObject( nullptr ),
- pCheckObj ( nullptr ),
- aContourItem ( *this, *_pBindings ),
- mnGrfChanged ( 0 ),
- bExecState ( false ),
- bUpdateGraphicLinked( false ),
- bGraphicLinked ( false )
-{
- get(m_pTbx1, "toolbar");
- get(m_pMtfTolerance, "spinbutton");
- m_pContourWnd = VclPtr<ContourWindow>::Create(get<vcl::Window>("container"), WB_BORDER);
- m_pContourWnd->set_hexpand(true);
- m_pContourWnd->set_vexpand(true);
- m_pContourWnd->Show();
- get(m_pStbStatus, "statusbar");
-
- mnApplyId = m_pTbx1->GetItemId("TBI_APPLY");
- mnWorkSpaceId = m_pTbx1->GetItemId("TBI_WORKPLACE");
- m_pTbx1->SetItemBits(mnWorkSpaceId, ToolBoxItemBits::AUTOCHECK);
- mnSelectId = m_pTbx1->GetItemId("TBI_SELECT");
- m_pTbx1->SetItemBits(mnSelectId, ToolBoxItemBits::RADIOCHECK | ToolBoxItemBits::AUTOCHECK);
- mnRectId = m_pTbx1->GetItemId("TBI_RECT");
- m_pTbx1->SetItemBits(mnRectId, ToolBoxItemBits::RADIOCHECK | ToolBoxItemBits::AUTOCHECK);
- mnCircleId = m_pTbx1->GetItemId("TBI_CIRCLE");
- m_pTbx1->SetItemBits(mnCircleId, ToolBoxItemBits::RADIOCHECK | ToolBoxItemBits::AUTOCHECK);
- mnPolyId = m_pTbx1->GetItemId("TBI_POLY");
- m_pTbx1->SetItemBits(mnPolyId, ToolBoxItemBits::RADIOCHECK | ToolBoxItemBits::AUTOCHECK);
- mnPolyEditId = m_pTbx1->GetItemId("TBI_POLYEDIT");
- m_pTbx1->SetItemBits(mnPolyEditId, ToolBoxItemBits::AUTOCHECK);
- mnPolyMoveId = m_pTbx1->GetItemId("TBI_POLYMOVE");
- m_pTbx1->SetItemBits(mnPolyMoveId, ToolBoxItemBits::RADIOCHECK | ToolBoxItemBits::AUTOCHECK);
- mnPolyInsertId = m_pTbx1->GetItemId("TBI_POLYINSERT");
- m_pTbx1->SetItemBits(mnPolyInsertId, ToolBoxItemBits::RADIOCHECK | ToolBoxItemBits::AUTOCHECK);
- mnPolyDeleteId = m_pTbx1->GetItemId("TBI_POLYDELETE");
- mnAutoContourId = m_pTbx1->GetItemId("TBI_AUTOCONTOUR");
- mnUndoId = m_pTbx1->GetItemId("TBI_UNDO");
- mnRedoId = m_pTbx1->GetItemId("TBI_REDO");
- mnPipetteId = m_pTbx1->GetItemId("TBI_PIPETTE");
- m_pTbx1->SetItemBits(mnPipetteId, ToolBoxItemBits::AUTOCHECK);
-
- SvxContourDlg::SetSuperClass( *this );
-
- m_pContourWnd->SetMousePosLink( LINK( this, SvxSuperContourDlg, MousePosHdl ) );
- m_pContourWnd->SetGraphSizeLink( LINK( this, SvxSuperContourDlg, GraphSizeHdl ) );
- m_pContourWnd->SetUpdateLink( LINK( this, SvxSuperContourDlg, StateHdl ) );
- m_pContourWnd->SetPipetteHdl( LINK( this, SvxSuperContourDlg, PipetteHdl ) );
- m_pContourWnd->SetPipetteClickHdl( LINK( this, SvxSuperContourDlg, PipetteClickHdl ) );
- m_pContourWnd->SetWorkplaceClickHdl( LINK( this, SvxSuperContourDlg, WorkplaceClickHdl ) );
-
- const Size aTbxSize( m_pTbx1->CalcWindowSizePixel() );
- Point aPos( m_pTbx1->GetPosPixel() );
- SvtMiscOptions aMiscOptions;
-
- aMiscOptions.AddListenerLink( LINK( this, SvxSuperContourDlg, MiscHdl ) );
-
- m_pTbx1->SetOutStyle( aMiscOptions.GetToolboxStyle() );
- m_pTbx1->SetSizePixel( aTbxSize );
- m_pTbx1->SetSelectHdl( LINK( this, SvxSuperContourDlg, Tbx1ClickHdl ) );
-
- aPos.AdjustX(aTbxSize.Width() + LogicToPixel( Size( 3, 0 ), MapMode( MapUnit::MapAppFont ) ).Width() );
- m_pMtfTolerance->SetPosPixel( aPos );
- m_pMtfTolerance->SetValue( 10 );
-
- SetMinOutputSizePixel( GetOutputSizePixel() );
-
- m_pStbStatus->InsertItem( 1, 130, StatusBarItemBits::Left | StatusBarItemBits::In | StatusBarItemBits::AutoSize );
- m_pStbStatus->InsertItem( 2, 10 + GetTextWidth( " 9999,99 cm / 9999,99 cm " ) );
- m_pStbStatus->InsertItem( 3, 10 + GetTextWidth( " 9999,99 cm x 9999,99 cm " ) );
- m_pStbStatus->InsertItem( 4, 20 );
-
- Resize();
+ m_xImpl->UpdateGraphic( rGraphic, bGraphicLinked, pPolyPoly, pEditingObj );
+}
+
+SvxSuperContourDlg::SvxSuperContourDlg(weld::Builder& rBuilder,
+ weld::Dialog& rDialog, SfxBindings* pBindings)
+ : aUpdateIdle( "SvxSuperContourDlg UpdateIdle" )
+ , aCreateIdle( "SvxSuperContourDlg CreateIdle" )
+ , mpBindings(pBindings)
+ , pUpdateEditingObject( nullptr )
+ , pCheckObj( nullptr )
+ , aContourItem( *this, *pBindings )
+ , mnGrfChanged( 0 )
+ , bExecState( false )
+ , bUpdateGraphicLinked( false )
+ , bGraphicLinked( false )
+ , m_rDialog(rDialog)
+ , m_xContourWnd(new ContourWindow(&rDialog))
+ , m_xStbStatusColor(new StatusColor(*m_xContourWnd))
+ , m_xTbx1(rBuilder.weld_toolbar("toolbar"))
+ , m_xMtfTolerance(rBuilder.weld_metric_spin_button("spinbutton", FieldUnit::PERCENT))
+ , m_xStbStatus2(rBuilder.weld_label("statuspos"))
+ , m_xStbStatus3(rBuilder.weld_label("statussize"))
+ , m_xCancelBtn(rBuilder.weld_button("cancel"))
+ , m_xStbStatusColorWeld(new weld::CustomWeld(rBuilder, "statuscolor", *m_xStbStatusColor))
+ , m_xContourWndWeld(new weld::CustomWeld(rBuilder, "container", *m_xContourWnd))
+{
+ m_xCancelBtn->connect_clicked(LINK(this, SvxSuperContourDlg, CancelHdl));
+
+ m_xContourWnd->SetMousePosLink( LINK( this, SvxSuperContourDlg, MousePosHdl ) );
+ m_xContourWnd->SetGraphSizeLink( LINK( this, SvxSuperContourDlg, GraphSizeHdl ) );
+ m_xContourWnd->SetUpdateLink( LINK( this, SvxSuperContourDlg, StateHdl ) );
+ m_xContourWnd->SetPipetteHdl( LINK( this, SvxSuperContourDlg, PipetteHdl ) );
+ m_xContourWnd->SetPipetteClickHdl( LINK( this, SvxSuperContourDlg, PipetteClickHdl ) );
+ m_xContourWnd->SetWorkplaceClickHdl( LINK( this, SvxSuperContourDlg, WorkplaceClickHdl ) );
+
+ m_xTbx1->connect_clicked( LINK( this, SvxSuperContourDlg, Tbx1ClickHdl ) );
+
+ m_xMtfTolerance->set_value(10, FieldUnit::PERCENT);
aUpdateIdle.SetInvokeHandler( LINK( this, SvxSuperContourDlg, UpdateHdl ) );
@@ -297,30 +239,17 @@ SvxSuperContourDlg::SvxSuperContourDlg(SfxBindings *_pBindings, SfxChildWindow *
SvxSuperContourDlg::~SvxSuperContourDlg()
{
- disposeOnce();
-}
-
-void SvxSuperContourDlg::dispose()
-{
- m_pContourWnd->SetUpdateLink( Link<GraphCtrl*,void>() );
-
- SvtMiscOptions aMiscOptions;
- aMiscOptions.RemoveListenerLink( LINK(this, SvxSuperContourDlg, MiscHdl) );
- m_pContourWnd.disposeAndClear();
- m_pTbx1.clear();
- m_pMtfTolerance.clear();
- m_pStbStatus.clear();
- aContourItem.dispose();
- SvxContourDlg::dispose();
+ m_xContourWnd->SetUpdateLink( Link<SvxGraphCtrl*,void>() );
+ m_xContourWnd.reset();
}
-bool SvxSuperContourDlg::Close()
+IMPL_LINK_NOARG(SvxSuperContourDlg, CancelHdl, weld::Button&, void)
{
bool bRet = true;
- if (m_pTbx1->IsItemEnabled(mnApplyId))
+ if (m_xTbx1->get_item_sensitive("TBI_APPLY"))
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "svx/ui/querysavecontchangesdialog.ui"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(&m_rDialog, "svx/ui/querysavecontchangesdialog.ui"));
std::unique_ptr<weld::MessageDialog> xQBox(xBuilder->weld_message_dialog("QuerySaveContourChangesDialog"));
const short nRet = xQBox->run();
@@ -335,7 +264,8 @@ bool SvxSuperContourDlg::Close()
bRet = false;
}
- return bRet && SfxFloatingWindow::Close();
+ if (bRet)
+ m_rDialog.response(RET_CANCEL);
}
// Enabled or disabled all Controls
@@ -350,12 +280,12 @@ void SvxSuperContourDlg::SetGraphic( const Graphic& rGraphic )
aUndoGraphic = aRedoGraphic = Graphic();
aGraphic = rGraphic;
mnGrfChanged = 0;
- m_pContourWnd->SetGraphic( aGraphic );
+ m_xContourWnd->SetGraphic( aGraphic );
}
void SvxSuperContourDlg::SetPolyPolygon( const tools::PolyPolygon& rPolyPoly )
{
- DBG_ASSERT( m_pContourWnd->GetGraphic().GetType() != GraphicType::NONE, "Graphic must've been set first!" );
+ DBG_ASSERT( m_xContourWnd->GetGraphic().GetType() != GraphicType::NONE, "Graphic must've been set first!" );
tools::PolyPolygon aPolyPoly( rPolyPoly );
const MapMode aMap100( MapUnit::Map100thMM );
@@ -378,13 +308,13 @@ void SvxSuperContourDlg::SetPolyPolygon( const tools::PolyPolygon& rPolyPoly )
}
}
- m_pContourWnd->SetPolyPolygon( aPolyPoly );
- m_pContourWnd->GetSdrModel()->SetChanged();
+ m_xContourWnd->SetPolyPolygon( aPolyPoly );
+ m_xContourWnd->GetSdrModel()->SetChanged();
}
tools::PolyPolygon SvxSuperContourDlg::GetPolyPolygon()
{
- tools::PolyPolygon aRetPolyPoly( m_pContourWnd->GetPolyPolygon() );
+ tools::PolyPolygon aRetPolyPoly( m_xContourWnd->GetPolyPolygon() );
const MapMode aMap100( MapUnit::Map100thMM );
const MapMode aGrfMap( aGraphic.GetPrefMapMode() );
@@ -426,115 +356,127 @@ void SvxSuperContourDlg::UpdateGraphic( const Graphic& rGraphic, bool _bGraphicL
// Click handler for ToolBox
-IMPL_LINK( SvxSuperContourDlg, Tbx1ClickHdl, ToolBox*, pTbx, void )
+IMPL_LINK(SvxSuperContourDlg, Tbx1ClickHdl, const OString&, rId, void)
{
- sal_uInt16 nNewItemId = pTbx->GetCurItemId();
-
- sal_uInt16 nId = pTbx->GetCurItemId();
- if (nId == mnApplyId)
+ if (rId == "TBI_APPLY")
{
SfxBoolItem aBoolItem( SID_CONTOUR_EXEC, true );
GetBindings().GetDispatcher()->ExecuteList(
SID_CONTOUR_EXEC, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
{ &aBoolItem });
}
- else if (nId == mnWorkSpaceId)
+ else if (rId == "TBI_WORKPLACE")
{
- if (m_pTbx1->IsItemChecked(mnWorkSpaceId))
+ if (m_xTbx1->get_item_active("TBI_WORKPLACE"))
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "svx/ui/querydeletecontourdialog.ui"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(&m_rDialog, "svx/ui/querydeletecontourdialog.ui"));
std::unique_ptr<weld::MessageDialog> xQBox(xBuilder->weld_message_dialog("QueryDeleteContourDialog"));
- if (!m_pContourWnd->IsContourChanged() || (xQBox->run() == RET_YES))
- m_pContourWnd->SetWorkplaceMode( true );
+ if (!m_xContourWnd->IsContourChanged() || (xQBox->run() == RET_YES))
+ m_xContourWnd->SetWorkplaceMode( true );
else
- m_pTbx1->CheckItem(mnWorkSpaceId, false);
+ m_xTbx1->set_item_active("TBI_WORKPLACE", false);
}
else
- m_pContourWnd->SetWorkplaceMode( false );
+ m_xContourWnd->SetWorkplaceMode( false );
}
- else if (nId == mnSelectId)
+ else if (rId == "TBI_SELECT")
{
- pTbx->CheckItem( nNewItemId );
- m_pContourWnd->SetEditMode( true );
+ SetActiveTool(rId);
+ m_xContourWnd->SetEditMode( true );
}
- else if (nId == mnRectId)
+ else if (rId == "TBI_RECT")
{
- pTbx->CheckItem( nNewItemId );
- m_pContourWnd->SetObjKind( OBJ_RECT );
+ SetActiveTool(rId);
+ m_xContourWnd->SetObjKind( OBJ_RECT );
}
- else if (nId == mnCircleId)
+ else if (rId == "TBI_CIRCLE")
{
- pTbx->CheckItem( nNewItemId );
- m_pContourWnd->SetObjKind( OBJ_CIRC );
+ SetActiveTool(rId);
+ m_xContourWnd->SetObjKind( OBJ_CIRC );
}
- else if (nId == mnPolyId)
+ else if (rId == "TBI_POLY")
{
- pTbx->CheckItem( nNewItemId );
- m_pContourWnd->SetObjKind( OBJ_POLY );
+ SetActiveTool(rId);
+ m_xContourWnd->SetObjKind( OBJ_POLY );
}
- else if (nId == mnPolyEditId)
+ else if (rId == "TBI_POLYEDIT")
{
- m_pContourWnd->SetPolyEditMode(pTbx->IsItemChecked(mnPolyEditId) ? SID_BEZIER_MOVE : 0);
+ m_xContourWnd->SetPolyEditMode(m_xTbx1->get_item_active("TBI_POLYEDIT") ? SID_BEZIER_MOVE : 0);
}
- else if (nId == mnPolyMoveId)
+ else if (rId == "TBI_POLYMOVE")
{
- m_pContourWnd->SetPolyEditMode( SID_BEZIER_MOVE );
+ SetActivePoly(rId);
+ m_xContourWnd->SetPolyEditMode( SID_BEZIER_MOVE );
}
- else if (nId == mnPolyInsertId)
+ else if (rId == "TBI_POLYINSERT")
{
- m_pContourWnd->SetPolyEditMode( SID_BEZIER_INSERT );
+ SetActivePoly(rId);
+ m_xContourWnd->SetPolyEditMode( SID_BEZIER_INSERT );
}
- else if (nId == mnPolyDeleteId)
+ else if (rId == "TBI_POLYDELETE")
{
- m_pContourWnd->GetSdrView()->DeleteMarkedPoints();
+ m_xContourWnd->GetSdrView()->DeleteMarkedPoints();
}
- else if (nId == mnUndoId)
+ else if (rId == "TBI_UNDO")
{
mnGrfChanged = mnGrfChanged ? mnGrfChanged - 1 : 0;
aRedoGraphic = aGraphic;
aGraphic = aUndoGraphic;
aUndoGraphic = Graphic();
- m_pContourWnd->SetGraphic( aGraphic, false );
+ m_xContourWnd->SetGraphic( aGraphic, false );
}
- else if (nId == mnRedoId)
+ else if (rId == "TBI_REDO")
{
mnGrfChanged++;
aUndoGraphic = aGraphic;
aGraphic = aRedoGraphic;
aRedoGraphic = Graphic();
- m_pContourWnd->SetGraphic( aGraphic, false );
+ m_xContourWnd->SetGraphic( aGraphic, false );
}
- else if (nId == mnAutoContourId)
+ else if (rId == "TBI_AUTOCONTOUR")
{
aCreateIdle.Start();
}
- else if (nId == mnPipetteId)
+ else if (rId == "TBI_PIPETTE")
{
- bool bPipette = m_pTbx1->IsItemChecked(mnPipetteId);
+ bool bPipette = m_xTbx1->get_item_active("TBI_PIPETTE");
if ( !bPipette )
- m_pStbStatus->Invalidate();
+ m_xStbStatusColor->Invalidate();
else if ( bGraphicLinked )
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "svx/ui/queryunlinkgraphicsdialog.ui"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(&m_rDialog, "svx/ui/queryunlinkgraphicsdialog.ui"));
std::unique_ptr<weld::MessageDialog> xQBox(xBuilder->weld_message_dialog("QueryUnlinkGraphicsDialog"));
if (xQBox->run() != RET_YES)
{
bPipette = false;
- m_pTbx1->CheckItem(mnPipetteId, bPipette);
- m_pStbStatus->Invalidate();
+ m_xTbx1->set_item_active("TBI_PIPETTE", bPipette);
+ m_xStbStatusColor->Invalidate();
}
}
- m_pContourWnd->SetPipetteMode( bPipette );
+ m_xContourWnd->SetPipetteMode( bPipette );
}
- Invalidate();
- m_pContourWnd->QueueIdleUpdate();
+ m_xContourWnd->QueueIdleUpdate();
+}
+
+void SvxSuperContourDlg::SetActiveTool(const OString& rId)
+{
+ m_xTbx1->set_item_active("TBI_SELECT", rId == "TBI_SELECT");
+ m_xTbx1->set_item_active("TBI_RECT", rId == "TBI_RECT");
+ m_xTbx1->set_item_active("TBI_CIRCLE", rId == "TBI_CIRCLE");
+ m_xTbx1->set_item_active("TBI_POLY", rId == "TBI_POLY");
+}
+
+void SvxSuperContourDlg::SetActivePoly(const OString& rId)
+{
+ m_xTbx1->set_item_active("TBI_POLYMOVE", rId == "TBI_POLYMOVE");
+ m_xTbx1->set_item_active("TBI_POLYINSERT", rId == "TBI_POLYINSERT");
}
-IMPL_LINK( SvxSuperContourDlg, MousePosHdl, GraphCtrl*, pWnd, void )
+IMPL_LINK( SvxSuperContourDlg, MousePosHdl, SvxGraphCtrl*, pWnd, void )
{
OUString aStr;
const FieldUnit eFieldUnit = GetBindings().GetDispatcher()->GetModule()->GetFieldUnit();
@@ -546,10 +488,10 @@ IMPL_LINK( SvxSuperContourDlg, MousePosHdl, GraphCtrl*, pWnd, void )
+ " / "
+ GetUnitString( rMousePos.Y(), eFieldUnit, cSep );
- m_pStbStatus->SetItemText( 2, aStr );
+ m_xStbStatus2->set_label( aStr );
}
-IMPL_LINK( SvxSuperContourDlg, GraphSizeHdl, GraphCtrl*, pWnd, void )
+IMPL_LINK( SvxSuperContourDlg, GraphSizeHdl, SvxGraphCtrl*, pWnd, void )
{
OUString aStr;
const FieldUnit eFieldUnit = GetBindings().GetDispatcher()->GetModule()->GetFieldUnit();
@@ -561,7 +503,7 @@ IMPL_LINK( SvxSuperContourDlg, GraphSizeHdl, GraphCtrl*, pWnd, void )
+ " x "
+ GetUnitString( rSize.Height(), eFieldUnit, cSep );
- m_pStbStatus->SetItemText( 3, aStr );
+ m_xStbStatus3->set_label( aStr );
}
IMPL_LINK_NOARG(SvxSuperContourDlg, UpdateHdl, Timer *, void)
@@ -571,7 +513,7 @@ IMPL_LINK_NOARG(SvxSuperContourDlg, UpdateHdl, Timer *, void)
if ( pUpdateEditingObject != pCheckObj )
{
if( !GetEditingObject() )
- m_pContourWnd->GrabFocus();
+ m_xContourWnd->GrabFocus();
SetGraphic( aUpdateGraphic );
SetPolyPolygon( aUpdatePolyPoly );
@@ -582,101 +524,105 @@ IMPL_LINK_NOARG(SvxSuperContourDlg, UpdateHdl, Timer *, void)
aUpdatePolyPoly = tools::PolyPolygon();
bUpdateGraphicLinked = false;
- m_pContourWnd->GetSdrModel()->SetChanged( false );
+ m_xContourWnd->GetSdrModel()->SetChanged( false );
}
GetBindings().Invalidate( SID_CONTOUR_EXEC );
- m_pContourWnd->QueueIdleUpdate();
+ m_xContourWnd->QueueIdleUpdate();
}
IMPL_LINK_NOARG(SvxSuperContourDlg, CreateHdl, Timer *, void)
{
aCreateIdle.Stop();
- const tools::Rectangle aWorkRect = m_pContourWnd->LogicToPixel( m_pContourWnd->GetWorkRect(), MapMode( MapUnit::Map100thMM ) );
- const Graphic& rGraphic = m_pContourWnd->GetGraphic();
+ const tools::Rectangle aWorkRect = m_xContourWnd->GetDrawingArea()->get_ref_device().LogicToPixel(
+ m_xContourWnd->GetWorkRect(), MapMode( MapUnit::Map100thMM));
+
+ const Graphic& rGraphic = m_xContourWnd->GetGraphic();
const bool bValid = aWorkRect.Left() != aWorkRect.Right() && aWorkRect.Top() != aWorkRect.Bottom();
- EnterWait();
- SetPolyPolygon( CreateAutoContour( rGraphic, bValid ? &aWorkRect : nullptr ) );
- LeaveWait();
+ weld::WaitObject aWaitObj(&m_rDialog);
+ SetPolyPolygon( SvxContourDlg::CreateAutoContour( rGraphic, bValid ? &aWorkRect : nullptr ) );
}
-IMPL_LINK( SvxSuperContourDlg, StateHdl, GraphCtrl*, pWnd, void )
+IMPL_LINK( SvxSuperContourDlg, StateHdl, SvxGraphCtrl*, pWnd, void )
{
const SdrObject* pObj = pWnd->GetSelectedSdrObject();
const SdrView* pView = pWnd->GetSdrView();
const bool bPolyEdit = ( pObj != nullptr ) && dynamic_cast<const SdrPathObj*>( pObj) != nullptr;
- const bool bDrawEnabled = !(bPolyEdit && m_pTbx1->IsItemChecked(mnPolyEditId));
- const bool bPipette = m_pTbx1->IsItemChecked(mnPipetteId);
- const bool bWorkplace = m_pTbx1->IsItemChecked(mnWorkSpaceId);
+ const bool bDrawEnabled = !(bPolyEdit && m_xTbx1->get_item_active("TBI_POLYEDIT"));
+ const bool bPipette = m_xTbx1->get_item_active("TBI_PIPETTE");
+ const bool bWorkplace = m_xTbx1->get_item_active("TBI_WORKPLACE");
const bool bDontHide = !( bPipette || bWorkplace );
const bool bBitmap = pWnd->GetGraphic().GetType() == GraphicType::Bitmap;
- m_pTbx1->EnableItem(mnApplyId, bDontHide && bExecState && pWnd->IsChanged());
+ m_xTbx1->set_item_sensitive("TBI_APPLY", bDontHide && bExecState && pWnd->IsChanged());
- m_pTbx1->EnableItem(mnWorkSpaceId, !bPipette && bDrawEnabled);
+ m_xTbx1->set_item_sensitive("TBI_WORKPLACE", !bPipette && bDrawEnabled);
- m_pTbx1->EnableItem(mnSelectId, bDontHide && bDrawEnabled);
- m_pTbx1->EnableItem(mnRectId, bDontHide && bDrawEnabled);
- m_pTbx1->EnableItem(mnCircleId, bDontHide && bDrawEnabled);
- m_pTbx1->EnableItem(mnPolyId, bDontHide && bDrawEnabled);
+ m_xTbx1->set_item_sensitive("TBI_SELECT", bDontHide && bDrawEnabled);
+ m_xTbx1->set_item_sensitive("TBI_RECT", bDontHide && bDrawEnabled);
+ m_xTbx1->set_item_sensitive("TBI_CIRCLE", bDontHide && bDrawEnabled);
+ m_xTbx1->set_item_sensitive("TBI_POLY", bDontHide && bDrawEnabled);
- m_pTbx1->EnableItem(mnPolyEditId, bDontHide && bPolyEdit);
- m_pTbx1->EnableItem(mnPolyMoveId, bDontHide && !bDrawEnabled);
- m_pTbx1->EnableItem(mnPolyInsertId, bDontHide && !bDrawEnabled);
- m_pTbx1->EnableItem(mnPolyDeleteId, bDontHide && !bDrawEnabled && pView->IsDeleteMarkedPointsPossible());
+ m_xTbx1->set_item_sensitive("TBI_POLYEDIT", bDontHide && bPolyEdit);
+ m_xTbx1->set_item_sensitive("TBI_POLYMOVE", bDontHide && !bDrawEnabled);
+ m_xTbx1->set_item_sensitive("TBI_POLYINSERT", bDontHide && !bDrawEnabled);
+ m_xTbx1->set_item_sensitive("TBI_POLYDELETE", bDontHide && !bDrawEnabled && pView->IsDeleteMarkedPointsPossible());
- m_pTbx1->EnableItem(mnAutoContourId, bDontHide && bDrawEnabled);
- m_pTbx1->EnableItem(mnPipetteId, !bWorkplace && bDrawEnabled && bBitmap);
+ m_xTbx1->set_item_sensitive("TBI_AUTOCONTOUR", bDontHide && bDrawEnabled);
+ m_xTbx1->set_item_sensitive("TBI_PIPETTE", !bWorkplace && bDrawEnabled && bBitmap);
- m_pTbx1->EnableItem(mnUndoId, bDontHide && aUndoGraphic.GetType() != GraphicType::NONE);
- m_pTbx1->EnableItem(mnRedoId, bDontHide && aRedoGraphic.GetType() != GraphicType::NONE);
+ m_xTbx1->set_item_sensitive("TBI_UNDO", bDontHide && aUndoGraphic.GetType() != GraphicType::NONE);
+ m_xTbx1->set_item_sensitive("TBI_REDO", bDontHide && aRedoGraphic.GetType() != GraphicType::NONE);
if ( bPolyEdit )
{
- sal_uInt16 nId = 0;
-
switch( pWnd->GetPolyEditMode() )
{
- case SID_BEZIER_MOVE: nId = mnPolyMoveId; break;
- case SID_BEZIER_INSERT: nId = mnPolyInsertId; break;
-
+ case SID_BEZIER_MOVE:
+ SetActivePoly("TBI_POLYMOVE");
+ break;
+ case SID_BEZIER_INSERT:
+ SetActivePoly("TBI_POLYINSERT");
+ break;
default:
- break;
+ break;
}
-
- m_pTbx1->CheckItem( nId );
}
else
{
- m_pTbx1->CheckItem(mnPolyEditId, false);
- m_pTbx1->CheckItem(mnPolyMoveId);
- m_pTbx1->CheckItem(mnPolyInsertId, false);
+ m_xTbx1->set_item_active("TBI_POLYEDIT", false);
+ SetActivePoly("TBI_POLYMOVE");
pWnd->SetPolyEditMode( 0 );
}
}
-IMPL_LINK( SvxSuperContourDlg, PipetteHdl, ContourWindow&, rWnd, void )
+IMPL_LINK_NOARG(SvxSuperContourDlg, PipetteHdl, ContourWindow&, void)
+{
+ m_xStbStatusColor->Invalidate();
+}
+
+void StatusColor::Paint(vcl::RenderContext& rDevice, const tools::Rectangle&)
{
- const Color& rOldLineColor = m_pStbStatus->GetLineColor();
- const Color& rOldFillColor = m_pStbStatus->GetFillColor();
+ const Color& rOldLineColor = rDevice.GetLineColor();
+ const Color& rOldFillColor = rDevice.GetFillColor();
- tools::Rectangle aRect( m_pStbStatus->GetItemRect( 4 ) );
- const Color& rColor = rWnd.GetPipetteColor();
+ tools::Rectangle aRect(Point(), GetOutputSizePixel());
+ const Color& rColor = m_rWnd.GetPipetteColor();
- m_pStbStatus->SetLineColor( rColor );
- m_pStbStatus->SetFillColor( rColor );
+ rDevice.SetLineColor(rColor);
+ rDevice.SetFillColor(rColor);
aRect.AdjustLeft(4 );
aRect.AdjustTop(4 );
aRect.AdjustRight( -4 );
aRect.AdjustBottom( -4 );
- m_pStbStatus->DrawRect( aRect );
+ rDevice.DrawRect( aRect );
- m_pStbStatus->SetLineColor( rOldLineColor );
- m_pStbStatus->SetFillColor( rOldFillColor );
+ rDevice.SetLineColor(rOldLineColor);
+ rDevice.SetFillColor(rOldFillColor);
}
IMPL_LINK( SvxSuperContourDlg, PipetteClickHdl, ContourWindow&, rWnd, void )
@@ -686,12 +632,12 @@ IMPL_LINK( SvxSuperContourDlg, PipetteClickHdl, ContourWindow&, rWnd, void )
Bitmap aMask;
const Color& rColor = rWnd.GetPipetteColor();
- EnterWait();
+ weld::WaitObject aWaitObj(&m_rDialog);
if( aGraphic.GetType() == GraphicType::Bitmap )
{
Bitmap aBmp( aGraphic.GetBitmapEx().GetBitmap() );
- const long nTol = static_cast<long>(m_pMtfTolerance->GetValue() * 255L / 100L);
+ const long nTol = static_cast<long>(m_xMtfTolerance->get_value(FieldUnit::PERCENT) * 255L / 100L);
aMask = aBmp.CreateMask( rColor, nTol );
@@ -700,7 +646,7 @@ IMPL_LINK( SvxSuperContourDlg, PipetteClickHdl, ContourWindow&, rWnd, void )
if( !!aMask )
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "svx/ui/querynewcontourdialog.ui"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(&m_rDialog, "svx/ui/querynewcontourdialog.ui"));
std::unique_ptr<weld::MessageDialog> xQBox(xBuilder->weld_message_dialog("QueryNewContourDialog"));
bool bNewContour;
@@ -717,29 +663,20 @@ IMPL_LINK( SvxSuperContourDlg, PipetteClickHdl, ContourWindow&, rWnd, void )
aCreateIdle.Start();
}
}
-
- LeaveWait();
}
- m_pTbx1->CheckItem(mnPipetteId, false);
+ m_xTbx1->set_item_active("TBI_PIPETTE", false);
rWnd.SetPipetteMode( false );
- m_pStbStatus->Invalidate();
+ m_xStbStatusColor->Invalidate();
}
IMPL_LINK( SvxSuperContourDlg, WorkplaceClickHdl, ContourWindow&, rWnd, void )
{
- m_pTbx1->CheckItem(mnWorkSpaceId, false);
- m_pTbx1->CheckItem(mnSelectId);
+ m_xTbx1->set_item_active("TBI_WORKPLACE", false);
+ m_xTbx1->set_item_active("TBI_SELECT", true);
rWnd.SetWorkplaceMode( false );
- m_pContourWnd->QueueIdleUpdate();
- Invalidate();
-}
-
-IMPL_LINK_NOARG(SvxSuperContourDlg, MiscHdl, LinkParamNone*, void)
-{
- SvtMiscOptions aMiscOptions;
- m_pTbx1->SetOutStyle( aMiscOptions.GetToolboxStyle() );
+ m_xContourWnd->QueueIdleUpdate();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/dialog/contimp.hxx b/svx/source/dialog/contimp.hxx
index 8a077da01871..4032085c20fb 100644
--- a/svx/source/dialog/contimp.hxx
+++ b/svx/source/dialog/contimp.hxx
@@ -21,8 +21,6 @@
#include <svx/contdlg.hxx>
#include "contwnd.hxx"
-#include <vcl/toolbox.hxx>
-#include <vcl/status.hxx>
#include <vcl/idle.hxx>
class SvxSuperContourDlg;
@@ -40,63 +38,77 @@ public:
SvxContourDlgItem( SvxSuperContourDlg& rDlg, SfxBindings& rBindings );
};
-class SvxSuperContourDlg : public SvxContourDlg
+class ContourWindow;
+
+class StatusColor : public weld::CustomWidgetController
{
- using SvxContourDlg::GetPolyPolygon;
+private:
+ ContourWindow& m_rWnd;
+public:
+ StatusColor(ContourWindow& rWnd)
+ : m_rWnd(rWnd)
+ {
+ }
+ virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override;
+ virtual void SetDrawingArea(weld::DrawingArea* pDrawingArea) override
+ {
+ weld::CustomWidgetController::SetDrawingArea(pDrawingArea);
+ Size aSize(pDrawingArea->get_approximate_digit_width() * 3,
+ pDrawingArea->get_text_height());
+ pDrawingArea->set_size_request(aSize.Width(), aSize.Height());
+ SetOutputSizePixel(aSize);
+ }
+};
+class SvxSuperContourDlg
+{
Graphic aGraphic;
Graphic aUndoGraphic;
Graphic aRedoGraphic;
Graphic aUpdateGraphic;
- tools::PolyPolygon aUpdatePolyPoly;
+ tools::PolyPolygon aUpdatePolyPoly;
Idle aUpdateIdle;
Idle aCreateIdle;
+ SfxBindings* mpBindings;
void* pUpdateEditingObject;
void* pCheckObj;
SvxContourDlgItem aContourItem;
- VclPtr<ToolBox> m_pTbx1;
- VclPtr<MetricField> m_pMtfTolerance;
- VclPtr<ContourWindow> m_pContourWnd;
- VclPtr<StatusBar> m_pStbStatus;
sal_Int32 mnGrfChanged;
bool bExecState;
bool bUpdateGraphicLinked;
bool bGraphicLinked;
- sal_uInt16 mnApplyId;
- sal_uInt16 mnWorkSpaceId;
- sal_uInt16 mnSelectId;
- sal_uInt16 mnRectId;
- sal_uInt16 mnCircleId;
- sal_uInt16 mnPolyId;
- sal_uInt16 mnPolyEditId;
- sal_uInt16 mnPolyMoveId;
- sal_uInt16 mnPolyInsertId;
- sal_uInt16 mnPolyDeleteId;
- sal_uInt16 mnAutoContourId;
- sal_uInt16 mnUndoId;
- sal_uInt16 mnRedoId;
- sal_uInt16 mnPipetteId;
-
- virtual bool Close() override;
-
- DECL_LINK( Tbx1ClickHdl, ToolBox*, void );
- DECL_LINK( MousePosHdl, GraphCtrl*, void );
- DECL_LINK( GraphSizeHdl, GraphCtrl*, void );
- DECL_LINK( UpdateHdl, Timer *, void );
- DECL_LINK( CreateHdl, Timer *, void );
- DECL_LINK( StateHdl, GraphCtrl*, void );
- DECL_LINK( PipetteHdl, ContourWindow&, void );
- DECL_LINK( PipetteClickHdl, ContourWindow&, void );
- DECL_LINK( WorkplaceClickHdl, ContourWindow&, void );
- DECL_LINK( MiscHdl, LinkParamNone*, void );
+ weld::Dialog& m_rDialog;
+ std::unique_ptr<ContourWindow> m_xContourWnd;
+ std::unique_ptr<StatusColor> m_xStbStatusColor;
+ std::unique_ptr<weld::Toolbar> m_xTbx1;
+ std::unique_ptr<weld::MetricSpinButton> m_xMtfTolerance;
+ std::unique_ptr<weld::Label> m_xStbStatus2;
+ std::unique_ptr<weld::Label> m_xStbStatus3;
+ std::unique_ptr<weld::Button> m_xCancelBtn;
+ std::unique_ptr<weld::CustomWeld> m_xStbStatusColorWeld;
+ std::unique_ptr<weld::CustomWeld> m_xContourWndWeld;
+
+ DECL_LINK( Tbx1ClickHdl, const OString&, void );
+ DECL_LINK( MousePosHdl, SvxGraphCtrl*, void );
+ DECL_LINK( GraphSizeHdl, SvxGraphCtrl*, void );
+ DECL_LINK( UpdateHdl, Timer *, void );
+ DECL_LINK( CreateHdl, Timer *, void );
+ DECL_LINK( StateHdl, SvxGraphCtrl*, void );
+ DECL_LINK( PipetteHdl, ContourWindow&, void );
+ DECL_LINK( PipetteClickHdl, ContourWindow&, void );
+ DECL_LINK( WorkplaceClickHdl, ContourWindow&, void );
+ DECL_LINK( CancelHdl, weld::Button&, void );
+
+ void SetActiveTool(const OString& rId);
+ void SetActivePoly(const OString& rId);
+
+ SfxBindings& GetBindings() { return *mpBindings; }
public:
- SvxSuperContourDlg(SfxBindings *pBindings, SfxChildWindow *pCW,
- vcl::Window* pParent);
- virtual ~SvxSuperContourDlg() override;
- virtual void dispose() override;
+ SvxSuperContourDlg(weld::Builder& rBuilder, weld::Dialog& rDialog, SfxBindings* pBindings);
+ ~SvxSuperContourDlg();
void SetExecState( bool bEnable );
diff --git a/svx/source/dialog/contwnd.cxx b/svx/source/dialog/contwnd.cxx
index 6ae42a7dee69..a2379035e255 100644
--- a/svx/source/dialog/contwnd.cxx
+++ b/svx/source/dialog/contwnd.cxx
@@ -33,14 +33,13 @@ using namespace css;
#define TRANSCOL COL_WHITE
-ContourWindow::ContourWindow(vcl::Window* pParent, WinBits nBits)
- : GraphCtrl (pParent, nBits)
+ContourWindow::ContourWindow(weld::Dialog* pDialog)
+ : SvxGraphCtrl(pDialog)
, aWorkRect(0, 0, 0, 0)
, bPipetteMode(false)
, bWorkplaceMode(false)
, bClickValid(false)
{
- SetSdrMode(true);
}
void ContourWindow::SetPolyPolygon(const tools::PolyPolygon& rPolyPoly)
@@ -112,7 +111,7 @@ const tools::PolyPolygon& ContourWindow::GetPolyPolygon()
void ContourWindow::InitSdrModel()
{
- GraphCtrl::InitSdrModel();
+ SvxGraphCtrl::InitSdrModel();
SfxItemSet aSet( pModel->GetItemPool() );
@@ -139,11 +138,11 @@ bool ContourWindow::IsContourChanged() const
return bRet;
}
-void ContourWindow::MouseButtonDown( const MouseEvent& rMEvt )
+bool ContourWindow::MouseButtonDown( const MouseEvent& rMEvt )
{
if ( bWorkplaceMode )
{
- const Point aLogPt( PixelToLogic( rMEvt.GetPosPixel() ) );
+ const Point aLogPt(GetDrawingArea()->get_ref_device().PixelToLogic(rMEvt.GetPosPixel()));
SetPolyPolygon( tools::PolyPolygon() );
aWorkRect = tools::Rectangle( aLogPt, aLogPt );
@@ -151,48 +150,54 @@ void ContourWindow::MouseButtonDown( const MouseEvent& rMEvt )
SetEditMode( true );
}
- if ( !bPipetteMode )
- GraphCtrl::MouseButtonDown( rMEvt );
+ if (!bPipetteMode)
+ return SvxGraphCtrl::MouseButtonDown( rMEvt );
+
+ return true;
}
-void ContourWindow::MouseMove( const MouseEvent& rMEvt )
+bool ContourWindow::MouseMove( const MouseEvent& rMEvt )
{
bClickValid = false;
if ( bPipetteMode )
{
- const Point aLogPt( PixelToLogic( rMEvt.GetPosPixel() ) );
+ const Point aLogPt( GetDrawingArea()->get_ref_device().PixelToLogic( rMEvt.GetPosPixel() ) );
- aPipetteColor = GetPixel( aLogPt );
- Control::MouseMove( rMEvt );
+ aPipetteColor = GetDrawingArea()->get_ref_device().GetPixel( aLogPt );
+ weld::CustomWidgetController::MouseMove( rMEvt );
if ( aPipetteLink.IsSet() && tools::Rectangle( Point(), GetGraphicSize() ).IsInside( aLogPt ) )
{
SetPointer( PointerStyle::RefHand );
aPipetteLink.Call( *this );
}
+
+ return true;
}
- else
- GraphCtrl::MouseMove( rMEvt );
+
+ return SvxGraphCtrl::MouseMove( rMEvt );
}
-void ContourWindow::MouseButtonUp(const MouseEvent& rMEvt)
+bool ContourWindow::MouseButtonUp(const MouseEvent& rMEvt)
{
const tools::Rectangle aGraphRect( Point(), GetGraphicSize() );
- const Point aLogPt( PixelToLogic( rMEvt.GetPosPixel() ) );
+ const Point aLogPt( GetDrawingArea()->get_ref_device().PixelToLogic( rMEvt.GetPosPixel() ) );
bClickValid = aGraphRect.IsInside( aLogPt );
ReleaseMouse();
if ( bPipetteMode )
{
- Control::MouseButtonUp( rMEvt );
+ weld::CustomWidgetController::MouseButtonUp( rMEvt );
aPipetteClickLink.Call( *this );
+
+ return true;
}
else if ( bWorkplaceMode )
{
- GraphCtrl::MouseButtonUp( rMEvt );
+ SvxGraphCtrl::MouseButtonUp( rMEvt );
aWorkRect.SetRight( aLogPt.X() );
aWorkRect.SetBottom( aLogPt.Y() );
@@ -213,9 +218,11 @@ void ContourWindow::MouseButtonUp(const MouseEvent& rMEvt)
Invalidate( aGraphRect );
aWorkplaceClickLink.Call( *this );
+
+ return false;
}
- else
- GraphCtrl::MouseButtonUp( rMEvt );
+
+ return SvxGraphCtrl::MouseButtonUp( rMEvt );
}
void ContourWindow::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect)
@@ -224,6 +231,7 @@ void ContourWindow::Paint(vcl::RenderContext& rRenderContext, const tools::Recta
// encapsulate the redraw using Begin/End and use the returned
// data to get the target output device (e.g. when pre-rendering)
SdrPaintWindow* pPaintWindow = pView->BeginCompleteRedraw(&rRenderContext);
+ pPaintWindow->SetOutputToWindow(true);
OutputDevice& rTarget = pPaintWindow->GetTargetOutputDevice();
const Graphic& rGraphic = GetGraphic();
@@ -253,9 +261,13 @@ void ContourWindow::Paint(vcl::RenderContext& rRenderContext, const tools::Recta
pView->EndCompleteRedraw(*pPaintWindow, true);
}
-Size ContourWindow::GetOptimalSize() const
+void ContourWindow::SetDrawingArea(weld::DrawingArea* pDrawingArea)
{
- return LogicToPixel(Size(270, 170), MapMode(MapUnit::MapAppFont));
+ SvxGraphCtrl::SetDrawingArea(pDrawingArea);
+ Size aSize(pDrawingArea->get_ref_device().LogicToPixel(Size(270, 170), MapMode(MapUnit::MapAppFont)));
+ pDrawingArea->set_size_request(aSize.Width(), aSize.Height());
+ SetOutputSizePixel(aSize);
+ SetSdrMode(true);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/dialog/contwnd.hxx b/svx/source/dialog/contwnd.hxx
index d29ead73c5ef..991c76ffa55d 100644
--- a/svx/source/dialog/contwnd.hxx
+++ b/svx/source/dialog/contwnd.hxx
@@ -23,7 +23,7 @@
#include <tools/poly.hxx>
#include <svx/graphctl.hxx>
-class ContourWindow : public GraphCtrl
+class ContourWindow final : public SvxGraphCtrl
{
tools::PolyPolygon aPolyPoly;
Color aPipetteColor;
@@ -35,19 +35,17 @@ class ContourWindow : public GraphCtrl
bool bWorkplaceMode;
bool bClickValid;
-protected:
-
- virtual void MouseButtonDown(const MouseEvent& rMEvt) override;
- virtual void MouseMove(const MouseEvent& rMEvt) override;
- virtual void MouseButtonUp(const MouseEvent& rMEvt) override;
+ virtual bool MouseButtonDown(const MouseEvent& rMEvt) override;
+ virtual bool MouseMove(const MouseEvent& rMEvt) override;
+ virtual bool MouseButtonUp(const MouseEvent& rMEvt) override;
virtual void SdrObjCreated( const SdrObject& rObj ) override;
virtual void InitSdrModel() override;
virtual void Paint( vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect ) override;
- virtual Size GetOptimalSize() const override;
+ virtual void SetDrawingArea(weld::DrawingArea* pDrawingArea) override;
public:
- ContourWindow(vcl::Window* pParent, WinBits nBits);
+ ContourWindow(weld::Dialog* pDialog);
void SetPolyPolygon( const tools::PolyPolygon& rPolyPoly );
const tools::PolyPolygon& GetPolyPolygon();
diff --git a/svx/source/dialog/imapdlg.cxx b/svx/source/dialog/imapdlg.cxx
index 7fccc33ae9f1..5eedd281a623 100644
--- a/svx/source/dialog/imapdlg.cxx
+++ b/svx/source/dialog/imapdlg.cxx
@@ -107,8 +107,6 @@ void SvxIMapDlgChildWindow::UpdateIMapDlg( const Graphic& rGraphic, const ImageM
pDlg->UpdateLink(rGraphic, pImageMap, pTargetList, pEditingObj);
}
-VCL_BUILDER_FACTORY(StatusBar)
-
SvxIMapDlg::SvxIMapDlg(SfxBindings *_pBindings, SfxChildWindow *pCW, weld::Window* _pParent)
: SfxModelessDialogController(_pBindings, pCW, _pParent, "svx/ui/imapdialog.ui", "ImapDialog")
, pCheckObj(nullptr)
@@ -707,18 +705,19 @@ IMPL_LINK( SvxIMapDlg, StateHdl, SvxGraphCtrl*, pWnd, void )
if ( bPolyEdit )
{
- OString sId;
-
switch( pWnd->GetPolyEditMode() )
{
- case SID_BEZIER_MOVE: sId = "TBI_POLYMOVE"; break;
- case SID_BEZIER_INSERT: sId = "TBI_POLYINSERT"; break;
-
+ case SID_BEZIER_MOVE:
+ m_xTbxIMapDlg1->set_item_active("TBI_POLYMOVE", true);
+ m_xTbxIMapDlg1->set_item_active("TBI_POLYINSERT", false);
+ break;
+ case SID_BEZIER_INSERT:
+ m_xTbxIMapDlg1->set_item_active("TBI_POLYINSERT", true);
+ m_xTbxIMapDlg1->set_item_active("TBI_POLYMOVE", false);
+ break;
default:
- break;
+ break;
}
-
- m_xTbxIMapDlg1->set_item_active(sId, true);
}
else
{
diff --git a/svx/uiconfig/ui/floatingcontour.ui b/svx/uiconfig/ui/floatingcontour.ui
index 819e2b2ab95a..bf4d5b03a568 100644
--- a/svx/uiconfig/ui/floatingcontour.ui
+++ b/svx/uiconfig/ui/floatingcontour.ui
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.16.1 -->
+<!-- Generated with glade 3.22.1 -->
<interface domain="svx">
- <requires lib="LibreOffice" version="1.0"/>
<requires lib="gtk+" version="3.18"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">99</property>
@@ -9,339 +8,452 @@
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
- <object class="GtkWindow" id="FloatingContour">
+ <object class="GtkDialog" id="FloatingContour">
<property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
<property name="border_width">6</property>
<property name="title" translatable="yes" context="floatingcontour|FloatingContour">Contour Editor</property>
+ <property name="default_width">0</property>
+ <property name="default_height">0</property>
+ <property name="type_hint">dialog</property>
<child>
- <object class="GtkBox" id="mainbox">
+ <placeholder/>
+ </child>
+ <child internal-child="vbox">
+ <object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <child>
- <object class="GtkGrid" id="grid1">
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="halign">start</property>
<property name="hexpand">True</property>
- <property name="column_spacing">12</property>
+ <property name="layout_style">end</property>
<child>
- <object class="GtkToolbar" id="toolbar">
+ <object class="GtkStatusbar" id="statusbar">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="valign">end</property>
<property name="hexpand">True</property>
- <property name="toolbar_style">icons</property>
- <child>
- <object class="GtkToolButton" id="TBI_APPLY">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="action_name">TBI_APPLY</property>
- <property name="label" translatable="yes" context="floatingcontour|TBI_APPLY">Apply</property>
- <property name="icon_name">svx/res/cd01.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkSeparatorToolItem" id="separatortoolitem1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">False</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="TBI_WORKPLACE">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="action_name">TBI_WORKPLACE</property>
- <property name="label" translatable="yes" context="floatingcontour|TBI_WORKPLACE">Workspace</property>
- <property name="icon_name">svx/res/cd02.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkSeparatorToolItem" id="separatortoolitem2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">False</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="TBI_SELECT">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="action_name">TBI_SELECT</property>
- <property name="label" translatable="yes" context="floatingcontour|TBI_SELECT">Select</property>
- <property name="icon_name">svx/res/cd05.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="TBI_RECT">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="action_name">TBI_RECT</property>
- <property name="label" translatable="yes" context="floatingcontour|TBI_RECT">Rectangle</property>
- <property name="icon_name">svx/res/cd06.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="TBI_CIRCLE">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="action_name">TBI_CIRCLE</property>
- <property name="label" translatable="yes" context="floatingcontour|TBI_CIRCLE">Ellipse</property>
- <property name="icon_name">svx/res/cd07.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="TBI_POLY">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="action_name">TBI_POLY</property>
- <property name="label" translatable="yes" context="floatingcontour|TBI_POLY">Polygon</property>
- <property name="icon_name">svx/res/cd08.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkSeparatorToolItem" id="separatortoolitem3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">False</property>
- </packing>
- </child>
+ <property name="spacing">12</property>
<child>
- <object class="GtkToolButton" id="TBI_POLYEDIT">
+ <object class="GtkDrawingArea" id="statuscolor">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="action_name">TBI_POLYEDIT</property>
- <property name="label" translatable="yes" context="floatingcontour|TBI_POLYEDIT">Edit Points</property>
- <property name="icon_name">svx/res/cd015.png</property>
+ <property name="tooltip_text" translatable="yes" context="floatingcontour|statuscolor">Color</property>
</object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">True</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkToolButton" id="TBI_POLYMOVE">
+ <object class="GtkSeparator" id="separator1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="action_name">TBI_POLYMOVE</property>
- <property name="label" translatable="yes" context="floatingcontour|TBI_POLYMOVE">Move Points</property>
- <property name="icon_name">svx/res/cd016.png</property>
+ <property name="orientation">vertical</property>
</object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">True</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
- <object class="GtkToolButton" id="TBI_POLYINSERT">
+ <object class="GtkLabel" id="statussize">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="action_name">TBI_POLYINSERT</property>
- <property name="label" translatable="yes" context="floatingcontour|TBI_POLYINSERT">Insert Points</property>
- <property name="icon_name">svx/res/cd017.png</property>
+ <property name="label">100%</property>
</object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">True</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
- <object class="GtkToolButton" id="TBI_POLYDELETE">
+ <object class="GtkSeparator" id="separator4">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="action_name">TBI_POLYDELETE</property>
- <property name="label" translatable="yes" context="floatingcontour|TBI_POLYDELETE">Delete Points</property>
- <property name="icon_name">svx/res/cd018.png</property>
+ <property name="orientation">vertical</property>
</object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">True</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">3</property>
</packing>
</child>
<child>
- <object class="GtkSeparatorToolItem" id="separatortoolitem4">
+ <object class="GtkLabel" id="statuspos">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="label">100%</property>
</object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">False</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="TBI_AUTOCONTOUR">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">TBI_AUTOCONTOUR</property>
- <property name="label" translatable="yes" context="floatingcontour|TBI_AUTOCONTOUR">AutoContour</property>
- <property name="use_underline">True</property>
- <property name="icon_name">svx/res/cd025.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkSeparatorToolItem" id="separatortoolitem5">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">False</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="TBI_UNDO">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="action_name">TBI_UNDO</property>
- <property name="label" translatable="yes" context="floatingcontour|TBI_UNDO">Undo </property>
- <property name="icon_name">svx/res/cd020.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="TBI_REDO">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="action_name">TBI_REDO</property>
- <property name="label" translatable="yes" context="floatingcontour|TBI_REDO">Redo</property>
- <property name="icon_name">svx/res/cd021.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="TBI_PIPETTE">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="action_name">TBI_PIPETTE</property>
- <property name="label" translatable="yes" context="floatingcontour|TBI_PIPETTE">Pipette</property>
- <property name="icon_name">svx/res/cd026.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">4</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="spinbutton:0%">
- <property name="visible">True</property>
+ <object class="GtkButton" id="cancel">
+ <property name="label">gtk-cancel</property>
<property name="can_focus">True</property>
- <property name="tooltip_text" translatable="yes" context="floatingcontour|spinbutton|tooltip_text">Color Tolerance</property>
- <property name="adjustment">adjustment1</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
+ <property name="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkBox" id="container">
+ <object class="GtkBox" id="mainbox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="svxlo-StatusBar" id="statusbar">
- <property name="height_request">25</property>
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">2</property>
+ <child>
+ <object class="GtkGrid" id="grid1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="hexpand">True</property>
+ <property name="column_spacing">12</property>
+ <child>
+ <object class="GtkToolbar" id="toolbar">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="toolbar_style">icons</property>
+ <property name="show_arrow">False</property>
+ <property name="icon_size">2</property>
+ <child>
+ <object class="GtkToolButton" id="TBI_APPLY">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes" context="floatingcontour|TBI_APPLY">Apply</property>
+ <property name="icon_name">svx/res/cd01.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparatorToolItem" id="separatortoolitem1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleToolButton" id="TBI_WORKPLACE">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes" context="floatingcontour|TBI_WORKPLACE">Workspace</property>
+ <property name="icon_name">svx/res/cd02.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparatorToolItem" id="separatortoolitem2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleToolButton" id="TBI_SELECT">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes" context="floatingcontour|TBI_SELECT">Select</property>
+ <property name="icon_name">svx/res/cd05.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleToolButton" id="TBI_RECT">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes" context="floatingcontour|TBI_RECT">Rectangle</property>
+ <property name="icon_name">svx/res/cd06.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleToolButton" id="TBI_CIRCLE">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes" context="floatingcontour|TBI_CIRCLE">Ellipse</property>
+ <property name="icon_name">svx/res/cd07.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleToolButton" id="TBI_POLY">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes" context="floatingcontour|TBI_POLY">Polygon</property>
+ <property name="icon_name">svx/res/cd08.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparatorToolItem" id="separatortoolitem3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleToolButton" id="TBI_POLYEDIT">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes" context="floatingcontour|TBI_POLYEDIT">Edit Points</property>
+ <property name="icon_name">svx/res/cd015.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleToolButton" id="TBI_POLYMOVE">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes" context="floatingcontour|TBI_POLYMOVE">Move Points</property>
+ <property name="icon_name">svx/res/cd016.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleToolButton" id="TBI_POLYINSERT">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes" context="floatingcontour|TBI_POLYINSERT">Insert Points</property>
+ <property name="icon_name">svx/res/cd017.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="TBI_POLYDELETE">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes" context="floatingcontour|TBI_POLYDELETE">Delete Points</property>
+ <property name="icon_name">svx/res/cd018.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparatorToolItem" id="separatortoolitem4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="TBI_AUTOCONTOUR">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="floatingcontour|TBI_AUTOCONTOUR">AutoContour</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">svx/res/cd025.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparatorToolItem" id="separatortoolitem5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="TBI_UNDO">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes" context="floatingcontour|TBI_UNDO">Undo </property>
+ <property name="icon_name">svx/res/cd020.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="TBI_REDO">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes" context="floatingcontour|TBI_REDO">Redo</property>
+ <property name="icon_name">svx/res/cd021.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleToolButton" id="TBI_PIPETTE">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes" context="floatingcontour|TBI_PIPETTE">Pipette</property>
+ <property name="icon_name">svx/res/cd026.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="spinbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip_text" translatable="yes" context="floatingcontour|spinbutton|tooltip_text">Color Tolerance</property>
+ <property name="adjustment">adjustment1</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <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>
+ <object class="GtkDrawingArea" id="container">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">3</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
</child>
+ <action-widgets>
+ <action-widget response="-6">cancel</action-widget>
+ </action-widgets>
</object>
</interface>
diff --git a/svx/uiconfig/ui/imapdialog.ui b/svx/uiconfig/ui/imapdialog.ui
index d64c38b22336..298a409be23f 100644
--- a/svx/uiconfig/ui/imapdialog.ui
+++ b/svx/uiconfig/ui/imapdialog.ui
@@ -139,7 +139,7 @@
<property name="hexpand">True</property>
<property name="toolbar_style">icons</property>
<property name="show_arrow">False</property>
- <property name="icon_size">1</property>
+ <property name="icon_size">2</property>
<child>
<object class="GtkToolButton" id="TBI_APPLY">
<property name="visible">True</property>
diff --git a/sw/source/uibase/shells/basesh.cxx b/sw/source/uibase/shells/basesh.cxx
index 55628c2ec0d2..6f33b6142174 100644
--- a/sw/source/uibase/shells/basesh.cxx
+++ b/sw/source/uibase/shells/basesh.cxx
@@ -137,10 +137,8 @@ namespace
{
SvxContourDlg* GetContourDlg(SwView const &rView)
{
- SfxChildWindow *pChildWindow = rView.GetViewFrame()->GetChildWindow(
- SvxContourDlgChildWindow::GetChildWindowId());
-
- return pChildWindow ? static_cast<SvxContourDlg*>(pChildWindow->GetWindow()) : nullptr;
+ SfxChildWindow *pWnd = rView.GetViewFrame()->GetChildWindow(SvxContourDlgChildWindow::GetChildWindowId());
+ return pWnd ? static_cast<SvxContourDlg*>(pWnd->GetController().get()) : nullptr;
}
SvxIMapDlg* GetIMapDlg(SwView const &rView)
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 5a51f7074373..6ade98fcd25e 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -5353,9 +5353,12 @@ private:
static void collect(GtkWidget* pItem, gpointer widget)
{
- GtkToolButton* pToolItem = GTK_TOOL_BUTTON(pItem);
- GtkInstanceToolbar* pThis = static_cast<GtkInstanceToolbar*>(widget);
- pThis->add_to_map(pToolItem);
+ if (GTK_IS_TOOL_BUTTON(pItem))
+ {
+ GtkToolButton* pToolItem = GTK_TOOL_BUTTON(pItem);
+ GtkInstanceToolbar* pThis = static_cast<GtkInstanceToolbar*>(widget);
+ pThis->add_to_map(pToolItem);
+ }
}
void add_to_map(GtkToolButton* pToolItem)