"style-set", self.on_drawingarea_style_set)
self.drawingarea.connect(
"key-press-event", self.on_drawingarea_key_press_event)
- self.vscrollbar.connect(
- "value-changed", self.on_vscrollbar_value_changed)
+ self.adjustment.connect(
+ "value-changed", self.on_adjustment_value_changed)
self.pango_layout = self.drawingarea.create_pango_layout("")
delta = 0
if top_layout is not None:
- delta = top_layout.posY - self.vscrollbar.get_value()
+ delta = top_layout.posY - self.adjustment.value
self.relayout()
self.drawingarea_prev_width = self.drawingarea.allocation.width
- # after relayout, set vscrollbar.value to top layout's posY
+ # after relayout, set adjustment.value to top layout's posY
if top_layout is not None:
- self.vscrollbar.set_value(top_layout.posY - delta)
+ self.adjustment.value = top_layout.posY - delta
def relayout(self):
width = self.drawingarea.allocation.width
x, y = layout.get_pixel_size()
sum_height += y
- self.vscrollbar.set_range(0, sum_height)
+ self.adjustment.upper = sum_height
self.change_vscrollbar_visible()
def change_vscrollbar_visible(self):
else:
self.vscrollbar.show()
+ def _set_adjustment_value(self, value):
+ value = min(self.adjustment.upper - self.adjustment.page_size, value)
+ value = max(self.adjustment.lower, value)
+ self.adjustment.value = value
+
def jump(self, value):
- self.vscrollbar.set_value(value)
+ self._set_adjustment_value(value)
def jump_to_layout(self, layout):
self.jump(layout.posY)
def jump_to_the_end(self):
value = self.adjustment.upper - self.adjustment.page_size
- self.vscrollbar.set_value(value)
+ self._set_adjustment_value(value)
def jump_to_res(self, resnum):
for layout in self.res_layout_list:
return self.button_pressed_pt, self.button_moving_pt
def draw_viewport(self, area):
- view_y = self.vscrollbar.get_value()
+ view_y = self.adjustment.value
self.drawingarea.window.draw_rectangle(
self.drawingarea.style.base_gc[0],
True, area.x, area.y, area.width, area.height)
selection_start, selection_end)
def transform_coordinate_gdk_to_adj(self, y):
- return y + self.vscrollbar.get_value()
+ return y + self.adjustment.value
def transform_coordinate_adj_to_layout(self, x, y, layout):
return x, y - layout.posY
self.wrap_relayout()
self.adjustment.page_size = self.drawingarea.allocation.height
- self.vscrollbar.set_increments(20, self.drawingarea.allocation.height)
+ self.adjustment.step_increment = 20
+ self.adjustment.page_increment = self.drawingarea.allocation.height
# re-set 'value' for prevent overflow
- self.vscrollbar.set_value(self.vscrollbar.get_value())
+ self._set_adjustment_value(self.adjustment.value)
self.change_vscrollbar_visible()
- def on_vscrollbar_value_changed(self, widget, data=None):
+ def on_adjustment_value_changed(self, widget, data=None):
self.drawingarea.queue_draw()
def on_drawingarea_scroll_event(self, widget, event, data=None):
if (old_lay != new_lay
or old_elem != new_elem
or old_idx != new_idx):
- view_y = self.vscrollbar.get_value()
+ view_y = self.adjustment.value
o_y = old_lay.posY
n_y = new_lay.posY
o_width, o_height = old_lay.get_pixel_size()
if event.keyval in (gtk.keysyms.Up, gtk.keysyms.Down,
gtk.keysyms.Page_Up, gtk.keysyms.Page_Down,
gtk.keysyms.Home):
- value = self.vscrollbar.get_value()
+ value = self.adjustment.value
if event.keyval == gtk.keysyms.Up:
- step_increment = self.adjustment.get_property("step-increment")
+ step_increment = self.adjustment.step_increment
value = value - step_increment
elif event.keyval == gtk.keysyms.Down:
- step_increment = self.adjustment.get_property("step-increment")
+ step_increment = self.adjustment.step_increment
value = value + step_increment
elif event.keyval == gtk.keysyms.Page_Up:
- step_increment = self.adjustment.get_property("page-increment")
+ step_increment = self.adjustment.page_increment
value = value - step_increment
elif event.keyval == gtk.keysyms.Page_Down:
- step_increment = self.adjustment.get_property("page-increment")
+ step_increment = self.adjustment.page_increment
value = value + step_increment
elif event.keyval == gtk.keysyms.Home:
value = 0