Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e160fe1

Browse files
committed
It now works under Carbon. Under Classic the scrollbars don't show
up, for reasons unknown.
1 parent 861adac commit e160fe1

1 file changed

Lines changed: 15 additions & 104 deletions

File tree

Mac/Demo/mlte/mlted.py

Lines changed: 15 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from Menu import DrawMenuBar
77
from FrameWork import *
88
import Win
9+
import Ctl
910
import Qd
1011
import Res
1112
import Scrap
@@ -18,141 +19,51 @@
1819
"Typing", "Cut", "Paste", "Clear", "Font Change", "Color Change", "Size Change",
1920
"Style Change", "Align Left", "Align Center", "Align Right", "Drop", "Move"]
2021

21-
class WasteWindow(Window):
22+
class MlteWindow(Window):
2223
def open(self, path, name, data):
2324
self.path = path
2425
self.name = name
2526
r = windowbounds(400, 400)
2627
w = Win.NewWindow(r, name, 1, 0, -1, 1, 0x55555555)
2728
self.wid = w
28-
## vr = 0, 0, r[2]-r[0]-15, r[3]-r[1]-15
29-
## dr = (0, 0, 10240, 0)
30-
## Qd.SetPort(w)
31-
## Qd.TextFont(4)
32-
## Qd.TextSize(9)
33-
## self.ted = waste.WENew(dr, vr, flags)
34-
flags = MacTextEditor.kTXNDrawGrowIconMask|MacTextEditor.kTXNShowWindowMask|MacTextEditor.kTXNWantHScrollBarMask| \
29+
flags = MacTextEditor.kTXNDrawGrowIconMask|MacTextEditor.kTXNWantHScrollBarMask| \
3530
MacTextEditor.kTXNWantVScrollBarMask
3631
self.ted, self.frameid = Mlte.TXNNewObject(None, w, None, flags, MacTextEditor.kTXNTextEditStyleFrameType,
3732
MacTextEditor.kTXNTextFile, MacTextEditor.kTXNMacOSEncoding)
38-
## self.tedtexthandle = Res.Resource(data)
39-
## self.ted.WEUseText(self.tedtexthandle)
4033
self.ted.TXNSetData(MacTextEditor.kTXNTextData, data, 0, 0x7fffffff)
41-
## self.ted.WECalText()
42-
## w.DrawGrowIcon()
43-
## self.scrollbars()
4434
self.changed = 0
4535
self.do_postopen()
4636
self.do_activate(1, None)
4737

4838
def do_idle(self, event):
49-
## (what, message, when, where, modifiers) = event
50-
## Qd.SetPort(self.wid)
5139
self.ted.TXNIdle()
5240
self.ted.TXNAdjustCursor(None)
5341

54-
## def getscrollbarvalues(self):
55-
## dr = self.ted.WEGetDestRect()
56-
## vr = self.ted.WEGetViewRect()
57-
## vx = self.scalebarvalue(dr[0], dr[2], vr[0], vr[2])
58-
## vy = self.scalebarvalue(dr[1], dr[3], vr[1], vr[3])
59-
#### print dr, vr, vx, vy
60-
## return vx, vy
61-
##
62-
## def scrollbar_callback(self, which, what, value):
63-
## if which == 'y':
64-
## if what == 'set':
65-
## height = self.ted.WEGetHeight(0, 0x3fffffff)
66-
## cur = self.getscrollbarvalues()[1]
67-
## delta = (cur-value)*height/32767
68-
## if what == '-':
69-
## topline_off,dummy = self.ted.WEGetOffset((1,1))
70-
## topline_num = self.ted.WEOffsetToLine(topline_off)
71-
## delta = self.ted.WEGetHeight(topline_num, topline_num+1)
72-
## elif what == '--':
73-
## delta = (self.ted.WEGetViewRect()[3]-10)
74-
## if delta <= 0:
75-
## delta = 10 # Random value
76-
## elif what == '+':
77-
## # XXXX Wrong: should be bottom line size
78-
## topline_off,dummy = self.ted.WEGetOffset((1,1))
79-
## topline_num = self.ted.WEOffsetToLine(topline_off)
80-
## delta = -self.ted.WEGetHeight(topline_num, topline_num+1)
81-
## elif what == '++':
82-
## delta = -(self.ted.WEGetViewRect()[3]-10)
83-
## if delta >= 0:
84-
## delta = -10
85-
## self.ted.WEScroll(0, delta)
86-
#### print 'SCROLL Y', delta
87-
## else:
88-
## if what == 'set':
89-
## return # XXXX
90-
## vr = self.ted.WEGetViewRect()
91-
## winwidth = vr[2]-vr[0]
92-
## if what == '-':
93-
## delta = winwidth/10
94-
## elif what == '--':
95-
## delta = winwidth/2
96-
## elif what == '+':
97-
## delta = -winwidth/10
98-
## elif what == '++':
99-
## delta = -winwidth/2
100-
## self.ted.WEScroll(delta, 0)
101-
## # Pin the scroll
102-
## l, t, r, b = self.ted.WEGetDestRect()
103-
## vl, vt, vr, vb = self.ted.WEGetViewRect()
104-
## if t > 0 or l > 0:
105-
## dx = dy = 0
106-
## if t > 0: dy = -t
107-
## if l > 0: dx = -l
108-
#### print 'Extra scroll', dx, dy
109-
## self.ted.WEScroll(dx, dy)
110-
## elif b < vb:
111-
#### print 'Extra downscroll', b-vb
112-
## self.ted.WEScroll(0, b-vb)
11342

