Exemple #1
0
    def construct(self, posx, posy):
        # fretboard
        for string in xrange(len(self.strings)):
            semitone = self.strings[string]

            for fret in xrange(self.frets + 1):
                x = posx + fret * self.rectwidth
                y = posy + self.rectheight * string

                rect = Semitone(self.control,
                                semitone=semitone + fret,
                                method=self.method,
                                parent=self,
                                x=x,
                                y=y,
                                width=self.rectwidth,
                                height=self.rectheight)

                rect.connect("button_press_event", self.press_semitone, string,
                             fret)
                rect.connect("button_release_event", self.release_semitone)

        y = posy + self.rectheight * (len(self.strings) + 0.5)
        for fret in self.markers:
            x = posx + self.rectwidth * (fret + 0.5)
            circle = goocanvas.Ellipse(parent=self,
                                       center_x=x,
                                       center_y=y,
                                       radius_x=self.markers_radius,
                                       radius_y=self.markers_radius)
            circle.props.fill_color_rgba = 0x333333ff
            circle.props.line_width = 0

        if self.capo:
            x = posx + self.rectwidth * (self.capo + .3)
            y1 = posy
            y2 = posy + self.rectheight * len(self.strings)
            width = self.rectwidth / 3
            goocanvas.polyline_new_line(self,
                                        x,
                                        y1,
                                        x,
                                        y2,
                                        width=line_width,
                                        stroke_color_rgba=0x660000cc,
                                        pointer_events=0)

        # draw nut
        x = posx + self.rectwidth * .3
        y1 = posy
        y2 = posy + self.rectheight * len(self.strings)
        width = self.rectwidth / 3
        goocanvas.polyline_new_line(self,
                                    x,
                                    y1,
                                    x,
                                    y2,
                                    line_width=width,
                                    stroke_color_rgba=0xcc0000cc,
                                    pointer_events=0)
Exemple #2
0
    def setup_static_items(self, canvas):
        static_root = canvas.get_static_root_item()

        """ All static items in one place in the canvas should be placed in the
            same group. """

        group = goocanvas.Group(parent=static_root)

        item = goocanvas.polyline_new_line(
            group,
            40.0,
            410.0,
            40.0,
            330.0,
            stroke_color="midnightblue",
            line_width=3.0,
            end_arrow=True,
            arrow_tip_length=3.0,
            arrow_length=4.0,
            arrow_width=3.5,
        )
        self.setup_item_signals(item)

        item = goocanvas.polyline_new_line(group, 32.0, 370.0, 48.0, 370.0, stroke_color="midnightblue", line_width=3.0)
        self.setup_item_signals(item)

        item = goocanvas.Text(parent=group, text="N", x=40, y=320, width=-1, anchor=gtk.ANCHOR_S, font="Sans 12")
        self.setup_item_signals(item)
Exemple #3
0
    def add_skyline(self, lines):
        """Adds a skyline to the current canvas, in a new color.

        The canvas will be rescaled, if necessary, to make room for the
        new skyline."""
        # Flip vertically, because goocanvas thinks higher numbers are
        # further down, while lilypond thinks they're further up.
        lines = [(x1, -y1, x2, -y2) for (x1, y1, x2, y2) in lines]

        color = self.colors[self.cur_color_index]
        self.cur_color_index = (self.cur_color_index + 1) % len(self.colors)

        # Update the bounding box of the skylines.
        x_vals = [s[0] for s in lines] + [s[2] for s in lines]
        y_vals = [s[1] for s in lines] + [s[3] for s in lines]
        self.x_min = min([self.x_min] + x_vals)
        self.x_max = max([self.x_max] + x_vals)
        self.y_min = min([self.y_min] + y_vals)
        self.y_max = max([self.y_max] + y_vals)

        # Add the lines to the canvas.
        root = self.get_root_item()
        for (x1, y1, x2, y2) in lines:
            goocanvas.polyline_new_line(root,
                                        x1,
                                        y1,
                                        x2,
                                        y2,
                                        stroke_color=color,
                                        line_width=0.05)
        self.rescale(self.get_allocation())
Exemple #4
0
    def __init__(self, **args):
        GooCanvas.__init__(self, **args)
        # infinite world should replace scroll_region
        self.set_properties(
            automatic_bounds=True,
            integer_layout=False,
            bounds_from_origin=False,
            bounds_padding=100,
        )

        self.root = self.get_root_item()
        self.root.set_properties(fill_color="white")

        polyline_new_line(self.root, -5, 0, 5, 0, stroke_color="red")
        polyline_new_line(self.root, 0, -5, 0, 5, stroke_color="red")

        self.zoom = False

        # GooCanvas will transmit all keyboard events to
        # its parent unless one of its item has focus.
        self.parent.connect_object("key_press_event", Canvas.eventhandler,
                                   self)
        self.parent.connect_object("key_release_event", Canvas.eventhandler,
                                   self)
        self.connect("event", Canvas.eventhandler)
    def add_skyline (self, lines):
        """Adds a skyline to the current canvas, in a new color.

        The canvas will be rescaled, if necessary, to make room for the
        new skyline."""
        # Flip vertically, because goocanvas thinks higher numbers are
        # further down, while lilypond thinks they're further up.
        lines = [(x1, -y1, x2, -y2) for (x1, y1, x2, y2) in lines]

        color = self.colors[self.cur_color_index]
        self.cur_color_index = (self.cur_color_index + 1) % len (self.colors)

        # Update the bounding box of the skylines.
        x_vals = [s[0] for s in lines] + [s[2] for s in lines]
        y_vals = [s[1] for s in lines] + [s[3] for s in lines]
        self.x_min = min ([self.x_min] + x_vals)
        self.x_max = max ([self.x_max] + x_vals)
        self.y_min = min ([self.y_min] + y_vals)
        self.y_max = max ([self.y_max] + y_vals)

        # Add the lines to the canvas.
        root = self.get_root_item ()
        for (x1, y1, x2, y2) in lines:
            goocanvas.polyline_new_line (root, x1, y1, x2, y2,
                    stroke_color=color,
                    line_width=0.05)
        self.rescale (self.get_allocation ())
