def __init__(self, parent, debug=False): Tix.Tk.__init__(self, parent) self.parent = parent self.option_add("*Font", "PMingLiU 13") ttk.Style().configure('.', font=tkFont.Font(family="PMingLiU", size=13)) self.tk_setPalette( background=u'AntiqueWhite1', foreground=u'black', selectColor='white', activeForeground='black', selectBackground='black', selectForeground='yellow', disabledForeground='gray', ) _ = Info() _.parent = self _.debug = debug # For console messages and English GUI _.font = u"NSimSun" _.loc = localize # Translation to Chinese _.dbm = dbm.db_manager() # Database API methods _.curr = Info() # For storage current company, list ID's, etc. _.getExtWin = getExtWin self._ = _ # SET LANGUAGE SELECTION self.lang_select = Tix.StringVar() def switch_language(*args): new_lang = self.lang_select.get() settings.update(language=new_lang) setLang(new_lang) self.lang_select.trace_variable('w', switch_language) self.lang_select.set(settings.load().get(u'language', u'English')) # SET AUTO UPDATE OPTION self.auto_update_check = Tix.BooleanVar() self.auto_update_check.set(settings.load().get(u'auto_update_check', True)) def switch_auto_update(*args): new_bool = not settings.load()[u'auto_update_check'] settings.update(auto_update_check=new_bool) self.auto_update_check.trace_variable('w', switch_auto_update) # # SET UP MENU BAR # menubar = Tix.Menu(self) # FILE MENU OPTIONS: LOAD, SAVE, EXIT... filemenu = Tix.Menu(menubar, tearoff=0) # filemenu.add_command(label=_.loc(u"Change Database", 1), command=self.change_db) filemenu.add_command(label=_.loc(u"Exit", 1), command=self.endsession) menubar.add_cascade(label=_.loc(u"Main", 1), menu=filemenu) # REPORT MENU OPTIONS reportmenu = Tix.Menu(menubar, tearoff=0) reportmenu.add_command(label=u"Change location for saving reports", command=set_report_location) reportmenu.add_command(label=u"Activity Report (PDF)", command=lambda:activity_report.main(_)) reportmenu.add_command(label=u"ASE Product QC (PDF)", command=lambda:product_QC_report.main(_)) reportmenu.add_command(label=u"Save client shipments to Excel (6 months).", command=lambda:sales_shipments_to_excel(_)) reportmenu.add_command(label=u"Save incoming shipments to Excel (6 months).", command=lambda:purchases_shipments_to_excel(_)) reportmenu.add_command(label=u"Save all products to Excel file.", command=lambda:save_products_to_excel(_)) reportmenu.add_command(label=u"Save all static data to an Excel file.", command=lambda:staticDB2excel(_)) reportmenu.add_command(label=u"Save all active data to an Excel file.", command=lambda:activeDB2excel(_)) # reportmenu.add_command(label="Report3", command=None, state=Tk.DISABLED) # reportmenu.add_command(label="Report4", command=None, state=Tk.DISABLED) menubar.add_cascade(label=_.loc(u"Reports", 1), menu=reportmenu) # FONT MENU OPTIONS # def setFont(): # self.option_add("*Font", fontsize.get()) # fontmenu = Tix.Menu(menubar, tearoff=0) # fontsize = Tix.StringVar() # fontmenu.add_radiobutton(label=u'Verdana 12', variable=fontsize, # command=setFont, value=u'Verdana 12') # fontmenu.add_radiobutton(label=u'PMingLiU 13', variable=fontsize, # command=setFont, value=u'PMingLiU 13') # fontmenu.add_radiobutton(label=u'NSimSun 13', variable=fontsize, # command=setFont, value=u'NSimSun 13') # menubar.add_cascade(label=_.loc(u"Font", 1), menu=fontmenu) # fontsize.set(u'NSimSun 13') # setFont() # SETTINGS MENU OPTIONS settingsmenu = Tix.Menu(menubar, tearoff=0) lang_menu = Tix.Menu(settingsmenu, tearoff=0) settingsmenu.add_cascade(label=_.loc(u"Language", 1), menu=lang_menu) update_menu = Tix.Menu(settingsmenu, tearoff=0) settingsmenu.add_cascade(label=_.loc(u"Update", 1), menu=update_menu) lang_menu.add_radiobutton(label=u'繁體中文', variable=self.lang_select, value=u'Chinese', selectcolor=u'black') lang_menu.add_radiobutton(label=u'English', variable=self.lang_select, value=u'English', selectcolor=u'black') update_menu.add_command(label=_.loc(u"Check for update", 1), command=self.version_update) update_menu.add_separator() update_menu.add_checkbutton(label=_.loc(u'Auto check for updates',1), onvalue=True, offvalue=False, variable=self.auto_update_check, selectcolor=u'black') settingsmenu.add_separator() settingsmenu.add_command(label=_.loc(u'PO List Ordering', 1), command=lambda: setPOorder(_)) menubar.add_cascade(label=_.loc(u"Settings", 1), menu=settingsmenu) # HELP MENU OPTIONS helpmenu = Tix.Menu(menubar, tearoff=0) helpmenu.add_command(label=_.loc(u"About", 1), command=about) menubar.add_cascade(label=_.loc(u"Help", 1), menu=helpmenu) # menubar.add_separator() menubar.add_separator() menubar.add_command(label=u'DATABASE={}'.format(_.dbm.dbpath), background=u'LightSkyBlue1') self.menubar = menubar # SET AND SHOW MENU self.config(menu=menubar) try: self.geometry(settings.load()['geometry']) except KeyError: #Default geometry self.geometry('1240x800') # SET MAIN NOTEBOOK nb = ttk.Notebook() #---------- Add PO (main) frame #XXX: merging Purchases & Sales frames to PO frame in version 0.3 _.po_frame = ttk.Frame(nb) frames.po_frame.create(_) nb.add(_.po_frame, text='PO') #---------- Add Product frame _.product_frame = ttk.Frame(nb) frames.product_frame.create(_) nb.add(_.product_frame, text=_.loc(u'Products',1)) #---------- Add Pending info frame # frame = ttk.Frame(nb) # frame_pending.get_pending_frame(frame, dmv2) # nb.add(frame, text='Pending', underline=2) #TODO:---------- Add In-Out Records info frame # frame = ttk.Frame(nb) # frame_pending.get_tablet_frame(frame, dmv2) # nb.add(frame, text='Tablet Data', underline=0) #TODO:---------- Add Company data edit frame # frame = ttk.Frame(nb) # frame_company_editor.get_company_editor(frame, dmv2) # nb.add(frame, text='Catalog', underline=0) #TODO:---------- Add Warehouse management frame #--------- Set arrangement of notebook frames nb.pack(side='right', fill='both', expand=1, padx=2, pady=3) if self.auto_update_check.get(): check_for_update.update(self._, settings, silent=True)
def version_update(self): check_for_update.update(self._, settings)