[Libreoffice-commits] core.git: extras/source sw/source sw/uiconfig

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Sat Oct 13 18:36:31 UTC 2018


 extras/source/glade/libreoffice-catalog.xml.in |    4 
 sw/source/ui/frmdlg/frmpage.cxx                |  243 +++++++++++--------------
 sw/source/uibase/inc/bmpwin.hxx                |   10 -
 sw/source/uibase/inc/frmpage.hxx               |   48 ++--
 sw/uiconfig/swriter/ui/picturepage.ui          |   26 ++
 5 files changed, 166 insertions(+), 165 deletions(-)

New commits:
commit 6b7819dbe09d5aef3acf20a5acc807afbdcacc20
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Sat Oct 13 17:19:09 2018 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Sat Oct 13 20:36:10 2018 +0200

    weld SwGrfExtPage
    
    Change-Id: Iffcefbcef92d278803112635b0d3e98606c820b9
    Reviewed-on: https://gerrit.libreoffice.org/61744
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/extras/source/glade/libreoffice-catalog.xml.in b/extras/source/glade/libreoffice-catalog.xml.in
index 443f5d3c3a55..4b137ec7d030 100644
--- a/extras/source/glade/libreoffice-catalog.xml.in
+++ b/extras/source/glade/libreoffice-catalog.xml.in
@@ -522,10 +522,6 @@
                         generic-name="Writer Navigator ToolBox" parent="GtkToolbar"
                         icon-name="widget-gtk-toolbar"/>
 
-    <glade-widget-class title="BmpWindow" name="swuilo-BmpWindow"
-                        generic-name="BmpWindow" parent="GtkDrawingArea"
-                        icon-name="widget-gtk-drawingarea"/>
-
     <glade-widget-class title="ClientBox" name="sduilo-ClientBox"
                         generic-name="ClientBox" parent="GtkDrawingArea"
                         icon-name="widget-gtk-drawingarea"/>
diff --git a/sw/source/ui/frmdlg/frmpage.cxx b/sw/source/ui/frmdlg/frmpage.cxx
index f2a816a99c2d..95433950dac3 100644
--- a/sw/source/ui/frmdlg/frmpage.cxx
+++ b/sw/source/ui/frmdlg/frmpage.cxx
@@ -2371,32 +2371,32 @@ void SwFramePage::EnableVerticalPositioning( bool bEnable )
     m_pVertRelationLB->Enable( bEnable );
 }
 
