00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#include <config.h>
00021
00022
#include "document.h"
00023
#include "view.h"
00024
#include "plugin.h"
00025
#include "editor.h"
00026
00027
#include <kaction.h>
00028
#include <kparts/factory.h>
00029
#include <kparts/componentfactory.h>
00030
00031
#include "document.moc"
00032
#include "view.moc"
00033
#include "plugin.moc"
00034
#include "editor.moc"
00035
00036
using namespace KTextEditor;
00037
00038
namespace KTextEditor
00039 {
00040
class PrivateDocument
00041 {
00042
public:
00043 PrivateDocument ()
00044 {
00045 }
00046
00047 ~PrivateDocument()
00048 {
00049 }
00050 };
00051
00052
class PrivateView
00053 {
00054
public:
00055 PrivateView ()
00056 {
00057 }
00058
00059 ~PrivateView()
00060 {
00061 }
00062 };
00063
00064
class PrivatePlugin
00065 {
00066
public:
00067 PrivatePlugin ()
00068 {
00069 }
00070
00071 ~PrivatePlugin ()
00072 {
00073 }
00074
00075
class Document *m_doc;
00076 };
00077
00078
class PrivatePluginViewInterface
00079 {
00080
public:
00081 PrivatePluginViewInterface ()
00082 {
00083 }
00084
00085 ~PrivatePluginViewInterface ()
00086 {
00087 }
00088 };
00089
00090
class PrivateEditor
00091 {
00092
public:
00093 PrivateEditor ()
00094 {
00095 }
00096
00097 ~PrivateEditor()
00098 {
00099 }
00100 };
00101 }
00102
00103
unsigned int Document::globalDocumentNumber = 0;
00104
unsigned int View::globalViewNumber = 0;
00105
unsigned int Plugin::globalPluginNumber = 0;
00106
unsigned int PluginViewInterface::globalPluginViewInterfaceNumber = 0;
00107
unsigned int Editor::globalEditorNumber = 0;
00108
00109 Document::Document(
QObject *parent,
const char *name ) : KTextEditor::
Editor (parent,
name )
00110 {
00111 globalDocumentNumber++;
00112 myDocumentNumber = globalDocumentNumber;
00113 }
00114
00115 Document::~Document()
00116 {
00117 }
00118
00119 unsigned int Document::documentNumber ()
const
00120
{
00121
return myDocumentNumber;
00122 }
00123
00124 QCString Document::documentDCOPSuffix ()
const
00125
{
00126
QCString num;
00127 num.
setNum (
documentNumber());
00128
00129
return num;
00130 }
00131
00132 View::View(
Document *,
QWidget *parent,
const char *name ) :
QWidget( parent, name )
00133 {
00134 globalViewNumber++;
00135 myViewNumber = globalViewNumber;
00136 }
00137
00138 View::~View()
00139 {
00140 }
00141
00142 unsigned int View::viewNumber ()
const
00143
{
00144
return myViewNumber;
00145 }
00146
00147 QCString View::viewDCOPSuffix ()
const
00148
{
00149
QCString num1, num2;
00150 num1.
setNum (
viewNumber());
00151 num2.
setNum (
document()->documentNumber());
00152
00153
return num2 +
"-" + num1;
00154 }
00155
00156 Plugin::Plugin(
Document *document,
const char *name ) :
QObject (document, name )
00157 {
00158 globalPluginNumber++;
00159 myPluginNumber = globalPluginNumber;
00160 d =
new PrivatePlugin ();
00161 d->m_doc = document;
00162 }
00163
00164 Plugin::~Plugin()
00165 {
00166
delete d;
00167 }
00168
00169
unsigned int Plugin::pluginNumber ()
const
00170
{
00171
return myPluginNumber;
00172 }
00173
00174
Document *Plugin::document ()
const
00175
{
00176
return d->m_doc;
00177 }
00178
00179 PluginViewInterface::PluginViewInterface()
00180 {
00181 globalPluginViewInterfaceNumber++;
00182 myPluginViewInterfaceNumber = globalPluginViewInterfaceNumber;
00183 }
00184
00185 PluginViewInterface::~PluginViewInterface()
00186 {
00187 }
00188
00189
unsigned int PluginViewInterface::pluginViewInterfaceNumber ()
const
00190
{
00191
return myPluginViewInterfaceNumber;
00192 }
00193
00194 Editor::Editor(
QObject *parent,
const char *name ) : KParts::ReadWritePart( parent, name )
00195 {
00196 globalEditorNumber++;
00197 myEditorNumber = globalEditorNumber;
00198 }
00199
00200 Editor::~Editor()
00201 {
00202 }
00203
00204
unsigned int Editor::editorNumber ()
const
00205
{
00206
return myEditorNumber;
00207 }
00208
00209
Editor *KTextEditor::createEditor (
const char* libname,
QWidget *parentWidget,
const char *widgetName,
QObject *parent,
const char *name )
00210 {
00211
return KParts::ComponentFactory::createPartInstanceFromLibrary<Editor>( libname, parentWidget, widgetName, parent,
name );
00212 }
00213
00214
Document *KTextEditor::createDocument (
const char* libname,
QObject *parent,
const char *name )
00215 {
00216
return KParts::ComponentFactory::createPartInstanceFromLibrary<Document>( libname, 0, 0, parent,
name );
00217 }
00218
00219
Plugin *KTextEditor::createPlugin (
const char* libname,
Document *document,
const char *name )
00220 {
00221
return KParts::ComponentFactory::createInstanceFromLibrary<Plugin>( libname, document,
name );
00222 }
00223
00224
PluginViewInterface *KTextEditor::pluginViewInterface (
Plugin *plugin)
00225 {
00226
if (!plugin)
00227
return 0;
00228
00229
return static_cast<PluginViewInterface*>(plugin->qt_cast(
"KTextEditor::PluginViewInterface"));
00230 }
00231