11443

11544
def do_activate(self, onoff, evt):
116-
## print "ACTIVATE", onoff
117-
Qd.SetPort(self.wid)
118-
Window.do_activate(self, onoff, evt)
11945
if onoff:
46+
## self.ted.TXNActivate(self.frameid, 0)
12047
self.ted.TXNFocus(1)
12148
self.parent.active = self
122-
self.parent.updatemenubar()
12349
else:
12450
self.ted.TXNFocus(0)
51+
self.parent.active = None
52+
self.parent.updatemenubar()
12553

12654
def do_update(self, wid, event):
127-
Qd.SetPort(self.wid)
128-
## region = wid.GetWindowPort().visRgn
129-
## if Qd.EmptyRgn(region):
130-
## return
131-
## Qd.EraseRgn(region)
132-
self.ted.TXNUpdate()
133-
## self.updatescrollbars()
55+
self.ted.TXNDraw(None)
13456

135-
## def do_postresize(self, width, height, window):
136-
## l, t, r, b = self.ted.WEGetViewRect()
137-
## vr = (l, t, l+width-15, t+height-15)
138-
## self.ted.WESetViewRect(vr)
139-
## self.wid.InvalWindowRect(vr)
140-
## ScrolledWindow.do_postresize(self, width, height, window)
57+
def do_postresize(self, width, height, window):
58+
self.ted.TXNResizeFrame(width, height, self.frameid)
14159

14260
def do_contentclick(self, local, modifiers, evt):
143-
## (what, message, when, where, modifiers) = evt
14461
self.ted.TXNClick(evt)
145-
## self.updatescrollbars()
14662
self.parent.updatemenubar()
147-
63+
14864
def do_char(self, ch, event):
14965
self.ted.TXNKeyDown(event)
150-
## self.ted.WESelView()
151-
## (what, message, when, where, modifiers) = event
152-
## self.ted.WEKey(ord(ch), modifiers)
153-
## self.changed = 1
154-
## self.updatescrollbars()
155-
## self.parent.updatemenubar()
66+
self.parent.updatemenubar()
15667

15768
def close(self):
15869
if self.changed:
@@ -163,7 +74,7 @@ def close(self):
16374
return
16475
if self.parent.active == self:
16576
self.parent.active = None
166-
## self.parent.updatemenubar()
77+
self.ted.TXNDeleteObject()
16778
del self.ted
16879
## del self.tedtexthandle
16980
self.do_postclose()
@@ -172,7 +83,6 @@ def menu_save(self):
17283
if not self.path:
17384
self.menu_save_as()
17485
return # Will call us recursively
175-
print 'Saving to ', self.path
17686
dhandle = self.ted.TXNGetData(0, 0x7fffffff)
17787
data = dhandle.data
17888
fp = open(self.path, 'wb') # NOTE: wb, because data has CR for end-of-line
@@ -279,7 +189,8 @@ def makeusermenus(self):
279189

280190
self.editmenu = m = Menu(self.menubar, "Edit")
281191
self.undoitem = MenuItem(m, "Undo", "Z", self.undo)
282-
self.redoitem = MenuItem(m, "Undo", None, self.redo)
192+
self.redoitem = MenuItem(m, "Redo", None, self.redo)
193+
m.addseparator()
283194
self.cutitem = MenuItem(m, "Cut", "X", self.cut)
284195
self.copyitem = MenuItem(m, "Copy", "C", self.copy)
285196
self.pasteitem = MenuItem(m, "Paste", "V", self.paste)
@@ -373,7 +284,7 @@ def _open(self, askfile):
373284
path = None
374285
name = "Untitled %d"%self.num
375286
data = ''
376-
w = WasteWindow(self)
287+
w = MlteWindow(self)
377288
w.open(path, name, data)
378289
self.num = self.num + 1
379290

0 commit comments

Comments
 (0)