#ifndef IPLUGINCONTENTWIDGETCONTEXT_H #define IPLUGINCONTENTWIDGETCONTEXT_H #include #include #include "tsqueue.h" class OpenDatabase; class PluginContentWidget; /** This class serves to isolate the plugin from the actual construct in which it is * used. * * It provides functions for operating on the context without needing to many details. */ class IPluginContentWidgetContext { public: virtual ~IPluginContentWidgetContext() = default; /** Tells the context what to use as a caption for this content widget. * * Depending on the context the caption might not be visible or used as the caption * of a window or tab. */ virtual void setCaption(PluginContentWidget *content, const QString &caption, const QString &hint = {}) = 0; /** Tells the context what icon to use. * * In general the icon is used in a similar place as the caption. * \param iconname Assumed to be the name of an iconresource. The system will look for different * sizes under :/icons//iconname */ virtual void setIcon(PluginContentWidget *content, const QString &iconname) = 0; /** Returns an OpenDatabase object the widget can use to access * the database. */ virtual std::shared_ptr getDatabase() = 0; virtual void QueueTask(TSQueue::t_Callable c) = 0; virtual void showStatusMessage(const QString &msg) = 0; }; #endif // IPLUGINCONTENTWIDGETCONTEXT_H