Kaydet (Commit) e70fb083 authored tarafından Caolán McNamara's avatar Caolán McNamara

convert smooth dialog to .ui

Change-Id: If2894cef70bf6b9848a1338afaa36dc8b0d7d6be
üst 344a1abd
......@@ -147,6 +147,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
cui/uiconfig/ui/showcoldialog \
cui/uiconfig/ui/similaritysearchdialog \
cui/uiconfig/ui/slantcornertabpage \
cui/uiconfig/ui/smoothdialog \
cui/uiconfig/ui/specialcharacters \
cui/uiconfig/ui/spellingdialog \
cui/uiconfig/ui/spelloptionsdialog \
......
......@@ -18,6 +18,7 @@
*/
#include <tools/shl.hxx>
#include <vcl/builder.hxx>
#include <vcl/msgbox.hxx>
#include <sfx2/viewfrm.hxx>
#include <sfx2/viewsh.hxx>
......@@ -143,7 +144,7 @@ IMPL_LINK_NOARG(oldGraphicFilterDialog, ImplModifyHdl)
return 0;
}
GraphicFilterDialog::PreviewWindow::PreviewWindow(Window* pParent,
GraphicPreviewWindow::GraphicPreviewWindow(Window* pParent,
const WinBits nStyle)
: Control(pParent, nStyle)
, mpOrigGraphic(NULL)
......@@ -152,14 +153,25 @@ GraphicFilterDialog::PreviewWindow::PreviewWindow(Window* pParent,
{
}
Size GraphicFilterDialog::PreviewWindow::GetOptimalSize() const
extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeGraphicPreviewWindow(Window *pParent, VclBuilder::stringmap &rMap)
{
WinBits nWinBits = WB_TABSTOP;
OString sBorder = VclBuilder::extractCustomProperty(rMap);
if (!sBorder.isEmpty())
nWinBits |= WB_BORDER;
return new GraphicPreviewWindow(pParent, nWinBits);
}
Size GraphicPreviewWindow::GetOptimalSize() const
{
return LogicToPixel(Size(81, 73), MAP_APPFONT);
}
// -----------------------------------------------------------------------------
void GraphicFilterDialog::PreviewWindow::Paint( const Rectangle& rRect )
void GraphicPreviewWindow::Paint( const Rectangle& rRect )
{
Control::Paint( rRect );
......@@ -183,21 +195,19 @@ void GraphicFilterDialog::PreviewWindow::Paint( const Rectangle& rRect )
// -----------------------------------------------------------------------------
void GraphicFilterDialog::PreviewWindow::SetPreview( const Graphic& rGraphic )
void GraphicPreviewWindow::SetPreview( const Graphic& rGraphic )
{
maPreview = rGraphic;
if( maPreview.IsAnimated() || maPreview.IsTransparent() )
Invalidate();
else
Paint( Rectangle( Point(), GetOutputSizePixel() ) );
Invalidate();
}
void GraphicFilterDialog::PreviewWindow::ScaleImageToFit()
void GraphicPreviewWindow::ScaleImageToFit()
{
if (!mpOrigGraphic)
return;
maScaledOrig = *mpOrigGraphic;
const Size aPreviewSize( GetOutputSizePixel() );
Size aSizePixel(LogicToPixel(mpOrigGraphic->GetPrefSize(),
mpOrigGraphic->GetPrefMapMode()));
......@@ -229,12 +239,14 @@ void GraphicFilterDialog::PreviewWindow::ScaleImageToFit()
BitmapEx aBmpEx( mpOrigGraphic->GetBitmapEx() );
if( aBmpEx.Scale( aGrfSize, BMP_SCALE_DEFAULT ) )
maPreview = aBmpEx;
maScaledOrig = aBmpEx;
}
}
maModifyHdl.Call(this);
}
void GraphicFilterDialog::PreviewWindow::Resize()
void GraphicPreviewWindow::Resize()
{
Control::Resize();
ScaleImageToFit();
......@@ -250,14 +262,12 @@ GraphicFilterDialog::GraphicFilterDialog(Window* pParent,
{
bIsBitmap = rGraphic.GetType() == GRAPHIC_BITMAP;
get(mpPreview, "preview");
mpPreview->init(&rGraphic);
maTimer.SetTimeoutHdl( LINK( this, GraphicFilterDialog, ImplPreviewTimeoutHdl ) );
maTimer.SetTimeout( 100 );
ImplModifyHdl( NULL );
}
maTimer.SetTimeout( 5 );
get(mpPreview, "preview");
mpPreview->init(&rGraphic, maModifyHdl);
}
// -----------------------------------------------------------------------------
......@@ -366,22 +376,15 @@ Graphic GraphicFilterMosaic::GetFilteredGraphic( const Graphic& rGraphic,
// - GraphicFilterSmooth -
// ------------------
GraphicFilterSmooth::GraphicFilterSmooth( Window* pParent, const Graphic& rGraphic, double nRadius) :
oldGraphicFilterDialog ( pParent, CUI_RES( RID_SVX_GRFFILTER_DLG_SMOOTH ), rGraphic ),
maFtRadius ( this, CUI_RES( DLG_FILTERSMOOTH_FT_RADIUS ) ),
maMtrRadius ( this, CUI_RES( DLG_FILTERSMOOTH_MTR_RADIUS ) )
GraphicFilterSmooth::GraphicFilterSmooth( Window* pParent, const Graphic& rGraphic, double nRadius)
: GraphicFilterDialog(pParent, "SmoothDialog",
"cui/ui/smoothdialog.ui", rGraphic)
{
FreeResource();
maMtrRadius.SetValue( nRadius* 10 );
maMtrRadius.SetModifyHdl( GetModifyHdl() );
maMtrRadius.GrabFocus();
}
get(mpMtrRadius, "radius");
// -----------------------------------------------------------------------------
GraphicFilterSmooth::~GraphicFilterSmooth()
{
mpMtrRadius->SetValue( nRadius* 10 );
mpMtrRadius->SetModifyHdl( GetModifyHdl() );
mpMtrRadius->GrabFocus();
}
// -----------------------------------------------------------------------------
......
......@@ -40,13 +40,6 @@
#define DLG_FILTERMOSAIC_MTR_HEIGHT 4
#define DLG_FILTERMOSAIC_CBX_EDGES 5
// ----------------------
// - DLG_FILTERSMOOTH -
// ----------------------
#define DLG_FILTERSMOOTH_FT_RADIUS 1
#define DLG_FILTERSMOOTH_MTR_RADIUS 2
// ----------------------
// - DLG_FILTERSOLARIZE -
// ----------------------
......
......@@ -412,76 +412,4 @@ ModalDialog RID_SVX_GRFFILTER_DLG_EMBOSS
};
};
// --------------------
// - DLG_FILTERSMOOTH -
// --------------------
ModalDialog RID_SVX_GRFFILTER_DLG_SMOOTH
{
HelpID = CMD_SID_GRFFILTER_SMOOTH;
OutputSize = TRUE ;
Moveable = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 250, 100 ) ;
Text [ en-US ] = "Smooth" ;
FixedLine FL_PARAMETER
{
Pos = MAP_APPFONT ( 6 , 3 ) ;
Size = MAP_APPFONT ( 182, RSC_CD_FIXEDLINE_HEIGHT ) ;
Text [ en-US ] = "Parameters";
};
Control CTL_PREVIEW
{
Pos = MAP_APPFONT ( 104 , 3 + RSC_CD_FIXEDLINE_HEIGHT + RSC_SP_FLGR_INNERBORDER_TOP ) ;
Size = MAP_APPFONT ( 81, 73 ) ;
};
#define MA_Y14 3 + RSC_CD_FIXEDLINE_HEIGHT + RSC_SP_FLGR_INNERBORDER_TOP
FixedText DLG_FILTERSMOOTH_FT_RADIUS
{
Pos = MAP_APPFONT ( 12 , MA_Y14 ) ;
Size = MAP_APPFONT ( 77 , 10 ) ;
Text [ en-US ] = "Smooth Radius" ;
};
#define MA_Y15 MA_Y14 + RSC_CD_FIXEDTEXT_HEIGHT + RSC_SP_CTRL_DESC_Y
NumericField DLG_FILTERSMOOTH_MTR_RADIUS
{
HelpID = "cui:NumericField:RID_SVX_GRFFILTER_DLG_SMOOTH:DLG_FILTERSMOOTH_MTR_RADIUS";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , MA_Y15 );
Size = MAP_APPFONT ( 35 , 12 );
TabStop = TRUE;
Right = TRUE;
Repeat = TRUE;
Spin = TRUE;
Minimum = 0;
Maximum = 1000;
StrictFormat = TRUE;
First = 1;
DecimalDigits = 1;
Last = 1000;
SpinSize = 2;
};
OKButton BTN_OK
{
Pos = MAP_APPFONT ( 194, 6 ) ;
Size = MAP_APPFONT ( 50, 14 ) ;
TabStop = TRUE ;
DefButton = TRUE ;
};
CancelButton BTN_CANCEL
{
Pos = MAP_APPFONT ( 194, 23 ) ;
Size = MAP_APPFONT ( 50, 14 ) ;
TabStop = TRUE ;
};
HelpButton BTN_HELP
{
Pos = MAP_APPFONT ( 194, 43 ) ;
Size = MAP_APPFONT ( 50, 14 ) ;
TabStop = TRUE ;
};
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -140,6 +140,7 @@ IMPL_ABSTDLG_BASE(AbstractSvxMultiFileDialog_Impl);
IMPL_ABSTDLG_BASE(AbstractSvxHpLinkDlg_Impl);
IMPL_ABSTDLG_BASE(AbstractFmSearchDialog_Impl);
IMPL_ABSTDLG_BASE(AbstractGraphicFilterDialog_Impl);
IMPL_ABSTDLG_BASE(oldAbstractGraphicFilterDialog_Impl);
IMPL_ABSTDLG_BASE(AbstractSvxAreaTabDialog_Impl);
IMPL_ABSTDLG_BASE(AbstractPasteDialog_Impl);
IMPL_ABSTDLG_BASE(AbstractInsertObjectDialog_Impl);
......@@ -877,6 +878,11 @@ Graphic AbstractGraphicFilterDialog_Impl::GetFilteredGraphic( const Graphic& rGr
return pDlg->GetFilteredGraphic( rGraphic, fScaleX, fScaleY );
}
Graphic oldAbstractGraphicFilterDialog_Impl::GetFilteredGraphic( const Graphic& rGraphic, double fScaleX, double fScaleY )
{
return pDlg->GetFilteredGraphic( rGraphic, fScaleX, fScaleY );
}
// AbstractSvxAreaTabDialog implementations just forwards everything to the dialog
void AbstractSvxAreaTabDialog_Impl::SetCurPageId( sal_uInt16 nId )
{
......@@ -1503,7 +1509,7 @@ AbstractGraphicFilterDialog * AbstractDialogFactory_Impl::CreateGraphicFilterEmb
sal_uInt32)
{
oldGraphicFilterDialog* pDlg = new GraphicFilterEmboss( pParent, rGraphic, eLightSource );
return new AbstractGraphicFilterDialog_Impl( pDlg );
return new oldAbstractGraphicFilterDialog_Impl( pDlg );
}
AbstractGraphicFilterDialog * AbstractDialogFactory_Impl::CreateGraphicFilterPosterSepia (Window* pParent,
......@@ -1526,14 +1532,14 @@ AbstractGraphicFilterDialog * AbstractDialogFactory_Impl::CreateGraphicFilterPos
}
if ( pDlg )
return new AbstractGraphicFilterDialog_Impl( pDlg );
return new oldAbstractGraphicFilterDialog_Impl( pDlg );
return 0;
}
AbstractGraphicFilterDialog * AbstractDialogFactory_Impl::CreateGraphicFilterSmooth ( Window* pParent,
const Graphic& rGraphic, double nRadius, sal_uInt32)
{
oldGraphicFilterDialog* pDlg = new GraphicFilterSmooth( pParent, rGraphic, nRadius );
GraphicFilterDialog* pDlg = new GraphicFilterSmooth( pParent, rGraphic, nRadius );
return new AbstractGraphicFilterDialog_Impl( pDlg );
}
......@@ -1541,7 +1547,7 @@ AbstractGraphicFilterDialog * AbstractDialogFactory_Impl::CreateGraphicFilterSol
const Graphic& rGraphic, sal_uInt8 nGreyThreshold, sal_Bool bInvert, sal_uInt32 )
{
oldGraphicFilterDialog* pDlg = new GraphicFilterSolarize( pParent, rGraphic, nGreyThreshold, bInvert );
return new AbstractGraphicFilterDialog_Impl( pDlg );
return new oldAbstractGraphicFilterDialog_Impl( pDlg );
}
AbstractGraphicFilterDialog * AbstractDialogFactory_Impl::CreateGraphicFilterMosaic (Window* pParent,
......@@ -1559,7 +1565,7 @@ AbstractGraphicFilterDialog * AbstractDialogFactory_Impl::CreateGraphicFilterMos
}
if ( pDlg )
return new AbstractGraphicFilterDialog_Impl( pDlg );
return new oldAbstractGraphicFilterDialog_Impl( pDlg );
return 0;
}
......
......@@ -47,6 +47,7 @@ class SvxHpLinkDlg;
class FmSearchDialog;
class Graphic;
class oldGraphicFilterDialog;
class GraphicFilterDialog;
class SvxAreaTabDialog;
class InsertObjectDialog_Impl;
class SvPasteObjectDialog;
......@@ -438,7 +439,13 @@ class AbstractFmSearchDialog_Impl :public AbstractFmSearchDialog
class AbstractGraphicFilterDialog_Impl :public AbstractGraphicFilterDialog
{
DECL_ABSTDLG_BASE(AbstractGraphicFilterDialog_Impl,oldGraphicFilterDialog)
DECL_ABSTDLG_BASE(AbstractGraphicFilterDialog_Impl,GraphicFilterDialog)
virtual Graphic GetFilteredGraphic( const Graphic& rGraphic, double fScaleX, double fScaleY );
};
class oldAbstractGraphicFilterDialog_Impl :public AbstractGraphicFilterDialog
{
DECL_ABSTDLG_BASE(oldAbstractGraphicFilterDialog_Impl,oldGraphicFilterDialog)
virtual Graphic GetFilteredGraphic( const Graphic& rGraphic, double fScaleX, double fScaleY );
};
......
......@@ -80,40 +80,40 @@ public:
virtual Graphic GetFilteredGraphic( const Graphic& rGraphic, double fScaleX, double fScaleY ) = 0;
};
class GraphicFilterDialog : public ModalDialog
class GraphicPreviewWindow : public Control
{
private:
const Graphic* mpOrigGraphic;
Link maModifyHdl;
Graphic maScaledOrig;
Graphic maPreview;
double mfScaleX;
double mfScaleY;
class PreviewWindow : public Control
{
private:
const Graphic* mpOrigGraphic;
Graphic maScaledOrig;
Graphic maPreview;
double mfScaleX;
double mfScaleY;
virtual void Paint(const Rectangle& rRect);
virtual void Resize();
virtual Size GetOptimalSize() const;
virtual void Paint(const Rectangle& rRect);
virtual void Resize();
virtual Size GetOptimalSize() const;
void ScaleImageToFit();
void ScaleImageToFit();
public:
public:
PreviewWindow(Window* pParent, WinBits nStyle);
void init(const Graphic *pOrigGraphic)
{
mpOrigGraphic = pOrigGraphic;
ScaleImageToFit();
}
void SetPreview(const Graphic& rGraphic);
const Graphic& GetScaledOriginal() const { return maScaledOrig; }
double GetScaleX() const { return mfScaleX; }
double GetScaleY() const { return mfScaleY; }
};
GraphicPreviewWindow(Window* pParent, WinBits nStyle);
void init(const Graphic* pOrigGraphic, const Link& rLink)
{
mpOrigGraphic = pOrigGraphic;
maModifyHdl = rLink;
ScaleImageToFit();
}
void SetPreview(const Graphic& rGraphic);
const Graphic& GetScaledOriginal() const { return maScaledOrig; }
double GetScaleX() const { return mfScaleX; }
double GetScaleY() const { return mfScaleY; }
};
class GraphicFilterDialog : public ModalDialog
{
private:
Timer maTimer;
......@@ -125,7 +125,7 @@ private:
DECL_LINK( ImplModifyHdl, void* p );
protected:
PreviewWindow* mpPreview;
GraphicPreviewWindow* mpPreview;
const Link& GetModifyHdl() const { return maModifyHdl; }
const Size& GetGraphicSizePixel() const { return maSizePixel; }
......@@ -142,20 +142,17 @@ public:
// - GraphicFilterSmooth -
// -------------------------
class GraphicFilterSmooth : public oldGraphicFilterDialog
class GraphicFilterSmooth : public GraphicFilterDialog
{
private:
FixedText maFtRadius;
NumericField maMtrRadius;
NumericField* mpMtrRadius;
public:
GraphicFilterSmooth( Window* pParent, const Graphic& rGraphic, double nRadius);
~GraphicFilterSmooth();
virtual Graphic GetFilteredGraphic( const Graphic& rGraphic, double fScaleX, double fScaleY );
double GetRadius() const { return maMtrRadius.GetValue() / 10.0; }
double GetRadius() const { return mpMtrRadius->GetValue() / 10.0; }
};
// -----------------------
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.16.1 -->
<interface>
<requires lib="gtk+" version="3.0"/>
<!-- interface-requires LibreOffice 1.0 -->
<object class="GtkAdjustment" id="adjustment1">
<property name="lower">0.10000000000000001</property>
<property name="upper">100</property>
<property name="value">0.59999999999999998</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkDialog" id="SmoothDialog">
<property name="can_focus">False</property>
<property name="border_width">6</property>
<property name="title" translatable="yes">Smooth</property>
<property name="type_hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
<property name="can_focus">False</property>
<property name="layout_style">end</property>
<child>
<object class="GtkButton" id="ok">
<property name="label">gtk-ok</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="cancel">
<property name="label">gtk-cancel</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="help">
<property name="label">gtk-help</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</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="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="column_spacing">24</property>
<child>
<object class="cuilo-GraphicPreviewWindow" id="preview">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">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>
</packing>
</child>
<child>
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="row_spacing">6</property>
<child>
<object class="GtkSpinButton" id="radius">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">adjustment1</property>
<property name="digits">1</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">Smooth Radius</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">radius</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</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>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Parameters</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<action-widgets>
<action-widget response="0">ok</action-widget>
<action-widget response="0">cancel</action-widget>
<action-widget response="0">help</action-widget>
</action-widgets>
</object>
</interface>
......@@ -235,6 +235,9 @@
<glade-widget-class title="Number Preview" name="cuilo-SvxNumberPreview"
generic-name="Number Preview Window" parent="GtkDrawingArea"
icon-name="widget-gtk-drawingarea"/>
<glade-widget-class title="Graphic Preview" name="cuilo-GraphicPreviewWindow"
generic-name="Graphic Preview Window" parent="GtkDrawingArea"
icon-name="widget-gtk-drawingarea"/>
<glade-widget-class title="Writer Number Preview" name="swuilo-NumberingPreview"
generic-name="Writer Number Preview Window" parent="GtkDrawingArea"
icon-name="widget-gtk-drawingarea"/>
......
......@@ -103,7 +103,6 @@
#define RID_SVX_GRFFILTER_DLG_MOSAIC (RID_SVX_START + 332)
#define RID_SVX_GRFFILTER_DLG_SOLARIZE (RID_SVX_START + 333)
#define RID_SVX_GRFFILTER_DLG_EMBOSS (RID_SVX_START + 336)
#define RID_SVX_GRFFILTER_DLG_SMOOTH (RID_SVX_START + 337)
#define RID_SVXDLG_CHARMAP ( RID_SVX_START + 10 )
// IDs of options pages of applications
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment