1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
/* This file is part of the KDE project
* SPDX-FileCopyrightText: 2007 Thomas Zander <zander@kde.org>
*
* SPDX-License-Identifier: LGPL-2.0-or-later
*/
#ifndef KOTEXTEDITINGFACTORY_H
#define KOTEXTEDITINGFACTORY_H
#include "kotext_export.h"
class KoTextEditingPlugin;
class QString;
/**
* A factory for text editing plugins. There should be one for each plugin type to
* allow the creation of the text-editing-class from that plugin.
* @see KoTextEditingRegistry
*/
class KOTEXT_EXPORT KoTextEditingFactory
{
public:
/**
* Create the new factory
* @param id a string that will be used internally for referencing the variable-type.
*/
explicit KoTextEditingFactory(const QString &id);
virtual ~KoTextEditingFactory();
/**
* Create a new instance of an inline object.
*/
virtual KoTextEditingPlugin *create() const = 0;
/**
* return the id for the plugin this factory creates.
* @return the id for the plugin this factory creates.
*/
QString id() const;
/**
* return if the plugin this factory creates has to be shown in the context menu.
* @see KoTextEditingPlugin::checkSection()
*/
bool showInMenu() const;
/// If showInMenu() returns true; the returned text is used in the context menu.
QString title() const;
protected:
/**
* Set if the plugin this factory creates has to be shown in the context menu.
* @see KoTextEditingPlugin::checkSection()
*/
void setShowInMenu(bool show);
/// set the title used in the context menu
void setTitle(const QString &title);
private:
class Private;
Private *const d;
};
#endif
|