feat: stabilize test suite and add UIDrawable methods
- Add visible, opacity properties to all UI classes (#87, #88) - Add get_bounds(), move(), resize() methods to UIDrawable (#89, #98) - Create UIDrawable_methods.h with template implementations - Fix test termination issues - all tests now exit properly - Fix test_sprite_texture_swap.py click handler signature - Fix test_drawable_base.py segfault in headless mode - Convert audio objects to pointers for cleanup (OpenAL warning persists) - Remove debug print statements from UICaption - Special handling for UIEntity to delegate drawable methods to sprite All test files are now "airtight" - they complete successfully, terminate on their own, and handle edge cases properly. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
cc9b5c8f88
commit
ee6550bf63
15 changed files with 380 additions and 35 deletions
|
|
@ -3,6 +3,7 @@
|
|||
#include "McRFPy_API.h"
|
||||
#include "PyPositionHelper.h"
|
||||
#include <algorithm>
|
||||
#include "UIDrawable_methods.h"
|
||||
|
||||
UIGrid::UIGrid()
|
||||
: grid_x(0), grid_y(0), zoom(1.0f), center_x(0.0f), center_y(0.0f), ptex(nullptr)
|
||||
|
|
@ -602,6 +603,15 @@ PyMethodDef UIGrid::methods[] = {
|
|||
{NULL, NULL, 0, NULL}
|
||||
};
|
||||
|
||||
// Define the PyObjectType alias for the macros
|
||||
typedef PyUIGridObject PyObjectType;
|
||||
|
||||
// Combined methods array
|
||||
PyMethodDef UIGrid_all_methods[] = {
|
||||
UIDRAWABLE_METHODS,
|
||||
{"at", (PyCFunction)UIGrid::py_at, METH_VARARGS | METH_KEYWORDS},
|
||||
{NULL} // Sentinel
|
||||
};
|
||||
|
||||
PyGetSetDef UIGrid::getsetters[] = {
|
||||
|
||||
|
|
@ -627,6 +637,7 @@ PyGetSetDef UIGrid::getsetters[] = {
|
|||
|
||||
{"texture", (getter)UIGrid::get_texture, NULL, "Texture of the grid", NULL}, //TODO 7DRL-day2-item5
|
||||
{"z_index", (getter)UIDrawable::get_int, (setter)UIDrawable::set_int, "Z-order for rendering (lower values rendered first)", (void*)PyObjectsEnum::UIGRID},
|
||||
UIDRAWABLE_GETSETTERS,
|
||||
{NULL} /* Sentinel */
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue