mirror of
https://github.com/python/cpython.git
synced 2025-07-29 22:24:49 +00:00
a whole bunch of OSX tweaks
This commit is contained in:
parent
ebbd14d7c2
commit
f376ef0996
10 changed files with 107 additions and 71 deletions
|
@ -143,6 +143,7 @@ class BrowserWidget(W.List):
|
||||||
newcol = -1
|
newcol = -1
|
||||||
#W.SetCursor('fist')
|
#W.SetCursor('fist')
|
||||||
while Evt.Button():
|
while Evt.Button():
|
||||||
|
Evt.WaitNextEvent(0, 1, None) # needed for OSX
|
||||||
(x, y) = Evt.GetMouse()
|
(x, y) = Evt.GetMouse()
|
||||||
if (x, y) <> lastpoint:
|
if (x, y) <> lastpoint:
|
||||||
newcol = x + diff
|
newcol = x + diff
|
||||||
|
@ -307,7 +308,7 @@ class Browser:
|
||||||
title = title + ': ' + name
|
title = title + ': ' + name
|
||||||
self.w = w = W.Window((300, 400), title, minsize = (100, 100))
|
self.w = w = W.Window((300, 400), title, minsize = (100, 100))
|
||||||
w.info = W.TextBox((18, 8, -70, 15))
|
w.info = W.TextBox((18, 8, -70, 15))
|
||||||
w.updatebutton = W.Button((-64, 4, 50, 16), 'Update', self.update)
|
w.updatebutton = W.BevelButton((-64, 4, 50, 16), 'Update', self.update)
|
||||||
w.browser = BrowserWidget((-1, 24, 1, -14), None)
|
w.browser = BrowserWidget((-1, 24, 1, -14), None)
|
||||||
w.bind('cmdu', w.updatebutton.push)
|
w.bind('cmdu', w.updatebutton.push)
|
||||||
w.open()
|
w.open()
|
||||||
|
|
|
@ -681,7 +681,6 @@ class BreakpointsViewer:
|
||||||
|
|
||||||
def __init__(self, debugger):
|
def __init__(self, debugger):
|
||||||
self.debugger = debugger
|
self.debugger = debugger
|
||||||
import Lists
|
|
||||||
self.w = W.Window((300, 250), 'Breakpoints', minsize = (200, 200))
|
self.w = W.Window((300, 250), 'Breakpoints', minsize = (200, 200))
|
||||||
self.w.panes = W.HorizontalPanes((8, 8, -8, -32), (0.3, 0.7))
|
self.w.panes = W.HorizontalPanes((8, 8, -8, -32), (0.3, 0.7))
|
||||||
self.w.panes.files = W.List(None, callback = self.filehit) #, flags = Lists.lOnlyOne)
|
self.w.panes.files = W.List(None, callback = self.filehit) #, flags = Lists.lOnlyOne)
|
||||||
|
|
|
@ -174,7 +174,7 @@ class Editor(W.Window):
|
||||||
return '<%s>' % self.title
|
return '<%s>' % self.title
|
||||||
|
|
||||||
def setupwidgets(self, text):
|
def setupwidgets(self, text):
|
||||||
topbarheight = 28
|
topbarheight = 24
|
||||||
popfieldwidth = 80
|
popfieldwidth = 80
|
||||||
self.lastlineno = None
|
self.lastlineno = None
|
||||||
|
|
||||||
|
@ -197,9 +197,9 @@ class Editor(W.Window):
|
||||||
|
|
||||||
self.bevelbox = W.BevelBox((0, 0, 0, topbarheight))
|
self.bevelbox = W.BevelBox((0, 0, 0, topbarheight))
|
||||||
self.hline = W.HorizontalLine((0, topbarheight, 0, 0))
|
self.hline = W.HorizontalLine((0, topbarheight, 0, 0))
|
||||||
self.infotext = W.TextBox((175, 7, -4, 14), backgroundcolor = (0xe000, 0xe000, 0xe000))
|
self.infotext = W.TextBox((175, 6, -4, 14), backgroundcolor = (0xe000, 0xe000, 0xe000))
|
||||||
self.runbutton = W.Button((6, 5, 60, 16), runButtonLabels[0], self.run)
|
self.runbutton = W.BevelButton((6, 4, 80, 16), runButtonLabels[0], self.run)
|
||||||
self.runselbutton = W.Button((78, 5, 90, 16), runSelButtonLabels[0], self.runselection)
|
self.runselbutton = W.BevelButton((90, 4, 80, 16), runSelButtonLabels[0], self.runselection)
|
||||||
|
|
||||||
# bind some keys
|
# bind some keys
|
||||||
editor.bind("cmdr", self.runbutton.push)
|
editor.bind("cmdr", self.runbutton.push)
|
||||||
|
@ -801,6 +801,7 @@ def _makewholewordpattern(word):
|
||||||
pattern = pattern + notwordcharspat
|
pattern = pattern + notwordcharspat
|
||||||
return re.compile(pattern)
|
return re.compile(pattern)
|
||||||
|
|
||||||
|
|
||||||
class SearchEngine:
|
class SearchEngine:
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
|
@ -31,7 +31,8 @@ def getdefaultfont():
|
||||||
return prefs.defaultfont
|
return prefs.defaultfont
|
||||||
|
|
||||||
def Message(text):
|
def Message(text):
|
||||||
import EasyDialogs, Qd, string
|
import EasyDialogs, string
|
||||||
|
from Carbon import Qd
|
||||||
Qd.InitCursor()
|
Qd.InitCursor()
|
||||||
text = string.replace(text, "\n", "\r")
|
text = string.replace(text, "\n", "\r")
|
||||||
if not text:
|
if not text:
|
||||||
|
|
|
@ -9,7 +9,7 @@ from types import *
|
||||||
|
|
||||||
from Carbon import Menu; MenuToolbox = Menu; del Menu
|
from Carbon import Menu; MenuToolbox = Menu; del Menu
|
||||||
|
|
||||||
KILLUNKNOWNWINDOWS=1 # Set to 0 for debugging.
|
KILLUNKNOWNWINDOWS = 0 # Set to 0 for debugging.
|
||||||
|
|
||||||
class Application(FrameWork.Application):
|
class Application(FrameWork.Application):
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from Carbon import Evt, Qd, QuickDraw, Win
|
from Carbon import App, Evt, Qd, QuickDraw, Win
|
||||||
import string
|
import string
|
||||||
from types import *
|
from types import *
|
||||||
import sys
|
import sys
|
||||||
|
@ -329,15 +329,7 @@ class SelectableWidget(ClickableWidget):
|
||||||
def drawselframe(self, onoff):
|
def drawselframe(self, onoff):
|
||||||
if not self._parentwindow._hasselframes:
|
if not self._parentwindow._hasselframes:
|
||||||
return
|
return
|
||||||
thickrect = Qd.InsetRect(self._bounds, -3, -3)
|
App.DrawThemeFocusRect(self._bounds, onoff)
|
||||||
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):
|
def adjust(self, oldbounds):
|
||||||
self.SetPort()
|
self.SetPort()
|
||||||
|
|
|
@ -17,6 +17,7 @@ class ControlWidget(Wbase.ClickableWidget):
|
||||||
self._min = min
|
self._min = min
|
||||||
self._max = max
|
self._max = max
|
||||||
self._enabled = 1
|
self._enabled = 1
|
||||||
|
self._viewsize = 0
|
||||||
|
|
||||||
def open(self):
|
def open(self):
|
||||||
self._calcbounds()
|
self._calcbounds()
|
||||||
|
@ -29,8 +30,8 @@ class ControlWidget(Wbase.ClickableWidget):
|
||||||
self._max,
|
self._max,
|
||||||
self._procID,
|
self._procID,
|
||||||
0)
|
0)
|
||||||
self.SetPort()
|
if self._viewsize:
|
||||||
#self.GetWindow().ValidWindowRect(self._bounds)
|
self._control.SetControlViewSize(self._viewsize)
|
||||||
self.enable(self._enabled)
|
self.enable(self._enabled)
|
||||||
|
|
||||||
def adjust(self, oldbounds):
|
def adjust(self, oldbounds):
|
||||||
|
@ -75,9 +76,11 @@ class ControlWidget(Wbase.ClickableWidget):
|
||||||
self._control.Draw1Control()
|
self._control.Draw1Control()
|
||||||
|
|
||||||
def test(self, point):
|
def test(self, point):
|
||||||
ctltype, control = Ctl.FindControl(point, self._parentwindow.wid)
|
if Qd.PtInRect(point, self._bounds) and self._enabled:
|
||||||
if self._enabled and control == self._control:
|
|
||||||
return 1
|
return 1
|
||||||
|
#ctltype, control = Ctl.FindControl(point, self._parentwindow.wid)
|
||||||
|
#if self._enabled and control == self._control:
|
||||||
|
# return 1
|
||||||
|
|
||||||
def click(self, point, modifiers):
|
def click(self, point, modifiers):
|
||||||
if not self._enabled:
|
if not self._enabled:
|
||||||
|
@ -112,16 +115,19 @@ class Button(ControlWidget):
|
||||||
|
|
||||||
"""Standard push button."""
|
"""Standard push button."""
|
||||||
|
|
||||||
|
procID = Controls.pushButProc | Controls.useWFont
|
||||||
|
|
||||||
def __init__(self, possize, title = "Button", callback = None):
|
def __init__(self, possize, title = "Button", callback = None):
|
||||||
procID = Controls.pushButProc | Controls.useWFont
|
ControlWidget.__init__(self, possize, title, self.procID, callback, 0, 0, 1)
|
||||||
ControlWidget.__init__(self, possize, title, procID, callback, 0, 0, 1)
|
|
||||||
self._isdefault = 0
|
self._isdefault = 0
|
||||||
|
|
||||||
def push(self):
|
def push(self):
|
||||||
if not self._enabled:
|
if not self._enabled:
|
||||||
return
|
return
|
||||||
|
# emulate the pushing of the button
|
||||||
import time
|
import time
|
||||||
self._control.HiliteControl(Controls.kControlButtonPart)
|
self._control.HiliteControl(Controls.kControlButtonPart)
|
||||||
|
Qd.QDFlushPortBuffer(self._parentwindow.wid, None) # needed under OSX
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
self._control.HiliteControl(0)
|
self._control.HiliteControl(0)
|
||||||
if self._callback:
|
if self._callback:
|
||||||
|
@ -139,7 +145,25 @@ class Button(ControlWidget):
|
||||||
if self._visible:
|
if self._visible:
|
||||||
self._control.Draw1Control()
|
self._control.Draw1Control()
|
||||||
|
|
||||||
|
def open(self):
|
||||||
|
ControlWidget.open(self)
|
||||||
|
if self._isdefault:
|
||||||
|
self._setdefault(self._isdefault)
|
||||||
|
|
||||||
def _setdefault(self, onoff):
|
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
|
self._isdefault = onoff
|
||||||
|
|
||||||
def adjust(self, oldbounds):
|
def adjust(self, oldbounds):
|
||||||
|
@ -152,6 +176,10 @@ class Button(ControlWidget):
|
||||||
ControlWidget.adjust(self, oldbounds)
|
ControlWidget.adjust(self, oldbounds)
|
||||||
|
|
||||||
|
|
||||||
|
class BevelButton(Button):
|
||||||
|
procID = Controls.kControlBevelButtonNormalBevelProc | Controls.useWFont
|
||||||
|
|
||||||
|
|
||||||
class CheckBox(ControlWidget):
|
class CheckBox(ControlWidget):
|
||||||
|
|
||||||
"""Standard checkbox."""
|
"""Standard checkbox."""
|
||||||
|
@ -250,13 +278,22 @@ class Scrollbar(ControlWidget):
|
||||||
Wbase.CallbackCall(self._callback, 1, '--')
|
Wbase.CallbackCall(self._callback, 1, '--')
|
||||||
|
|
||||||
def setmin(self, min):
|
def setmin(self, min):
|
||||||
self._control.SetControl32BitMinimum(min)
|
if self._control is not None:
|
||||||
|
self._control.SetControl32BitMinimum(min)
|
||||||
|
else:
|
||||||
|
self._min = min
|
||||||
|
|
||||||
def setmax(self, max):
|
def setmax(self, max):
|
||||||
self._control.SetControl32BitMaximum(max)
|
if self._control is not None:
|
||||||
|
self._control.SetControl32BitMaximum(max)
|
||||||
|
else:
|
||||||
|
self._max = max
|
||||||
|
|
||||||
def setviewsize(self, view):
|
def setviewsize(self, viewsize):
|
||||||
self._control.SetControlViewSize(view)
|
if self._control is not None:
|
||||||
|
self._control.SetControlViewSize(viewsize)
|
||||||
|
else:
|
||||||
|
self._viewsize = viewsize
|
||||||
|
|
||||||
def getmin(self):
|
def getmin(self):
|
||||||
return self._control.GetControl32BitMinimum()
|
return self._control.GetControl32BitMinimum()
|
||||||
|
@ -312,7 +349,7 @@ class Scrollbar(ControlWidget):
|
||||||
def draw(self, visRgn = None):
|
def draw(self, visRgn = None):
|
||||||
if self._visible:
|
if self._visible:
|
||||||
self._control.Draw1Control()
|
self._control.Draw1Control()
|
||||||
Qd.FrameRect(self._bounds)
|
#Qd.FrameRect(self._bounds)
|
||||||
|
|
||||||
def adjust(self, oldbounds):
|
def adjust(self, oldbounds):
|
||||||
self.SetPort()
|
self.SetPort()
|
||||||
|
|
Binary file not shown.
|
@ -5,6 +5,8 @@ from Carbon import Evt, Events, Fm, Lists, Qd, Scrap, Win
|
||||||
from Carbon.List import LNew, CreateCustomList, GetListPort
|
from Carbon.List import LNew, CreateCustomList, GetListPort
|
||||||
from Carbon.Lists import kListDefUserProcType, lInitMsg, lDrawMsg, lHiliteMsg, lCloseMsg
|
from Carbon.Lists import kListDefUserProcType, lInitMsg, lDrawMsg, lHiliteMsg, lCloseMsg
|
||||||
from Carbon.QuickDraw import hilitetransfermode
|
from Carbon.QuickDraw import hilitetransfermode
|
||||||
|
from Carbon import App
|
||||||
|
from Carbon.Appearance import kThemeStateActive, kThemeStateInactive, kThemeStatePressed
|
||||||
|
|
||||||
|
|
||||||
class List(Wbase.SelectableWidget):
|
class List(Wbase.SelectableWidget):
|
||||||
|
@ -253,22 +255,24 @@ class List(Wbase.SelectableWidget):
|
||||||
if not visRgn:
|
if not visRgn:
|
||||||
visRgn = self._parentwindow.wid.GetWindowPort().visRgn
|
visRgn = self._parentwindow.wid.GetWindowPort().visRgn
|
||||||
self._list.LUpdate(visRgn)
|
self._list.LUpdate(visRgn)
|
||||||
Qd.FrameRect(self._bounds)
|
App.DrawThemeListBoxFrame(self._bounds, kThemeStateActive)
|
||||||
if self._selected and self._activated:
|
#if self._selected and self._activated:
|
||||||
self.drawselframe(1)
|
# self.drawselframe(1)
|
||||||
|
|
||||||
def select(self, onoff, isclick = 0):
|
def select(self, onoff, isclick = 0):
|
||||||
if Wbase.SelectableWidget.select(self, onoff):
|
if Wbase.SelectableWidget.select(self, onoff):
|
||||||
return
|
return
|
||||||
self.SetPort()
|
self.SetPort()
|
||||||
self.drawselframe(onoff)
|
state = [kThemeStateActive, kThemeStatePressed][onoff]
|
||||||
|
App.DrawThemeListBoxFrame(self._bounds, kThemeStateActive)
|
||||||
|
#self.drawselframe(onoff)
|
||||||
|
|
||||||
def activate(self, onoff):
|
def activate(self, onoff):
|
||||||
self._activated = onoff
|
self._activated = onoff
|
||||||
if self._visible:
|
if self._visible:
|
||||||
self._list.LActivate(onoff)
|
self._list.LActivate(onoff)
|
||||||
if self._selected:
|
#if self._selected:
|
||||||
self.drawselframe(onoff)
|
# self.drawselframe(onoff)
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
return self.items
|
return self.items
|
||||||
|
@ -449,6 +453,7 @@ class TwoLineList(CustomList):
|
||||||
Qd.MoveTo(left + 4, top + ascent + linefeed)
|
Qd.MoveTo(left + 4, top + ascent + linefeed)
|
||||||
Qd.DrawText(line2, 0, len(line2))
|
Qd.DrawText(line2, 0, len(line2))
|
||||||
Qd.PenPat("\x11\x11\x11\x11\x11\x11\x11\x11")
|
Qd.PenPat("\x11\x11\x11\x11\x11\x11\x11\x11")
|
||||||
|
bottom = top + theList.cellSize[1]
|
||||||
Qd.MoveTo(left, bottom - 1)
|
Qd.MoveTo(left, bottom - 1)
|
||||||
Qd.LineTo(right, bottom - 1)
|
Qd.LineTo(right, bottom - 1)
|
||||||
if selected:
|
if selected:
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
from Carbon import Evt, Events, Fm, Fonts
|
from Carbon import Evt, Events, Fm, Fonts
|
||||||
from Carbon import Qd, Res, Scrap
|
from Carbon import Qd, Res, Scrap
|
||||||
from Carbon import TE, TextEdit, Win
|
from Carbon import TE, TextEdit, Win
|
||||||
|
from Carbon import App
|
||||||
|
from Carbon.Appearance import kThemeStateActive, kThemeStateInactive
|
||||||
import waste
|
import waste
|
||||||
import WASTEconst
|
import WASTEconst
|
||||||
import Wbase
|
import Wbase
|
||||||
|
@ -55,25 +57,29 @@ class TextBox(Wbase.Widget):
|
||||||
class _ScrollWidget:
|
class _ScrollWidget:
|
||||||
|
|
||||||
# to be overridden
|
# to be overridden
|
||||||
def getscrollbarvalues(self):
|
def getscrollrects(self):
|
||||||
|
"""Return (destrect, viewrect)."""
|
||||||
return None, None
|
return None, None
|
||||||
|
|
||||||
# internal method
|
# 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)
|
|
||||||
|
|
||||||
|
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
|
UNDOLABELS = [ # Indexed by WEGetUndoInfo() value
|
||||||
None, "", "typing", "Cut", "Paste", "Clear", "Drag", "Style",
|
None, "", "typing", "Cut", "Paste", "Clear", "Drag", "Style",
|
||||||
|
@ -373,6 +379,7 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
|
||||||
if self._selected and self._activated:
|
if self._selected and self._activated:
|
||||||
self.drawselframe(1)
|
self.drawselframe(1)
|
||||||
Qd.FrameRect(self._bounds)
|
Qd.FrameRect(self._bounds)
|
||||||
|
#App.DrawThemeEditTextFrame(self._bounds, kThemeStateActive)
|
||||||
|
|
||||||
# scrolling
|
# scrolling
|
||||||
def scrollpageup(self):
|
def scrollpageup(self):
|
||||||
|
@ -385,13 +392,13 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
|
||||||
|
|
||||||
def scrolltop(self):
|
def scrolltop(self):
|
||||||
if self._parent._bary and self._parent._bary._enabled:
|
if self._parent._bary and self._parent._bary._enabled:
|
||||||
self.vscroll(0)
|
self.vscroll(self._parent._bary.getmin())
|
||||||
if self._parent._barx and self._parent._barx._enabled:
|
if self._parent._barx and self._parent._barx._enabled:
|
||||||
self.hscroll(0)
|
self.hscroll(self._parent._barx.getmin())
|
||||||
|
|
||||||
def scrollbottom(self):
|
def scrollbottom(self):
|
||||||
if self._parent._bary and self._parent._bary._enabled:
|
if self._parent._bary and self._parent._bary._enabled:
|
||||||
self.vscroll(32767)
|
self.vscroll(self._parent._bary.getmax())
|
||||||
|
|
||||||
# menu handlers
|
# menu handlers
|
||||||
def domenu_copy(self, *args):
|
def domenu_copy(self, *args):
|
||||||
|
@ -469,20 +476,15 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
|
||||||
self.selectall()
|
self.selectall()
|
||||||
|
|
||||||
# private
|
# private
|
||||||
def getscrollbarvalues(self):
|
def getscrollrects(self):
|
||||||
dr = self.ted.WEGetDestRect()
|
return self.ted.WEGetDestRect(), self.ted.WEGetViewRect()
|
||||||
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):
|
def vscroll(self, value):
|
||||||
lineheight = self.ted.WEGetHeight(0, 1)
|
lineheight = self.ted.WEGetHeight(0, 1)
|
||||||
dr = self.ted.WEGetDestRect()
|
dr = self.ted.WEGetDestRect()
|
||||||
vr = self.ted.WEGetViewRect()
|
vr = self.ted.WEGetViewRect()
|
||||||
destheight = dr[3] - dr[1]
|
|
||||||
viewheight = vr[3] - vr[1]
|
viewheight = vr[3] - vr[1]
|
||||||
viewoffset = maxdelta = vr[1] - dr[1]
|
maxdelta = vr[1] - dr[1]
|
||||||
mindelta = vr[3] - dr[3]
|
mindelta = vr[3] - dr[3]
|
||||||
if value == "+":
|
if value == "+":
|
||||||
delta = lineheight
|
delta = lineheight
|
||||||
|
@ -493,11 +495,7 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
|
||||||
elif value == "--":
|
elif value == "--":
|
||||||
delta = lineheight - viewheight
|
delta = lineheight - viewheight
|
||||||
else: # in thumb
|
else: # in thumb
|
||||||
cur = (32767L * viewoffset) / (destheight - viewheight)
|
delta = vr[1] - dr[1] - value
|
||||||
delta = (cur-value)*(destheight - viewheight)/32767
|
|
||||||
if abs(delta - viewoffset) <=2:
|
|
||||||
# compensate for irritating rounding error
|
|
||||||
delta = viewoffset
|
|
||||||
delta = min(maxdelta, delta)
|
delta = min(maxdelta, delta)
|
||||||
delta = max(mindelta, delta)
|
delta = max(mindelta, delta)
|
||||||
self.ted.WEScroll(0, delta)
|
self.ted.WEScroll(0, delta)
|
||||||
|
@ -519,11 +517,12 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
|
||||||
elif value == "--":
|
elif value == "--":
|
||||||
delta = 0.5 * (vr[0] - vr[2])
|
delta = 0.5 * (vr[0] - vr[2])
|
||||||
else: # in thumb
|
else: # in thumb
|
||||||
cur = (32767 * viewoffset) / (destwidth - viewwidth)
|
delta = vr[0] - dr[0] - value
|
||||||
delta = (cur-value)*(destwidth - viewwidth)/32767
|
#cur = (32767 * viewoffset) / (destwidth - viewwidth)
|
||||||
if abs(delta - viewoffset) <=2:
|
#delta = (cur-value)*(destwidth - viewwidth)/32767
|
||||||
# compensate for irritating rounding error
|
#if abs(delta - viewoffset) <=2:
|
||||||
delta = viewoffset
|
# # compensate for irritating rounding error
|
||||||
|
# delta = viewoffset
|
||||||
delta = min(maxdelta, delta)
|
delta = min(maxdelta, delta)
|
||||||
delta = max(mindelta, delta)
|
delta = max(mindelta, delta)
|
||||||
self.ted.WEScroll(delta, 0)
|
self.ted.WEScroll(delta, 0)
|
||||||
|
@ -923,6 +922,7 @@ class PyEditor(TextEditor):
|
||||||
if autoscroll:
|
if autoscroll:
|
||||||
self.ted.WEFeatureFlag(WASTEconst.weFAutoScroll, 0)
|
self.ted.WEFeatureFlag(WASTEconst.weFAutoScroll, 0)
|
||||||
self.ted.WESetSelection(count, count + 1)
|
self.ted.WESetSelection(count, count + 1)
|
||||||
|
Qd.QDFlushPortBuffer(self._parentwindow.wid, None) # needed under OSX
|
||||||
time.sleep(0.2)
|
time.sleep(0.2)
|
||||||
self.ted.WESetSelection(selstart, selend)
|
self.ted.WESetSelection(selstart, selend)
|
||||||
if autoscroll:
|
if autoscroll:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue