Update of /cvsroot/pywin32/pywin32/win32/Demos
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14391/win32/Demos
Modified Files:
win32gui_demo.py
Log Message:
Add demo for GradientFill
Index: win32gui_demo.py
===================================================================
RCS file: /cvsroot/pywin32/pywin32/win32/Demos/win32gui_demo.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** win32gui_demo.py 2 Jan 2007 08:06:26 -0000 1.4
--- win32gui_demo.py 5 Jan 2007 20:36:41 -0000 1.5
***************
*** 3,7 ****
import win32gui, win32con, win32api
! import time, math
def _MyCallback( hwnd, extra ):
--- 3,7 ----
import win32gui, win32con, win32api
! import time, math, random
def _MyCallback( hwnd, extra ):
***************
*** 19,23 ****
! def OnPaint(hwnd, msg, wp, lp):
dc, ps=win32gui.BeginPaint(hwnd)
win32gui.SetGraphicsMode(dc, win32con.GM_ADVANCED)
--- 19,23 ----
! def OnPaint_1(hwnd, msg, wp, lp):
dc, ps=win32gui.BeginPaint(hwnd)
win32gui.SetGraphicsMode(dc, win32con.GM_ADVANCED)
***************
*** 42,57 ****
win32gui.EndPaint(hwnd, ps)
return 0
! def wndproc(hwnd, msg, wp, lp):
! if msg==win32con.WM_PAINT:
! return OnPaint(hwnd, msg, wp, lp)
! return win32gui.DefWindowProc(hwnd, msg, wp, lp)
def TestSetWorldTransform():
wc = win32gui.WNDCLASS()
! wc.lpszClassName = 'test_win32gui'
wc.style = win32con.CS_GLOBALCLASS|win32con.CS_VREDRAW | win32con.CS_HREDRAW
wc.hbrBackground = win32con.COLOR_WINDOW+1
! wc.lpfnWndProc=wndproc
class_atom=win32gui.RegisterClass(wc)
hwnd = win32gui.CreateWindow(class_atom,'Spin the Lobster!',
--- 42,70 ----
win32gui.EndPaint(hwnd, ps)
return 0
+ wndproc_1={win32con.WM_PAINT:OnPaint_1}
+
+ def OnPaint_2(hwnd, msg, wp, lp):
+ dc, ps=win32gui.BeginPaint(hwnd)
+ win32gui.SetGraphicsMode(dc, win32con.GM_ADVANCED)
+ l,t,r,b=win32gui.GetClientRect(hwnd)
! for x in xrange(25):
! vertices=(
! {'x':int(random.random()*r), 'y':int(random.random()*b), 'Red':int(random.random()*0xff00), 'Green':0, 'Blue':0, 'Alpha':0},
! {'x':int(random.random()*r), 'y':int(random.random()*b), 'Red':0, 'Green':int(random.random()*0xff00), 'Blue':0, 'Alpha':0},
! {'x':int(random.random()*r), 'y':int(random.random()*b), 'Red':0, 'Green':0, 'Blue':int(random.random()*0xff00), 'Alpha':0},
! )
! mesh=((0,1,2),)
! win32gui.GradientFill(dc,vertices, mesh, win32con.GRADIENT_FILL_TRIANGLE)
! win32gui.EndPaint(hwnd, ps)
! return 0
! wndproc_2={win32con.WM_PAINT:OnPaint_2}
def TestSetWorldTransform():
wc = win32gui.WNDCLASS()
! wc.lpszClassName = 'test_win32gui_1'
wc.style = win32con.CS_GLOBALCLASS|win32con.CS_VREDRAW | win32con.CS_HREDRAW
wc.hbrBackground = win32con.COLOR_WINDOW+1
! wc.lpfnWndProc=wndproc_1
class_atom=win32gui.RegisterClass(wc)
hwnd = win32gui.CreateWindow(class_atom,'Spin the Lobster!',
***************
*** 65,71 ****
--- 78,105 ----
win32gui.UnregisterClass(class_atom,None)
+ def TestGradientFill():
+ wc = win32gui.WNDCLASS()
+ wc.lpszClassName = 'test_win32gui_2'
+ wc.style = win32con.CS_GLOBALCLASS|win32con.CS_VREDRAW | win32con.CS_HREDRAW
+ wc.hbrBackground = win32con.COLOR_WINDOW+1
+ wc.lpfnWndProc=wndproc_2
+ class_atom=win32gui.RegisterClass(wc)
+ hwnd = win32gui.CreateWindowEx(0, class_atom,'Kaleidoscope',
+ win32con.WS_CAPTION|win32con.WS_VISIBLE|win32con.WS_THICKFRAME|win32con.WS_SYSMENU,
+ 100,100,900,900, 0, 0, 0, None)
+ s=win32gui.GetWindowLong(hwnd,win32con.GWL_EXSTYLE)
+ win32gui.SetWindowLong(hwnd, win32con.GWL_EXSTYLE, s|win32con.WS_EX_LAYERED)
+ win32gui.SetLayeredWindowAttributes(hwnd, 0, 175, win32con.LWA_ALPHA)
+ for x in xrange(30):
+ win32gui.InvalidateRect(hwnd,None,True)
+ win32gui.PumpWaitingMessages()
+ time.sleep(0.3)
+ win32gui.DestroyWindow(hwnd)
+ win32gui.UnregisterClass(class_atom,None)
+
print "Enumerating all windows..."
TestEnumWindows()
print "Testing drawing functions ..."
TestSetWorldTransform()
+ TestGradientFill()
print "All tests done!"
|