1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
import os, pygame, gtk, drawxos
class multiply:
"""Display the pygame screen inside the pygtk window"""
window = gtk.Window()
yadjust = gtk.Adjustment(3,0,12,1,1,1)
xadjust = gtk.Adjustment(2,0,12,1,1,1)
def __init__(self):
#set adjustments and cooresponding sliders
yslider = gtk.HScale(self.yadjust)
xslider = gtk.HScale(self.xadjust)
yslider.set_size_request(100,30)
xslider.set_size_request(100,30)
yslider.set_digits(0)
xslider.set_digits(0)
self.yadjust.connect('value-changed',self.updateXOs)
self.xadjust.connect('value-changed',self.updateXOs)
#create the drawing area for pygame
pygameDA = gtk.DrawingArea()
pygameDA.set_size_request(800,600)
pygame_hack(pygameDA)
box = gtk.VBox()
hbox = gtk.HBox()
hvbox = gtk.VBox()
self.window.add(box)
box.pack_start(pygameDA)
#No resize
#DON'T CHANGE THE ORDER ORDER ACTUALLY MATTERS
hvbox.pack_start(yslider,False,False)
hvbox.pack_start(xslider,False,False)
hbox.pack_start(hvbox,False,False)
box.pack_start(hbox,False,False)
self.window.set_size_request(1280,800)
self.window.show_all()
def updateXOs(self,widget):
screen = drawxos.drawXOs(pygame.display.set_mode((800,600)),pygame.image.load("XO.png"),self.xadjust.get_value(),self.yadjust.get_value())
def pygame_hack(widget):
def callback(widget, *args):
handle = widget.window.xid
size = widget.size_request()
os.environ['SDL_WINDOWID'] = str(handle)
pygame.display.init()
pygame.dispaly.set_mode(size)
widget.connect('map-event',callback)
def main():
m = multiply()
gtk.main()
if __name__ == '__main__':main()
|