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

convert docking animation window to .ui

Change-Id: I2633173bb21da554f55b244d6d2947567c933c2a
üst 545ac4de
......@@ -40,7 +40,6 @@ $(eval $(call gb_SrsTarget_add_files,sd/res,\
sd/source/ui/app/sdstring.src \
sd/source/ui/app/strings.src \
sd/source/ui/app/toolbox.src \
sd/source/ui/dlg/animobjs.src \
sd/source/ui/dlg/navigatr.src \
sd/source/ui/dlg/PaneDockingWindow.src \
sd/source/ui/slideshow/slideshow.src \
......
......@@ -81,6 +81,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/simpress,\
sd/uiconfig/simpress/ui/customslideshows \
sd/uiconfig/simpress/ui/definecustomslideshow \
sd/uiconfig/simpress/ui/dlgfield \
sd/uiconfig/simpress/ui/dockinganimation \
sd/uiconfig/simpress/ui/headerfooterdialog \
sd/uiconfig/simpress/ui/headerfootertab \
sd/uiconfig/simpress/ui/insertslides \
......
......@@ -21,7 +21,6 @@
#include "app.hrc"
#include "animobjs.hxx"
#include "animobjs.hrc"
#include <sfx2/app.hxx>
#include <sfx2/childwin.hxx>
#include <sfx2/dockwin.hxx>
......@@ -40,8 +39,7 @@ AnimationChildWindow::AnimationChildWindow(
SfxChildWinInfo* pInfo )
: SfxChildWindow( _pParent, nId )
{
AnimationWindow* pAnimWin = new AnimationWindow(
pBindings, this, _pParent, SdResId( FLT_WIN_ANIMATION ) );
AnimationWindow* pAnimWin = new AnimationWindow(pBindings, this, _pParent);
pWindow = pAnimWin;
eChildAlignment = SFX_ALIGN_NOALIGNMENT;
......
......@@ -31,7 +31,6 @@
#include "anminfo.hxx"
#include "animobjs.hxx"
#include "animobjs.hrc"
#include "app.hrc"
#include "strings.hrc"
#include "sdresid.hxx"
......@@ -56,9 +55,9 @@ namespace sd {
/**
* SdDisplay - Control
*/
SdDisplay::SdDisplay( vcl::Window* pWin, SdResId Id ) :
Control( pWin, Id ),
aScale( 1, 1 )
SdDisplay::SdDisplay(vcl::Window* pWin)
: Control(pWin, 0)
, aScale(1, 1)
{
SetMapMode( MAP_PIXEL );
const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings();
......@@ -104,6 +103,11 @@ void SdDisplay::SetScale( const Fraction& rFrac )
aScale = rFrac;
}
Size SdDisplay::GetOptimalSize() const
{
return LogicToPixel(Size(147, 87), MAP_APPFONT);
}
void SdDisplay::DataChanged( const DataChangedEvent& rDCEvt )
{
Control::DataChanged( rDCEvt );
......@@ -118,49 +122,47 @@ void SdDisplay::DataChanged( const DataChangedEvent& rDCEvt )
}
}
const size_t AnimationWindow::EMPTY_FRAMELIST = std::numeric_limits<size_t>::max();
/**
* AnimationWindow - FloatingWindow
*/
const size_t AnimationWindow::EMPTY_FRAMELIST = std::numeric_limits<size_t>::max();
AnimationWindow::AnimationWindow( SfxBindings* pInBindings,
SfxChildWindow *pCW, vcl::Window* pParent, const SdResId& rSdResId ) :
SfxDockingWindow ( pInBindings, pCW, pParent, rSdResId ),
aCtlDisplay ( this, SdResId( CTL_DISPLAY ) ),
aBtnFirst ( this, SdResId( BTN_FIRST ) ),
aBtnReverse ( this, SdResId( BTN_REVERSE ) ),
aBtnStop ( this, SdResId( BTN_STOP ) ),
aBtnPlay ( this, SdResId( BTN_PLAY ) ),
aBtnLast ( this, SdResId( BTN_LAST ) ),
aNumFldBitmap ( this, SdResId( NUM_FLD_BITMAP ) ),
aTimeField ( this, SdResId( TIME_FIELD ) ),
aLbLoopCount ( this, SdResId( LB_LOOP_COUNT ) ),
aGrpBitmap ( this, SdResId( GRP_BITMAP ) ),
aBtnGetOneObject ( this, SdResId( BTN_GET_ONE_OBJECT ) ),
aBtnGetAllObjects ( this, SdResId( BTN_GET_ALL_OBJECTS ) ),
aBtnRemoveBitmap ( this, SdResId( BTN_REMOVE_BITMAP ) ),
aBtnRemoveAll ( this, SdResId( BTN_REMOVE_ALL ) ),
aFtCount ( this, SdResId( FT_COUNT ) ),
aFiCount ( this, SdResId( FI_COUNT ) ),
aGrpAnimation ( this, SdResId( GRP_ANIMATION_GROUP ) ),
aRbtGroup ( this, SdResId( RBT_GROUP ) ),
aRbtBitmap ( this, SdResId( RBT_BITMAP ) ),
aFtAdjustment ( this, SdResId( FT_ADJUSTMENT ) ),
aLbAdjustment ( this, SdResId( LB_ADJUSTMENT ) ),
aBtnCreateGroup ( this, SdResId( BTN_CREATE_GROUP ) ),
aBtnHelp ( this, SdResId( BTN_HELP ) ),
pWin ( pParent ),
m_nCurrentFrame ( EMPTY_FRAMELIST ),
bMovie ( false ),
bAllObjects ( false ),
pBindings ( pInBindings )
AnimationWindow::AnimationWindow(SfxBindings* pInBindings, SfxChildWindow *pCW, vcl::Window* pParent)
: SfxDockingWindow(pInBindings, pCW, pParent,
"DockingAnimation", "modules/simpress/ui/dockinganimation.ui")
, pWin(pParent)
, m_nCurrentFrame(EMPTY_FRAMELIST)
, bMovie(false)
, bAllObjects(false)
, pBindings(pInBindings)
{
aCtlDisplay.SetAccessibleName(SD_RESSTR(STR_DISPLAY));
FreeResource();
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 = new SdDisplay(get<Window>("box"));
m_pCtlDisplay->set_hexpand(true);
m_pCtlDisplay->set_vexpand(true);
m_pCtlDisplay->Show();
//undo SfxDockingWindow HelpId clear hack
reverseUniqueHelpIdHack(*this);
......@@ -172,41 +174,34 @@ AnimationWindow::AnimationWindow( SfxBindings* pInBindings,
pControllerItem = new AnimationControllerItem( SID_ANIMATOR_STATE, this, pBindings );
// as long as not in the resource
aTimeField.SetFormat( TimeFieldFormat::F_SEC_CS );
m_pTimeField->SetFormat( TimeFieldFormat::F_SEC_CS );
aBtnFirst.SetClickHdl( LINK( this, AnimationWindow, ClickFirstHdl ) );
aBtnReverse.SetClickHdl( LINK( this, AnimationWindow, ClickPlayHdl ) );
aBtnStop.SetClickHdl( LINK( this, AnimationWindow, ClickStopHdl ) );
aBtnPlay.SetClickHdl( LINK( this, AnimationWindow, ClickPlayHdl ) );
aBtnLast.SetClickHdl( LINK( this, AnimationWindow, ClickLastHdl ) );
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 ) );
aBtnGetOneObject.SetClickHdl( LINK( this, AnimationWindow, ClickGetObjectHdl ) );
aBtnGetAllObjects.SetClickHdl( LINK( this, AnimationWindow, ClickGetObjectHdl ) );
aBtnRemoveBitmap.SetClickHdl( LINK( this, AnimationWindow, ClickRemoveBitmapHdl ) );
aBtnRemoveAll.SetClickHdl( LINK( this, AnimationWindow, ClickRemoveBitmapHdl ) );
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 ) );
aRbtGroup.SetClickHdl( LINK( this, AnimationWindow, ClickRbtHdl ) );
aRbtBitmap.SetClickHdl( LINK( this, AnimationWindow, ClickRbtHdl ) );
aBtnCreateGroup.SetClickHdl( LINK( this, AnimationWindow, ClickCreateGroupHdl ) );
aNumFldBitmap.SetModifyHdl( LINK( this, AnimationWindow, ModifyBitmapHdl ) );
aTimeField.SetModifyHdl( LINK( this, AnimationWindow, ModifyTimeHdl ) );
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
aCtlDisplay.SetBorderStyle(WindowBorderStyle::MONO);
aDisplaySize = aCtlDisplay.GetOutputSize();
m_pCtlDisplay->SetBorderStyle(WindowBorderStyle::MONO);
aSize = GetOutputSizePixel();
SetMinOutputSizePixel( aSize );
SetMinOutputSizePixel(GetOptimalSize());
ResetAttrs();
// the animator is empty; no animation group can be created
aBtnCreateGroup.Disable();
aBtnGetOneObject.SetAccessibleRelationMemberOf( &aGrpBitmap );
aBtnGetAllObjects.SetAccessibleRelationMemberOf( &aGrpBitmap );
aBtnRemoveBitmap.SetAccessibleRelationMemberOf( &aGrpBitmap );
aBtnRemoveAll.SetAccessibleRelationMemberOf( &aGrpBitmap );
m_pBtnCreateGroup->Disable();
}
AnimationWindow::~AnimationWindow()
......@@ -223,6 +218,8 @@ AnimationWindow::~AnimationWindow()
// delete the clones
delete pMyDoc;
delete m_pCtlDisplay;
}
IMPL_LINK_NOARG(AnimationWindow, ClickFirstHdl)
......@@ -246,17 +243,17 @@ IMPL_LINK( AnimationWindow, ClickPlayHdl, void *, p )
bMovie = true;
bool bDisableCtrls = false;
size_t const nCount = m_FrameList.size();
bool bReverse = p == &aBtnReverse;
bool bReverse = p == m_pBtnReverse;
// it is difficult to find it later on
bool bRbtGroupEnabled = aRbtGroup.IsEnabled();
bool bBtnGetAllObjectsEnabled = aBtnGetAllObjects.IsEnabled();
bool bBtnGetOneObjectEnabled = aBtnGetOneObject.IsEnabled();
bool bRbtGroupEnabled = m_pRbtGroup->IsEnabled();
bool bBtnGetAllObjectsEnabled = m_pBtnGetAllObjects->IsEnabled();
bool bBtnGetOneObjectEnabled = m_pBtnGetOneObject->IsEnabled();
// calculate overall time
tools::Time aTime( 0 );
long nFullTime;
if( aRbtBitmap.IsChecked() )
if( m_pRbtBitmap->IsChecked() )
{
for (size_t i = 0; i < nCount; ++i)
{
......@@ -275,8 +272,8 @@ IMPL_LINK( AnimationWindow, ClickPlayHdl, void *, p )
if( nFullTime >= 1000 )
{
bDisableCtrls = true;
aBtnStop.Enable();
aBtnStop.Update();
m_pBtnStop->Enable();
m_pBtnStop->Update();
OUString aStr("Animator:"); // here we should think about something smart
pProgress = new SfxProgress( NULL, aStr, nFullTime );
}
......@@ -296,12 +293,12 @@ IMPL_LINK( AnimationWindow, ClickPlayHdl, void *, p )
UpdateControl(bDisableCtrls);
if( aRbtBitmap.IsChecked() )
if( m_pRbtBitmap->IsChecked() )
{
tools::Time *const pTime = m_FrameList[i].second;
assert(pTime);
aTimeField.SetTime( *pTime );
m_pTimeField->SetTime( *pTime );
sal_uLong nTime = pTime->GetMSFromTime();
WaitInEffect( nTime, nTmpTime, pProgress );
......@@ -348,12 +345,12 @@ IMPL_LINK( AnimationWindow, ClickPlayHdl, void *, p )
if( pProgress )
{
delete pProgress;
aBtnStop.Disable();
m_pBtnStop->Disable();
}
aRbtGroup.Enable( bRbtGroupEnabled );
aBtnGetAllObjects.Enable( bBtnGetAllObjectsEnabled );
aBtnGetOneObject.Enable( bBtnGetOneObjectEnabled );
m_pRbtGroup->Enable( bRbtGroupEnabled );
m_pBtnGetAllObjects->Enable( bBtnGetAllObjectsEnabled );
m_pBtnGetOneObject->Enable( bBtnGetOneObjectEnabled );
return( 0L );
}
......@@ -369,23 +366,23 @@ IMPL_LINK_NOARG(AnimationWindow, ClickLastHdl)
IMPL_LINK( AnimationWindow, ClickRbtHdl, void *, p )
{
if (m_FrameList.empty() || p == &aRbtGroup || aRbtGroup.IsChecked())
if (m_FrameList.empty() || p == m_pRbtGroup || m_pRbtGroup->IsChecked())
{
aTimeField.SetText( OUString() );
aTimeField.Enable( false );
aLbLoopCount.Enable( false );
m_pTimeField->SetText( OUString() );
m_pTimeField->Enable( false );
m_pLbLoopCount->Enable( false );
}
else if( p == &aRbtBitmap || aRbtBitmap.IsChecked() )
else if( p == m_pRbtBitmap || m_pRbtBitmap->IsChecked() )
{
sal_uLong n = static_cast<sal_uLong>(aNumFldBitmap.GetValue());
sal_uLong n = static_cast<sal_uLong>(m_pNumFldBitmap->GetValue());
if( n > 0 )
{
tools::Time *const pTime = m_FrameList[n - 1].second;
if( pTime )
aTimeField.SetTime( *pTime );
m_pTimeField->SetTime( *pTime );
}
aTimeField.Enable();
aLbLoopCount.Enable();
m_pTimeField->Enable();
m_pLbLoopCount->Enable();
}
return( 0L );
......@@ -393,7 +390,7 @@ IMPL_LINK( AnimationWindow, ClickRbtHdl, void *, p )
IMPL_LINK( AnimationWindow, ClickGetObjectHdl, void *, pBtn )
{
bAllObjects = pBtn == &aBtnGetAllObjects;
bAllObjects = pBtn == m_pBtnGetAllObjects;
// Code now in AddObj()
SfxBoolItem aItem( SID_ANIMATOR_ADD, true );
......@@ -408,7 +405,7 @@ IMPL_LINK( AnimationWindow, ClickRemoveBitmapHdl, void *, pBtn )
SdPage* pPage = pMyDoc->GetSdPage(0, PK_STANDARD);
SdrObject* pObject;
if( pBtn == &aBtnRemoveBitmap )
if (pBtn == m_pBtnRemoveBitmap)
{
delete m_FrameList[m_nCurrentFrame].first;
delete m_FrameList[m_nCurrentFrame].second;
......@@ -463,15 +460,15 @@ IMPL_LINK( AnimationWindow, ClickRemoveBitmapHdl, void *, pBtn )
// can we create a animation group
if (m_FrameList.empty())
{
aBtnCreateGroup.Disable();
m_pBtnCreateGroup->Disable();
// if previous disabled by acquisition of AnimatedGIFs:
//aRbtBitmap.Enable();
aRbtGroup.Enable();
//m_pRbtBitmap->Enable();
m_pRbtGroup->Enable();
}
// calculate and set zoom for DisplayWin
Fraction aFrac( GetScale() );
aCtlDisplay.SetScale( aFrac );
Fraction aFrac(GetScale());
m_pCtlDisplay->SetScale(aFrac);
UpdateControl();
......@@ -490,7 +487,7 @@ IMPL_LINK_NOARG(AnimationWindow, ClickCreateGroupHdl)
IMPL_LINK_NOARG(AnimationWindow, ModifyBitmapHdl)
{
sal_uLong nBmp = static_cast<sal_uLong>(aNumFldBitmap.GetValue());
sal_uLong nBmp = static_cast<sal_uLong>(m_pNumFldBitmap->GetValue());
if (nBmp > m_FrameList.size())
{
......@@ -506,11 +503,11 @@ IMPL_LINK_NOARG(AnimationWindow, ModifyBitmapHdl)
IMPL_LINK_NOARG(AnimationWindow, ModifyTimeHdl)
{
sal_uLong nPos = static_cast<sal_uLong>(aNumFldBitmap.GetValue() - 1);
sal_uLong nPos = static_cast<sal_uLong>(m_pNumFldBitmap->GetValue() - 1);
tools::Time *const pTime = m_FrameList[nPos].second;
*pTime = aTimeField.GetTime();
*pTime = m_pTimeField->GetTime();
return( 0L );
}
......@@ -545,73 +542,70 @@ void AnimationWindow::UpdateControl(bool const bDisableCtrls)
aBmp = BitmapEx( aVD.GetBitmap( aObjRect.TopLeft(), aObjSize ) );
}
aCtlDisplay.SetBitmapEx( &aBmp );
m_pCtlDisplay->SetBitmapEx(&aBmp);
}
else
{
aCtlDisplay.SetBitmapEx(0);
m_pCtlDisplay->SetBitmapEx(0);
}
aCtlDisplay.Invalidate();
aCtlDisplay.Update();
m_pCtlDisplay->Invalidate();
m_pCtlDisplay->Update();
aFiCount.SetText(OUString::number(
m_pFiCount->SetText(OUString::number(
m_FrameList.size()));
if (!m_FrameList.empty() && !bMovie)
{
size_t nIndex = m_nCurrentFrame + 1;
aNumFldBitmap.SetValue(nIndex);
m_pNumFldBitmap->SetValue(nIndex);
// if there is at least 1 object in the list
aBtnFirst.Enable();
aBtnReverse.Enable();
aBtnPlay.Enable();
aBtnLast.Enable();
aNumFldBitmap.Enable();
aTimeField.Enable();
aLbLoopCount.Enable();
aBtnRemoveBitmap.Enable();
aBtnRemoveAll.Enable();
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();
}
else
{
// if no object is in the list
aBtnFirst.Enable( false );
aBtnReverse.Enable( false );
aBtnPlay.Enable( false );
aBtnLast.Enable( false );
aNumFldBitmap.Enable( false );
aTimeField.Enable( false );
aLbLoopCount.Enable( false );
aBtnRemoveBitmap.Enable( false );
aBtnRemoveAll.Enable( false );
//aFtAdjustment.Enable();
//aLbAdjustment.Enable();
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 );
}
if( bMovie && bDisableCtrls )
{
aBtnGetOneObject.Enable( false );
aBtnGetAllObjects.Enable( false );
aRbtGroup.Enable( false );
aRbtBitmap.Enable( false );
aBtnCreateGroup.Enable( false );
aFtAdjustment.Enable( false );
aLbAdjustment.Enable( false );
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 );
}
else
{
// enable 'group object' only if it is not a Animated GIF
if (m_FrameList.empty())
{
aRbtGroup.Enable();
m_pRbtGroup->Enable();
}
aRbtBitmap.Enable();
aBtnCreateGroup.Enable(!m_FrameList.empty());
aFtAdjustment.Enable( true );
aLbAdjustment.Enable( true );
m_pRbtBitmap->Enable();
m_pBtnCreateGroup->Enable(!m_FrameList.empty());
m_pFtAdjustment->Enable( true );
m_pLbAdjustment->Enable( true );
}
ClickRbtHdl( NULL );
......@@ -619,10 +613,10 @@ void AnimationWindow::UpdateControl(bool const bDisableCtrls)
void AnimationWindow::ResetAttrs()
{
aRbtGroup.Check();
aLbAdjustment.SelectEntryPos( BA_CENTER );
m_pRbtGroup->Check();
m_pLbAdjustment->SelectEntryPos( BA_CENTER );
// LoopCount
aLbLoopCount.SelectEntryPos( aLbLoopCount.GetEntryCount() - 1);
m_pLbLoopCount->SelectEntryPos( m_pLbLoopCount->GetEntryCount() - 1);
UpdateControl();
}
......@@ -652,8 +646,7 @@ Fraction AnimationWindow::GetScale()
size_t const nCount = m_FrameList.size();
if (nCount > 0)
{
aBmpSize.Width() = 0;
aBmpSize.Height() = 0;
Size aBmpSize(0, 0);
for (size_t i = 0; i < nCount; i++)
{
BitmapEx *const pBitmap = m_FrameList[i].first;
......@@ -665,107 +658,19 @@ Fraction AnimationWindow::GetScale()
aBmpSize.Width() += 10;
aBmpSize.Height() += 10;
Size aDisplaySize(m_pCtlDisplay->GetOutputSize());
aFrac = Fraction( std::min( (double)aDisplaySize.Width() / (double)aBmpSize.Width(),
(double)aDisplaySize.Height() / (double)aBmpSize.Height() ) );
}
return( aFrac );
return aFrac;
}
void AnimationWindow::Resize()
{
if ( !IsFloatingMode() ||
!GetFloatingWindow()->IsRollUp() )
{
Size aWinSize( GetOutputSizePixel() ); // former rSize in Resizing()
Size aDiffSize;
aDiffSize.Width() = aWinSize.Width() - aSize.Width();
aDiffSize.Height() = aWinSize.Height() - aSize.Height();
// resize display controls
aDisplaySize.Width() += aDiffSize.Width();
aDisplaySize.Height() += aDiffSize.Height();
aCtlDisplay.SetOutputSizePixel( aDisplaySize );
Point aPt;
aPt.Y() = aDiffSize.Height();
// move other controls
aBtnFirst.Hide();
aBtnReverse.Hide();
aBtnStop.Hide();
aBtnPlay.Hide();
aBtnLast.Hide();
aTimeField.Hide();
aLbLoopCount.Hide();
aNumFldBitmap.Hide();
aFtCount.Hide();
aFiCount.Hide();
aBtnGetOneObject.Hide();
aBtnGetAllObjects.Hide();
aBtnRemoveBitmap.Hide();
aBtnRemoveAll.Hide();
aGrpBitmap.Hide();
aRbtGroup.Hide();
aRbtBitmap.Hide();
aFtAdjustment.Hide();
aLbAdjustment.Hide();
aBtnCreateGroup.Hide();
aGrpAnimation.Hide();
aBtnFirst.SetPosPixel( aBtnFirst.GetPosPixel() + aPt );
aBtnReverse.SetPosPixel( aBtnReverse.GetPosPixel() + aPt );
aBtnStop.SetPosPixel( aBtnStop.GetPosPixel() + aPt );
aBtnPlay.SetPosPixel( aBtnPlay.GetPosPixel() + aPt );
aBtnLast.SetPosPixel( aBtnLast.GetPosPixel() + aPt );
aNumFldBitmap.SetPosPixel( aNumFldBitmap.GetPosPixel() + aPt );
aTimeField.SetPosPixel( aTimeField.GetPosPixel() + aPt );
aLbLoopCount.SetPosPixel( aLbLoopCount.GetPosPixel() + aPt );
aFtCount.SetPosPixel( aFtCount.GetPosPixel() + aPt );
aFiCount.SetPosPixel( aFiCount.GetPosPixel() + aPt );
aRbtGroup.SetPosPixel( aRbtGroup.GetPosPixel() + aPt );
aRbtBitmap.SetPosPixel( aRbtBitmap.GetPosPixel() + aPt );
aFtAdjustment.SetPosPixel( aFtAdjustment.GetPosPixel() + aPt );
aLbAdjustment.SetPosPixel( aLbAdjustment.GetPosPixel() + aPt );
aBtnGetOneObject.SetPosPixel( aBtnGetOneObject.GetPosPixel() + aPt );
aBtnGetAllObjects.SetPosPixel( aBtnGetAllObjects.GetPosPixel() + aPt );
aBtnRemoveBitmap.SetPosPixel( aBtnRemoveBitmap.GetPosPixel() + aPt );
aBtnRemoveAll.SetPosPixel( aBtnRemoveAll.GetPosPixel() + aPt );
aBtnCreateGroup.SetPosPixel( aBtnCreateGroup.GetPosPixel() + aPt );
aGrpBitmap.SetPosPixel( aGrpBitmap.GetPosPixel() + aPt );
aGrpAnimation.SetPosPixel( aGrpAnimation.GetPosPixel() + aPt );
// calculate and set zoom for DisplayWin
Fraction aFrac( GetScale() );
aCtlDisplay.SetScale( aFrac );
aBtnFirst.Show();
aBtnReverse.Show();
aBtnStop.Show();
aBtnPlay.Show();
aBtnLast.Show();
aNumFldBitmap.Show();
aTimeField.Show();
aLbLoopCount.Show();
aFtCount.Show();
aFiCount.Show();
aFtAdjustment.Show();
aLbAdjustment.Show();
aBtnGetOneObject.Show();
aBtnGetAllObjects.Show();
aBtnRemoveBitmap.Show();
aBtnRemoveAll.Show();
aGrpBitmap.Show();
aRbtGroup.Show();
aRbtBitmap.Show();
aFtAdjustment.Show();
aLbAdjustment.Show();
aBtnCreateGroup.Show();
aGrpAnimation.Show();
aSize = aWinSize;
}
SfxDockingWindow::Resize();
Fraction aFrac(GetScale());
m_pCtlDisplay->SetScale(aFrac);
}
bool AnimationWindow::Close()
......@@ -844,9 +749,9 @@ void AnimationWindow::AddObj (::sd::View& rView )
long nLoopCount = aAnimation.GetLoopCount();
if( !nLoopCount ) // endless
aLbLoopCount.SelectEntryPos( aLbLoopCount.GetEntryCount() - 1);
m_pLbLoopCount->SelectEntryPos( m_pLbLoopCount->GetEntryCount() - 1);
else
aLbLoopCount.SelectEntry(OUString::number( nLoopCount ) );
m_pLbLoopCount->SelectEntry(OUString::number( nLoopCount ) );
}
long nTime = rAnimBmp.nWait;
......@@ -860,8 +765,8 @@ void AnimationWindow::AddObj (::sd::View& rView )
++m_nCurrentFrame;
}
// if a animated GIF is taken, only such one can be created
aRbtBitmap.Check();
aRbtGroup.Enable( false );
m_pRbtBitmap->Check();
m_pRbtGroup->Enable( false );
bAnimObj = true;
}
}
......@@ -878,7 +783,7 @@ void AnimationWindow::AddObj (::sd::View& rView )
SdrExchangeView::GetObjGraphic(
pSnapShot->GetModel(), pSnapShot).GetBitmapEx() );
::tools::Time* pTime = new ::tools::Time( aTimeField.GetTime() );
::tools::Time* pTime = new ::tools::Time( m_pTimeField->GetTime() );
size_t nIndex = m_nCurrentFrame + 1;
m_FrameList.insert(
m_FrameList.begin() + nIndex,
......@@ -899,7 +804,7 @@ void AnimationWindow::AddObj (::sd::View& rView )
BitmapEx *const pBitmapEx =
new BitmapEx(rView.GetAllMarkedGraphic().GetBitmapEx());
::tools::Time* pTime = new ::tools::Time( aTimeField.GetTime() );
::tools::Time* pTime = new ::tools::Time( m_pTimeField->GetTime() );
size_t nIndex = m_nCurrentFrame + 1;
m_FrameList.insert(
......@@ -931,7 +836,7 @@ void AnimationWindow::AddObj (::sd::View& rView )
SdrExchangeView::GetObjGraphic(
pObject->GetModel(), pObject).GetBitmapEx() );
::tools::Time* pTime = new ::tools::Time( aTimeField.GetTime() );
::tools::Time* pTime = new ::tools::Time( m_pTimeField->GetTime() );
size_t nIndex = m_nCurrentFrame + 1;
m_FrameList.insert(
......@@ -967,12 +872,12 @@ void AnimationWindow::AddObj (::sd::View& rView )
// there, we can create a animation group
if (nCloneCount == 0 && !m_FrameList.empty())
{
aBtnCreateGroup.Enable();
m_pBtnCreateGroup->Enable();
}
// calculate and set zoom for DisplayWin
Fraction aFrac( GetScale() );
aCtlDisplay.SetScale( aFrac );
m_pCtlDisplay->SetScale(aFrac);
UpdateControl();
}
......@@ -991,7 +896,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 = (BitmapAdjustment) aLbAdjustment.GetSelectEntryPos();
BitmapAdjustment eBA = (BitmapAdjustment) m_pLbAdjustment->GetSelectEntryPos();
// find biggest bitmap
for (size_t i = 0; i < nCount; ++i)
......@@ -1015,7 +920,7 @@ void AnimationWindow::CreateAnimObj (::sd::View& rView )
SdrPageView* pPV = rView.GetSdrPageView();
if( aRbtBitmap.IsChecked() )
if( m_pRbtBitmap->IsChecked() )
{
// create bitmap group (Animated GIF)
Animation aAnimation;
......@@ -1078,10 +983,10 @@ void AnimationWindow::CreateAnimObj (::sd::View& rView )
// find LoopCount (number of passes)
AnimationBitmap aAnimBmp;
long nLoopCount = 0L;
sal_Int32 nPos = aLbLoopCount.GetSelectEntryPos();
sal_Int32 nPos = m_pLbLoopCount->GetSelectEntryPos();
if( nPos != LISTBOX_ENTRY_NOTFOUND && nPos != aLbLoopCount.GetEntryCount() - 1 ) // endless
nLoopCount = (long) aLbLoopCount.GetSelectEntry().toInt32();
if( nPos != LISTBOX_ENTRY_NOTFOUND && nPos != m_pLbLoopCount->GetEntryCount() - 1 ) // endless
nLoopCount = (long) m_pLbLoopCount->GetSelectEntry().toInt32();
aAnimBmp.aBmpEx = *pBitmapEx;
aAnimBmp.aPosPix = aPt;
......@@ -1235,8 +1140,8 @@ void AnimationControllerItem::StateChanged( sal_uInt16 nSId,
if (pStateItem)
{
sal_uInt16 nState = pStateItem->GetValue();
pAnimationWin->aBtnGetOneObject.Enable( nState & 1 );
pAnimationWin->aBtnGetAllObjects.Enable( nState & 2 );
pAnimationWin->m_pBtnGetOneObject->Enable( nState & 1 );
pAnimationWin->m_pBtnGetAllObjects->Enable( nState & 2 );
}
}
}
......
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#include "res_bmp.hrc"
#include "app.hrc"
#include "animobjs.hrc"
#include "helpids.h"
#define MIN_BUTTON_WIDTH 12
#define MIN_BUTTON_HEIGHT 12
#define MIN_BUTTON_SIZE MAP_APPFONT( MIN_BUTTON_WIDTH, MIN_BUTTON_HEIGHT );
DockingWindow FLT_WIN_ANIMATION
{
HelpID = CMD_SID_ANIMATION_OBJECTS ;
Border = TRUE ;
Hide = TRUE ;
SVLook = TRUE ;
Sizeable = TRUE ;
Moveable = TRUE ;
Closeable = TRUE ;
Zoomable = TRUE ;
Dockable = TRUE ;
EnableResizing = TRUE ;
Size = MAP_APPFONT ( 159 , 236 ) ;
Text [ en-US ] = "Animation" ;
Control CTL_DISPLAY
{
Border = TRUE ;
Pos = MAP_APPFONT ( 6 , 6 ) ;
Size = MAP_APPFONT ( 147 , 87 ) ;
TabStop = TRUE ;
};
ImageButton BTN_FIRST
{
HelpID = "sd:ImageButton:FLT_WIN_ANIMATION:BTN_FIRST";
Pos = MAP_APPFONT ( 6 , 100 ) ;
Size = MIN_BUTTON_SIZE
Symbol = IMAGEBUTTON_WINDSTART ;
QuickHelpText [ en-US ] = "First Image" ;
};
ImageButton BTN_REVERSE
{
HelpID = "sd:ImageButton:FLT_WIN_ANIMATION:BTN_REVERSE";
Pos = MAP_APPFONT ( 6 + MIN_BUTTON_WIDTH , 100 ) ;
Size = MIN_BUTTON_SIZE
Symbol = IMAGEBUTTON_REVERSEPLAY ;
QuickHelpText [ en-US ] = "Backwards" ;
};
ImageButton BTN_STOP
{
HelpID = "sd:ImageButton:FLT_WIN_ANIMATION:BTN_STOP";
Pos = MAP_APPFONT ( 6 + MIN_BUTTON_WIDTH * 2 , 100 ) ;
Size = MIN_BUTTON_SIZE
Symbol = IMAGEBUTTON_STOP ;
Disable = TRUE ;
QuickHelpText [ en-US ] = "Stop" ;
};
ImageButton BTN_PLAY
{
HelpID = "sd:ImageButton:FLT_WIN_ANIMATION:BTN_PLAY";
Pos = MAP_APPFONT ( 6 + MIN_BUTTON_WIDTH * 3 , 100 ) ;
Size = MIN_BUTTON_SIZE
Symbol = IMAGEBUTTON_PLAY ;
QuickHelpText [ en-US ] = "Play" ;
};
ImageButton BTN_LAST
{
HelpID = "sd:ImageButton:FLT_WIN_ANIMATION:BTN_LAST";
Pos = MAP_APPFONT ( 6 + MIN_BUTTON_WIDTH * 4 , 100 ) ;
Size = MIN_BUTTON_SIZE
Symbol = IMAGEBUTTON_WINDEND ;
QuickHelpText [ en-US ] = "Last Image" ;
};
NumericField NUM_FLD_BITMAP
{
HelpID = "sd:NumericField:FLT_WIN_ANIMATION:NUM_FLD_BITMAP";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 + 3 + MIN_BUTTON_WIDTH * 5 , 100 ) ;
Size = MAP_APPFONT ( MIN_BUTTON_WIDTH * 2 , 12 ) ;
TabStop = TRUE ;
Repeat = TRUE ;
Spin = TRUE ;
Minimum = 1 ;
Maximum = 999 ;
StrictFormat = TRUE ;
First = 1 ;
Last = 999 ;
SpinSize = 1 ;
QuickHelpText [ en-US ] = "Image Number" ;
};
TimeField TIME_FIELD
{
HelpID = "sd:TimeField:FLT_WIN_ANIMATION:TIME_FIELD";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 + 6 + MIN_BUTTON_WIDTH * 7 , 100 ) ;
Size = MAP_APPFONT ( MIN_BUTTON_WIDTH * 2 + 3 , 12 ) ;
TabStop = TRUE ;
Repeat = TRUE ;
Spin = TRUE ;
Maximum = Time
{
Second = 59 ;
Sec100 = 99 ;
};
Duration = TRUE ;
StrictFormat = TRUE ;
Last = Time
{
Second = 59 ;
Sec100 = 99 ;
};
QuickHelpText [ en-US ] = "Duration" ;
};
ListBox LB_LOOP_COUNT
{
HelpID = "sd:ListBox:FLT_WIN_ANIMATION:LB_LOOP_COUNT";
Border = TRUE ;
Pos = MAP_APPFONT ( 6 + 12 + MIN_BUTTON_WIDTH * 9 , 100 ) ;
Size = MAP_APPFONT ( MIN_BUTTON_WIDTH * 2 + 3 , 100 ) ;
TabStop = TRUE ;
DropDown = TRUE ;
StringList [ en-US ] =
{
< "1" ; > ;
< "2" ; > ;
< "3" ; > ;
< "4" ; > ;
< "5" ; > ;
< "6" ; > ;
< "7" ; > ;
< "8" ; > ;
< "9" ; > ;
< "10" ; > ;
< "12" ; > ;
< "15" ; > ;
< "20" ; > ;
< "25" ; > ;
< "50" ; > ;
< "100" ; > ;
< "500" ; > ;
< "1000" ; > ;
< "Max." ; > ;
};
QuickHelpText [ en-US ] = "Loop Count" ;
};
ImageButton BTN_GET_ONE_OBJECT
{
HelpID = "sd:ImageButton:FLT_WIN_ANIMATION:BTN_GET_ONE_OBJECT";
Pos = MAP_APPFONT ( 12 , 132 ) ;
Size = MAP_APPFONT ( 16 , 14 ) ;
ButtonImage = Image
{
ImageBitmap = Bitmap
{
File = "get1obj.bmp" ;
};
MaskColor = IMAGE_MASK_STDCOLOR;
};
TabStop = TRUE ;
QuickHelpText [ en-US ] = "Apply Object" ;
};
ImageButton BTN_GET_ALL_OBJECTS
{
HelpID = "sd:ImageButton:FLT_WIN_ANIMATION:BTN_GET_ALL_OBJECTS";
Pos = MAP_APPFONT ( 31 , 132 ) ;
Size = MAP_APPFONT ( 16 , 14 ) ;
ButtonImage = Image
{
ImageBitmap = Bitmap
{
File = "getallob.bmp" ;
};
MaskColor = IMAGE_MASK_STDCOLOR;
};
TabStop = TRUE ;
QuickHelpText [ en-US ] = "Apply Objects Individually" ;
};
ImageButton BTN_REMOVE_BITMAP
{
HelpID = "sd:ImageButton:FLT_WIN_ANIMATION:BTN_REMOVE_BITMAP";
Pos = MAP_APPFONT ( 60 , 132 ) ;
Size = MAP_APPFONT ( 16 , 14 ) ;
ButtonImage = Image
{
ImageBitmap = Bitmap
{
File = "del1bmp.bmp" ;
};
MaskColor = IMAGE_MASK_STDCOLOR;
};
TabStop = TRUE ;
QuickHelpText [ en-US ] = "Delete Current Image" ;
};
ImageButton BTN_REMOVE_ALL
{
HelpID = "sd:ImageButton:FLT_WIN_ANIMATION:BTN_REMOVE_ALL";
Pos = MAP_APPFONT ( 79 , 132 ) ;
Size = MAP_APPFONT ( 16 , 14 ) ;
ButtonImage = Image
{
ImageBitmap = Bitmap
{
File = "delall.bmp" ;
};
MaskColor = IMAGE_MASK_STDCOLOR;
};
TabStop = TRUE ;
QuickHelpText [ en-US ] = "Delete All Images" ;
};
FixedText FT_COUNT
{
Pos = MAP_APPFONT ( 106 , 135 ) ;
Size = MAP_APPFONT ( 26 , 10 ) ;
Text [ en-US ] = "Number" ;
};
FixedText FI_COUNT
{
Pos = MAP_APPFONT ( 133 , 135 ) ;
Size = MAP_APPFONT ( 15 , 10 ) ;
DeltaLang [ de ]= < Default ; Default ; Default ; Default ; > ;
DeltaLang [ en-US ] = < 2 ; Default ; Default ; Default ; > ;
Text = "67" ;
};
FixedLine GRP_BITMAP
{
Pos = MAP_APPFONT ( 6 , 120 ) ;
Size = MAP_APPFONT ( 147 , 8 ) ;
Text [ en-US ] = "Image" ;
};
RadioButton RBT_GROUP
{
HelpID = "sd:RadioButton:FLT_WIN_ANIMATION:RBT_GROUP";
Pos = MAP_APPFONT ( 12 , 167 ) ;
Size = MAP_APPFONT ( 140 , 12 ) ;
Text [ en-US ] = "Group object" ;
};
RadioButton RBT_BITMAP
{
HelpID = "sd:RadioButton:FLT_WIN_ANIMATION:RBT_BITMAP";
Pos = MAP_APPFONT ( 12 , 181 ) ;
Size = MAP_APPFONT ( 140 , 12 ) ;
Text [ en-US ] = "Bitmap object" ;
};
FixedText FT_ADJUSTMENT
{
Pos = MAP_APPFONT ( 12 , 198 ) ;
Size = MAP_APPFONT ( 62 , 10 ) ;
DeltaLang [ de ] = < Default ; Default ; Default ; Default ; > ;
DeltaLang [ en-US ] = < -1 ; Default ; -2 ; Default ; > ;
Text [ en-US ] = "Alignment" ;
};
ListBox LB_ADJUSTMENT
{
HelpID = "sd:ListBox:FLT_WIN_ANIMATION:LB_ADJUSTMENT";
Border = TRUE ;
Pos = MAP_APPFONT ( 75 , 196 ) ;
Size = MAP_APPFONT ( 72 , 100 ) ;
DeltaLang [ de ] = < Default ; Default ; Default ; Default ; > ;
DeltaLang [ en-US ] = < -1 ; Default ; Default ; Default ; > ;
TabStop = TRUE ;
DropDown = TRUE ;
StringList [ en-US ] =
{
< "Top Left" ; Default ; > ;
< "Left" ; Default ; > ;
< "Bottom Left" ; Default ; > ;
< "Top" ; Default ; > ;
< "Centered" ; Default ; > ;
< "Bottom" ; Default ; > ;
< "Top Right" ; Default ; > ;
< "Right" ; Default ; > ;
< "Bottom Right" ; Default ; > ;
};
};
PushButton BTN_CREATE_GROUP
{
HelpID = "sd:PushButton:FLT_WIN_ANIMATION:BTN_CREATE_GROUP";
Pos = MAP_APPFONT ( 107 , 216 ) ;
Size = MAP_APPFONT ( 41 , 14 ) ;
TabStop = TRUE ;
Text [ en-US ] = "Create" ;
};
HelpButton BTN_HELP
{
Pos = MAP_APPFONT ( 60 , 216 ) ;
Size = MAP_APPFONT ( 41 , 14 ) ;
TabStop = TRUE ;
};
FixedLine GRP_ANIMATION_GROUP
{
Pos = MAP_APPFONT ( 6 , 155 ) ;
Size = MAP_APPFONT ( 147 , 8 ) ;
Text [ en-US ] = "Animation group" ;
};
String STR_DISPLAY
{
Text [ en-US ] = "Preview";
};
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#define FLT_WIN_ANIMATION 619
#define CTL_DISPLAY 1
#define BTN_FIRST 1
#define BTN_REVERSE 2
#define BTN_STOP 3
#define BTN_PLAY 4
#define BTN_LAST 5
#define BTN_GET_ONE_OBJECT 6
#define BTN_GET_ALL_OBJECTS 7
#define BTN_REMOVE_BITMAP 8
#define BTN_REMOVE_ALL 9
#define BTN_CREATE_GROUP 10
#define BTN_HELP 1
#define NUM_FLD_BITMAP 1
#define TIME_FIELD 1
#define FT_COUNT 1
#define FI_COUNT 2
#define GRP_BITMAP 1
#define RBT_GROUP 1
#define RBT_BITMAP 2
#define FT_ADJUSTMENT 4
#define LB_ADJUSTMENT 2
#define LB_LOOP_COUNT 3
#define GRP_ANIMATION_GROUP 2
#define STR_DISPLAY 1
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -65,7 +65,7 @@ private:
Fraction aScale;
public:
SdDisplay( vcl::Window* pWin, SdResId Id );
SdDisplay(vcl::Window* pWin);
virtual ~SdDisplay();
virtual void Paint( const Rectangle& rRect ) SAL_OVERRIDE;
......@@ -74,6 +74,7 @@ public:
void SetScale( const Fraction& rFrac );
virtual void DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
virtual Size GetOptimalSize() const SAL_OVERRIDE;
};
class AnimationWindow : public SfxDockingWindow
......@@ -82,8 +83,7 @@ class AnimationWindow : public SfxDockingWindow
friend class AnimationControllerItem;
public:
AnimationWindow( SfxBindings* pBindings, SfxChildWindow *pCW,
vcl::Window* pParent, const SdResId& rSdResId );
AnimationWindow(SfxBindings* pBindings, SfxChildWindow *pCW, vcl::Window* pParent);
virtual ~AnimationWindow();
void AddObj( ::sd::View& rView );
......@@ -97,31 +97,26 @@ protected:
virtual void FillInfo( SfxChildWinInfo& ) const SAL_OVERRIDE;
private:
SdDisplay aCtlDisplay;
ImageButton aBtnFirst;
ImageButton aBtnReverse;
ImageButton aBtnStop;
ImageButton aBtnPlay;
ImageButton aBtnLast;
NumericField aNumFldBitmap;
TimeField aTimeField;
ListBox aLbLoopCount;
FixedLine aGrpBitmap;
ImageButton aBtnGetOneObject;
ImageButton aBtnGetAllObjects;
ImageButton aBtnRemoveBitmap;
ImageButton aBtnRemoveAll;
FixedText aFtCount;
FixedInfo aFiCount;
FixedLine aGrpAnimation;
RadioButton aRbtGroup;
RadioButton aRbtBitmap;
FixedText aFtAdjustment;
ListBox aLbAdjustment;
PushButton aBtnCreateGroup;
HelpButton aBtnHelp;
SdDisplay* m_pCtlDisplay;
PushButton* m_pBtnFirst;
PushButton* m_pBtnReverse;
PushButton* m_pBtnStop;
PushButton* m_pBtnPlay;
PushButton* m_pBtnLast;
NumericField* m_pNumFldBitmap;
TimeField* m_pTimeField;
ListBox* m_pLbLoopCount;
PushButton* m_pBtnGetOneObject;
PushButton* m_pBtnGetAllObjects;
PushButton* m_pBtnRemoveBitmap;
PushButton* m_pBtnRemoveAll;
FixedText* m_pFiCount;
RadioButton* m_pRbtGroup;
RadioButton* m_pRbtBitmap;
FixedText* m_pFtAdjustment;
ListBox* m_pLbAdjustment;
PushButton* m_pBtnCreateGroup;
vcl::Window* pWin;
::std::vector< ::std::pair<BitmapEx*, ::tools::Time*> > m_FrameList;
......@@ -129,10 +124,6 @@ private:
size_t m_nCurrentFrame;
SdDrawDocument* pMyDoc;
Size aSize;
Size aFltWinSize;
Size aDisplaySize;
Size aBmpSize;
bool bMovie;
bool bAllObjects;
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.16.1 -->
<interface>
<requires lib="gtk+" version="3.0"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="lower">1</property>
<property name="upper">999</property>
<property name="value">1</property>
<property name="step_increment">1</property>
<property name="page_increment">10</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>
</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>
</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>
</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>
</object>
<object class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-goto-first</property>
</object>
<object class="GtkImage" id="image6">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-media-previous</property>
</object>
<object class="GtkImage" id="image7">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-media-stop</property>
</object>
<object class="GtkImage" id="image8">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-media-next</property>
</object>
<object class="GtkImage" id="image9">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-goto-last</property>
</object>
<object class="GtkWindow" 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">Animation</property>
<property name="type_hint">dock</property>
<child>
<object class="GtkBox" id="box1">
<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>
<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="row_spacing">24</property>
<child>
<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">12</property>
<child>
<object class="GtkBox" id="box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes">Preview</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</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>
<child>
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="column_spacing">12</property>
<child>
<object class="GtkComboBoxText" id="loopcount">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes">Loop Count</property>
<items>
<item translatable="yes">1</item>
<item translatable="yes">2</item>
<item translatable="yes">3</item>
<item translatable="yes">4</item>
<item translatable="yes">5</item>
<item translatable="yes">6</item>
<item translatable="yes">7</item>
<item translatable="yes">8</item>
<item translatable="yes">9</item>
<item translatable="yes">10</item>
<item translatable="yes">12</item>
<item translatable="yes">15</item>
<item translatable="yes">20</item>
<item translatable="yes">25</item>
<item translatable="yes">50</item>
<item translatable="yes">100</item>
<item translatable="yes">500</item>
<item translatable="yes">1000</item>
<item translatable="yes">Max.</item>
</items>
</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="GtkSpinButton" id="duration:hh:mm">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes">Duration</property>
<property name="digits">2</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">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes">Image Number</property>
<property name="text" translatable="yes">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>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkGrid" id="grid9">
<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">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">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">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">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">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>
</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">1</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>
<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="GtkAlignment" id="alignment1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
<object class="GtkGrid" id="grid6">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="row_spacing">6</property>
<child>
<object class="GtkRadioButton" id="group">
<property name="label" translatable="yes">Group object</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">bitmap</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">Bitmap object</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</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>
<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">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">Top Left</item>
<item translatable="yes">Left</item>
<item translatable="yes">Bottom Left</item>
<item translatable="yes">Top</item>
<item translatable="yes">Centered</item>
<item translatable="yes">Bottom</item>
<item translatable="yes">Top Right</item>
<item translatable="yes">Right</item>
<item translatable="yes">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>
</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>
</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">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>
<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="GtkAlignment" id="alignment2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
<object class="GtkGrid" id="grid7">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="column_spacing">24</property>
<child>
<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">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">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">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>
</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">
<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">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="yes">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>
</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="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">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">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>
</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>
</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">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>
</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="GtkButton" id="create">
<property name="label" translatable="yes">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>
</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>
</child>
</object>
</interface>
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