54 lines
1.3 KiB
Plaintext
54 lines
1.3 KiB
Plaintext
import aetools
|
|
import Standard_Suite
|
|
import Required_Suite
|
|
import MacOS
|
|
import W
|
|
|
|
|
|
class Toolbox(aetools.TalkTo, Standard_Suite.Standard_Suite):
|
|
|
|
def LookupTopic(self, _object, _attributes={}, **_arguments):
|
|
_code = 'DanR'
|
|
_subcode = 'REF '
|
|
|
|
#aetools.keysubst(_arguments, self._argmap_OpenURL)
|
|
_arguments['----'] = _object
|
|
|
|
|
|
_reply, _arguments, _attributes = self.send(_code, _subcode,
|
|
_arguments, _attributes)
|
|
if _arguments.has_key('errn'):
|
|
raise MacOS.Error, aetools.decodeerror(_arguments)
|
|
# XXXX Optionally decode result
|
|
if _arguments.has_key('----'):
|
|
return _arguments['----']
|
|
|
|
|
|
class ToolboxAssi:
|
|
|
|
def __init__(self):
|
|
self.talker = Toolbox('ALTV')
|
|
self.w = W.Window((200, 100), "Toolbox Assistant")
|
|
self.w.button = W.Button((-94, -32, 80, 16), "Lookup", self.lookup)
|
|
self.w.prompt = W.TextBox((10, 8, -10, 15), "Enter topic:")
|
|
self.w.edit = W.EditText((10, 24, -10, 20))
|
|
self.w.setdefaultbutton(self.w.button)
|
|
self.w.open()
|
|
|
|
def lookup(self):
|
|
lookup = self.w.edit.get()
|
|
try:
|
|
self.talker.LookupTopic(lookup)
|
|
except MacOS.Error, detail:
|
|
if type(detail) == type(()):
|
|
if detail[0] == -609:
|
|
self.talker.start()
|
|
try:
|
|
self.talker.LookupTopic(lookup)
|
|
return
|
|
except MacOS.Error:
|
|
pass
|
|
W.Message("Requested topic not found.")
|
|
|
|
ToolboxAssi()
|