Exemple #1
0
    def __init__(self):
        gtk.TreeView.__init__(self)

        column = gtk.TreeViewColumn('Preview', 
                                     gtk.CellRendererPixbuf(),
                                    pixbuf=ImageStore.COL_THUMBNAIL)

        self.append_column(column)

        renderer =  gtk.CellRendererText()
        renderer.set_property('ellipsize', pango.ELLIPSIZE_END) 

        column = gtk.TreeViewColumn('Info', renderer)
        column.set_cell_data_func(renderer, self.data_func)
        self.append_column(column)

        self.set_headers_visible(False)
        self.set_enable_search(False)

        selection = self.get_selection()
        selection.set_mode(gtk.SELECTION_MULTIPLE)

        # Setup the drag and drop
        self.targets = self.drag_dest_get_target_list()
        self.targets = gtk.target_list_add_image_targets (self.targets, DRAG_IMAGE, False)
        self.targets = gtk.target_list_add_uri_targets (self.targets, DRAG_URI)
        self.drag_dest_set (gtk.DEST_DEFAULT_ALL, self.targets, gtk.gdk.ACTION_COPY)
Exemple #2
0
    def __init__(self):
        gtk.TreeView.__init__(self)

        column = gtk.TreeViewColumn('Preview',
                                    gtk.CellRendererPixbuf(),
                                    pixbuf=ImageStore.COL_THUMBNAIL)

        self.append_column(column)

        renderer = gtk.CellRendererText()
        renderer.set_property('ellipsize', pango.ELLIPSIZE_END)

        column = gtk.TreeViewColumn('Info', renderer)
        column.set_cell_data_func(renderer, self.data_func)
        self.append_column(column)

        self.set_headers_visible(False)
        self.set_enable_search(False)

        selection = self.get_selection()
        selection.set_mode(gtk.SELECTION_MULTIPLE)

        # Setup the drag and drop
        self.targets = self.drag_dest_get_target_list()
        self.targets = gtk.target_list_add_image_targets(
            self.targets, DRAG_IMAGE, False)
        self.targets = gtk.target_list_add_uri_targets(self.targets, DRAG_URI)
        self.drag_dest_set(gtk.DEST_DEFAULT_ALL, self.targets,
                           gtk.gdk.ACTION_COPY)
	def update_dnd_targets (self):
		targets = None
		if self.current_entry:
			targets = gtk.target_list_add_image_targets (targets)
			targets = gtk.target_list_add_uri_targets (targets)
			targets = gtk.target_list_add_text_targets (targets)
		if targets:
			self.drag_dest_set (gtk.DEST_DEFAULT_ALL, targets, gtk.gdk.ACTION_COPY)
		else:
			self.drag_dest_unset ()

		targets = None
		if self.current_pixbuf:
			targets = gtk.target_list_add_image_targets (targets, writable=True)
		if self.current_uri:
			targets = gtk.target_list_add_uri_targets (targets)
		if targets:
			self.drag_source_set (gtk.gdk.BUTTON1_MASK, targets, gtk.gdk.ACTION_COPY)
		else:
			self.drag_source_unset ()
    def update_dnd_targets(self):
        targets = None
        if self.current_entry:
            targets = gtk.target_list_add_image_targets(targets)
            targets = gtk.target_list_add_uri_targets(targets)
            targets = gtk.target_list_add_text_targets(targets)
        if targets:
            self.drag_dest_set(gtk.DEST_DEFAULT_ALL, targets,
                               gtk.gdk.ACTION_COPY)
        else:
            self.drag_dest_unset()

        targets = None
        if self.current_pixbuf:
            targets = gtk.target_list_add_image_targets(targets, writable=True)
        if self.current_uri:
            targets = gtk.target_list_add_uri_targets(targets)
        if targets:
            self.drag_source_set(gtk.gdk.BUTTON1_MASK, targets,
                                 gtk.gdk.ACTION_COPY)
        else:
            self.drag_source_unset()
Exemple #5
0
# paste to other widgets and to other application instances
PARSETREE_TARGET_ID = 1
PARSETREE_TARGET_NAME = 'text/x-zim-parsetree'
PARSETREE_TARGET = (PARSETREE_TARGET_NAME, 0, PARSETREE_TARGET_ID)

INTERNAL_PAGELIST_TARGET_ID = 2
INTERNAL_PAGELIST_TARGET_NAME = 'text/x-zim-page-list-internal'
INTERNAL_PAGELIST_TARGET = \
	(INTERNAL_PAGELIST_TARGET_NAME, gtk.TARGET_SAME_APP, INTERNAL_PAGELIST_TARGET_ID)

PAGELIST_TARGET_ID = 3
PAGELIST_TARGET_NAME = 'text/x-zim-page-list'
PAGELIST_TARGET = (PAGELIST_TARGET_NAME, 0, PAGELIST_TARGET_ID)

