freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] add ability to change the rendered text while program is running


From: Freetype Supporter
Subject: [PATCH] add ability to change the rendered text while program is running
Date: Tue, 03 Aug 2021 02:14:00 +0000

This patch adds ability for you to change the rendered text while the ftview is 
still running. Without this patch, only way to change rendered text is to close 
and reopen program. While entering new text it is invisible but that's 
something i can follow up with separate patch.
---
 src/ftview.c | 44 +++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 43 insertions(+), 1 deletion(-)

diff --git a/src/ftview.c b/src/ftview.c
index 6c01824..8791925 100644
--- a/src/ftview.c
+++ b/src/ftview.c
@@ -771,7 +771,44 @@
   /*****                                                               *****/
   /*************************************************************************/
   /*************************************************************************/
+static char newtxt[255];
+static void event_change_text(void) {
+      uint8_t pos = 0;
+      FTDemo_Display_Clear( display );
+      grSetLineHeight( 10 );
+      grGotoxy( 0, 0 );
+      grSetMargin( 2, 1 );
+      grGotobitmap( display->bitmap );
+      grWriteln( "Please type in the sample characters you wish to use for 
rendering." );
+      grLn();
+      grWriteln( "When you are done, press enter." );
+      grLn();
+      grEvent  typetxt;
+      do {
+          grListenSurface( display->surface, gr_event_key, &typetxt );
+          if (
+                  (typetxt.key >= 'a' && typetxt.key <= 'z') ||
+                  (typetxt.key >= 'A' && typetxt.key <= 'Z') ||
+                  (typetxt.key >= '0' && typetxt.key <= '9') ||
+                  (typetxt.key == grKeySpace)
+          ) {
+              if (pos < 255) {
+                  newtxt[pos++] = typetxt.key;
+              }
+
+          }
+          if (typetxt.key == grKeyReturn) {
+              Text = newtxt;
+              status.render_mode = RENDER_MODE_TEXT;
+              break;
+
+          }
+
+
+      } while (1);

+
+  }
   static void
   event_help( void )
   {
@@ -834,6 +871,7 @@
     grWriteln( "f           toggle forced auto-         Tab         cycle 
through charmaps  " );
     grWriteln( "             hinting (if hinting)                              
             " );
     grWriteln( "                                        P           print PNG 
file          " );
+    grWriteln( "                                        F2          change 
text rendered    " );
     grWriteln( "                                        q, ESC      quit 
ftview             " );
     /*          |----------------------------------|    
|----------------------------------| */
     grLn();
@@ -1105,6 +1143,7 @@

     switch ( event.key )
     {
+
     case grKeyEsc:
     case grKEY( 'q' ):
       ret = 1;
@@ -1115,7 +1154,10 @@
       event_help();
       status.update = 1;
       break;
-
+    case grKeyF2:
+      event_change_text();
+      status.update = 1;
+      break;
     case grKEY( 'P' ):
       {
         FT_String  str[64] = "ftview (FreeType) ";
--
2.24.3




reply via email to

[Prev in Thread] Current Thread [Next in Thread]