~jtaylor/ubuntu/natty/pyfltk/fix-779340

« back to all changes in this revision

Viewing changes to fltk/test/arc.py

  • Committer: Bazaar Package Importer
  • Author(s): Aaron M. Ucko
  • Date: 2009-03-13 20:47:00 UTC
  • Revision ID: james.westby@ubuntu.com-20090313204700-ra4hgdlhxzrccas3
Tags: upstream-1.1.3
ImportĀ upstreamĀ versionĀ 1.1.3

Show diffs side-by-side

added added

removed removed

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