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 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(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.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()