Warning, file /office/calligra/libs/text/KoTextEditingFactory.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /* This file is part of the KDE project
0002  * Copyright (C) 2007 Thomas Zander <zander@kde.org>
0003  *
0004  * This library is free software; you can redistribute it and/or
0005  * modify it under the terms of the GNU Library General Public
0006  * License as published by the Free Software Foundation; either
0007  * version 2 of the License, or (at your option) any later version.
0008  *
0009  * This library is distributed in the hope that it will be useful,
0010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012  * Library General Public License for more details.
0013  *
0014  * You should have received a copy of the GNU Library General Public License
0015  * along with this library; see the file COPYING.LIB.  If not, write to
0016  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017  * Boston, MA 02110-1301, USA.
0018  */
0019 
0020 #ifndef KOTEXTEDITINGFACTORY_H
0021 #define KOTEXTEDITINGFACTORY_H
0022 
0023 #include "kotext_export.h"
0024 
0025 class KoTextEditingPlugin;
0026 class QString;
0027 
0028 /**
0029  * A factory for text editing plugins. There should be one for each plugin type to
0030  * allow the creation of the text-editing-class from that plugin.
0031  * @see KoTextEditingRegistry
0032  */
0033 class KOTEXT_EXPORT KoTextEditingFactory
0034 {
0035 public:
0036     /**
0037      * Create the new factory
0038      * @param id a string that will be used internally for referencing the variable-type.
0039      */
0040     explicit KoTextEditingFactory(const QString &id);
0041     virtual ~KoTextEditingFactory();
0042 
0043     /**
0044      * Create a new instance of an inline object.
0045      */
0046     virtual KoTextEditingPlugin *create() const = 0;
0047 
0048     /**
0049      * return the id for the plugin this factory creates.
0050      * @return the id for the plugin this factory creates.
0051      */
0052     QString id() const;
0053 
0054     /**
0055      * return if the plugin this factory creates has to be shown in the context menu.
0056      * @see KoTextEditingPlugin::checkSection()
0057      */
0058     bool showInMenu() const;
0059 
0060     /// If showInMenu() returns true; the returned text is used in the context menu.
0061     QString title() const;
0062 
0063 protected:
0064     /**
0065      * Set if the plugin this factory creates has to be shown in the context menu.
0066      * @see KoTextEditingPlugin::checkSection()
0067      */
0068     void setShowInMenu(bool show);
0069     /// set the title used in the context menu
0070     void setTitle(const QString &title);
0071 
0072 private:
0073     class Private;
0074     Private * const d;
0075 };
0076 
0077 #endif