IMAGE_TARGET_ID = 6
IMAGE_TARGETS = tuple(gtk.target_list_add_image_targets(info=IMAGE_TARGET_ID))
	# According to docs we should provide list as arg to this function,
	# but seems docs are not correct
IMAGE_TARGET_NAMES = tuple([target[0] for target in IMAGE_TARGETS])

# Add image format names as well, seen these being used by MS Office
for format in gtk.gdk.pixbuf_get_formats():
	if format['mime_types'][0] in IMAGE_TARGET_NAMES:
		for n in (format['name'], format['name'].upper()):
			IMAGE_TARGET_NAMES += (n,)
			IMAGE_TARGETS += ((n, 0, IMAGE_TARGET_ID),)

#~ print IMAGE_TARGETS
#~ print IMAGE_TARGET_NAMES

URI_TARGET_ID = 7
Exemple #6
0
    def do_realize(self):
        """
    Realize the widget

    This creates the server resources (gdk window, cursors, pixbufs, etc)
    and sets up drag and drop handlers
    """
        self.set_flags(self.flags() | gtk.REALIZED)

        self.window = gdk.Window(self.get_parent_window(),
                                 width=self.allocation.width,
                                 height=self.allocation.height,
                                 window_type=gdk.WINDOW_CHILD,
                                 wclass=gdk.INPUT_OUTPUT,
                                 event_mask=self.get_events()
                                 | gdk.EXPOSURE_MASK
                                 | gdk.BUTTON1_MOTION_MASK
                                 | gdk.BUTTON_PRESS_MASK
                                 | gdk.BUTTON_RELEASE_MASK
                                 | gdk.POINTER_MOTION_MASK
                                 | gdk.POINTER_MOTION_HINT_MASK)

        try:
            pbuf = gdk.pixbuf_new_from_file(
                os.path.join(self.icon_path, "magnify.png"))
            self.cursors['magnify'] = gdk.Cursor(self.window.get_display(),
                                                 pbuf, 6, 6)
        except glib.GError:
            self.cursors['magnify'] = None

        try:
            pbuf = gdk.pixbuf_new_from_file(
                os.path.join(self.icon_path, "measure.png"))
            self.cursors['measure'] = gdk.Cursor(self.window.get_display(),
                                                 pbuf, 6, 6)
        except glib.GError:
            self.cursors['measure'] = None

        #self.set_cursor('magnify')

        self.pixbuf_width = int(self.allocation.width)
        self.pixbuf_height = int(self.allocation.height)
        self.raw_width = int(self.allocation.width / self.zoom)
        self.raw_height = int(self.allocation.height / self.zoom)

        self.window.set_user_data(self)
        self.style.attach(self.window)
        self.style.set_background(self.window, gtk.STATE_NORMAL)
        self.window.move_resize(*self.allocation)
        self.gc = self.style.fg_gc[gtk.STATE_NORMAL]

        self.measure_gc = gdk.GC(self.window)
        self.measure_gc.set_foreground(
            self.measure_gc.get_colormap().alloc_color("#fff"))
        self.measure_gc.set_background(
            self.measure_gc.get_colormap().alloc_color("#000"))
        self.measure_gc.set_dashes(0, (4, 4))
        self.measure_gc.set_line_attributes(1, gdk.LINE_DOUBLE_DASH,
                                            gdk.CAP_BUTT, gdk.JOIN_MITER)

        self.grid_gc = gdk.GC(self.window)
        self.grid_gc.set_foreground(
            self.measure_gc.get_colormap().alloc_color("#777"))

        self.connect("motion-notify-event", self.cb_motion_notify)
        self.connect("button-press-event", self.cb_button_press)
        self.connect("button-release-event", self.cb_button_release)
        self.connect("scroll-event", self.cb_scroll)

        self.pixbuf = gdk.Pixbuf(gdk.COLORSPACE_RGB, False, 8,
                                 self.pixbuf_width, self.pixbuf_height)
        self.raw_pixbuf = gdk.Pixbuf(gdk.COLORSPACE_RGB, False, 8,
                                     self.raw_width, self.raw_height)

        target_list = gtk.target_list_add_image_targets(
            None, self.TARGET_TYPE_IMAGE, True)
        self.drag_source_set(gtk.gdk.BUTTON1_MASK, target_list,
                             gtk.gdk.ACTION_COPY)
        self.connect("drag-data-get", self.cb_drag_data_get)
