def __init__(self, parent): WindowTab.__init__(self, parent) self.search_bar = ttk.Labelframe(self, text='Filter', borderwidth=5) self.search_bar.pack(side=Tk.TOP, fill=Tk.X, expand=False) self.search_label = Tk.Label(self.search_bar, text='Pattern') self.search_label.pack(side=Tk.LEFT) self.gap = ttk.Frame(self, height=15) self.gap.pack(side=Tk.TOP, fill=Tk.X, expand=False) self.search_entry = Tk.Entry(self.search_bar) self.search_entry.pack(side=Tk.LEFT, fill=Tk.X, expand=True) self.search_entry.bind('<Return>', self.search) self.panedwindow = ttk.Panedwindow(self, orient=Tk.VERTICAL) self.panedwindow.pack(side=Tk.BOTTOM, fill=Tk.BOTH, expand=True) self.mach_o_table = TreeTable(self, 'Mach-O / Sections', columns=self.MACH_O_TABLE_COLUMNS) self.mach_o_table.tree.configure(selectmode='browse') self.mach_o_table.tree.column(self.MACH_O_TABLE_COLUMNS[1], anchor=Tk.E) self.mach_o_table.tree.column(self.MACH_O_TABLE_COLUMNS[2], anchor=Tk.E) self.mach_o_table.tree.column(self.MACH_O_TABLE_COLUMNS[3], anchor=Tk.E) self.mach_o_table.select_callback = self._mach_o_selected self.panedwindow.add(self.mach_o_table) self.string_table = StringTableView(self) self.string_table.widget.tag_configure(self.LIGHT_BLUE_TAG_NAME, background=self.LIGHT_BLUE) self.panedwindow.add(self.string_table) self._mach_o_info = list() self._filter_mapping = None self._current_segemnt = None # only used by _parse()
def __init__(self, parent): WindowTab.__init__(self, parent) # Create the 3 views self.outer_panedwindow = ttk.Panedwindow(self, orient=Tk.VERTICAL) self.outer_panedwindow.pack(side=Tk.TOP, fill=Tk.BOTH, expand=True) self.inner_panedwindow = ttk.Panedwindow(self.outer_panedwindow, orient=Tk.HORIZONTAL) self.outer_panedwindow.add(self.inner_panedwindow) # A byte range tree on the left self.byte_range_tree = ByteRangeView(self.inner_panedwindow) self.byte_range_tree.select_callback = self.header_selected self.byte_range_tree.open_callback = self.block_opened self.byte_range_tree.configure(width=200, height=100, padding=5) self.inner_panedwindow.add(self.byte_range_tree) # A table of header key-value pairs on the right self.header_table = FieldValueView(self.inner_panedwindow) self.header_table.select_callback = self.field_selected self.header_table.configure(width=100, height=100, padding=5) self.inner_panedwindow.add(self.header_table) # A byte table at the bottom self.bytes_table = BytesView(self.outer_panedwindow) self.bytes_table.configure(width=300, height=100, padding=5) self.outer_panedwindow.add(self.bytes_table)
def __init__(self, parent): WindowTab.__init__(self, parent) self.search_bar = ttk.Labelframe(self, text='Filter', borderwidth=5) self.search_bar.pack(side=Tk.TOP, fill=Tk.X, expand=False) self.search_label = Tk.Label(self.search_bar, text='Pattern') self.search_label.pack(side=Tk.LEFT) self.gap = ttk.Frame(self, height=15) self.gap.pack(side=Tk.TOP, fill=Tk.X, expand=False) self.search_entry = Tk.Entry(self.search_bar) self.search_entry.pack(side=Tk.LEFT, fill=Tk.X, expand=True) self.search_entry.bind('<Return>', self.search) self.panedwindow = ttk.Panedwindow(self, orient=Tk.VERTICAL) self.panedwindow.pack(side=Tk.BOTTOM, fill=Tk.BOTH, expand=True) self.mach_o_table = TreeTable(self, 'Mach-O', columns=self.MACH_O_TABLE_COLUMNS) self.mach_o_table.tree.configure(selectmode='browse') self.mach_o_table.tree.column(self.MACH_O_TABLE_COLUMNS[1], width=75, stretch=False, anchor=Tk.E) self.mach_o_table.tree.column(self.MACH_O_TABLE_COLUMNS[2], width=75, stretch=False, anchor=Tk.E) self.mach_o_table.tree.tag_configure(self.LIGHT_BLUE_TAG_NAME, background=self.LIGHT_BLUE) self.mach_o_table.select_callback = self._mach_o_selected self.panedwindow.add(self.mach_o_table) self.symbol_table = SymbolTableView(self) self.panedwindow.add(self.symbol_table) self._mach_o_info = list() self._filter_mapping = None # map table index to mach-o info index when an entry in mach-o table is clicked