1 # A stab at a python debugger
10 from mac_widgets
import MT_AnyList
, MT_IconTextWidget
23 class ModuleBrowser(FrameWork
.DialogWindow
, TwitCore
.ModuleBrowser
):
24 """The module-browser dialog - mac-dependent part"""
25 def open(self
, module
):
26 FrameWork
.DialogWindow
.open(self
, ID_MODULES
)
31 tp
, h
, rect
= self
.wid
.GetDialogItem(I_MODULES
)
32 self
.modules
= MT_AnyList(self
.wid
, rect
, 1)
33 tp
, h
, rect
= self
.wid
.GetDialogItem(I_VARS
)
34 self
.vars = MT_AnyList(self
.wid
, rect
, 2)
35 tp
, h
, rect
= self
.wid
.GetDialogItem(I_SOURCE
)
36 self
.source
= MT_IconTextWidget(self
.wid
, rect
)
40 def setsource(self
, msg
):
41 tp
, h
, rect
= self
.wid
.GetDialogItem(I_SOURCE_TITLE
)
43 Dlg
.SetDialogItemText(h
, self
.cur_source
)
45 Dlg
.SetDialogItemText(h
, msg
)
46 self
.source
.setcontent(self
.cur_source
)
48 def source_setbreaks(self
, list):
49 self
.source
.setbreaks(list)
51 def source_setline(self
, lineno
, icon
):
52 self
.source
.setcurline(lineno
, icon
)
54 def source_select(self
, lineno
):
55 self
.source
.select(lineno
)
57 def setmodulenames(self
):
58 self
.modules
.setcontent(self
.cont_modules
)
60 def module_select(self
, number
):
61 self
.modules
.select(number
)
64 self
.vars.setcontent(self
.cont_varnames
, self
.cont_varvalues
)
66 def do_itemhit(self
, item
, event
):
67 (what
, message
, when
, where
, modifiers
) = event
69 where
= Qd
.GlobalToLocal(where
)
72 new_module
, double
= self
.modules
.click(where
, 0)
73 self
.click_module(new_module
)
75 new_var
, double
= self
.vars.click(where
, 0)
77 self
.click_var(new_var
)
78 elif item
== I_SOURCE
:
79 lineno
, inborder
= self
.source
.click(where
, 0)
80 if lineno
<> None and lineno
>= 0:
81 self
.click_source(lineno
, inborder
)
85 def do_rawupdate(self
, window
, event
):
87 rgn
= self
.wid
.GetWindowPort().visRgn
88 tp
, h
, rect
= self
.wid
.GetDialogItem(I_RULER
)
89 Qd
.MoveTo(rect
[0], rect
[1])
90 Qd
.LineTo(rect
[2], rect
[1])
91 self
.modules
.update(rgn
)
93 self
.source
.update(rgn
)
95 def force_redraw(self
):
97 Win
.InvalRgn(self
.wid
.GetWindowPort().visRgn
)
99 def do_activate(self
, activate
, event
):
100 self
.modules
.activate(activate
)
101 self
.vars.activate(activate
)
102 self
.source
.activate(activate
)
105 self
.parent
.module_dialog
= None
112 if __name__
== '__main__':