CVS: anygui/lib/anygui/backends ctmswgui.py,1.7,1.8

Robin Becker <[email protected]> Sun, 18 May 2003 03:16:28 -0700
Newsgroups gmane.comp.python.anygui.cvs
Message-ID <[email protected]>
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),
                  )
  



-------------------------------------------------------
This SF.net email is sponsored by: If flattening out C++ or Java
code to make your application fit in a relational database is painful, 
don't do it! Check out ObjectStore. Now part of Progress Software.
http://www.objectstore.net/sourceforge