diff --git a/pysollib/tile/edittextdialog.py b/pysollib/tile/edittextdialog.py index fda53132..8de6916d 100644 --- a/pysollib/tile/edittextdialog.py +++ b/pysollib/tile/edittextdialog.py @@ -27,18 +27,15 @@ __all__ = ['EditTextDialog'] import Tkinter import ttk -# PySol imports -from pysollib.mygettext import _, n_ -from pysollib.mfxutil import KwStruct - # Toolkit imports from tkwidget import MfxDialog +from pysollib.ui.tktile.edittextdialog import BaseEditTextDialog # ************************************************************************ # * # ************************************************************************ -class EditTextDialog(MfxDialog): +class EditTextDialog(BaseEditTextDialog, MfxDialog): def _calcToolkit(self): return ttk @@ -48,51 +45,3 @@ class EditTextDialog(MfxDialog): def _calc_Resizable(self): return False - - def __init__(self, parent, title, text, **kw): - kw = self.initKw(kw) - self._calc_MfxDialog().__init__(self, parent, title, kw.resizable, kw.default) - top_frame, bottom_frame = self.createFrames(kw) - self.createBitmaps(top_frame, kw) - # - self.text_w = Tkinter.Text(top_frame, bd=1, relief="sunken", - wrap="word", width=64, height=16) - self.text_w.pack(side='left', fill="both", expand=True) - ###self.text_w.pack(side='top', padx=kw.padx, pady=kw.pady) - vbar = self._calcToolkit().Scrollbar(top_frame) - vbar.pack(side='right', fill='y') - self.text_w["yscrollcommand"] = vbar.set - vbar["command"] = self.text_w.yview - # - self.text = "" - if text: - self.text = text - old_state = self.text_w["state"] - self.text_w.config(state="normal") - self.text_w.insert("insert", self.text) - self.text_w.config(state=old_state) - # - focus = self.createButtons(bottom_frame, kw) - focus = self.text_w - self.mainloop(focus, kw.timeout) - - def initKw(self, kw): - kw = KwStruct(kw, - strings=(_("&OK"), _("&Cancel")), - default=-1, - resizable=self._calc_Resizable(), - separator=False, - ) - return self._calc_MfxDialog().initKw(self, kw) - - def destroy(self): - self.text = self.text_w.get("1.0", "end") - self._calc_MfxDialog().destroy(self) - - def wmDeleteWindow(self, *event): # ignore - pass - - def mCancel(self, *event): # ignore - pass - - diff --git a/pysollib/tk/edittextdialog.py b/pysollib/tk/edittextdialog.py index c7e253a7..41e366a1 100644 --- a/pysollib/tk/edittextdialog.py +++ b/pysollib/tk/edittextdialog.py @@ -26,18 +26,15 @@ __all__ = ['EditTextDialog'] # imports import Tkinter -# PySol imports -from pysollib.mygettext import _, n_ -from pysollib.mfxutil import KwStruct - # Toolkit imports from tkwidget import MfxDialog +from pysollib.ui.tktile.edittextdialog import BaseEditTextDialog # ************************************************************************ # * # ************************************************************************ -class EditTextDialog(MfxDialog): +class EditTextDialog(BaseEditTextDialog, MfxDialog): def _calcToolkit(self): return Tkinter @@ -47,51 +44,3 @@ class EditTextDialog(MfxDialog): def _calc_Resizable(self): return True - - def __init__(self, parent, title, text, **kw): - kw = self.initKw(kw) - self._calc_MfxDialog().__init__(self, parent, title, kw.resizable, kw.default) - top_frame, bottom_frame = self.createFrames(kw) - self.createBitmaps(top_frame, kw) - # - self.text_w = Tkinter.Text(top_frame, bd=1, relief="sunken", - wrap="word", width=64, height=16) - self.text_w.pack(side='left', fill="both", expand=True) - ###self.text_w.pack(side='top', padx=kw.padx, pady=kw.pady) - vbar = self._calcToolkit().Scrollbar(top_frame) - vbar.pack(side='right', fill='y') - self.text_w["yscrollcommand"] = vbar.set - vbar["command"] = self.text_w.yview - # - self.text = "" - if text: - self.text = text - old_state = self.text_w["state"] - self.text_w.config(state="normal") - self.text_w.insert("insert", self.text) - self.text_w.config(state=old_state) - # - focus = self.createButtons(bottom_frame, kw) - focus = self.text_w - self.mainloop(focus, kw.timeout) - - def initKw(self, kw): - kw = KwStruct(kw, - strings=(_("&OK"), _("&Cancel")), - default=-1, - resizable=self._calc_Resizable(), - separator=False, - ) - return self._calc_MfxDialog().initKw(self, kw) - - def destroy(self): - self.text = self.text_w.get("1.0", "end") - self._calc_MfxDialog().destroy(self) - - def wmDeleteWindow(self, *event): # ignore - pass - - def mCancel(self, *event): # ignore - pass - - diff --git a/pysollib/ui/tktile/edittextdialog.py b/pysollib/ui/tktile/edittextdialog.py new file mode 100644 index 00000000..7dfc1fb3 --- /dev/null +++ b/pysollib/ui/tktile/edittextdialog.py @@ -0,0 +1,53 @@ +import Tkinter + +from pysollib.mygettext import _, n_ +from pysollib.mfxutil import KwStruct + +class BaseEditTextDialog: + def __init__(self, parent, title, text, **kw): + kw = self.initKw(kw) + self._calc_MfxDialog().__init__(self, parent, title, kw.resizable, kw.default) + top_frame, bottom_frame = self.createFrames(kw) + self.createBitmaps(top_frame, kw) + # + self.text_w = Tkinter.Text(top_frame, bd=1, relief="sunken", + wrap="word", width=64, height=16) + self.text_w.pack(side='left', fill="both", expand=True) + ###self.text_w.pack(side='top', padx=kw.padx, pady=kw.pady) + vbar = self._calcToolkit().Scrollbar(top_frame) + vbar.pack(side='right', fill='y') + self.text_w["yscrollcommand"] = vbar.set + vbar["command"] = self.text_w.yview + # + self.text = "" + if text: + self.text = text + old_state = self.text_w["state"] + self.text_w.config(state="normal") + self.text_w.insert("insert", self.text) + self.text_w.config(state=old_state) + # + focus = self.createButtons(bottom_frame, kw) + focus = self.text_w + self.mainloop(focus, kw.timeout) + + def initKw(self, kw): + kw = KwStruct(kw, + strings=(_("&OK"), _("&Cancel")), + default=-1, + resizable=self._calc_Resizable(), + separator=False, + ) + return self._calc_MfxDialog().initKw(self, kw) + + def destroy(self): + self.text = self.text_w.get("1.0", "end") + self._calc_MfxDialog().destroy(self) + + def wmDeleteWindow(self, *event): # ignore + pass + + def mCancel(self, *event): # ignore + pass + + diff --git a/scripts/gen_individual_importing_tests.py b/scripts/gen_individual_importing_tests.py index f8da5320..de1176d1 100644 --- a/scripts/gen_individual_importing_tests.py +++ b/scripts/gen_individual_importing_tests.py @@ -181,6 +181,7 @@ for module_name in [ 'pysollib.tk.wizarddialog', 'pysollib.ui.tktile.card', 'pysollib.ui.tktile.colorsdialog', +'pysollib.ui.tktile.edittextdialog', 'pysollib.ui.tktile.menubar', 'pysollib.ui.tktile.solverdialog', 'pysollib.ui.tktile.tkcanvas',