import gtk from Sketch import Sketch from SketchWidget import SketchWidget from Line import Line from Circle import Circle from Connect import Connect from XDistance import XDistance from YDistance import YDistance from Horizontal import Horizontal from Vertical import Vertical from XFix import XFix from YFix import YFix class Window: def __init__(self, title): self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.window.set_size_request(600, 500) self.window.set_title(title) self.window.connect("destroy", self.destroy_event) s = Sketch() l1 = Line(0, 1, 1, 1) s.shapes.append(l1) l2 = Line(1, 1, 1, 0) s.shapes.append(l2) l3 = Line(1, 0, 0, 0) s.shapes.append(l3) l4 = Line(0, 0, 0, 1) s.shapes.append(l4) c = Circle(0, 0, 0.3) s.shapes.append(c) s.constraints.append(Horizontal(l1, 0, l1, 1)) s.constraints.append(Connect(l1, 1, l2, 0)) s.constraints.append(Vertical(l2, 0, l2, 1)) s.constraints.append(Connect(l2, 1, l3, 0)) s.constraints.append(Horizontal(l3, 0, l3, 1)) s.constraints.append(Connect(l3, 1, l4, 0)) s.constraints.append(Vertical(l4, 0, l4, 1)) s.constraints.append(Connect(l4, 1, l1, 0)) s.constraints.append(Connect(c, 1, l2, 0)) s.constraints.append(YDistance(c, 4, l3, 1, 0)) # s.constraints.append(Connect(c, 4, l3, 1)) s.constraints.append(XDistance(l1, 0, l1, 1, 0.4)) s.constraints.append(YDistance(l4, 0, l4, 1, 0.4)) s.constraints.append(XFix(l1, 0, 0)) s.constraints.append(YFix(l1, 0, 0)) s.solve() sw = SketchWidget(s) self.window.add(sw.widget) self.window.show_all() def main(self): gtk.main() def destroy_event(self, widget, data=None): gtk.main_quit()