#!/usr/bin/python # -*- coding: utf-8 -*- # """ Provides menu structure functionalities. Name: tk_menu.py Author: Alessandro dos Santos Ferreira ( santosferreira.alessandro@gmail.com ) """ import sys if sys.version_info[0] < 3: import Tkinter as Tk else: import tkinter as Tk from tk_itemmenu import * class Menu(object): parent = None label = None _items_menu = None def __init__(self, parent, label): self.parent = parent self.label = label self._items_menu = [] def add_command(self, label, action, shortcut): self._items_menu.append( Command(self, label, action, shortcut) ) def add_separator(self): self._items_menu.append( Separator(self) ) def add_check_button(self, label, action, shortcut): self._items_menu.append( CheckButton(self, label, action, shortcut) ) def render(self, menubar): menu = Tk.Menu(menubar, tearoff=0) for item in self._items_menu: item.render(menu) if item.shortcut is not None: self.parent.bind("", item.action) self.parent.bind("", item.action) menubar.add_cascade(label=self.label, menu=menu)