Update of /cvsroot/pywin32/pywin32/win32/Demos
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9499/win32/Demos
Modified Files:
win32gui_dialog.py
Log Message:
Load icon from executable since py.ico went away in 2.5
Catch error if class already registered
Index: win32gui_dialog.py
===================================================================
RCS file: /cvsroot/pywin32/pywin32/win32/Demos/win32gui_dialog.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** win32gui_dialog.py 12 Apr 2005 03:33:46 -0000 1.6
--- win32gui_dialog.py 4 Jan 2007 08:30:33 -0000 1.7
***************
*** 21,25 ****
import winxpgui as win32gui
import win32api
! import win32con
import struct, array
import commctrl
--- 21,25 ----
import winxpgui as win32gui
import win32api
! import win32con, winerror
import struct, array
import commctrl
***************
*** 35,48 ****
WM_SEARCH_FINISHED = win32con.WM_USER + 513
- g_registeredClass = 0
-
- g_iconPathName = os.path.abspath(os.path.join( os.path.split(sys.executable)[0], "pyc.ico" ))
- if not os.path.isfile(g_iconPathName):
- # Look in the source tree.
- g_iconPathName = os.path.abspath(os.path.join( os.path.split(sys.executable)[0], "..\\PC\\pyc.ico" ))
- if not os.path.isfile(g_iconPathName):
- print "Can't find the icon file"
- g_iconPathName = None
-
class _WIN32MASKEDSTRUCT:
def __init__(self, **kw):
--- 35,38 ----
***************
*** 128,148 ****
def _RegisterWndClass(self):
className = "PythonDocSearch"
! global g_registeredClass
! if not g_registeredClass:
! message_map = {}
! wc = win32gui.WNDCLASS()
! wc.SetDialogProc() # Make it a dialog class.
! wc.hInstance = self.hinst
! wc.lpszClassName = className
! wc.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW
! wc.hCursor = win32gui.LoadCursor( 0, win32con.IDC_ARROW )
! wc.hbrBackground = win32con.COLOR_WINDOW + 1
! wc.lpfnWndProc = message_map # could also specify a wndproc.
! # C code: wc.cbWndExtra = DLGWINDOWEXTRA + sizeof(HBRUSH) + (sizeof(COLORREF));
! wc.cbWndExtra = win32con.DLGWINDOWEXTRA + struct.calcsize("Pi")
! icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE
! wc.hIcon = win32gui.LoadImage(self.hinst, g_iconPathName, win32con.IMAGE_ICON, 0, 0, icon_flags)
classAtom = win32gui.RegisterClass(wc)
! g_registeredClass = 1
return className
--- 118,145 ----
def _RegisterWndClass(self):
className = "PythonDocSearch"
! message_map = {}
! wc = win32gui.WNDCLASS()
! wc.SetDialogProc() # Make it a dialog class.
! wc.hInstance = self.hinst
! wc.lpszClassName = className
! wc.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW
! wc.hCursor = win32gui.LoadCursor( 0, win32con.IDC_ARROW )
! wc.hbrBackground = win32con.COLOR_WINDOW + 1
! wc.lpfnWndProc = message_map # could also specify a wndproc.
! # C code: wc.cbWndExtra = DLGWINDOWEXTRA + sizeof(HBRUSH) + (sizeof(COLORREF));
! wc.cbWndExtra = win32con.DLGWINDOWEXTRA + struct.calcsize("Pi")
! icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE
!
! ## py.ico went away in python 2.5, load from executable instead
! this_app=win32api.GetModuleHandle(None)
! try:
! wc.hIcon=win32gui.LoadIcon(this_app, 1) ## python.exe and pythonw.exe
! except win32gui.error:
! wc.hIcon=win32gui.LoadIcon(this_app, 135) ## pythonwin's icon
! try:
classAtom = win32gui.RegisterClass(wc)
! except win32gui.error, err_info:
! if err_info[0]!=winerror.ERROR_CLASS_ALREADY_EXISTS:
! raise
return className
|