[Libreoffice-commits] .: 2 commits - sc/source
David Tardon
dtardon at kemper.freedesktop.org
Thu Jan 12 23:27:13 PST 2012
sc/source/ui/inc/anyrefdg.hxx | 23 +++++++---
sc/source/ui/miscdlgs/anyrefdg.cxx | 84 ++++++++++++++-----------------------
2 files changed, 49 insertions(+), 58 deletions(-)
New commits:
commit df97997452b443f184c07c8cb1eedaaa0621f05f
Author: David Tardon <dtardon at redhat.com>
Date: Fri Jan 13 07:53:08 2012 +0100
refactor slightly to avoid link problems with gcc 4.7
diff --git a/sc/source/ui/inc/anyrefdg.hxx b/sc/source/ui/inc/anyrefdg.hxx
index 3dd531b..383f6b3 100644
--- a/sc/source/ui/inc/anyrefdg.hxx
+++ b/sc/source/ui/inc/anyrefdg.hxx
@@ -121,7 +121,6 @@ class SC_DLLPUBLIC ScRefHandler : //public SfxModelessDialog,
public:
operator Window *(){ return &m_rWindow; }
Window * operator ->() { return static_cast<Window *>(*this); }
- template<class,bool> friend class ScRefHdlrImplBase;
friend class formula::RefButton;
friend class formula::RefEdit;
@@ -152,6 +151,9 @@ protected:
bool ParseWithNames( ScRangeList& rRanges, const String& rStr, ScDocument* pDoc );
+ void preNotify(const NotifyEvent& rEvent, const bool bBindRef);
+ void stateChanged(const StateChangedType nStateChange, const bool bBindRef);
+
public:
ScRefHandler( Window &rWindow, SfxBindings* pB/*, SfxChildWindow* pCW,
Window* pParent, sal_uInt16 nResId*/, bool bBindRef );
@@ -222,6 +224,20 @@ ScRefHdlrImplBase<TWindow,bBindRef>::ScRefHdlrImplBase( TParentWindow* pParent,
template<class TWindow, bool bBindRef >
ScRefHdlrImplBase<TWindow,bBindRef>::~ScRefHdlrImplBase(){}
+template<class TWindow, bool bBindRef>
+long ScRefHdlrImplBase<TWindow, bBindRef>::PreNotify( NotifyEvent& rNEvt )
+{
+ ScRefHandler::preNotify( rNEvt, bBindRef );
+ return TWindow::PreNotify( rNEvt );
+}
+
+template<class TWindow, bool bBindRef>
+void ScRefHdlrImplBase<TWindow, bBindRef>::StateChanged( StateChangedType nStateChange )
+{
+ TWindow::StateChanged( nStateChange );
+ ScRefHandler::stateChanged( nStateChange, bBindRef );
+}
+
//============================================================================
template<class TDerived, class TBase, bool bBindRef = true>
struct ScRefHdlrImpl: ScRefHdlrImplBase<TBase, bBindRef >
@@ -257,11 +273,6 @@ inline bool ScRefHandler::CanInputDone( sal_Bool bForced )
return m_aHelper.CanInputDone( bForced );
}
-template <> SC_DLLPUBLIC void ScRefHdlrImplBase<SfxModelessDialog,true>::StateChanged( StateChangedType nStateChange );
-template <> SC_DLLPUBLIC long ScRefHdlrImplBase<SfxModelessDialog,true>::PreNotify( NotifyEvent& rNEvt );
-template <> SC_DLLPUBLIC void ScRefHdlrImplBase<SfxTabDialog,false>::StateChanged( StateChangedType nStateChange );
-template <> SC_DLLPUBLIC long ScRefHdlrImplBase<SfxTabDialog,false>::PreNotify( NotifyEvent& rNEvt );
-
#endif // SC_ANYREFDG_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/miscdlgs/anyrefdg.cxx b/sc/source/ui/miscdlgs/anyrefdg.cxx
index 91e3858..b0a4ad6 100644
--- a/sc/source/ui/miscdlgs/anyrefdg.cxx
+++ b/sc/source/ui/miscdlgs/anyrefdg.cxx
@@ -865,54 +865,38 @@ void ScRefHandler::ToggleCollapsed( formula::RefEdit* pEdit, formula::RefButton*
m_aHelper.ToggleCollapsed( pEdit, pButton );
}
-#if defined( _MSC_VER )
-#define INTRODUCE_TEMPLATE
-#else
-#define INTRODUCE_TEMPLATE template <>
-#endif
-
-#define IMPL_TWINDOW_PRENOTIFY( TWindow,bBindRef ) \
-INTRODUCE_TEMPLATE long ScRefHdlrImplBase<TWindow,bBindRef>::PreNotify( NotifyEvent& rNEvt )\
-{\
- if( bBindRef || m_bInRefMode )\
- {\
- sal_uInt16 nSwitch=rNEvt.GetType();\
- if(nSwitch==EVENT_GETFOCUS)\
- {\
- pActiveWin=rNEvt.GetWindow();\
- }\
- }\
- return TWindow::PreNotify(rNEvt);\
-}
-
-#define IMPL_TWINDOW_STATECHANGED( TWindow,bBindRef ) \
-INTRODUCE_TEMPLATE void ScRefHdlrImplBase<TWindow,bBindRef>::StateChanged( StateChangedType nStateChange )\
-{\
- TWindow::StateChanged( nStateChange );\
-\
- if( !bBindRef && !m_bInRefMode ) return;\
- \
- if(nStateChange == STATE_CHANGE_VISIBLE)\
- {\
- if(m_rWindow.IsVisible())\
- {\
- m_aHelper.enableInput( false );\
- m_aHelper.EnableSpreadsheets();\
- m_aHelper.SetDispatcherLock( sal_True );\
- aTimer.Start();\
- }\
- else\
- {\
- m_aHelper.enableInput( sal_True );\
- m_aHelper.SetDispatcherLock( false ); /*//! here and in DoClose ?*/\
- }\
- }\
-}
-
-IMPL_TWINDOW_PRENOTIFY( SfxModelessDialog, true )
-IMPL_TWINDOW_PRENOTIFY( SfxTabDialog, false )
-IMPL_TWINDOW_STATECHANGED( SfxModelessDialog, true )
-IMPL_TWINDOW_STATECHANGED( SfxTabDialog, false )
+void ScRefHandler::preNotify(const NotifyEvent& rNEvt, const bool bBindRef)
+{
+ if( bBindRef || m_bInRefMode )
+ {
+ sal_uInt16 nSwitch=rNEvt.GetType();
+ if(nSwitch==EVENT_GETFOCUS)
+ {
+ pActiveWin=rNEvt.GetWindow();
+ }
+ }
+}
+
+void ScRefHandler::stateChanged(const StateChangedType nStateChange, const bool bBindRef)
+{
+ if( !bBindRef && !m_bInRefMode ) return;
+
+ if(nStateChange == STATE_CHANGE_VISIBLE)
+ {
+ if(m_rWindow.IsVisible())
+ {
+ m_aHelper.enableInput( false );
+ m_aHelper.EnableSpreadsheets();
+ m_aHelper.SetDispatcherLock( sal_True );
+ aTimer.Start();
+ }
+ else
+ {
+ m_aHelper.enableInput( sal_True );
+ m_aHelper.SetDispatcherLock( false ); /*//! here and in DoClose ?*/
+ }
+ }
+}
IMPL_LINK( ScRefHandler, UpdateFocusHdl, Timer*, EMPTYARG )
{
commit bcadf38c77dd9e93fe71132260452ab0c1d4c7ab
Author: David Tardon <dtardon at redhat.com>
Date: Thu Jan 12 13:25:29 2012 +0100
ditch unused define
diff --git a/sc/source/ui/miscdlgs/anyrefdg.cxx b/sc/source/ui/miscdlgs/anyrefdg.cxx
index 7e77de1..91e3858 100644
--- a/sc/source/ui/miscdlgs/anyrefdg.cxx
+++ b/sc/source/ui/miscdlgs/anyrefdg.cxx
@@ -42,11 +42,7 @@
#include <sfx2/bindings.hxx>
#include <sfx2/dispatch.hxx>
-
-#define ANYREFDG_CXX
#include "anyrefdg.hxx"
-#undef ANYREFDG_CXX
-
#include "sc.hrc"
#include "inputhdl.hxx"
#include "scmod.hxx"
More information about the Libreoffice-commits
mailing list