def create_widgets(self): '''Create basic 3 row x 3 col search (find) dialog. Other dialogs override subsidiary create_x methods as needed. Replace and Find-in-Files add another entry row. ''' top = Toplevel(self.root) top.bind("<Return>", self.default_command) top.bind("<Escape>", self.close) top.protocol("WM_DELETE_WINDOW", self.close) top.wm_title(self.title) top.wm_iconname(self.icon) self.top = top self.inner = ui.padframe(ui.Frame(top), 10) self.inner.grid(column=0, row=0, sticky='nwes') self.row = 0 self.inner.grid_columnconfigure(0, pad=2, weight=0) self.inner.grid_columnconfigure(1, pad=2, minsize=100, weight=100) self.create_entries() # row 0 (and maybe 1), cols 0, 1 self.create_option_buttons() # next row, cols 0, 1 self.create_other_buttons() # next row, cols 0, 1 self.create_command_buttons() # col 2, all rows
def make_gui(self): pyshell = self.pyshell self.flist = pyshell.flist self.root = root = pyshell.root self.tooltip = None self.var_values = {} _ttk = self._ttk self.top = top = self.flist.new_container(own_window=True) self.top.add_component(self) self.top.w.bind("<Escape>", self.close) self.var_open_source_windows = BooleanVar(top.w, False) self.pane = ui.PanedWindow(self.top.w, orient='horizontal') self.pane.grid(column=0, row=0, sticky='nwes') self.top.w.grid_columnconfigure(0, weight=1) self.top.w.grid_rowconfigure(0, weight=1) self.left = left = ui.padframe(ui.Frame(self.pane), 5) if _ttk: self.pane.add(left, weight=1) else: self.pane.add(left, stretch='always', sticky='nsew') controls = ui.Frame(left) col = 0 f = ('helvetica', 9) self.buttondata = {} self.buttons = ['go', 'step', 'over', 'out', 'stop', 'prefs'] self.button_names = { 'go': 'Go', 'step': 'Step', 'over': 'Over', 'out': 'Out', 'stop': 'Stop', 'prefs': 'Options' } self.button_cmds = { 'go': self.cont, 'step': self.step, 'over': self.next, 'out': self.ret, 'stop': self.quit, 'prefs': self.options } for key in self.buttons: normal = ui.image('debug_' + key + '.gif') disabled = ui.image('debug_' + key + '_disabled.gif') b = ui.Label(controls, image=normal, text=self.button_names[key], compound='top', font=f) b.grid(column=col, row=0, padx=[0, 5]) self.buttondata[key] = (b, normal, disabled) col += 1 self.enable_buttons(['prefs']) self.status = ui.Label(controls, text=' ', font=('helvetica', 13)) self.status.grid(column=6, row=0, sticky='nw', padx=[25, 0]) controls.grid(column=0, row=0, sticky='new', pady=[0, 6]) controls.grid_columnconfigure(7, weight=1) self.current_line_img = ui.image('debug_current.gif') self.regular_line_img = ui.image('debug_line.gif') if _ttk: self.stack = ttk.Treeview(left, columns=('statement', ), height=5, selectmode='browse') self.stack.column('#0', width=100) self.stack.column('#1', width=150) self.stack.tag_configure('error', foreground='red') else: self.stack = Listbox(left, height=5, width=35, selectmode='browse', exportselection=False, activestyle='none') self.stack.bind('<<TreeviewSelect>>' if _ttk else '<<ListboxSelect>>', lambda e: self.stack_selection_changed()) self.stack.bind('<Double-1>', lambda e: self.stack_doubleclick()) self.stack.bind('<<context-menu>>', self.stack_contextmenu) scroll = ui.Scrollbar(left, command=self.stack.yview) self.stack['yscrollcommand'] = scroll.set self.stack.grid(column=0, row=2, sticky='nwes') scroll.grid(column=1, row=2, sticky='ns') left.grid_columnconfigure(0, weight=1) left.grid_rowconfigure(2, weight=1) right = ui.padframe(ui.Frame(self.pane), 5) if _ttk: self.pane.add(right, weight=1) else: self.pane.add(right, stretch='always', sticky='nsew') if _ttk: self.vars = ttk.Treeview(right, columns=('value', ), height=5, selectmode='none') self.locals = self.vars.insert('', 'end', text='Locals', open=True) self.globals = self.vars.insert('', 'end', text='Globals', open=False) self.vars.column('#0', width=100) self.vars.column('#1', width=150) else: self.vars = Listbox(right, height=5, width=35, selectmode='none', exportselection=False, activestyle='none') self.vars.bind('<Motion>', self.mouse_moved_vars) self.vars.bind('<Leave>', self.leave_vars) scroll2 = ui.Scrollbar(right, command=self.vars.yview) self.vars['yscrollcommand'] = scroll2.set self.vars.grid(column=0, row=0, sticky='nwes') scroll2.grid(column=1, row=0, sticky='ns') right.grid_columnconfigure(0, weight=1) right.grid_rowconfigure(0, weight=1) left.bind('<Configure>', lambda e: self._adjust_layout()) self.clear_stack()
def make_gui(self): pyshell = self.pyshell self.flist = pyshell.flist self.root = root = pyshell.root self.tooltip = None self.var_values = {} _ttk = self._ttk self.top = top = self.flist.new_container(own_window=True) self.top.add_component(self) self.top.w.bind("<Escape>", self.close) self.var_open_source_windows = BooleanVar(top.w, False) self.pane = ui.PanedWindow(self.top.w, orient='horizontal') self.pane.grid(column=0, row=0, sticky='nwes') self.top.w.grid_columnconfigure(0, weight=1) self.top.w.grid_rowconfigure(0, weight=1) self.left = left = ui.padframe(ui.Frame(self.pane), 5) if _ttk: self.pane.add(left, weight=1) else: self.pane.add(left, stretch='always', sticky='nsew') controls = ui.Frame(left) col = 0 f = ('helvetica', 9) self.buttondata = {} self.buttons = ['go', 'step', 'over', 'out', 'stop', 'prefs'] self.button_names = {'go':'Go', 'step':'Step', 'over':'Over', 'out':'Out', 'stop':'Stop', 'prefs':'Options'} self.button_cmds = {'go':self.cont, 'step':self.step, 'over':self.next, 'out':self.ret, 'stop':self.quit, 'prefs':self.options} for key in self.buttons: normal = ui.image('debug_'+key+'.gif') disabled = ui.image('debug_'+key+'_disabled.gif') b = ui.Label(controls, image=normal, text=self.button_names[key], compound='top', font=f) b.grid(column=col, row=0, padx=[0,5]) self.buttondata[key] = (b, normal, disabled) col += 1 self.enable_buttons(['prefs']) self.status = ui.Label(controls, text=' ', font=('helvetica', 13)) self.status.grid(column=6, row=0, sticky='nw', padx=[25,0]) controls.grid(column=0, row=0, sticky='new', pady=[0,6]) controls.grid_columnconfigure(7, weight=1) self.current_line_img = ui.image('debug_current.gif') self.regular_line_img = ui.image('debug_line.gif') if _ttk: self.stack = ttk.Treeview(left, columns=('statement', ), height=5, selectmode='browse') self.stack.column('#0', width=100) self.stack.column('#1', width=150) self.stack.tag_configure('error', foreground='red') else: self.stack = Listbox(left, height=5, width=35, selectmode='browse', exportselection=False, activestyle='none') self.stack.bind('<<TreeviewSelect>>' if _ttk else '<<ListboxSelect>>', lambda e: self.stack_selection_changed()) self.stack.bind('<Double-1>', lambda e: self.stack_doubleclick()) self.stack.bind('<<context-menu>>', self.stack_contextmenu) scroll = ui.Scrollbar(left, command=self.stack.yview) self.stack['yscrollcommand'] = scroll.set self.stack.grid(column=0, row=2, sticky='nwes') scroll.grid(column=1, row=2, sticky='ns') left.grid_columnconfigure(0, weight=1) left.grid_rowconfigure(2, weight=1) right = ui.padframe(ui.Frame(self.pane), 5) if _ttk: self.pane.add(right, weight=1) else: self.pane.add(right, stretch='always', sticky='nsew') if _ttk: self.vars = ttk.Treeview(right, columns=('value',), height=5, selectmode='none') self.locals = self.vars.insert('', 'end', text='Locals', open=True) self.globals = self.vars.insert('', 'end', text='Globals', open=False) self.vars.column('#0', width=100) self.vars.column('#1', width=150) else: self.vars = Listbox(right, height=5, width=35, selectmode='none', exportselection=False, activestyle='none') self.vars.bind('<Motion>', self.mouse_moved_vars) self.vars.bind('<Leave>', self.leave_vars) scroll2 = ui.Scrollbar(right, command=self.vars.yview) self.vars['yscrollcommand'] = scroll2.set self.vars.grid(column=0, row=0, sticky='nwes') scroll2.grid(column=1, row=0, sticky='ns') right.grid_columnconfigure(0, weight=1) right.grid_rowconfigure(0, weight=1) left.bind('<Configure>', lambda e: self._adjust_layout()) self.clear_stack()