WX_ARG_FEATURE(textfile, [ --enable-textfile use wxTextFile class], wxUSE_TEXTFILE)
WX_ARG_FEATURE(timer, [ --enable-timer use wxTimer class], wxUSE_TIMER)
WX_ARG_FEATURE(variant, [ --enable-variant use wxVariant class], wxUSE_VARIANT)
-WX_ARG_FEATURE(weakref, [ --enable-weakref make wxEvtHandler trackable with wxWeakRef<>], wxUSE_WEAKREF)
WX_ARG_FEATURE(zipstream, [ --enable-zipstream use wxZip streams], wxUSE_ZIPSTREAM)
dnl URL-related classes
AC_DEFINE(wxUSE_VARIANT)
fi
-if test "$wxUSE_WEAKREF" = "yes"; then
- AC_DEFINE(wxUSE_WEAKREF)
-fi
-
if test "$wxUSE_FS_INET" = "yes"; then
AC_DEFINE(wxUSE_FS_INET)
fi
# endif
#endif /* wxUSE_VARIANT */
-#ifndef wxUSE_WEAKREF
-# ifdef wxABORT_ON_CONFIG_ERROR
-# error "wxUSE_WEAKREF must be defined."
-# else
-# define wxUSE_WEAKREF 0
-# endif
-#endif /* wxUSE_WEAKREF */
-
#ifndef wxUSE_XLOCALE
# ifdef wxABORT_ON_CONFIG_ERROR
# error "wxUSE_XLOCALE must be defined."
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_BASE wxEvtHandler : public wxObject
-#if wxUSE_WEAKREF
, public wxTrackable
-#endif
{
public:
wxEvtHandler();
// Avoid problems at exit by cleaning up static hash table gracefully
void ClearEventHashTable() { GetEventHashTable().Clear(); }
-#if wxUSE_WEAKREF
void OnSinkDestroyed( wxEvtHandler *sink );
-#endif
private:
static const wxEventTableEntry sm_eventTableEntries[];
virtual void DoSetClientData( void *data );
virtual void *DoGetClientData() const;
-#if wxUSE_WEAKREF
// Search tracker objects for event connection with this sink
wxEventConnectionRef *FindRefInTrackerList(wxEvtHandler *eventSink);
-#endif
private:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxEvtHandler)
};
-#if wxUSE_WEAKREF
// ----------------------------------------------------------------------------
// wxEventConnectionRef represents all connections between two event handlers
// and enables automatic disconnect when an event handler sink goes out of
DECLARE_NO_ASSIGN_CLASS(wxEventConnectionRef)
};
-#endif // wxUSE_WEAKREF
// Post a message to the given event handler which will be processed during the
// next event loop iteration.
// Recommended setting: 0 unless you do plan to develop MT applications
#define wxUSE_THREADS 1
-// Set wxUSE_WEAKREF to 1 t support use of weak references to common classes
-// in wxWidgets (wxWeakRef<T>). Set to 0 if your compiler has problems with
-// the template-based implementation (Embedded Visual C++ 4 for ARM has a bug
-// in this area, Visual C compiler options "/vmm /vmg" may help then).
-//
-// Default is 1
-//
-// Recommended setting: 1
-#define wxUSE_WEAKREF 1
-
// If enabled, compiles wxWidgets streams classes
//
// wx stream classes are used for image IO, process IO redirection, network
// Recommended setting: 0 unless you do plan to develop MT applications
#define wxUSE_THREADS 1
-// Set wxUSE_WEAKREF to 1 t support use of weak references to common classes
-// in wxWidgets (wxWeakRef<T>). Set to 0 if your compiler has problems with
-// the template-based implementation (Embedded Visual C++ 4 for ARM has a bug
-// in this area, Visual C compiler options "/vmm /vmg" may help then).
-//
-// Default is 1
-//
-// Recommended setting: 1
-#define wxUSE_WEAKREF 1
-
// If enabled, compiles wxWidgets streams classes
//
// wx stream classes are used for image IO, process IO redirection, network
// Recommended setting: 0 unless you do plan to develop MT applications
#define wxUSE_THREADS 1
-// Set wxUSE_WEAKREF to 1 t support use of weak references to common classes
-// in wxWidgets (wxWeakRef<T>). Set to 0 if your compiler has problems with
-// the template-based implementation (Embedded Visual C++ 4 for ARM has a bug
-// in this area, Visual C compiler options "/vmm /vmg" may help then).
-//
-// Default is 1
-//
-// Recommended setting: 1
-#define wxUSE_WEAKREF 1
-
// If enabled, compiles wxWidgets streams classes
//
// wx stream classes are used for image IO, process IO redirection, network
// Recommended setting: 0 unless you do plan to develop MT applications
#define wxUSE_THREADS 1
-// Set wxUSE_WEAKREF to 1 t support use of weak references to common classes
-// in wxWidgets (wxWeakRef<T>). Set to 0 if your compiler has problems with
-// the template-based implementation (Embedded Visual C++ 4 for ARM has a bug
-// in this area, Visual C compiler options "/vmm /vmg" may help then).
-//
-// Default is 1
-//
-// Recommended setting: 1
-#define wxUSE_WEAKREF 1
-
// If enabled, compiles wxWidgets streams classes
//
// wx stream classes are used for image IO, process IO redirection, network
// Recommended setting: 0 unless you do plan to develop MT applications
#define wxUSE_THREADS 1
-// Set wxUSE_WEAKREF to 1 t support use of weak references to common classes
-// in wxWidgets (wxWeakRef<T>). Set to 0 if your compiler has problems with
-// the template-based implementation (Embedded Visual C++ 4 for ARM has a bug
-// in this area, Visual C compiler options "/vmm /vmg" may help then).
-//
-// Default is 1
-//
-// Recommended setting: 1
-#define wxUSE_WEAKREF 1
-
// If enabled, compiles wxWidgets streams classes
//
// wx stream classes are used for image IO, process IO redirection, network
// Recommended setting: 0 unless you do plan to develop MT applications
#define wxUSE_THREADS 1
-// Set wxUSE_WEAKREF to 1 t support use of weak references to common classes
-// in wxWidgets (wxWeakRef<T>). Set to 0 if your compiler has problems with
-// the template-based implementation (Embedded Visual C++ 4 for ARM has a bug
-// in this area, Visual C compiler options "/vmm /vmg" may help then).
-//
-// Default is 1
-//
-// Recommended setting: 1
-#define wxUSE_WEAKREF 1
-
// If enabled, compiles wxWidgets streams classes
//
// wx stream classes are used for image IO, process IO redirection, network
#define wxUSE_THREADS 1
-#define wxUSE_WEAKREF 1
-
#define wxUSE_STREAMS 1
#if defined(__DMC__) || defined(__WATCOMC__) \
// Recommended setting: 0 unless you do plan to develop MT applications
#define wxUSE_THREADS 1
-// Set wxUSE_WEAKREF to 1 t support use of weak references to common classes
-// in wxWidgets (wxWeakRef<T>). Set to 0 if your compiler has problems with
-// the template-based implementation (Embedded Visual C++ 4 for ARM has a bug
-// in this area, Visual C compiler options "/vmm /vmg" may help then).
-//
-// Default is 1
-//
-// Recommended setting: 1
-#define wxUSE_WEAKREF 1
-
// If enabled, compiles wxWidgets streams classes
//
// wx stream classes are used for image IO, process IO redirection, network
// Recommended setting: 0 unless you do plan to develop MT applications
#define wxUSE_THREADS 1
-// Set wxUSE_WEAKREF to 1 t support use of weak references to common classes
-// in wxWidgets (wxWeakRef<T>). Set to 0 if your compiler has problems with
-// the template-based implementation (Embedded Visual C++ 4 for ARM has a bug
-// in this area, Visual C compiler options "/vmm /vmg" may help then).
-//
-// Default is 1
-//
-// Recommended setting: 1
-#define wxUSE_WEAKREF 1
-
// If enabled, compiles wxWidgets streams classes
//
// wx stream classes are used for image IO, process IO redirection, network
#define wxUSE_THREADS 0
-#define wxUSE_WEAKREF 0
-
#define wxUSE_STREAMS 0
#if defined(__DMC__) || defined(__WATCOMC__) \
{
wxDynamicEventTableEntry *entry = (wxDynamicEventTableEntry*)*it;
-#if wxUSE_WEAKREF
// Remove ourselves from sink destructor notifications
// (this has usually been been done, in wxTrackable destructor)
wxEvtHandler *eventSink = entry->m_eventSink;
delete evtConnRef;
}
}
-#endif // wxUSE_WEAKREF
if (entry->m_callbackUserData)
delete entry->m_callbackUserData;
// Insert at the front of the list so most recent additions are found first
m_dynamicEvents->Insert( (wxObject*) entry );
-#if wxUSE_WEAKREF
// Make sure we get to know when a sink is destroyed
if ( eventSink && eventSink != this )
{
else
evtConnRef = new wxEventConnectionRef(this, eventSink);
}
-#endif // wxUSE_WEAKREF
}
bool wxEvtHandler::Disconnect( int id, int lastId, wxEventType eventType,
if (!m_dynamicEvents)
return false;
-#if wxUSE_WEAKREF
// Remove connection from tracker node (wxEventConnectionRef)
if ( eventSink && eventSink != this )
{
if ( evtConnRef )
evtConnRef->DecRef();
}
-#endif // wxUSE_WEAKREF
wxList::compatibility_iterator node = m_dynamicEvents->GetFirst();
while (node)
return m_clientData;
}
-#if wxUSE_WEAKREF
// A helper to find an wxEventConnectionRef object
wxEventConnectionRef *
wxEvtHandler::FindRefInTrackerList(wxEvtHandler *eventSink)
node = node_nxt;
}
}
-#endif // wxUSE_WEAKREF
#endif // wxUSE_BASE