Delegate get/setFirstVisibleScreenColumn from the model to the component

This commit is contained in:
Nathan Sobo
2017-04-18 16:49:22 -06:00
committed by Antonio Scandurra
parent 4f52637518
commit eb7cdf2a34
3 changed files with 26 additions and 2 deletions

View File

@@ -2511,6 +2511,19 @@ describe('TextEditorComponent', () => {
editor.setFirstVisibleScreenRow(11)
expect(component.getFirstVisibleRow()).toBe(9)
})
it('delegates setFirstVisibleScreenColumn and getFirstVisibleScreenColumn to the component', async () => {
const {component, element, editor} = buildComponent({rowsPerTile: 3, autoHeight: false})
element.style.width = 30 * component.getBaseCharacterWidth() + 'px'
await component.getNextUpdatePromise()
expect(editor.getFirstVisibleScreenColumn()).toBe(0)
component.setScrollLeft(5.5 * component.getBaseCharacterWidth())
expect(editor.getFirstVisibleScreenColumn()).toBe(5)
editor.setFirstVisibleScreenColumn(12)
expect(component.getScrollLeft()).toBe(Math.round(12 * component.getBaseCharacterWidth()))
})
})
})

View File

@@ -2325,6 +2325,14 @@ class TextEditorComponent {
)
}
getFirstVisibleColumn () {
return Math.floor(this.getScrollLeft() / this.getBaseCharacterWidth())
}
setFirstVisibleColumn (column) {
this.setScrollLeft(column * this.getBaseCharacterWidth())
}
getVisibleTileCount () {
return Math.floor((this.getLastVisibleRow() - this.getFirstVisibleRow()) / this.getRowsPerTile()) + 2
}

View File

@@ -3681,8 +3681,11 @@ class TextEditor extends Model
getVisibleRowRange: ->
[@getFirstVisibleScreenRow(), @getLastVisibleScreenRow()]
setFirstVisibleScreenColumn: (@firstVisibleScreenColumn) ->
getFirstVisibleScreenColumn: -> @firstVisibleScreenColumn
setFirstVisibleScreenColumn: (column) ->
@getElement().component.setFirstVisibleColumn(column)
getFirstVisibleScreenColumn: ->
@getElement().component.getFirstVisibleColumn()
getScrollTop: ->
Grim.deprecate("This is now a view method. Call TextEditorElement::getScrollTop instead.")