[Python-checkins] CVS: python/dist/src/Mac/Tools/IDE PyBrowser.py,1.11,1.12 PyDebugger.py,1.7,1.8 PyEdit.py,1.25,1.26 W.py,1.3,1.4 Wapplication.py,1.13,1.14 Wbase.py,1.7,1.8 Wcontrols.py,1.10,1.11 Widgets.rsrc,1.1,1.2 Wlists.py,1.7,1.8 Wtext.py,1.14,1.15

Just van Rossum jvr@users.sourceforge.net
Sun, 18 Nov 2001 06:12:46 -0800


Update of /cvsroot/python/python/dist/src/Mac/Tools/IDE
In directory usw-pr-cvs1:/tmp/cvs-serv14578

Modified Files:
	PyBrowser.py PyDebugger.py PyEdit.py W.py Wapplication.py 
	Wbase.py Wcontrols.py Widgets.rsrc Wlists.py Wtext.py 
Log Message:
a whole bunch of OSX tweaks

Index: PyBrowser.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Tools/IDE/PyBrowser.py,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** PyBrowser.py	2001/11/02 19:21:34	1.11
--- PyBrowser.py	2001/11/18 14:12:43	1.12
***************
*** 144,147 ****
--- 144,148 ----
  		#W.SetCursor('fist')
  		while Evt.Button():
+ 			Evt.WaitNextEvent(0, 1, None)  # needed for OSX
  			(x, y) = Evt.GetMouse()
  			if (x, y) <> lastpoint:
***************
*** 308,312 ****
  		self.w = w = W.Window((300, 400), title, minsize = (100, 100))
  		w.info = W.TextBox((18, 8, -70, 15))
! 		w.updatebutton = W.Button((-64, 4, 50, 16), 'Update', self.update)
  		w.browser = BrowserWidget((-1, 24, 1, -14), None)
  		w.bind('cmdu', w.updatebutton.push)
--- 309,313 ----
  		self.w = w = W.Window((300, 400), title, minsize = (100, 100))
  		w.info = W.TextBox((18, 8, -70, 15))
! 		w.updatebutton = W.BevelButton((-64, 4, 50, 16), 'Update', self.update)
  		w.browser = BrowserWidget((-1, 24, 1, -14), None)
  		w.bind('cmdu', w.updatebutton.push)

Index: PyDebugger.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Tools/IDE/PyDebugger.py,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** PyDebugger.py	2001/08/25 12:09:39	1.7
--- PyDebugger.py	2001/11/18 14:12:43	1.8
***************
*** 682,686 ****
  	def __init__(self, debugger):
  		self.debugger = debugger
- 		import Lists
  		self.w = W.Window((300, 250), 'Breakpoints', minsize = (200, 200))
  		self.w.panes = W.HorizontalPanes((8, 8, -8, -32), (0.3, 0.7))
--- 682,685 ----

Index: PyEdit.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Tools/IDE/PyEdit.py,v
retrieving revision 1.25
retrieving revision 1.26
diff -C2 -d -r1.25 -r1.26
*** PyEdit.py	2001/11/02 22:55:15	1.25
--- PyEdit.py	2001/11/18 14:12:43	1.26
***************
*** 175,179 ****
  	
  	def setupwidgets(self, text):
! 		topbarheight = 28
  		popfieldwidth = 80
  		self.lastlineno = None
--- 175,179 ----
  	
  	def setupwidgets(self, text):
! 		topbarheight = 24
  		popfieldwidth = 80
  		self.lastlineno = None
***************
*** 198,204 ****
  		self.bevelbox = W.BevelBox((0, 0, 0, topbarheight))
  		self.hline = W.HorizontalLine((0, topbarheight, 0, 0))
! 		self.infotext = W.TextBox((175, 7, -4, 14), backgroundcolor = (0xe000, 0xe000, 0xe000))
! 		self.runbutton = W.Button((6, 5, 60, 16), runButtonLabels[0], self.run)
! 		self.runselbutton = W.Button((78, 5, 90, 16), runSelButtonLabels[0], self.runselection)
  		
  		# bind some keys
--- 198,204 ----
  		self.bevelbox = W.BevelBox((0, 0, 0, topbarheight))
  		self.hline = W.HorizontalLine((0, topbarheight, 0, 0))
