Adding text functionality to Caption (why was that missing???)

This commit is contained in:
John McCardle 2024-03-07 12:35:07 -05:00
parent 343669df1e
commit 4b31864b2f
3 changed files with 17 additions and 7 deletions

View File

@ -1,7 +1,8 @@
#include "Resources.h"
#include <list>
#include "UI.h"
//#include <list>
//#include "UI.h"
// Resources class members memory allocation
sf::Font Resources::font;
GameEngine* Resources::game;
GameEngine* Resources::game;
std::string Resources::caption_buffer;

View File

@ -1,7 +1,7 @@
#pragma once
#include "Common.h"
#include <list>
#include "UI.h"
//#include <list>
//#include "UI.h"
class GameEngine; // forward declared
@ -10,4 +10,5 @@ class Resources
public:
static sf::Font font;
static GameEngine* game;
static std::string caption_buffer;
};

View File

@ -3,6 +3,7 @@
#include "Python.h"
#include "structmember.h"
#include "IndexTexture.h"
#include "Resources.h"
#include <list>
enum PyObjectsEnum : int
@ -657,12 +658,19 @@ static int PyUIDrawable_set_click(PyUIGridObject* self, PyObject* value, void* c
static PyObject* PyUICaption_get_text(PyUICaptionObject* self, void* closure)
{
return PyUnicode_FromString("Test String, Please Ignore");
Resources::caption_buffer = self->data->text.getString();
return PyUnicode_FromString(Resources::caption_buffer.c_str());
}
static int PyUICaption_set_text(PyUICaptionObject* self, PyObject* value, void* closure)
{
// asdf
PyObject* s = PyObject_Str(value);
PyObject * temp_bytes = PyUnicode_AsEncodedString(s, "UTF-8", "strict"); // Owned reference
if (temp_bytes != NULL) {
Resources::caption_buffer = PyBytes_AS_STRING(temp_bytes); // Borrowed pointer
Py_DECREF(temp_bytes);
}
self->data->text.setString(Resources::caption_buffer);
return 0;
}