summaryrefslogtreecommitdiff
path: root/grc/gui/Block.py
diff options
context:
space:
mode:
Diffstat (limited to 'grc/gui/Block.py')
-rw-r--r--grc/gui/Block.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/grc/gui/Block.py b/grc/gui/Block.py
index 11e66bff85..e69fe1a418 100644
--- a/grc/gui/Block.py
+++ b/grc/gui/Block.py
@@ -124,6 +124,7 @@ class Block(Element):
def create_shapes(self):
"""Update the block, parameters, and ports when a change occurs."""
+
Element.create_shapes(self)
if self.is_horizontal(): self.add_area((0, 0), (self.W, self.H))
elif self.is_vertical(): self.add_area((0, 0), (self.H, self.W))
@@ -173,7 +174,10 @@ class Block(Element):
self.H = max(*(
[self.label_height+2*BLOCK_LABEL_PADDING] + [2*PORT_BORDER_SEPARATION + \
sum([port.H + PORT_SEPARATION for port in ports]) - PORT_SEPARATION
- for ports in (self.get_sources(), self.get_sinks())]
+ for ports in (self.get_sources_gui(), self.get_sinks_gui())] +
+ [4*PORT_BORDER_SEPARATION + \
+ sum([(port.H) + PORT_SEPARATION for port in ports]) - PORT_SEPARATION
+ for ports in ([i for i in self.get_sources_gui() if i.get_type() == 'bus'], [i for i in self.get_sinks_gui() if i.get_type() == 'bus'])]
))
def draw(self, gc, window):
@@ -196,7 +200,10 @@ class Block(Element):
elif self.is_vertical():
window.draw_drawable(gc, self.vertical_label, 0, 0, x+(self.H-self.label_height)/2, y+BLOCK_LABEL_PADDING, -1, -1)
#draw ports
- for port in self.get_ports(): port.draw(gc, window)
+
+
+ for port in self.get_ports_gui():
+ port.draw(gc, window)
def what_is_selected(self, coor, coor_m=None):
"""
@@ -209,7 +216,7 @@ class Block(Element):
Returns:
this block, a port, or None
"""
- for port in self.get_ports():
+ for port in self.get_ports_gui():
port_selected = port.what_is_selected(coor, coor_m)
if port_selected: return port_selected
return Element.what_is_selected(self, coor, coor_m)