'From Cuis 1.0 of 4 September 2009 [latest update: #290] on 18 September 2009 at 12:13:22 pm'!
!classDefinition: #PluggableListMorph category: #'Morphic-Windows'!
ScrollPane subclass: #PluggableListMorph
	instanceVariableNames: 'list getListSelector getListSizeSelector getListElementSelector getIndexSelector setIndexSelector keystrokeActionSelector autoDeselect lastKeystrokeTime lastKeystrokes doubleClickSelector handlesBasicKeys potentialDropRow listMorph '
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Morphic-Windows'!

!Browser methodsFor: 'initialize-release' stamp: 'jmv 9/18/2009 00:44'!
buildMorphicClassList
	| myClassList |
	(myClassList := PluggableListMorph new)
		model: self
		listGetter: #classList
		indexGetter: #classListIndex
		indexSetter: #classListIndex:
		menuGetter: #classListMenu:shifted:
		keystrokeAction: #classListKey:from:.
	myClassList borderWidth: 0.
	myClassList enableDragNDrop: false.
	myClassList doubleClickSelector: #browseSelectionInPlace.
	^myClassList! !

!Browser methodsFor: 'initialize-release' stamp: 'jmv 9/18/2009 00:45'!
buildMorphicMessageCatList
	| myMessageCatList |
	(myMessageCatList := PluggableMessageCategoryListMorph new)
		model: self
		listGetter: #messageCategoryList
		indexGetter: #messageCategoryListIndex
		indexSetter: #messageCategoryListIndex:
		menuGetter: #messageCategoryMenu:
		keystrokeAction: #arrowKey:from:
		rawListGetter: #rawMessageCategoryList.
	myMessageCatList enableDragNDrop: false.
	^myMessageCatList! !

!Browser methodsFor: 'initialize-release' stamp: 'jmv 9/18/2009 00:45'!
buildMorphicMessageList
	"Build a morphic message list, with #messageList as its list-getter"

	| aListMorph |
	(aListMorph := PluggableListMorph new)
		model: self
		listGetter: #messageList
		indexGetter: #messageListIndex
		indexSetter: #messageListIndex:
		menuGetter: #messageListMenu:shifted:
		keystrokeAction: #messageListKey:from:.
	aListMorph enableDragNDrop: false.
	aListMorph menuTitleSelector: #messageListSelectorTitle.
	^aListMorph! !

!Browser methodsFor: 'initialize-release' stamp: 'jmv 9/18/2009 00:45'!
buildMorphicSystemCatList
	| dragNDropFlag myCatList |
	dragNDropFlag := false.
	(myCatList := PluggableListMorph new)
		model: self
		listGetter: #systemCategoryList
		indexGetter: #systemCategoryListIndex
		indexSetter: #systemCategoryListIndex:
		menuGetter: #systemCategoryMenu:
		keystrokeAction: #systemCatListKey:from:.
	myCatList enableDragNDrop: dragNDropFlag.
	^myCatList! !


!MessageSet methodsFor: 'private' stamp: 'jmv 9/18/2009 00:48'!
buildMorphicMessageList
	"Build my message-list object in morphic"

	| aListMorph |
	aListMorph := PluggableListMorph new.
	aListMorph 
		model: self
		listGetter: #messageList
		indexGetter: #messageListIndex
		indexSetter: #messageListIndex:
		menuGetter: #messageListMenu:shifted:
		keystrokeAction: #messageListKey:from:.
	aListMorph enableDragNDrop: false.
	aListMorph menuTitleSelector: #messageListSelectorTitle.
	^aListMorph! !


!PluggableListMorph methodsFor: 'initialization' stamp: 'jmv 9/18/2009 00:51'!
textColor
	"Answer my default text color."
	^Color black! !

!PluggableListMorph methodsFor: 'model access' stamp: 'jmv 9/18/2009 00:56'!
getListItem: index
	"get the index-th item in the displayed list"
	list ifNotNil: [ ^list at: index ].
	^self getList at: index! !

SimpleHierarchicalListMorph removeSelector: #mouseEnterDragging:onItem:!
SimpleHierarchicalListMorph removeSelector: #removeObsoleteEventHandlers!
PluggableListMorph removeSelector: #getListElementSelector:!
PluggableListMorph removeSelector: #highlightSelector!
PluggableListMorph removeSelector: #mouseEnterDragging:onItem:!
PluggableListMorph removeSelector: #mouseUp:onItem:!
PluggableListMorph removeSelector: #removeObsoleteEventHandlers!
PluggableListMorph removeSelector: #setGetListSelector:!
PluggableListMorph removeSelector: #textColor:!
PluggableListMorph removeSelector: #textHighlightColor!
PluggableListMorph removeSelector: #textHighlightColor:!
!classDefinition: #PluggableListMorph category: #'Morphic-Windows'!
ScrollPane subclass: #PluggableListMorph
	instanceVariableNames: 'list getListSelector getListSizeSelector getIndexSelector setIndexSelector keystrokeActionSelector autoDeselect lastKeystrokeTime lastKeystrokes doubleClickSelector handlesBasicKeys potentialDropRow listMorph'
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Morphic-Windows'!
Morph removeSelector: #actWhen!
Morph removeSelector: #actWhen:!
Browser removeSelector: #highlightClassList:with:!
Browser removeSelector: #highlightMessageCategoryList:with:!
Browser removeSelector: #highlightMessageList:with:!
Browser removeSelector: #highlightSystemCategoryList:with:!
