mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-24 10:52:52 +00:00
245 lines
6.1 KiB
Text
245 lines
6.1 KiB
Text
//
|
|
// Copyright 2007 Jim Bublitz <jbublitz@nwinternet.com>
|
|
// Earlier copyrights 1998 - 2006 Jim Bublitz also apply
|
|
|
|
|
|
// Generated by preSip
|
|
|
|
|
|
// This file is part of PyKDE4.
|
|
|
|
// PyKDE4 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.
|
|
|
|
// PyKDE4 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 General Public License for more details.
|
|
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
namespace KTextEditor
|
|
{
|
|
|
|
class Mark
|
|
{
|
|
%TypeHeaderCode
|
|
#include <ktexteditor/markinterface.h>
|
|
%End
|
|
|
|
|
|
public:
|
|
int line;
|
|
uint type;
|
|
|
|
};
|
|
// class Mark
|
|
|
|
|
|
class MarkInterface
|
|
{
|
|
%TypeHeaderCode
|
|
#include <ktexteditor/markinterface.h>
|
|
%End
|
|
|
|
|
|
public:
|
|
MarkInterface ();
|
|
|
|
virtual uint mark (int line)=0;
|
|
virtual void setMark (int line, uint markType)=0;
|
|
virtual void clearMark (int line)=0;
|
|
virtual void addMark (int line, uint markType)=0;
|
|
virtual void removeMark (int line, uint markType)=0;
|
|
virtual const QHash<int,KTextEditor::Mark*>& marks ()=0;
|
|
virtual void clearMarks ()=0;
|
|
static int reservedMarkersCount ();
|
|
|
|
enum MarkTypes
|
|
{
|
|
markType01,
|
|
markType02,
|
|
markType03,
|
|
markType04,
|
|
markType05,
|
|
markType06,
|
|
markType07,
|
|
markType08,
|
|
markType09,
|
|
markType10,
|
|
markType11,
|
|
markType12,
|
|
markType13,
|
|
markType14,
|
|
markType15,
|
|
markType16,
|
|
markType17,
|
|
markType18,
|
|
markType19,
|
|
markType20,
|
|
markType21,
|
|
markType22,
|
|
markType23,
|
|
markType24,
|
|
markType25,
|
|
markType26,
|
|
markType27,
|
|
markType28,
|
|
markType29,
|
|
markType30,
|
|
markType31,
|
|
markType32,
|
|
Bookmark,
|
|
BreakpointActive,
|
|
BreakpointReached,
|
|
BreakpointDisabled,
|
|
Execution,
|
|
Warning,
|
|
Error
|
|
};
|
|
|
|
|
|
virtual void marksChanged (KTextEditor::Document* document)=0;
|
|
|
|
virtual void setMarkPixmap (KTextEditor::MarkInterface::MarkTypes mark, const QPixmap& pixmap)=0;
|
|
virtual QPixmap markPixmap (KTextEditor::MarkInterface::MarkTypes mark) const=0;
|
|
virtual void setMarkDescription (KTextEditor::MarkInterface::MarkTypes mark, const QString& text)=0;
|
|
virtual QString markDescription (KTextEditor::MarkInterface::MarkTypes mark) const=0;
|
|
virtual void setEditableMarks (uint markMask)=0;
|
|
virtual uint editableMarks () const=0;
|
|
|
|
enum MarkChangeAction
|
|
{
|
|
MarkAdded,
|
|
MarkRemoved
|
|
};
|
|
|
|
|
|
virtual void markChanged (KTextEditor::Document* document, KTextEditor::Mark mark, KTextEditor::MarkInterface::MarkChangeAction action)=0;
|
|
virtual ~MarkInterface ();
|
|
signals:
|
|
//ig void markToolTipRequested (KTextEditor::Document* document, KTextEditor::Mark mark, QPoint position, bool& handled);
|
|
//ig void markContextMenuRequested (KTextEditor::Document* document, KTextEditor::Mark mark, QPoint pos, bool& handled);
|
|
//ig void markClicked (KTextEditor::Document* document, KTextEditor::Mark mark, bool& handled);
|
|
};
|
|
// class MarkInterface
|
|
|
|
};
|
|
// namespace KTextEditor
|
|
|
|
|
|
|
|
%MappedType QHash<int,KTextEditor::Mark*>
|
|
{
|
|
%TypeHeaderCode
|
|
#include <qhash.h>
|
|
%End
|
|
|
|
%ConvertFromTypeCode
|
|
// Create the dictionary.
|
|
PyObject *d = PyDict_New();
|
|
|
|
if (!d)
|
|
return NULL;
|
|
|
|
// Set the dictionary elements.
|
|
QHash<int, KTextEditor::Mark*>::const_iterator i = sipCpp->constBegin();
|
|
|
|
while (i != sipCpp->constEnd())
|
|
{
|
|
int t1 = i.key();
|
|
KTextEditor::Mark *t2 = i.value();
|
|
|
|
#if PY_MAJOR_VERSION >= 3
|
|
PyObject *t1obj = PyLong_FromLong ((long)t1);
|
|
#else
|
|
PyObject *t1obj = PyInt_FromLong ((long)t1);
|
|
#endif
|
|
PyObject *t2obj = sipConvertFromNewInstance(t2, sipClass_KTextEditor_Mark, sipTransferObj);
|
|
|
|
if (t2obj == NULL || PyDict_SetItem(d, t1obj, t2obj) < 0)
|
|
{
|
|
Py_DECREF(d);
|
|
|
|
if (t1obj)
|
|
Py_DECREF(t1obj);
|
|
|
|
if (t2obj)
|
|
Py_DECREF(t2obj);
|
|
else
|
|
delete t2;
|
|
|
|
return NULL;
|
|
}
|
|
|
|
Py_DECREF(t1obj);
|
|
Py_DECREF(t2obj);
|
|
|
|
++i;
|
|
}
|
|
|
|
return d;
|
|
%End
|
|
|
|
%ConvertToTypeCode
|
|
PyObject *t1obj, *t2obj;
|
|
SIP_SSIZE_T i = 0;
|
|
|
|
// Check the type if that is all that is required.
|
|
if (sipIsErr == NULL)
|
|
{
|
|
if (!PyDict_Check(sipPy))
|
|
return 0;
|
|
|
|
while (PyDict_Next(sipPy, &i, &t1obj, &t2obj))
|
|
{
|
|
#if PY_MAJOR_VERSION >= 3
|
|
if (!PyNumber_Check (t1obj))
|
|
#else
|
|
if (!PyInt_Check (t1obj))
|
|
#endif
|
|
return 0;
|
|
|
|
if (!sipCanConvertToInstance(t2obj, sipClass_KTextEditor_Mark, SIP_NOT_NONE))
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
QHash<int, KTextEditor::Mark*> *qm = new QHash<int, KTextEditor::Mark*>;
|
|
|
|
while (PyDict_Next(sipPy, &i, &t1obj, &t2obj))
|
|
{
|
|
int state2;
|
|
|
|
#if PY_MAJOR_VERSION >= 3
|
|
int t1 = PyLong_AsLong (t1obj);
|
|
#else
|
|
int t1 = PyInt_AS_LONG (t1obj);
|
|
#endif
|
|
KTextEditor::Mark *t2 = reinterpret_cast<KTextEditor::Mark *>(sipConvertToInstance(t2obj, sipClass_KTextEditor_Mark, sipTransferObj, SIP_NOT_NONE, &state2, sipIsErr));
|
|
|
|
if (*sipIsErr)
|
|
{
|
|
sipReleaseInstance(t2, sipClass_KTextEditor_Mark, state2);
|
|
|
|
delete qm;
|
|
return 0;
|
|
}
|
|
|
|
qm->insert(t1, t2);
|
|
|
|
sipReleaseInstance(t2, sipClass_KTextEditor_Mark, state2);
|
|
}
|
|
|
|
*sipCppPtr = qm;
|
|
|
|
return sipGetState(sipTransferObj);
|
|
%End
|
|
};
|
|
|
|
|