Kaydet (Commit) 71d8cfc1 authored tarafından Noel Grandin's avatar Noel Grandin

convert Link<> to typed, and introduce LinkParamNone

as a marker type for unused Link#Call(T) param

Change-Id: Ife9149052a52b27fefd4f810309a5004a0f1771b
üst 99d13c79
...@@ -146,6 +146,10 @@ private: ...@@ -146,6 +146,10 @@ private:
void * instance_; void * instance_;
}; };
// nondefined class used to indicate that the Call() parameter is not in use.
class LinkParamNone;
namespace tools { namespace detail { namespace tools { namespace detail {
template<typename Arg, typename Ret> template<typename Arg, typename Ret>
......
...@@ -29,7 +29,7 @@ class ImplListBox; ...@@ -29,7 +29,7 @@ class ImplListBox;
class ImplListBoxFloatingWindow; class ImplListBoxFloatingWindow;
class ImplBtn; class ImplBtn;
class ImplWin; class ImplWin;
class ImplListBoxWindow;
// - ListBox - // - ListBox -
...@@ -55,14 +55,14 @@ private: ...@@ -55,14 +55,14 @@ private:
private: private:
SAL_DLLPRIVATE void ImplInitListBoxData(); SAL_DLLPRIVATE void ImplInitListBoxData();
DECL_DLLPRIVATE_LINK( ImplSelectHdl, void* ); DECL_DLLPRIVATE_LINK_TYPED( ImplSelectHdl, LinkParamNone*, void );
DECL_DLLPRIVATE_LINK( ImplScrollHdl, void* ); DECL_DLLPRIVATE_LINK_TYPED( ImplScrollHdl, ImplListBox*, void );
DECL_DLLPRIVATE_LINK( ImplCancelHdl, void* ); DECL_DLLPRIVATE_LINK_TYPED( ImplCancelHdl, LinkParamNone*, void );
DECL_DLLPRIVATE_LINK( ImplDoubleClickHdl, void* ); DECL_DLLPRIVATE_LINK_TYPED( ImplDoubleClickHdl, ImplListBoxWindow*, void );
DECL_DLLPRIVATE_LINK_TYPED( ImplPopupModeEndHdl, FloatingWindow*, void ); DECL_DLLPRIVATE_LINK_TYPED( ImplPopupModeEndHdl, FloatingWindow*, void );
DECL_DLLPRIVATE_LINK_TYPED( ImplSelectionChangedHdl, sal_Int32, void ); DECL_DLLPRIVATE_LINK_TYPED( ImplSelectionChangedHdl, sal_Int32, void );
DECL_DLLPRIVATE_LINK( ImplFocusHdl, void* ); DECL_DLLPRIVATE_LINK_TYPED( ImplFocusHdl, sal_Int32, void );
DECL_DLLPRIVATE_LINK( ImplListItemSelectHdl, void* ); DECL_DLLPRIVATE_LINK_TYPED( ImplListItemSelectHdl, LinkParamNone*, void );
SAL_DLLPRIVATE void ImplClickButtonHandler( Control* ); SAL_DLLPRIVATE void ImplClickButtonHandler( Control* );
SAL_DLLPRIVATE void ImplUserDrawHandler( UserDrawEvent* ); SAL_DLLPRIVATE void ImplUserDrawHandler( UserDrawEvent* );
......
...@@ -229,13 +229,13 @@ private: ...@@ -229,13 +229,13 @@ private:
bool mbCenter : 1; ///< center Text output bool mbCenter : 1; ///< center Text output
bool mbEdgeBlending : 1; bool mbEdgeBlending : 1;
Link<> maScrollHdl; Link<ImplListBoxWindow*,void> maScrollHdl;
Link<> maSelectHdl; Link<LinkParamNone*,void> maSelectHdl;
Link<> maCancelHdl; Link<LinkParamNone*,void> maCancelHdl;
Link<> maDoubleClickHdl; Link<ImplListBoxWindow*,void> maDoubleClickHdl;
Link<> maMRUChangedHdl; Link<LinkParamNone*,void> maMRUChangedHdl;
Link<> maFocusHdl; Link<sal_Int32,void> maFocusHdl;
Link<> maListItemSelectHdl; Link<LinkParamNone*,void> maListItemSelectHdl;
vcl::QuickSelectionEngine maQuickSelectionEngine; vcl::QuickSelectionEngine maQuickSelectionEngine;
...@@ -332,21 +332,21 @@ public: ...@@ -332,21 +332,21 @@ public:
long GetEntryHeight() const { return mnMaxHeight; } long GetEntryHeight() const { return mnMaxHeight; }
long GetMaxEntryWidth() const { return mnMaxWidth; } long GetMaxEntryWidth() const { return mnMaxWidth; }
void SetScrollHdl( const Link<>& rLink ) { maScrollHdl = rLink; } void SetScrollHdl( const Link<ImplListBoxWindow*,void>& rLink ) { maScrollHdl = rLink; }
void SetSelectHdl( const Link<>& rLink ) { maSelectHdl = rLink; } void SetSelectHdl( const Link<LinkParamNone*,void>& rLink ) { maSelectHdl = rLink; }
const Link<>& GetSelectHdl() const { return maSelectHdl; } const Link<LinkParamNone*,void>& GetSelectHdl() const { return maSelectHdl; }
void SetCancelHdl( const Link<>& rLink ) { maCancelHdl = rLink; } void SetCancelHdl( const Link<LinkParamNone*,void>& rLink ) { maCancelHdl = rLink; }
const Link<>& GetCancelHdl() const { return maCancelHdl; } const Link<LinkParamNone*,void>& GetCancelHdl() const { return maCancelHdl; }
void SetDoubleClickHdl( const Link<>& rLink ) { maDoubleClickHdl = rLink; } void SetDoubleClickHdl( const Link<ImplListBoxWindow*,void>& rLink ) { maDoubleClickHdl = rLink; }
const Link<>& GetDoubleClickHdl() const { return maDoubleClickHdl; } const Link<ImplListBoxWindow*,void>& GetDoubleClickHdl() const { return maDoubleClickHdl; }
void SetMRUChangedHdl( const Link<>& rLink ) { maMRUChangedHdl = rLink; } void SetMRUChangedHdl( const Link<LinkParamNone*,void>& rLink ) { maMRUChangedHdl = rLink; }
void SetFocusHdl( const Link<>& rLink ) { maFocusHdl = rLink ; } void SetFocusHdl( const Link<sal_Int32,void>& rLink ) { maFocusHdl = rLink ; }
const Link<>& GetFocusHdl() const { return maFocusHdl; } const Link<sal_Int32,void>& GetFocusHdl() const { return maFocusHdl; }
boost::signals2::signal< void ( UserDrawEvent* ) > userDrawSignal; boost::signals2::signal< void ( UserDrawEvent* ) > userDrawSignal;
void SetListItemSelectHdl( const Link<>& rLink ) { maListItemSelectHdl = rLink ; } void SetListItemSelectHdl( const Link<LinkParamNone*,void>& rLink ) { maListItemSelectHdl = rLink ; }
const Link<>& GetListItemSelectHdl() const { return maListItemSelectHdl; } const Link<LinkParamNone*,void>& GetListItemSelectHdl() const { return maListItemSelectHdl; }
bool IsSelectionChanged() const { return mbSelectionChanged; } bool IsSelectionChanged() const { return mbSelectionChanged; }
sal_uInt16 GetSelectModifier() const { return mnSelectModifier; } sal_uInt16 GetSelectModifier() const { return mnSelectModifier; }
...@@ -389,7 +389,7 @@ private: ...@@ -389,7 +389,7 @@ private:
bool mbAutoHScroll : 1; // AutoHScroll an oder aus bool mbAutoHScroll : 1; // AutoHScroll an oder aus
bool mbEdgeBlending : 1; bool mbEdgeBlending : 1;
Link<> maScrollHdl; // because it is needed by ImplListBoxWindow itself Link<ImplListBox*,void> maScrollHdl; // because it is needed by ImplListBoxWindow itself
::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > mxDNDListenerContainer; ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > mxDNDListenerContainer;
protected: protected:
...@@ -404,8 +404,8 @@ protected: ...@@ -404,8 +404,8 @@ protected:
void ImplInitScrollBars(); void ImplInitScrollBars();
DECL_LINK_TYPED( ScrollBarHdl, ScrollBar*, void ); DECL_LINK_TYPED( ScrollBarHdl, ScrollBar*, void );
DECL_LINK( LBWindowScrolled, void* ); DECL_LINK_TYPED( LBWindowScrolled, ImplListBoxWindow*, void );
DECL_LINK( MRUChanged, void* ); DECL_LINK_TYPED( MRUChanged, LinkParamNone*, void );
public: public:
ImplListBox( vcl::Window* pParent, WinBits nWinStyle ); ImplListBox( vcl::Window* pParent, WinBits nWinStyle );
...@@ -465,15 +465,15 @@ public: ...@@ -465,15 +465,15 @@ public:
long GetEntryHeight() const { return maLBWindow->GetEntryHeight(); } long GetEntryHeight() const { return maLBWindow->GetEntryHeight(); }
long GetMaxEntryWidth() const { return maLBWindow->GetMaxEntryWidth(); } long GetMaxEntryWidth() const { return maLBWindow->GetMaxEntryWidth(); }
void SetScrollHdl( const Link<>& rLink ) { maScrollHdl = rLink; } void SetScrollHdl( const Link<ImplListBox*,void>& rLink ) { maScrollHdl = rLink; }
void SetSelectHdl( const Link<>& rLink ) { maLBWindow->SetSelectHdl( rLink ); } void SetSelectHdl( const Link<LinkParamNone*,void>& rLink ) { maLBWindow->SetSelectHdl( rLink ); }
void SetCancelHdl( const Link<>& rLink ) { maLBWindow->SetCancelHdl( rLink ); } void SetCancelHdl( const Link<LinkParamNone*,void>& rLink ) { maLBWindow->SetCancelHdl( rLink ); }
void SetDoubleClickHdl( const Link<>& rLink ) { maLBWindow->SetDoubleClickHdl( rLink ); } void SetDoubleClickHdl( const Link<ImplListBoxWindow*,void>& rLink ) { maLBWindow->SetDoubleClickHdl( rLink ); }
boost::signals2::signal< void ( UserDrawEvent* ) > userDrawSignal; boost::signals2::signal< void ( UserDrawEvent* ) > userDrawSignal;
void SetFocusHdl( const Link<>& rLink ) { maLBWindow->SetFocusHdl( rLink ); } void SetFocusHdl( const Link<sal_Int32,void>& rLink ) { maLBWindow->SetFocusHdl( rLink ); }
void SetListItemSelectHdl( const Link<>& rLink ) { maLBWindow->SetListItemSelectHdl( rLink ); } void SetListItemSelectHdl( const Link<LinkParamNone*,void>& rLink ) { maLBWindow->SetListItemSelectHdl( rLink ); }
void SetSelectionChangedHdl( const Link<sal_Int32,void>& rLnk ) { maLBWindow->GetEntryList()->SetSelectionChangedHdl( rLnk ); } void SetSelectionChangedHdl( const Link<sal_Int32,void>& rLnk ) { maLBWindow->GetEntryList()->SetSelectionChangedHdl( rLnk ); }
void SetCallSelectionChangedHdl( bool bCall ) { maLBWindow->GetEntryList()->SetCallSelectionChangedHdl( bCall ); } void SetCallSelectionChangedHdl( bool bCall ) { maLBWindow->GetEntryList()->SetCallSelectionChangedHdl( bCall ); }
bool IsSelectionChanged() const { return maLBWindow->IsSelectionChanged(); } bool IsSelectionChanged() const { return maLBWindow->IsSelectionChanged(); }
......
...@@ -79,12 +79,12 @@ struct ComboBox::Impl ...@@ -79,12 +79,12 @@ struct ComboBox::Impl
ComboBoxBounds calcComboBoxDropDownComponentBounds( ComboBoxBounds calcComboBoxDropDownComponentBounds(
const Size &rOutSize, const Size &rBorderOutSize) const; const Size &rOutSize, const Size &rBorderOutSize) const;
DECL_DLLPRIVATE_LINK( ImplSelectHdl, void* ); DECL_DLLPRIVATE_LINK_TYPED( ImplSelectHdl, LinkParamNone*, void );
DECL_DLLPRIVATE_LINK( ImplCancelHdl, void* ); DECL_DLLPRIVATE_LINK_TYPED( ImplCancelHdl, LinkParamNone*, void );
DECL_DLLPRIVATE_LINK( ImplDoubleClickHdl, void* ); DECL_DLLPRIVATE_LINK_TYPED( ImplDoubleClickHdl, ImplListBoxWindow*, void );
DECL_DLLPRIVATE_LINK_TYPED( ImplPopupModeEndHdl, FloatingWindow*, void ); DECL_DLLPRIVATE_LINK_TYPED( ImplPopupModeEndHdl, FloatingWindow*, void );
DECL_DLLPRIVATE_LINK_TYPED( ImplSelectionChangedHdl, sal_Int32, void ); DECL_DLLPRIVATE_LINK_TYPED( ImplSelectionChangedHdl, sal_Int32, void );
DECL_DLLPRIVATE_LINK( ImplListItemSelectHdl , void* ); DECL_DLLPRIVATE_LINK_TYPED( ImplListItemSelectHdl , LinkParamNone*, void );
void ImplClickButtonHandler( ImplBtn* ); void ImplClickButtonHandler( ImplBtn* );
void ImplUserDrawHandler( UserDrawEvent* ); void ImplUserDrawHandler( UserDrawEvent* );
...@@ -410,7 +410,7 @@ void ComboBox::Impl::ImplAutocompleteHandler( Edit* pEdit ) ...@@ -410,7 +410,7 @@ void ComboBox::Impl::ImplAutocompleteHandler( Edit* pEdit )
} }
} }
IMPL_LINK_NOARG(ComboBox::Impl, ImplSelectHdl) IMPL_LINK_NOARG_TYPED(ComboBox::Impl, ImplSelectHdl, LinkParamNone*, void)
{ {
bool bPopup = m_rThis.IsInDropDown(); bool bPopup = m_rThis.IsInDropDown();
bool bCallSelect = false; bool bCallSelect = false;
...@@ -496,22 +496,17 @@ IMPL_LINK_NOARG(ComboBox::Impl, ImplSelectHdl) ...@@ -496,22 +496,17 @@ IMPL_LINK_NOARG(ComboBox::Impl, ImplSelectHdl)
m_isSyntheticModify = false; m_isSyntheticModify = false;
m_rThis.Select(); m_rThis.Select();
} }
return 0;
} }
IMPL_LINK_NOARG( ComboBox::Impl, ImplListItemSelectHdl ) IMPL_LINK_NOARG_TYPED( ComboBox::Impl, ImplListItemSelectHdl, LinkParamNone*, void )
{ {
m_rThis.CallEventListeners( VCLEVENT_DROPDOWN_SELECT ); m_rThis.CallEventListeners( VCLEVENT_DROPDOWN_SELECT );
return 1;
} }
IMPL_LINK_NOARG(ComboBox::Impl, ImplCancelHdl) IMPL_LINK_NOARG_TYPED(ComboBox::Impl, ImplCancelHdl, LinkParamNone*, void)
{ {
if (m_rThis.IsInDropDown()) if (m_rThis.IsInDropDown())
m_pFloatWin->EndPopupMode(); m_pFloatWin->EndPopupMode();
return 1;
} }
IMPL_LINK_TYPED( ComboBox::Impl, ImplSelectionChangedHdl, sal_Int32, nChanged, void ) IMPL_LINK_TYPED( ComboBox::Impl, ImplSelectionChangedHdl, sal_Int32, nChanged, void )
...@@ -523,10 +518,9 @@ IMPL_LINK_TYPED( ComboBox::Impl, ImplSelectionChangedHdl, sal_Int32, nChanged, v ...@@ -523,10 +518,9 @@ IMPL_LINK_TYPED( ComboBox::Impl, ImplSelectionChangedHdl, sal_Int32, nChanged, v
} }
} }
IMPL_LINK_NOARG(ComboBox::Impl, ImplDoubleClickHdl) IMPL_LINK_NOARG_TYPED(ComboBox::Impl, ImplDoubleClickHdl, ImplListBoxWindow*, void)
{ {
m_rThis.DoubleClick(); m_rThis.DoubleClick();
return 0;
} }
void ComboBox::ToggleDropDown() void ComboBox::ToggleDropDown()
......
...@@ -1165,7 +1165,7 @@ bool ImplListBoxWindow::SelectEntries( sal_Int32 nSelect, LB_EVENT_TYPE eLET, bo ...@@ -1165,7 +1165,7 @@ bool ImplListBoxWindow::SelectEntries( sal_Int32 nSelect, LB_EVENT_TYPE eLET, bo
ImplShowFocusRect(); ImplShowFocusRect();
if (bSelectPosChange) if (bSelectPosChange)
{ {
maFocusHdl.Call(reinterpret_cast<void*>(nSelect)); maFocusHdl.Call(nSelect);
} }
} }
ImplClearLayoutData(); ImplClearLayoutData();
...@@ -2255,13 +2255,12 @@ void ImplListBox::Resize() ...@@ -2255,13 +2255,12 @@ void ImplListBox::Resize()
ImplCheckScrollBars(); ImplCheckScrollBars();
} }
IMPL_LINK_NOARG(ImplListBox, MRUChanged) IMPL_LINK_NOARG_TYPED(ImplListBox, MRUChanged, LinkParamNone*, void)
{ {
CompatStateChanged( StateChangedType::Data ); CompatStateChanged( StateChangedType::Data );
return 1;
} }
IMPL_LINK_NOARG(ImplListBox, LBWindowScrolled) IMPL_LINK_NOARG_TYPED(ImplListBox, LBWindowScrolled, ImplListBoxWindow*, void)
{ {
long nSet = GetTopEntry(); long nSet = GetTopEntry();
if( nSet > mpVScrollBar->GetRangeMax() ) if( nSet > mpVScrollBar->GetRangeMax() )
...@@ -2271,8 +2270,6 @@ IMPL_LINK_NOARG(ImplListBox, LBWindowScrolled) ...@@ -2271,8 +2270,6 @@ IMPL_LINK_NOARG(ImplListBox, LBWindowScrolled)
mpHScrollBar->SetThumbPos( GetLeftIndent() ); mpHScrollBar->SetThumbPos( GetLeftIndent() );
maScrollHdl.Call( this ); maScrollHdl.Call( this );
return 1;
} }
IMPL_LINK_TYPED( ImplListBox, ScrollBarHdl, ScrollBar*, pSB, void ) IMPL_LINK_TYPED( ImplListBox, ScrollBarHdl, ScrollBar*, pSB, void )
......
...@@ -210,7 +210,7 @@ void ListBox::ImplLoadRes( const ResId& rResId ) ...@@ -210,7 +210,7 @@ void ListBox::ImplLoadRes( const ResId& rResId )
SelectEntryPos( nSelPos ); SelectEntryPos( nSelPos );
} }
IMPL_LINK_NOARG(ListBox, ImplSelectHdl) IMPL_LINK_NOARG_TYPED(ListBox, ImplSelectHdl, LinkParamNone*, void)
{ {
bool bPopup = IsInDropDown(); bool bPopup = IsInDropDown();
if( IsDropDownBox() ) if( IsDropDownBox() )
...@@ -233,34 +233,27 @@ IMPL_LINK_NOARG(ListBox, ImplSelectHdl) ...@@ -233,34 +233,27 @@ IMPL_LINK_NOARG(ListBox, ImplSelectHdl)
if ( ( !IsTravelSelect() || mpImplLB->IsSelectionChanged() ) || ( bPopup && !IsMultiSelectionEnabled() ) ) if ( ( !IsTravelSelect() || mpImplLB->IsSelectionChanged() ) || ( bPopup && !IsMultiSelectionEnabled() ) )
Select(); Select();
return 1;
} }
IMPL_LINK( ListBox, ImplFocusHdl, void *, nPos ) IMPL_LINK_TYPED( ListBox, ImplFocusHdl, sal_Int32, nPos, void )
{ {
CallEventListeners( VCLEVENT_LISTBOX_FOCUS , nPos); CallEventListeners( VCLEVENT_LISTBOX_FOCUS, reinterpret_cast<void*>(nPos) );
return 1;
} }
IMPL_LINK_NOARG( ListBox, ImplListItemSelectHdl ) IMPL_LINK_NOARG_TYPED( ListBox, ImplListItemSelectHdl, LinkParamNone*, void )
{ {
CallEventListeners( VCLEVENT_DROPDOWN_SELECT ); CallEventListeners( VCLEVENT_DROPDOWN_SELECT );
return 1;
} }
IMPL_LINK_NOARG(ListBox, ImplScrollHdl) IMPL_LINK_NOARG_TYPED(ListBox, ImplScrollHdl, ImplListBox*, void)
{ {
CallEventListeners( VCLEVENT_LISTBOX_SCROLLED ); CallEventListeners( VCLEVENT_LISTBOX_SCROLLED );
return 1;
} }
IMPL_LINK_NOARG(ListBox, ImplCancelHdl) IMPL_LINK_NOARG_TYPED(ListBox, ImplCancelHdl, LinkParamNone*, void)
{ {
if( IsInDropDown() ) if( IsInDropDown() )
mpFloatWin->EndPopupMode(); mpFloatWin->EndPopupMode();
return 1;
} }
IMPL_LINK_TYPED( ListBox, ImplSelectionChangedHdl, sal_Int32, nChanged, void ) IMPL_LINK_TYPED( ListBox, ImplSelectionChangedHdl, sal_Int32, nChanged, void )
...@@ -292,10 +285,9 @@ IMPL_LINK_TYPED( ListBox, ImplSelectionChangedHdl, sal_Int32, nChanged, void ) ...@@ -292,10 +285,9 @@ IMPL_LINK_TYPED( ListBox, ImplSelectionChangedHdl, sal_Int32, nChanged, void )
} }
} }
IMPL_LINK_NOARG(ListBox, ImplDoubleClickHdl) IMPL_LINK_NOARG_TYPED(ListBox, ImplDoubleClickHdl, ImplListBoxWindow*, void)
{ {
DoubleClick(); DoubleClick();
return 1;
} }
void ListBox::ImplClickButtonHandler( Control* ) void ListBox::ImplClickButtonHandler( Control* )
......
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