Exemple #6
0
    def _drawLines(self, x, y, length):
        '''
        draw one set of five staff lines
        '''
        x1 = x
        lineLength = length
        x2 = x1 + lineLength
        y = y

        yWidth = self.staffLineSpacing
        t = self.staffLineThickness
        goocanvas.polyline_new_line(self.rootitem, x1, y, x2, y,
                                    stroke_color="black", line_width=t)
        y += yWidth
        goocanvas.polyline_new_line(self.rootitem, x1, y, x2, y,
                                    stroke_color="black", line_width=t)
        y += yWidth
        goocanvas.polyline_new_line(self.rootitem, x1, y, x2, y,
                                    stroke_color="black", line_width=t)
        y += yWidth
        goocanvas.polyline_new_line(self.rootitem, x1, y, x2, y,
                                    stroke_color="black", line_width=t)
        y += yWidth
        goocanvas.polyline_new_line(self.rootitem, x1, y, x2, y,
                                    stroke_color="black", line_width=t)
        self.bottomYLine = y
	def construct(self, posx, posy):
		# fretboard
		for string in xrange(len(self.strings)):
			semitone = self.strings[string]

			for fret in xrange(self.frets+1):
				x = posx + fret*self.rectwidth
				y = posy + self.rectheight*string

				rect = Semitone(self.control, semitone=semitone+fret, method=self.method,
					parent=self, x=x, y=y, width=self.rectwidth, height=self.rectheight)

				rect.connect("button_press_event", self.press_semitone, string, fret)
				rect.connect("button_release_event", self.release_semitone)

		y = posy + self.rectheight*(len(self.strings) + 0.5)
		for fret in self.markers:
			x = posx + self.rectwidth*(fret+0.5)
			circle = goocanvas.Ellipse(parent=self, center_x=x, center_y=y, radius_x=self.markers_radius, radius_y=self.markers_radius)
			circle.props.fill_color_rgba=0x333333ff
			circle.props.line_width=0

		if self.capo:
			x = posx + self.rectwidth*(self.capo+.3)
			y1 = posy
			y2 = posy + self.rectheight*len(self.strings)
			width = self.rectwidth/3
			goocanvas.polyline_new_line(self, x,y1,x,y2, width=line_width, stroke_color_rgba=0x660000cc, pointer_events=0)

		# draw nut
		x = posx + self.rectwidth*.3
		y1 = posy
		y2 = posy + self.rectheight*len(self.strings)
		width = self.rectwidth/3
		goocanvas.polyline_new_line(self, x,y1,x,y2, line_width=width, stroke_color_rgba=0xcc0000cc, pointer_events=0)
 def setup_divisions (self, root):
     group = goocanvas.Group (parent = root)
     group.translate (2, 2)
     
     item = goocanvas.Rect (parent = group,
                            x = 0,
                            y = 0,
                            width = 600,
                            height = 450,
                            line_width = 4.0)
     
     item = goocanvas.polyline_new_line (group, 0, 150, 600, 150,
                                         line_width = 4.0)
     
     item = goocanvas.polyline_new_line (group, 0, 300, 600, 300,
                                         line_width = 4.0)
     
     item = goocanvas.polyline_new_line (group, 200, 0, 200, 450,
                                         line_width = 4.0)
     
     item = goocanvas.polyline_new_line (group, 400, 0, 400, 450,
                                         line_width = 4.0)
     
     self.setup_heading(group, "Rectangles", 0)
     self.setup_heading(group, "Ellipses", 1)
     self.setup_heading(group, "Texts", 2)
     self.setup_heading(group, "Images", 3)
     self.setup_heading(group, "Lines", 4)
     self.setup_heading(group, "Polygons", 7)
	def __init__(self,tabulature,tuning,**kwargs):
		kwargs["parent"] = tabulature
		goocanvas.Group.__init__(self,**kwargs)

		self.tuning = tuning
		self.tabulature = tabulature

		height = tabulature.timeline.get_pts(tabulature.timeline.project.pipeline.duration)
		goocanvas.polyline_new_line(self, 0,0, 0,height)

		self.markers = []
Exemple #10
0
    def __init__(self, tabulature, tuning, **kwargs):
        kwargs["parent"] = tabulature
        goocanvas.Group.__init__(self, **kwargs)

        self.tuning = tuning
        self.tabulature = tabulature

        height = tabulature.timeline.get_pts(
            tabulature.timeline.project.pipeline.duration)
        goocanvas.polyline_new_line(self, 0, 0, 0, height)

        self.markers = []
Exemple #11
0
    def draw_line(self, start, end, color = [255,255,255]):
        import threading
        print 'TurtleDrawerGTK.draw_line in thread "%s" from %s to %s' % (threading.current_thread().name, start, end)
       
        start = self.__convert_position(start)
        end = self.__convert_position(end)

        goocanvas.polyline_new_line(
            self.root,
            *start+end
        )

        return False # should raise NotImplementedError()
Exemple #12
0
    def _drawEndBars(self):
        '''
        draw the vertical end bars on each line, two for line 3
        '''

        if self.numStaves >= 1:
            goocanvas.polyline_new_line(self.rootitem, self.endx,
                                    self.line1Y - 1, self.endx, self.line1Y + 53,
                                     stroke_color="black", line_width=3.0)

        if self.numStaves >= 2:
            goocanvas.polyline_new_line(self.rootitem, self.endx,
                                    self.line2Y - 1, self.endx, self.line2Y + 53,
                                     stroke_color="black", line_width=3.0)

        if self.numStaves >= 3:
            #doublebar
            goocanvas.polyline_new_line(self.rootitem, self.endx - 7,
                                    self.line3Y - 1, self.endx - 7, self.line3Y + 53,
                                     stroke_color="black", line_width=3.0)

            #final barline, dark
            goocanvas.polyline_new_line(self.rootitem, self.endx,
                                    self.line3Y - 1, self.endx, self.line3Y + 53,
                                     stroke_color="black", line_width=4.0)
