ToolBuilder-Morphic

MorphicToolBuilder
The Morphic tool builder.
add:to:
asFrame:
buildPluggableActionButton:
buildPluggableButton:
buildPluggableInputField:
buildPluggableList:
buildPluggableMenu:
buildPluggableMenuItem:
buildPluggableMultiSelectionList:
buildPluggablePanel:
buildPluggableText:
buildPluggableTree:
buildPluggableWindow:
close:
Close a previously opened widget
isActiveBuilder
open:
Build and open the object. Answer the widget opened.
open:label:
Build an open the object, labeling it appropriately. Answer the widget opened.
register:id:
runModal:
Run the (previously opened) widget modally, e.g.,
do not return control to the sender before the user has responded.
setFrame:in:
Updated to recognize real layout frames for flexibility.
setLayout:in:
widgetAt:ifAbsent:
Answer the widget with the given ID
MorphicUIManager
The Morphic ui manager.
chooseDirectory:from:
Let the user choose a directory
chooseFileMatching:label:
Let the user choose a file matching the given patterns
chooseFrom:lines:title:
Choose an item from the given list. Answer the index of the selected item.
chooseFrom:values:lines:title:
Choose an item from the given list. Answer the selected item.
composeFormFor:
confirm:
Put up a yes/no menu with caption queryString. Answer true if the
response is yes, false if no. This is a modal question--the user must
respond yes or no.
confirm:orCancel:
Put up a yes/no/cancel menu with caption aString. Answer true if
the response is yes, false if no. If cancel is chosen, evaluate
cancelBlock. This is a modal question--the user must respond yes or no.
displayProgress:at:from:to:during:
Display titleString as a caption over a progress bar while workBlock is evaluated.
edit:label:accept:
Open an editor on the given string/text
fontFromUser:
grafPort
inform:
Display a message for the user to read and then dismiss
informUserDuring:
Display a message above (or below if insufficient room) the cursor
during execution of the given block.
UIManager default informUserDuring:[:bar|
#('one' 'two' 'three') do:[:info|
bar value: info.
(Delay forSeconds: 1) wait]]
interactiveParser
Answer the value of interactiveParser
interactiveParser:
Set the value of interactiveParser
interactiveParserFor:
during Morphic loading the interactive parser must be disabled
isActiveManager
multiLineRequest:centerAt:initialAnswer:answerHeight:
Create a multi-line instance of me whose question is queryString with
the given initial answer. Invoke it centered at the given point, and
answer the string the user accepts. Answer nil if the user cancels. An
empty string returned means that the ussr cleared the editing area and
then hit 'accept'. Because multiple lines are invited, we ask that the user
use the ENTER key, or (in morphic anyway) hit the 'accept' button, to
submit; that way, the return key can be typed to move to the next line.
onDebug:context:title:full:
onEventSensorStartup:
onPrimitiveError:
onSnapshot
request:initialAnswer:
Create an instance of me whose question is queryString with the given
initial answer. Invoke it centered at the given point, and answer the
string the user accepts. Answer the empty string if the user cancels.
requestPassword:
Create an instance of me whose question is queryString. Invoke it centered
at the cursor, and answer the string the user accepts. Answer the empty
string if the user cancels.
PluggableButtonMorphPlus
An extended version of PluggableButtonMorph supporting enablement, color and block/message actions.
action
Answer the action selector.
action:
Set actionSelector to be the action defined by aSymbol.
beActionButton
Make me like an action button
disable
Disable the button.
drawSubmorphsOn:
Display submorphs back to front.
Whiten the whole thing if disabled.
enable
Enable the button.
enabled
Answer whether the receiver is enabled.
enabled:
Set the enabled state of the receiver.
getColorSelector
getColorSelector:
getEnabledSelector
getEnabledSelector:
initialize
initialize the receiver.
mouseDown:
Details: If this button is triggered on mouse down or the event is the menu gesture, handle it immediately. Otherwise, make a list of buttons (including the receiver) for mouseMove feedback. This allows a simple radio-button effect among the button submorphs of a given morph.
mouseMove:
Need to allow feedback for other buttons in the group.
mouseUp:
Must update all buttons even when disabled.
onColor:offColor:
Set the fill colors to be used when this button is on/off.
performAction
Inform the model that this button has been pressed. Sent by the controller when this button is pressed. If the button's actionSelector takes any arguments, they are obtained dynamically by sending the argumentSelector to the argumentsProvider
update:
Update the receiver with any changes in the model.
PluggableListMorphByItemPlus
Main comment stating the purpose of this class and relevant relationship to other classes.
Possible useful expressions for doIt or printIt.
Structure:
instVar1 type -- comment about the purpose of instVar1
instVar2 type -- comment about the purpose of instVar2
Any further useful comments about the general approach of this implementation.
changeModelSelection:
Change the model's selected item to be the one at the given index.
getCurrentSelectionIndex
Answer the index of the current selection.
getList
cache the raw items in itemList
PluggableListMorphPlus
Extensions for PluggableListMorph needed by ToolBuilder
acceptDroppingMorph:event:
This message is sent when a morph is dropped onto a morph that has
agreed to accept the dropped morph by responding 'true' to the
wantsDroppedMorph:Event: message. The default implementation just
adds the given morph to the receiver.
dragItemSelector
dragItemSelector:
dropItemSelector
dropItemSelector:
startDrag:
Handle a double-click event. This message is only sent to clients that request it by sending #waitForClicksOrDrag:event: to the initiating hand in their mouseDown: method. This default implementation does nothing.
wantsDropSelector
wantsDropSelector:
wantsDroppedMorph:event:
Return true if the receiver wishes to accept the given morph, which is being dropped by a hand in response to the given event. Note that for a successful drop operation both parties need to agree. The symmetric check is done automatically via aMorph wantsToBeDroppedInto: self.
PluggablePanelMorph
A pluggable panel morph which deals with changing children.
getChildrenSelector
getChildrenSelector:
model
model:
update:
Receive a change notice from an object of whom the receiver is a
dependent. The default behavior is to do nothing; a subclass might want
to change itself in some way.
PluggableSystemWindow
A pluggable system window. Fixes the issues with label retrieval and adds support for changing children.
addPaneMorph:
closeWindowSelector
closeWindowSelector:
delete
Should activate window before asking model if okToChange
since likely that a confirmation dialog will be requested.
Don't if not owned by the world though.
getChildrenSelector
getChildrenSelector:
getLabelSelector
getLabelSelector:
label
label:
update:
Receive a change notice from an object of whom the receiver is a
dependent. The default behavior is to do nothing; a subclass might want
to change itself in some way.
PluggableTextMorphPlus
A pluggable text morph with support for color.
accept
Inform the model of text to be accepted, and return true if OK.
acceptAction
acceptAction:
getColorSelector
getColorSelector:
update:
Receive a change notice from an object of whom the receiver is a
dependent. The default behavior is to do nothing; a subclass might want
to change itself in some way.
PluggableTreeItemNode
Tree item for PluggableTreeMorph.
acceptDroppingObject:
asString
Answer a string that represents the receiver.
balloonText
canBeDragged
contents
hasContents
icon
Answer a form to be used as icon
item
Answer the item. It is useful!
wantsDroppedObject:
PluggableTreeMorph
A pluggable tree morph.
balloonTextForNode:
contentsOfNode:
dropItemSelector
dropItemSelector:
dropNode:on:
getChildrenSelector
getChildrenSelector:
getHelpSelector
getHelpSelector:
getIconSelector
getIconSelector:
getLabelSelector
getLabelSelector:
getMenuSelector
getMenuSelector:
Set the menu selector.
getRootsSelector
getRootsSelector:
getSelectedPathSelector
getSelectedPathSelector:
hasChildrenSelector
hasChildrenSelector:
hasNodeContents:
iconOfNode:
isDraggableNode:
keystrokeActionSelector
keystrokeActionSelector:
printNode:
roots
Answer the receiver's roots
roots:
selectPath:in:
setSelectedMorph:
setSelectedSelector
setSelectedSelector:
update:
Receive a change notice from an object of whom the receiver is a
dependent. The default behavior is to do nothing; a subclass might want
to change itself in some way.
wantsDropSelector
wantsDropSelector:
wantsDroppedNode:on: