diff --git a/build.py b/build.py index 36c788a5..f8ffbbaf 100644 --- a/build.py +++ b/build.py @@ -179,18 +179,18 @@ def build_cocoa_bridging_interfaces(): import objp.p2o add_to_pythonpath('cocoa') add_to_pythonpath('cocoalib') - from inter.details_panel import PyDetailsPanel - from inter.extra_fairware_reminder import PyExtraFairwareReminder - from inter.stats_label import PyStatsLabel + from inter.details_panel import PyDetailsPanel, DetailsPanelView + from inter.extra_fairware_reminder import PyExtraFairwareReminder, ExtraFairwareReminderView + from inter.stats_label import PyStatsLabel, StatsLabelView for class_ in [PyDetailsPanel, PyExtraFairwareReminder, PyStatsLabel]: objp.o2p.generate_objc_code(class_, 'cocoa/autogen') - for fn in os.listdir('cocoa/base/bridge'): - basename = fn[:-2] - header_path = op.join('cocoa/base/bridge', fn) - extmodule_path = op.join('build', basename + '.m') - objp.p2o.generate_python_proxy_code(header_path, extmodule_path) + for class_ in [DetailsPanelView, ExtraFairwareReminderView, StatsLabelView]: + clsspec = objp.o2p.spec_from_python_class(class_) + clsname = class_.__name__ + extmodule_path = op.join('build', clsname + '.m') + objp.p2o.generate_python_proxy_code_from_clsspec(clsspec, extmodule_path) exts = [ - Extension(basename, [extmodule_path, 'build/ObjP.m'], + Extension(clsname, [extmodule_path, 'build/ObjP.m'], extra_link_args=["-framework", "Foundation"]), ] setup( diff --git a/cocoa/base/bridge/DetailsPanelView.h b/cocoa/base/bridge/DetailsPanelView.h deleted file mode 100644 index 8d9abf22..00000000 --- a/cocoa/base/bridge/DetailsPanelView.h +++ /dev/null @@ -1,5 +0,0 @@ -#import - -@protocol DetailsPanelView -- (void)refresh; -@end \ No newline at end of file diff --git a/cocoa/base/bridge/ExtraFairwareReminderView.h b/cocoa/base/bridge/ExtraFairwareReminderView.h deleted file mode 100644 index a7806194..00000000 --- a/cocoa/base/bridge/ExtraFairwareReminderView.h +++ /dev/null @@ -1,8 +0,0 @@ -#import - -@protocol ExtraFairwareReminderView -- (void)startTimer; -- (void)stopTimer; -- (void)setButtonText:(NSString *)text; -- (void)enableButton; -@end \ No newline at end of file diff --git a/cocoa/base/bridge/StatsLabelView.h b/cocoa/base/bridge/StatsLabelView.h deleted file mode 100644 index 5bd6ba6b..00000000 --- a/cocoa/base/bridge/StatsLabelView.h +++ /dev/null @@ -1,5 +0,0 @@ -#import - -@protocol StatsLabelView -- (void)refresh; -@end \ No newline at end of file diff --git a/cocoa/inter/details_panel.py b/cocoa/inter/details_panel.py index 3c98c6da..4ac39d9a 100644 --- a/cocoa/inter/details_panel.py +++ b/cocoa/inter/details_panel.py @@ -1,4 +1,7 @@ -from cocoa.inter2 import PyGUIObject +from cocoa.inter2 import PyGUIObject, GUIObjectView + +class DetailsPanelView(GUIObjectView): + pass class PyDetailsPanel(PyGUIObject): def numberOfRows(self) -> int: diff --git a/cocoa/inter/extra_fairware_reminder.py b/cocoa/inter/extra_fairware_reminder.py index 2ec99bd6..47b9871c 100644 --- a/cocoa/inter/extra_fairware_reminder.py +++ b/cocoa/inter/extra_fairware_reminder.py @@ -1,5 +1,12 @@ +from objp.util import dontwrap from cocoa.inter2 import PyGUIObject +class ExtraFairwareReminderView: + def startTimer(self): pass + def stopTimer(self): pass + def setButtonText_(self, text: str): pass; + def enableButton(self): pass + class PyExtraFairwareReminder(PyGUIObject): def start(self): self.model.start() @@ -8,14 +15,18 @@ class PyExtraFairwareReminder(PyGUIObject): self.model.update_button() # model --> view + @dontwrap def start_timer(self): self.callback.startTimer() + @dontwrap def stop_timer(self): self.callback.stopTimer() + @dontwrap def enable_button(self): self.callback.enableButton() + @dontwrap def set_button_text(self, text): self.callback.setButtonText_(text) diff --git a/cocoa/inter/stats_label.py b/cocoa/inter/stats_label.py index 16788fde..b36fbcb0 100644 --- a/cocoa/inter/stats_label.py +++ b/cocoa/inter/stats_label.py @@ -1,4 +1,7 @@ -from cocoa.inter2 import PyGUIObject +from cocoa.inter2 import PyGUIObject, GUIObjectView + +class StatsLabelView(GUIObjectView): + pass class PyStatsLabel(PyGUIObject):