def main(argv):
    window = gtk.Window()
    window.set_default_size(640, 600)
    window.show_all()
    window.connect("delete_event", on_delete_event)

    scrolled_win = gtk.ScrolledWindow()
    scrolled_win.set_shadow_type(gtk.SHADOW_IN)
    scrolled_win.show()
    window.add(scrolled_win)

    canvas = goocanvas.Canvas()
    canvas.set_size_request(600, 450)
    canvas.set_bounds(0, 0, 1000, 1000)
    canvas.show()
    scrolled_win.add(canvas)

    canvas.connect("button_press_event", on_arrow_button_press)

    root = canvas.get_root_item()

    ## Add a few simple items.
    global item
    item = goocanvas.polyline_new_line(root, 300, 200, 200, 200)
    item.props.end_arrow = True
    item.props.line_width = 10

    gtk.main()
def main(argv):
    window = gtk.Window()
    window.set_default_size(640, 600)
    window.show_all()
    window.connect("delete_event", on_delete_event)
    
    scrolled_win = gtk.ScrolledWindow()
    scrolled_win.set_shadow_type(gtk.SHADOW_IN)
    scrolled_win.show()
    window.add(scrolled_win)
    
    canvas = goocanvas.Canvas()
    canvas.set_size_request(600, 450)
    canvas.set_bounds(0, 0, 1000, 1000)
    canvas.show()
    scrolled_win.add(canvas)
    
    canvas.connect("button_press_event", on_arrow_button_press)

    root = canvas.get_root_item()

    ## Add a few simple items.
    global item
    item = goocanvas.polyline_new_line(root, 300, 200, 200, 200)
    item.props.end_arrow = True
    item.props.line_width = 10
    
    gtk.main()
Exemple #15
0
 def _draw_one_marker(self,t,label):
     x = self.screen_from_world((t,0))[0]
     ht = self.size.height
     if not 0 <= x < self.size.width:
         return
     x = max(5, x) # cheat left-edge stuff onscreen
     goocanvas.polyline_new_line(self.curveGroup,
                                 x, ht,
                                 x, ht - 20,
                                 line_width=.5,
                                 stroke_color='gray70')
     goocanvas.Text(parent=self.curveGroup,
                    fill_color="white",
                    anchor=gtk.ANCHOR_SOUTH,
                    font="ubuntu 7",
                    x=x+3, y=ht-20,
                    text=label)
Exemple #16
0
    def setup_divisions(self, root):
        group = goocanvas.Group(parent=root)
        group.translate(2, 2)

        item = goocanvas.Rect(parent=group,
                              x=0,
                              y=0,
                              width=600,
                              height=450,
                              line_width=4.0)

        item = goocanvas.polyline_new_line(group,
                                           0,
                                           150,
                                           600,
                                           150,
                                           line_width=4.0)

        item = goocanvas.polyline_new_line(group,
                                           0,
                                           300,
                                           600,
                                           300,
                                           line_width=4.0)

        item = goocanvas.polyline_new_line(group,
                                           200,
                                           0,
                                           200,
                                           450,
                                           line_width=4.0)

        item = goocanvas.polyline_new_line(group,
                                           400,
                                           0,
                                           400,
                                           450,
                                           line_width=4.0)

        self.setup_heading(group, "Rectangles", 0)
        self.setup_heading(group, "Ellipses", 1)
        self.setup_heading(group, "Texts", 2)
        self.setup_heading(group, "Images", 3)
        self.setup_heading(group, "Lines", 4)
        self.setup_heading(group, "Polygons", 7)
def create_canvas_model():
    canvas_model = goocanvas.CanvasModelSimple()

    root = canvas_model.get_root_item()

    ## Add a few simple items.
    global item
    item = goocanvas.polyline_new_line(root, 300, 200, 200, 200)
    item.props.end_arrow = True
    item.props.line_width = 10

    return canvas_model
	def __init__(self,rhythm,weight=1,**kwargs):
		kwargs["parent"] = rhythm

		if "time" in kwargs:
			kwargs["y"] = rhythm.timeline.get_pts(kwargs["time"])
			del kwargs["time"]

		goocanvas.Group.__init__(self,**kwargs)

		self.rhythm = rhythm
		self.line = goocanvas.polyline_new_line(self, 0, 0, 10, 0)
		self.time_sum = self.get_time()*weight
		self.weight = weight
		self.text = goocanvas.Text(parent=self, text=str(self.weight), x=10, anchor=gtk.ANCHOR_W)
