about summary refs log tree commit diff stats
path: root/text.lua
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2022-05-28 22:45:53 -0700
committerKartik K. Agaram <vc@akkartik.com>2022-05-28 22:45:53 -0700
commitd58aabe86790584d8445698059aeeddba27674f8 (patch)
treeb7f6056f91de3eb53f1593fdec4712392cb36deb /text.lua
parent86532eef4b8a7f13539c4f0d3cbe34394c456cdb (diff)
downloadview.love-d58aabe86790584d8445698059aeeddba27674f8.tar.gz
extract a couple more methods
Diffstat (limited to 'text.lua')
-rw-r--r--text.lua60
1 files changed, 34 insertions, 26 deletions
diff --git a/text.lua b/text.lua
index 0097fc5..3d6ba33 100644
--- a/text.lua
+++ b/text.lua
@@ -993,36 +993,44 @@ function Text.keychord_pressed(chord)
   elseif chord == 'down' then
     Text.down()
   elseif chord == 'pageup' then
-    -- duplicate some logic from love.draw
-    local top2 = Text.to2(Screen_top1)
---?     print(App.screen.height)
-    local y = App.screen.height - math.floor(15*Zoom)
-    while y >= 15 do
---?       print(y, top2.line)
-      if Screen_top1.line == 1 and Screen_top1.pos == 1 then break end
-      if Lines[Screen_top1.line].mode == 'text' then
-        y = y - math.floor(15*Zoom)
-      elseif Lines[Screen_top1.line].mode == 'drawing' then
-        y = y - 20 - Drawing.pixels(Lines[Screen_top1.line].h)
-      end
-      top2 = Text.previous_screen_line(top2)
-    end
-    Screen_top1 = Text.to1(top2)
-    Cursor1.line = Screen_top1.line
-    Cursor1.pos = Screen_top1.pos
-    Text.move_cursor_down_to_next_text_line_while_scrolling_again_if_necessary()
---?     print(Cursor1.line, Cursor1.pos, Screen_top1.line, Screen_top1.pos)
+    Text.pageup()
   elseif chord == 'pagedown' then
-    Screen_top1.line = Screen_bottom1.line
-    Screen_top1.pos = Screen_bottom1.pos
---?     print('setting top to', Screen_top1.line, Screen_top1.pos)
-    Cursor1.line = Screen_top1.line
-    Cursor1.pos = Screen_top1.pos
-    Text.move_cursor_down_to_next_text_line_while_scrolling_again_if_necessary()
---?     print('top now', Screen_top1.line)
+    Text.pagedown()
   end
 end
 
+function Text.pageup()
+  -- duplicate some logic from love.draw
+  local top2 = Text.to2(Screen_top1)
+--?   print(App.screen.height)
+  local y = App.screen.height - math.floor(15*Zoom)
+  while y >= 15 do
+--?     print(y, top2.line)
+    if Screen_top1.line == 1 and Screen_top1.pos == 1 then break end
+    if Lines[Screen_top1.line].mode == 'text' then
+      y = y - math.floor(15*Zoom)
+    elseif Lines[Screen_top1.line].mode == 'drawing' then
+      y = y - 20 - Drawing.pixels(Lines[Screen_top1.line].h)
+    end
+    top2 = Text.previous_screen_line(top2)
+  end
+  Screen_top1 = Text.to1(top2)
+  Cursor1.line = Screen_top1.line
+  Cursor1.pos = Screen_top1.pos
+  Text.move_cursor_down_to_next_text_line_while_scrolling_again_if_necessary()
+--?   print(Cursor1.line, Cursor1.pos, Screen_top1.line, Screen_top1.pos)
+end
+
+function Text.pagedown()
+  Screen_top1.line = Screen_bottom1.line
+  Screen_top1.pos = Screen_bottom1.pos
+--?   print('setting top to', Screen_top1.line, Screen_top1.pos)
+  Cursor1.line = Screen_top1.line
+  Cursor1.pos = Screen_top1.pos
+  Text.move_cursor_down_to_next_text_line_while_scrolling_again_if_necessary()
+--?   print('top now', Screen_top1.line)
+end
+
 function Text.up()
   assert(Lines[Cursor1.line].mode == 'text')
 --?   print('up', Cursor1.pos, Screen_top1.pos)