-SwGrfExtPage::SwGrfExtPage(vcl::Window *pParent, const SfxItemSet &rSet)
-    : SfxTabPage(pParent, "PicturePage",
-        "modules/swriter/ui/picturepage.ui", &rSet)
-    , bHtmlMode(false)
-{
-    get(m_pMirror, "flipframe");
-    get(m_pMirrorVertBox, "vert");
-    get(m_pMirrorHorzBox, "hori");
-    get(m_pAllPagesRB, "allpages");
-    get(m_pLeftPagesRB, "leftpages");
-    get(m_pRightPagesRB, "rightpages");
-    get(m_pConnectED, "entry");
-    get(m_pBrowseBT, "browse");
-    get(m_pBmpWin, "preview");
-    m_pBmpWin->SetBitmapEx(BitmapEx(RID_BMP_PREVIEW_FALLBACK));
-
+SwGrfExtPage::SwGrfExtPage(TabPageParent pParent, const SfxItemSet &rSet)
+    : SfxTabPage(pParent, "modules/swriter/ui/picturepage.ui", "PicturePage", &rSet)
+    , m_bHtmlMode(false)
+    , m_xMirror(m_xBuilder->weld_widget("flipframe"))
+    , m_xMirrorVertBox(m_xBuilder->weld_check_button("vert"))
+    , m_xMirrorHorzBox(m_xBuilder->weld_check_button("hori"))
+    , m_xAllPagesRB(m_xBuilder->weld_radio_button("allpages"))
+    , m_xLeftPagesRB(m_xBuilder->weld_radio_button("leftpages"))
+    , m_xRightPagesRB(m_xBuilder->weld_radio_button("rightpages"))
+    , m_xConnectED(m_xBuilder->weld_entry("entry"))
+    , m_xBrowseBT(m_xBuilder->weld_button("browse"))
+    , m_xLinkFrame(m_xBuilder->weld_frame("linkframe"))
     // RotGrfFlyFrame: Need Angle and RotateControls now
-    get(m_pFlAngle, "FL_ANGLE");
-    get(m_pNfAngle, "NF_ANGLE");
-    get(m_pCtlAngle, "CTL_ANGLE");
-    m_pCtlAngle->SetLinkedField( m_pNfAngle, 2 );
+    , m_xFlAngle(m_xBuilder->weld_frame("FL_ANGLE"))
+    , m_xNfAngle(m_xBuilder->weld_spin_button("NF_ANGLE"))
+    , m_xCtlAngle(new weld::CustomWeld(*m_xBuilder, "CTL_ANGLE", m_aCtlAngle))
+    , m_xBmpWin(new weld::CustomWeld(*m_xBuilder, "preview", m_aBmpWin))
+{
+    m_aBmpWin.SetBitmapEx(BitmapEx(RID_BMP_PREVIEW_FALLBACK));
+
+    m_aCtlAngle.SetLinkedField(m_xNfAngle.get(), 2);
 
     SetExchangeSupport();
-    m_pMirrorHorzBox->SetClickHdl( LINK(this, SwGrfExtPage, MirrorHdl));
-    m_pMirrorVertBox->SetClickHdl( LINK(this, SwGrfExtPage, MirrorHdl));
-    m_pBrowseBT->SetClickHdl    ( LINK(this, SwGrfExtPage, BrowseHdl));
+    m_xMirrorHorzBox->connect_toggled(LINK(this, SwGrfExtPage, MirrorHdl));
+    m_xMirrorVertBox->connect_toggled(LINK(this, SwGrfExtPage, MirrorHdl));
+    m_xBrowseBT->connect_clicked(LINK(this, SwGrfExtPage, BrowseHdl));
 }
 
 SwGrfExtPage::~SwGrfExtPage()
@@ -2406,53 +2406,40 @@ SwGrfExtPage::~SwGrfExtPage()
 
 void SwGrfExtPage::dispose()
 {
-    pGrfDlg.reset();
-    m_pMirror.clear();
-    m_pMirrorVertBox.clear();
-    m_pMirrorHorzBox.clear();
-    m_pAllPagesRB.clear();
-    m_pLeftPagesRB.clear();
-    m_pRightPagesRB.clear();
-    m_pBmpWin.clear();
-    m_pConnectED.clear();
-    m_pBrowseBT.clear();
-
-    // RotGrfFlyFrame: Support RotationAngle
-    m_pFlAngle.clear();
-    m_pNfAngle.clear();
-    m_pCtlAngle.clear();
-
+    m_xBmpWin.reset();
+    m_xCtlAngle.reset();
+    m_xGrfDlg.reset();
     SfxTabPage::dispose();
 }
 
-VclPtr<SfxTabPage> SwGrfExtPage::Create( TabPageParent pParent, const SfxItemSet *rSet )
+VclPtr<SfxTabPage> SwGrfExtPage::Create(TabPageParent pParent, const SfxItemSet *rSet)
 {
-    return VclPtr<SwGrfExtPage>::Create( pParent.pParent, *rSet );
+    return VclPtr<SwGrfExtPage>::Create(pParent, *rSet);
 }
 
 void SwGrfExtPage::Reset(const SfxItemSet *rSet)
 {
     const SfxPoolItem* pItem;
     const sal_uInt16 nHtmlMode = ::GetHtmlMode(static_cast<const SwDocShell*>(SfxObjectShell::Current()));
-    bHtmlMode = (nHtmlMode & HTMLMODE_ON) != 0;
+    m_bHtmlMode = (nHtmlMode & HTMLMODE_ON) != 0;
 
     if( SfxItemState::SET == rSet->GetItemState( FN_PARAM_GRF_CONNECT, true, &pItem)
         && static_cast<const SfxBoolItem *>(pItem)->GetValue() )
     {
-        m_pBrowseBT->Enable();
-        m_pConnectED->SetReadOnly(false);
+        m_xBrowseBT->set_sensitive(true);
+        m_xConnectED->set_editable(true);
     }
 
     // RotGrfFlyFrame: Get RotationAngle and set at control
     if(SfxItemState::SET == rSet->GetItemState( SID_ATTR_TRANSFORM_ANGLE, false, &pItem))
     {
-        m_pCtlAngle->SetRotation(static_cast<const SfxInt32Item*>(pItem)->GetValue());
+        m_aCtlAngle.SetRotation(static_cast<const SfxInt32Item*>(pItem)->GetValue());
     }
     else
     {
-        m_pCtlAngle->SetRotation(0);
+        m_aCtlAngle.SetRotation(0);
     }
-    m_pCtlAngle->SaveValue();
+    m_aCtlAngle.SaveValue();
 
     ActivatePage(*rSet);
 }
@@ -2467,7 +2454,7 @@ void SwGrfExtPage::ActivatePage(const SfxItemSet& rSet)
     bool bEnableMirrorRB = false;
 
     SfxItemState eState = rSet.GetItemState(RES_GRFATR_MIRRORGRF, true, &pItem);
-    if( SfxItemState::UNKNOWN != eState && !bProtContent && !bHtmlMode )
+    if (SfxItemState::UNKNOWN != eState && !bProtContent && !m_bHtmlMode)
     {
         if( SfxItemState::SET != eState )
             pItem = &rSet.Get( RES_GRFATR_MIRRORGRF );
@@ -2478,10 +2465,10 @@ void SwGrfExtPage::ActivatePage(const SfxItemSet& rSet)
         switch( eMirror )
         {
         case MirrorGraph::Dont: break;
-        case MirrorGraph::Vertical:    m_pMirrorHorzBox->Check(); break;
-        case MirrorGraph::Horizontal:  m_pMirrorVertBox->Check(); break;
-        case MirrorGraph::Both:        m_pMirrorHorzBox->Check();
-                                       m_pMirrorVertBox->Check();
+        case MirrorGraph::Vertical:    m_xMirrorHorzBox->set_active(true); break;
+        case MirrorGraph::Horizontal:  m_xMirrorVertBox->set_active(true); break;
+        case MirrorGraph::Both:        m_xMirrorHorzBox->set_active(true);
+                                       m_xMirrorVertBox->set_active(true);
                                        break;
         default:
             ;
@@ -2495,17 +2482,17 @@ void SwGrfExtPage::ActivatePage(const SfxItemSet& rSet)
         switch (nPos)
         {
             case 1: // mirror at left / even pages
-                m_pLeftPagesRB->Check();
-                m_pMirrorHorzBox->Check();
+                m_xLeftPagesRB->set_active(true);
+                m_xMirrorHorzBox->set_active(true);
                 break;
             case 2: // mirror on all pages
-                m_pAllPagesRB->Check();
+                m_xAllPagesRB->set_active(true);
                 break;
             case 3: // mirror on right / odd pages
-                m_pRightPagesRB->Check();
+                m_xRightPagesRB->set_active(true);
                 break;
             default:
-                m_pAllPagesRB->Check();
+                m_xAllPagesRB->set_active(true);
                 break;
         }
     }
@@ -2516,7 +2503,7 @@ void SwGrfExtPage::ActivatePage(const SfxItemSet& rSet)
         if( !rBrush.GetGraphicLink().isEmpty() )
         {
             aGrfName = aNewGrfName = rBrush.GetGraphicLink();
-            m_pConnectED->SetText( aNewGrfName );
+            m_xConnectED->set_text(aNewGrfName);
         }
         OUString referer;
         SfxStringItem const * it = static_cast<SfxStringItem const *>(
@@ -2526,66 +2513,68 @@ void SwGrfExtPage::ActivatePage(const SfxItemSet& rSet)
         }
         const Graphic* pGrf = rBrush.GetGraphic(referer);
         if( pGrf )
-            m_pBmpWin->SetGraphic( *pGrf );
+            m_aBmpWin.SetGraphic( *pGrf );
     }
 
-    m_pMirror->Enable(bEnable);
-    m_pAllPagesRB->Enable(bEnableMirrorRB);
-    m_pLeftPagesRB->Enable(bEnableMirrorRB);
-    m_pRightPagesRB->Enable(bEnableMirrorRB);
+    m_xConnectED->save_value();
 
-    m_pAllPagesRB->SaveValue();
-    m_pLeftPagesRB->SaveValue();
-    m_pRightPagesRB->SaveValue();
-    m_pMirrorHorzBox->SaveValue();
-    m_pMirrorVertBox->SaveValue();
+    m_xMirror->set_sensitive(bEnable);
+    m_xAllPagesRB->set_sensitive(bEnableMirrorRB);
+    m_xLeftPagesRB->set_sensitive(bEnableMirrorRB);
+    m_xRightPagesRB->set_sensitive(bEnableMirrorRB);
 
-    m_pBmpWin->MirrorHorz( m_pMirrorVertBox->IsChecked() );
-    m_pBmpWin->MirrorVert( m_pMirrorHorzBox->IsChecked() );
-    m_pBmpWin->Invalidate();
+    m_xAllPagesRB->save_state();
+    m_xLeftPagesRB->save_state();
+    m_xRightPagesRB->save_state();
+    m_xMirrorHorzBox->save_state();
+    m_xMirrorVertBox->save_state();
+
+    m_aBmpWin.MirrorHorz( m_xMirrorVertBox->get_active() );
+    m_aBmpWin.MirrorVert( m_xMirrorHorzBox->get_active() );
+    m_aBmpWin.Invalidate();
 }
 
 bool SwGrfExtPage::FillItemSet( SfxItemSet *rSet )
 {
     bool bModified = false;
-    if ( m_pMirrorHorzBox->IsValueChangedFromSaved() ||
-         m_pMirrorVertBox->IsValueChangedFromSaved() ||
-         m_pAllPagesRB->IsValueChangedFromSaved() ||
-         m_pLeftPagesRB->IsValueChangedFromSaved() ||
-         m_pRightPagesRB->IsValueChangedFromSaved() )
+    if ( m_xMirrorHorzBox->get_state_changed_from_saved() ||
+         m_xMirrorVertBox->get_state_changed_from_saved() ||
+         m_xAllPagesRB->get_state_changed_from_saved() ||
+         m_xLeftPagesRB->get_state_changed_from_saved() ||
+         m_xRightPagesRB->get_state_changed_from_saved() )
     {
         bModified = true;
 
         bool bHori = false;
 
-        if (m_pMirrorHorzBox->IsChecked() &&
-                !m_pLeftPagesRB->IsChecked())
+        if (m_xMirrorHorzBox->get_active() &&
+                !m_xLeftPagesRB->get_active())
             bHori = true;
 
         MirrorGraph eMirror;
-        eMirror = m_pMirrorVertBox->IsChecked() && bHori ?
+        eMirror = m_xMirrorVertBox->get_active() && bHori ?
                     MirrorGraph::Both : bHori ?
-                    MirrorGraph::Vertical : m_pMirrorVertBox->IsChecked() ?
+                    MirrorGraph::Vertical : m_xMirrorVertBox->get_active() ?
                     MirrorGraph::Horizontal  : MirrorGraph::Dont;
 
-        bool bMirror = !m_pAllPagesRB->IsChecked();
+        bool bMirror = !m_xAllPagesRB->get_active();
         SwMirrorGrf aMirror( eMirror );
         aMirror.SetGrfToggle(bMirror );
         rSet->Put( aMirror );
     }
 
-    if( aGrfName != aNewGrfName || m_pConnectED->IsModified() )
+    if (aGrfName != aNewGrfName || m_xConnectED->get_value_changed_from_saved())
     {
         bModified = true;
-        aGrfName = m_pConnectED->GetText();
+        aGrfName = m_xConnectED->get_text();
         rSet->Put( SvxBrushItem( aGrfName, aFilterName, GPOS_LT,
                                 SID_ATTR_GRAF_GRAPHIC ));
     }
 
     // RotGrfFlyFrame: Safe rotation if modified
-    if(m_pCtlAngle->IsValueModified())
+    if(m_aCtlAngle.IsValueModified())
     {
-        rSet->Put(SfxInt32Item(GetWhich(SID_ATTR_TRANSFORM_ANGLE), m_pCtlAngle->GetRotation()));
+        rSet->Put(SfxInt32Item(GetWhich(SID_ATTR_TRANSFORM_ANGLE), m_aCtlAngle.GetRotation()));
         bModified = true;
     }
 
@@ -2599,89 +2588,87 @@ DeactivateRC SwGrfExtPage::DeactivatePage(SfxItemSet *_pSet)
     return DeactivateRC::LeavePage;
 }
 