Exemple #19
0
    def setup_static_items(self, canvas):
        static_root = canvas.get_static_root_item()
        ''' All static items in one place in the canvas should be placed in the
            same group. '''

        group = goocanvas.Group(parent=static_root)

        item = goocanvas.polyline_new_line(group,
                                           40.0,
                                           410.0,
                                           40.0,
                                           330.0,
                                           stroke_color="midnightblue",
                                           line_width=3.0,
                                           end_arrow=True,
                                           arrow_tip_length=3.0,
                                           arrow_length=4.0,
                                           arrow_width=3.5)
        self.setup_item_signals(item)

        item = goocanvas.polyline_new_line(group,
                                           32.0,
                                           370.0,
                                           48.0,
                                           370.0,
                                           stroke_color="midnightblue",
                                           line_width=3.0)
        self.setup_item_signals(item)

        item = goocanvas.Text(parent=group,
                              text="N",
                              x=40,
                              y=320,
                              width=-1,
                              anchor=gtk.ANCHOR_S,
                              font="Sans 12")
        self.setup_item_signals(item)
Exemple #20
0
    def __init__(self, rhythm, weight=1, **kwargs):
        kwargs["parent"] = rhythm

        if "time" in kwargs:
            kwargs["y"] = rhythm.timeline.get_pts(kwargs["time"])
            del kwargs["time"]

        goocanvas.Group.__init__(self, **kwargs)

        self.rhythm = rhythm
        self.line = goocanvas.polyline_new_line(self, 0, 0, 10, 0)
        self.time_sum = self.get_time() * weight
        self.weight = weight
        self.text = goocanvas.Text(parent=self,
                                   text=str(self.weight),
                                   x=10,
                                   anchor=gtk.ANCHOR_W)
Exemple #21
0
    def polish_diamond(self, root):
        group = goocanvas.Group(parent=root, line_width=1.0, line_cap=cairo.LINE_CAP_ROUND)
        group.translate(270, 230)
        self.setup_item_signals(group)

        i = 0
        while i < self.VERTICES:
            a = 2.0 * math.pi * i / self.VERTICES
            x1 = self.RADIUS * math.cos(a)
            y1 = self.RADIUS * math.sin(a)
            i += 1
            j = i + 1
            while j < self.VERTICES:
                a = 2.0 * math.pi * j / self.VERTICES
                x2 = self.RADIUS * math.cos(a)
                y2 = self.RADIUS * math.sin(a)
                item = goocanvas.polyline_new_line(group, x1, y1, x2, y2)
                j += 1
Exemple #22
0
    def __init__(self, project, strings, **kwargs):
        goocanvas.Canvas.__gobject_init__(self)

        self.project = project

        if "scale" in kwargs: self.scale = kwargs["scale"]
        else: self.scale = 100

        if "width" in kwargs: self.width = kwargs["width"]
        else: self.width = 500

        # mode
        self.mode = MODE_DEFAULT

        # configure canvas
        height = self.get_pts(self.project.pipeline.duration)
        self.set_bounds(0, 0, self.width, height)
        self.set_size_request(self.width, int(height))
        self.connect("button_press_event", self.canvas_button_press)

        root = self.get_root_item()

        # add ruler
        self.ruler = Ruler(self)

        # add rhythm marker space
        self.rhythm = Rhythm(self)
        self.rhythm.props.x = self.ruler.get_width()

        # position marker
        self.posmarker = goocanvas.polyline_new_line(root, 0, 0, self.width, 0)

        # items
        self.annotations = []
        self.markers = []
        self.tabulature = Tabulature(self, strings)
        self.tabulature.props.x = self.rhythm.props.x + self.rhythm.get_width(
        ) + 20

        # setup space
        self.space = goocanvas.Group(parent=root)
        self.space.props.x = self.tabulature.props.x + self.tabulature.get_width(
        ) + 20
