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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
#
# "$Id: arc.py 111 2005-08-22 14:14:49Z andreasheld $"
#
# Arc drawing program for pyFLTK the Python bindings
# for the Fast Light Tool Kit (FLTK).
# Illustrates the use of the Fl_Widget base class.
#
# FLTK copyright 1998-1999 by Bill Spitzak and others.
# pyFLTK copyright 2003 by Andreas Held and others.
#
# This library is free software you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this library if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA.
#
# Please report all bugs and problems to "pyfltk-user@lists.sourceforge.net".
#
# Arc drawing test program for the Fast Light Tool Kit (FLTK).
from fltk import *
import sys
args = [140, 140, 50, 0, 360, 0]
name = ["X", "Y", "R", "start", "end", "rotate"]
d = None
class Drawing(Fl_Widget):
def __init__(self, X, Y, W, H, L):
Fl_Widget.__init__(self, X, Y, W, H, L)
def draw(self):
global args
try:
xpos = self.x()
ypos = self.y()
w = self.w()
h = self.h()
fl_push_clip(xpos,ypos,w,h)
fl_color(FL_DARK3)
fl_rectf(xpos,ypos,w,h)
fl_push_matrix()
if args[5]:
fl_translate(xpos+w/2.0, ypos+h/2.0)
fl_rotate(args[5])
fl_translate(-(xpos+w/2.0), -(ypos+h/2.0))
fl_color(FL_WHITE)
fl_translate(xpos,ypos)
fl_begin_complex_polygon()
fl_arc(args[0],args[1],args[2],args[3],args[4])
fl_gap()
fl_arc(140,140,20,0,-360)
fl_end_complex_polygon()
fl_color(FL_RED)
fl_begin_line()
fl_arc(args[0],args[1],args[2],args[3],args[4])
fl_end_line()
fl_pop_matrix()
fl_pop_clip()
except:
print 'uncaught!', sys.exc_type, sys.exc_value
return None
def slider_cb(ptr, v):
global d
args[long(v)] = ptr.value()
d.redraw()
window = Fl_Window(300,500)
d = Drawing(10,10,280,280, "test")
y = 300
n = 0
s = [None,None,None,None,None,None]
while n < 6:
s[n] = Fl_Hor_Value_Slider(50,y,240,25,name[n])
y = y+25
if n<3:
s[n].minimum(0)
s[n].maximum(300)
else:
if n==5:
s[n].minimum(0)
s[n].maximum(360)
else:
s[n].minimum(-360)
s[n].maximum(360)
s[n].step(1)
s[n].value(args[n])
s[n].align(FL_ALIGN_LEFT)
s[n].callback(slider_cb, n)
n = n+1
window.end()
#window.show(len(sys.argv),sys.argv)
#window.show()
window.show(sys.argv)
d.redraw()
Fl.run()
|