Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
December 2009
- 96 participants
- 2069 messages
Re: [Pharo-project] StandardWindow Layout Help
by Hernán Morales Durand
Hi Rob,
Besides the Stéphane's example, you will find attached a cool
Morphic example to start experimenting with Layouts. Possibly it's
non-functional because of some Nebraska dependencies with the Sound
package (I don't know the status of Sound in Pharo) but it would be
sufficient for your purposes. To open it:
ChatNotes new openAsMorph.
and play with the implementation of #openAsMorph
Cheers,
Hernán
2009/12/5 Rob Rothwell <r.j.rothwell(a)gmail.com>:
> I just can't seem to figure this out from the UITheme examples.
> Can anyone give me some general pointers on building a plain old Window? Â I
> know there isn't a UI builder, but how do you control the placement of the
> child controls you create in the window?
> For example, the following will create a StandardWindow and add a button to
> it (in the upper left corner). Â Do you control placement [of the button]
> with LayoutFrame? Â How do you use LayoutFrame?
> | win btnOk |
> win := StandardWindow new.
> btnOk := win newButtonFor: nil action: #ok getEnabled: nil label: 'Ok' help:
> nil.
> win addMorph: btnOk .
> win themeChanged;Â openInWorld.
> Thank you. Â I am finally trying to understand how to build some typical
> applications without a GUI builder...
> Take care,
> Rob
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
Dec. 6, 2009
[Pharo-project] Usability with too many Deprecation Warnings dialogs (Settings framework)
by Hernán Morales Durand
I'm using latest Pharo-Core with OmniBrowser and it's unusable with so
many warning dialogs raising all the time in every operation : Opening
an OB browser for example requires 6 Proceed clicks from an user with
messages like this one:
"The method Preferences class standardButtonFont has been deprecated.
now accessible via the new setting framework "
To modify this setting you could change the default to false in
Deprecation initialize:
Preferences
addBooleanPreference: #raiseDeprecatedWarnings
category: #general "programming?"
default: false
balloonHelp: 'If enabled, use of a deprecated API raises a
Deprecated warning.'.
but this would modify the Deprecation behavior for all deprecations
(not just those related with the Preferences-Settings migration).
To me it sounds like one should to consider two kinds of deprecations:
-Those which need to raise a dialogs
-Those which doesn't want to because it would affect usability (like
right now in Pharo with OB).
I've just attached a specific message for deprecations requiring
active interaction for the user (#deprecatedWithPopUp). This addition
doesn't require to modify all the current #deprecated: senders, but
you should explicit modify with the #deprecatedWithPopUp variant in
those places you consider of enough importance to keep the user
informed. The Transcript notification behavior keeps intact. Feel free
to change it anyway you want :)
Cheers,
Hernán
Dec. 6, 2009
Re: [Pharo-project] squeak VM 5.0
by John M McIntosh
>
> hacking a bit more gets you to
> <PastedGraphic-1.tiff>
In a few spare moments as I await the Arctic front to bury us in snow...
I consider the
return: error
has to be related to the move from BlockContext to BlockClosure
so in
object:allFieldsWithIndex:collect:
I added
object class = BlockClosure ifTrue:
[(object instVarAt: 3) ifNotNil:
["May need to adjust PC and startPC if changing wordSize..."
results at: 2 put: (block value: (object instVarAt: 2)+(self pcDeltaForMethod: object method) value: 2)]].
mmm try that get this more interesting error
THERE_BE_DRAGONS_HERE
Unwind error during termination
5 December 2009 6:13:31 pm
VM: Mac OS - intel - 1062 - Squeak3.8.1 of '28 Aug 2006' [latest update: #6747] 9.0
Image: PharoCore1.0rc1 [Latest update: #10496]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Volumes/px2/business/SqueakiPhone/SqueakObjCBasedForOSXAndIPhone/SqueakNoOGLIPhoneOSX/testingImages/64bittracingchangesets
Trusted Dir /foobar/tooBar/forSqueak/bogus/
Untrusted Dir /foobar/tooBar/forSqueak/bogus/
Array(Object)>>error:
Receiver: #()
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
#()
Array(Object)>>errorSubscriptBounds:
Receiver: #()
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
#()
Array(Object)>>at:
Receiver: #()
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
#()
Decompiler>>pushTemporaryVariable:
Receiver: a Decompiler
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
sender: a CompiledMethod(1253: InstructionStream>>debuggerMap)
pc: 29
constructor: {a DecompilerConstructor}
method: a CompiledMethod(1253: InstructionStream>>debuggerMap)
instVars: an Array({sender} {pc})
tempVars: #()
constTable: an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
stack: an OrderedCollection({pc} {sender
debuggerMap (sender blockCopy: sender...etc...
statements: an OrderedCollection()
lastPc: 28
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 45
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: nil
tempVarCount: 0
Decompiler(InstructionStream)>>interpretNextInstructionFor:
Receiver: a Decompiler
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
sender: a CompiledMethod(1253: InstructionStream>>debuggerMap)
pc: 29
constructor: {a DecompilerConstructor}
method: a CompiledMethod(1253: InstructionStream>>debuggerMap)
instVars: an Array({sender} {pc})
tempVars: #()
constTable: an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
stack: an OrderedCollection({pc} {sender
debuggerMap (sender blockCopy: sender...etc...
statements: an OrderedCollection()
lastPc: 28
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 45
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: nil
tempVarCount: 0
Decompiler>>interpretNextInstructionFor:
Receiver: a Decompiler
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
sender: a CompiledMethod(1253: InstructionStream>>debuggerMap)
pc: 29
constructor: {a DecompilerConstructor}
method: a CompiledMethod(1253: InstructionStream>>debuggerMap)
instVars: an Array({sender} {pc})
tempVars: #()
constTable: an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
stack: an OrderedCollection({pc} {sender
debuggerMap (sender blockCopy: sender...etc...
statements: an OrderedCollection()
lastPc: 28
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 45
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: nil
tempVarCount: 0
Decompiler>>statementsTo:
Receiver: a Decompiler
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
sender: a CompiledMethod(1253: InstructionStream>>debuggerMap)
pc: 29
constructor: {a DecompilerConstructor}
method: a CompiledMethod(1253: InstructionStream>>debuggerMap)
instVars: an Array({sender} {pc})
tempVars: #()
constTable: an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
stack: an OrderedCollection({pc} {sender
debuggerMap (sender blockCopy: sender...etc...
statements: an OrderedCollection()
lastPc: 28
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 45
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: nil
tempVarCount: 0
Decompiler>>blockTo:
Receiver: a Decompiler
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
sender: a CompiledMethod(1253: InstructionStream>>debuggerMap)
pc: 29
constructor: {a DecompilerConstructor}
method: a CompiledMethod(1253: InstructionStream>>debuggerMap)
instVars: an Array({sender} {pc})
tempVars: #()
constTable: an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
stack: an OrderedCollection({pc} {sender
debuggerMap (sender blockCopy: sender...etc...
statements: an OrderedCollection()
lastPc: 28
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 45
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: nil
tempVarCount: 0
Decompiler>>decompile:in:method:using:
Receiver: a Decompiler
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
sender: a CompiledMethod(1253: InstructionStream>>debuggerMap)
pc: 29
constructor: {a DecompilerConstructor}
method: a CompiledMethod(1253: InstructionStream>>debuggerMap)
instVars: an Array({sender} {pc})
tempVars: #()
constTable: an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
stack: an OrderedCollection({pc} {sender
debuggerMap (sender blockCopy: sender...etc...
statements: an OrderedCollection()
lastPc: 28
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 45
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: nil
tempVarCount: 0
Decompiler>>decompile:in:method:
Receiver: a Decompiler
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
sender: a CompiledMethod(1253: InstructionStream>>debuggerMap)
pc: 29
constructor: {a DecompilerConstructor}
method: a CompiledMethod(1253: InstructionStream>>debuggerMap)
instVars: an Array({sender} {pc})
tempVars: #()
constTable: an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
stack: an OrderedCollection({pc} {sender
debuggerMap (sender blockCopy: sender...etc...
statements: an OrderedCollection()
lastPc: 28
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 45
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: nil
tempVarCount: 0
CompiledMethod>>getSourceFor:in:
Receiver: a CompiledMethod(1253: InstructionStream>>debuggerMap)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
a CompiledMethod(1253: InstructionStream>>debuggerMap)
CompiledMethod>>methodNode
Receiver: a CompiledMethod(1253: InstructionStream>>debuggerMap)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
a CompiledMethod(1253: InstructionStream>>debuggerMap)
[] in DebuggerMethodMap class>>forMethod:
Receiver: DebuggerMethodMap
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
superclass: Object
methodDict: a MethodDictionary(#abstractSourceMap->a CompiledMethod(3330: Debug...etc...
format: 140
instanceVariables: #('timestamp' 'methodReference' 'methodNode' 'abstractSource...etc...
organization: ('accessing' markRecentlyUsed method namedTempAt:in: namedTempAt:...etc...
subclasses: {DebuggerMethodMapForBlueBookMethods. DebuggerMethodMapForClosureCo...etc...
name: #DebuggerMethodMap
classPool: a Dictionary(#MapCache->a WeakIdentityKeyDictionary(a CompiledMethod...etc...
sharedPools: nil
environment: Smalltalk
category: #'Tools-Debugger'
traitComposition: nil
localSelectors: nil
WeakIdentityKeyDictionary(Dictionary)>>at:ifAbsent:
Receiver: a WeakIdentityKeyDictionary(a CompiledMethod(1410: HandMorph>>handleEvent:)->a DebuggerMet...etc...
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
tally: 16
array: an Array(a CompiledMethod(3440: Morph>>processEvent:)->a DebuggerMethodM...etc...
DebuggerMethodMap class>>forMethod:
Receiver: DebuggerMethodMap
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
superclass: Object
methodDict: a MethodDictionary(#abstractSourceMap->a CompiledMethod(3330: Debug...etc...
format: 140
instanceVariables: #('timestamp' 'methodReference' 'methodNode' 'abstractSource...etc...
organization: ('accessing' markRecentlyUsed method namedTempAt:in: namedTempAt:...etc...
subclasses: {DebuggerMethodMapForBlueBookMethods. DebuggerMethodMapForClosureCo...etc...
name: #DebuggerMethodMap
classPool: a Dictionary(#MapCache->a WeakIdentityKeyDictionary(a CompiledMethod...etc...
sharedPools: nil
environment: Smalltalk
category: #'Tools-Debugger'
traitComposition: nil
localSelectors: nil
CompiledMethod>>debuggerMap
Receiver: a CompiledMethod(1253: InstructionStream>>debuggerMap)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
a CompiledMethod(1253: InstructionStream>>debuggerMap)
MethodContext(InstructionStream)>>debuggerMap
Receiver: MethodContext(InstructionStream)>>debuggerMap
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
sender: Debugger>>selectedMessage
pc: 44
stackp: 0
method: a CompiledMethod(1253: InstructionStream>>debuggerMap)
closureOrNil: nil
receiver: CompiledMethod>>methodNode
Debugger>>selectedMessage
Receiver: a Debugger
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
dependents: a DependentsArray(a SystemWindow(3468) a PluggableListMorph(1072) a...etc...
contents: nil
currentCompiledMethod: nil
contentsSymbol: #source
interruptedProcess: a Process in Debugger class>>openOn:context:label:contents:...etc...
interruptedController: nil
contextStack: an OrderedCollection(CompiledMethod(Object)>>error: CompiledMetho...etc...
contextStackTop: CompiledMethod(Object)>>error:
contextStackIndex: 17
contextStackList: an OrderedCollection('CompiledMethod(Object)>>error:' 'Compil...etc...
receiverInspector: an Inspector
contextVariablesInspector: a ContextVariablesInspector
externalInterrupt: false
proceedValue: nil
selectingPC: true
debuggerMap: nil
savedCursor: ((CursorWithMask
extent: 16@16
depth: 1
fromArray: #(
2r0
2...etc...
isolationHead: nil
failedProject: nil
errorWasInUIProcess: true
labelString: nil
Debugger>>contextStackIndex:oldContextWas:
Receiver: a Debugger
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
dependents: a DependentsArray(a SystemWindow(3468) a PluggableListMorph(1072) a...etc...
contents: nil
currentCompiledMethod: nil
contentsSymbol: #source
interruptedProcess: a Process in Debugger class>>openOn:context:label:contents:...etc...
interruptedController: nil
contextStack: an OrderedCollection(CompiledMethod(Object)>>error: CompiledMetho...etc...
contextStackTop: CompiledMethod(Object)>>error:
contextStackIndex: 17
contextStackList: an OrderedCollection('CompiledMethod(Object)>>error:' 'Compil...etc...
receiverInspector: an Inspector
contextVariablesInspector: a ContextVariablesInspector
externalInterrupt: false
proceedValue: nil
selectingPC: true
debuggerMap: nil
savedCursor: ((CursorWithMask
extent: 16@16
depth: 1
fromArray: #(
2r0
2...etc...
isolationHead: nil
failedProject: nil
errorWasInUIProcess: true
labelString: nil
Debugger>>toggleContextStackIndex:
Receiver: a Debugger
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
dependents: a DependentsArray(a SystemWindow(3468) a PluggableListMorph(1072) a...etc...
contents: nil
currentCompiledMethod: nil
contentsSymbol: #source
interruptedProcess: a Process in Debugger class>>openOn:context:label:contents:...etc...
interruptedController: nil
contextStack: an OrderedCollection(CompiledMethod(Object)>>error: CompiledMetho...etc...
contextStackTop: CompiledMethod(Object)>>error:
contextStackIndex: 17
contextStackList: an OrderedCollection('CompiledMethod(Object)>>error:' 'Compil...etc...
receiverInspector: an Inspector
contextVariablesInspector: a ContextVariablesInspector
externalInterrupt: false
proceedValue: nil
selectingPC: true
debuggerMap: nil
savedCursor: ((CursorWithMask
extent: 16@16
depth: 1
fromArray: #(
2r0
2...etc...
isolationHead: nil
failedProject: nil
errorWasInUIProcess: true
labelString: nil
PluggableListMorph>>changeModelSelection:
Receiver: a PluggableListMorph(1072)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
bounds: 18@31 corner: 608@201
owner: a SystemWindow(3468)
submorphs: an Array(a ScrollBar(3011) a TransformMorph(3775))
fullBounds: nil
color: Color white
extension: a MorphExtension (973) [locked] [other: (layoutFrame -> a LayoutFr...etc...
borderWidth: 1
borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
model: a Debugger
slotName: nil
open: false
scrollBar: a ScrollBar(3011)
scroller: a TransformMorph(3775)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #contextStackMenu:shifted:
getMenuTitleSelector: #messageListSelectorTitle
hasFocus: true
hScrollBar: a ScrollBar(2791)
list: an OrderedCollection('CompiledMethod(Object)>>error:' 'CompiledMethod(Obj...etc...
getListSelector: #contextStackList
getListSizeSelector: nil
getListElementSelector: nil
getIndexSelector: #contextStackIndex
setIndexSelector: #toggleContextStackIndex:
keystrokeActionSelector: #contextStackKey:from:
autoDeselect: true
lastKeystrokeTime: 0
lastKeystrokes: ''
doubleClickSelector: nil
handlesBasicKeys: nil
potentialDropRow: nil
listMorph: a LazyListMorph(1316)
hScrollRangeCache: nil
PluggableListMorph>>mouseUp:
Receiver: a PluggableListMorph(1072)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
bounds: 18@31 corner: 608@201
owner: a SystemWindow(3468)
submorphs: an Array(a ScrollBar(3011) a TransformMorph(3775))
fullBounds: nil
color: Color white
extension: a MorphExtension (973) [locked] [other: (layoutFrame -> a LayoutFr...etc...
borderWidth: 1
borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
model: a Debugger
slotName: nil
open: false
scrollBar: a ScrollBar(3011)
scroller: a TransformMorph(3775)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #contextStackMenu:shifted:
getMenuTitleSelector: #messageListSelectorTitle
hasFocus: true
hScrollBar: a ScrollBar(2791)
list: an OrderedCollection('CompiledMethod(Object)>>error:' 'CompiledMethod(Obj...etc...
getListSelector: #contextStackList
getListSizeSelector: nil
getListElementSelector: nil
getIndexSelector: #contextStackIndex
setIndexSelector: #toggleContextStackIndex:
keystrokeActionSelector: #contextStackKey:from:
autoDeselect: true
lastKeystrokeTime: 0
lastKeystrokes: ''
doubleClickSelector: nil
handlesBasicKeys: nil
potentialDropRow: nil
listMorph: a LazyListMorph(1316)
hScrollRangeCache: nil
PluggableListMorph(Morph)>>handleMouseUp:
Receiver: a PluggableListMorph(1072)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
bounds: 18@31 corner: 608@201
owner: a SystemWindow(3468)
submorphs: an Array(a ScrollBar(3011) a TransformMorph(3775))
fullBounds: nil
color: Color white
extension: a MorphExtension (973) [locked] [other: (layoutFrame -> a LayoutFr...etc...
borderWidth: 1
borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
model: a Debugger
slotName: nil
open: false
scrollBar: a ScrollBar(3011)
scroller: a TransformMorph(3775)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #contextStackMenu:shifted:
getMenuTitleSelector: #messageListSelectorTitle
hasFocus: true
hScrollBar: a ScrollBar(2791)
list: an OrderedCollection('CompiledMethod(Object)>>error:' 'CompiledMethod(Obj...etc...
getListSelector: #contextStackList
getListSizeSelector: nil
getListElementSelector: nil
getIndexSelector: #contextStackIndex
setIndexSelector: #toggleContextStackIndex:
keystrokeActionSelector: #contextStackKey:from:
autoDeselect: true
lastKeystrokeTime: 0
lastKeystrokes: ''
doubleClickSelector: nil
handlesBasicKeys: nil
potentialDropRow: nil
listMorph: a LazyListMorph(1316)
hScrollRangeCache: nil
MouseButtonEvent>>sentTo:
Receiver: [206@151 mouseUp 103652 nil]
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
timeStamp: 103652
source: a HandMorph(3216)
windowIndex: nil
type: #mouseUp
buttons: 0
position: 206@151
handler: nil
wasHandled: true
whichButton: 4
PluggableListMorph(Morph)>>handleEvent:
Receiver: a PluggableListMorph(1072)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
bounds: 18@31 corner: 608@201
owner: a SystemWindow(3468)
submorphs: an Array(a ScrollBar(3011) a TransformMorph(3775))
fullBounds: nil
color: Color white
extension: a MorphExtension (973) [locked] [other: (layoutFrame -> a LayoutFr...etc...
borderWidth: 1
borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
model: a Debugger
slotName: nil
open: false
scrollBar: a ScrollBar(3011)
scroller: a TransformMorph(3775)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #contextStackMenu:shifted:
getMenuTitleSelector: #messageListSelectorTitle
hasFocus: true
hScrollBar: a ScrollBar(2791)
list: an OrderedCollection('CompiledMethod(Object)>>error:' 'CompiledMethod(Obj...etc...
getListSelector: #contextStackList
getListSizeSelector: nil
getListElementSelector: nil
getIndexSelector: #contextStackIndex
setIndexSelector: #toggleContextStackIndex:
keystrokeActionSelector: #contextStackKey:from:
autoDeselect: true
lastKeystrokeTime: 0
lastKeystrokes: ''
doubleClickSelector: nil
handlesBasicKeys: nil
potentialDropRow: nil
listMorph: a LazyListMorph(1316)
hScrollRangeCache: nil
MorphicEventDispatcher>>dispatchDefault:with:
Receiver: a MorphicEventDispatcher
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
lastType: #mouseUp
lastDispatch: #dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
Receiver: a MorphicEventDispatcher
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
lastType: #mouseUp
lastDispatch: #dispatchDefault:with:
PluggableListMorph(Morph)>>processEvent:using:
Receiver: a PluggableListMorph(1072)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
bounds: 18@31 corner: 608@201
owner: a SystemWindow(3468)
submorphs: an Array(a ScrollBar(3011) a TransformMorph(3775))
fullBounds: nil
color: Color white
extension: a MorphExtension (973) [locked] [other: (layoutFrame -> a LayoutFr...etc...
borderWidth: 1
borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
model: a Debugger
slotName: nil
open: false
scrollBar: a ScrollBar(3011)
scroller: a TransformMorph(3775)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #contextStackMenu:shifted:
getMenuTitleSelector: #messageListSelectorTitle
hasFocus: true
hScrollBar: a ScrollBar(2791)
list: an OrderedCollection('CompiledMethod(Object)>>error:' 'CompiledMethod(Obj...etc...
getListSelector: #contextStackList
getListSizeSelector: nil
getListElementSelector: nil
getIndexSelector: #contextStackIndex
setIndexSelector: #toggleContextStackIndex:
keystrokeActionSelector: #contextStackKey:from:
autoDeselect: true
lastKeystrokeTime: 0
lastKeystrokes: ''
doubleClickSelector: nil
handlesBasicKeys: nil
potentialDropRow: nil
listMorph: a LazyListMorph(1316)
hScrollRangeCache: nil
PluggableListMorph(Morph)>>processEvent:
Receiver: a PluggableListMorph(1072)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
bounds: 18@31 corner: 608@201
owner: a SystemWindow(3468)
submorphs: an Array(a ScrollBar(3011) a TransformMorph(3775))
fullBounds: nil
color: Color white
extension: a MorphExtension (973) [locked] [other: (layoutFrame -> a LayoutFr...etc...
borderWidth: 1
borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
model: a Debugger
slotName: nil
open: false
scrollBar: a ScrollBar(3011)
scroller: a TransformMorph(3775)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #contextStackMenu:shifted:
getMenuTitleSelector: #messageListSelectorTitle
hasFocus: true
hScrollBar: a ScrollBar(2791)
list: an OrderedCollection('CompiledMethod(Object)>>error:' 'CompiledMethod(Obj...etc...
getListSelector: #contextStackList
getListSizeSelector: nil
getListElementSelector: nil
getIndexSelector: #contextStackIndex
setIndexSelector: #toggleContextStackIndex:
keystrokeActionSelector: #contextStackKey:from:
autoDeselect: true
lastKeystrokeTime: 0
lastKeystrokes: ''
doubleClickSelector: nil
handlesBasicKeys: nil
potentialDropRow: nil
listMorph: a LazyListMorph(1316)
hScrollRangeCache: nil
PluggableListMorph>>handleFocusEvent:
Receiver: a PluggableListMorph(1072)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
bounds: 18@31 corner: 608@201
owner: a SystemWindow(3468)
submorphs: an Array(a ScrollBar(3011) a TransformMorph(3775))
fullBounds: nil
color: Color white
extension: a MorphExtension (973) [locked] [other: (layoutFrame -> a LayoutFr...etc...
borderWidth: 1
borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
model: a Debugger
slotName: nil
open: false
scrollBar: a ScrollBar(3011)
scroller: a TransformMorph(3775)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #contextStackMenu:shifted:
getMenuTitleSelector: #messageListSelectorTitle
hasFocus: true
hScrollBar: a ScrollBar(2791)
list: an OrderedCollection('CompiledMethod(Object)>>error:' 'CompiledMethod(Obj...etc...
getListSelector: #contextStackList
getListSizeSelector: nil
getListElementSelector: nil
getIndexSelector: #contextStackIndex
setIndexSelector: #toggleContextStackIndex:
keystrokeActionSelector: #contextStackKey:from:
autoDeselect: true
lastKeystrokeTime: 0
lastKeystrokes: ''
doubleClickSelector: nil
handlesBasicKeys: nil
potentialDropRow: nil
listMorph: a LazyListMorph(1316)
hScrollRangeCache: nil
[] in HandMorph>>sendFocusEvent:to:clear:
Receiver: a HandMorph(3216)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
bounds: 352@84 corner: 368@100
owner: a PasteUpMorph(1622) [world]
submorphs: #()
fullBounds: 352@84 corner: 368@100
color: Color blue
extension: a MorphExtension (539) [eventHandler = an EventHandler]
mouseFocus: nil
keyboardFocus: a PluggableButtonMorph(1282)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [352@84 mouseUp 109252 nil]
targetOffset: 40@23
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 109252 352 84 0 0 0 1)
lastKeyScanCode: 2
combinedChar: nil
[] in PasteUpMorph>>becomeActiveDuring:
Receiver: a PasteUpMorph(1622) [world]
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
bounds: 0@0 corner: 1102@896
owner: nil
submorphs: an Array(a TaskbarMorph(3095) a SystemProgressMorph(3746) a PreDebug...etc...
fullBounds: nil
color: (Color r: 0.97 g: 0.98 b: 1.0)
extension: a MorphExtension (2543) [eventHandler = an EventHandler] [other: (...etc...
borderWidth: 0
borderColor: (Color r: 0.03 g: 0.02 b: 0.0)
presenter: a Presenter (1246)
model: a MorphicModel(1926)
cursor: 1
padding: 3
backgroundMorph: nil
isPartsBin: nil
autoLineLayout: false
indicateCursor: nil
resizeToFit: nil
wantsMouseOverHalos: nil
worldState: a WorldState
griddingOn: nil
BlockClosure>>on:do:
Receiver: [closure] in PasteUpMorph>>becomeActiveDuring:
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
outerContext: PasteUpMorph>>becomeActiveDuring:
startpc: 111
numArgs: 0
PasteUpMorph>>becomeActiveDuring:
Receiver: a PasteUpMorph(1622) [world]
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
bounds: 0@0 corner: 1102@896
owner: nil
submorphs: an Array(a TaskbarMorph(3095) a SystemProgressMorph(3746) a PreDebug...etc...
fullBounds: nil
color: (Color r: 0.97 g: 0.98 b: 1.0)
extension: a MorphExtension (2543) [eventHandler = an EventHandler] [other: (...etc...
borderWidth: 0
borderColor: (Color r: 0.03 g: 0.02 b: 0.0)
presenter: a Presenter (1246)
model: a MorphicModel(1926)
cursor: 1
padding: 3
backgroundMorph: nil
isPartsBin: nil
autoLineLayout: false
indicateCursor: nil
resizeToFit: nil
wantsMouseOverHalos: nil
worldState: a WorldState
griddingOn: nil
HandMorph>>sendFocusEvent:to:clear:
Receiver: a HandMorph(3216)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
bounds: 352@84 corner: 368@100
owner: a PasteUpMorph(1622) [world]
submorphs: #()
fullBounds: 352@84 corner: 368@100
color: Color blue
extension: a MorphExtension (539) [eventHandler = an EventHandler]
mouseFocus: nil
keyboardFocus: a PluggableButtonMorph(1282)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [352@84 mouseUp 109252 nil]
targetOffset: 40@23
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 109252 352 84 0 0 0 1)
lastKeyScanCode: 2
combinedChar: nil
HandMorph>>sendEvent:focus:clear:
Receiver: a HandMorph(3216)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
bounds: 352@84 corner: 368@100
owner: a PasteUpMorph(1622) [world]
submorphs: #()
fullBounds: 352@84 corner: 368@100
color: Color blue
extension: a MorphExtension (539) [eventHandler = an EventHandler]
mouseFocus: nil
keyboardFocus: a PluggableButtonMorph(1282)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [352@84 mouseUp 109252 nil]
targetOffset: 40@23
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 109252 352 84 0 0 0 1)
lastKeyScanCode: 2
combinedChar: nil
HandMorph>>sendMouseEvent:
Receiver: a HandMorph(3216)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
bounds: 352@84 corner: 368@100
owner: a PasteUpMorph(1622) [world]
submorphs: #()
fullBounds: 352@84 corner: 368@100
color: Color blue
extension: a MorphExtension (539) [eventHandler = an EventHandler]
mouseFocus: nil
keyboardFocus: a PluggableButtonMorph(1282)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [352@84 mouseUp 109252 nil]
targetOffset: 40@23
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 109252 352 84 0 0 0 1)
lastKeyScanCode: 2
combinedChar: nil
HandMorph>>handleEvent:
Receiver: a HandMorph(3216)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
bounds: 352@84 corner: 368@100
owner: a PasteUpMorph(1622) [world]
submorphs: #()
fullBounds: 352@84 corner: 368@100
color: Color blue
extension: a MorphExtension (539) [eventHandler = an EventHandler]
mouseFocus: nil
keyboardFocus: a PluggableButtonMorph(1282)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [352@84 mouseUp 109252 nil]
targetOffset: 40@23
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 109252 352 84 0 0 0 1)
lastKeyScanCode: 2
combinedChar: nil
HandMorph>>processEvents
Receiver: a HandMorph(3216)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
bounds: 352@84 corner: 368@100
owner: a PasteUpMorph(1622) [world]
submorphs: #()
fullBounds: 352@84 corner: 368@100
color: Color blue
extension: a MorphExtension (539) [eventHandler = an EventHandler]
mouseFocus: nil
keyboardFocus: a PluggableButtonMorph(1282)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [352@84 mouseUp 109252 nil]
targetOffset: 40@23
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 109252 352 84 0 0 0 1)
lastKeyScanCode: 2
combinedChar: nil
--- The full stack ---
Array(Object)>>error:
Array(Object)>>errorSubscriptBounds:
Array(Object)>>at:
Decompiler>>pushTemporaryVariable:
Decompiler(InstructionStream)>>interpretNextInstructionFor:
Decompiler>>interpretNextInstructionFor:
Decompiler>>statementsTo:
Decompiler>>blockTo:
Decompiler>>decompile:in:method:using:
Decompiler>>decompile:in:method:
CompiledMethod>>getSourceFor:in:
CompiledMethod>>methodNode
[] in DebuggerMethodMap class>>forMethod:
WeakIdentityKeyDictionary(Dictionary)>>at:ifAbsent:
DebuggerMethodMap class>>forMethod:
CompiledMethod>>debuggerMap
MethodContext(InstructionStream)>>debuggerMap
Debugger>>selectedMessage
Debugger>>contextStackIndex:oldContextWas:
Debugger>>toggleContextStackIndex:
PluggableListMorph>>changeModelSelection:
PluggableListMorph>>mouseUp:
PluggableListMorph(Morph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
PluggableListMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
PluggableListMorph(Morph)>>processEvent:using:
PluggableListMorph(Morph)>>processEvent:
PluggableListMorph>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:clear:
[] in PasteUpMorph>>becomeActiveDuring:
BlockClosure>>on:do:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess
[] in BlockClosure>>newProcess
------------------------------------------------------------
--
===========================================================================
John M. McIntosh <johnmci(a)smalltalkconsulting.com> Twitter: squeaker68882
Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com
===========================================================================
Dec. 6, 2009
[Pharo-project] AST-Core for Pharo and Squeak?
by Hernán Morales Durand
Hi guys,
I've noticed a different behavior relating the RBParseTreeSearcher
between Pharo and Squeak, using AST-Core-lr.33, the following code:
| rbMethodNode |
rbMethodNode := RBParser parseMethod: 'test [ ]'.
( RBParseTreeSearcher new
matches: '`{:node | node isVariable }'
do:[: aNode : answer | answer add: aNode; yourself ] )
executeTree: rbMethodNode initialAnswer: Set new.
gives an empty Set in Pharo-Core (#11072) and a Set(RBSequenceNode())
in Squeak 3.10.2
Does anybody know if I should use a different AST-Core version for
Squeak? An alternative repository maybe?
Hernán
Dec. 6, 2009
[Pharo-project] mouse clicks not registered
by Sean Allen
I installed the latest pharo vm and the 10492-rc1dev09.11.1 image on a
ubuntu 8.
fire up the image and it doesn't respond to mouse clicks.
took a work setup from xubuntu, copied it over, same issue.
this is on a 64 bit machine.
any pointers on what might be the issue?
Dec. 6, 2009
Re: [Pharo-project] [Moose-dev] Re: for mondrian designers
by Alexandre Bergel
Thanks John for diving into it,
Alexandre
On 5 Dec 2009, at 05:52, John M McIntosh wrote:
>
> On 2009-12-04, at 11:54 AM, Alexandre Bergel wrote:
>
>> Thanks John!
>>
>> I did a "RomeDemo drawCar"
>> Here is the log:
>>
>>
>> tryLoading /Users/alexandrebergel/Desktop/T/Smalltalk/Squeak
>> 4.2.1beta1U.app/Contents/Resources/RomePlugin.bundle/Contents/MacOS/
>> RomePlugin
>> ioFindExternalFunctionIn(getModuleName, 2339392)
>> ioFindExternalFunctionIn(setInterpreter, 2339392)
>> ioFindExternalFunctionIn(initialiseModule, 2339392)
>> ioFindExternalFunctionIn(primitivePluginVersion, 2339392)
>> ioFindExternalFunctionIn(primitiveCreateFormHandle, 2339392)
>> tryLoading /Users/alexandrebergel/Desktop/T/Smalltalk/Squeak
>> 4.2.1beta1U.app/Contents/Resources/SurfacePlugin.bundle/Contents/
>> MacOS/SurfacePlugin
>> tryLoading /Users/alexandrebergel/Desktop/T/Smalltalk/Squeak
>> 4.2.1beta1U.app/Contents/Resources/SurfacePlugin
>> tryLoading /Users/alexandrebergel/Desktop/T/Smalltalk/Plugins/
>> SurfacePlugin.bundle/Contents/MacOS/SurfacePlugin
>> tryLoading /Users/alexandrebergel/Desktop/T/Smalltalk/Plugins/
>> SurfacePlugin
>> ioFindExternalFunctionIn(primitiveOpen, 2339392)
>> Squeak-Rome: canvas oop invalid!
>
> It does load the plugin, so it's not a problem finding it, loading
> it and calling primitivePluginVersion which
> checks the rome version then primitiveCreateFormHandle to create a
> form handle, then fails in primitiveOpen
>
> EXPORT(sqInt) primitiveOpen(void) {
> sqInt handleOop;
> sqInt contextIndex;
> sqInt canvasOop;
>
> canvasOop = interpreterProxy->stackValue(0);
> if (interpreterProxy->failed()) {
> return null;
> }
> contextIndex = createContextFor(canvasOop);
> if (!(interpreterProxy->failed())) {
> handleOop = interpreterProxy->integerObjectOf(contextIndex);
> interpreterProxy->storePointerofObjectwithValue(CanvasHandleIndex,
> canvasOop, handleOop);
> }
> if (interpreterProxy->failed()) {
> return null;
> }
> return null;
> }
>
>
> static sqInt createContextFor(sqInt canvasOop) {
> cairo_surface_t* targetSurface;
> sqInt contextIndex;
> sqInt targetOop;
> cairo_t* context;
> sqInt i;
> sqInt targetID;
>
> if ((interpreterProxy->slotSizeOf(canvasOop)) < CanvasInstSize) {
> fail("canvas oop invalid");
> return null;
> }
>
> where
>
> #define CanvasInstSize 13
>
> You should check to see what primitiveOpen gets passed
>
>
> --
> =
> =
> =
> =
> =
> ======================================================================
> John M. McIntosh <johnmci(a)smalltalkconsulting.com> Twitter:
> squeaker68882
> Corporate Smalltalk Consulting Ltd. http://
> www.smalltalkconsulting.com
> =
> =
> =
> =
> =
> ======================================================================
>
>
>
>
>
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Dec. 6, 2009
Re: [Pharo-project] about sluggines on linux
by John M McIntosh
On 2009-12-05, at 3:32 PM, Arturo Zambrano wrote:
> '215851602 bytecodes/sec; 6194336 sends/sec'
>
> Machine: Linux donner2 2.6.28-tuxonice-r10 #8 SMP Sun Nov 8 09:50:51 ART 2009 x86_64 AMD Turion(tm) 64 X2 TL-60 AuthenticAMD GNU/Linux. 2GHz
>
That speed is 1/2 of my 2.33Ghz intel core 2 Duo
'533333333 bytecodes/sec; 12157397 sends/sec'
>
> Try doing
> Transcript cr;show:
> [Display fillWhite. 1 to: 4 do: [:i | Pen new color: i; turn: 90*i; dragon: 14] ] timeToRun.
> Display restore.
>
> report back how big the number is printed to the transcript
>
> 1897
This number is fine
--
===========================================================================
John M. McIntosh <johnmci(a)smalltalkconsulting.com> Twitter: squeaker68882
Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com
===========================================================================
Dec. 6, 2009
[Pharo-project] Doodle for Christmas Smalltalk Parties
by Mariano Martinez Peck
Ok, here I created the event: http://www.doodle.com/mn4e6anmskwpd5s7
I put from 18 of December until 4 of January, as Stef suggested.
Now, you can subscribe yourself and put the days you can. Then, depending of
the people subscribed for each day, we decide which days to do it.
Best,
Mariano
Dec. 5, 2009
[Pharo-project] [update 1.1] #11072
by Stéphane Ducasse
11072
-----
- Issue 1437: Bitmap #decompress:fromByteArray:at: not wellformed
- Issue 1252: Transparency Artifact
- Issue 1363: should use selectorsDo: instead of selectors do:
Dec. 5, 2009
Re: [Pharo-project] StandardWindow Layout Help
by Stéphane Ducasse
hi rob
in the latest 1.1 you can have a look at SettingBrowser has an example.
in botsinc book image there is the code of a minibrowser you can also take as example.
open
| window |
Cursor wait
showWhile: [window := StandardWindow new model: self.
window title: self windowTitle.
self buildWindowIn: window.
window themeChanged.
window openInWorld.
^ window]
buildWindowIn: aWindow
| statusView toolBar treeMorph toolBarY gap localGap menuBar menuBarY |
treeMorph := self treeMorphIn: aWindow.
statusView := self statusViewIn: aWindow.
toolBar := self toolBarIn: aWindow.
menuBar := self menuBarIn: aWindow.
menuBar submorphs ifEmpty: [menuBarY := 0]
ifNotEmpty: [menuBarY := menuBar minExtent y.
aWindow
addMorph: menuBar
fullFrame: (LayoutFrame
fractions: (0 @ 0 corner: 1 @ 0)
offsets: (0 @ 0 corner: 0 @ menuBarY))].
localGap := 5.
gap := localGap + menuBarY.
toolBarY := toolBar minExtent y + gap.
aWindow
addMorph: toolBar
fullFrame: (LayoutFrame
fractions: (0 @ 0 corner: 1 @ 0)
offsets: (0 @ (gap ) corner: 0 @ (toolBarY + localGap))).
aWindow
addMorph: treeMorph
fullFrame: (LayoutFrame
fractions: (0 @ 0 corner: 1 @ 0.99)
offsets: (0 @ (toolBarY + localGap + localGap) corner: 0 @ 100 negated)).
aWindow
addMorph: statusView
fullFrame: (LayoutFrame
fractions: (0 @ 0.99 corner: 1 @ 1)
offsets: (0 @ 100 negated corner: 0 @ 0)).
^ aWindow
On Dec 5, 2009, at 10:45 PM, Rob Rothwell wrote:
> I just can't seem to figure this out from the UITheme examples.
>
> Can anyone give me some general pointers on building a plain old Window? I know there isn't a UI builder, but how do you control the placement of the child controls you create in the window?
>
> For example, the following will create a StandardWindow and add a button to it (in the upper left corner). Do you control placement [of the button] with LayoutFrame? How do you use LayoutFrame?
>
> | win btnOk |
>
> win := StandardWindow new.
> btnOk := win newButtonFor: nil action: #ok getEnabled: nil label: 'Ok' help: nil.
> win addMorph: btnOk .
> win themeChanged; openInWorld.
>
> Thank you. I am finally trying to understand how to build some typical applications without a GUI builder...
>
> Take care,
>
> Rob
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Dec. 5, 2009