refactor: Rename click property to on_click (closes #139)
Breaking change: callback property standardized to on_* pattern. - `drawable.click` → `drawable.on_click` Updated all C++ bindings (8 files) and Python test usages. Note: src/scripts changes tracked separately (in .gitignore). This establishes the naming pattern for future callbacks: on_click, on_enter, on_exit, on_move, on_key, etc. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
e9b5a8301d
commit
52a655399e
|
|
@ -99,8 +99,8 @@ static int PyDrawable_set_opacity(PyDrawableObject* self, PyObject* value, void*
|
|||
|
||||
// GetSetDef array for properties
|
||||
static PyGetSetDef PyDrawable_getsetters[] = {
|
||||
{"click", (getter)PyDrawable_get_click, (setter)PyDrawable_set_click,
|
||||
MCRF_PROPERTY(click,
|
||||
{"on_click", (getter)PyDrawable_get_click, (setter)PyDrawable_set_click,
|
||||
MCRF_PROPERTY(on_click,
|
||||
"Callable executed when object is clicked. "
|
||||
"Function receives (x, y) coordinates of click."
|
||||
), NULL},
|
||||
|
|
|
|||
|
|
@ -404,7 +404,7 @@ PyGetSetDef UIArc::getsetters[] = {
|
|||
"Arc color", NULL},
|
||||
{"thickness", (getter)UIArc::get_thickness, (setter)UIArc::set_thickness,
|
||||
"Line thickness", NULL},
|
||||
{"click", (getter)UIDrawable::get_click, (setter)UIDrawable::set_click,
|
||||
{"on_click", (getter)UIDrawable::get_click, (setter)UIDrawable::set_click,
|
||||
"Callable executed when arc is clicked.", (void*)PyObjectsEnum::UIARC},
|
||||
{"z_index", (getter)UIDrawable::get_int, (setter)UIDrawable::set_int,
|
||||
"Z-order for rendering (lower values rendered first).", (void*)PyObjectsEnum::UIARC},
|
||||
|
|
|
|||
|
|
@ -273,8 +273,8 @@ PyGetSetDef UICaption::getsetters[] = {
|
|||
//{"children", (getter)PyUIFrame_get_children, NULL, "UICollection of objects on top of this one", NULL},
|
||||
{"text", (getter)UICaption::get_text, (setter)UICaption::set_text, "The text displayed", NULL},
|
||||
{"font_size", (getter)UICaption::get_float_member, (setter)UICaption::set_float_member, "Font size (integer) in points", (void*)5},
|
||||
{"click", (getter)UIDrawable::get_click, (setter)UIDrawable::set_click,
|
||||
MCRF_PROPERTY(click,
|
||||
{"on_click", (getter)UIDrawable::get_click, (setter)UIDrawable::set_click,
|
||||
MCRF_PROPERTY(on_click,
|
||||
"Callable executed when object is clicked. "
|
||||
"Function receives (x, y) coordinates of click."
|
||||
), (void*)PyObjectsEnum::UICAPTION},
|
||||
|
|
|
|||
|
|
@ -360,7 +360,7 @@ PyGetSetDef UICircle::getsetters[] = {
|
|||
"Outline color of the circle", NULL},
|
||||
{"outline", (getter)UICircle::get_outline, (setter)UICircle::set_outline,
|
||||
"Outline thickness (0 for no outline)", NULL},
|
||||
{"click", (getter)UIDrawable::get_click, (setter)UIDrawable::set_click,
|
||||
{"on_click", (getter)UIDrawable::get_click, (setter)UIDrawable::set_click,
|
||||
"Callable executed when circle is clicked.", (void*)PyObjectsEnum::UICIRCLE},
|
||||
{"z_index", (getter)UIDrawable::get_int, (setter)UIDrawable::set_int,
|
||||
"Z-order for rendering (lower values rendered first).", (void*)PyObjectsEnum::UICIRCLE},
|
||||
|
|
|
|||
|
|
@ -400,8 +400,8 @@ PyGetSetDef UIFrame::getsetters[] = {
|
|||
{"fill_color", (getter)UIFrame::get_color_member, (setter)UIFrame::set_color_member, "Fill color of the rectangle", (void*)0},
|
||||
{"outline_color", (getter)UIFrame::get_color_member, (setter)UIFrame::set_color_member, "Outline color of the rectangle", (void*)1},
|
||||
{"children", (getter)UIFrame::get_children, NULL, "UICollection of objects on top of this one", NULL},
|
||||
{"click", (getter)UIDrawable::get_click, (setter)UIDrawable::set_click,
|
||||
MCRF_PROPERTY(click,
|
||||
{"on_click", (getter)UIDrawable::get_click, (setter)UIDrawable::set_click,
|
||||
MCRF_PROPERTY(on_click,
|
||||
"Callable executed when object is clicked. "
|
||||
"Function receives (x, y) coordinates of click."
|
||||
), (void*)PyObjectsEnum::UIFRAME},
|
||||
|
|
|
|||
|
|
@ -1478,8 +1478,8 @@ PyGetSetDef UIGrid::getsetters[] = {
|
|||
{"center_y", (getter)UIGrid::get_float_member, (setter)UIGrid::set_float_member, "center of the view Y-coordinate", (void*)5},
|
||||
{"zoom", (getter)UIGrid::get_float_member, (setter)UIGrid::set_float_member, "zoom factor for displaying the Grid", (void*)6},
|
||||
|
||||
{"click", (getter)UIDrawable::get_click, (setter)UIDrawable::set_click,
|
||||
MCRF_PROPERTY(click,
|
||||
{"on_click", (getter)UIDrawable::get_click, (setter)UIDrawable::set_click,
|
||||
MCRF_PROPERTY(on_click,
|
||||
"Callable executed when object is clicked. "
|
||||
"Function receives (x, y) coordinates of click."
|
||||
), (void*)PyObjectsEnum::UIGRID},
|
||||
|
|
|
|||
|
|
@ -422,8 +422,8 @@ PyGetSetDef UILine::getsetters[] = {
|
|||
MCRF_PROPERTY(color, "Line color as a Color object."), NULL},
|
||||
{"thickness", (getter)UILine::get_thickness, (setter)UILine::set_thickness,
|
||||
MCRF_PROPERTY(thickness, "Line thickness in pixels."), NULL},
|
||||
{"click", (getter)UIDrawable::get_click, (setter)UIDrawable::set_click,
|
||||
MCRF_PROPERTY(click, "Callable executed when line is clicked."),
|
||||
{"on_click", (getter)UIDrawable::get_click, (setter)UIDrawable::set_click,
|
||||
MCRF_PROPERTY(on_click, "Callable executed when line is clicked."),
|
||||
(void*)PyObjectsEnum::UILINE},
|
||||
{"z_index", (getter)UIDrawable::get_int, (setter)UIDrawable::set_int,
|
||||
MCRF_PROPERTY(z_index, "Z-order for rendering (lower values rendered first)."),
|
||||
|
|
|
|||
|
|
@ -339,8 +339,8 @@ PyGetSetDef UISprite::getsetters[] = {
|
|||
{"sprite_index", (getter)UISprite::get_int_member, (setter)UISprite::set_int_member, "Which sprite on the texture is shown", NULL},
|
||||
{"sprite_number", (getter)UISprite::get_int_member, (setter)UISprite::set_int_member, "Sprite index (DEPRECATED: use sprite_index instead)", NULL},
|
||||
{"texture", (getter)UISprite::get_texture, (setter)UISprite::set_texture, "Texture object", NULL},
|
||||
{"click", (getter)UIDrawable::get_click, (setter)UIDrawable::set_click,
|
||||
MCRF_PROPERTY(click,
|
||||
{"on_click", (getter)UIDrawable::get_click, (setter)UIDrawable::set_click,
|
||||
MCRF_PROPERTY(on_click,
|
||||
"Callable executed when object is clicked. "
|
||||
"Function receives (x, y) coordinates of click."
|
||||
), (void*)PyObjectsEnum::UISPRITE},
|
||||
|
|
|
|||
|
|
@ -437,7 +437,7 @@ class SweetButton:
|
|||
# box w/ drop shadow
|
||||
self.shadow_offset = shadow_offset
|
||||
self.base_frame = mcrfpy.Frame(pos=(x, y), size=(box_width+shadow_offset, box_height), fill_color=(0, 0, 0, 255))
|
||||
self.base_frame.click = self.do_click
|
||||
self.base_frame.on_click = self.do_click
|
||||
|
||||
# drop shadow won't need configured, append directly
|
||||
if shadow:
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ class TextInput:
|
|||
self.parent_frame.children.append(self.frame)
|
||||
|
||||
# Click handler on the input frame
|
||||
self.frame.click = self._on_click
|
||||
self.frame.on_click = self._on_click
|
||||
|
||||
def _on_click(self, x, y, button, state):
|
||||
"""Handle mouse clicks"""
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ frame.children.append(caption)
|
|||
def frame_clicked(x, y, button):
|
||||
print(f"Frame clicked at ({x}, {y}) with button {button}")
|
||||
|
||||
frame.click = frame_clicked
|
||||
frame.on_click = frame_clicked
|
||||
|
||||
print("Scene setup complete. Setting timer for automation tests...")
|
||||
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ def test_issue_42_click_callback():
|
|||
try:
|
||||
frame1 = mcrfpy.Frame(10, 10, 200, 150)
|
||||
ui.append(frame1)
|
||||
frame1.click = correct_callback
|
||||
frame1.on_click = correct_callback
|
||||
print("✓ Click callback with correct signature assigned successfully")
|
||||
except Exception as e:
|
||||
print(f"✗ Failed to assign correct callback: {type(e).__name__}: {e}")
|
||||
|
|
@ -80,7 +80,7 @@ def test_issue_42_click_callback():
|
|||
try:
|
||||
frame2 = mcrfpy.Frame(220, 10, 200, 150)
|
||||
ui.append(frame2)
|
||||
frame2.click = wrong_callback_no_args
|
||||
frame2.on_click = wrong_callback_no_args
|
||||
print("✓ Click callback with no args assigned (will fail at runtime per issue #42)")
|
||||
except Exception as e:
|
||||
print(f"✗ Failed to assign callback: {type(e).__name__}: {e}")
|
||||
|
|
@ -93,7 +93,7 @@ def test_issue_42_click_callback():
|
|||
try:
|
||||
frame3 = mcrfpy.Frame(10, 170, 200, 150)
|
||||
ui.append(frame3)
|
||||
frame3.click = wrong_callback_few_args
|
||||
frame3.on_click = wrong_callback_few_args
|
||||
print("✓ Click callback with 2 args assigned (will fail at runtime per issue #42)")
|
||||
except Exception as e:
|
||||
print(f"✗ Failed to assign callback: {type(e).__name__}: {e}")
|
||||
|
|
|
|||
Loading…
Reference in New Issue