Refactor scrollbar into its own file (#1124)

* Move scrollbar to its own file
* Don't call `Scrollbar` functions if `View` is not scrollable
* Allow horizontal scrolling in `Scrollbar`
* Add horizontal scrollbar to `View`
* Add `root:horizontal-scroll` command with `shift+wheel` keymap
* Prioritize vertical scrollbar hover
* Don't send mouse movement to vertical scrollbar when dragging horizontal one
* Fix clicking on horizontal scrollbar track
* Implement `start` scrollbar alignment
* Add documentation to `Scrollbar`
* Make `DocView` infinitely scrollable horizontally
* Handle horizontal scroll SDL event
This commit is contained in:
Guldoman
2022-10-15 20:12:15 -04:00
committed by GitHub
parent 5c2c95765e
commit 6b754eb628
11 changed files with 442 additions and 134 deletions
+5 -1
View File
@@ -113,6 +113,10 @@ function DocView:get_scrollable_size()
return self:get_line_height() * (#self.doc.lines - 1) + self.size.y
end
function DocView:get_h_scrollable_size()
return math.huge
end
function DocView:get_font()
return style[self.font]
@@ -241,7 +245,7 @@ end
function DocView:on_mouse_moved(x, y, ...)
DocView.super.on_mouse_moved(self, x, y, ...)
if self.hovered_scrollbar_track or self.dragging_scrollbar then
if self:scrollbar_hovering() or self:scrollbar_dragging() then
self.cursor = "arrow"
else
self.cursor = "ibeam"