1 #ifndef MUSICSINGLEMANAGER_H
2 #define MUSICSINGLEMANAGER_H
26 #define __SingleWidget__1(name) \
27 __SingleWidget__2(name, MusicApplication::instance())
29 #define __SingleWidget__2(name, widget) \
32 MusicSingleManager *manager = G_SINGLE_MANAGER_PTR; \
33 if(!manager->contains(#name)) \
35 manager->appendObject(#name, new name(parent)); \
37 name *w = TTKObjectCast(name*, manager->object(#name)); \
38 TTK::Widget::adjustWidgetPosition(w); \
46 # define TTKGenerateSingleWidget(...) TTK_PP_OVERLOAD(__SingleWidget__, __VA_ARGS__)(__VA_ARGS__)
48 # define TTKGenerateSingleWidget(...) TTK_PP_CAT(TTK_PP_OVERLOAD(__SingleWidget__, __VA_ARGS__)(__VA_ARGS__), TTK_PP_EMPTY())
51 #define TTKRemoveSingleWidget(name) G_SINGLE_MANAGER_PTR->removeObject(name);
64 void appendObject(
const QString &
name, QObject *
object);
68 void removeObject(
const QString &name);
72 QObject *object(
const QString &name);
76 bool contains(
const QString &name)
const;
90 #define G_SINGLE_MANAGER_PTR makeMusicSingleManager()
93 #endif // MUSICSINGLEMANAGER_H
#define TTK_MODULE_EXPORT
QMap< QString, QObject * > m_parameter
The class of the single object manager.
TTK_MODULE_EXPORT MusicSingleManager * makeMusicSingleManager()
#define TTK_DECLARE_SINGLETON_CLASS(Class)
// Singleton Macro // //
#define TTK_DECLARE_MODULE(Class)