jpcad/Window.py
2011-03-31 19:31:01 -04:00

66 lines
1.9 KiB
Python

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(Horizontal(c, 4, l3, 1))
# 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()