> On 20 Oct 2015, at 18:47, Ferlicot D. Cyril <[email protected]> wrote:
> 
> Le 20/10/2015 18:42, stepharo a écrit :
>> for the mooc videos I must use larger fonts.
>> So I ended up hacking and changing the hardcoded number in default
>> 
>> defaultRowHeight
>>    ^ 24
>> 
>> rowHeight
>>    "This is the row height your rows will have. Cells answered in
>> dataSource will be forced to have
>>     this height number... We force it instead allowing lists to have
>> any height because the logic to
>>     calculate rows becomes complicated. Possible, but complicated :)"
>> 
>>    ^ rowHeight ifNil: [ self class defaultRowHeight ]
>> 
>> 
>> Esteban two questions:
>> 
>> - when I read the code of FTmorph I was thinking that a lot of it has
>> not much to do with UI but looks like a model :).
>> 
>> - if I were about to manage the height of a row based on its actual
>> contents where should I put it.
>> FTTableContainerMorph is containing what is visible but I wonder why it
>> was asking this to the FastTable and to the elements displayed?
>> 
>> Why the ContainerMorph does not ask the FTTableRowMorph for its height
>> and it could be computed based on the font.
>> I still did not get where the strings built.
>> 
>> 
>> may be here
>> 
>> updateExposedRows
>> 
>>    ...
>> 
>>    | cell |
>>            cell := (self owner dataSource
>>                cellColumn: (columns at: columnIndex)
>>                row: rowIndex).
>>            cell width: (columnWidths at: columnIndex).
>> 
>> We should add more comments to methods.
>> 
>> 
>> Stef
>> 
>> 
>> 
>> drawOn: canvas
>>    | x y cellWidth cellHeight rowsToDisplay rowSubviews
>> highligtedRowIndexes primarySelectionIndex |
>> 
>>    self bounds ifNil: [ ^ self ]. "Nothing to show yet"
>>    self owner ifNil: [ ^ self ].
>> 
>>    x := self left + self class rowLeftMargin.
>>    y := self top.
>>    cellWidth := self width - self class rowLeftMargin.
>>    cellHeight := self owner rowHeight.
>>                    ^^^^^^^^^^^^^^^^^^^^^^^
>> 
>>    highligtedRowIndexes :=
>>        self owner selectedRowIndexes,
>>        self owner highlightedRowIndexes.
>>    primarySelectionIndex := self owner selectedRowIndex.
>> 
>>    "For some superweird reason, calling #calculateExposedRows here
>> instead in #changed (where
>>     it should be called) is 10x faster. Since the whole purpose of this
>> component is speed, for
>>     now I'm calling it here and adding the #setNeedRecalculateRows
>> mechanism.
>>     History, please forgive me."
>>    self updateAllRows.
>> 
>>    rowsToDisplay := self exposedRows.
>>    rowSubviews := OrderedCollection new: rowsToDisplay size + 1.
>>    headerRow ifNotNil: [
>>        headerRow bounds: (x@y extent: cellWidth@cellHeight).
>>        y := y + cellHeight + self owner intercellSpacing.
>>        rowSubviews add: headerRow ].
>> 
>>    rowsToDisplay keysAndValuesDo: [ :rowIndex :row | | visibleHeight |
>>        visibleHeight := cellHeight min: (self bottom - y).
>>        row bounds: (x@y extent: cellWidth@visibleHeight).
>>        y := y + visibleHeight + self owner intercellSpacing.
>>        rowSubviews add: ((highligtedRowIndexes includes: rowIndex)
>>            ifTrue: [
>>                "IMPORTANT: I need to set owner to nil because otherwise
>> it will trigger an
>>                 invalidation of the owner when adding morph to
>> selectionMorph, causing an
>>                 infinite loop"
>>                self
>>                    toSelectionRow: (row privateOwner: nil)
>>                    primary: primarySelectionIndex = rowIndex ]
>>            ifFalse: [ row ]) ].
>> 
>>    submorphs := rowSubviews asArray.
>>    super drawOn: canvas.
>>    needsRefreshExposedRows := false
>> 
> If you load the development version of FT it will be fine normally :)
> Maybe not perfect for now but usable with large fonts. (You have to
> close and reopen the existing FT if you change font size because the
> change is hard coded and not announce).
> 
> I adapted also the FTFastTableComposer so that it manage the font size.

I thought we were removing FTFastTableComposer, as is not such a great idea.

Esteban


> 
> -- 
> Cyril Ferlicot
> 
> http://www.synectique.eu
> 
> 165 Avenue Bretagne
> Lille 59000 France
> 


Reply via email to