def ProblemParameters(self, nb, name): print "problem" w = nb.page(name) prefix = Tix.OptionName(w) if not prefix: prefix = '' w.option_add('*' + prefix + '*TixLabelFrame*label.padX', 4) func = Tix.LabelFrame(w, label='functions') bound = Tix.LabelFrame(w, label='rectangular boundary') de = Tix.LabelFrame(w, label='differential equation') bc = Tix.LabelFrame(w, label='boundary conditions') monitor = Tix.LabelFrame(w, label='Problem set') self.ProbMonitor(monitor.frame) self.ProbFunc(func.frame) self.ProbBound(bound.frame) self.ProbDiffEqu(de.frame) self.ProbBoundCond(bc.frame) monitor.form(left=0, right=-1, top=0) func.form(left=0, right='%50', top=monitor) de.form(left=func, right=-1, top=monitor) bound.form(left=0, right='&' + str(func), top=func) bc.form(left=func, right=-1, top=de)
def SolutionProb(self, w): de = Tix.LabelFrame(w, label='Current Problems') bound = Tix.LabelFrame(w, label='Boundary Information') self.ProbMonitorDiffEqu(de.frame) self.ProbMonitorBoundary(bound.frame) de.pack(side=Tix.TOP, anchor=Tix.W) bound.pack(side=Tix.TOP, anchor=Tix.W)
def MkDirList(nb, name): w = nb.page(name) options = "label.padX 4" dir = Tix.LabelFrame(w, label='Tix.DirList', options=options) fsbox = Tix.LabelFrame(w, label='Tix.ExFileSelectBox', options=options) MkDirListWidget(dir.frame) MkExFileWidget(fsbox.frame) dir.form(top=0, left=0, right='%40', bottom=-1) fsbox.form(top=0, left='%40', right=-1, bottom=-1)
def MkManager(nb, name): w = nb.page(name) options = 'label.padX 4' pane = Tix.LabelFrame(w, label='Tix.PanedWindow', options=options) note = Tix.LabelFrame(w, label='Tix.NoteBook', options=options) MkPanedWindow(pane.frame) MkNoteBook(note.frame) pane.form(top=0, left=0, right=note, bottom=-1) note.form(top=0, right=-1, bottom=-1)
def ProbMonitor(self, w): de = Tix.LabelFrame(w, label='Current Differential Equations') bound = Tix.LabelFrame(w, label='Static Boundary Information') control = Tix.LabelFrame(w, label='Problem Control') self.ProbMonitorDiffEqu(de.frame) self.ProbMonitorBoundary(bound.frame) self.ProbMonitorControl(control.frame) de.form(left=0, right=-1, top=0) bound.form(left=0, right='%60', top=de) control.form(left=bound, right=-1, top=de)
def MkDirList(nb, name): w = nb.page(name) prefix = Tix.OptionName(w) if not prefix: prefix = '' w.option_add('*' + prefix + '*TixLabelFrame*label.padX', 4) dir = Tix.LabelFrame(w, label='tixDirList') fsbox = Tix.LabelFrame(w, label='tixExFileSelectBox') MkDirListWidget(dir.frame) MkExFileWidget(fsbox.frame) dir.form(top=0, left=0, right='%40', bottom=-1) fsbox.form(top=0, left='%40', right=-1, bottom=-1)
def MkManager(nb, name): w = nb.page(name) prefix = Tix.OptionName(w) if not prefix: prefix = '' w.option_add('*' + prefix + '*TixLabelFrame*label.padX', 4) pane = Tix.LabelFrame(w, label='tixPanedWindow') note = Tix.LabelFrame(w, label='tixNoteBook') MkPanedWindow(pane.frame) MkNoteBook(note.frame) pane.form(top=0, left=0, right=note, bottom=-1) note.form(top=0, right=-1, bottom=-1)
def MkScroll(nb, name): w = nb.page(name) options = 'label.padX 4' sls = Tix.LabelFrame(w, label='Tix.ScrolledListBox', options=options) swn = Tix.LabelFrame(w, label='Tix.ScrolledWindow', options=options) stx = Tix.LabelFrame(w, label='Tix.ScrolledText', options=options) MkSList(sls.frame) MkSWindow(swn.frame) MkSText(stx.frame) sls.form(top=0, left=0, right='%33', bottom=-1) swn.form(top=0, left=sls, right='%66', bottom=-1) stx.form(top=0, left=swn, right=-1, bottom=-1)
def skyeye_messagebox(self): top = self.root pane = Tix.LabelFrame(top, label='Message Area', labelside="acrosstop") text = Tix.ScrolledText(pane, height=100, scrollbar="y") text.text.insert(Tix.END, "Welcome to skyeye") text.pack(fill=Tix.BOTH, padx=8, pady=20) self.messagebox = text return pane
def view_cpu(self): self.message("You are now setting the cpu and mainboard information") if self.cpu_once == 1: self.cpu_board_ok() return cpu_list = ["arm", "bfin"] board_list = [ "at91", "at91rm92", "clps7110", "clps9312", "cs89712" "ep7212", "ep9312", "lh79520", "lh79520-hardware", "lh79520-irqs", "lpc", "ns9750", "pxa", "s3c44b0", "s3c2410x", "s3c4510b", "sa1100", "serial_amba", "serial_amba_pl011", "sharp" ] top = self.skyeye_body("Cpu & Mainboard") cpu = Tix.LabelFrame(top, label='Cpu', labelside="acrosstop", padx=5, pady=10) board = Tix.LabelFrame(top, label='Mainboard', labelside="acrosstop", padx=5, pady=10) cpu_s = Tix.OptionMenu(cpu, label="Cpu: ", command=self.cpu_select) board_s = Tix.OptionMenu(board, label="Mainboard: ", command=self.board_select) ok = Tix.Button(top, text="OK", command=self.cpu_board_ok) for x in cpu_list: cpu_s.add_command(x, label=x) for x in board_list: board_s.add_command(x, label=x) cpu_s.pack(padx=5, pady=10) cpu.grid(row=0, column=0, padx=5, pady=10) board_s.pack(padx=5, pady=10) board.grid(row=0, column=1, padx=5, pady=10) ok.grid(row=1, column=0, columnspan=2, padx=5, pady=10) self.skyeye_redobody()
def MkScroll(nb, name): w = nb.page(name) prefix = Tix.OptionName(w) if not prefix: prefix = '' w.option_add('*' + prefix + '*TixLabelFrame*label.padX', 4) sls = Tix.LabelFrame(w, label='tixScrolledListBox') swn = Tix.LabelFrame(w, label='tixScrolledWindow') stx = Tix.LabelFrame(w, label='tixScrolledText') MkSList(sls.frame) MkSWindow(swn.frame) MkSText(stx.frame) sls.form(top=0, left=0, right='%33', bottom=-1) swn.form(top=0, left=sls, right='%66', bottom=-1) stx.form(top=0, left=swn, right=-1, bottom=-1)
def ui(self, master): if self._ui: return self._ui self._ui = Tk.Frame(master) self.units = self._add_opt(UNITS, self._ui, -1) self.page = Tix.LabelFrame(self._ui, label="Page Options") self.page.pack(fill=Tk.X) self.paperType = self._add_opt(PAPER_TYPE, self.page.frame, 0) self.pOrient = self._add_opt(PAGE_ORIENTATION, self.page.frame, 1) self.pWidth = self._add_opt(PAGE_WIDTH, self.page.frame, 2) self.pHeight = self._add_opt(PAGE_HEIGHT, self.page.frame, 3) pcmd = Tix.LabelFrame(self._ui, label="Printer Command:") pcmd.pack(fill=Tk.X) cmd = self._add_opt(PRINTER_CMD, pcmd.frame, -1) cmd._option.xview(Tk.END)
def skyeye_body(self, str): top = self.root try: self.body.destroy() except: pass self.body = Tix.LabelFrame(top, label=str, labelside="acrosstop") self.body.pack(fill=Tix.BOTH, padx=8, pady=20) return self.body
def SolutionRepresentation(self, nb, name): print "solution" w = nb.page(name) prefix = Tix.OptionName(w) if not prefix: prefix = '' w.option_add('*' + prefix + '*TixLabelFrame*label.padX', 4) rep_monitor = Tix.LabelFrame(w, label='representation workbench') ## de = Tix.LabelFrame(w, label='Current Differential Equations') ## bound = Tix.LabelFrame(w, label='Static Boundary Information') rep_prob = Tix.LabelFrame(w, label='Problem options') rep_choices = Tix.LabelFrame(w, label='representation options') self.SolutionRepresentationMonitor(rep_monitor.frame) self.SolutionProb(rep_prob.frame) self.RepresentationChoicesSelection(rep_choices.frame) # a rep_monitor.form(left=0, right=-1, top=0) rep_prob.form(left=0, right=-1, top=rep_monitor) rep_choices.form(left=0, right=-1, top=rep_prob)
def MkChoosers(nb, name): w = nb.page(name) prefix = Tix.OptionName(w) if not prefix: prefix = '' w.option_add('*' + prefix + '*TixLabelFrame*label.padX', 4) til = Tix.LabelFrame(w, label='Chooser Widgets') cbx = Tix.LabelFrame(w, label='tixComboBox') ctl = Tix.LabelFrame(w, label='tixControl') sel = Tix.LabelFrame(w, label='tixSelect') opt = Tix.LabelFrame(w, label='tixOptionMenu') fil = Tix.LabelFrame(w, label='tixFileEntry') fbx = Tix.LabelFrame(w, label='tixFileSelectBox') tbr = Tix.LabelFrame(w, label='Tool Bar') MkTitle(til.frame) MkCombo(cbx.frame) MkControl(ctl.frame) MkSelect(sel.frame) MkOptMenu(opt.frame) MkFileEnt(fil.frame) MkFileBox(fbx.frame) MkToolBar(tbr.frame) # First column: comBox and selector cbx.form(top=0, left=0, right='%33') sel.form(left=0, right='&' + str(cbx), top=cbx) opt.form(left=0, right='&' + str(cbx), top=sel, bottom=-1) # Second column: title .. etc til.form(left=cbx, top=0, right='%66') ctl.form(left=cbx, right='&' + str(til), top=til) fil.form(left=cbx, right='&' + str(til), top=ctl) tbr.form(left=cbx, right='&' + str(til), top=fil, bottom=-1) # # Third column: file selection fbx.form(right=-1, top=0, left='%66')
def MkChoosers(nb, name): w = nb.page(name) options = "label.padX 4" til = Tix.LabelFrame(w, label='Chooser Widgets', options=options) cbx = Tix.LabelFrame(w, label='tixComboBox', options=options) ctl = Tix.LabelFrame(w, label='tixControl', options=options) sel = Tix.LabelFrame(w, label='tixSelect', options=options) opt = Tix.LabelFrame(w, label='tixOptionMenu', options=options) fil = Tix.LabelFrame(w, label='tixFileEntry', options=options) fbx = Tix.LabelFrame(w, label='tixFileSelectBox', options=options) tbr = Tix.LabelFrame(w, label='Tool Bar', options=options) MkTitle(til.frame) MkCombo(cbx.frame) MkControl(ctl.frame) MkSelect(sel.frame) MkOptMenu(opt.frame) MkFileEnt(fil.frame) MkFileBox(fbx.frame) MkToolBar(tbr.frame) # First column: comBox and selector cbx.form(top=0, left=0, right='%33') sel.form(left=0, right='&' + str(cbx), top=cbx) opt.form(left=0, right='&' + str(cbx), top=sel, bottom=-1) # Second column: title .. etc til.form(left=cbx, top=0, right='%66') ctl.form(left=cbx, right='&' + str(til), top=til) fil.form(left=cbx, right='&' + str(til), top=ctl) tbr.form(left=cbx, right='&' + str(til), top=fil, bottom=-1) # # Third column: file selection fbx.form(right=-1, top=0, left='%66')
def createLintWidgets(self): lf = Tix.LabelFrame(self) lf['label'] = 'Lint' lf.pack(side='top',fill='both',expand=1) oe = Tix.FileEntry(lf) oe['dialogtype'] = 'tixExFileSelectDialog' oe['label'] = 'Lint output: (.html)' oe.pack(side='top',fill='x',expand=1) self.lint_output = Tix.StringVar() oe['variable'] = self.lint_output oe['command'] = self.lintOutputChanged if self.conf.has_option('Lint','output'): self.lint_output.set(self.conf.get('Lint','output')) ma = Tix.LabelEntry(lf) ma['label'] = 'Maximum age:' self.max_age = Tix.DoubleVar() ma.entry['textvariable'] = self.max_age self.max_age.set(0.0) ma.pack(side='top') opts = Tix.Select(lf,allowzero=True) opts['label'] = 'Options' opts.add('birth',text='birth') opts.add('death',text='death') opts.pack(side='top',expand=1) self.lint_options = Tix.StringVar() opts['variable'] = self.lint_options lb = Tix.Button(lf) lb['text'] = 'Run Lint' lb['command'] = self.runLint lb.pack(side='right')
# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
def fillInUI(self, parent): name, save = filenames() label = Tk.Label( parent, justify=Tk.LEFT, text="This is a tool for disabling graphics features that might be\n" "unreliable on your platform. Changing settings often results\n" "in lower performance or lower visual quality.\n") label.pack(padx=2) if self.message: label = Tk.Label(parent, justify=Tk.LEFT, foreground='red', text=self.message) label.pack(padx=2) oglinfo = Tix.LabelFrame(parent, label="OpenGL information") oglinfo.pack(padx=2) n = Tk.Label(oglinfo.frame, text="Vendor:") n.grid(row=0, column=0, sticky='e', padx=2) v = Tk.Label(oglinfo.frame, text=gi.getVendor()) v.grid(row=0, column=1, sticky='w', padx=2) n = Tk.Label(oglinfo.frame, text="Renderer:") n.grid(row=1, column=0, sticky='e', padx=2) v = Tk.Label(oglinfo.frame, text=gi.getRenderer()) v.grid(row=1, column=1, sticky='w', padx=2) n = Tk.Label(oglinfo.frame, text="Version:") n.grid(row=2, column=0, sticky='e', padx=2) v = Tk.Label(oglinfo.frame, text=gi.getVersion()) v.grid(row=2, column=1, sticky='w', padx=2) n = Tk.Label(oglinfo.frame, text="OS:") n.grid(row=3, column=0, sticky='e', padx=2) v = Tk.Label(oglinfo.frame, text=gi.getOS()) v.grid(row=3, column=1, sticky='w', padx=2) features = Tix.LabelFrame(parent, label="Enabled OpenGL features:") features.pack(padx=2) for i in range(gi.NumFeatures): b = BooleanOption(features.frame, i // 2, FeatureNames[i], gi.has(i), None, startCol=2 * (i % 2)) if (gi.hasInfo(i) & (gi.Extension | gi.Native)) == 0: b.disable() self.features.append(b) self.factoryDefaults = tuple(f.get() for f in self.features) self.Actions = ( 'Disable All', 'Revert to Saved', 'Factory Defaults', 'Save', ) self.actionWidgets = {} for a in self.Actions: def command(s=self, a=a): if s.actionWidgets[a].cget('state') != 'disabled': getattr(s, buttonFuncName(a))() b = Tk.Button(parent, text=a, command=command) b.pack(side=Tk.RIGHT, padx=2, pady=2) self.actionWidgets[a] = b if not os.path.exists(save): b = self.actionWidgets['Revert to Saved'] b.config(state=Tk.DISABLED) elif not self.message: self.ReverttoSaved()
def fillInUI(self, master): self._ModelTrigger = None #self._SetupTrigger = None self._SizeTrigger = None self.raytrace = None # Image Size imageSetup = Tix.LabelFrame(master, label="Image Size") imageSetup.pack(fill=Tk.X, ipadx=2, ipady=2) subframe = imageSetup.frame #subframe = Tk.Frame(imageSetup.frame) #subframe.pack(fill=Tk.BOTH, expand=1) # add in conversion factor for pixels and graphics screen from chimera import tkgui win = tkgui.app.graphics res = tkgui.getScreenMMWidth() / win.winfo_screenwidth() convert['pixels'] = mm2pt(res) self.matchAspect = Tk.BooleanVar(master) self.matchAspect.set(1) self.usePrint = Tk.BooleanVar(master) self.usePrint.set(preferences.get(IMAGE_SETUP, USE_PRINT_UNITS)) import itertools row = itertools.count() self.showUsePrint = Tk.Checkbutton(subframe, indicatoron=1, variable=self.usePrint, highlightthickness=0, text=USE_PRINT_UNITS, command=self._updateUsePrint) self.showUsePrint.grid(columnspan=2, row=row.next(), sticky=Tk.W) w, h = chimera.viewer.windowSize self.units = ImageUnitsOption(subframe, row.next(), UNITS, 'pixels', self.updateImageUnits) self.iWidth = FloatOption(subframe, row.next(), 'Image width', w, self.updateImageWidth, min=1e-10) self.iHeight = FloatOption(subframe, row.next(), 'Image height', h, self.updateImageHeight, min=1e-10) matchAspect = Tk.Checkbutton(subframe, indicatoron=1, variable=self.matchAspect, highlightthickness=0, text="Maintain current aspect ratio", command=self.updateMatchAspect) matchAspect.grid(columnspan=2, row=row.next(), sticky=Tk.W) self.grow = Tk.Button(imageSetup.frame, text="Grow to Fit", command=self.Resize, state=Tk.DISABLED) fitrow = row.next() self.grow.grid(row=fitrow, column=0, padx=2, pady=2, sticky=Tk.NSEW) self.shrink = Tk.Button(imageSetup.frame, text="Shrink to Fit", command=lambda f=self.Resize: f(False), state=Tk.DISABLED) self.shrink.grid(row=fitrow, column=1, padx=2, pady=2, sticky=Tk.NSEW) #fetch = Tk.Button(imageSetup.frame, text="Get Pixels", # command=self.fetchWindowSize) #fetch.grid(row=row.next(), column=0, padx=2, pady=2, sticky=Tk.NSEW) #calc = Tk.Button(imageSetup.frame, text="Image Setup", # command=self.showImageSetupDialog) #calc.grid(row=row.next(), column=1, padx=2, pady=2, sticky=Tk.NSEW) self.printRes = FloatOption(subframe, row.next(), DPI, preferences.get(IMAGE_SETUP, DPI), self._updatePrint, min=1) # Image Information info = Tix.LabelFrame(master, label="Image Information") info.pack(fill=Tk.X) d = Tk.Label(info.frame, text="Description:") d.grid(columnspan=2, row=0, column=0, sticky=Tk.W, padx=2, pady=1) self.description = Tk.Entry(info.frame) info.frame.grid_columnconfigure(0, weight=1) info.frame.grid_columnconfigure(1, weight=1) self.description.grid(columnspan=2, row=1, column=0, sticky=Tk.EW, padx=2, pady=2) imageCredits = Tk.Button(info.frame, text="Image Credits", command=self.showImageCreditsDialog) imageCredits.grid(row=2, column=0, padx=2, pady=2) credit = Tk.Button(info.frame, text="Citing Chimera", command=lambda: help.display("credits.html")) credit.grid(row=2, column=1, padx=2, pady=2) # Image camera self.raytrace = BooleanOption(master, -1, 'Raytrace with POV-Ray', False, self._updateRaytrace) self.raytraceOptions = Tk.Button(master, text=POVRAY_SETUP, command=self.showPOVRayOptions) self.raytraceOptions.pack() self.raytraceOptions.pack_forget() self.supersample = SupersampleOption(master, -1, SUPERSAMPLE, preferences.get(IMAGE_SETUP, SUPERSAMPLE), self._updateSS) self.adjustFOV = AdjustFOVOption(master, -1, ADJUST_FOV, preferences.get(IMAGE_SETUP, ADJUST_FOV), self._updateAdjustFOV) self.printMode = _PrintModeOption(master, -1, 'Image camera mode', _PrintModeOption.SAME, self._updatePrintMode) self.lenticular = IntOption(master, -1, 'Number of lenticular images', chimera.Camera.lenticularImageCount(), self._updateLenticular, min=2, width=4) self.lenticular.forget() # switch to user's prefered units self.adjust = convert['pixels'] units = preferences.get(IMAGE_SETUP, UNITS) self._updateUsePrint() self.units.set(units) self.updateImageUnits()
def MkSample(nb, name): w = nb.page(name) options = "label.padX 4" pane = Tix.PanedWindow(w, orientation='horizontal') pane.pack(side=Tix.TOP, expand=1, fill=Tix.BOTH) f1 = pane.add('list', expand='1') f2 = pane.add('text', expand='5') f1['relief'] = 'flat' f2['relief'] = 'flat' lab = Tix.LabelFrame(f1, label='Select a sample program:') lab.pack(side=Tix.TOP, expand=1, fill=Tix.BOTH, padx=5, pady=5) lab1 = Tix.LabelFrame(f2, label='Source:') lab1.pack(side=Tix.TOP, expand=1, fill=Tix.BOTH, padx=5, pady=5) slb = Tix.Tree(lab.frame, options='hlist.width 20') slb.pack(side=Tix.TOP, expand=1, fill=Tix.BOTH, padx=5) stext = Tix.ScrolledText(lab1.frame, name='stext') font = root.tk.eval('tix option get fixed_font') stext.text.config(font=font) frame = Tix.Frame(lab1.frame, name='frame') run = Tix.Button(frame, text='Run ...', name='run') view = Tix.Button(frame, text='View Source ...', name='view') run.pack(side=Tix.LEFT, expand=0, fill=Tix.NONE) view.pack(side=Tix.LEFT, expand=0, fill=Tix.NONE) stext.text['bg'] = slb.hlist['bg'] stext.text['state'] = 'disabled' stext.text['wrap'] = 'none' stext.text['width'] = 80 frame.pack(side=Tix.BOTTOM, expand=0, fill=Tix.X, padx=7) stext.pack(side=Tix.TOP, expand=0, fill=Tix.BOTH, padx=7) slb.hlist['separator'] = '.' slb.hlist['width'] = 25 slb.hlist['drawbranch'] = 0 slb.hlist['indent'] = 10 slb.hlist['wideselect'] = 1 slb.hlist[ 'command'] = lambda args=0, w=w, slb=slb, stext=stext, run=run, view=view: Sample_Action( w, slb, stext, run, view, 'run') slb.hlist[ 'browsecmd'] = lambda args=0, w=w, slb=slb, stext=stext, run=run, view=view: Sample_Action( w, slb, stext, run, view, 'browse') run['command'] = lambda args=0, w=w, slb=slb, stext=stext, run=run, view=view: Sample_Action( w, slb, stext, run, view, 'run') view[ 'command'] = lambda args=0, w=w, slb=slb, stext=stext, run=run, view=view: Sample_Action( w, slb, stext, run, view, 'view') for type in ['widget', 'image']: if type != 'widget': x = Tix.Frame(slb.hlist, bd=2, height=2, width=150, relief=Tix.SUNKEN, bg=slb.hlist['bg']) slb.hlist.add_child(itemtype=Tix.WINDOW, window=x, state='disabled') x = slb.hlist.add_child(itemtype=Tix.TEXT, state='disabled', text=comments[type]) for key in stypes[type]: slb.hlist.add_child(x, itemtype=Tix.TEXT, data=key, text=key) slb.hlist.selection_clear() run['state'] = 'disabled' view['state'] = 'disabled'
def view_device(self): self.message("You are now setting the peripherial information") if self.device_once == 1: self.net_lcd_flash_ok() return net_list = ["cs8900a", "rtl8091", "s3c4510b"] lcd_list = ["ep7312", "pxa", "s3c2410"] flash_list = ["ibm"] top = self.skyeye_body("Peripherial") net = Tix.LabelFrame(top, labelside="acrosstop", padx=5, pady=10) lcd = Tix.LabelFrame(top, labelside="acrosstop", padx=5, pady=10) flash = Tix.LabelFrame(top, labelside="acrosstop", padx=5, pady=10) self.net_v = Tix.StringVar() self.lcd_v = Tix.StringVar() self.flash_v = Tix.StringVar() net_s = Tix.Select(net, label='Net Adapter', allowzero=1, radio=1, orientation=Tix.VERTICAL, labelside=Tix.TOP, command=self.net_select, variable=self.net_v) lcd_s = Tix.Select(lcd, label='Lcd', allowzero=1, radio=1, orientation=Tix.VERTICAL, labelside=Tix.TOP, command=self.lcd_select, variable=self.lcd_v) flash_s = Tix.Select(flash, label='Flash', allowzero=1, radio=1, orientation=Tix.VERTICAL, labelside=Tix.TOP, command=self.flash_select, variable=self.flash_v) ok = Tix.Button(top, text="OK", command=self.net_lcd_flash_ok) for x in net_list: net_s.add(x, text=x) for x in lcd_list: lcd_s.add(x, text=x) for x in flash_list: flash_s.add(x, text=x) net_s.pack(padx=5, pady=10) net.grid(row=0, column=0, padx=5, pady=10) lcd_s.pack(padx=5, pady=10) lcd.grid(row=0, column=1, padx=5, pady=10) flash_s.pack(padx=5, pady=10) flash.grid(row=0, column=2, padx=5, pady=10) ok.grid(row=1, column=1, columnspan=1, padx=5, pady=10) self.skyeye_redobody()
def configureGUI(): global packetHistory, maxSizeControl, toSendEntry, baudRateOptionMenu, timeoutControl, receiveOptionMenu global transmitOptionMenu, maxSizeControl, packetHeaderEntry, portStringOptionMenu, transmitButton root.title( '::: MIT Media Lab ::: Responsive Environments Group ::: Serial Terminal :::' ) # -- window setup mainFrame = Tix.Frame(root, width=WIDTH, height=HEIGHT) mainFrame.bind(sequence='<Destroy>', func=windowDestroyed) mainFrame.pack(fill=Tix.BOTH) # -- packet history display setup packetHistory = Tix.Text(mainFrame, height=WINDOW_HEIGHT) packetHistory.config(state=Tix.DISABLED, font='courier') # -- transmit packet entry setup transmitFrame = Tix.Frame(mainFrame) transmitButton = Tix.Button(master=transmitFrame, text="Transmit packet: ", command=sendUserPacket, state=Tix.DISABLED) toSendEntry = Tix.Entry(master=transmitFrame, textvariable=transmitPacketString) transmitButton.pack(side=Tix.TOP, fill=Tix.X) toSendEntry.pack(side=Tix.TOP, fill=Tix.X) # -- conrols setup controlsFrame = Tix.Frame(mainFrame) # -- serial port controls setup serialPortControlsLabelFrame = Tix.LabelFrame(controlsFrame, label="Serial Port Settings") serialPortControlsFrame = serialPortControlsLabelFrame.frame openOrCloseButton = Tix.Button(master=serialPortControlsFrame, text="Open", command=openOrCloseConnection, width=5, textvariable=openOrCloseString) openOrCloseButton.pack(fill=Tix.X, side=Tix.TOP) portStringOptionMenu = Tix.OptionMenu( master=serialPortControlsFrame, label="Serial port: ", variable=portString, options= 'label.width 25 label.anchor e menubutton.width 15 menubutton.anchor w' ) for p in range(4): portStringOptionMenu.add_command(candidates[p], label=candidates[p]) portStringOptionMenu.pack(fill=Tix.X, side=Tix.TOP) baudRateOptionMenu = Tix.OptionMenu( master=serialPortControlsFrame, label="Baud rate: ", variable=baudRateString, options= 'label.width 25 label.anchor e menubutton.width 15 menubutton.anchor w' ) ## TODO : The enumeration of baud rates should come from the 'serial' module. for r in [300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200]: baudRateOptionMenu.add_command(r, label=r) baudRateOptionMenu.pack(fill=Tix.X, side=Tix.TOP) timeoutControl = Tix.Control(serialPortControlsFrame, label="Packet timeout (seconds): ", variable=packetTimeout, min=0, inc=lambda x: float(x) + 0.001, dec=lambda x: float(x) - 0.001) timeoutControl.label.config(width=25, anchor='e') timeoutControl.pack(fill=Tix.X, side=Tix.TOP) serialPortControlsLabelFrame.pack(side=Tix.LEFT) # -- packet controls setup packetControlsLabelFrame = Tix.LabelFrame(controlsFrame, label="Packet Settings") packetControlsFrame = packetControlsLabelFrame.frame receiveOptionMenu = Tix.OptionMenu( master=packetControlsFrame, label="Decode receptions as: ", variable=receiveMode, command=updateHeader, options= 'label.width 25 label.anchor e menubutton.width 15 menubutton.anchor w' ) for choice in receiveFilters.keys(): receiveOptionMenu.add_command(choice, label=choice) receiveOptionMenu.pack(fill=Tix.X, side=Tix.TOP) transmitOptionMenu = Tix.OptionMenu( master=packetControlsFrame, label="Encode transmissions as: ", variable=transmitMode, options= 'label.width 25 label.anchor e menubutton.width 15 menubutton.anchor w' ) for choice in transmitFilters.keys(): transmitOptionMenu.add_command(choice, label=choice) transmitOptionMenu.pack(fill=Tix.X, side=Tix.TOP) packetHeaderEntry = Tix.LabelEntry( packetControlsFrame, label="Look for packet header: ", options='label.width 25 label.anchor e entry.width 15 entry.anchor w') packetHeaderEntry.entry.config(textvariable=packetHeaderString) packetHeaderEntry.pack(fill=Tix.X, side=Tix.TOP) maxSizeControl = Tix.Control(packetControlsFrame, label="Max packet size (bytes): ", variable=maxPacketSize, min=1) maxSizeControl.label.config(width=25, anchor='e') maxSizeControl.pack(fill=Tix.X, side=Tix.TOP) packetControlsLabelFrame.pack(side=Tix.RIGHT) # -- pack the window up packetHistory.pack(fill=Tix.BOTH, side=Tix.TOP) transmitFrame.pack(fill=Tix.X, side=Tix.TOP) controlsFrame.pack(side=Tix.BOTTOM, fill=Tix.X) # -- menu bar setup mainMenu = Tix.Menu(root) # -- file menu fileMenu = Tix.Menu(mainMenu, tearoff=0) fileMenu.add_separator() fileMenu.add_command(label="Quit", command=quit) mainMenu.add_cascade(label="File", menu=fileMenu) # -- info menu infoMenu = Tix.Menu(mainMenu, tearoff=0) infoMenu.add_command(label="About...") mainMenu.add_cascade(label="Help", menu=infoMenu) # -- add menu to frame root.config(menu=mainMenu) # -- set global variable defaults receiveMode.set(oldReceiveMode) transmitMode.set(oldTransmitMode) maxPacketSize.set(38) packetTimeout.set(0.001) portString.set(candidates[0]) baudRateString.set(115200) openOrCloseString.set('Open')