-
Notifications
You must be signed in to change notification settings - Fork 6
/
GtkWorkspaceWidget.st
92 lines (67 loc) · 1.72 KB
/
GtkWorkspaceWidget.st
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
GtkTextWidget subclass: GtkWorkspaceWidget [
| variableWidget variableTracker object |
initialize [
<category: 'intialization'>
variableTracker := (WorkspaceVariableTracker new)
initialize;
yourself.
object := variableTracker objectClass new.
super initialize.
self connectToWhenPopupMenu: (WorkspaceMenus on: self)
]
postInitialize [
<category: 'initialize'>
variableWidget hideAll.
super postInitialize
]
buildWidget [
<category: 'user interface'>
^ (GTK.GtkHPaned new)
add1: (variableWidget := GtkVariableTrackerWidget on: object) mainWidget;
add2: super buildWidget;
yourself
]
object: anObject [
<category: 'evaluation'>
variableTracker := nil.
object := anObject.
]
targetObject [
<category: 'evaluation'>
^ object
]
beforeEvaluation [
<category: 'smalltalk event'>
| text nodes |
variableTracker isNil ifTrue: [^self].
text := self selectedText.
nodes := STInST.RBParser parseExpression: text onError: [ :s :p | self error: s ].
variableTracker visitNode: nodes
]
afterEvaluation [
<category: 'smalltalk event'>
variableWidget refresh
]
doIt [
<category: 'smalltalk event'>
DoItCommand executeOn: self
]
debugIt [
<category: 'smalltalk event'>
DebugItCommand executeOn: self
]
inspectIt [
<category: 'smalltalk event'>
InspectItCommand executeOn: self
]
printIt [
<category: 'smalltalk event'>
PrintItCommand executeOn: self
]
showIVar [
<category: 'smalltalk event'>
variableWidget mainWidget getVisible
ifFalse: [ variableWidget showAll ]
ifTrue: [ variableWidget hideAll ].
]
]