[Libreoffice-commits] core.git: sd/inc sd/source sd/uiconfig
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Tue Jan 28 19:57:16 UTC 2020
sd/inc/strings.hrc | 2
sd/source/ui/dlg/animobjs.cxx | 378 ++++++-------
sd/source/ui/inc/animobjs.hxx | 79 +-
sd/uiconfig/simpress/ui/dockinganimation.ui | 775 ++++++++++++----------------
4 files changed, 580 insertions(+), 654 deletions(-)
New commits:
commit cad2485d924a9f766a8e65379bdcd7a42c0228ee
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Tue Jan 28 14:29:11 2020 +0000
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Jan 28 20:56:33 2020 +0100
weld AnimationWindow
Change-Id: I66bcd02a5fc98fff4d2fb0fcd24d702ff894d536
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87638
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/sd/inc/strings.hrc b/sd/inc/strings.hrc
index 9c645f7a6250..3d1d90273395 100644
--- a/sd/inc/strings.hrc
+++ b/sd/inc/strings.hrc
@@ -487,6 +487,8 @@
#define STR_SD_NONE NC_("STR_SD_NONE", "- None -")
+#define STR_ANIMATION_DIALOG_TITLE NC_("STR_ANIMATION_DIALOG_TITLE", "Animation")
+
#define RID_SVXSTR_EDIT_GRAPHIC NC_("RID_SVXSTR_EDIT_GRAPHIC", "Link")
#endif
diff --git a/sd/source/ui/dlg/animobjs.cxx b/sd/source/ui/dlg/animobjs.cxx
index f2807c71e570..b3f21c63a75a 100644
--- a/sd/source/ui/dlg/animobjs.cxx
+++ b/sd/source/ui/dlg/animobjs.cxx
@@ -25,6 +25,7 @@
#include <svx/svdpagv.hxx>
#include <sfx2/dispatch.hxx>
#include <sfx2/progress.hxx>
+#include <vcl/help.hxx>
#include <vcl/svapp.hxx>
#include <vcl/weld.hxx>
#include <vcl/virdev.hxx>
@@ -53,13 +54,9 @@ namespace sd {
/**
* SdDisplay - Control
*/
-SdDisplay::SdDisplay(vcl::Window* pWin)
- : Control(pWin, 0)
- , aScale(1, 1)
+SdDisplay::SdDisplay()
+ : aScale(1, 1)
{
- SetMapMode(MapMode(MapUnit::MapPixel));
- const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings();
- SetBackground( Wallpaper( rStyles.GetFieldColor() ) );
}
SdDisplay::~SdDisplay()
@@ -80,10 +77,18 @@ void SdDisplay::SetBitmapEx( BitmapEx const * pBmpEx )
}
}
-void SdDisplay::Paint( vcl::RenderContext& /*rRenderContext*/, const ::tools::Rectangle& )
+void SdDisplay::Paint(vcl::RenderContext& rRenderContext, const ::tools::Rectangle&)
{
+ rRenderContext.Push(PushFlags::MAPMODE);
+
+ rRenderContext.SetMapMode(MapMode(MapUnit::MapPixel));
+ const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings();
+ rRenderContext.SetBackground( Wallpaper( rStyles.GetFieldColor() ) );
+ rRenderContext.Erase();
+
Point aPt;
- Size aSize = GetOutputSize();
+ Size aSize = GetOutputSizePixel();
+
Size aBmpSize = aBitmapEx.GetBitmap().GetSizePixel();
aBmpSize.setWidth( static_cast<long>( static_cast<double>(aBmpSize.Width()) * static_cast<double>(aScale) ) );
aBmpSize.setHeight( static_cast<long>( static_cast<double>(aBmpSize.Height()) * static_cast<double>(aScale) ) );
@@ -93,7 +98,9 @@ void SdDisplay::Paint( vcl::RenderContext& /*rRenderContext*/, const ::tools::Re
if( aBmpSize.Height() < aSize.Height() )
aPt.setY( ( aSize.Height() - aBmpSize.Height() ) / 2 );
- aBitmapEx.Draw( this, aPt, aBmpSize );
+ aBitmapEx.Draw(&rRenderContext, aPt, aBmpSize);
+
+ rRenderContext.Pop();
}
void SdDisplay::SetScale( const Fraction& rFrac )
@@ -101,23 +108,12 @@ void SdDisplay::SetScale( const Fraction& rFrac )
aScale = rFrac;
}
-Size SdDisplay::GetOptimalSize() const
+void SdDisplay::SetDrawingArea(weld::DrawingArea* pDrawingArea)
{
- return LogicToPixel(Size(147, 87), MapMode(MapUnit::MapAppFont));
-}
-
-void SdDisplay::DataChanged( const DataChangedEvent& rDCEvt )
-{
- Control::DataChanged( rDCEvt );
-
- if ( (rDCEvt.GetType() == DataChangedEventType::SETTINGS) && (rDCEvt.GetFlags() & AllSettingsFlags::STYLE) )
- {
- const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings();
- SetBackground( Wallpaper( rStyles.GetFieldColor() ) );
- SetDrawMode( GetSettings().GetStyleSettings().GetHighContrastMode()
- ? sd::OUTPUT_DRAWMODE_CONTRAST
- : sd::OUTPUT_DRAWMODE_COLOR );
- }
+ CustomWidgetController::SetDrawingArea(pDrawingArea);
+ Size aSize(pDrawingArea->get_ref_device().LogicToPixel(Size(147, 87), MapMode(MapUnit::MapAppFont)));
+ pDrawingArea->set_size_request(aSize.Width(), aSize.Height());
+ SetOutputSizePixel(aSize);
}
const size_t AnimationWindow::EMPTY_FRAMELIST = std::numeric_limits<size_t>::max();
@@ -127,37 +123,33 @@ const size_t AnimationWindow::EMPTY_FRAMELIST = std::numeric_limits<size_t>::max
*/
AnimationWindow::AnimationWindow(SfxBindings* pInBindings, SfxChildWindow *pCW, vcl::Window* pParent)
: SfxDockingWindow(pInBindings, pCW, pParent,
- "DockingAnimation", "modules/simpress/ui/dockinganimation.ui")
+ "DockingAnimation", "modules/simpress/ui/dockinganimation.ui", true)
+ , m_xCtlDisplay(new SdDisplay)
+ , m_xCtlDisplayWin(new weld::CustomWeld(*m_xBuilder, "preview", *m_xCtlDisplay))
+ , m_xBtnFirst(m_xBuilder->weld_button("first"))
+ , m_xBtnReverse(m_xBuilder->weld_button("prev"))
+ , m_xBtnStop(m_xBuilder->weld_button("stop"))
+ , m_xBtnPlay(m_xBuilder->weld_button("next"))
+ , m_xBtnLast(m_xBuilder->weld_button("last"))
+ , m_xNumFldBitmap(m_xBuilder->weld_spin_button("numbitmap"))
+ , m_xTimeField(m_xBuilder->weld_time_spin_button("duration", TimeFieldFormat::F_SEC_CS))
+ , m_xLbLoopCount(m_xBuilder->weld_combo_box("loopcount"))
+ , m_xBtnGetOneObject(m_xBuilder->weld_button("getone"))
+ , m_xBtnGetAllObjects(m_xBuilder->weld_button("getall"))
+ , m_xBtnRemoveBitmap(m_xBuilder->weld_button("delone"))
+ , m_xBtnRemoveAll(m_xBuilder->weld_button("delall"))
+ , m_xFiCount(m_xBuilder->weld_label("count"))
+ , m_xRbtGroup(m_xBuilder->weld_radio_button("group"))
+ , m_xRbtBitmap(m_xBuilder->weld_radio_button("bitmap"))
+ , m_xFtAdjustment(m_xBuilder->weld_label("alignmentft"))
+ , m_xLbAdjustment(m_xBuilder->weld_combo_box("alignment"))
+ , m_xBtnCreateGroup(m_xBuilder->weld_button("create"))
+ , m_xBtnHelp(m_xBuilder->weld_button("help"))
, m_nCurrentFrame(EMPTY_FRAMELIST)
, bMovie(false)
, bAllObjects(false)
{
- get(m_pBtnFirst, "first");
- get(m_pBtnReverse, "prev");
- get(m_pBtnStop, "stop");
- get(m_pBtnPlay, "next");
- get(m_pBtnLast, "last");
- get(m_pNumFldBitmap, "numbitmap");
- get(m_pTimeField, "duration");
- m_pTimeField->SetDuration(true);
- m_pTimeField->EnforceValidValue(true);
- m_pTimeField->SetMax(tools::Time(0, 0, 59, 99*tools::Time::nanoPerCenti));
- get(m_pLbLoopCount, "loopcount");
- get(m_pBtnGetOneObject, "getone");
- get(m_pBtnGetAllObjects, "getall");
- get(m_pBtnRemoveBitmap, "delone");
- get(m_pBtnRemoveAll, "delall");
- get(m_pFiCount, "count");
- get(m_pRbtGroup, "group");
- get(m_pRbtBitmap, "bitmap");
- get(m_pFtAdjustment, "alignmentft");
- get(m_pLbAdjustment, "alignment");
- get(m_pBtnCreateGroup, "create");
-
- m_pCtlDisplay = VclPtr<SdDisplay>::Create(get<Window>("box"));
- m_pCtlDisplay->set_hexpand(true);
- m_pCtlDisplay->set_vexpand(true);
- m_pCtlDisplay->Show();
+ SetText(SdResId(STR_ANIMATION_DIALOG_TITLE));
// create new document with page
pMyDoc.reset( new SdDrawDocument(DocumentType::Impress, nullptr) );
@@ -166,35 +158,30 @@ AnimationWindow::AnimationWindow(SfxBindings* pInBindings, SfxChildWindow *pCW,
pControllerItem.reset( new AnimationControllerItem( SID_ANIMATOR_STATE, this, pInBindings ) );
- // as long as not in the resource
- m_pTimeField->SetFormat( TimeFieldFormat::F_SEC_CS );
-
- m_pBtnFirst->SetClickHdl( LINK( this, AnimationWindow, ClickFirstHdl ) );
- m_pBtnReverse->SetClickHdl( LINK( this, AnimationWindow, ClickPlayHdl ) );
- m_pBtnStop->SetClickHdl( LINK( this, AnimationWindow, ClickStopHdl ) );
- m_pBtnPlay->SetClickHdl( LINK( this, AnimationWindow, ClickPlayHdl ) );
- m_pBtnLast->SetClickHdl( LINK( this, AnimationWindow, ClickLastHdl ) );
+ m_xBtnFirst->connect_clicked( LINK( this, AnimationWindow, ClickFirstHdl ) );
+ m_xBtnReverse->connect_clicked( LINK( this, AnimationWindow, ClickPlayHdl ) );
+ m_xBtnStop->connect_clicked( LINK( this, AnimationWindow, ClickStopHdl ) );
+ m_xBtnPlay->connect_clicked( LINK( this, AnimationWindow, ClickPlayHdl ) );
+ m_xBtnLast->connect_clicked( LINK( this, AnimationWindow, ClickLastHdl ) );
- m_pBtnGetOneObject->SetClickHdl( LINK( this, AnimationWindow, ClickGetObjectHdl ) );
- m_pBtnGetAllObjects->SetClickHdl( LINK( this, AnimationWindow, ClickGetObjectHdl ) );
- m_pBtnRemoveBitmap->SetClickHdl( LINK( this, AnimationWindow, ClickRemoveBitmapHdl ) );
- m_pBtnRemoveAll->SetClickHdl( LINK( this, AnimationWindow, ClickRemoveBitmapHdl ) );
+ m_xBtnGetOneObject->connect_clicked( LINK( this, AnimationWindow, ClickGetObjectHdl ) );
+ m_xBtnGetAllObjects->connect_clicked( LINK( this, AnimationWindow, ClickGetObjectHdl ) );
+ m_xBtnRemoveBitmap->connect_clicked( LINK( this, AnimationWindow, ClickRemoveBitmapHdl ) );
+ m_xBtnRemoveAll->connect_clicked( LINK( this, AnimationWindow, ClickRemoveBitmapHdl ) );
- m_pRbtGroup->SetClickHdl( LINK( this, AnimationWindow, ClickRbtHdl ) );
- m_pRbtBitmap->SetClickHdl( LINK( this, AnimationWindow, ClickRbtHdl ) );
- m_pBtnCreateGroup->SetClickHdl( LINK( this, AnimationWindow, ClickCreateGroupHdl ) );
- m_pNumFldBitmap->SetModifyHdl( LINK( this, AnimationWindow, ModifyBitmapHdl ) );
- m_pTimeField->SetModifyHdl( LINK( this, AnimationWindow, ModifyTimeHdl ) );
-
- // disable 3D border
- m_pCtlDisplay->SetBorderStyle(WindowBorderStyle::MONO);
+ m_xRbtGroup->connect_clicked( LINK( this, AnimationWindow, ClickRbtHdl ) );
+ m_xRbtBitmap->connect_clicked( LINK( this, AnimationWindow, ClickRbtHdl ) );
+ m_xBtnCreateGroup->connect_clicked( LINK( this, AnimationWindow, ClickCreateGroupHdl ) );
+ m_xBtnHelp->connect_clicked( LINK( this, AnimationWindow, ClickHelpHdl ) );
+ m_xNumFldBitmap->connect_value_changed( LINK( this, AnimationWindow, ModifyBitmapHdl ) );
+ m_xTimeField->connect_value_changed( LINK( this, AnimationWindow, ModifyTimeHdl ) );
SetMinOutputSizePixel(GetOptimalSize());
ResetAttrs();
// the animator is empty; no animation group can be created
- m_pBtnCreateGroup->Disable();
+ m_xBtnCreateGroup->set_sensitive(false);
}
AnimationWindow::~AnimationWindow()
@@ -212,57 +199,59 @@ void AnimationWindow::dispose()
// delete the clones
pMyDoc.reset();
- m_pCtlDisplay.disposeAndClear();
- m_pBtnFirst.clear();
- m_pBtnReverse.clear();
- m_pBtnStop.clear();
- m_pBtnPlay.clear();
- m_pBtnLast.clear();
- m_pNumFldBitmap.clear();
- m_pTimeField.clear();
- m_pLbLoopCount.clear();
- m_pBtnGetOneObject.clear();
- m_pBtnGetAllObjects.clear();
- m_pBtnRemoveBitmap.clear();
- m_pBtnRemoveAll.clear();
- m_pFiCount.clear();
- m_pRbtGroup.clear();
- m_pRbtBitmap.clear();
- m_pFtAdjustment.clear();
- m_pLbAdjustment.clear();
- m_pBtnCreateGroup.clear();
+ m_xCtlDisplayWin.reset();
+ m_xCtlDisplay.reset();
+ m_xBtnFirst.reset();
+ m_xBtnReverse.reset();
+ m_xBtnStop.reset();
+ m_xBtnPlay.reset();
+ m_xBtnLast.reset();
+ m_xNumFldBitmap.reset();
+ m_xTimeField.reset();
+ m_xLbLoopCount.reset();
+ m_xBtnGetOneObject.reset();
+ m_xBtnGetAllObjects.reset();
+ m_xBtnRemoveBitmap.reset();
+ m_xBtnRemoveAll.reset();
+ m_xFiCount.reset();
+ m_xRbtGroup.reset();
+ m_xRbtBitmap.reset();
+ m_xFtAdjustment.reset();
+ m_xLbAdjustment.reset();
+ m_xBtnCreateGroup.reset();
+ m_xBtnHelp.reset();
SfxDockingWindow::dispose();
}
-IMPL_LINK_NOARG(AnimationWindow, ClickFirstHdl, Button*, void)
+IMPL_LINK_NOARG(AnimationWindow, ClickFirstHdl, weld::Button&, void)
{
m_nCurrentFrame = (m_FrameList.empty()) ? EMPTY_FRAMELIST : 0;
UpdateControl();
}
-IMPL_LINK_NOARG(AnimationWindow, ClickStopHdl, Button*, void)
+IMPL_LINK_NOARG(AnimationWindow, ClickStopHdl, weld::Button&, void)
{
bMovie = false;
}
-IMPL_LINK( AnimationWindow, ClickPlayHdl, Button *, p, void )
+IMPL_LINK( AnimationWindow, ClickPlayHdl, weld::Button&, rButton, void )
{
ScopeLockGuard aGuard( maPlayLock );
bMovie = true;
bool bDisableCtrls = false;
size_t const nCount = m_FrameList.size();
- bool bReverse = p == m_pBtnReverse;
+ bool bReverse = &rButton == m_xBtnReverse.get();
// it is difficult to find it later on
- bool bRbtGroupEnabled = m_pRbtGroup->IsEnabled();
- bool bBtnGetAllObjectsEnabled = m_pBtnGetAllObjects->IsEnabled();
- bool bBtnGetOneObjectEnabled = m_pBtnGetOneObject->IsEnabled();
+ bool bRbtGroupEnabled = m_xRbtGroup->get_sensitive();
+ bool bBtnGetAllObjectsEnabled = m_xBtnGetAllObjects->get_sensitive();
+ bool bBtnGetOneObjectEnabled = m_xBtnGetOneObject->get_sensitive();
// calculate overall time
tools::Time aTime( 0 );
long nFullTime;
- if( m_pRbtBitmap->IsChecked() )
+ if( m_xRbtBitmap->get_active() )
{
for (size_t i = 0; i < nCount; ++i)
{
@@ -281,8 +270,7 @@ IMPL_LINK( AnimationWindow, ClickPlayHdl, Button *, p, void )
if( nFullTime >= 1000 )
{
bDisableCtrls = true;
- m_pBtnStop->Enable();
- m_pBtnStop->Update();
+ m_xBtnStop->set_sensitive(true);
OUString const aStr("Animator:"); // here we should think about something smart
pProgress.reset(new SfxProgress( nullptr, aStr, nFullTime ));
}
@@ -302,11 +290,11 @@ IMPL_LINK( AnimationWindow, ClickPlayHdl, Button *, p, void )
UpdateControl(bDisableCtrls);
- if( m_pRbtBitmap->IsChecked() )
+ if( m_xRbtBitmap->get_active() )
{
tools::Time const & rTime = m_FrameList[i].second;
- m_pTimeField->SetTime( rTime );
+ m_xTimeField->set_value( rTime );
sal_uLong nTime = rTime.GetMSFromTime();
WaitInEffect( nTime, nTmpTime, pProgress.get() );
@@ -353,45 +341,51 @@ IMPL_LINK( AnimationWindow, ClickPlayHdl, Button *, p, void )
if( pProgress )
{
pProgress.reset();
- m_pBtnStop->Disable();
+ m_xBtnStop->set_sensitive(false);
}
- m_pRbtGroup->Enable( bRbtGroupEnabled );
- m_pBtnGetAllObjects->Enable( bBtnGetAllObjectsEnabled );
- m_pBtnGetOneObject->Enable( bBtnGetOneObjectEnabled );
+ m_xRbtGroup->set_sensitive( bRbtGroupEnabled );
+ m_xBtnGetAllObjects->set_sensitive( bBtnGetAllObjectsEnabled );
+ m_xBtnGetOneObject->set_sensitive( bBtnGetOneObjectEnabled );
}
-IMPL_LINK_NOARG(AnimationWindow, ClickLastHdl, Button*, void)
+IMPL_LINK_NOARG(AnimationWindow, ClickLastHdl, weld::Button&, void)
{
m_nCurrentFrame =
(m_FrameList.empty()) ? EMPTY_FRAMELIST : m_FrameList.size() - 1 ;
UpdateControl();
}
-IMPL_LINK( AnimationWindow, ClickRbtHdl, Button*, p, void )
+IMPL_LINK_NOARG(AnimationWindow, ClickRbtHdl, weld::Button&, void)
{
- if (m_FrameList.empty() || p == m_pRbtGroup || m_pRbtGroup->IsChecked())
+ if (m_FrameList.empty() || m_xRbtGroup->get_active())
{
- m_pTimeField->SetText( OUString() );
- m_pTimeField->Enable( false );
- m_pLbLoopCount->Enable( false );
+ m_xTimeField->set_text( OUString() );
+ m_xTimeField->set_sensitive( false );
+ m_xLbLoopCount->set_sensitive( false );
}
- else if( p == m_pRbtBitmap || m_pRbtBitmap->IsChecked() )
+ else if (m_xRbtBitmap->get_active())
{
- sal_uLong n = static_cast<sal_uLong>(m_pNumFldBitmap->GetValue());
+ sal_uLong n = m_xNumFldBitmap->get_value();
if( n > 0 )
{
tools::Time const & rTime = m_FrameList[n - 1].second;
- m_pTimeField->SetTime( rTime );
+ m_xTimeField->set_value( rTime );
}
- m_pTimeField->Enable();
- m_pLbLoopCount->Enable();
+ m_xTimeField->set_sensitive(true);
+ m_xLbLoopCount->set_sensitive(true);
}
}
-IMPL_LINK( AnimationWindow, ClickGetObjectHdl, Button*, pBtn, void )
+IMPL_LINK(AnimationWindow, ClickHelpHdl, weld::Button&, rButton, void)
{
- bAllObjects = pBtn == m_pBtnGetAllObjects;
+ if (Help* pHelp = Application::GetHelp())
+ pHelp->Start(OStringToOUString(m_xContainer->get_help_id(), RTL_TEXTENCODING_UTF8), &rButton);
+}
+
+IMPL_LINK( AnimationWindow, ClickGetObjectHdl, weld::Button&, rBtn, void )
+{
+ bAllObjects = &rBtn == m_xBtnGetAllObjects.get();
// Code now in AddObj()
SfxBoolItem aItem( SID_ANIMATOR_ADD, true );
@@ -400,13 +394,13 @@ IMPL_LINK( AnimationWindow, ClickGetObjectHdl, Button*, pBtn, void )
SID_ANIMATOR_ADD, SfxCallMode::SLOT | SfxCallMode::RECORD, { &aItem });
}
-IMPL_LINK( AnimationWindow, ClickRemoveBitmapHdl, Button*, pBtn, void )
+IMPL_LINK( AnimationWindow, ClickRemoveBitmapHdl, weld::Button&, rBtn, void )
{
SdPage* pPage = pMyDoc->GetSdPage(0, PageKind::Standard);
SdrObject* pObject;
// tdf#95298 check m_nCurrentFrame for EMPTY_FRAMELIST to avoid out-of-bound array access
- if (pBtn == m_pBtnRemoveBitmap && EMPTY_FRAMELIST != m_nCurrentFrame)
+ if (&rBtn == m_xBtnRemoveBitmap.get() && EMPTY_FRAMELIST != m_nCurrentFrame)
{
m_FrameList.erase(m_FrameList.begin() + m_nCurrentFrame);
@@ -457,20 +451,20 @@ IMPL_LINK( AnimationWindow, ClickRemoveBitmapHdl, Button*, pBtn, void )
// can we create an animation group
if (m_FrameList.empty())
{
- m_pBtnCreateGroup->Disable();
+ m_xBtnCreateGroup->set_sensitive(false);
// if previous disabled by acquisition of AnimatedGIFs:
- //m_pRbtBitmap->Enable();
- m_pRbtGroup->Enable();
+ //m_xRbtBitmap->set_sensitive(true);
+ m_xRbtGroup->set_sensitive(true);
}
// calculate and set zoom for DisplayWin
Fraction aFrac(GetScale());
- m_pCtlDisplay->SetScale(aFrac);
+ m_xCtlDisplay->SetScale(aFrac);
UpdateControl();
}
-IMPL_LINK_NOARG(AnimationWindow, ClickCreateGroupHdl, Button*, void)
+IMPL_LINK_NOARG(AnimationWindow, ClickCreateGroupHdl, weld::Button&, void)
{
// Code now in CreatePresObj()
SfxBoolItem aItem( SID_ANIMATOR_CREATE, true );
@@ -479,9 +473,9 @@ IMPL_LINK_NOARG(AnimationWindow, ClickCreateGroupHdl, Button*, void)
SfxCallMode::SLOT | SfxCallMode::RECORD, { &aItem });
}
-IMPL_LINK_NOARG(AnimationWindow, ModifyBitmapHdl, Edit&, void)
+IMPL_LINK_NOARG(AnimationWindow, ModifyBitmapHdl, weld::SpinButton&, void)
{
- sal_uLong nBmp = static_cast<sal_uLong>(m_pNumFldBitmap->GetValue());
+ sal_uLong nBmp = m_xNumFldBitmap->get_value();
if (nBmp > m_FrameList.size())
{
@@ -493,13 +487,13 @@ IMPL_LINK_NOARG(AnimationWindow, ModifyBitmapHdl, Edit&, void)
UpdateControl();
}
-IMPL_LINK_NOARG(AnimationWindow, ModifyTimeHdl, Edit&, void)
+IMPL_LINK_NOARG(AnimationWindow, ModifyTimeHdl, weld::TimeSpinButton&, void)
{
- sal_uLong nPos = static_cast<sal_uLong>(m_pNumFldBitmap->GetValue() - 1);
+ sal_uLong nPos = m_xNumFldBitmap->get_value() - 1;
tools::Time & rTime = m_FrameList[nPos].second;
- rTime = m_pTimeField->GetTime();
+ rTime = m_xTimeField->get_value();
}
void AnimationWindow::UpdateControl(bool const bDisableCtrls)
@@ -532,81 +526,81 @@ void AnimationWindow::UpdateControl(bool const bDisableCtrls)
rBmp = pVD->GetBitmapEx( aObjRect.TopLeft(), aObjSize );
}
- m_pCtlDisplay->SetBitmapEx(&rBmp);
+ m_xCtlDisplay->SetBitmapEx(&rBmp);
}
else
{
- m_pCtlDisplay->SetBitmapEx(nullptr);
+ m_xCtlDisplay->SetBitmapEx(nullptr);
}
- m_pCtlDisplay->Invalidate();
- m_pCtlDisplay->Update();
- m_pFiCount->SetText(OUString::number(
+ m_xCtlDisplay->Invalidate();
+
+ m_xFiCount->set_label(OUString::number(
m_FrameList.size()));
if (!m_FrameList.empty() && !bMovie)
{
size_t nIndex = m_nCurrentFrame + 1;
- m_pNumFldBitmap->SetValue(nIndex);
+ m_xNumFldBitmap->set_value(nIndex);
// if there is at least 1 object in the list
- m_pBtnFirst->Enable();
- m_pBtnReverse->Enable();
- m_pBtnPlay->Enable();
- m_pBtnLast->Enable();
- m_pNumFldBitmap->Enable();
- m_pTimeField->Enable();
- m_pLbLoopCount->Enable();
- m_pBtnRemoveBitmap->Enable();
- m_pBtnRemoveAll->Enable();
+ m_xBtnFirst->set_sensitive(true);
+ m_xBtnReverse->set_sensitive(true);
+ m_xBtnPlay->set_sensitive(true);
+ m_xBtnLast->set_sensitive(true);
+ m_xNumFldBitmap->set_sensitive(true);
+ m_xTimeField->set_sensitive(true);
+ m_xLbLoopCount->set_sensitive(true);
+ m_xBtnRemoveBitmap->set_sensitive(true);
+ m_xBtnRemoveAll->set_sensitive(true);
}
else
{
// if no object is in the list
- m_pBtnFirst->Enable( false );
- m_pBtnReverse->Enable( false );
- m_pBtnPlay->Enable( false );
- m_pBtnLast->Enable( false );
- m_pNumFldBitmap->Enable( false );
- m_pTimeField->Enable( false );
- m_pLbLoopCount->Enable( false );
- m_pBtnRemoveBitmap->Enable( false );
- m_pBtnRemoveAll->Enable( false );
+ m_xBtnFirst->set_sensitive( false );
+ m_xBtnReverse->set_sensitive( false );
+ m_xBtnPlay->set_sensitive( false );
+ m_xBtnLast->set_sensitive( false );
+ m_xNumFldBitmap->set_sensitive( false );
+ m_xTimeField->set_sensitive( false );
+ m_xLbLoopCount->set_sensitive( false );
+ m_xBtnRemoveBitmap->set_sensitive( false );
+ m_xBtnRemoveAll->set_sensitive( false );
}
if( bMovie && bDisableCtrls )
{
- m_pBtnGetOneObject->Enable( false );
- m_pBtnGetAllObjects->Enable( false );
- m_pRbtGroup->Enable( false );
- m_pRbtBitmap->Enable( false );
- m_pBtnCreateGroup->Enable( false );
- m_pFtAdjustment->Enable( false );
- m_pLbAdjustment->Enable( false );
+ m_xBtnGetOneObject->set_sensitive( false );
+ m_xBtnGetAllObjects->set_sensitive( false );
+ m_xRbtGroup->set_sensitive( false );
+ m_xRbtBitmap->set_sensitive( false );
+ m_xBtnCreateGroup->set_sensitive( false );
+ m_xFtAdjustment->set_sensitive( false );
+ m_xLbAdjustment->set_sensitive( false );
}
else
{
// enable 'group object' only if it is not an Animated GIF
if (m_FrameList.empty())
{
- m_pRbtGroup->Enable();
+ m_xRbtGroup->set_sensitive(true);
}
- m_pRbtBitmap->Enable();
- m_pBtnCreateGroup->Enable(!m_FrameList.empty());
- m_pFtAdjustment->Enable();
- m_pLbAdjustment->Enable();
+ m_xRbtBitmap->set_sensitive(true);
+ m_xBtnCreateGroup->set_sensitive(!m_FrameList.empty());
+ m_xFtAdjustment->set_sensitive(true);
+ m_xLbAdjustment->set_sensitive(true);
}
- ClickRbtHdl( nullptr );
+ ClickRbtHdl(*m_xRbtGroup);
}
void AnimationWindow::ResetAttrs()
{
- m_pRbtGroup->Check();
- m_pLbAdjustment->SelectEntryPos( BA_CENTER );
+ m_xRbtGroup->set_active(true);
+ m_xLbAdjustment->set_active( BA_CENTER );
// LoopCount
- m_pLbLoopCount->SelectEntryPos( m_pLbLoopCount->GetEntryCount() - 1);
+ m_xLbLoopCount->set_active( m_xLbLoopCount->get_count() - 1);
UpdateControl();
}
@@ -648,7 +642,7 @@ Fraction AnimationWindow::GetScale()
aBmpSize.AdjustWidth(10 );
aBmpSize.AdjustHeight(10 );
- Size aDisplaySize(m_pCtlDisplay->GetOutputSize());
+ Size aDisplaySize(m_xCtlDisplay->GetOutputSizePixel());
aFrac = Fraction( std::min( static_cast<double>(aDisplaySize.Width()) / static_cast<double>(aBmpSize.Width()),
static_cast<double>(aDisplaySize.Height()) / static_cast<double>(aBmpSize.Height()) ) );
@@ -660,7 +654,7 @@ void AnimationWindow::Resize()
{
SfxDockingWindow::Resize();
Fraction aFrac(GetScale());
- m_pCtlDisplay->SetScale(aFrac);
+ m_xCtlDisplay->SetScale(aFrac);
}
bool AnimationWindow::Close()
@@ -733,9 +727,9 @@ void AnimationWindow::AddObj (::sd::View& rView )
sal_uInt32 nLoopCount = aAnimation.GetLoopCount();
if( !nLoopCount ) // endless
- m_pLbLoopCount->SelectEntryPos( m_pLbLoopCount->GetEntryCount() - 1);
+ m_xLbLoopCount->set_active( m_xLbLoopCount->get_count() - 1);
else
- m_pLbLoopCount->SelectEntry(OUString::number( nLoopCount ) );
+ m_xLbLoopCount->set_active_text(OUString::number( nLoopCount ) );
}
long nTime = rAnimationBitmap.mnWait;
@@ -749,8 +743,8 @@ void AnimationWindow::AddObj (::sd::View& rView )
++m_nCurrentFrame;
}
// if an animated GIF is taken, only such one can be created
- m_pRbtBitmap->Check();
- m_pRbtGroup->Enable( false );
+ m_xRbtBitmap->set_active(true);
+ m_xRbtGroup->set_sensitive( false );
bAnimObj = true;
}
}
@@ -766,7 +760,7 @@ void AnimationWindow::AddObj (::sd::View& rView )
size_t nIndex = m_nCurrentFrame + 1;
m_FrameList.insert(
m_FrameList.begin() + nIndex,
- ::std::make_pair(aBitmapEx, m_pTimeField->GetTime()));
+ ::std::make_pair(aBitmapEx, m_xTimeField->get_value()));
// increment => next one inserted after this one
++m_nCurrentFrame;
@@ -784,7 +778,7 @@ void AnimationWindow::AddObj (::sd::View& rView )
{
BitmapEx aBitmapEx(rView.GetAllMarkedGraphic().GetBitmapEx());
- ::tools::Time aTime( m_pTimeField->GetTime() );
+ ::tools::Time aTime( m_xTimeField->get_value() );
size_t nIndex = m_nCurrentFrame + 1;
m_FrameList.insert(
@@ -815,7 +809,7 @@ void AnimationWindow::AddObj (::sd::View& rView )
size_t nIndex = m_nCurrentFrame + 1;
m_FrameList.insert(
m_FrameList.begin() + nIndex,
- ::std::make_pair(aBitmapEx, m_pTimeField->GetTime()));
+ ::std::make_pair(aBitmapEx, m_xTimeField->get_value()));
// increment => next one inserted after this one
++m_nCurrentFrame;
@@ -852,12 +846,12 @@ void AnimationWindow::AddObj (::sd::View& rView )
// there, we can create an animation group
if (nCloneCount == 0 && !m_FrameList.empty())
{
- m_pBtnCreateGroup->Enable();
+ m_xBtnCreateGroup->set_sensitive(true);
}
// calculate and set zoom for DisplayWin
Fraction aFrac( GetScale() );
- m_pCtlDisplay->SetScale(aFrac);
+ m_xCtlDisplay->SetScale(aFrac);
UpdateControl();
}
@@ -875,7 +869,7 @@ void AnimationWindow::CreateAnimObj (::sd::View& rView )
const Point aWindowCenter( pOutWin->PixelToLogic( Point( aTemp.Width() >> 1, aTemp.Height() >> 1 ) ) );
const OutputDevice* pDefDev = Application::GetDefaultDevice();
const size_t nCount = m_FrameList.size();
- BitmapAdjustment eBA = static_cast<BitmapAdjustment>(m_pLbAdjustment->GetSelectedEntryPos());
+ BitmapAdjustment eBA = static_cast<BitmapAdjustment>(m_xLbAdjustment->get_active());
// find biggest bitmap
for (size_t i = 0; i < nCount; ++i)
@@ -899,7 +893,7 @@ void AnimationWindow::CreateAnimObj (::sd::View& rView )
SdrPageView* pPV = rView.GetSdrPageView();
- if( m_pRbtBitmap->IsChecked() )
+ if( m_xRbtBitmap->get_active() )
{
// create bitmap group (Animated GIF)
Animation aAnimation;
@@ -962,10 +956,10 @@ void AnimationWindow::CreateAnimObj (::sd::View& rView )
// find LoopCount (number of passes)
AnimationBitmap aAnimationBitmap;
sal_uInt32 nLoopCount = 0;
- sal_Int32 nPos = m_pLbLoopCount->GetSelectedEntryPos();
+ sal_Int32 nPos = m_xLbLoopCount->get_active();
- if( nPos != LISTBOX_ENTRY_NOTFOUND && nPos != m_pLbLoopCount->GetEntryCount() - 1 ) // endless
- nLoopCount = m_pLbLoopCount->GetSelectedEntry().toUInt32();
+ if( nPos != -1 && nPos != m_xLbLoopCount->get_count() - 1 ) // endless
+ nLoopCount = m_xLbLoopCount->get_active_text().toUInt32();
aAnimationBitmap.maBitmapEx = rBitmapEx;
aAnimationBitmap.maPositionPixel = aPt;
@@ -1088,7 +1082,7 @@ void AnimationWindow::CreateAnimObj (::sd::View& rView )
}
}
- ClickFirstHdl( nullptr );
+ ClickFirstHdl(*m_xBtnFirst);
}
void AnimationWindow::DataChanged( const DataChangedEvent& rDCEvt )
@@ -1123,8 +1117,8 @@ void AnimationControllerItem::StateChanged( sal_uInt16 nSId,
if (pStateItem)
{
sal_uInt16 nState = pStateItem->GetValue();
- pAnimationWin->m_pBtnGetOneObject->Enable( nState & 1 );
- pAnimationWin->m_pBtnGetAllObjects->Enable( nState & 2 );
+ pAnimationWin->m_xBtnGetOneObject->set_sensitive( nState & 1 );
+ pAnimationWin->m_xBtnGetAllObjects->set_sensitive( nState & 2 );
}
}
}
diff --git a/sd/source/ui/inc/animobjs.hxx b/sd/source/ui/inc/animobjs.hxx
index 04316f304af9..34b48dbea665 100644
--- a/sd/source/ui/inc/animobjs.hxx
+++ b/sd/source/ui/inc/animobjs.hxx
@@ -21,17 +21,12 @@
#define INCLUDED_SD_SOURCE_UI_INC_ANIMOBJS_HXX
#include <sfx2/dockwin.hxx>
-#include <vcl/fixed.hxx>
#include <tools/fract.hxx>
#include <sfx2/ctrlitem.hxx>
#include <sfx2/progress.hxx>
-
-#include <vcl/button.hxx>
-#include <vcl/field.hxx>
-
-#include <vcl/lstbox.hxx>
-
#include <misc/scopelock.hxx>
+#include <vcl/customweld.hxx>
+#include <vcl/weld.hxx>
class SdDrawDocument;
@@ -53,14 +48,14 @@ enum BitmapAdjustment
BA_RIGHT_DOWN
};
-class SdDisplay : public Control
+class SdDisplay : public weld::CustomWidgetController
{
private:
BitmapEx aBitmapEx;
Fraction aScale;
public:
- SdDisplay(vcl::Window* pWin);
+ SdDisplay();
virtual ~SdDisplay() override;
virtual void Paint( vcl::RenderContext& rRenderContext, const ::tools::Rectangle& rRect ) override;
@@ -68,8 +63,7 @@ public:
void SetBitmapEx( BitmapEx const * pBmpEx );
void SetScale( const Fraction& rFrac );
- virtual void DataChanged( const DataChangedEvent& rDCEvt ) override;
- virtual Size GetOptimalSize() const override;
+ virtual void SetDrawingArea(weld::DrawingArea* pDrawingArea) override;
};
class AnimationWindow : public SfxDockingWindow
@@ -92,26 +86,28 @@ protected:
virtual void Resize() override;
private:
- VclPtr<SdDisplay> m_pCtlDisplay;
- VclPtr<PushButton> m_pBtnFirst;
- VclPtr<PushButton> m_pBtnReverse;
- VclPtr<PushButton> m_pBtnStop;
- VclPtr<PushButton> m_pBtnPlay;
- VclPtr<PushButton> m_pBtnLast;
- VclPtr<NumericField> m_pNumFldBitmap;
- VclPtr<TimeField> m_pTimeField;
- VclPtr<ListBox> m_pLbLoopCount;
- VclPtr<PushButton> m_pBtnGetOneObject;
- VclPtr<PushButton> m_pBtnGetAllObjects;
- VclPtr<PushButton> m_pBtnRemoveBitmap;
- VclPtr<PushButton> m_pBtnRemoveAll;
- VclPtr<FixedText> m_pFiCount;
-
- VclPtr<RadioButton> m_pRbtGroup;
- VclPtr<RadioButton> m_pRbtBitmap;
- VclPtr<FixedText> m_pFtAdjustment;
- VclPtr<ListBox> m_pLbAdjustment;
- VclPtr<PushButton> m_pBtnCreateGroup;
+ std::unique_ptr<SdDisplay> m_xCtlDisplay;
+ std::unique_ptr<weld::CustomWeld> m_xCtlDisplayWin;
+ std::unique_ptr<weld::Button> m_xBtnFirst;
+ std::unique_ptr<weld::Button> m_xBtnReverse;
+ std::unique_ptr<weld::Button> m_xBtnStop;
+ std::unique_ptr<weld::Button> m_xBtnPlay;
+ std::unique_ptr<weld::Button> m_xBtnLast;
+ std::unique_ptr<weld::SpinButton> m_xNumFldBitmap;
+ std::unique_ptr<weld::TimeSpinButton> m_xTimeField;
+ std::unique_ptr<weld::ComboBox> m_xLbLoopCount;
+ std::unique_ptr<weld::Button> m_xBtnGetOneObject;
+ std::unique_ptr<weld::Button> m_xBtnGetAllObjects;
+ std::unique_ptr<weld::Button> m_xBtnRemoveBitmap;
+ std::unique_ptr<weld::Button> m_xBtnRemoveAll;
+ std::unique_ptr<weld::Label> m_xFiCount;
+
+ std::unique_ptr<weld::RadioButton> m_xRbtGroup;
+ std::unique_ptr<weld::RadioButton> m_xRbtBitmap;
+ std::unique_ptr<weld::Label> m_xFtAdjustment;
+ std::unique_ptr<weld::ComboBox> m_xLbAdjustment;
+ std::unique_ptr<weld::Button> m_xBtnCreateGroup;
+ std::unique_ptr<weld::Button> m_xBtnHelp;
::std::vector< ::std::pair<BitmapEx, ::tools::Time> > m_FrameList;
static const size_t EMPTY_FRAMELIST;
@@ -125,16 +121,17 @@ private:
ScopeLock maPlayLock;
- DECL_LINK( ClickFirstHdl, Button*, void );
- DECL_LINK( ClickStopHdl, Button*, void );
- DECL_LINK( ClickPlayHdl, Button*, void );
- DECL_LINK( ClickLastHdl, Button*, void );
- DECL_LINK( ClickGetObjectHdl, Button*, void );
- DECL_LINK( ClickRemoveBitmapHdl, Button*, void );
- DECL_LINK( ClickRbtHdl, Button*, void );
- DECL_LINK( ClickCreateGroupHdl, Button*, void );
- DECL_LINK( ModifyBitmapHdl, Edit&, void );
- DECL_LINK( ModifyTimeHdl, Edit&, void );
+ DECL_LINK( ClickFirstHdl, weld::Button&, void );
+ DECL_LINK( ClickStopHdl, weld::Button&, void );
+ DECL_LINK( ClickPlayHdl, weld::Button&, void );
+ DECL_LINK( ClickLastHdl, weld::Button&, void );
+ DECL_LINK( ClickGetObjectHdl, weld::Button&, void );
+ DECL_LINK( ClickRemoveBitmapHdl, weld::Button&, void );
+ DECL_LINK( ClickRbtHdl, weld::Button&, void );
+ DECL_LINK( ClickHelpHdl, weld::Button&, void );
+ DECL_LINK( ClickCreateGroupHdl, weld::Button&, void );
+ DECL_LINK( ModifyBitmapHdl, weld::SpinButton&, void );
+ DECL_LINK( ModifyTimeHdl, weld::TimeSpinButton&, void );
void UpdateControl(bool bDisableCtrls = false);
void ResetAttrs();
diff --git a/sd/uiconfig/simpress/ui/dockinganimation.ui b/sd/uiconfig/simpress/ui/dockinganimation.ui
index 6c7f9e8fe7a9..1d81add65eaf 100644
--- a/sd/uiconfig/simpress/ui/dockinganimation.ui
+++ b/sd/uiconfig/simpress/ui/dockinganimation.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.16.1 -->
+<!-- Generated with glade 3.22.1 -->
<interface domain="sd">
<requires lib="gtk+" version="3.18"/>
<object class="GtkAdjustment" id="adjustment1">
@@ -9,25 +9,30 @@
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
+ <object class="GtkAdjustment" id="adjustment2">
+ <property name="upper">600</property>
+ <property name="step_increment">10</property>
+ <property name="page_increment">60</property>
+ </object>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="pixbuf">sd/res/get1obj.png</property>
+ <property name="icon_name">sd/res/get1obj.png</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="pixbuf">sd/res/getallob.png</property>
+ <property name="icon_name">sd/res/getallob.png</property>
</object>
<object class="GtkImage" id="image3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="pixbuf">sd/res/del1bmp.png</property>
+ <property name="icon_name">sd/res/del1bmp.png</property>
</object>
<object class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="pixbuf">sd/res/delall.png</property>
+ <property name="icon_name">sd/res/delall.png</property>
</object>
<object class="GtkImage" id="image5">
<property name="visible">True</property>
@@ -54,579 +59,507 @@
<property name="can_focus">False</property>
<property name="stock">gtk-goto-last</property>
</object>
- <object class="GtkWindow" id="DockingAnimation">
+ <object class="GtkBox" id="DockingAnimation">
+ <property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
- <property name="title" translatable="yes" context="dockinganimation|DockingAnimation">Animation</property>
- <property name="type_hint">dock</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
<child>
- <object class="GtkBox" id="box1">
+ <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="orientation">vertical</property>
- <property name="spacing">12</property>
+ <property name="row_spacing">24</property>
<child>
- <object class="GtkGrid" id="grid1">
+ <object class="GtkGrid" id="grid2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="row_spacing">24</property>
+ <property name="row_spacing">12</property>
<child>
- <object class="GtkGrid" id="grid2">
+ <object class="GtkGrid" id="grid3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="row_spacing">12</property>
+ <property name="column_spacing">12</property>
<child>
- <object class="GtkBox" id="box">
+ <object class="GtkComboBoxText" id="loopcount">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="tooltip_text" translatable="yes" context="dockinganimation|box|tooltip_text">Preview</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="orientation">vertical</property>
- <child>
- <placeholder/>
- </child>
+ <property name="tooltip_text" translatable="yes" context="dockinganimation|loopcount|tooltip_text">Loop Count</property>
+ <items>
+ <item>1</item>
+ <item>2</item>
+ <item>3</item>
+ <item>4</item>
+ <item>5</item>
+ <item>6</item>
+ <item>7</item>
+ <item>8</item>
+ <item>9</item>
+ <item>10</item>
+ <item>12</item>
+ <item>15</item>
+ <item>20</item>
+ <item>25</item>
+ <item>50</item>
+ <item>100</item>
+ <item>500</item>
+ <item>1000</item>
+ <item translatable="yes" context="dockinganimation|loopcount">Max.</item>
+ </items>
</object>
<packing>
- <property name="left_attach">0</property>
+ <property name="left_attach">3</property>
<property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkGrid" id="grid3">
+ <object class="GtkSpinButton" id="duration">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip_text" translatable="yes" context="dockinganimation|duration|tooltip_text">Duration</property>
+ <property name="adjustment">adjustment2</property>
+ <property name="digits">2</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="numbitmap">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip_text" translatable="yes" context="dockinganimation|numbitmap|tooltip_text">Image Number</property>
+ <property name="text">1</property>
+ <property name="adjustment">adjustment1</property>
+ <property name="value">1</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid9">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="column_spacing">12</property>
+ <property name="valign">center</property>
+ <property name="column_spacing">6</property>
<child>
- <object class="GtkComboBoxText" id="loopcount">
+ <object class="GtkButton" id="first">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="tooltip_text" translatable="yes" context="dockinganimation|loopcount|tooltip_text">Loop Count</property>
- <items>
- <item translatable="no">1</item>
- <item translatable="no">2</item>
- <item translatable="no">3</item>
- <item translatable="no">4</item>
- <item translatable="no">5</item>
- <item translatable="no">6</item>
- <item translatable="no">7</item>
- <item translatable="no">8</item>
- <item translatable="no">9</item>
- <item translatable="no">10</item>
- <item translatable="no">12</item>
- <item translatable="no">15</item>
- <item translatable="no">20</item>
- <item translatable="no">25</item>
- <item translatable="no">50</item>
- <item translatable="no">100</item>
- <item translatable="no">500</item>
- <item translatable="no">1000</item>
- <item translatable="yes" context="dockinganimation|loopcount">Max.</item>
- </items>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes" context="dockinganimation|first|tooltip_text">First Image</property>
+ <property name="image">image5</property>
</object>
<packing>
- <property name="left_attach">3</property>
+ <property name="left_attach">0</property>
<property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="duration:hh:mm">
+ <object class="GtkButton" id="prev">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="tooltip_text" translatable="yes" context="dockinganimation|duration|tooltip_text">Duration</property>
- <property name="digits">2</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes" context="dockinganimation|prev|tooltip_text">Backwards</property>
+ <property name="image">image6</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="stop">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes" context="dockinganimation|stop|tooltip_text">Stop</property>
+ <property name="image">image7</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="numbitmap">
+ <object class="GtkButton" id="next">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="tooltip_text" translatable="yes" context="dockinganimation|numbitmap|tooltip_text">Image Number</property>
- <property name="text" translatable="no">1</property>
- <property name="adjustment">adjustment1</property>
- <property name="value">1</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes" context="dockinganimation|next|tooltip_text">Play</property>
+ <property name="image">image8</property>
</object>
<packing>
- <property name="left_attach">1</property>
+ <property name="left_attach">3</property>
<property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkGrid" id="grid9">
+ <object class="GtkButton" id="last">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">center</property>
- <property name="column_spacing">6</property>
- <child>
- <object class="GtkButton" id="first">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="dockinganimation|first|tooltip_text">First Image</property>
- <property name="image">image5</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>
- <child>
- <object class="GtkButton" id="prev">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="dockinganimation|prev|tooltip_text">Backwards</property>
- <property name="image">image6</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="GtkButton" id="stop">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="dockinganimation|stop|tooltip_text">Stop</property>
- <property name="image">image7</property>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="next">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="dockinganimation|next|tooltip_text">Play</property>
- <property name="image">image8</property>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="last">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="dockinganimation|last|tooltip_text">Last Image</property>
- <property name="image">image9</property>
- </object>
- <packing>
- <property name="left_attach">4</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes" context="dockinganimation|last|tooltip_text">Last Image</property>
+ <property name="image">image9</property>
</object>
<packing>
- <property name="left_attach">0</property>
+ <property name="left_attach">4</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">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
+ <property name="top_attach">0</property>
</packing>
</child>
</object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkDrawingArea" 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">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>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="frame1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
<child>
- <object class="GtkFrame" id="frame1">
+ <object class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
<child>
- <object class="GtkAlignment" id="alignment1">
+ <object class="GtkGrid" id="grid6">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="top_padding">6</property>
- <property name="left_padding">12</property>
+ <property name="row_spacing">6</property>
+ <child>
+ <object class="GtkRadioButton" id="group">
+ <property name="label" translatable="yes" context="dockinganimation|group">Group object</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="bitmap">
+ <property name="label" translatable="yes" context="dockinganimation|bitmap">Bitmap object</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">group</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
<child>
- <object class="GtkGrid" id="grid6">
+ <object class="GtkGrid" id="grid10">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="row_spacing">6</property>
+ <property name="column_spacing">12</property>
<child>
- <object class="GtkRadioButton" id="group">
- <property name="label" translatable="yes" context="dockinganimation|group">Group object</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <object class="GtkLabel" id="alignmentft">
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="dockinganimation|alignmentft">Alignment</property>
<property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">bitmap</property>
+ <property name="mnemonic_widget">alignment</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>
<child>
- <object class="GtkRadioButton" id="bitmap">
- <property name="label" translatable="yes" context="dockinganimation|bitmap">Bitmap object</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- <property name="group">group</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="GtkGrid" id="grid10">
- <property name="visible">True</property>
+ <object class="GtkComboBoxText" id="alignment">
<property name="can_focus">False</property>
- <property name="column_spacing">12</property>
- <child>
- <object class="GtkLabel" id="alignmentft">
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="dockinganimation|alignmentft">Alignment</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">alignment</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>
- <child>
- <object class="GtkComboBoxText" id="alignment">
- <property name="can_focus">False</property>
- <items>
- <item translatable="yes" context="dockinganimation|alignment">Top Left</item>
- <item translatable="yes" context="dockinganimation|alignment">Left</item>
- <item translatable="yes" context="dockinganimation|alignment">Bottom Left</item>
- <item translatable="yes" context="dockinganimation|alignment">Top</item>
- <item translatable="yes" context="dockinganimation|alignment">Centered</item>
- <item translatable="yes" context="dockinganimation|alignment">Bottom</item>
- <item translatable="yes" context="dockinganimation|alignment">Top Right</item>
- <item translatable="yes" context="dockinganimation|alignment">Right</item>
- <item translatable="yes" context="dockinganimation|alignment">Bottom Right</item>
- </items>
- </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>
+ <items>
+ <item translatable="yes" context="dockinganimation|alignment">Top Left</item>
+ <item translatable="yes" context="dockinganimation|alignment">Left</item>
+ <item translatable="yes" context="dockinganimation|alignment">Bottom Left</item>
+ <item translatable="yes" context="dockinganimation|alignment">Top</item>
+ <item translatable="yes" context="dockinganimation|alignment">Centered</item>
+ <item translatable="yes" context="dockinganimation|alignment">Bottom</item>
+ <item translatable="yes" context="dockinganimation|alignment">Top Right</item>
+ <item translatable="yes" context="dockinganimation|alignment">Right</item>
+ <item translatable="yes" context="dockinganimation|alignment">Bottom Right</item>
+ </items>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
</packing>
</child>
</object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ </packing>
</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" context="dockinganimation|label1">Animation group</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</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" context="dockinganimation|label1">Animation group</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="frame2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
<child>
- <object class="GtkFrame" id="frame2">
+ <object class="GtkAlignment" id="alignment2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
<child>
- <object class="GtkAlignment" id="alignment2">
+ <object class="GtkGrid" id="grid7">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="top_padding">6</property>
- <property name="left_padding">12</property>
+ <property name="hexpand">True</property>
+ <property name="column_spacing">24</property>
<child>
- <object class="GtkGrid" id="grid7">
+ <object class="GtkGrid" id="grid11">
<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">24</property>
+ <property name="column_spacing">12</property>
<child>
- <object class="GtkGrid" id="grid11">
+ <object class="GtkButton" id="getone">
<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="GtkButton" id="getone">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="dockinganimation|getone|tooltip_text">Apply Object</property>
- <property name="image">image1</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>
- <child>
- <object class="GtkButton" id="getall">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="dockinganimation|getall|tooltip_text">Apply Objects Individually</property>
- <property name="image">image2</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>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes" context="dockinganimation|getone|tooltip_text">Apply Object</property>
+ <property name="image">image1</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>
<child>
- <object class="GtkGrid" id="grid12">
+ <object class="GtkButton" id="getall">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes" context="dockinganimation|getall|tooltip_text">Apply Objects Individually</property>
+ <property name="image">image2</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid12">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="hexpand">True</property>
+ <property name="column_spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="halign">end</property>
- <property name="hexpand">True</property>
- <property name="column_spacing">12</property>
- <child>
- <object class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes" context="dockinganimation|label3">Number</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>
- <child>
- <object class="GtkLabel" id="count">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="no">67</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>
+ <property name="label" translatable="yes" context="dockinganimation|label3">Number</property>
+ <property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">2</property>
+ <property name="left_attach">0</property>
<property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkGrid" id="grid13">
+ <object class="GtkLabel" id="count">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="halign">center</property>
- <property name="hexpand">True</property>
- <property name="column_spacing">12</property>
- <child>
- <object class="GtkButton" id="delone">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="dockinganimation|delone|tooltip_text">Delete Current Image</property>
- <property name="image">image3</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>
- <child>
- <object class="GtkButton" id="delall">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="dockinganimation|delall|tooltip_text">Delete All Images</property>
- <property name="image">image4</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>
+ <property name="label">67</property>
+ <property name="xalign">0</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>
</object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid13">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="hexpand">True</property>
+ <property name="column_spacing">12</property>
+ <child>
+ <object class="GtkButton" id="delone">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes" context="dockinganimation|delone|tooltip_text">Delete Current Image</property>
+ <property name="image">image3</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="delall">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes" context="dockinganimation|delall|tooltip_text">Delete All Images</property>
+ <property name="image">image4</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
</child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="dockinganimation|label2">Image</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
</object>
</child>
</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 type="label">
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="dockinganimation|label2">Image</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</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="GtkButtonBox" id="buttonbox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <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">0</property>
+ <property name="secondary">True</property>
</packing>
</child>
<child>
- <object class="GtkButtonBox" id="buttonbox">
+ <object class="GtkButton" id="create">
+ <property name="label" translatable="yes" context="dockinganimation|create">Create</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
- <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">0</property>
- <property name="secondary">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="create">
- <property name="label" translatable="yes" context="dockinganimation|create">Create</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_underline">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</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">1</property>
+ </packing>
</child>
</object>
</interface>
More information about the Libreoffice-commits
mailing list