Browse Source

added menu checkable items

pull/142/head
Eugenio Parodi 3 years ago
parent
commit
a2a85226aa
  1. 20
      TermTk/TTkWidgets/menu.py
  2. 15
      tests/test.ui.030.menu.01.py

20
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')

15
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()
Loading…
Cancel
Save