/usr/lib/python2.7/dist-packages/hachoir_wx/hex_view/hex_view_imp.py is in python-hachoir-wx 0.3-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | # -*- coding: utf-8 -*-
from hex_view import get_page_size
from stubs import clamp_range, byte_addr, safe_seek, calc_field_mark, get_page_offset
MAX_SIZE = 10 * 1024
class hex_view_imp_t:
def on_file_ready(self, dispatcher, file):
assert file is not None
self.input = file
self.field = None
self.pos = 0
def on_hex_view_ready(self, dispatcher, view):
assert view is not None
self.view = view
self.fill_view(0)
def fill_view(self, pos):
paged_pos = get_page_offset(pos, self.view.get_width_chars())
if safe_seek(self.input, paged_pos):
size = clamp_range(get_page_size(self.view), 1, MAX_SIZE)
self.view.display_data(self.input.read(size))
self.pos = paged_pos
def on_resized(self):
self.fill_view(self.pos)
self.update_mark()
self.dispatcher.trigger('hex_view_resized', self.view, self.pos)
def on_show_offset(self, dispatcher, pos):
self.fill_view(pos)
self.update_mark()
def on_field_selected(self, dispatcher, field):
self.fill_view(byte_addr(field._getAbsoluteAddress()))
self.update_set_mark(field)
def update_set_mark(self, field):
self.field = field
self.update_mark()
def update_mark(self):
if self.field:
self.view.unmark()
mark = calc_field_mark(self.pos, self.field)
self.view.mark_range(mark[0], mark[1])
|