diff options
author | Darrell Anderson <humanreadable@yahoo.com> | 2014-03-02 20:05:33 +0100 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2014-03-02 20:05:33 +0100 |
commit | 722ce1efbac31c61b1d4b13f7e075c9f311e3e73 (patch) | |
tree | db1b6b28566e5fe9accb4a688f7257673cecb080 /lib/interfaces/kdevcore.h | |
parent | afb74575caf7dd8ccb6c235b1c8d788e320c19da (diff) | |
download | tdevelop-722ce1efbac31c61b1d4b13f7e075c9f311e3e73.tar.gz tdevelop-722ce1efbac31c61b1d4b13f7e075c9f311e3e73.zip |
Finish renaming tdevelop components
Diffstat (limited to 'lib/interfaces/kdevcore.h')
-rw-r--r-- | lib/interfaces/kdevcore.h | 388 |
1 files changed, 0 insertions, 388 deletions
diff --git a/lib/interfaces/kdevcore.h b/lib/interfaces/kdevcore.h deleted file mode 100644 index fad2891a..00000000 --- a/lib/interfaces/kdevcore.h +++ /dev/null @@ -1,388 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2001-2002 Matthias Hoelzer-Kluepfel <hoelzer@kde.org> - Copyright (C) 2001-2002 Bernd Gehrmann <bernd@kdevelop.org> - Copyright (C) 2001 Sandy Meier <smeier@kdevelop.org> - Copyright (C) 2002 Daniel Engelschalt <daniel.engelschalt@gmx.net> - Copyright (C) 2002 Simon Hausmann <hausmann@kde.org> - Copyright (C) 2002-2003 Roberto Raggi <roberto@kdevelop.org> - Copyright (C) 2003 Mario Scalas <mario.scalas@libero.it> - Copyright (C) 2003 Harald Fernengel <harry@kdevelop.org> - Copyright (C) 2003 Hamish Rodda <rodda@kde.org> - Copyright (C) 2004 Alexander Dymo <adymo@kdevelop.org> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVCORE_H -#define KDEVCORE_H - -/** -@file kdevcore.h -The interface to the application core and context menu classes. -*/ - -#include <tqstringlist.h> -#include <tqdict.h> -#include <tqobject.h> - -#include <kurl.h> - -class KDialogBase; -class KDevPlugin; -class CodeModelItem; -class ProjectModelItem; - -namespace KParts -{ - class Part; -} - -class TQStatusBar; -class TQPopupMenu; - -/** -Base class for every context. -Think of a Context-based class as "useful -info associated to a context menu". Several context menu can be defined, -each defining different information: because of these context menus being -used in many modules, they are defined here. - -When context menu with a certain "context" associated appears, KDevelop core -sends a notification signal and all plugins which receive this signal have -the ability to add own items into the menu. For example, VCS plugin could -add "commit" and "update" menu items to the context menu of a file. - -<b>How to use context from a plugin:</b> --# Create a popup menu in context menu event handler: @code TDEPopupMenu menu(this); @endcode --# Create a context: @code MyContext context(param). @endcode --# Fill a context menu: @code core()->fillContextMenu(&menu, &context); @endcode --# Show the popup menu: @code menu.exec(event->globalPos()); @endcode -. -In this example @em event is an object of TQContextMenuEvent class which you have access -to if you reimplement TQWidget::contextMenuEvent method. - -<b>How to fill context menu from a plugin:</b> --# Create a @code contextMenu(TQPopupMenu *, const Context *) @endcode slot in your plugin class. --# Connect KDevCore::contextMenu(TQPopupMenu *, const Context *) signal to that slot in -the constructor of your plugin:\n -@code -connect(core(), TQT_SIGNAL(contextMenu(TQPopupMenu *, const Context *)), - this, TQT_SLOT(contextMenu(TQPopupMenu *, const Context *))); -@endcode --# Fill the menu in the slot you created, for example:\n -@code -if (context->hasType(Context::EditorContext)) -{ - const EditorContext *econtext = static_cast<const EditorContext*>(context); - int id = popup->insertItem(i18n("My Menu Item 1"), this, TQT_SLOT(myMenuAction1())); - popup->setWhatsThis(id, i18n("What's this for my menu item 1")); -} -else if context->hasType(MyContext)) -{ - int id = popup->insertItem(... - ... -} -... -@endcode -*/ -class Context -{ -public: - /**Pre-defined context types. More may be added so it is possible to add custom - contexts. <strong>We reserve enum values until 1000 (yeah, it is one thousand ) - for tdevelop official context types.</strong>*/ - enum Type - { - EditorContext, /**<Editor context menu.*/ - DocumentationContext, /**<Documentation browser context menu.*/ - FileContext, /**<File context menu.*/ - ProjectModelItemContext, /**<Project tree context menu.*/ - CodeModelItemContext /**<Class tree context menu.*/ - }; - - /**Implement this in the context so we can provide rtti.*/ - virtual int type() const = 0; - - /**@return The type of this Context, so clients can discriminate - between different file contexts.*/ - virtual bool hasType(int type) const; - -protected: - /**Constructor.*/ - Context(); - - /**Destructor.*/ - virtual ~Context(); -}; - -/**A context for the popup menu in the editor.*/ -class EditorContext: public Context -{ -public: - /**Builds a context for an editor part. - @param url The url of a file in the editor. - @param line The line number where the cursor is. - @param col The column number where the cursor is. - @param linestr The content of the line where the cursor is. - @param wordstr The current word under the cursor.*/ - EditorContext(const KURL &url, int line, int col, - const TQString &linestr, const TQString &wordstr); - - /**Destructor.*/ - virtual ~EditorContext(); - - virtual int type() const; - - /**@return The url for the file which this context was invoked for.*/ - const KURL &url() const; - - /**@return The line number for the cursor position.*/ - int line() const; - - /**@return The column number for the cursor position.*/ - int col() const; - - /**@return A TQString with the content of the line which this context was - invoked for.*/ - TQString currentLine() const; - - /**@return A TQString containing the word near to the cursor when this - context object was created.*/ - TQString currentWord() const; - -private: - class Private; - Private *d; - - EditorContext( const EditorContext &); - EditorContext &operator=( const EditorContext &); -}; - - -/** -A context for the popup menu in the documentation browser widget. -*/ -class DocumentationContext: public Context -{ -public: - - /**Builds a DocumentationContext. - @param url The URL that the context will be for. - @param selection Selected text.*/ - DocumentationContext(const TQString &url, const TQString &selection ); - - /**Copy constructor.*/ - DocumentationContext(const DocumentationContext &); - DocumentationContext &operator=(const DocumentationContext &); - - /**Destructor.*/ - virtual ~DocumentationContext(); - - virtual int type() const; - - /**@return The url of the document this context was invoked for.*/ - TQString url() const; - - /**@return The selected text in the document.*/ - TQString selection() const; - -private: - class Private; - Private *d; -}; - -/** -A context for the popup menu in file views and other parts that show files. -Context allows multiple selections of files. -*/ -class FileContext : public Context -{ -public: - /**Builds the file context using a @ref KURL::List - @param someURLs The list of selected files URLs.*/ - FileContext(const KURL::List &someURLs); - - /**Destructor.*/ - virtual ~FileContext(); - - virtual int type() const; - - /**@return A reference to the selected of URLs.*/ - const KURL::List &urls() const; - -private: - class Private; - Private *d; - - FileContext( const FileContext &); - FileContext &operator=( const FileContext &); -}; - -/** -A context for the popup menu in class views. -*/ -class CodeModelItemContext: public Context -{ -public: - /**Builds the context. - @param item Selected code model item representation. Usually a symbol from the code - like class, function, etc.*/ - CodeModelItemContext(const CodeModelItem* item); - - /**Destructor.*/ - virtual ~CodeModelItemContext(); - - virtual int type() const; - - /**@return The code model item for the selected item.*/ - const CodeModelItem* item() const; - -private: - class Private; - Private *d; - - CodeModelItemContext( const CodeModelItemContext &); - CodeModelItemContext &operator=( const CodeModelItemContext &); -}; - -/** -A context for the popup menu in project views. -*/ -class ProjectModelItemContext : public Context -{ -public: - /**Builds the context. - @param item The item to build the context from.*/ - ProjectModelItemContext(const ProjectModelItem* item); - - /**Destructor.*/ - virtual ~ProjectModelItemContext(); - - virtual int type() const; - - /**@return The code model item for the selected item.*/ - const ProjectModelItem* item() const; - -private: - class Private; - Private *d; - - ProjectModelItemContext( const ProjectModelItemContext &); - ProjectModelItemContext &operator=( const ProjectModelItemContext &); -}; - - - - -/** -A KDevCore class defines an object which takes care about the cooperation -between the various plug-in which compose KDevelop. -It defines: -- signals that can be captured for menu customization; -- notifications about opening / closing projects; -- methods to access functionality of KDevelop core; -- requests to fill project and global settings widgets; -- etc. -. -*/ -class KDevCore: public TQObject -{ - Q_OBJECT - -public: - /**Constructor - @param parent The TQObject that's the parent of this class. - @param name The name of the class.*/ - KDevCore(TQObject *parent=0, const char *name=0); - - /**Destructor.*/ - virtual ~KDevCore(); - - /**Fills the context menu. - This method should be called by a part that wants to show a - context menu. The parameter @p context should be filled with - information about the context in which this happens (see - EditorContext, DocumentationContext, ClassContext, ...). - Essentially, this method emits the signal contextMenu() - which other parts can use to hook in. - @sa Context for a detailed explanation of context menu initializations and usage. - @param popup The popup menu to fill. - @param context The pointer to a Context object of this popup menu.*/ - virtual void fillContextMenu(TQPopupMenu *popup, const Context *context) = 0; - - /**Closes the current project and open the new one. You cannot use the @ref KDevPlugin::project() - * method right after opening a new project, as it will return a null pointer. - *You must wait for the eventloop to be reentered, so use a signleshot timer - *to do the job needed after the project is opened or connect a slot to the - *@ref projectOpened signal. - * @param projectFileName The file name of the project to open.*/ - virtual void openProject(const TQString& projectFileName) = 0; - - /**Marks the component as running (or not running). As long as at least one - component is running, the stop button is enabled. When it is pressed, - component get a stopButtonClicked(). This is usable for plugins which - run certain commands and want KDevelop core to be notified of that. - If core is notified, it can allow the user to stop(interrupt) the command - manually by means of stop button. - @param which The plugin to mark. - @param runs true if plugin is running something, false if it is not.*/ - virtual void running(KDevPlugin *which, bool runs) = 0; - -signals: - /**Emitted after the core has done all initializations and - the main window has been shown.*/ - void coreInitialized(); - - /**A project has been opened.*/ - void projectOpened(); - - /**The project is about to be closed.*/ - void projectClosed(); - - /**The language support part has been changed.*/ - void languageChanged(); - - /**The user has clicked the stop button. - If all actions should be cancelled, pass 0 to @p which - @param which The KDevPlugin object to stop.*/ - void stopButtonClicked(KDevPlugin *which); - - /**A context menu has been requested somewhere. Components - may hook some entries into it. More information on the - context can be obtained by looking for the type of - @p context and casting it accordingly. - @sa Context for a detailed explanation of context menu initializations and usage. - @param popupMenu The popup menu to fill. - @param context The Context of this popup menu.*/ - void contextMenu(TQPopupMenu *popupMenu, const Context *context); - - /**Expects that a configuration page for use in the - KDevelop settings dialog is created by the component. - The configuration page is not demand-loading, it will be created before - global settings dialog is shown. Use @ref ConfigWidgetProxy in your plugin - to create demand-loading configuration pages. - @param dlg The dialog which the configuration widget should be added to.*/ - void configWidget(KDialogBase *dlg); - - /**Expects that a configuration page for use in the - Project settings dialog is created by the component. - The configuration page is not demand-loading, it will be created before - project settings dialog is shown. Use @ref ConfigWidgetProxy in your plugin - to create demand-loading configuration pages. - @param dlg The dialog which the configuration widget should be added to.*/ - void projectConfigWidget(KDialogBase *dlg); -}; - -#endif |