summaryrefslogtreecommitdiffstats
path: root/minuitwrp
diff options
context:
space:
mode:
authorDees Troy <dees_troy@teamw.in>2014-02-25 21:35:56 +0100
committerEthan Yonker <dees_troy@teamw.in>2014-02-26 15:52:05 +0100
commit31218ec952173a707f97cfb7c7211ab79d8471f1 (patch)
tree0732c1c27a0bbf5dc7703e463a65a1351412e1e0 /minuitwrp
parentRemove unneeded logging (diff)
downloadandroid_bootable_recovery-31218ec952173a707f97cfb7c7211ab79d8471f1.tar
android_bootable_recovery-31218ec952173a707f97cfb7c7211ab79d8471f1.tar.gz
android_bootable_recovery-31218ec952173a707f97cfb7c7211ab79d8471f1.tar.bz2
android_bootable_recovery-31218ec952173a707f97cfb7c7211ab79d8471f1.tar.lz
android_bootable_recovery-31218ec952173a707f97cfb7c7211ab79d8471f1.tar.xz
android_bootable_recovery-31218ec952173a707f97cfb7c7211ab79d8471f1.tar.zst
android_bootable_recovery-31218ec952173a707f97cfb7c7211ab79d8471f1.zip
Diffstat (limited to 'minuitwrp')
-rw-r--r--minuitwrp/graphics.c24
-rw-r--r--minuitwrp/minui.h1
2 files changed, 25 insertions, 0 deletions
diff --git a/minuitwrp/graphics.c b/minuitwrp/graphics.c
index ddff571fe..3a35c587c 100644
--- a/minuitwrp/graphics.c
+++ b/minuitwrp/graphics.c
@@ -311,6 +311,30 @@ int gr_measureEx(const char *s, void* font)
return total;
}
+int gr_maxExW(const char *s, void* font, int max_width)
+{
+ GRFont* fnt = (GRFont*) font;
+ int total = 0;
+ unsigned pos;
+ unsigned off;
+
+ if (!fnt) fnt = gr_font;
+
+ while ((off = *s++))
+ {
+ off -= 32;
+ if (off < 96) {
+ max_width -= (fnt->offset[off+1] - fnt->offset[off]);
+ if (max_width > 0) {
+ total++;
+ } else {
+ return total;
+ }
+ }
+ }
+ return total;
+}
+
unsigned character_width(const char *s, void* pFont)
{
GRFont *font = (GRFont*) pFont;
diff --git a/minuitwrp/minui.h b/minuitwrp/minui.h
index bbdfdfb50..cf905322a 100644
--- a/minuitwrp/minui.h
+++ b/minuitwrp/minui.h
@@ -39,6 +39,7 @@ int twgr_text(int x, int y, const char *s);
static inline int gr_text(int x, int y, const char *s) { return gr_textEx(x, y, s, NULL); }
int gr_measureEx(const char *s, void* font);
static inline int gr_measure(const char *s) { return gr_measureEx(s, NULL); }
+int gr_maxExW(const char *s, void* font, int max_width);
int gr_getFontDetails(void* font, unsigned* cheight, unsigned* maxwidth);
static inline void gr_font_size(int *x, int *y) { gr_getFontDetails(NULL, (unsigned*) y, (unsigned*) x); }