Exemple #23
0
    def polish_diamond(self, root):
        group = goocanvas.Group(parent=root,
                                line_width=1.0,
                                line_cap=cairo.LINE_CAP_ROUND)
        group.translate(270, 230)
        self.setup_item_signals(group)

        i = 0
        while i < self.VERTICES:
            a = 2.0 * math.pi * i / self.VERTICES
            x1 = self.RADIUS * math.cos(a)
            y1 = self.RADIUS * math.sin(a)
            i += 1
            j = i + 1
            while j < self.VERTICES:
                a = 2.0 * math.pi * j / self.VERTICES
                x2 = self.RADIUS * math.cos(a)
                y2 = self.RADIUS * math.sin(a)
                item = goocanvas.polyline_new_line(group, x1, y1, x2, y2)
                j += 1
	def __init__(self, project, strings, **kwargs):
		goocanvas.Canvas.__gobject_init__(self)

		self.project = project

		if "scale" in kwargs: self.scale = kwargs["scale"]
		else: self.scale = 100

		if "width" in kwargs: self.width = kwargs["width"]
		else: self.width = 500

		# mode
		self.mode = MODE_DEFAULT

		# configure canvas
		height = self.get_pts(self.project.pipeline.duration)
		self.set_bounds(0,0,self.width,height)
		self.set_size_request(self.width,int(height))
		self.connect("button_press_event",self.canvas_button_press)

		root = self.get_root_item()

		# add ruler
		self.ruler = Ruler(self)

		# add rhythm marker space
		self.rhythm = Rhythm(self)
		self.rhythm.props.x = self.ruler.get_width()

		# position marker
		self.posmarker = goocanvas.polyline_new_line(root, 0, 0, self.width, 0)

		# items
		self.annotations = []
		self.markers = []
		self.tabulature = Tabulature(self, strings)
		self.tabulature.props.x = self.rhythm.props.x + self.rhythm.get_width() + 20

		# setup space
		self.space = goocanvas.Group(parent=root)
		self.space.props.x = self.tabulature.props.x + self.tabulature.get_width()+20
def create_canvas_arrowhead ():
    v = gtk.VBox(False, 4)
    v.set_border_width(4)
    
    l = gtk.Label("This demo allows you to edit arrowhead shapes.  Drag the little boxes\n"
            "to change the shape of the line and its arrowhead.  You can see the\n"
            "arrows at their normal scale on the right hand side of the window.")
    
    a = gtk.Alignment(0.5, 0.5, 0.0, 0.0)
    
    v.pack_start(l, False, False, 0)
    v.pack_start(a, True, True, 0)
    
    f = gtk.Frame()
    f.set_shadow_type(gtk.SHADOW_IN)
    
    a.add(f)
    
    canvas = goocanvas.Canvas()
    canvas.set_size_request(500, 350)
    canvas.set_bounds(0, 0, 500, 350)
    
    f.add(canvas)
    
    root = canvas.get_root_item()
    
    canvas.set_data("width", DEFAULT_WIDTH)
    canvas.set_data("shape_a", DEFAULT_SHAPE_A)
    canvas.set_data("shape_b", DEFAULT_SHAPE_B)
    canvas.set_data("shape_c", DEFAULT_SHAPE_C)
    
    p1 = goocanvas.polyline_new_line(root, LEFT, MIDDLE, RIGHT, MIDDLE, 
                    stroke_color="mediumseagreen",
                    end_arrow=True)
    
    canvas.set_data("big_arrow", p1)
    
    p2 = goocanvas.Polyline(parent = root,
                            close_path=True, 
                            stroke_color="black",
                            line_width=2.0,
                            line_cap=cairo.LINE_CAP_ROUND,
                            line_join=cairo.LINE_JOIN_ROUND)
    canvas.set_data("outline", p2)
    
    create_drag_box (canvas, root, "width_drag_box")
    create_drag_box (canvas, root, "shape_a_drag_box")
    create_drag_box (canvas, root, "shape_b_c_drag_box")
    
    create_dimension (canvas, root, "width_arrow", "width_text", gtk.ANCHOR_E)
    create_dimension (canvas, root, "shape_a_arrow", "shape_a_text", gtk.ANCHOR_N)
    create_dimension (canvas, root, "shape_b_arrow", "shape_b_text", gtk.ANCHOR_N)
    create_dimension (canvas, root, "shape_c_arrow", "shape_c_text", gtk.ANCHOR_W)
    
    create_info (canvas, root, "width_info", LEFT, 260)
    create_info (canvas, root, "shape_a_info", LEFT, 280)
    create_info (canvas, root, "shape_b_info", LEFT, 300)
    create_info (canvas, root, "shape_c_info", LEFT, 320)
    
    p_div = goocanvas.polyline_new_line(root, RIGHT + 50, 0, RIGHT + 50, 1000,
                                        fill_color="black", line_width=2.0)
    
    create_sample_arrow (canvas, root, "sample_1",
                     RIGHT + 100, 30, RIGHT + 100, MIDDLE - 30)
    
    create_sample_arrow (canvas, root, "sample_2",
                     RIGHT + 70, MIDDLE, RIGHT + 130, MIDDLE)
    
    create_sample_arrow (canvas, root, "sample_3",
                     RIGHT + 70, MIDDLE + 30, RIGHT + 130, MIDDLE + 120)
    
    set_arrow_shape(canvas)

    return v