! 		self.infotext = W.TextBox((175, 6, -4, 14), backgroundcolor = (0xe000, 0xe000, 0xe000))
! 		self.runbutton = W.BevelButton((6, 4, 80, 16), runButtonLabels[0], self.run)
! 		self.runselbutton = W.BevelButton((90, 4, 80, 16), runSelButtonLabels[0], self.runselection)
  		
  		# bind some keys
***************
*** 801,804 ****
--- 801,805 ----
  		pattern = pattern + notwordcharspat
  	return re.compile(pattern)
+ 
  
  class SearchEngine:

Index: W.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Tools/IDE/W.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** W.py	2001/11/02 19:22:55	1.3
--- W.py	2001/11/18 14:12:43	1.4
***************
*** 32,36 ****
  
  def Message(text):
! 	import EasyDialogs, Qd, string
  	Qd.InitCursor()
  	text = string.replace(text, "\n", "\r")
--- 32,37 ----
  
  def Message(text):
! 	import EasyDialogs, string
! 	from Carbon import Qd
  	Qd.InitCursor()
  	text = string.replace(text, "\n", "\r")

Index: Wapplication.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Tools/IDE/Wapplication.py,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** Wapplication.py	2001/08/27 10:55:41	1.13
--- Wapplication.py	2001/11/18 14:12:43	1.14
***************
*** 10,14 ****
  from Carbon import Menu; MenuToolbox = Menu; del Menu
  
! KILLUNKNOWNWINDOWS=1	# Set to 0 for debugging.
  
  class Application(FrameWork.Application):
--- 10,14 ----
  from Carbon import Menu; MenuToolbox = Menu; del Menu
  
! KILLUNKNOWNWINDOWS = 0  # Set to 0 for debugging.
  
  class Application(FrameWork.Application):

Index: Wbase.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Tools/IDE/Wbase.py,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** Wbase.py	2001/11/02 19:09:34	1.7
--- Wbase.py	2001/11/18 14:12:43	1.8
***************
*** 1,3 ****
! from Carbon import Evt, Qd, QuickDraw, Win
  import string
  from types import *
--- 1,3 ----
! from Carbon import App, Evt, Qd, QuickDraw, Win
  import string
  from types import *
***************
*** 330,342 ****
  		if not self._parentwindow._hasselframes:
  			return
! 		thickrect = Qd.InsetRect(self._bounds, -3, -3)
! 		state = Qd.GetPenState()
! 		Qd.PenSize(2, 2)
! 		if onoff:
! 			Qd.PenPat(Qd.qd.black)
! 		else:
! 			Qd.PenPat(Qd.qd.white)
! 		Qd.FrameRect(thickrect)
! 		Qd.SetPenState(state)
  	
  	def adjust(self, oldbounds):
--- 330,334 ----
  		if not self._parentwindow._hasselframes:
  			return
! 		App.DrawThemeFocusRect(self._bounds, onoff)
  	
  	def adjust(self, oldbounds):

Index: Wcontrols.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Tools/IDE/Wcontrols.py,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** Wcontrols.py	2001/11/02 22:51:42	1.10
--- Wcontrols.py	2001/11/18 14:12:43	1.11
***************
*** 18,21 ****
--- 18,22 ----
  		self._max = max
  		self._enabled = 1
+ 		self._viewsize = 0
  	
  	def open(self):
***************
*** 30,35 ****
  						self._procID, 
  						0)
! 		self.SetPort()
! 		#self.GetWindow().ValidWindowRect(self._bounds)
  		self.enable(self._enabled)
  	
--- 31,36 ----
  						self._procID, 
  						0)
! 		if self._viewsize:
! 			self._control.SetControlViewSize(self._viewsize)
  		self.enable(self._enabled)
  	
***************
*** 76,82 ****
  	
  	def test(self, point):
! 		ctltype, control = Ctl.FindControl(point, self._parentwindow.wid)
! 		if self._enabled and control == self._control:
  			return 1
  	
  	def click(self, point, modifiers):
--- 77,85 ----
  	
  	def test(self, point):
! 		if Qd.PtInRect(point, self._bounds) and self._enabled:
  			return 1
+ 		#ctltype, control = Ctl.FindControl(point, self._parentwindow.wid)
+ 		#if self._enabled and control == self._control:
+ 		#	return 1
  	
  	def click(self, point, modifiers):