-IMPL_LINK_NOARG(SwGrfExtPage, BrowseHdl, Button*, void)
+IMPL_LINK_NOARG(SwGrfExtPage, BrowseHdl, weld::Button&, void)
 {
-    if(!pGrfDlg)
+    if(!m_xGrfDlg)
     {
-        pGrfDlg.reset(new FileDialogHelper(
+        m_xGrfDlg.reset(new FileDialogHelper(
                 ui::dialogs::TemplateDescription::FILEOPEN_LINK_PREVIEW,
                 FileDialogFlags::Graphic, GetFrameWeld()));
-        pGrfDlg->SetTitle(get<VclFrame>("linkframe")->get_label());
+        m_xGrfDlg->SetTitle(m_xLinkFrame->get_label());
     }
-    pGrfDlg->SetDisplayDirectory( m_pConnectED->GetText() );
-    uno::Reference < ui::dialogs::XFilePicker3 > xFP = pGrfDlg->GetFilePicker();
+    m_xGrfDlg->SetDisplayDirectory(m_xConnectED->get_text());
+    uno::Reference < ui::dialogs::XFilePicker3 > xFP = m_xGrfDlg->GetFilePicker();
     uno::Reference < ui::dialogs::XFilePickerControlAccess > xCtrlAcc(xFP, uno::UNO_QUERY);
     xCtrlAcc->setValue( ui::dialogs::ExtendedFilePickerElementIds::CHECKBOX_LINK, 0, uno::makeAny(true) );
 
-    if ( pGrfDlg->Execute() != ERRCODE_NONE )
+    if ( m_xGrfDlg->Execute() != ERRCODE_NONE )
         return;
 
 // remember selected filter
-    aFilterName = pGrfDlg->GetCurrentFilter();
-    aNewGrfName = INetURLObject::decode( pGrfDlg->GetPath(),
+    aFilterName = m_xGrfDlg->GetCurrentFilter();
+    aNewGrfName = INetURLObject::decode( m_xGrfDlg->GetPath(),
                                        INetURLObject::DecodeMechanism::Unambiguous );
-    m_pConnectED->SetModifyFlag();
-    m_pConnectED->SetText( aNewGrfName );
+    m_xConnectED->set_text(aNewGrfName);
     //reset mirrors because maybe a Bitmap was swapped with
     //another type of graphic that cannot be mirrored.
-    m_pMirrorVertBox->Check(false);
-    m_pMirrorHorzBox->Check(false);
-    m_pAllPagesRB->Enable(false);
-    m_pLeftPagesRB->Enable(false);
-    m_pRightPagesRB->Enable(false);
-    m_pBmpWin->MirrorHorz(false);
-    m_pBmpWin->MirrorVert(false);
+    m_xMirrorVertBox->set_active(false);
+    m_xMirrorHorzBox->set_active(false);
+    m_xAllPagesRB->set_sensitive(false);
+    m_xLeftPagesRB->set_sensitive(false);
+    m_xRightPagesRB->set_sensitive(false);
+    m_aBmpWin.MirrorHorz(false);
+    m_aBmpWin.MirrorVert(false);
 
     Graphic aGraphic;
-    (void)GraphicFilter::LoadGraphic(pGrfDlg->GetPath(), OUString(), aGraphic);
-    m_pBmpWin->SetGraphic(aGraphic);
+    (void)GraphicFilter::LoadGraphic(m_xGrfDlg->GetPath(), OUString(), aGraphic);
+    m_aBmpWin.SetGraphic(aGraphic);
 
     bool bEnable = GraphicType::Bitmap      == aGraphic.GetType() ||
                         GraphicType::GdiMetafile == aGraphic.GetType();
-    m_pMirrorVertBox->Enable(bEnable);
-    m_pMirrorHorzBox->Enable(bEnable);
-    m_pAllPagesRB->Enable(bEnable);
-    m_pLeftPagesRB->Enable(bEnable);
-    m_pRightPagesRB->Enable(bEnable);
+    m_xMirrorVertBox->set_sensitive(bEnable);
+    m_xMirrorHorzBox->set_sensitive(bEnable);
+    m_xAllPagesRB->set_sensitive(bEnable);
+    m_xLeftPagesRB->set_sensitive(bEnable);
+    m_xRightPagesRB->set_sensitive(bEnable);
 
 }
 
-IMPL_LINK_NOARG(SwGrfExtPage, MirrorHdl, Button*, void)
+IMPL_LINK_NOARG(SwGrfExtPage, MirrorHdl, weld::ToggleButton&, void)
 {
-    bool bEnable = m_pMirrorHorzBox->IsChecked();
+    bool bEnable = m_xMirrorHorzBox->get_active();
 
-    m_pBmpWin->MirrorHorz( m_pMirrorVertBox->IsChecked() );
-    m_pBmpWin->MirrorVert( bEnable );
+    m_aBmpWin.MirrorHorz( m_xMirrorVertBox->get_active() );
+    m_aBmpWin.MirrorVert( bEnable );
 
-    m_pAllPagesRB->Enable(bEnable);
-    m_pLeftPagesRB->Enable(bEnable);
-    m_pRightPagesRB->Enable(bEnable);
+    m_xAllPagesRB->set_sensitive(bEnable);
+    m_xLeftPagesRB->set_sensitive(bEnable);
+    m_xRightPagesRB->set_sensitive(bEnable);
 
-    if (!m_pAllPagesRB->IsChecked() && !m_pLeftPagesRB->IsChecked() && !m_pRightPagesRB->IsChecked())
-        m_pAllPagesRB->Check();
+    if (!m_xAllPagesRB->get_active() && !m_xLeftPagesRB->get_active() && !m_xRightPagesRB->get_active())
+        m_xAllPagesRB->set_active(true);
 }
 
 // example window
-BmpWindow::BmpWindow(vcl::Window* pPar, WinBits nStyle)
-    : Window(pPar, nStyle)
-    , bHorz(false)
+BmpWindow::BmpWindow()
+    : bHorz(false)
     , bVert(false)
     , bGraphic(false)
 {
 }
 
-Size BmpWindow::GetOptimalSize() const
+void BmpWindow::SetDrawingArea(weld::DrawingArea* pDrawingArea)
 {
-    return LogicToPixel(Size(127 , 66), MapMode(MapUnit::MapAppFont));
+    CustomWidgetController::SetDrawingArea(pDrawingArea);
+    Size aSize = pDrawingArea->get_ref_device().LogicToPixel(Size(127 , 66), MapMode(MapUnit::MapAppFont));
+    set_size_request(aSize.Width(), aSize.Height());
+    SetOutputSizePixel(aSize);
 }
 
-VCL_BUILDER_FACTORY_ARGS(BmpWindow, 0)
-
 void BmpWindow::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&)
 {
     // Setup
     rRenderContext.SetBackground();
-    SetPaintTransparent(true);
     // #i119307# the graphic might have transparency, set up white as the color
     // to use when drawing a rectangle under the image
     rRenderContext.SetLineColor(COL_WHITE);
@@ -2689,7 +2676,7 @@ void BmpWindow::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle
 
     // Paint
     Point aPntPos;
-    Size aPntSz(GetSizePixel());
+    Size aPntSz(GetOutputSizePixel());
     Size aGrfSize;
     if (bGraphic)
         aGrfSize = ::GetGraphicSizeTwip(aGraphic, &rRenderContext);
diff --git a/sw/source/uibase/inc/bmpwin.hxx b/sw/source/uibase/inc/bmpwin.hxx
index 909f6c7be291..46d9544b7cbd 100644
--- a/sw/source/uibase/inc/bmpwin.hxx
+++ b/sw/source/uibase/inc/bmpwin.hxx
@@ -20,12 +20,12 @@
 #ifndef INCLUDED_SW_SOURCE_UIBASE_INC_BMPWIN_HXX
 #define INCLUDED_SW_SOURCE_UIBASE_INC_BMPWIN_HXX
 
-#include <vcl/graph.hxx>
+#include <vcl/customweld.hxx>
 #include <vcl/bitmapex.hxx>
-#include <vcl/window.hxx>
+#include <vcl/graph.hxx>
 
 // extended page for graphics
-class BmpWindow : public vcl::Window
+class BmpWindow : public weld::CustomWidgetController
 {
 private:
     Graphic     aGraphic;
@@ -37,10 +37,10 @@ private:
 
     virtual void Paint(vcl::RenderContext& /*rRenderContext*/, const tools::Rectangle& rRect) override;
 
-    virtual Size GetOptimalSize() const override;
+    virtual void SetDrawingArea(weld::DrawingArea* pDrawingArea) override;
 
 public:
-    BmpWindow(vcl::Window* pPar, WinBits nStyle);
+    BmpWindow();
     virtual ~BmpWindow() override;
     void MirrorVert(bool bMirror) { bVert = bMirror; Invalidate(); }
     void MirrorHorz(bool bMirror) { bHorz = bMirror; Invalidate(); }
diff --git a/sw/source/uibase/inc/frmpage.hxx b/sw/source/uibase/inc/frmpage.hxx
index 6196cb3409da..2388f01f30d1 100644
--- a/sw/source/uibase/inc/frmpage.hxx
+++ b/sw/source/uibase/inc/frmpage.hxx
@@ -200,35 +200,39 @@ public:
     void            EnableVerticalPositioning( bool bEnable );
 };
 
-class SwGrfExtPage: public SfxTabPage
+class SwGrfExtPage : public SfxTabPage
 {
-    // mirror
-    VclPtr<VclContainer>   m_pMirror;
-    VclPtr<CheckBox>       m_pMirrorVertBox;
-    VclPtr<CheckBox>       m_pMirrorHorzBox;
-    VclPtr<RadioButton>    m_pAllPagesRB;
-    VclPtr<RadioButton>    m_pLeftPagesRB;
-    VclPtr<RadioButton>    m_pRightPagesRB;
-    VclPtr<BmpWindow>      m_pBmpWin;
+    OUString        aFilterName;
+    OUString        aGrfName, aNewGrfName;
 
-    VclPtr<Edit>           m_pConnectED;
-    VclPtr<PushButton>     m_pBrowseBT;
+    std::unique_ptr<::sfx2::FileDialogHelper> m_xGrfDlg;
 
-    // RotGrfFlyFrame: Need Angle and RotateControls now
-    VclPtr<VclFrame>            m_pFlAngle;
-    VclPtr<NumericField>        m_pNfAngle;
-    VclPtr<svx::DialControl>    m_pCtlAngle;
+    bool            m_bHtmlMode;
 
-    OUString        aFilterName;
-    OUString        aGrfName, aNewGrfName;
+    // mirror
+    BmpWindow m_aBmpWin;
+    svx::SvxDialControl m_aCtlAngle;
+    std::unique_ptr<weld::Widget> m_xMirror;
+    std::unique_ptr<weld::CheckButton> m_xMirrorVertBox;
+    std::unique_ptr<weld::CheckButton> m_xMirrorHorzBox;
+    std::unique_ptr<weld::RadioButton> m_xAllPagesRB;
+    std::unique_ptr<weld::RadioButton> m_xLeftPagesRB;
+    std::unique_ptr<weld::RadioButton> m_xRightPagesRB;
+
+    std::unique_ptr<weld::Entry> m_xConnectED;
+    std::unique_ptr<weld::Button> m_xBrowseBT;
+    std::unique_ptr<weld::Frame> m_xLinkFrame;
 
-    std::unique_ptr<::sfx2::FileDialogHelper> pGrfDlg;
+    // RotGrfFlyFrame: Need Angle and RotateControls now
+    std::unique_ptr<weld::Frame> m_xFlAngle;
+    std::unique_ptr<weld::SpinButton> m_xNfAngle;
+    std::unique_ptr<weld::CustomWeld> m_xCtlAngle;
+    std::unique_ptr<weld::CustomWeld> m_xBmpWin;
 
-    bool            bHtmlMode;
 
     // handler for mirroring
-    DECL_LINK(MirrorHdl, Button*, void);
-    DECL_LINK(BrowseHdl, Button*, void);
+    DECL_LINK(MirrorHdl, weld::ToggleButton&, void);
+    DECL_LINK(BrowseHdl, weld::Button&, void);
 
     virtual void    ActivatePage(const SfxItemSet& rSet) override;
     virtual ~SwGrfExtPage() override;
@@ -238,7 +242,7 @@ class SwGrfExtPage: public SfxTabPage
     using SfxTabPage::DeactivatePage;
 
 public:
-    SwGrfExtPage(vcl::Window *pParent, const SfxItemSet &rSet);
+    SwGrfExtPage(TabPageParent pParent, const SfxItemSet &rSet);
 
     static VclPtr<SfxTabPage> Create(TabPageParent pParent, const SfxItemSet *rSet);
 
diff --git a/sw/uiconfig/swriter/ui/picturepage.ui b/sw/uiconfig/swriter/ui/picturepage.ui
index 300212cd858a..0c38fbfb9bad 100644
--- a/sw/uiconfig/swriter/ui/picturepage.ui
+++ b/sw/uiconfig/swriter/ui/picturepage.ui
@@ -44,6 +44,7 @@
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="hexpand">True</property>
+                    <property name="activates_default">True</property>
                   </object>
                   <packing>
                     <property name="left_attach">0</property>
@@ -147,7 +148,6 @@
                     <property name="xalign">0</property>
                     <property name="active">True</property>
                     <property name="draw_indicator">True</property>
-                    <property name="group">leftpages</property>
                   </object>
                   <packing>
                     <property name="left_attach">0</property>
@@ -164,7 +164,7 @@
                     <property name="use_underline">True</property>
                     <property name="xalign">0</property>
                     <property name="draw_indicator">True</property>
-                    <property name="group">rightpages</property>
+                    <property name="group">allpages</property>
                   </object>
                   <packing>
                     <property name="left_attach">0</property>
@@ -193,7 +193,7 @@
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <child>
-                      <object class="swuilo-BmpWindow" id="preview">
+                      <object class="GtkDrawingArea" id="preview">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                       </object>
@@ -311,11 +311,25 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="svxlo-DialControl" id="CTL_ANGLE">
+                      <object class="GtkScrolledWindow">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="tooltip_text" translatable="yes" context="picturepage|CTL_ANGLE|tooltip_text">Rotation Angle</property>
+                        <property name="can_focus">True</property>
                         <property name="halign">center</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_ANGLE">
+                                <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="tooltip_text" translatable="yes" context="picturepage|CTL_ANGLE|tooltip_text">Rotation Angle</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
                       </object>
                       <packing>
                         <property name="expand">False</property>


More information about the Libreoffice-commits mailing list