def create_sample_arrow(canvas, root, sample_name, x1, x2, y1, y2):
    p4 = goocanvas.polyline_new_line(root, x1, x2, y1, y2,
                        start_arrow=True,
                        end_arrow=True)
    canvas.set_data(sample_name, p4)
Exemple #27
0
 def on_print(self, data=None, filename=None):
     canvas=goocanvas.Canvas()
     rt=canvas.get_root_item()
     '''pix = gtk.gdk.pixbuf_new_from_file("logo.jpg")
     logo=pix.scale_simple(50,70,gtk.gdk.INTERP_BILINEAR)
     item = goocanvas.Image (parent=rt,pixbuf = pix,x=0,y=0)'''
     self.text = goocanvas.Text(text='Retrival Tool',
                                x=30,y=0,font="Sans 12")
     rt.add_child(self.text)
     self.text = goocanvas.Text(text='Registry',x=0,y=30,font="Sans 6")
     rt.add_child(self.text)
     self.text = goocanvas.Text(text='Location',x=70,y=30,font="Sans 6")
     rt.add_child(self.text)
     self.text = goocanvas.Text(text='Box',x=120,y=30,font="Sans 6")
     rt.add_child(self.text)
     self.text = goocanvas.Text(text='Reference',x=150,y=30,font="Sans 6")
     rt.add_child(self.text)
     self.text = goocanvas.Text(text='subject',x=240,y=30,font="Sans 6")
     rt.add_child(self.text)
     self.text = goocanvas.Text(text='Volume',x=420,y=30,font="Sans 6")
     rt.add_child(self.text)
     self.text = goocanvas.Text(text='Opened',x=460,y=30,font="Sans 6")
     rt.add_child(self.text)
     self.text = goocanvas.Text(text='Retn. ',x=520,y=30,font="Sans 6")
     rt.add_child(self.text)
     self.text = goocanvas.Text(text='Action',x=550,y=30,font="Sans 6")
     rt.add_child(self.text)
             
     self.pi = goocanvas.polyline_new_line(rt,0,44,600,44,
                                     line_width=1,end_arrow=False)
     #n=str(os.sep.join((os.path.expanduser('~'),'Desktop')))+str('/')+filename
     surface = cairo.PDFSurface (filename, 9 * 72, 10 * 72)
     dat=data
     l=32
     for i in range(len(dat)):
         l=l+15
         if l<650:
             self.text = goocanvas.Text(text=str((dat[i][0])[:13]),x=0,y=l,font="Sans 6")
             rt.add_child(self.text)
             self.text = goocanvas.Text(text=str((dat[i][1])[:8]),x=70,y=l,font="Sans 6")
             rt.add_child(self.text)
             self.text = goocanvas.Text(text=(str(dat[i][3])[:5]),x=120,y=l,font="Sans 6")
             rt.add_child(self.text)
             self.text = goocanvas.Text(text=(str(dat[i][4])[:15]),x=150,y=l,font="Sans 6")
             rt.add_child(self.text)
             self.text = goocanvas.Text(text=str((dat[i][5])[:37]),x=240,y=l,font="Sans 6")
             rt.add_child(self.text)
             self.text = goocanvas.Text(text=str((dat[i][6])[:5]),x=420,y=l,font="Sans 6")
             rt.add_child(self.text)
             self.text = goocanvas.Text(text=str((dat[i][7])[:10]),x=460,y=l,font="Sans 6")
             rt.add_child(self.text)
             self.text = goocanvas.Text(text=str((dat[i][8])[:4]),x=520,y=l,font="Sans 6")
             rt.add_child(self.text)
             self.text = goocanvas.Text(text=str((dat[i][9])[:12]),x=550,y=l,font="Sans 6")
             rt.add_child(self.text)
         elif l>=650 or i==(len(dat)-1):
             cr = cairo.Context (surface)
             # Place it in the middle of our 9x10 page. 
             cr.translate (20, 0)
             canvas.render (cr, None, 1.0)
             cr.show_page ()
             l=30
             canvas.destroy()
             canvas=goocanvas.Canvas()
             rt=canvas.get_root_item()
             self.text = goocanvas.Text(text='Generate 4 Generations',
                                x=5,y=5,font="Sans 18")
             rt.add_child(self.text)
             self.text = goocanvas.Text(text='Woman',x=0,y=30,font="Sans 6")
             rt.add_child(self.text)
             self.text = goocanvas.Text(text='Product',x=70,y=30,font="Sans 6")
             rt.add_child(self.text)
             self.text = goocanvas.Text(text='Number',x=150,y=30,font="Sans 6")
             rt.add_child(self.text)
             self.text = goocanvas.Text(text='Done',x=180,y=30,font="Sans 6")
             rt.add_child(self.text)
             self.text = goocanvas.Text(text='Date',x=210,y=30,font="Sans 6")
             rt.add_child(self.text)
                     
             self.pi = goocanvas.polyline_new_line(rt,0,40,275,40,
                                             line_width=1,end_arrow=False)
                     
     cr = cairo.Context (surface)
     cr.translate (10, 0)
     canvas.render (cr, None, 1.0)
     cr.show_page ()
     
