// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; -*- /** * editor.h * * Copyright (C) 2003-2004 Zack Rusin * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301 USA */ #ifndef KOMPOSER_EDITOR_H #define KOMPOSER_EDITOR_H #include "plugin.h" #include namespace KParts { class Part; } namespace Komposer { class Core; class Editor : public Plugin { Q_OBJECT public: enum TextType { Plain = 1 << 0, RichText = 1 << 1, HTML = 1 << 2 }; virtual ~Editor(); /** * This is the magic function that all derivatives have to reimplement. * It returns the actual editor component. */ virtual TQWidget *widget() =0; int supportedTextFormats() const; /** * Returns the full text inside the editor. */ virtual TQString text() const =0; /** * This function is called when the plugin is selected by the user before the * widget of the KPart belonging to the plugin is raised. */ virtual void select(); /** * Reimplement this method and return a @ref TQStringList of all config * modules your application part should offer via Komposer. Note that the * part and the module will have to take care for config syncing themselves. * Usually @p DCOP used for that purpose. * * @note Make sure you offer the modules in the form: * "pathrelativetosettings/mysettings.desktop" */ virtual TQStringList configModules() const { return TQStringList(); } public slots: /** * Sets the text of the opened editor. * Most commonly used on replaying. * If any text is present if will be deleted. */ virtual void setText( const TQString &txt ) =0; /** * Changes currently used signature. If no signature is present * a new one should be appened. */ virtual void changeSignature( const TQString &txt ) =0; protected: Editor( TQObject *parent, const char *name, const TQStringList &args ); private: class Private; Private *d; }; } #endif