***************
*** 113,119 ****
  	"""Standard push button."""
  	
  	def __init__(self, possize, title = "Button", callback = None):
! 		procID = Controls.pushButProc | Controls.useWFont
! 		ControlWidget.__init__(self, possize, title, procID, callback, 0, 0, 1)
  		self._isdefault = 0
  	
--- 116,123 ----
  	"""Standard push button."""
  	
+ 	procID = Controls.pushButProc | Controls.useWFont
+ 	
  	def __init__(self, possize, title = "Button", callback = None):
! 		ControlWidget.__init__(self, possize, title, self.procID, callback, 0, 0, 1)
  		self._isdefault = 0
  	
***************
*** 121,126 ****
--- 125,132 ----
  		if not self._enabled:
  			return
+ 		# emulate the pushing of the button
  		import time
  		self._control.HiliteControl(Controls.kControlButtonPart)
+ 		Qd.QDFlushPortBuffer(self._parentwindow.wid, None)  # needed under OSX
  		time.sleep(0.1)
  		self._control.HiliteControl(0)
***************
*** 140,144 ****
--- 146,168 ----
  			self._control.Draw1Control()
  	
+ 	def open(self):
+ 		ControlWidget.open(self)
+ 		if self._isdefault:
+ 			self._setdefault(self._isdefault)
+ 	
  	def _setdefault(self, onoff):
+ 		c = self._control
+ 		if c is not None:
+ 			if onoff:
+ 				data = "\xFF"
+ 			else:
+ 				data = "\0"
+ 			# hide before changing state, otherwise the button isn't always
+ 			# redrawn correctly, although it's quite different under Aqua
+ 			# and Classic...
+ 			c.HideControl()
+ 			c.SetControlData(Controls.kControlNoPart,
+ 					Controls.kControlPushButtonDefaultTag, data)
+ 			c.ShowControl()
  		self._isdefault = onoff
  	
***************
*** 153,156 ****
--- 177,184 ----
  
  
+ class BevelButton(Button):
+ 	procID = Controls.kControlBevelButtonNormalBevelProc | Controls.useWFont
+ 
+ 
  class CheckBox(ControlWidget):
  	
***************
*** 251,261 ****
  	
  	def setmin(self, min):
! 		self._control.SetControl32BitMinimum(min)
  	
  	def setmax(self, max):
! 		self._control.SetControl32BitMaximum(max)
  	
! 	def setviewsize(self, view):
! 		self._control.SetControlViewSize(view)
  	
  	def getmin(self):
--- 279,298 ----
  	
  	def setmin(self, min):
! 		if self._control is not None:
! 			self._control.SetControl32BitMinimum(min)
! 		else:
! 			self._min = min
  	
  	def setmax(self, max):
! 		if self._control is not None:
! 			self._control.SetControl32BitMaximum(max)
! 		else:
! 			self._max = max
  	
! 	def setviewsize(self, viewsize):
! 		if self._control is not None:
! 			self._control.SetControlViewSize(viewsize)
! 		else:
! 			self._viewsize = viewsize
  	
  	def getmin(self):
***************
*** 313,317 ****
  		if self._visible:
  			self._control.Draw1Control()
! 			Qd.FrameRect(self._bounds)
  	
  	def adjust(self, oldbounds):
--- 350,354 ----
  		if self._visible:
  			self._control.Draw1Control()
! 			#Qd.FrameRect(self._bounds)
  	
  	def adjust(self, oldbounds):

Index: Widgets.rsrc
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Tools/IDE/Widgets.rsrc,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
Binary files /tmp/cvsDCwtci and /tmp/cvsgmxi2p differ

Index: Wlists.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Tools/IDE/Wlists.py,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** Wlists.py	2001/11/05 08:51:24	1.7
--- Wlists.py	2001/11/18 14:12:43	1.8
***************
*** 6,9 ****
--- 6,11 ----
  from Carbon.Lists import kListDefUserProcType, lInitMsg, lDrawMsg, lHiliteMsg, lCloseMsg
  from Carbon.QuickDraw import hilitetransfermode
+ from Carbon import App
+ from Carbon.Appearance import kThemeStateActive, kThemeStateInactive, kThemeStatePressed
  
  
***************
*** 254,260 ****
  				visRgn = self._parentwindow.wid.GetWindowPort().visRgn
  			self._list.LUpdate(visRgn)
