diff --git a/TermTk/TTkWidgets/menu.py b/TermTk/TTkWidgets/menu.py index 5ffd7297..2f253112 100644 --- a/TermTk/TTkWidgets/menu.py +++ b/TermTk/TTkWidgets/menu.py @@ -75,7 +75,7 @@ class TTkMenuButton(TTkWidget): {TTkMenuButton : { 'default': {'color': TTkColor.RST}, 'highlighted': {'color': TTkColor.fg('#00FF00')+TTkColor.bg('#0055FF')}, - 'hover': {'color': TTkColor.fg('#00FF00')+TTkColor.bg('#0055FF')}, + 'hover': {'color': TTkColor.fg('#00FF00')+TTkColor.bg('#0077FF')}, 'checked': {'color': TTkColor.fg('#00FF00')+TTkColor.bg('#00FFFF')}, 'clicked': {'color': TTkColor.fg('#FFFF00')}, 'disabled': {'color': TTkColor.fg('#888888')}, @@ -211,13 +211,17 @@ class TTkMenuButton(TTkWidget): else: style = self.currentStyle() - # canvas.drawText(text=self._text, width=self.width(), color=style['color']) - canvas.drawMenuBarButton( - text=self._text, - width=self.width(), - color=style['color'], - shortcuts=self._shortcuts, - border=False, submenu=self._submenu) + # '▶','□','▣' + w = self.width() + if self._checkable: + canvas.drawText(width=w, color=style['color'] ,text=('▣ ' if self._checked else '□ ')+self._text) + else: + canvas.drawText(width=w, color=style['color'] ,text=self._text) + if self._submenu: + canvas._set(0, w-1, '▶', style['color']) + off = 0 + for i in self._shortcuts: + canvas._set(0,i+off, self._text.charAt(i), TTkColor.UNDERLINE) class _TTkMenuAreaWidget(TTkAbstractScrollView): __slots__ = ('_submenu','_minWith','_caller') diff --git a/tests/test.ui.030.menu.01.py b/tests/test.ui.030.menu.01.py index 7801d62f..c606a67a 100755 --- a/tests/test.ui.030.menu.01.py +++ b/tests/test.ui.030.menu.01.py @@ -22,12 +22,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -import os -from PIL import Image -import zlib, pickle, base64 - -import sys, os, argparse, math, random - +import sys, os sys.path.append(os.path.join(sys.path[0],'..')) import TermTk as ttk @@ -64,8 +59,8 @@ fileMenu = ttk.TTkMenu(parent=root, pos=(8,6), size=(20,12)) fileMenu.addMenu("New File") fileMenu.addMenu("Old File") fileMenu.addSpacer() -fileMenu.addMenu("Open") -fileMenu.addMenu("Save") +fileMenu.addMenu("Open",checkable=True) +fileMenu.addMenu("Save",checkable=True,checked=True) fileMenu.addMenu("Save as").setDisabled() fileMenu.addSpacer() exportFileMenu = fileMenu.addMenu("E&xport") @@ -81,7 +76,7 @@ fileMenu.addMenu("Close") fileMenu.addSpacer() fileMenu.addMenu("Exit") -window = ttk.TTkWindow(title="Test MenuBar", parent=root,pos=(20,1), size=(60,10), border=True) +window = ttk.TTkWindow(title="Test MenuBar", parent=root,pos=(30,1), size=(60,10), border=True) fileMenu2 = window.menubarTop().addMenu("&Fi&le") fileMenu2.addMenu("New File") fileMenu2.addMenu("Old File") @@ -102,7 +97,7 @@ fileMenu2.addMenu("Close") fileMenu2.addSpacer() fileMenu2.addMenu("Exit") -window = ttk.TTkWindow(title="LOG", parent=root, pos=(0,15), size=(100,10), border=True, layout=ttk.TTkGridLayout()) +window = ttk.TTkWindow(title="LOG", parent=root, pos=(0,20), size=(100,10), border=True, layout=ttk.TTkGridLayout()) ttk.TTkLogViewer(parent=window) root.mainloop() \ No newline at end of file