Exemple #7
0
    def do_realize(self):
        """
    Realize the widget

    This creates the server resources (gdk window, cursors, pixbufs, etc)
    and sets up drag and drop handlers
    """
        self.set_flags(self.flags() | gtk.REALIZED)

        self.window = gdk.Window(
            self.get_parent_window(),
            width=self.allocation.width,
            height=self.allocation.height,
            window_type=gdk.WINDOW_CHILD,
            wclass=gdk.INPUT_OUTPUT,
            event_mask=self.get_events()
            | gdk.EXPOSURE_MASK
            | gdk.BUTTON1_MOTION_MASK
            | gdk.BUTTON_PRESS_MASK
            | gdk.BUTTON_RELEASE_MASK
            | gdk.POINTER_MOTION_MASK
            | gdk.POINTER_MOTION_HINT_MASK,
        )

        pbuf = gdk.pixbuf_new_from_file(os.path.join(self.icon_path, "magnify.png"))
        self.cursors["magnify"] = gdk.Cursor(self.window.get_display(), pbuf, 6, 6)

        pbuf = gdk.pixbuf_new_from_file(os.path.join(self.icon_path, "measure.png"))
        self.cursors["measure"] = gdk.Cursor(self.window.get_display(), pbuf, 6, 6)

        # self.set_cursor('magnify')

        self.pixbuf_width = int(self.allocation.width)
        self.pixbuf_height = int(self.allocation.height)
        self.raw_width = int(self.allocation.width / self.zoom)
        self.raw_height = int(self.allocation.height / self.zoom)

        self.window.set_user_data(self)
        self.style.attach(self.window)
        self.style.set_background(self.window, gtk.STATE_NORMAL)
        self.window.move_resize(*self.allocation)
        self.gc = self.style.fg_gc[gtk.STATE_NORMAL]

        self.measure_gc = gdk.GC(self.window)
        self.measure_gc.set_foreground(self.measure_gc.get_colormap().alloc_color("#fff"))
        self.measure_gc.set_background(self.measure_gc.get_colormap().alloc_color("#000"))
        self.measure_gc.set_dashes(0, (4, 4))
        self.measure_gc.set_line_attributes(1, gdk.LINE_DOUBLE_DASH, gdk.CAP_BUTT, gdk.JOIN_MITER)

        self.grid_gc = gdk.GC(self.window)
        self.grid_gc.set_foreground(self.measure_gc.get_colormap().alloc_color("#777"))

        self.connect("motion-notify-event", self.cb_motion_notify)
        self.connect("button-press-event", self.cb_button_press)
        self.connect("button-release-event", self.cb_button_release)
        self.connect("scroll-event", self.cb_scroll)

        self.pixbuf = gdk.Pixbuf(gdk.COLORSPACE_RGB, False, 8, self.pixbuf_width, self.pixbuf_height)
        self.raw_pixbuf = gdk.Pixbuf(gdk.COLORSPACE_RGB, False, 8, self.raw_width, self.raw_height)

        target_list = gtk.target_list_add_image_targets(None, self.TARGET_TYPE_IMAGE, True)
        self.drag_source_set(gtk.gdk.BUTTON1_MASK, target_list, gtk.gdk.ACTION_COPY)
        self.connect("drag-data-get", self.cb_drag_data_get)
Exemple #8
0
# paste to other widgets and to other application instances
PARSETREE_TARGET_ID = 1
PARSETREE_TARGET_NAME = 'text/x-zim-parsetree'
PARSETREE_TARGET = (PARSETREE_TARGET_NAME, 0, PARSETREE_TARGET_ID)

INTERNAL_PAGELIST_TARGET_ID = 2
INTERNAL_PAGELIST_TARGET_NAME = 'text/x-zim-page-list-internal'
INTERNAL_PAGELIST_TARGET = \
	(INTERNAL_PAGELIST_TARGET_NAME, gtk.TARGET_SAME_APP, INTERNAL_PAGELIST_TARGET_ID)

PAGELIST_TARGET_ID = 3
PAGELIST_TARGET_NAME = 'text/x-zim-page-list'
PAGELIST_TARGET = (PAGELIST_TARGET_NAME, 0, PAGELIST_TARGET_ID)

IMAGE_TARGET_ID = 6
IMAGE_TARGETS = tuple(gtk.target_list_add_image_targets(info=IMAGE_TARGET_ID))
	# According to docs we should provide list as arg to this function,
	# but seems docs are not correct
IMAGE_TARGET_NAMES = tuple([target[0] for target in IMAGE_TARGETS])

# Add image format names as well, seen these being used by MS Office
for format in gtk.gdk.pixbuf_get_formats():
	if format['mime_types'][0] in IMAGE_TARGET_NAMES:
		for n in (format['name'], format['name'].upper()):
			IMAGE_TARGET_NAMES += (n,)
			IMAGE_TARGETS += ((n, 0, IMAGE_TARGET_ID),)

#~ print IMAGE_TARGETS
#~ print IMAGE_TARGET_NAMES

URI_TARGET_ID = 7