Closes #43 No segfault found in cos_play after completing the checklist. Maybe I accidentally fixed it...? commit6aa151aba3Author: John McCardle <mccardle.john@gmail.com> Date: Fri Apr 19 21:43:58 2024 -0400 UISprite.h/.cpp cleanup commitec0374ef50Author: John McCardle <mccardle.john@gmail.com> Date: Fri Apr 19 21:37:39 2024 -0400 UIGridPoint.h/.cpp reorganization commit2cb7339535Author: John McCardle <mccardle.john@gmail.com> Date: Fri Apr 19 21:19:25 2024 -0400 UIGrid.h/.cpp cleanup. I have reservations about the UIEntityCollection[Iter] classes + methods living there, but not enough to fix it right now. commit5d6af324bfAuthor: John McCardle <mccardle.john@gmail.com> Date: Thu Apr 18 22:14:57 2024 -0400 UIFrame - moving static method into class namespace; no type object access commit567218cd7bAuthor: John McCardle <mccardle.john@gmail.com> Date: Thu Apr 18 21:23:49 2024 -0400 UIEntity fixes for the UI.h split: There are segfaults in cos_play, I may have missed a type usage or something commit76693acd28Author: John McCardle <mccardle.john@gmail.com> Date: Sat Apr 13 00:18:37 2024 -0400 delete leftover comments commit9efe998a33Author: John McCardle <mccardle.john@gmail.com> Date: Sat Apr 13 00:17:43 2024 -0400 some work on UICaption and UICollection; fixing segfaults resulting from mcrfpydef namepace TypeObject usage commit714965da45Author: John McCardle <mccardle.john@gmail.com> Date: Fri Apr 12 14:15:00 2024 -0400 eliminate extra includes on UICaption commit8efa25878fAuthor: John McCardle <mccardle.john@gmail.com> Date: Wed Apr 10 23:41:14 2024 -0400 remove a lot of stuff commitc186d8c7f3Author: John McCardle <mccardle.john@gmail.com> Date: Wed Apr 10 23:10:15 2024 -0400 We are compiling again! Started refactoring UICaption to be more idiomatic commit1b6e2a709bAuthor: John McCardle <mccardle.john@gmail.com> Date: Tue Apr 9 22:42:02 2024 -0400 Still not quite compiling; as predicted, a lot of interdependency and definition order bugs to untangle commitaa7553a818Author: John McCardle <mccardle.john@gmail.com> Date: Tue Apr 9 22:41:20 2024 -0400 PyTexture clean up scribbles and experiments commitc0201d989aAuthor: John McCardle <mccardle.john@gmail.com> Date: Mon Apr 8 22:55:00 2024 -0400 additional unsaved changes commit83a63a3093Author: John McCardle <mccardle.john@gmail.com> Date: Mon Apr 8 22:45:00 2024 -0400 doesn't compile, but UI.h/.cpp code has been divvy'd up. refs #43 @2h
62 lines
2.5 KiB
C++
62 lines
2.5 KiB
C++
#pragma once
|
|
#include "Common.h"
|
|
#include "Python.h"
|
|
#include "UIDrawable.h"
|
|
|
|
class UICaption: public UIDrawable
|
|
{
|
|
public:
|
|
sf::Text text;
|
|
void render(sf::Vector2f) override final;
|
|
PyObjectsEnum derived_type() override final;
|
|
virtual UIDrawable* click_at(sf::Vector2f point) override final;
|
|
|
|
static PyObject* get_float_member(PyUICaptionObject* self, void* closure);
|
|
static int set_float_member(PyUICaptionObject* self, PyObject* value, void* closure);
|
|
static PyObject* get_vec_member(PyUICaptionObject* self, void* closure);
|
|
static int set_vec_member(PyUICaptionObject* self, PyObject* value, void* closure);
|
|
static PyObject* get_color_member(PyUICaptionObject* self, void* closure);
|
|
static int set_color_member(PyUICaptionObject* self, PyObject* value, void* closure);
|
|
static PyObject* get_text(PyUICaptionObject* self, void* closure);
|
|
static int set_text(PyUICaptionObject* self, PyObject* value, void* closure);
|
|
static PyGetSetDef getsetters[];
|
|
static PyObject* repr(PyUICaptionObject* self);
|
|
static int init(PyUICaptionObject* self, PyObject* args, PyObject* kwds);
|
|
|
|
};
|
|
|
|
namespace mcrfpydef {
|
|
static PyTypeObject PyUICaptionType = {
|
|
.tp_name = "mcrfpy.Caption",
|
|
.tp_basicsize = sizeof(PyUICaptionObject),
|
|
.tp_itemsize = 0,
|
|
// TODO - move tp_dealloc to .cpp file as static function (UICaption::dealloc)
|
|
.tp_dealloc = (destructor)[](PyObject* self)
|
|
{
|
|
PyUICaptionObject* obj = (PyUICaptionObject*)self;
|
|
// TODO - reevaluate with PyFont usage; UICaption does not own the font
|
|
// release reference to font object
|
|
if (obj->font) Py_DECREF(obj->font);
|
|
obj->data.reset();
|
|
Py_TYPE(self)->tp_free(self);
|
|
},
|
|
.tp_repr = (reprfunc)UICaption::repr,
|
|
//.tp_hash = NULL,
|
|
//.tp_iter
|
|
//.tp_iternext
|
|
.tp_flags = Py_TPFLAGS_DEFAULT,
|
|
.tp_doc = PyDoc_STR("docstring"),
|
|
//.tp_methods = PyUIFrame_methods,
|
|
//.tp_members = PyUIFrame_members,
|
|
.tp_getset = UICaption::getsetters,
|
|
//.tp_base = NULL,
|
|
.tp_init = (initproc)UICaption::init,
|
|
// TODO - move tp_new to .cpp file as a static function (UICaption::new)
|
|
.tp_new = [](PyTypeObject* type, PyObject* args, PyObject* kwds) -> PyObject*
|
|
{
|
|
PyUICaptionObject* self = (PyUICaptionObject*)type->tp_alloc(type, 0);
|
|
if (self) self->data = std::make_shared<UICaption>();
|
|
return (PyObject*)self;
|
|
}
|
|
};
|
|
}
|