[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2-demos] master 780e71d: [ftview, ftstring, ftgrid] Add keystro
From: |
Alexei Podtelezhnikov |
Subject: |
[freetype2-demos] master 780e71d: [ftview, ftstring, ftgrid] Add keystroke emulator. |
Date: |
Wed, 22 May 2019 00:16:49 -0400 (EDT) |
branch: master
commit 780e71dcc0b8b0620eefb58e14b8da0eff674f25
Author: Alexei Podtelezhnikov <address@hidden>
Commit: Alexei Podtelezhnikov <address@hidden>
[ftview,ftstring,ftgrid] Add keystroke emulator.
* src/{ftview,ftstring,ftgrid}.c
(parse_cmdline): New option to pass keystroke sequence.
(Process_Event): Consume keystrokes from buffer before listening.
(usage): Document it.
* src/{ftview,ftstring,ftgrid}.1: Document it.
---
ChangeLog | 12 +++++++++++-
src/ftgrid.1 | 4 ++++
src/ftgrid.c | 15 ++++++++++++---
src/ftstring.1 | 4 ++++
src/ftstring.c | 16 +++++++++++++---
src/ftview.1 | 4 ++++
src/ftview.c | 16 +++++++++++++---
7 files changed, 61 insertions(+), 10 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 5dc7bd0..18dc53b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,18 @@
+2018-05-22 Alexei Podtelezhnikov <address@hidden>
+
+ [ftview,ftstring,ftgrid] Add keystroke emulator.
+
+ * src/{ftview,ftstring,ftgrid}.c
+ (parse_cmdline): New option to pass keystroke sequence.
+ (Process_Event): Consume keystrokes from buffer before listening.
+ (usage): Document it.
+ * src/{ftview,ftstring,ftgrid}.1: Document it.
+
2018-05-21 Alexei Podtelezhnikov <address@hidden>
Prepare for scripting.
- * src/{ftview.c,ftstring.c,ftgrid.c,ftmulti.c,ftgamma.c}
+ * src/{ftview.c,ftstring.c,ftgrid.c,ftmulti.c,ftgamma.c}
(main, Process_Event): Consolidate event handling.
2019-04-28 Werner Lemberg <address@hidden>
diff --git a/src/ftgrid.1 b/src/ftgrid.1
index c3635f3..ea97738 100644
--- a/src/ftgrid.1
+++ b/src/ftgrid.1
@@ -87,6 +87,10 @@ Ignored for all other font formats.
Don't display named instances of variation fonts.
.
.TP
+.BI \-k \ keys
+Emulate sequence of keystrokes upon start up.
+.
+.TP
.B \-v
Show version.
.
diff --git a/src/ftgrid.c b/src/ftgrid.c
index e472448..481a257 100644
--- a/src/ftgrid.c
+++ b/src/ftgrid.c
@@ -95,6 +95,7 @@
typedef struct GridStatusRec_
{
+ const char* keys;
const char* dims;
int ptsize;
@@ -164,6 +165,7 @@
static void
grid_status_init( GridStatus st )
{
+ st->keys = "";
st->dims = DIM;
st->res = 72;
@@ -1379,8 +1381,10 @@
grEvent event;
int ret = 0;
-
- grListenSurface( display->surface, 0, &event );
+ if ( *status.keys )
+ event.key = grKEY( *status.keys++ );
+ else
+ grListenSurface( display->surface, 0, &event );
status.header = NULL;
@@ -1735,6 +1739,7 @@
fprintf( stderr,
" -d WxHxD Set the window width, height, and color depth\n"
" (default: 640x480x24).\n"
+ " -k keys Emulate sequence of keystrokes upon start up.\n"
" -r R Use resolution R dpi (default: 72dpi).\n"
" -f index Specify first index to display (default: 0).\n"
" -e enc Specify encoding tag (default: no encoding).\n"
@@ -1764,7 +1769,7 @@
while ( 1 )
{
- option = getopt( *argc, *argv, "a:d:e:f:nr:v" );
+ option = getopt( *argc, *argv, "a:d:e:f:k:nr:v" );
if ( option == -1 )
break;
@@ -1804,6 +1809,10 @@
status.Num = atoi( optarg );
break;
+ case 'k':
+ status.keys = optarg;
+ break;
+
case 'n':
status.no_named_instances = 1;
break;
diff --git a/src/ftstring.1 b/src/ftstring.1
index 46f9ace..16908fe 100644
--- a/src/ftstring.1
+++ b/src/ftstring.1
@@ -79,6 +79,10 @@ Use
for rendering.
.
.TP
+.BI \-k \ keys
+Emulate sequence of keystrokes upon start up.
+.
+.TP
.B \-v
Show version.
.
diff --git a/src/ftstring.c b/src/ftstring.c
index 8933227..ddf93da 100644
--- a/src/ftstring.c
+++ b/src/ftstring.c
@@ -83,6 +83,7 @@
static struct status_
{
+ const char* keys;
const char* dims;
int render_mode;
@@ -99,7 +100,8 @@
char* header;
char header_buffer[256];
- } status = { DIM, RENDER_MODE_STRING, FT_ENCODING_UNICODE, 72, 48, 0, NULL,
+ } status = { "", DIM, RENDER_MODE_STRING, FT_ENCODING_UNICODE,
+ 72, 48, 0, NULL,
{ 0, 0, 0x8000, 0, NULL, 0, 0 },
{ 0, 0, 0, 0 }, 0, NULL, { 0 } };
@@ -444,7 +446,10 @@
int ret = 0;
- grListenSurface( display->surface, 0, &event );
+ if ( *status.keys )
+ event.key = grKEY( *status.keys++ );
+ else
+ grListenSurface( display->surface, 0, &event );
if ( event.key >= '1' && event.key < '1' + N_RENDER_MODES )
{
@@ -616,6 +621,7 @@
fprintf( stderr,
" -d WxHxD Set the window width, height, and color depth\n"
" (default: 640x480x24).\n"
+ " -k keys Emulate sequence of keystrokes upon start up.\n"
" -r R Use resolution R dpi (default: 72dpi).\n"
" -e enc Specify encoding tag (default: Unicode).\n"
" Common values: `unic' (Unicode), `symb' (symbol),\n"
@@ -641,7 +647,7 @@
while ( 1 )
{
- option = getopt( *argc, *argv, "d:e:m:r:v" );
+ option = getopt( *argc, *argv, "d:e:k:m:r:v" );
if ( option == -1 )
break;
@@ -656,6 +662,10 @@
status.encoding = FTDemo_Make_Encoding_Tag( optarg );
break;
+ case 'k':
+ status.keys = optarg;
+ break;
+
case 'm':
if ( *argc < 3 )
usage( execname );
diff --git a/src/ftview.1 b/src/ftview.1
index 9415357..3d4e763 100644
--- a/src/ftview.1
+++ b/src/ftview.1
@@ -99,6 +99,10 @@ depending on the implemented subpixel rendering method.
Preload file in memory to simulate memory-mapping.
.
.TP
+.BI \-k \ keys
+Emulate sequence of keystrokes upon start up.
+.
+.TP
.B \-v
Show version.
.
diff --git a/src/ftview.c b/src/ftview.c
index cee95ce..534aa5f 100644
--- a/src/ftview.c
+++ b/src/ftview.c
@@ -98,6 +98,7 @@
{
int update;
+ const char* keys;
const char* dims;
int render_mode;
@@ -128,7 +129,7 @@
int fw_idx;
} status = { 1,
- DIM, RENDER_MODE_ALL,
+ "", DIM, RENDER_MODE_ALL,
72, 48, 1, 0.04, 0.04, 0.02, 0.22,
0, 0, 0, { 0 }, 0, 0, 0, /* default values are set at runtime */
0, 0, 0, 0, 0,
@@ -1123,7 +1124,11 @@
int ret = 0;
- grListenSurface( display->surface, 0, &event );
+ if ( *status.keys )
+ event.key = grKEY( *status.keys++ );
+ else
+ grListenSurface( display->surface, 0, &event );
+
status.update = 0;
if ( status.render_mode == (int)( event.key - '1' ) )
@@ -1784,6 +1789,7 @@
fprintf( stderr,
" -d WxHxD Set the window width, height, and color depth\n"
" (default: 640x480x24).\n"
+ " -k keys Emulate sequence of keystrokes upon start up.\n"
" -r R Use resolution R dpi (default: 72dpi).\n"
" -f index Specify first index to display (default: 0).\n"
" -e enc Specify encoding tag (default: no encoding).\n"
@@ -1816,7 +1822,7 @@
while ( 1 )
{
- option = getopt( *argc, *argv, "d:e:f:L:l:m:pr:v" );
+ option = getopt( *argc, *argv, "d:e:f:k:L:l:m:pr:v" );
if ( option == -1 )
break;
@@ -1835,6 +1841,10 @@
status.offset = atoi( optarg );
break;
+ case 'k':
+ status.keys = optarg;
+ break;
+
case 'l':
status.lcd_idx = atoi( optarg );
if ( status.lcd_idx < 0 || status.lcd_idx >= N_LCD_IDXS )
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2-demos] master 780e71d: [ftview, ftstring, ftgrid] Add keystroke emulator.,
Alexei Podtelezhnikov <=