home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyo (Python 2.5)
-
- import wx
- import sys
- import ctypes
- from util import ffi
- from ctypes import sizeof, byref
- from ctypes.wintypes import UINT, HWND, DWORD
- from gui.native.win.winutil import WinStruct
- ffi.cimport(user32 = [
- 'FlashWindowEx',
- 'FlashWindow'])
- FLASHW_STOP = 0
- FLASHW_CAPTION = 1
- FLASHW_TRAY = 2
- FLASHW_ALL = FLASHW_CAPTION | FLASHW_TRAY
- FLASHW_TIMER = 4
- FLASHW_TIMERNOFG = 12
-
- class FLASHWINFO(WinStruct):
- _fields_ = [
- ('cbSize', UINT),
- ('hwnd', HWND),
- ('dwFlags', DWORD),
- ('uCount', UINT),
- ('dwTimeout', DWORD)]
-
- if not FlashWindowEx:
-
- wx.TopLevelWindow.StopFlashing = lambda win: pass
- else:
- FLASHWINFOsize = sum((lambda .0: for zz in .0:
- sizeof(zz))((UINT, HWND, DWORD, UINT, DWORD)))
- tlw = wx.TopLevelWindow
-
- def StopFlashing(win):
- f = FLASHWINFO(cbSize = FLASHWINFOsize, hwnd = win.Handle, dwFlags = FLASHW_STOP)
- FlashWindowEx(f.ptr)
-
- def doint():
- if not wx.IsDestroyed(win):
- tlw.SetTitle(win, tlw.GetTitle(win))
-
-
- wx.CallLater(1000, doint)
- wx.CallLater(3000, doint)
- doint()
-
- wx.TopLevelWindow.StopFlashing = StopFlashing
-
- def Flash(win, titlebar = True, taskbar = True, timeout = 0, count = 1, until = 'foreground'):
- flags = 0
- None |= flags if titlebar else 0
- None |= flags if taskbar else 0
- flashinfo = FLASHWINFO(hwnd = win.Handle, dwFlags = flags, uCount = count, dwTimeout = 0)
- flashinfo.cbSize = sizeof(FLASHWINFO)
- print flashinfo
- print FlashWindowEx(flashinfo.ptr)
-
-
- def FlashOnce(win):
- return FlashWindow(win.Handle, 1)
-
-
- def main():
- a = wx.PySimpleApp()
- f = wx.Frame(None, title = 'test')
- f.Title = 'test %s' % f.Handle
- f.Show()
- f2 = wx.Frame(None, title = 'control')
- r = f.Rect
- f2.Rect = wx.Rect(r.Right, r.Top, r.Width, r.Height)
-
- def b(t, c):
- button = wx.Button(f2, -1, t)
- button.Bind((wx.EVT_BUTTON,), (lambda e: c()))
- return button
-
- flashex = b(('FlashWindowEx',), (lambda : Flash(f)))
- request = b('RequestUserAttention', f.RequestUserAttention)
- settitle = b(('Set Title',), (lambda : (f.SetTitle(f.GetTitle() + ' Yay'), Flash(f))))
- stop = b(('Stop Flashing',), (lambda : StopFlashing(f)))
- s.AddMany([
- flashex,
- request,
- settitle,
- stop])
- s.Layout()
- f2.Show()
- a.MainLoop()
-
- if __name__ == '__main__':
- main()
-
-