canvas.connect("item_view_created", on_item_view_created)
canvas.set_model(canvas_model)
canvas.set_size_request(500, 350)
canvas.set_bounds(0, 0, 500, 350)

f.add(canvas)

root = canvas_model.get_root_item()

canvas.set_data("width", DEFAULT_WIDTH)
canvas.set_data("shape_a", DEFAULT_SHAPE_A)
canvas.set_data("shape_b", DEFAULT_SHAPE_B)
canvas.set_data("shape_c", DEFAULT_SHAPE_C)

p1 = goocanvas.polyline_new_line(root, LEFT, MIDDLE, RIGHT, MIDDLE, 
                stroke_color="mediumseagreen",
                end_arrow=True)

canvas.set_data("big_arrow", p1)

p2 = goocanvas.Polyline(close_path=True, stroke_color="black",
            line_width=2.0,
            line_cap=cairo.LINE_CAP_ROUND,
            line_join=cairo.LINE_JOIN_ROUND)

root.add_child(p2)
canvas.set_data("outline", p2)

create_drag_box (canvas, root, "width_drag_box")
create_drag_box (canvas, root, "shape_a_drag_box")
create_drag_box (canvas, root, "shape_b_c_drag_box")
Exemple #29
0
 def _drawMidLine(self, x, y):
     if self.staffType == 'trebleClef' and self.noteName == 'C'  or \
        self.staffType == 'bassClef' and self.noteName == 'C2' or \
        self.staffType == 'trebleClef' and self.noteName == 'C sharp':
         self.midLine = goocanvas.polyline_new_line(self.rootitem, x - 12, y, x + 12, y ,
                                     stroke_color_rgba=0x121212D0, line_width=1)