diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | e9ae80694875f869892f13f4fcaf1170a00dea41 (patch) | |
tree | aa2f8d8a217e2d376224c8d46b7397b68d35de2d /kxsldbg/kxsldbgpart/libxsldbg/xsldbgevent.h | |
download | tdewebdev-e9ae80694875f869892f13f4fcaf1170a00dea41.tar.gz tdewebdev-e9ae80694875f869892f13f4fcaf1170a00dea41.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdewebdev@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kxsldbg/kxsldbgpart/libxsldbg/xsldbgevent.h')
-rw-r--r-- | kxsldbg/kxsldbgpart/libxsldbg/xsldbgevent.h | 302 |
1 files changed, 302 insertions, 0 deletions
diff --git a/kxsldbg/kxsldbgpart/libxsldbg/xsldbgevent.h b/kxsldbg/kxsldbgpart/libxsldbg/xsldbgevent.h new file mode 100644 index 00000000..85b1827f --- /dev/null +++ b/kxsldbg/kxsldbgpart/libxsldbg/xsldbgevent.h @@ -0,0 +1,302 @@ + +/*************************************************************************** + xsldbgevent.h - event to notify app of + data from xsldbg + ------------------- + begin : Fri Feb 1 2001 + copyright : (C) 2001 by Keith Isdale + email : k_isdale@tpg.com.au + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + + +#ifndef XSLDBGEVENT_H +#define XSLDBGEVENT_H + +#if defined WIN32 +#include <libxsldbg/xsldbgwin32config.h> +#endif + +#include <qevent.h> +#include <qptrlist.h> + +#include "xsldbgmsg.h" + +/* how many columns do we have */ +#define XSLDBGEVENT_COLUMNS 4 + +class XsldbgDebuggerBase; +class XsldbgEventData; + +class XsldbgEventDataList : public QGList +{ +public: + XsldbgEventDataList(void) {} + XsldbgEventDataList( const XsldbgEventDataList &l ) : QGList(l) {} + ~XsldbgEventDataList(void) { clear(); } + XsldbgEventDataList &operator=(const XsldbgEventDataList &l) + { return (XsldbgEventDataList&)QGList::operator=(l); } + bool operator==( const XsldbgEventDataList &list ) const + { return QGList::operator==( list ); } + uint count(void) const { return QGList::count(); } + bool isEmpty(void) const { return QGList::count() == 0; } + bool insert( uint i, const XsldbgEventData *d){ return QGList::insertAt(i,(QPtrCollection::Item)d); } + void inSort( const XsldbgEventData *d ) { QGList::inSort((QPtrCollection::Item)d); } + void prepend( const XsldbgEventData *d ) { QGList::insertAt(0,(QPtrCollection::Item)d); } + void append( const XsldbgEventData *d ) { QGList::append((QPtrCollection::Item)d); } + bool remove( uint i ) { return QGList::removeAt(i); } + bool remove(void) { return QGList::remove((QPtrCollection::Item)0); } + bool remove( const XsldbgEventData *d ) { return QGList::remove((QPtrCollection::Item)d); } + bool removeRef( const XsldbgEventData *d ) { return QGList::removeRef((QPtrCollection::Item)d); } + void removeNode( QLNode *n ) { QGList::removeNode(n); } + bool removeFirst(void) { return QGList::removeFirst(); } + bool removeLast(void) { return QGList::removeLast(); } + XsldbgEventData *take( uint i ) { return (XsldbgEventData *)QGList::takeAt(i); } + XsldbgEventData *take(void) { return (XsldbgEventData *)QGList::take(); } + XsldbgEventData *takeNode( QLNode *n ) { return (XsldbgEventData *)QGList::takeNode(n); } + void clear(void) { QGList::clear(); } + void sort(void) { QGList::sort(); } + int find( const XsldbgEventData *d ) { return QGList::find((QPtrCollection::Item)d); } + int findNext( const XsldbgEventData *d ) { return QGList::find((QPtrCollection::Item)d,FALSE); } + int findRef( const XsldbgEventData *d ) { return QGList::findRef((QPtrCollection::Item)d); } + int findNextRef( const XsldbgEventData *d ){ return QGList::findRef((QPtrCollection::Item)d,FALSE);} + uint contains( const XsldbgEventData *d ) const { return QGList::contains((QPtrCollection::Item)d); } + uint containsRef( const XsldbgEventData *d ) const + { return QGList::containsRef((QPtrCollection::Item)d); } + XsldbgEventData *at( uint i ) { return (XsldbgEventData *)QGList::at(i); } + int at(void) const { return QGList::at(); } + XsldbgEventData *current(void) const { return (XsldbgEventData *)QGList::get(); } + QLNode *currentNode(void) const { return QGList::currentNode(); } + XsldbgEventData *getFirst(void) const { return (XsldbgEventData *)QGList::cfirst(); } + XsldbgEventData *getLast(void) const { return (XsldbgEventData *)QGList::clast(); } + XsldbgEventData *first(void) { return (XsldbgEventData *)QGList::first(); } + XsldbgEventData *last(void) { return (XsldbgEventData *)QGList::last(); } + XsldbgEventData *next(void) { return (XsldbgEventData *)QGList::next(); } + XsldbgEventData *prev(void) { return (XsldbgEventData *)QGList::prev(); } + void toVector( QGVector *vec )const{ QGList::toVector(vec); } +private: + void deleteItem( QPtrCollection::Item d ); +}; + + + + + + +/** + * This class is used to convert a message from xsldbg into a simple data type + * + * @short convertor of xsldbg message to a data class + * + * @author Keith Isdale <k_isdale@tpg.com.au> + */ +class XsldbgEventData { + + public: + XsldbgEventData(void); + ~XsldbgEventData(void); + + + /** + * Set the text for the column specified + * + * @param column 0 =< @p column < XSLDBGEVENT_COLUMNS + * @param text The text value to store in column indicated + */ + void setText(int column, QString text); + + + /** + * Get the text from the column specified + * + * @returns QString::null if invalid column number + * + * @param column 0 =< @p column < XSLDBGEVENT_COLUMNS + * + */ + QString getText(int column); + + + /** + * Set the integer value for the column specified + * + * @param column 0 =< @p column < XSLDBGEVENT_COLUMNS + * @param value The value to store in column indicated + */ + void setInt(int column, int value); + + + /** + * Get the integer value from the column specified + * + * @returns -1 if invalid column number + * + * @param column 0 =< @p column < XSLDBGEVENT_COLUMNS + * + */ + int getInt(int column); + + private: + /** Below are the messages that this class will support + Values are mapped left to right ie the first QString value maps + to textValues[0], the second mapps to textValues[1] + the third maps to textValues[2] etc.. */ + QString textValues[XSLDBGEVENT_COLUMNS]; + + /** + Both int and bool values are mapped to intValues in the same manner as + stated above */ + int intValues[XSLDBGEVENT_COLUMNS]; + + /** - - - - - - The message/signal types supported - - - - - - */ + // /** line number and/or file name changed */ + // void lineNoChanged(QString /* fileName */, int /* lineNumber */, bool /* breakpoint */); + // These data items are mapped to attributes of this class with the same name + + + // /** Show a message in debugger window */ + // void showMessage(QString /* msg*/); + // These data item is mapped to the text attribute + + + // /** Add breakpoint to view, First parameter is QString::null + // to indicate start of breakpoint list notfication */ + // void breakpointItem(QString /* fileName*/, int /* lineNumber */, QString /*templateName*/, + // bool /* enabled */, int /* id */); + // These data items are mapped to attributes of this class with the same name + + + // /** Add global variable to view, First parameter is QString::null + // to indicate start of global variable list notfication */ + // void globalVariableItem(QString /* name */, QString /* fileName */, int /* lineNumber */); + // These data items are mapped to attributes of this class with the same name + + + // /** Add local variable to view, First parameter is QString::null + // to indicate start of local variable list notfication */ + // void localVariableItem(QString /*name */, QString /* templateContext*/, + // QString /* fileName */, int /*lineNumber */); + // These data items are mapped to attributes of this class with the same name + + + // /** Add template to view, First parameter is QString::null + // to indicate start of template list notfication */ + // void templateItem(QString /* name*/, QString /*mode*/, QString /* fileName */, int /* lineNumber */); + + // /** Add source to view, First parameter is QString::null + // to indicate start of source list notfication */ + // void sourceItem(QString /* fileName */, QString /* parentFileName */, int /*lineNumber */); + + // /** Add parameter to view, First parameter is QString::null + // to indicate start of parameter list notfication */ + // void parameterItem(QString /* name*/, QString /* value */); + + // /** Add callStack to view, First parameter is QString::null + // to indicate start of callstack list notfication */ + // void callStackItem(QString /* tempalteName*/, QString /* fileName */, int /* lineNumber */); + + // /** Add entity to view, First parameter is QString::null + // to indicate start of entity list notfication */ + // void entityItem(QString /*SystemID*/, QString /*PublicID*/); + + // /* Show the URI for SystemID or PublicID requested */ + // void resolveItem(QString /*URI*/); + + // /* Display a integer option value First parameter is QString::null + // to indicate start of option list notification */ + // void intOptionItem(QString /* name*/, int /* value */); + + // /* Display a string option value. First parameter is QString::null + // to indicate start of option list notification */ + // void stringOptionItem(QString /* name*/, QString /* value */); + +}; + + +/** + * This class is posted to the applications event queue. When the application + * has time to process the event this class then aids in emitting + * the relavant signals for the event. + * + * @short Emit signals to QT application via debugger base class + * + * @author Keith Isdale <k_isdale@tpg.com.au> + */ +class XsldbgEvent : public QEvent { + + public: + XsldbgEvent(XsldbgMessageEnum type, const void *data); + ~XsldbgEvent(void); + + /** Main control for emitting messages, use this from the application + inside its event processing function */ + void emitMessage(XsldbgDebuggerBase *debugger); + + /** Emit a single message. It uses handleXXX to do the actual emitting + of signal from debugger */ + void emitMessage(XsldbgEventData *eventData); + + private: + /** Create the XsldbgEventData for this message. Is used by our constructor + it uses handleXXX function to fill in the approriate values in + the XsldbgEventData provided */ + XsldbgEventData * createEventData(XsldbgMessageEnum type, const void *msgData); + + /** The following functions are directly related to the eventual signals that + will be emitted ie the signal + lineNoChanged(QString, int bool) + is mapped to + handleLineNoChanged(XsldbgEventData *, void *) + */ + void handleLineNoChanged(XsldbgEventData *eventData, const void *msgData); + void handleShowMessage(XsldbgEventData *eventData, const void *msgData); + void handleBreakpointItem(XsldbgEventData *eventData, const void *msgData); + void handleGlobalVariableItem(XsldbgEventData *eventData, const void *msgData); + void handleLocalVariableItem(XsldbgEventData *eventData, const void *msgData); + void handleTemplateItem(XsldbgEventData *eventData, const void *msgData); + void handleSourceItem(XsldbgEventData *eventData, const void *msgData); + void handleIncludedSourceItem(XsldbgEventData *eventData, const void *msgData); + void handleParameterItem(XsldbgEventData *eventData, const void *msgData); + void handleCallStackItem(XsldbgEventData *eventData, const void *msgData); + void handleEntityItem(XsldbgEventData *eventData, const void *msgData); + void handleResolveItem(XsldbgEventData *eventData, const void *msgData); + void handleIntOptionItem(XsldbgEventData *eventData, const void *msgData); + void handleStringOptionItem(XsldbgEventData *eventData, const void *msgData); + + + private: + + /** What type is the items in list */ + XsldbgMessageEnum itemType; + + /** A flag that gets set once the list has been filled with approriate + XsldbgEventData */ + bool beenCreated; + + /** This is a volitile value that is only valid for the duration + of the constuctor. It will be set to 0L immediately after */ + const void *data; + + /** This is a volitile value only valid for duration of emitMessage + function. It will be set to 0L imedediately after */ + XsldbgDebuggerBase *debugger; + + /** This is the data associated with this event + each data item in the list will be of the type required + by the "type" this event + */ + class XsldbgEventDataList list; + }; + + + + +#endif |