本文整理汇总了Python中zoominterface.Zoomable类的典型用法代码示例。如果您正苦于以下问题:Python Zoomable类的具体用法?Python Zoomable怎么用?Python Zoomable使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Zoomable类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
def __init__(self, element, composition, timeline):
goocanvas.Group.__init__(self)
View.__init__(self)
Zoomable.__init__(self)
self.element = element
self.comp = composition
self.timeline = timeline
self.bg = goocanvas.Rect(
height=self.__HEIGHT__,
fill_color_rgba=self.__NORMAL__,
line_width=0)
self.content = Preview(self.element)
self.name = goocanvas.Text(
x=10,
text=os.path.basename(unquote(element.factory.name)),
font="Sans 9",
fill_color_rgba=0x000000FF,
alignment=pango.ALIGN_LEFT)
self.start_handle = StartHandle(element, timeline,
height=self.__HEIGHT__)
self.end_handle = EndHandle(element, timeline,
height=self.__HEIGHT__)
for thing in (self.bg, self.content, self.start_handle, self.end_handle, self.name):
self.add_child(thing)
if element:
self.zoomChanged()
self.normal()
示例2: __init__
def __init__(self, instance, element, timeline, **kwargs):
self.app = instance
self.element = element
self.timeline = timeline
goocanvas.Image.__init__(self,
pixbuf = TRIMBAR_PIXBUF,
line_width=0,
pointer_events=goocanvas.EVENTS_FILL,
**kwargs
)
View.__init__(self)
Zoomable.__init__(self)
示例3: set_pos
def set_pos(self, item, pos):
x, y = pos
position = Zoomable.pixelToNs(x + self._hadj.get_value())
priority = int((y - self._y_offset + self._vadj.get_value()) //
(LAYER_HEIGHT_EXPANDED + LAYER_SPACING))
self._context.setMode(self._getMode())
self._context.editTo(position, priority)
示例4: _move_temp_source
def _move_temp_source(self, x, y):
x1, y1, x2, y2 = self._controls.get_allocation()
offset = 10 + (x2 - x1)
x, y = self._canvas.convert_from_pixels(x - offset, y)
priority = int((y // (LAYER_HEIGHT_EXPANDED + LAYER_SPACING)))
delta = Zoomable.pixelToNs(x)
self._move_context.editTo(delta, priority)
示例5: _updateScrollAdjustments
def _updateScrollAdjustments(self):
a = self.get_allocation()
size = Zoomable.nsToPixel(self.timeline.duration)
self.hadj.props.lower = 0
self.hadj.props.upper = size + 200 # why is this necessary???
self.hadj.props.page_size = a.width
self.hadj.props.page_increment = size * 0.9
self.hadj.props.step_increment = size * 0.1
示例6: __init__
def __init__(self, instance, ui_manager):
gtk.Table.__init__(self, rows=2, columns=1, homogeneous=False)
Loggable.__init__(self)
Zoomable.__init__(self)
self.log("Creating Timeline")
self._updateZoom = True
self.project = None
self.ui_manager = ui_manager
self.app = instance
self._temp_objects = None
self._factories = None
self._finish_drag = False
self._position = 0
self._state = gst.STATE_NULL
self._createUI()
self._prev_duration = 0
self.rate = gst.Fraction(1, 1)
示例7: scrollToPlayhead
def scrollToPlayhead(self):
"""
Scroll the current position as close to the center of the view
as possible (as close as the timeline canvas allows).
"""
page_size = self.hadj.get_page_size()
new_pos = Zoomable.nsToPixel(self._position)
scroll_pos = self.hadj.get_value()
if (new_pos > scroll_pos + page_size) or (new_pos < scroll_pos):
self.scrollToPosition(min(new_pos - page_size / 2, self.hadj.upper - page_size - 1))
return False
示例8: zoomChanged
def zoomChanged(self):
if self._updateZoom:
self._zoomAdjustment.set_value(self.getCurrentZoomLevel())
# the new scroll position should preserve the current horizontal
# position of the playhead in the window
cur_playhead_offset = self._canvas._playhead.props.x - self.hadj.props.value
new_pos = Zoomable.nsToPixel(self._position) - cur_playhead_offset
self._updateScrollAdjustments()
self._scrollToPosition(new_pos)
self.ruler.queue_resize()
self.ruler.queue_draw()
示例9: _scrollEventCb
def _scrollEventCb(self, canvas, event):
if event.state & gtk.gdk.SHIFT_MASK:
# shift + scroll => vertical (up/down) scroll
if event.direction == gtk.gdk.SCROLL_UP:
self.scroll_up()
elif event.direction == gtk.gdk.SCROLL_DOWN:
self.scroll_down()
event.state &= ~gtk.gdk.SHIFT_MASK
elif event.state & gtk.gdk.CONTROL_MASK:
# zoom + scroll => zooming (up: zoom in)
if event.direction == gtk.gdk.SCROLL_UP:
Zoomable.zoomIn()
return True
elif event.direction == gtk.gdk.SCROLL_DOWN:
Zoomable.zoomOut()
return True
return False
else:
if event.direction == gtk.gdk.SCROLL_UP:
self.scroll_left()
elif event.direction == gtk.gdk.SCROLL_DOWN:
self.scroll_right()
return True
示例10: click
def click(self, pos):
timeline = self._view.timeline
element = self._view.element
element_end = element.start + element.duration
if self._last_event.get_state() & gtk.gdk.SHIFT_MASK:
timeline.setSelectionToObj(element, SELECT_BETWEEN)
elif self._last_event.get_state() & gtk.gdk.CONTROL_MASK:
if element.selected:
mode = UNSELECT
else:
mode = SELECT_ADD
timeline.setSelectionToObj(element, mode)
else:
self._view.app.current.seeker.seek(
Zoomable.pixelToNs(pos[0]))
timeline.setSelectionToObj(element, SELECT)
示例11: _zoomOutCb
def _zoomOutCb(self, unused_action):
Zoomable.zoomOut()
示例12: _zoomInCb
def _zoomInCb(self, unused_action):
Zoomable.zoomIn()
示例13: _zoomAdjustmentChangedCb
def _zoomAdjustmentChangedCb(self, adjustment):
# GTK crack
self._updateZoom = False
Zoomable.setZoomLevel(int(adjustment.get_value()))
self._updateZoom = True
示例14: _updateScrollPosition
def _updateScrollPosition(self, adjustment):
self._scroll_pos_ns = Zoomable.pixelToNs(self.hadj.get_value())
self._root_item.set_simple_transform(-self.hadj.get_value(),
-self.vadj.get_value(), 1.0, 0)
示例15: _createUI
def _createUI(self):
self.leftSizeGroup = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
self.props.row_spacing = 2
self.props.column_spacing = 2
self.hadj = gtk.Adjustment()
self.vadj = gtk.Adjustment()
# zooming slider
self._zoomAdjustment = gtk.Adjustment()
self._zoomAdjustment.set_value(Zoomable.getCurrentZoomLevel())
self._zoomAdjustment.connect("value-changed",
self._zoomAdjustmentChangedCb)
self._zoomAdjustment.props.lower = 0
self._zoomAdjustment.props.upper = Zoomable.zoom_steps
zoomslider = gtk.HScale(self._zoomAdjustment)
zoomslider.props.draw_value = False
zoomslider.set_tooltip_text(_("Zoom Timeline"))
self.attach(zoomslider, 0, 1, 0, 1, yoptions=0, xoptions=gtk.FILL)
# controls for tracks and layers
self._controls = TimelineControls()
controlwindow = gtk.Viewport(None, self.vadj)
controlwindow.add(self._controls)
controlwindow.set_size_request(-1, 1)
controlwindow.set_shadow_type(gtk.SHADOW_OUT)
self.attach(controlwindow, 0, 1, 1, 2, xoptions=0)
# timeline ruler
self.ruler = ruler.ScaleRuler(self.app, self.hadj)
self.ruler.set_size_request(0, 25)
self.ruler.set_border_width(2)
self.ruler.connect("key-press-event", self._keyPressEventCb)
self.ruler.connect("size-allocate", self._rulerSizeAllocateCb)
rulerframe = gtk.Frame()
rulerframe.set_shadow_type(gtk.SHADOW_OUT)
rulerframe.add(self.ruler)
self.attach(rulerframe, 1, 2, 0, 1, yoptions=0)
# proportional timeline
self._canvas = TimelineCanvas(self.app)
self._root_item = self._canvas.get_root_item()
self.attach(self._canvas, 1, 2, 1, 2)
# scrollbar
self._hscrollbar = gtk.HScrollbar(self.hadj)
self._vscrollbar = gtk.VScrollbar(self.vadj)
self.attach(self._hscrollbar, 1, 2, 2, 3, yoptions=0)
self.attach(self._vscrollbar, 2, 3, 1, 2, xoptions=0)
self.hadj.connect("value-changed", self._updateScrollPosition)
self.vadj.connect("value-changed", self._updateScrollPosition)
# error infostub
self.infostub = InfoStub()
self.attach(self.infostub, 1, 2, 4, 5, yoptions=0)
self.show_all()
self.infostub.hide()
# toolbar actions
actions = (
("ZoomIn", gtk.STOCK_ZOOM_IN, None, "<Control>plus", ZOOM_IN,
self._zoomInCb),
("ZoomOut", gtk.STOCK_ZOOM_OUT, None, "<Control>minus", ZOOM_OUT,
self._zoomOutCb),
# actions for adding additional accelerators
("ControlEqualAccel", gtk.STOCK_ZOOM_IN, None, "<Control>equal", ZOOM_IN,
self._zoomInCb),
("ControlKPAddAccel", gtk.STOCK_ZOOM_IN, None, "<Control>KP_Add", ZOOM_IN,
self._zoomInCb),
("ControlKPSubtractAccel", gtk.STOCK_ZOOM_OUT, None, "<Control>KP_Subtract", ZOOM_OUT,
self._zoomOutCb),
)
selection_actions = (
("DeleteObj", gtk.STOCK_DELETE, None, "Delete", DELETE,
self.deleteSelected),
("UnlinkObj", "pitivi-unlink", None, "<Shift><Control>L", UNLINK,
self.unlinkSelected),
("LinkObj", "pitivi-link", None, "<Control>L", LINK,
self.linkSelected),
("UngroupObj", "pitivi-ungroup", None, "<Shift><Control>G", UNGROUP,
self.ungroupSelected),
("GroupObj", "pitivi-group", None, "<Control>G", GROUP,
self.groupSelected),
)
self.playhead_actions = (
("Split", "pitivi-split", _("Split"), "S", SPLIT,
self.split),
("Keyframe", "pitivi-keyframe", _("Add a keyframe"), "K", KEYFRAME,
self.keyframe),
("Prevframe", "pitivi-prevframe", _("_Prevframe"), "E", PREVFRAME,
self.prevframe),
("Nextframe", "pitivi-nextframe", _("_Nextframe"), "R", NEXTFRAME,
self.nextframe),
)
actiongroup = gtk.ActionGroup("timelinepermanent")
actiongroup.add_actions(actions)
#.........这里部分代码省略.........