about summary refs log tree commit diff stats
path: root/main.lua
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2022-06-04 20:06:37 -0700
committerKartik K. Agaram <vc@akkartik.com>2022-06-04 20:10:56 -0700
commit9ee5d1c9133c45c738ec3ef86001582bbe4a32d0 (patch)
tree9e65dde2f5bffc350bd6e8194deaf94e75f2fb3a /main.lua
parent557b91a5def93ba81c51558c3397c0e056fafadd (diff)
downloadtext.love-9ee5d1c9133c45c738ec3ef86001582bbe4a32d0.tar.gz
try to maintain a reasonable line width
Diffstat (limited to 'main.lua')
-rw-r--r--main.lua30
1 files changed, 15 insertions, 15 deletions
diff --git a/main.lua b/main.lua
index 0500395..2de9a0a 100644
--- a/main.lua
+++ b/main.lua
@@ -93,12 +93,7 @@ function App.initialize(arg)
   App.screen.height = App.screen.height-100
   love.window.setMode(App.screen.width, App.screen.height)
 
-  -- maximum width available to either text or drawings, in pixels
-  Line_width = math.floor(App.screen.width/2/40)*40
-
-  Font_height = 20
-  love.graphics.setFont(love.graphics.newFont(Font_height))
-  Line_height = 26
+  initialize_font_settings(20)
 
   -- still in App.initialize
   if #arg > 0 then
@@ -115,6 +110,17 @@ function App.initialize(arg)
 
 end  -- App.initialize
 
+function initialize_font_settings(font_height)
+  Font_height = font_height
+  love.graphics.setFont(love.graphics.newFont(Font_height))
+  Line_height = math.floor(font_height*1.3)
+
+  -- maximum width available to either text or drawings, in pixels
+  Em = App.newText(love.graphics.getFont(), 'm')
+  -- readable text width is 50-75 chars
+  Line_width = math.min(40*App.width(Em), App.screen.width-50)
+end
+
 function App.filedropped(file)
   App.initialize_globals()  -- in particular, forget all undo history
   Filename = file:getFilename()
@@ -275,20 +281,14 @@ function App.keychord_pressed(chord)
     Search_backup = {cursor={line=Cursor1.line, pos=Cursor1.pos}, screen_top={line=Screen_top1.line, pos=Screen_top1.pos}}
     assert(Search_text == nil)
   elseif chord == 'C-=' then
-    Font_height = Font_height+2
-    love.graphics.setFont(love.graphics.newFont(Font_height))
-    Line_height = math.floor(Font_height*1.3)
+    initialize_font_settings(Font_height+2)
     Text.redraw_all()
   elseif chord == 'C--' then
-    Font_height = Font_height-2
-    love.graphics.setFont(love.graphics.newFont(Font_height))
+    initialize_font_settings(Font_height-2)
     Text.redraw_all()
-    Line_height = math.floor(Font_height*1.3)
   elseif chord == 'C-0' then
-    Font_height = 20
-    love.graphics.setFont(love.graphics.newFont(Font_height))
+    initialize_font_settings(20)
     Text.redraw_all()
-    Line_height = 26
   elseif chord == 'C-z' then
     local event = undo_event()
     if event then