From f85d49a09f9bc4b98f3f316757fb2e8c57933b01 Mon Sep 17 00:00:00 2001 From: Martin Boonk Date: Fri, 11 Feb 2022 23:25:38 +0100 Subject: [PATCH] dtlaunch - Optimize line breaks for Bangle 2 --- apps/dtlaunch/ChangeLog | 1 + apps/dtlaunch/app-b2.js | 20 ++++++++++++++++---- apps/dtlaunch/metadata.json | 2 +- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/apps/dtlaunch/ChangeLog b/apps/dtlaunch/ChangeLog index 62a0cab9f..556472eaa 100644 --- a/apps/dtlaunch/ChangeLog +++ b/apps/dtlaunch/ChangeLog @@ -5,3 +5,4 @@ 0.05: add Bangle 2 version 0.06: Adds settings page (hide clocks or launchers) 0.07: Adds setting for directly launching app on touch for Bangle 2 +0.08: Optimize line wrapping for Bangle 2 diff --git a/apps/dtlaunch/app-b2.js b/apps/dtlaunch/app-b2.js index 800ec456c..96e562add 100644 --- a/apps/dtlaunch/app-b2.js +++ b/apps/dtlaunch/app-b2.js @@ -45,11 +45,23 @@ function draw_icon(p,n,selected) { g.setColor(g.theme.fg); try{g.drawImage(apps[p*4+n].icon,x+12,y+4);} catch(e){} g.setFontAlign(0,-1,0).setFont("6x8",1); - var txt = apps[p*4+n].name.split(" "); - for (var i = 0; i < txt.length; i++) { - txt[i] = txt[i].trim(); - g.drawString(txt[i],x+36,y+54+i*8); + var txt = apps[p*4+n].name.replace(/([a-z])([A-Z])/g, "$1 $2").split(" "); + var lineY = 0; + var line = ""; + while (txt.length > 0){ + var c = txt.shift(); + + if (c.length + 1 + line.length > 13){ + if (line.length > 0){ + g.drawString(line.trim(),x+36,y+54+lineY*8); + lineY++; + } + line = c; + } else { + line += " " + c; + } } + g.drawString(line.trim(),x+36,y+54+lineY*8); } function drawPage(p){ diff --git a/apps/dtlaunch/metadata.json b/apps/dtlaunch/metadata.json index 8ff5bd592..6cd1dbe73 100644 --- a/apps/dtlaunch/metadata.json +++ b/apps/dtlaunch/metadata.json @@ -1,7 +1,7 @@ { "id": "dtlaunch", "name": "Desktop Launcher", - "version": "0.07", + "version": "0.08", "description": "Desktop style App Launcher with six (four for Bangle 2) apps per page - fast access if you have lots of apps installed.", "screenshots": [{"url":"shot1.png"},{"url":"shot2.png"},{"url":"shot3.png"}], "icon": "icon.png",