The Trunk: ToolBuilder-Kernel-mt.134.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: ToolBuilder-Kernel-mt.134.mcz

commits-2
Marcel Taeumel uploaded a new version of ToolBuilder-Kernel to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Kernel-mt.134.mcz

==================== Summary ====================

Name: ToolBuilder-Kernel-mt.134
Author: mt
Time: 23 October 2019, 1:40:47.348795 pm
UUID: 66bc16c6-9595-4c55-a506-a374d1f642a4
Ancestors: ToolBuilder-Kernel-ct.133

Support the functional layout properties for LazyListMorph in tool-builder specs. Chose "alignment" instead of "positioning" because specs are not Morphic-specific. The terms "item" and "column" reflect item- or column-specifc settings, which can be confusing because our current lists do only support uniform (item) rows.

=============== Diff against ToolBuilder-Kernel-ct.133 ===============

Item was changed:
  PluggableWidgetSpec subclass: #PluggableListSpec
+ instanceVariableNames: 'list getIndex setIndex getSelected setSelected menu keyPress autoDeselect dragItem dropItem dropAccept doubleClick listSize listItem keystrokePreview icon vScrollBarPolicy hScrollBarPolicy dragStarted helpItem filterableList clearFilterAutomatically itemAlignment itemPadding'
- instanceVariableNames: 'list getIndex setIndex getSelected setSelected menu keyPress autoDeselect dragItem dropItem dropAccept doubleClick listSize listItem keystrokePreview icon vScrollBarPolicy hScrollBarPolicy dragStarted helpItem filterableList clearFilterAutomatically'
  classVariableNames: ''
  poolDictionaries: ''
  category: 'ToolBuilder-Kernel'!
 
  !PluggableListSpec commentStamp: 'ar 7/15/2005 11:54' prior: 0!
  A single selection list element.
 
  Instance variables:
  list <Symbol> The selector to retrieve the list elements.
  getIndex <Symbol> The selector to retrieve the list selection index.
  setIndex <Symbol> The selector to set the list selection index.
  getSelected <Symbol> The selector to retrieve the list selection.
  setSelected <Symbol> The selector to set the list selection.
  menu <Symbol> The selector to offer (to retrieve?) the context menu.
  keyPress <Symbol> The selector to invoke for handling keyboard shortcuts.
  autoDeselect <Boolean> Whether the list should allow automatic deselection or not.
  dragItem <Symbol> Selector to initiate a drag action on an item
  dropItem <Symbol> Selector to initiate a drop action of an item
  dropAccept <Symbol> Selector to determine whether a drop would be accepted!

Item was added:
+ ----- Method: PluggableListSpec>>itemAlignment (in category 'accessing') -----
+ itemAlignment
+ "Define the alignment of each list item in its layout cell. The value can encode both horizontal and vertical dimensions."
+
+ ^ itemAlignment!

Item was added:
+ ----- Method: PluggableListSpec>>itemAlignment: (in category 'accessing') -----
+ itemAlignment: aSymbol
+ "For convenience, map #left and #right to their correct values. At least for Morphic."
+
+ aSymbol == #left ifTrue: [^ itemAlignment := #leftCenter].
+ aSymbol == #right ifTrue: [^ itemAlignment := #rightCenter].
+
+ itemAlignment := aSymbol.!

Item was added:
+ ----- Method: PluggableListSpec>>itemPadding (in category 'accessing') -----
+ itemPadding
+
+ ^ itemPadding!

Item was added:
+ ----- Method: PluggableListSpec>>itemPadding: (in category 'accessing') -----
+ itemPadding: numberOrPointOrRectangle
+
+ itemPadding := numberOrPointOrRectangle.!

Item was changed:
  PluggableListSpec subclass: #PluggableMultiColumnListSpec
+ instanceVariableNames: 'itemAlignments itemPaddings columnResizings columnSpaceFillWeights'
- instanceVariableNames: ''
  classVariableNames: ''
  poolDictionaries: ''
  category: 'ToolBuilder-Kernel'!

Item was added:
+ ----- Method: PluggableMultiColumnListSpec>>columnResizings (in category 'accessing') -----
+ columnResizings
+ "For each column, define the horizontal resizing (or #hResizing) behavior. Choose from #rigid, #shrinkWrap, and #spaceFill."
+
+ ^ columnResizings ifNil: [#(spaceFill)]!

Item was added:
+ ----- Method: PluggableMultiColumnListSpec>>columnResizings: (in category 'accessing') -----
+ columnResizings: someSymbols
+
+ columnResizings := someSymbols.!

Item was added:
+ ----- Method: PluggableMultiColumnListSpec>>columnSpaceFillWeights (in category 'accessing') -----
+ columnSpaceFillWeights
+ "For each column, define the relative space-fill weight, which will be used if the resizing strategy is set to #spaceFill."
+
+ ^ columnSpaceFillWeights ifNil: [#(1)]!

Item was added:
+ ----- Method: PluggableMultiColumnListSpec>>columnSpaceFillWeights: (in category 'accessing') -----
+ columnSpaceFillWeights: someNumbers
+
+ columnSpaceFillWeights := someNumbers.!

Item was added:
+ ----- Method: PluggableMultiColumnListSpec>>itemAlignments (in category 'accessing') -----
+ itemAlignments
+ "For each column, define the alignment of each list item in its layout cell. The value can encode both horizontal and vertical dimensions."
+
+ ^ itemAlignments ifNil: [self itemAlignment ifNil: [#()] ifNotNil: [:alignment | {alignment}]]!

Item was added:
+ ----- Method: PluggableMultiColumnListSpec>>itemAlignments: (in category 'accessing') -----
+ itemAlignments: someSymbols
+ "For convenience, map #left and #right to their correct values. At least for Morphic."
+
+ itemAlignments := someSymbols collect: [:alignment |
+ alignment == #left ifTrue: [#leftCenter] ifFalse: [
+ alignment == #right ifTrue: [#rightCenter] ifFalse: [
+ alignment]]].!

Item was added:
+ ----- Method: PluggableMultiColumnListSpec>>itemPaddings (in category 'accessing') -----
+ itemPaddings
+
+ ^ itemPaddings ifNil: [self itemPadding ifNil: [#()] ifNotNil: [:padding | {padding}]]!

Item was added:
+ ----- Method: PluggableMultiColumnListSpec>>itemPaddings: (in category 'accessing') -----
+ itemPaddings: someNumbersOrPointsOrRectangles
+
+ itemPaddings := someNumbersOrPointsOrRectangles.!