summaryrefslogtreecommitdiffstats
path: root/objects/textdest-object.c
diff options
context:
space:
mode:
Diffstat (limited to 'objects/textdest-object.c')
-rw-r--r--objects/textdest-object.c285
1 files changed, 0 insertions, 285 deletions
diff --git a/objects/textdest-object.c b/objects/textdest-object.c
deleted file mode 100644
index 2ad6523..0000000
--- a/objects/textdest-object.c
+++ /dev/null
@@ -1,285 +0,0 @@
-#include <Python.h>
-#include "pyirssi_irc.h"
-#include "pymodule.h"
-#include "textdest-object.h"
-#include "factory.h"
-#include "pycore.h"
-
-static int pytextdest_setup(PyTextDest *pytdest, void *td, int owned);
-
-/* XXX: no cleanup signal for textdest */
-static void PyTextDest_dealloc(PyTextDest *self)
-{
- Py_XDECREF(self->window);
- Py_XDECREF(self->server);
-
- if (self->owned)
- {
- g_free((char*)self->data->target);
- g_free(self->data);
- }
-
- self->ob_type->tp_free((PyObject*)self);
-}
-
-static PyObject *PyTextDest_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{
- PyTextDest *self;
-
- self = (PyTextDest *)type->tp_alloc(type, 0);
- if (!self)
- return NULL;
-
- return (PyObject *)self;
-}
-
-/* init function to create the textdest */
-PyDoc_STRVAR(PyTextDest_doc,
- "__init__(target, level=MSGLEVEL_CLIENTNOTICE, server=None, window=None)\n"
- "\n"
- "Create a TextDest\n"
-);
-static int PyTextDest_init(PyTextDest *self, PyObject *args, PyObject *kwds)
-{
- static char *kwlist[] = {"target", "level", "server", "window", NULL};
- char *target;
- int level = MSGLEVEL_CLIENTNOTICE;
- PyObject *server = NULL, *window = NULL;
- TEXT_DEST_REC *dest;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "s|ioo", kwlist,
- &target, &level, &server, &window))
- return -1;
-
- if (server == Py_None)
- server = NULL;
- if (window == Py_None)
- window = NULL;
-
- if (server && !pyserver_check(server))
- {
- PyErr_Format(PyExc_TypeError, "arg 3 isnt server");
- return -1;
- }
-
- if (window && !pywindow_check(window))
- {
- PyErr_Format(PyExc_TypeError, "arg 4 isnt window");
- return -1;
- }
-
- if (self->data)
- {
- PyErr_Format(PyExc_RuntimeError, "TextDest already wrapped");
- return -1;
- }
-
- dest = g_new0(TEXT_DEST_REC, 1);
- format_create_dest(dest, DATA(server), g_strdup(target), level, DATA(window));
-
- if (!pytextdest_setup(self, dest, 1))
- return -1;
-
- return 0;
-}
-
-/* Getters */
-PyDoc_STRVAR(PyTextDest_window_doc,
- "Window where the text will be written"
-);
-static PyObject *PyTextDest_window_get(PyTextDest *self, void *closure)
-{
- RET_NULL_IF_INVALID(self->data);
- RET_AS_OBJ_OR_NONE(self->window);
-}
-
-PyDoc_STRVAR(PyTextDest_server_doc,
- "Target server"
-);
-static PyObject *PyTextDest_server_get(PyTextDest *self, void *closure)
-{
- RET_NULL_IF_INVALID(self->data);
- RET_AS_OBJ_OR_NONE(self->server);
-}
-
-PyDoc_STRVAR(PyTextDest_target_doc,
- "Target channel/query/etc name"
-);
-static PyObject *PyTextDest_target_get(PyTextDest *self, void *closure)
-{
- RET_NULL_IF_INVALID(self->data);
- RET_AS_STRING_OR_NONE(self->data->target);
-}
-
-PyDoc_STRVAR(PyTextDest_level_doc,
- "Text level"
-);
-static PyObject *PyTextDest_level_get(PyTextDest *self, void *closure)
-{
- RET_NULL_IF_INVALID(self->data);
- return PyInt_FromLong(self->data->level);
-}
-
-PyDoc_STRVAR(PyTextDest_hilight_priority_doc,
- "Priority for the hilighted text"
-);
-static PyObject *PyTextDest_hilight_priority_get(PyTextDest *self, void *closure)
-{
- RET_NULL_IF_INVALID(self->data);
- return PyInt_FromLong(self->data->hilight_priority);
-}
-
-PyDoc_STRVAR(PyTextDest_hilight_color_doc,
- "Color for the hilighted text"
-);
-static PyObject *PyTextDest_hilight_color_get(PyTextDest *self, void *closure)
-{
- RET_NULL_IF_INVALID(self->data);
- RET_AS_STRING_OR_NONE(self->data->hilight_color);
-}
-
-/* specialized getters/setters */
-static PyGetSetDef PyTextDest_getseters[] = {
- {"window", (getter)PyTextDest_window_get, NULL,
- PyTextDest_window_doc, NULL},
- {"server", (getter)PyTextDest_server_get, NULL,
- PyTextDest_server_doc, NULL},
- {"target", (getter)PyTextDest_target_get, NULL,
- PyTextDest_target_doc, NULL},
- {"level", (getter)PyTextDest_level_get, NULL,
- PyTextDest_level_doc, NULL},
- {"hilight_priority", (getter)PyTextDest_hilight_priority_get, NULL,
- PyTextDest_hilight_priority_doc, NULL},
- {"hilight_color", (getter)PyTextDest_hilight_color_get, NULL,
- PyTextDest_hilight_color_doc, NULL},
- {NULL}
-};
-
-/* Methods */
-PyDoc_STRVAR(PyTextDest_prnt_doc,
- "prnt(str) -> None\n"
- "\n"
- "Print str to TextDest\n"
-);
-static PyObject *PyTextDest_prnt(PyTextDest *self, PyObject *args, PyObject *kwds)
-{
- static char *kwlist[] = {"str", NULL};
- char *str = "";
-
- RET_NULL_IF_INVALID(self->data);
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "s", kwlist,
- &str))
- return NULL;
-
- printtext_dest(self->data, "%s", str);
-
- Py_RETURN_NONE;
-}
-
-/* Methods for object */
-static PyMethodDef PyTextDest_methods[] = {
- {"prnt", (PyCFunction)PyTextDest_prnt, METH_VARARGS | METH_KEYWORDS,
- PyTextDest_prnt_doc},
- {NULL} /* Sentinel */
-};
-
-PyTypeObject PyTextDestType = {
- PyObject_HEAD_INIT(NULL)
- 0, /*ob_size*/
- "TextDest", /*tp_name*/
- sizeof(PyTextDest), /*tp_basicsize*/
- 0, /*tp_itemsize*/
- (destructor)PyTextDest_dealloc, /*tp_dealloc*/
- 0, /*tp_print*/
- 0, /*tp_getattr*/
- 0, /*tp_setattr*/
- 0, /*tp_compare*/
- 0, /*tp_repr*/
- 0, /*tp_as_number*/
- 0, /*tp_as_sequence*/
- 0, /*tp_as_mapping*/
- 0, /*tp_hash */
- 0, /*tp_call*/
- 0, /*tp_str*/
- 0, /*tp_getattro*/
- 0, /*tp_setattro*/
- 0, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
- PyTextDest_doc, /* tp_doc */
- 0, /* tp_traverse */
- 0, /* tp_clear */
- 0, /* tp_richcompare */
- 0, /* tp_weaklistoffset */
- 0, /* tp_iter */
- 0, /* tp_iternext */
- PyTextDest_methods, /* tp_methods */
- 0, /* tp_members */
- PyTextDest_getseters, /* tp_getset */
- 0, /* tp_base */
- 0, /* tp_dict */
- 0, /* tp_descr_get */
- 0, /* tp_descr_set */
- 0, /* tp_dictoffset */
- (initproc)PyTextDest_init, /* tp_init */
- 0, /* tp_alloc */
- PyTextDest_new, /* tp_new */
-};
-
-static int pytextdest_setup(PyTextDest *pytdest, void *td, int owned)
-{
- PyObject *window, *server;
- TEXT_DEST_REC *tdest = td;
-
- if (tdest->window)
- {
- window = pywindow_new(tdest->window);
- if (!window)
- return 0;
- }
-
- server = py_irssi_chat_new(tdest->server, 1);
- if (!server)
- {
- Py_DECREF(window);
- return 0;
- }
-
- pytdest->data = td;
- pytdest->window = window;
- pytdest->server = server;
- pytdest->owned = owned;
-
- return 1;
-}
-
-/* TextDest factory function */
-PyObject *pytextdest_new(void *td)
-{
- PyTextDest *pytdest;
-
- pytdest = py_inst(PyTextDest, PyTextDestType);
- if (!pytdest)
- return NULL;
-
- if (!pytextdest_setup(pytdest, td, 0))
- {
- Py_DECREF(pytdest);
- return NULL;
- }
-
- return (PyObject *)pytdest;
-}
-
-int textdest_object_init(void)
-{
- g_return_val_if_fail(py_module != NULL, 0);
-
- if (PyType_Ready(&PyTextDestType) < 0)
- return 0;
-
- Py_INCREF(&PyTextDestType);
- PyModule_AddObject(py_module, "TextDest", (PyObject *)&PyTextDestType);
-
- return 1;
-}