anygui-checkins Mailing List for anygui - Generic GUI Module for Python
Brought to you by:
mlh
You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(110) |
Aug
(245) |
Sep
(134) |
Oct
(89) |
Nov
(221) |
Dec
(465) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
(108) |
Feb
(71) |
Mar
(52) |
Apr
(43) |
May
(39) |
Jun
(10) |
Jul
(91) |
Aug
(40) |
Sep
(24) |
Oct
(28) |
Nov
(75) |
Dec
|
| 2003 |
Jan
(15) |
Feb
(18) |
Mar
(2) |
Apr
(3) |
May
(1) |
Jun
(2) |
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2004 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Magnus L. H. <ml...@us...> - 2004-03-21 21:47:18
|
Update of /cvsroot/anygui/nondist/admin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31894 Modified Files: status.txt Log Message: Index: status.txt =================================================================== RCS file: /cvsroot/anygui/nondist/admin/status.txt,v retrieving revision 1.65 retrieving revision 1.66 diff -C2 -r1.65 -r1.66 *** status.txt 17 Feb 2003 03:09:45 -0000 1.65 --- status.txt 21 Mar 2004 21:37:05 -0000 1.66 *************** *** 13,17 **** qtgui + + + ! - + + ! + + + + + + - + - - - + - - + textgui ? ? ? ! ? ? ? ! ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ! tkgui + + + ! + + - ! + + + + ? ! + + + + + + + + + wxgui + + + ! + + + ! + + + + + + + + + + + + + + + --- 13,17 ---- qtgui + + + ! - + + ! + + + + + + - + - - - + - - + textgui ? ? ? ! ? ? ? ! ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ! tkgui + + + ! + + + ! + + + + + ! + + + + + + + + + wxgui + + + ! + + + ! + + + + + + + + + + + + + + + |
|
From: Magnus L. H. <ml...@us...> - 2004-03-21 21:42:50
|
Update of /cvsroot/anygui/anygui/lib/anygui/backends In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30900/lib/anygui/backends Modified Files: tkgui.py Log Message: Removed the sunken border on frames in tkgui, to match other back-ends. Index: tkgui.py =================================================================== RCS file: /cvsroot/anygui/anygui/lib/anygui/backends/tkgui.py,v retrieving revision 1.87 retrieving revision 1.88 diff -C2 -r1.87 -r1.88 *** tkgui.py 26 Aug 2003 16:21:44 -0000 1.87 --- tkgui.py 21 Mar 2004 21:32:40 -0000 1.88 *************** *** 568,572 **** def widgetFactory(self, *args, **kws): ! kws['relief'] = 'sunken' kws['borderwidth'] = 2 widget=Tkinter.Frame(*args, **kws) --- 568,572 ---- def widgetFactory(self, *args, **kws): ! #kws['relief'] = 'sunken' kws['borderwidth'] = 2 widget=Tkinter.Frame(*args, **kws) |
|
From: Magnus L. H. <ml...@us...> - 2003-08-26 18:06:08
|
Update of /cvsroot/anygui//nondist/sandbox/magnus/tester
In directory sc8-pr-cvs1:/tmp/cvs-serv3742
Modified Files:
runme.py
Added Files:
server.py
Log Message:
--- NEW FILE: server.py ---
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
from threading import Thread
import webbrowser
import os, sys
from time import *
from glob import glob
from anygui import *
from anygui.Utils import topologicalSort
# FIXME: Currently resets all results; should keep results from other
# back-ends. Rewrite to create a single table of successes/failures for all
# back-ends, parse in existing test results from the result file, and
# display the test descriptions only once, below the table.
TEST_DIR = 'tests'
TEST_PAT = 'test_*.py'
RESULT_FILE = 'results.html'
HEAD = """\
<html>
<head>
<title>Anygui Test Wizard</title>
<style>
body { color: #000000;
background-color: #ffffff; }
a:active { color: #ff0000; }
a:visited { color: #551a8b; }
a:link { color: #0000bb; }
h1, h2, h3, h4, h5, h6 { font-family: avantgarde, sans-serif;
font-weight: bold; }
h1 { font-size: 180%%; }
h2 { font-size: 150%%; }
h3, h4 { font-size: 120%%; }
code, tt { font-family: lucida typewriter, lucidatypewriter,
monospace; }
var { font-family: times, serif;
font-style: italic;
font-weight: normal; }
.typelabel { font-family: lucida, sans-serif; }
.navigation td { background-color: #99ccff;
font-weight: bold;
font-family: avantgarde, sans-serif;
font-size: 110%%; }
.release-info { font-style: italic; }
.titlegraphic { vertical-align: top; }
.verbatim { color: #00008b;
font-family: lucida typewriter, lucidatypewriter,
monospace; }
.grammar { background-color: #99ccff;
margin-right: 0.5in;
padding: 0.05in; }
.productions { background-color: #bbeeff; }
.productions table { vertical-align: baseline; }
.grammar-footer { padding: 0.05in;
font-size: 85%%; }
.email { font-family: avantgarde, sans-serif; }
.mailheader { font-family: avantgarde, sans-serif; }
.mimetype { font-family: avantgarde, sans-serif; }
.newsgroup { font-family: avantgarde, sans-serif; }
.url { font-family: avantgarde, sans-serif; }
.file { font-family: avantgarde, sans-serif; }
.tableheader { background-color: #99ccff;
font-family: avantgarde, sans-serif; }
</style>
</head>
<body>
<div class="navigation">
<table align="center" width="100%%" cellpadding="0" cellspacing="2">
<tr>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="" width="32"></td>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="Up One Level" width="32"></td>
<td><img src="icons/up.gif"
border="0" height="32"
alt="Next Page" width="32"></td>
<td align="center" width="100%%">Anygui Test Wizard</td>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="Contents" width="32"></td>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="Module Index" width="32"></td>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="Index" width="32"></td>
</tr></table>
<b class="navlabel">Up:</b> <a class="sectref" HREF="http://www.anygui.org">Anygui home</a>
<br /><hr />
</div>
<div class="titlepage">
<center>
<h1>Anygui Test Wizard</h1>
<!-- <strong>%s</strong> -->
</center>
</div>
<br />
<hr />
"""
FOOT = """\
<div class="navigation">
<hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="" width="32"></td>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="Up One Level" width="32"></td>
<td><img src="icons/up.gif"
border="0" height="32"
alt="Next Page" width="32"></td>
<td align="center" width="100%">Anygui Test Wizard</td>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="Contents" width="32"></td>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="Module Index" width="32"></td>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="Index" width="32"></td>
</tr></table>
<b class="navlabel">Up:</b> <a class="sectref" HREF="http://www.anygui.org">Anygui home</a>
<br><hr />
</div>
</body>
</html>"""
def testFiles():
return glob(os.path.join(TEST_DIR, TEST_PAT))
"""
class TestResult:
status = 'Failed'
def __init__(self, name, scope):
self.name = name
self.scope = scope
def __str__(self):
docs = self.scope.get('__doc__', '(No description available)')
docs = '<p>' + docs.replace('\n\n', '\n</p>\n<p>') + '\n</p>'
return '''<h3>%s: %s</h3>
%s
''' % (self.name, self.status, docs)
class TestWizard:
def __init__(self, files, resultFile, *args, **kwds):
Application.__init__(self, *args, **kwds)
self.files = files
self.resultFile = resultFile
self.results = []
self.setupGUI()
def setupTests(self):
testScopes = []
testNames = []
constraints = []
for fname in self.files:
scope = {}
exec open(fname) in scope
testScopes.append(scope)
name = os.path.basename(fname)
testNames.append(name)
for other in eval('after', scope):
constraints.append((other, name))
topologicalSort(testNames, testScopes, constraints)
testScopes.reverse()
testNames.reverse()
self.testScopes = testScopes
self.testNames = testNames
def nextTest(self):
if not self.testScopes:
self.writeResults()
sys.exit()
scope = self.testScopes.pop()
name = self.testNames.pop()
try: self.win.remove(self.frame)
except AttributeError: pass
self.frame = Frame()
assert not hasattr(scope, '__supplied_frame')
scope['__supplied_frame'] = self.frame
exec 'setup(__supplied_frame)' in scope
self.win.add(self.frame, top=0, left=0, right=0,
bottom=(self.passButton, 10),
hstretch=1, vstretch=1)
self.results.append(TestResult(name, scope))
def writeResults(self):
out = open(self.resultFile, 'w')
print >> out, HEAD
for result in self.results:
print >> out, result
print >> out, FOOT
out.close()
def passTest(self, event):
self.results[-1].status = 'Passed'
self.nextTest()
def failTest(self, event):
self.nextTest()
"""
class RequestHandler(BaseHTTPRequestHandler):
def __init__(self, *args, **kwds):
BaseHTTPRequestHandler.__init__(self, *args, **kwds)
self.setupTests()
def setupTests(self):
testScopes = []
testNames = []
constraints = []
for fname in testFiles():
scope = {}
exec open(fname) in scope
testScopes.append(scope)
name = os.path.basename(fname)
testNames.append(name)
for other in eval('after', scope):
constraints.append((other, name))
topologicalSort(testNames, testScopes, constraints)
testScopes.reverse()
testNames.reverse()
self.testScopes = testScopes
self.testNames = testNames
def do_GET(self):
if self.client_address[0] != "127.0.0.1":
self.send_error(403)
return
if self.path in ['/icons/blank.gif', '/icons/up.gif']:
print >> self.wfile, "Content-type: image/gif\n"
self.wfile.write(open(self.path[1:], 'rb').read())
return
print >> self.wfile, "Content-type: text/html\n"
print >> self.wfile, HEAD
# [...]
print >> self.wfile, FOOT
def main(args=[]):
webbrowser.open('http://localhost:8000')
server = HTTPServer(('', 8000), RequestHandler)
try: server.serve_forever()
except KeyboardInterrupt: pass
#tw = TestWizard(testFiles(), RESULT_FILE)
#tw.run()
if __name__ == '__main__':
main(sys.argv)
Index: runme.py
===================================================================
RCS file: /cvsroot/anygui//nondist/sandbox/magnus/tester/runme.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** runme.py 9 Jun 2003 18:40:37 -0000 1.4
--- runme.py 26 Aug 2003 18:05:52 -0000 1.5
***************
*** 23,26 ****
--- 23,27 ----
<title>Anygui Test Results</title>
<style>
+
body { color: #000000;
background-color: #ffffff; }
|
|
From: Magnus L. H. <ml...@us...> - 2003-08-26 16:22:03
|
Update of /cvsroot/anygui//anygui/lib/anygui/backends
In directory sc8-pr-cvs1:/tmp/cvs-serv15708/lib/anygui/backends
Modified Files:
tkgui.py
Log Message:
Added exportselection=0 to the ListBox constructor, so selecting
entries in multiple, independent listboxes is possible. Thanks to
Sascha Silbe for this one.
Index: tkgui.py
===================================================================
RCS file: /cvsroot/anygui//anygui/lib/anygui/backends/tkgui.py,v
retrieving revision 1.86
retrieving revision 1.87
diff -C2 -r1.86 -r1.87
*** tkgui.py 13 Nov 2002 17:19:22 -0000 1.86
--- tkgui.py 26 Aug 2003 16:21:44 -0000 1.87
***************
*** 440,443 ****
--- 440,444 ----
def widgetFactory(self, *args, **kws):
+ kws.setdefault('exportselection', 0)
widget=Tkinter.Listbox(*args, **kws)
widget.bind('<ButtonRelease-1>', self.clickHandler)
|
|
From: Magnus L. H. <ml...@us...> - 2003-06-09 18:40:40
|
Update of /cvsroot/anygui/nondist/sandbox/magnus/tester In directory sc8-pr-cvs1:/tmp/cvs-serv24307 Modified Files: runme.py Log Message: Index: runme.py =================================================================== RCS file: /cvsroot/anygui/nondist/sandbox/magnus/tester/runme.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** runme.py 9 Jun 2003 18:40:00 -0000 1.3 --- runme.py 9 Jun 2003 18:40:37 -0000 1.4 *************** *** 1,6 **** #!/usr/bin/env python ! # FIXME: Currently resets all results; should keep results from other ! # back-ends. Rewrite to create a single table of successes/failures for all # back-ends, parse in existing test results from the result file, and # display the test descriptions only once, below the table. --- 1,5 ---- #!/usr/bin/env python ! # FIXME: Rewrite to create a single table of successes/failures for all # back-ends, parse in existing test results from the result file, and # display the test descriptions only once, below the table. |
|
From: Magnus L. H. <ml...@us...> - 2003-06-09 18:40:05
|
Update of /cvsroot/anygui/nondist/sandbox/magnus/tester
In directory sc8-pr-cvs1:/tmp/cvs-serv23907
Modified Files:
runme.py
Log Message:
Index: runme.py
===================================================================
RCS file: /cvsroot/anygui/nondist/sandbox/magnus/tester/runme.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** runme.py 8 Feb 2003 03:12:45 -0000 1.2
--- runme.py 9 Jun 2003 18:40:00 -0000 1.3
***************
*** 6,10 ****
# display the test descriptions only once, below the table.
! import os, sys
from time import *
from glob import glob
--- 6,10 ----
# display the test descriptions only once, below the table.
! import os, sys, re
from time import *
from glob import glob
***************
*** 12,15 ****
--- 12,18 ----
from anygui.Utils import topologicalSort
+ BEGIN_COMMENT = re.compile('^<!-- begin (\w+) -->$')
+ END_COMMENT = re.compile('^<!-- end (\w+) -->$')
+
TEST_DIR = 'tests'
TEST_PAT = 'test_*.py'
***************
*** 112,120 ****
<br />
! <hr />
<h2>Test Results for <code>%sgui</code></h2>
! """ % (strftime('%Y-%m-%d %H:%M:%S', localtime()), backend())
FOOT = """\
--- 115,133 ----
<br />
! """ % (strftime('%Y-%m-%d %H:%M:%S', localtime()),)
!
! BACKEND_HEADER = """<hr />
!
! <!-- begin %s -->
<h2>Test Results for <code>%sgui</code></h2>
! """ % (backend(), backend())
!
! BACKEND_FOOTER = """
!
! <!-- end %s -->
!
! """ % (backend(),)
FOOT = """\
***************
*** 175,181 ****
--- 188,216 ----
self.files = files
self.resultFile = resultFile
+ self.readExisting()
self.results = []
self.setupGUI()
+ def readExisting(self):
+ self.existing = []
+ if not os.path.isfile(self.resultFile):
+ return
+ collect = False
+ for line in open(self.resultFile):
+ m = BEGIN_COMMENT.match(line)
+ if m and not m.group(1) == backend():
+ collect = True
+ continue
+ m = END_COMMENT.match(line)
+ if m:
+ collect = False
+ continue
+ if collect:
+ self.existing.append(line)
+
+ def writeExisting(self, out):
+ for line in self.existing:
+ out.write(line)
+
def setupGUI(self):
self.win = Window(text='The Anygui Test Program')
***************
*** 232,237 ****
--- 267,275 ----
out = open(self.resultFile, 'w')
print >> out, HEAD
+ self.writeExisting(out)
+ print >> out, BACKEND_HEADER
for result in self.results:
print >> out, result
+ print >> out, BACKEND_FOOTER
print >> out, FOOT
out.close()
|
|
From: Robin B. <rgb...@us...> - 2003-05-18 10:16:43
|
Update of /cvsroot/anygui/anygui/lib/anygui/backends
In directory sc8-pr-cvs1:/tmp/cvs-serv2482
Modified Files:
ctmswgui.py
Log Message:
Fix up to use ctype-0.6.0
Index: ctmswgui.py
===================================================================
RCS file: /cvsroot/anygui/anygui/lib/anygui/backends/ctmswgui.py,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** ctmswgui.py 29 Nov 2002 09:15:24 -0000 1.7
--- ctmswgui.py 18 May 2003 10:16:26 -0000 1.8
***************
*** 26,30 ****
################################################################
! from ctypes import CDLL, _DLLS, _DynFunction, CFunction, c_string, Structure, WinError, byref, GetLastError
_apiMode = 'A'
--- 26,30 ----
################################################################
! from ctypes import CDLL, _DLLS, WinDLL, WINFUNCTYPE, c_buffer, c_int, c_char_p, Structure, WinError, byref, GetLastError
_apiMode = 'A'
***************
*** 35,48 ****
return text.replace('\r\n', '\n')
! class WinDLL(CDLL):
!
def __getattr__(self, name):
try:
! func = _DynFunction(name, self)
except:
! func = _DynFunction(name+_apiMode, self)
setattr(self, name, func)
return func
! windll = _DLLS(WinDLL)
user32 = windll.user32
--- 35,50 ----
return text.replace('\r\n', '\n')
! class LocalWinDLL(WinDLL):
def __getattr__(self, name):
+ if name[:2] == '__' and name[-2:] == '__':
+ raise AttributeError, name
try:
! func = self._StdcallFuncPtr(name, self)
except:
! func = self._StdcallFuncPtr(name+_apiMode, self)
setattr(self, name, func)
return func
!
! windll = _DLLS(LocalWinDLL)
user32 = windll.user32
***************
*** 213,220 ****
class t_rect(Structure):
! _fields_=(('left','i'),('top','i'),('right','i'),('bottom','i'))
class t_point(Structure):
! _fields_=(('x','i'),('y','i'))
# BUGS:
--- 215,222 ----
class t_rect(Structure):
! _fields_=(('left',c_int),('top',c_int),('right',c_int),('bottom',c_int))
class t_point(Structure):
! _fields_=(('x',c_int),('y',c_int))
# BUGS:
***************
*** 356,365 ****
if not self.widget: return
#if _verbose: log("%s.SetWindowText('%s'(%s)) hwnd=%s(%s) self=%s" % (self.__class__.__name__,text,type(text),self.widget,type(self.widget),str(self)))
! SetWindowText(self.widget,c_string(_to_native(text)))
def _getText(self):
'return native text'
n = GetWindowTextLength(self.widget)
! t = c_string('\000'*(n+1))
GetWindowText(self.widget,t,n+1)
return t.value
--- 358,367 ----
if not self.widget: return
#if _verbose: log("%s.SetWindowText('%s'(%s)) hwnd=%s(%s) self=%s" % (self.__class__.__name__,text,type(text),self.widget,type(self.widget),str(self)))
! SetWindowText(self.widget,c_buffer(_to_native(text)))
def _getText(self):
'return native text'
n = GetWindowTextLength(self.widget)
! t = c_buffer('\000'*(n+1))
GetWindowText(self.widget,t,n+1)
return t.value
***************
*** 428,432 ****
for item in map(str, list(items)):
# FIXME: This doesn't work! Items get jumbled...
! SendMessage(self.widget, LB_ADDSTRING, 0, c_string(item))
--- 430,434 ----
for item in map(str, list(items)):
# FIXME: This doesn't work! Items get jumbled...
! SendMessage(self.widget, LB_ADDSTRING, 0, c_buffer(item))
***************
*** 605,609 ****
if self.kind=='bitmap':
try:
! self._handle = LoadImage(0,c_string(fn),
IMAGE_BITMAP,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE)
except:
--- 607,611 ----
if self.kind=='bitmap':
try:
! self._handle = LoadImage(0,c_buffer(fn),
IMAGE_BITMAP,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE)
except:
***************
*** 713,717 ****
def setTitle(self,title):
if self.widget and title:
! SetWindowText(self.widget, c_string(title))
def getTitle(self):
--- 715,719 ----
def setTitle(self,title):
if self.widget and title:
! SetWindowText(self.widget, c_buffer(title))
def getTitle(self):
***************
*** 810,828 ****
def _register_class(self):
#if _verbose: log('Application._register_class:start',str(self))
! class WINDOWPROC(CFunction):
! _types_ = "iiii"
! _stdcall_ = 1
class WNDCLASS(Structure):
_fields_= (
! ('style','i'),
('lpfnWndProc',WINDOWPROC),
! ('cls_extra','i'),
! ('wnd_extra','i'),
! ('hInst','i'),
! ('hIcon','i'),
! ('hCursor','i'),
! ('hbrBackground','i'),
! ('menu_name','z'),
! ('lpzClassName','z'),
)
--- 812,829 ----
def _register_class(self):
#if _verbose: log('Application._register_class:start',str(self))
! WINDOWPROC = WINFUNCTYPE(c_int,c_int,c_int,c_int,c_int)
!
class WNDCLASS(Structure):
_fields_= (
! ('style',c_int),
('lpfnWndProc',WINDOWPROC),
! ('cls_extra',c_int),
! ('wnd_extra',c_int),
! ('hInst',c_int),
! ('hIcon',c_int),
! ('hCursor',c_int),
! ('hbrBackground',c_int),
! ('menu_name',c_char_p),
! ('lpzClassName',c_char_p),
)
***************
*** 861,871 ****
class MSG(Structure):
_fields_ = (
! ('hwnd','i'),
! ('message','i'),
! ('wParam','i'),
! ('lParam','i'),
! ('time','i'),
! ('x','i'),
! ('y','i'),
)
--- 862,872 ----
class MSG(Structure):
_fields_ = (
! ('hwnd',c_int),
! ('message',c_int),
! ('wParam',c_int),
! ('lParam',c_int),
! ('time',c_int),
! ('x',c_int),
! ('y',c_int),
)
|
|
From: Magnus L. H. <ml...@us...> - 2003-04-02 20:46:51
|
Update of /cvsroot/anygui//anygui/lib/anygui
In directory sc8-pr-cvs1:/tmp/cvs-serv21658/lib/anygui
Modified Files:
Events.py
Log Message:
Index: Events.py
===================================================================
RCS file: /cvsroot/anygui//anygui/lib/anygui/Events.py,v
retrieving revision 1.42
retrieving revision 1.43
diff -C2 -r1.42 -r1.43
*** Events.py 19 Jul 2002 00:28:27 -0000 1.42
--- Events.py 2 Apr 2003 20:32:25 -0000 1.43
***************
*** 1,11 ****
- ''' Event framework for Anygui.
-
- Magnus Lie Hetland 2001-11-26
-
- 2002-02-12: Modified send() to send a single event object to the
- event handlers.
- '''
-
TODO = '''
- Fix optional arguments/use of kwdargs in place of positionals etc.
--- 1,3 ----
|
|
From: Magnus L. H. <ml...@us...> - 2003-04-02 20:46:32
|
Update of /cvsroot/anygui//anygui
In directory sc8-pr-cvs1:/tmp/cvs-serv21658
Modified Files:
TODO.txt
Log Message:
Index: TODO.txt
===================================================================
RCS file: /cvsroot/anygui//anygui/TODO.txt,v
retrieving revision 1.62
retrieving revision 1.63
diff -C2 -r1.62 -r1.63
*** TODO.txt 19 Mar 2003 12:35:12 -0000 1.62
--- TODO.txt 2 Apr 2003 20:32:23 -0000 1.63
***************
*** 37,40 ****
--- 37,43 ----
* Fix transformation push('position') -> push('x', 'y') etc.
+ * Update documentation to include descriptions of use in IDLE and
+ other IDEs.
+
Objectives for version 0.2a0:
-----------------------------
|
|
From: Magnus L. H. <ml...@us...> - 2003-04-02 20:43:02
|
Update of /cvsroot/anygui//anygui/lib/anygui/backends
In directory sc8-pr-cvs1:/tmp/cvs-serv21658/lib/anygui/backends
Modified Files:
skelgui.py
Log Message:
Index: skelgui.py
===================================================================
RCS file: /cvsroot/anygui//anygui/lib/anygui/backends/skelgui.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** skelgui.py 14 Nov 2002 17:00:10 -0000 1.3
--- skelgui.py 2 Apr 2003 20:32:25 -0000 1.4
***************
*** 33,40 ****
"""
# Import Anygui infrastructure. You shouldn't have to change these.
from anygui.backends import *
from anygui.Applications import AbstractApplication
! from anygui.Wrappers import AbstractWrapper, DummyWidget, isDummy
from anygui.Events import *
from anygui.Exceptions import Error
--- 33,54 ----
"""
+ __all__ = '''
+
+ Application
+ ButtonWrapper
+ WindowWrapper
+ LabelWrapper
+ TextFieldWrapper
+ TextAreaWrapper
+ ListBoxWrapper
+ RadioButtonWrapper
+ CheckBoxWrapper
+
+ '''.split()
+
# Import Anygui infrastructure. You shouldn't have to change these.
from anygui.backends import *
from anygui.Applications import AbstractApplication
! from anygui.Wrappers import AbstractWrapper
from anygui.Events import *
from anygui.Exceptions import Error
***************
*** 103,110 ****
native widget. You can also call it within the wrapper code if
you need to destroy your native widget for some reason. You
! should set self.widget to DummyWidget()
! here, after destroying the native widget.
"""
! self.widget = DummyWidget()
raise NotImplementedError, 'should be implemented by subclasses'
--- 117,124 ----
native widget. You can also call it within the wrapper code if
you need to destroy your native widget for some reason. You
! should set self.widget to None here, after destroying the
! native widget.
"""
! self.widget = None
raise NotImplementedError, 'should be implemented by subclasses'
|
|
From: Magnus L. H. <ml...@us...> - 2003-03-29 12:02:45
|
Update of /cvsroot/anygui//anygui/doc
In directory sc8-pr-cvs1:/tmp/cvs-serv5768
Modified Files:
tutorial.txt
Log Message:
Index: tutorial.txt
===================================================================
RCS file: /cvsroot/anygui//anygui/doc/tutorial.txt,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** tutorial.txt 16 Feb 2003 02:11:24 -0000 1.5
--- tutorial.txt 29 Mar 2003 12:02:42 -0000 1.6
***************
*** 240,247 ****
Cool, huh?
! (Note: Event handlers receive information about the event through
Event objects. We ignore the specifics of these objects here. In
version 0.1.1 and earlier, event handlers received information
! through keyword arguments.)
9. Further Exploration
--- 240,254 ----
Cool, huh?
! Note: Event handlers receive information about the event through
Event objects. We ignore the specifics of these objects here. In
version 0.1.1 and earlier, event handlers received information
! through keyword arguments. So, if you're using Anygui 0.1.1, the
! event handler should be:
!
! def handler(**kwds):
! txt.text = sentence()
!
! If you use the definition without keyword arguments, you'll get a
! TypeError, which complains about unexpected keyword arguments.
9. Further Exploration
***************
*** 331,334 ****
--- 338,342 ----
win.height = txt.height + btn.height + 30
+ # Remember to use keyword arguments in Anygui 0.1.1
def handler(event): txt.text = sentence()
link(btn, 'click', handler)
|
|
From: Magnus L. H. <ml...@us...> - 2003-03-19 12:35:16
|
Update of /cvsroot/anygui//anygui
In directory sc8-pr-cvs1:/tmp/cvs-serv24338
Modified Files:
TODO.txt
Log Message:
Index: TODO.txt
===================================================================
RCS file: /cvsroot/anygui//anygui/TODO.txt,v
retrieving revision 1.61
retrieving revision 1.62
diff -C2 -r1.61 -r1.62
*** TODO.txt 29 Jan 2003 01:51:42 -0000 1.61
--- TODO.txt 19 Mar 2003 12:35:12 -0000 1.62
***************
*** 80,83 ****
--- 80,85 ----
relevant components.
+ * Implement the method Application.quit in all back-ends.
+
New Components:
|
|
From: Magnus L. H. <ml...@us...> - 2003-02-17 03:09:49
|
Update of /cvsroot/anygui/nondist/admin In directory sc8-pr-cvs1:/tmp/cvs-serv14433 Modified Files: status.txt Log Message: Index: status.txt =================================================================== RCS file: /cvsroot/anygui/nondist/admin/status.txt,v retrieving revision 1.64 retrieving revision 1.65 diff -C2 -r1.64 -r1.65 *** status.txt 26 Jan 2003 16:03:11 -0000 1.64 --- status.txt 17 Feb 2003 03:09:45 -0000 1.65 *************** *** 11,15 **** javagui + + + ! + ! - ! + + + + ? + - ! + + + + + + + mswgui + + + ! + + + ! + + + + + ! + + + - + + - + + ! qtgui + + + ! - + + ! - + + + - + - + - - - + - - + textgui ? ? ? ! ? ? ? ! ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? tkgui + + + ! + + - ! + + + + ? ! + + + + + + + + + --- 11,15 ---- javagui + + + ! + ! - ! + + + + ? + - ! + + + + + + + mswgui + + + ! + + + ! + + + + + ! + + + - + + - + + ! qtgui + + + ! - + + ! + + + + + + - + - - - + - - + textgui ? ? ? ! ? ? ? ! ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? tkgui + + + ! + + - ! + + + + ? ! + + + + + + + + + |
|
From: Magnus L. H. <ml...@us...> - 2003-02-17 02:53:18
|
Update of /cvsroot/anygui/anygui In directory sc8-pr-cvs1:/tmp/cvs-serv8853 Modified Files: KNOWN_BUGS.txt Log Message: Fixed the window offset problem in qtgui. The setGeometry of QMainWindow doesn't take into account the window frame. I changed WindowWrapper.setGeometry to use QMainWindow.move() and QMainWindow.resize() instead -- not sure whether resize() takes the window frame into account. One related bug remains: When the window is resized so that comtained components get negative dimensions, qt will keep them at zero (naturally), and when the window has its size increased again, the component dimensions will be wrong. Index: KNOWN_BUGS.txt =================================================================== RCS file: /cvsroot/anygui/anygui/KNOWN_BUGS.txt,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** KNOWN_BUGS.txt 1 Nov 2002 14:31:16 -0000 1.10 --- KNOWN_BUGS.txt 17 Feb 2003 02:53:15 -0000 1.11 *************** *** 16,24 **** qtgui: ! [mlh@20021101] qtgui windows seem to be displaced by a fixed amount. ! Also, handling of Nond vs. DummyWidget doesn't seem to work properly yet. And... After editing the text in a textfield, the cursor seems to ! automatically jump to the end of the text. And defaults don't seem to ! be working properly. -- Old (0.1.1) problems ---------------------------------------------- --- 16,26 ---- qtgui: ! [mlh@20030217] Handling of Nond vs. DummyWidget doesn't seem to work properly yet. And... After editing the text in a textfield, the cursor seems to ! automatically jump to the end of the text. And defaults don't seem to be ! working properly. And if a window is resized to a very small size, so that a ! contained widget has one of its dimensions reduced to less zero, the widgets ! geometry will be wrong when the window is resized to become large again. The ! negative dimension should be "remembered" somehow. -- Old (0.1.1) problems ---------------------------------------------- |
|
From: Magnus L. H. <ml...@us...> - 2003-02-17 02:53:18
|
Update of /cvsroot/anygui/anygui/lib/anygui/backends
In directory sc8-pr-cvs1:/tmp/cvs-serv8853/lib/anygui/backends
Modified Files:
qtgui.py
Log Message:
Fixed the window offset problem in qtgui. The setGeometry of QMainWindow
doesn't take into account the window frame. I changed
WindowWrapper.setGeometry to use QMainWindow.move() and QMainWindow.resize()
instead -- not sure whether resize() takes the window frame into account.
One related bug remains: When the window is resized so that comtained
components get negative dimensions, qt will keep them at zero (naturally),
and when the window has its size increased again, the component dimensions
will be wrong.
Index: qtgui.py
===================================================================
RCS file: /cvsroot/anygui/anygui/lib/anygui/backends/qtgui.py,v
retrieving revision 1.28
retrieving revision 1.29
diff -C2 -r1.28 -r1.29
*** qtgui.py 29 Jan 2003 01:43:43 -0000 1.28
--- qtgui.py 17 Feb 2003 02:53:15 -0000 1.29
***************
*** 531,536 ****
dh = h - self.proxy.state['height'] # @@@ (and therefore will tell us nothing!)
! self.proxy.height
! self.proxy.width
self.proxy.resized(dw, dh)
--- 531,536 ----
dh = h - self.proxy.state['height'] # @@@ (and therefore will tell us nothing!)
! self.proxy.height # FIXME: What's this? [mlh]
! self.proxy.width # FIXME: What's this? [mlh]
self.proxy.resized(dw, dh)
***************
*** 602,610 ****
def setGeometry(self, x, y, width, height):
if self.widget:
! self.mainWindow.setGeometry(x, y, width, height)
def getGeometry(self):
if self.widget:
! r = self.widget.geometry()
p = self.widget.mapToGlobal(QPoint(r.x(), r.y()))
return (p.x(), p.y(), r.width(), r.height())
--- 602,614 ----
def setGeometry(self, x, y, width, height):
if self.widget:
! # Doesn't account for the frame:
! #self.mainWindow.setGeometry(x, y, width, height)
! self.mainWindow.move(x, y)
! # FIXME: Does resize account for the window frame?
! self.mainWindow.resize(width, height)
def getGeometry(self):
if self.widget:
! r = self.widget.frameGeometry()
p = self.widget.mapToGlobal(QPoint(r.x(), r.y()))
return (p.x(), p.y(), r.width(), r.height())
|
|
From: Magnus L. H. <ml...@us...> - 2003-02-16 02:11:27
|
Update of /cvsroot/anygui/anygui/doc
In directory sc8-pr-cvs1:/tmp/cvs-serv11887
Modified Files:
tutorial.txt
Log Message:
Index: tutorial.txt
===================================================================
RCS file: /cvsroot/anygui/anygui/doc/tutorial.txt,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** tutorial.txt 24 Apr 2002 15:57:03 -0000 1.4
--- tutorial.txt 16 Feb 2003 02:11:24 -0000 1.5
***************
*** 1,5 ****
Title: Anygui Tutorial
Author: Magnus Lie Hetland
! Date: 2002-01-04
1. Introduction
--- 1,5 ----
Title: Anygui Tutorial
Author: Magnus Lie Hetland
! Date: 2003-02-16
1. Introduction
***************
*** 55,65 ****
from anygui import *
- win = Window()
app = Application()
app.add(win)
There; we've created a Window object, an Application object, and
added the Window to the Application (otherwise it wouldn't show up
! anywhere).
This won't do anything by itself; we need to tell the Application
--- 55,66 ----
from anygui import *
app = Application()
+ win = Window()
app.add(win)
There; we've created a Window object, an Application object, and
added the Window to the Application (otherwise it wouldn't show up
! anywhere). You should create your Application object before your
! other Anygui components (including Windows).
This won't do anything by itself; we need to tell the Application
***************
*** 218,222 ****
and link it to the button:
! def handler(**kw):
txt.text = sentence()
--- 219,223 ----
and link it to the button:
! def handler(event):
txt.text = sentence()
***************
*** 240,246 ****
(Note: Event handlers receive information about the event through
! keyword arguments, such as event type, the time when the event
! occurred etc. We simply ignore all that here, using the **kw syntax
! to allow any keywords.)
9. Further Exploration
--- 241,247 ----
(Note: Event handlers receive information about the event through
! Event objects. We ignore the specifics of these objects here. In
! version 0.1.1 and earlier, event handlers received information
! through keyword arguments.)
9. Further Exploration
***************
*** 318,321 ****
--- 319,324 ----
return ' '.join(words)
+ app = Application()
+
win = Window()
***************
*** 328,335 ****
win.height = txt.height + btn.height + 30
! def handler(**kw): txt.text = sentence()
link(btn, 'click', handler)
- app = Application()
app.add(win)
app.run()
--- 331,337 ----
win.height = txt.height + btn.height + 30
! def handler(event): txt.text = sentence()
link(btn, 'click', handler)
app.add(win)
app.run()
|
|
From: Magnus L. H. <ml...@us...> - 2003-02-08 03:12:49
|
Update of /cvsroot/anygui/nondist/sandbox/magnus/tester
In directory sc8-pr-cvs1:/tmp/cvs-serv4597
Modified Files:
runme.py
Log Message:
Fixed thinko
Index: runme.py
===================================================================
RCS file: /cvsroot/anygui/nondist/sandbox/magnus/tester/runme.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** runme.py 8 Feb 2003 02:01:25 -0000 1.1
--- runme.py 8 Feb 2003 03:12:45 -0000 1.2
***************
*** 164,168 ****
docs = self.scope.get('__doc__', '(No description available)')
docs = '<p>' + docs.replace('\n\n', '\n</p>\n<p>') + '\n</p>'
! return '''<h3>%s: %s</h3>
%s
--- 164,168 ----
docs = self.scope.get('__doc__', '(No description available)')
docs = '<p>' + docs.replace('\n\n', '\n</p>\n<p>') + '\n</p>'
! return '''<h3>test_%s.py: %s</h3>
%s
***************
*** 202,206 ****
exec open(fname) in scope
testScopes.append(scope)
! name = os.path.basename(fname)
testNames.append(name)
for other in eval('after', scope):
--- 202,206 ----
exec open(fname) in scope
testScopes.append(scope)
! name = os.path.basename(fname)[5:-3]
testNames.append(name)
for other in eval('after', scope):
|
|
From: Magnus L. H. <ml...@us...> - 2003-02-08 03:06:36
|
Update of /cvsroot/anygui/nondist/sandbox/magnus/tester2 In directory sc8-pr-cvs1:/tmp/cvs-serv2736 Added Files: README Removed Files: runme.py Log Message: --- NEW FILE: README --- Please ignore this directory (and its subdirectories) :) --- runme.py DELETED --- |
|
From: Magnus L. H. <ml...@us...> - 2003-02-08 02:14:23
|
Update of /cvsroot/anygui/nondist/sandbox/magnus/tester2/tests
In directory sc8-pr-cvs1:/tmp/cvs-serv18738/tests
Added Files:
test_button.py test_label.py
Log Message:
--- NEW FILE: test_button.py ---
"""
Tests the basic functionality of the Button class, as well as some
simple event handling.
"""
from anygui import *
after = ['label'] # Dummy dependency...
def setup(frame):
btn = Button(text='Click me!', x=50, y=50)
def clicked(event):
btn.text = 'Thank you.'
link(btn, clicked)
frame.add(btn)
--- NEW FILE: test_label.py ---
"""
Tests the basic functionality of the Label class.
"""
from anygui import *
after = []
def setup(frame):
lbl = Label(text='Hello, world!', x=50, y=50)
frame.add(lbl)
|
|
From: Magnus L. H. <ml...@us...> - 2003-02-08 02:14:22
|
Update of /cvsroot/anygui/nondist/sandbox/magnus/tester2
In directory sc8-pr-cvs1:/tmp/cvs-serv18738
Added Files:
runme.py
Log Message:
--- NEW FILE: runme.py ---
#!/usr/bin/env python
# FIXME: Currently resets all results; should keep results from other
# back-ends. Rewrite to create a single table of successes/failures for all
# back-ends, parse in existing test results from the result file, and
# display the test descriptions only once, below the table.
import os, sys
from time import *
from glob import glob
from anygui import *
from anygui.Utils import topologicalSort
TEST_DIR = 'tests'
TEST_PAT = 'test_*.py'
RESULT_FILE = 'results.html'
HEAD = """\
<html>
<head>
<title>Anygui Test Results</title>
<style>
body { color: #000000;
background-color: #ffffff; }
a:active { color: #ff0000; }
a:visited { color: #551a8b; }
a:link { color: #0000bb; }
h1, h2, h3, h4, h5, h6 { font-family: avantgarde, sans-serif;
font-weight: bold; }
h1 { font-size: 180%%; }
h2 { font-size: 150%%; }
h3, h4 { font-size: 120%%; }
code, tt { font-family: lucida typewriter, lucidatypewriter,
monospace; }
var { font-family: times, serif;
font-style: italic;
font-weight: normal; }
.typelabel { font-family: lucida, sans-serif; }
.navigation td { background-color: #99ccff;
font-weight: bold;
font-family: avantgarde, sans-serif;
font-size: 110%%; }
.release-info { font-style: italic; }
.titlegraphic { vertical-align: top; }
.verbatim { color: #00008b;
font-family: lucida typewriter, lucidatypewriter,
monospace; }
.grammar { background-color: #99ccff;
margin-right: 0.5in;
padding: 0.05in; }
.productions { background-color: #bbeeff; }
.productions table { vertical-align: baseline; }
.grammar-footer { padding: 0.05in;
font-size: 85%%; }
.email { font-family: avantgarde, sans-serif; }
.mailheader { font-family: avantgarde, sans-serif; }
.mimetype { font-family: avantgarde, sans-serif; }
.newsgroup { font-family: avantgarde, sans-serif; }
.url { font-family: avantgarde, sans-serif; }
.file { font-family: avantgarde, sans-serif; }
.tableheader { background-color: #99ccff;
font-family: avantgarde, sans-serif; }
</style>
</head>
<body>
<div class="navigation">
<table align="center" width="100%%" cellpadding="0" cellspacing="2">
<tr>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="" width="32"></td>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="Up One Level" width="32"></td>
<td><img src="icons/up.gif"
border="0" height="32"
alt="Next Page" width="32"></td>
<td align="center" width="100%%">Anygui Test Results</td>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="Contents" width="32"></td>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="Module Index" width="32"></td>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="Index" width="32"></td>
</tr></table>
<b class="navlabel">Up:</b> <a class="sectref" HREF="http://www.anygui.org">Anygui home</a>
<br /><hr />
</div>
<div class="titlepage">
<center>
<h1>Anygui Test Results</h1>
<strong>%s</strong></p>
<p>
</center>
</div>
<br />
<hr />
<h2>Test Results for <code>%sgui</code></h2>
""" % (strftime('%Y-%m-%d %H:%M:%S', localtime()), backend())
FOOT = """\
<div class="navigation">
<hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="" width="32"></td>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="Up One Level" width="32"></td>
<td><img src="icons/up.gif"
border="0" height="32"
alt="Next Page" width="32"></td>
<td align="center" width="100%">Anygui Test Results</td>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="Contents" width="32"></td>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="Module Index" width="32"></td>
<td><img src="icons/blank.gif"
border="0" height="32"
alt="Index" width="32"></td>
</tr></table>
<b class="navlabel">Up:</b> <a class="sectref" HREF="http://www.anygui.org">Anygui home</a>
<br><hr />
</div>
</body>
</html>"""
def testFiles():
return glob(os.path.join(TEST_DIR, TEST_PAT))
class TestResult:
status = 'Failed'
def __init__(self, name, scope):
self.name = name
self.scope = scope
def __str__(self):
docs = self.scope.get('__doc__', '(No description available)')
docs = '<p>' + docs.replace('\n\n', '\n</p>\n<p>') + '\n</p>'
return '''<h3>%s: %s</h3>
%s
''' % (self.name, self.status, docs)
class TestWizard(Application):
def __init__(self, files, resultFile, *args, **kwds):
Application.__init__(self, *args, **kwds)
self.files = files
self.resultFile = resultFile
self.results = []
self.setupGUI()
def setupGUI(self):
self.win = Window(text='The Anygui Test Program')
self.passButton = Button(text='Pass')
self.win.add(self.passButton, right=10, bottom=10,
hmove=1, vmove=1)
link(self.passButton, self.passTest)
self.failButton = Button(text='Fail')
self.win.add(self.failButton, right=(self.passButton,10),
bottom=10,
hmove=1, vmove=1)
link(self.failButton, self.failTest)
self.setupTests()
self.nextTest()
self.add(self.win)
def setupTests(self):
testScopes = []
testNames = []
constraints = []
for fname in self.files:
scope = {}
exec open(fname) in scope
testScopes.append(scope)
name = os.path.basename(fname)
testNames.append(name)
for other in eval('after', scope):
constraints.append((other, name))
topologicalSort(testNames, testScopes, constraints)
testScopes.reverse()
testNames.reverse()
self.testScopes = testScopes
self.testNames = testNames
def nextTest(self):
if not self.testScopes:
self.writeResults()
sys.exit()
scope = self.testScopes.pop()
name = self.testNames.pop()
try: self.win.remove(self.frame)
except AttributeError: pass
self.frame = Frame()
assert not hasattr(scope, '__supplied_frame')
scope['__supplied_frame'] = self.frame
exec 'setup(__supplied_frame)' in scope
self.win.add(self.frame, top=0, left=0, right=0,
bottom=(self.passButton, 10),
hstretch=1, vstretch=1)
self.results.append(TestResult(name, scope))
def writeResults(self):
out = open(self.resultFile, 'w')
print >> out, HEAD
for result in self.results:
print >> out, result
print >> out, FOOT
out.close()
def passTest(self, event):
self.results[-1].status = 'Passed'
self.nextTest()
def failTest(self, event):
self.nextTest()
def main(args=[]):
tw = TestWizard(testFiles(), RESULT_FILE)
tw.run()
if __name__ == '__main__':
main(sys.argv)
|
|
From: Magnus L. H. <ml...@us...> - 2003-02-08 02:14:22
|
Update of /cvsroot/anygui/nondist/sandbox/magnus/tester2/icons In directory sc8-pr-cvs1:/tmp/cvs-serv18738/icons Added Files: blank.gif up.gif Log Message: --- NEW FILE: blank.gif --- GIF87a --- NEW FILE: up.gif --- GIF89a =p fªªÃ¬ð*8Q¤ÄøH@u}ä1¯ªA!IåÒñµ¤ÒÅs@ÃJÀ×kÀ½ñeeKÈ¡@lº½ÛÞ3D h?+j5N Db50mN D"J51Z$K%j1%DT%v2e%|5/%°O5U*D·¼%xÁ)¢Æ%uÉ%D Í"¹»Ò×"DÒLÚ²®×yá ë áÆ! |
|
From: Magnus L. H. <ml...@us...> - 2003-02-08 02:13:35
|
Update of /cvsroot/anygui/nondist/sandbox/magnus/tester2/tests In directory sc8-pr-cvs1:/tmp/cvs-serv18498/tests Log Message: Directory /cvsroot/anygui/nondist/sandbox/magnus/tester2/tests added to the repository |
|
From: Magnus L. H. <ml...@us...> - 2003-02-08 02:13:04
|
Update of /cvsroot/anygui/nondist/sandbox/magnus/tester2/icons In directory sc8-pr-cvs1:/tmp/cvs-serv18330/icons Log Message: Directory /cvsroot/anygui/nondist/sandbox/magnus/tester2/icons added to the repository |
|
From: Magnus L. H. <ml...@us...> - 2003-02-08 02:12:37
|
Update of /cvsroot/anygui/nondist/sandbox/magnus/tester2 In directory sc8-pr-cvs1:/tmp/cvs-serv18228/tester2 Log Message: Directory /cvsroot/anygui/nondist/sandbox/magnus/tester2 added to the repository |
|
From: Magnus L. H. <ml...@us...> - 2003-02-08 02:01:28
|
Update of /cvsroot/anygui/nondist/sandbox/magnus/tester/tests
In directory sc8-pr-cvs1:/tmp/cvs-serv14678/tests
Added Files:
test_button.py test_label.py
Log Message:
--- NEW FILE: test_button.py ---
"""
Tests the basic functionality of the Button class, as well as some
simple event handling.
"""
from anygui import *
after = ['label'] # Dummy dependency...
def setup(frame):
btn = Button(text='Click me!', x=50, y=50)
def clicked(event):
btn.text = 'Thank you.'
link(btn, clicked)
frame.add(btn)
--- NEW FILE: test_label.py ---
"""
Tests the basic functionality of the Label class.
"""
from anygui import *
after = []
def setup(frame):
lbl = Label(text='Hello, world!', x=50, y=50)
frame.add(lbl)
|