! 			Qd.FrameRect(self._bounds)
! 			if self._selected and self._activated:
! 				self.drawselframe(1)
  	
  	def select(self, onoff, isclick = 0):
--- 256,262 ----
  				visRgn = self._parentwindow.wid.GetWindowPort().visRgn
  			self._list.LUpdate(visRgn)
! 			App.DrawThemeListBoxFrame(self._bounds, kThemeStateActive)
! 			#if self._selected and self._activated:
! 			#	self.drawselframe(1)
  	
  	def select(self, onoff, isclick = 0):
***************
*** 262,266 ****
  			return
  		self.SetPort()
! 		self.drawselframe(onoff)
  	
  	def activate(self, onoff):
--- 264,270 ----
  			return
  		self.SetPort()
! 		state = [kThemeStateActive, kThemeStatePressed][onoff]
! 		App.DrawThemeListBoxFrame(self._bounds, kThemeStateActive)
! 		#self.drawselframe(onoff)
  	
  	def activate(self, onoff):
***************
*** 268,273 ****
  		if self._visible:
  			self._list.LActivate(onoff)
! 			if self._selected:
! 				self.drawselframe(onoff)
  	
  	def get(self):
--- 272,277 ----
  		if self._visible:
  			self._list.LActivate(onoff)
! 			#if self._selected:
! 			#	self.drawselframe(onoff)
  	
  	def get(self):
***************
*** 450,453 ****
--- 454,458 ----
  				Qd.DrawText(line2, 0, len(line2))
  			Qd.PenPat("\x11\x11\x11\x11\x11\x11\x11\x11")
+ 			bottom = top + theList.cellSize[1]
  			Qd.MoveTo(left, bottom - 1)
  			Qd.LineTo(right, bottom - 1)

Index: Wtext.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Tools/IDE/Wtext.py,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** Wtext.py	2001/11/02 19:24:41	1.14
--- Wtext.py	2001/11/18 14:12:43	1.15
***************
*** 2,5 ****
--- 2,7 ----
  from Carbon import Qd, Res, Scrap
  from Carbon import TE, TextEdit, Win
+ from Carbon import App
+ from Carbon.Appearance import kThemeStateActive, kThemeStateInactive
  import waste
  import WASTEconst
***************
*** 56,78 ****
  	
  	# to be overridden
! 	def getscrollbarvalues(self):
  		return None, None
  	
  	# internal method
  	def updatescrollbars(self):
! 		vx, vy = self.getscrollbarvalues()
  		if self._parent._barx:
! 			if vx <> None:
! 				self._parent._barx.enable(1)
! 				self._parent._barx.set(vx)
! 			else:
! 				self._parent._barx.enable(0)
  		if self._parent._bary:
