kde-playground/pykde4/sip/ktexteditor/markinterface.sip

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
};