From b541c0918a431a87cbd958b612b25587b86f9d28 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Wed, 1 Feb 2023 10:39:38 +0800 Subject: [PATCH] Remove use of shadow attribute for button label. --- android/src/toga_android/widgets/button.py | 3 +++ cocoa/src/toga_cocoa/widgets/button.py | 5 ++++- core/src/toga/widgets/button.py | 6 +++--- dummy/src/toga_dummy/widgets/button.py | 5 ++++- gtk/src/toga_gtk/widgets/button.py | 3 +++ iOS/src/toga_iOS/widgets/button.py | 3 +++ web/src/toga_web/widgets/button.py | 3 +++ winforms/src/toga_winforms/widgets/button.py | 3 +++ 8 files changed, 26 insertions(+), 5 deletions(-) diff --git a/android/src/toga_android/widgets/button.py b/android/src/toga_android/widgets/button.py index 40cb22d946..2c1a1a1840 100644 --- a/android/src/toga_android/widgets/button.py +++ b/android/src/toga_android/widgets/button.py @@ -24,6 +24,9 @@ def create(self): self.native = A_Button(self._native_activity) self.native.setOnClickListener(TogaOnClickListener(button_impl=self)) + def get_text(self): + return str(self.native.getText()) + def set_text(self, text): self.native.setText(self.interface.text) diff --git a/cocoa/src/toga_cocoa/widgets/button.py b/cocoa/src/toga_cocoa/widgets/button.py index 320d8514f1..628a4203ae 100644 --- a/cocoa/src/toga_cocoa/widgets/button.py +++ b/cocoa/src/toga_cocoa/widgets/button.py @@ -66,8 +66,11 @@ def set_font(self, font): # Button style is sensitive to font changes self._set_button_style() + def get_text(self): + return str(self.native.title) + def set_text(self, text): - self.native.title = self.interface.text + self.native.title = text def set_on_press(self, handler): # No special handling required diff --git a/core/src/toga/widgets/button.py b/core/src/toga/widgets/button.py index bb5a10b6aa..edb41cef48 100644 --- a/core/src/toga/widgets/button.py +++ b/core/src/toga/widgets/button.py @@ -89,14 +89,14 @@ def __init__( @property def text(self): """The text displayed on the button.""" - return self._text + return self._impl.get_text() @text.setter def text(self, value): if value is None: - self._text = "" + value = "" else: - self._text = str(value) + value = str(value) self._impl.set_text(value) self._impl.rehint() diff --git a/dummy/src/toga_dummy/widgets/button.py b/dummy/src/toga_dummy/widgets/button.py index 38fe1f25ae..88d2ef9877 100644 --- a/dummy/src/toga_dummy/widgets/button.py +++ b/dummy/src/toga_dummy/widgets/button.py @@ -6,7 +6,10 @@ def create(self): self._action("create Button") def set_text(self, text): - self._set_value("text", self.interface.text) + self._set_value("text", text) + + def get_text(self): + return self._get_value("text") def set_on_press(self, handler): self._set_value("on_press", handler) diff --git a/gtk/src/toga_gtk/widgets/button.py b/gtk/src/toga_gtk/widgets/button.py index 39bbc55099..0b33833947 100644 --- a/gtk/src/toga_gtk/widgets/button.py +++ b/gtk/src/toga_gtk/widgets/button.py @@ -12,6 +12,9 @@ def create(self): self.native.connect("show", lambda event: self.rehint()) self.native.connect("clicked", self.gtk_on_press) + def get_text(self): + return self.native.get_label() + def set_text(self, text): self.native.set_label(self.interface.text) self.rehint() diff --git a/iOS/src/toga_iOS/widgets/button.py b/iOS/src/toga_iOS/widgets/button.py index 237f22a950..c63b5a286e 100644 --- a/iOS/src/toga_iOS/widgets/button.py +++ b/iOS/src/toga_iOS/widgets/button.py @@ -38,6 +38,9 @@ def create(self): # Add the layout constraints self.add_constraints() + def get_text(self): + return str(self.native.title) + def set_text(self, text): self.native.setTitle(self.interface.text, forState=UIControlStateNormal) diff --git a/web/src/toga_web/widgets/button.py b/web/src/toga_web/widgets/button.py index 70b79a4463..8bfe2cea0d 100644 --- a/web/src/toga_web/widgets/button.py +++ b/web/src/toga_web/widgets/button.py @@ -13,6 +13,9 @@ def dom_onclick(self, event): if self.interface.on_press: self.interface.on_press(self.interface) + def get_text(self): + return self.native.innerHTML + def set_text(self, text): self.native.innerHTML = text diff --git a/winforms/src/toga_winforms/widgets/button.py b/winforms/src/toga_winforms/widgets/button.py index ed0db90cee..c27d024676 100644 --- a/winforms/src/toga_winforms/widgets/button.py +++ b/winforms/src/toga_winforms/widgets/button.py @@ -18,6 +18,9 @@ def winforms_click(self, sender, event): if self.interface.on_press: self.interface.on_press(self.interface) + def get_text(self): + return self.native.Text + def set_text(self, text): self.native.Text = self.interface.text self.rehint()