summaryrefslogtreecommitdiff
path: root/svtools
diff options
context:
space:
mode:
Diffstat (limited to 'svtools')
-rw-r--r--svtools/inc/dialogcontrolling.hxx38
-rw-r--r--svtools/source/brwbox/brwbox1.cxx2
-rw-r--r--svtools/source/dialogs/wizdlg.cxx5
-rw-r--r--svtools/source/misc/dialogcontrolling.cxx27
4 files changed, 44 insertions, 28 deletions
diff --git a/svtools/inc/dialogcontrolling.hxx b/svtools/inc/dialogcontrolling.hxx
index 9efb098ee013..edb425f78b00 100644
--- a/svtools/inc/dialogcontrolling.hxx
+++ b/svtools/inc/dialogcontrolling.hxx
@@ -52,7 +52,15 @@ namespace svt
class SVT_DLLPUBLIC SAL_NO_VTABLE IWindowOperator
{
public:
- virtual void operateOn( Window& _rOperateOn ) const = 0;
+ /** called when an event happened which should be reacted to
+
+ @param _rTrigger
+ the event which triggered the call. If the Id of the event is 0, then this is the initial
+ call which is made when ->_rOperateOn is added to the responsibility of the DialogController.
+ @param _rOperateOn
+ the window on which to operate
+ */
+ virtual void operateOn( const VclWindowEvent& _rTrigger, Window& _rOperateOn ) const = 0;
virtual ~IWindowOperator();
};
@@ -61,13 +69,13 @@ namespace svt
//=====================================================================
//= IWindowEventFilter
//=====================================================================
- /** an abstract interface for deciding whether a ->VclSimpleEvent
+ /** an abstract interface for deciding whether a ->VclWindowEvent
is worth paying attention to
*/
class SVT_DLLPUBLIC SAL_NO_VTABLE IWindowEventFilter
{
public:
- virtual bool payAttentionTo( const VclSimpleEvent& _rEvent ) const = 0;
+ virtual bool payAttentionTo( const VclWindowEvent& _rEvent ) const = 0;
virtual ~IWindowEventFilter();
};
@@ -96,7 +104,7 @@ namespace svt
::std::auto_ptr< DialogController_Data > m_pImpl;
public:
- DialogController( Window& _rInstigator, const PWindowEventFilter _pEventFilter, const PWindowOperator _pOperator );
+ DialogController( Window& _rInstigator, const PWindowEventFilter& _pEventFilter, const PWindowOperator& _pOperator );
virtual ~DialogController();
/** adds a window to the list of dependent windows
@@ -117,10 +125,10 @@ namespace svt
private:
void impl_Init();
- void impl_updateAll();
- void impl_update( Window& _rWindow );
+ void impl_updateAll( const VclWindowEvent& _rTriggerEvent );
+ void impl_update( const VclWindowEvent& _rTriggerEvent, Window& _rWindow );
- DECL_LINK( OnWindowEvent, const VclSimpleEvent* );
+ DECL_LINK( OnWindowEvent, const VclWindowEvent* );
private:
DialogController( const DialogController& ); // never implemented
@@ -184,10 +192,9 @@ namespace svt
/** adds a non-standard controller whose functionality is not covered by the other methods
@param _pController
- the controller to add to the manager. Must not be <NULL/>. The manager takes ownership
- of the controller.
+ the controller to add to the manager. Must not be <NULL/>.
*/
- void addController( DialogController* _pController );
+ void addController( const PDialogController& _pController );
private:
ControlDependencyManager( const ControlDependencyManager& ); // never implemented
@@ -224,7 +231,7 @@ namespace svt
{
}
- virtual void operateOn( Window& _rOperateOn ) const
+ virtual void operateOn( const VclWindowEvent& /*_rTrigger*/, Window& _rOperateOn ) const
{
_rOperateOn.Enable( m_rCheckable.IsChecked() );
}
@@ -248,12 +255,11 @@ namespace svt
{
}
- bool payAttentionTo( const VclSimpleEvent& _rEvent ) const
+ bool payAttentionTo( const VclWindowEvent& _rEvent ) const
{
- const VclWindowEvent& rWindowEvent = dynamic_cast< const VclWindowEvent& >( _rEvent );
- if ( ( rWindowEvent.GetWindow() == &m_rWindow )
- && ( ( rWindowEvent.GetId() == VCLEVENT_RADIOBUTTON_TOGGLE )
- || ( rWindowEvent.GetId() == VCLEVENT_CHECKBOX_TOGGLE )
+ if ( ( _rEvent.GetWindow() == &m_rWindow )
+ && ( ( _rEvent.GetId() == VCLEVENT_RADIOBUTTON_TOGGLE )
+ || ( _rEvent.GetId() == VCLEVENT_CHECKBOX_TOGGLE )
)
)
return true;
diff --git a/svtools/source/brwbox/brwbox1.cxx b/svtools/source/brwbox/brwbox1.cxx
index 767283a8e425..4ebed0d70f3f 100644
--- a/svtools/source/brwbox/brwbox1.cxx
+++ b/svtools/source/brwbox/brwbox1.cxx
@@ -538,7 +538,7 @@ void BrowseBox::SetColumnPos( USHORT nColumnId, USHORT nPos )
aScrollArea = Rectangle(Point(aNextRect.Left(),0),
Point(aToRect.Right(),aDataWinSize.Height()));
- pDataWin->Scroll( nScroll, 0, aScrollArea, SCROLL_FLAGS );
+ pDataWin->Scroll( nScroll, 0, aScrollArea );
aToRect.Top() = 0;
aToRect.Bottom() = aScrollArea.Bottom();
Invalidate( aToRect );
diff --git a/svtools/source/dialogs/wizdlg.cxx b/svtools/source/dialogs/wizdlg.cxx
index f0c69a24e4e4..aa0e62046ea6 100644
--- a/svtools/source/dialogs/wizdlg.cxx
+++ b/svtools/source/dialogs/wizdlg.cxx
@@ -303,8 +303,9 @@ void WizardDialog::ImplPosTabPage()
}
else if ( meViewAlign == WINDOWALIGN_LEFT )
{
- nOffX += aViewSize.Width()+WIZARDDIALOG_VIEW_DLGOFFSET_X;
- aDlgSize.Width() -= aViewSize.Width()+WIZARDDIALOG_VIEW_DLGOFFSET_X;
+ long nViewOffset = mbEmptyViewMargin ? 0 : WIZARDDIALOG_VIEW_DLGOFFSET_X;
+ nOffX += aViewSize.Width() + nViewOffset;
+ aDlgSize.Width() -= nOffX;
}
else if ( meViewAlign == WINDOWALIGN_BOTTOM )
aDlgSize.Height() -= aViewSize.Height()+WIZARDDIALOG_VIEW_DLGOFFSET_Y;
diff --git a/svtools/source/misc/dialogcontrolling.cxx b/svtools/source/misc/dialogcontrolling.cxx
index 01f9d4ed0eef..d461e5898227 100644
--- a/svtools/source/misc/dialogcontrolling.cxx
+++ b/svtools/source/misc/dialogcontrolling.cxx
@@ -79,8 +79,8 @@ namespace svt
//= DialogController
//=====================================================================
//---------------------------------------------------------------------
- DialogController::DialogController( Window& _rInstigator, const PWindowEventFilter _pEventFilter,
- const PWindowOperator _pOperator )
+ DialogController::DialogController( Window& _rInstigator, const PWindowEventFilter& _pEventFilter,
+ const PWindowOperator& _pOperator )
:m_pImpl( new DialogController_Data( _rInstigator, _pEventFilter, _pOperator ) )
{
DBG_ASSERT( m_pImpl->pEventFilter.get() && m_pImpl->pOperator.get(),
@@ -108,31 +108,33 @@ namespace svt
void DialogController::addDependentWindow( Window& _rWindow )
{
m_pImpl->aConcernedWindows.push_back( &_rWindow );
- impl_update( _rWindow );
+
+ VclWindowEvent aEvent( &_rWindow, 0, NULL );
+ impl_update( aEvent, _rWindow );
}
//---------------------------------------------------------------------
- IMPL_LINK( DialogController, OnWindowEvent, const VclSimpleEvent*, _pEvent )
+ IMPL_LINK( DialogController, OnWindowEvent, const VclWindowEvent*, _pEvent )
{
if ( m_pImpl->pEventFilter->payAttentionTo( *_pEvent ) )
- impl_updateAll();
+ impl_updateAll( *_pEvent );
return 0L;
}
//---------------------------------------------------------------------
- void DialogController::impl_updateAll()
+ void DialogController::impl_updateAll( const VclWindowEvent& _rTriggerEvent )
{
for ( ::std::vector< Window* >::iterator loop = m_pImpl->aConcernedWindows.begin();
loop != m_pImpl->aConcernedWindows.end();
++loop
)
- impl_update( *(*loop) );
+ impl_update( _rTriggerEvent, *(*loop) );
}
//---------------------------------------------------------------------
- void DialogController::impl_update( Window& _rWindow )
+ void DialogController::impl_update( const VclWindowEvent& _rTriggerEvent, Window& _rWindow )
{
- m_pImpl->pOperator->operateOn( _rWindow );
+ m_pImpl->pOperator->operateOn( _rTriggerEvent, _rWindow );
}
//=====================================================================
@@ -177,6 +179,13 @@ namespace svt
}
//---------------------------------------------------------------------
+ void ControlDependencyManager::addController( const PDialogController& _pController )
+ {
+ OSL_ENSURE( _pController.get() != NULL, "ControlDependencyManager::addController: invalid controller, this will crash, sooner or later!" );
+ m_pImpl->aControllers.push_back( _pController );
+ }
+
+ //---------------------------------------------------------------------
void ControlDependencyManager::enableOnRadioCheck( RadioButton& _rRadio, Window& _rDependentWindow )
{
PDialogController pController( new RadioDependentEnabler( _rRadio ) );