! 			if vy <> None:
! 				self._parent._bary.enable(1)
! 				self._parent._bary.set(vy)
! 			else:
! 				self._parent._bary.enable(0)
! 	
  
  UNDOLABELS = [	# Indexed by WEGetUndoInfo() value
--- 58,84 ----
  	
  	# to be overridden
! 	def getscrollrects(self):
! 		"""Return (destrect, viewrect)."""
  		return None, None
  	
  	# internal method
+ 	
  	def updatescrollbars(self):
! 		(dl, dt, dr, db), (vl, vt, vr, vb) = self.getscrollrects()
  		if self._parent._barx:
! 			viewwidth = vr - vl
! 			destwidth = dr - dl
! 			bar = self._parent._barx
! 			bar.setmax(destwidth - viewwidth)
! 			bar.setviewsize(viewwidth)
! 			bar.set(vl - dl)
  		if self._parent._bary:
! 			viewheight = vb - vt
! 			destheight = db - dt
! 			bar = self._parent._bary
! 			bar.setmax(destheight - viewheight)
! 			bar.setviewsize(viewheight)
! 			bar.set(vt - dt)
! 
  
  UNDOLABELS = [	# Indexed by WEGetUndoInfo() value
***************
*** 374,377 ****
--- 380,384 ----
  				self.drawselframe(1)
  			Qd.FrameRect(self._bounds)
+ 			#App.DrawThemeEditTextFrame(self._bounds, kThemeStateActive)
  	
  	# scrolling
***************
*** 386,396 ****
  	def scrolltop(self):
  		if self._parent._bary and self._parent._bary._enabled:
! 			self.vscroll(0)
  		if self._parent._barx and self._parent._barx._enabled:
! 			self.hscroll(0)
  	
  	def scrollbottom(self):
  		if self._parent._bary and self._parent._bary._enabled:
! 			self.vscroll(32767)
  	
  	# menu handlers
--- 393,403 ----
  	def scrolltop(self):
  		if self._parent._bary and self._parent._bary._enabled:
! 			self.vscroll(self._parent._bary.getmin())
  		if self._parent._barx and self._parent._barx._enabled:
! 			self.hscroll(self._parent._barx.getmin())
  	
  	def scrollbottom(self):
  		if self._parent._bary and self._parent._bary._enabled:
! 			self.vscroll(self._parent._bary.getmax())
  	
  	# menu handlers
***************
*** 470,479 ****
  	
  	# private
! 	def getscrollbarvalues(self):
! 		dr = self.ted.WEGetDestRect()
! 		vr = self.ted.WEGetViewRect()
! 		vx = Wcontrols._scalebarvalue(dr[0], dr[2], vr[0], vr[2])
! 		vy = Wcontrols._scalebarvalue(dr[1], dr[3], vr[1], vr[3])
! 		return vx, vy
  	
  	def vscroll(self, value):
--- 477,482 ----
  	
  	# private
! 	def getscrollrects(self):
! 		return self.ted.WEGetDestRect(), self.ted.WEGetViewRect()
  	
  	def vscroll(self, value):
***************
*** 481,487 ****
  		dr = self.ted.WEGetDestRect()
  		vr = self.ted.WEGetViewRect()
- 		destheight = dr[3] - dr[1]
  		viewheight = vr[3] - vr[1]
! 		viewoffset = maxdelta = vr[1] - dr[1]
  		mindelta = vr[3] - dr[3]
  		if value == "+":
--- 484,489 ----
  		dr = self.ted.WEGetDestRect()
  		vr = self.ted.WEGetViewRect()
  		viewheight = vr[3] - vr[1]
! 		maxdelta = vr[1] - dr[1]
  		mindelta = vr[3] - dr[3]
  		if value == "+":
***************
*** 494,502 ****
  			delta = lineheight - viewheight
  		else:	# in thumb
! 			cur = (32767L * viewoffset) / (destheight - viewheight)
! 			delta = (cur-value)*(destheight - viewheight)/32767
! 			if abs(delta - viewoffset) <=2:
! 				# compensate for irritating rounding error
! 				delta = viewoffset
  		delta = min(maxdelta, delta)
  		delta = max(mindelta, delta)
--- 496,500 ----
  			delta = lineheight - viewheight
  		else:	# in thumb
! 			delta = vr[1] - dr[1] - value
  		delta = min(maxdelta, delta)
  		delta = max(mindelta, delta)
***************
*** 520,528 ****
  			delta = 0.5 * (vr[0] - vr[2])
  		else:	# in thumb
! 			cur = (32767 * viewoffset) / (destwidth - viewwidth)
! 			delta = (cur-value)*(destwidth - viewwidth)/32767
! 			if abs(delta - viewoffset) <=2:
! 				# compensate for irritating rounding error
! 				delta = viewoffset
  		delta = min(maxdelta, delta)
  		delta = max(mindelta, delta)
--- 518,527 ----
  			delta = 0.5 * (vr[0] - vr[2])
  		else:	# in thumb
! 			delta = vr[0] - dr[0] - value
! 			#cur = (32767 * viewoffset) / (destwidth - viewwidth)
! 			#delta = (cur-value)*(destwidth - viewwidth)/32767
! 			#if abs(delta - viewoffset) <=2:
! 			#	# compensate for irritating rounding error
! 			#	delta = viewoffset
  		delta = min(maxdelta, delta)
  		delta = max(mindelta, delta)
***************
*** 924,927 ****
--- 923,927 ----
  						self.ted.WEFeatureFlag(WASTEconst.weFAutoScroll, 0)
  					self.ted.WESetSelection(count, count + 1)
+ 					Qd.QDFlushPortBuffer(self._parentwindow.wid, None)  # needed under OSX
  					time.sleep(0.2)
  					self.ted.WESetSelection(selstart, selend)