File: wxt.trm

package info (click to toggle)
gnuplot 6.0.2%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 14,936 kB
  • sloc: ansic: 95,319; cpp: 7,590; makefile: 2,470; javascript: 2,328; sh: 1,531; lisp: 664; perl: 304; pascal: 191; tcl: 88; python: 46
file content (631 lines) | stat: -rw-r--r-- 22,094 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
/* GNUPLOT - wxt.trm */

/*[
 * Copyright 2005,2006   Timothee Lecomte
 *
 * Permission to use, copy, and distribute this software and its
 * documentation for any purpose with or without fee is hereby granted,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.
 *
 * Permission to modify the software is granted, but not the right to
 * distribute the complete modified source code.  Modifications are to
 * be distributed as patches to the released version.  Permission to
 * distribute binaries produced by compiling modified sources is granted,
 * provided you
 *   1. distribute the corresponding source modifications from the
 *    released version in the form of a patch file along with the binaries,
 *   2. add special version identification to distinguish your version
 *    in addition to the base release version number,
 *   3. provide your name and address as the primary contact for the
 *    support of your modified version, and
 *   4. retain our contact information in regard to use of the base
 *    software.
 * Permission to distribute the released version of the source code along
 * with corresponding source modifications in the form of a patch file is
 * granted with same provisions 2 through 4 for binary distributions.
 *
 * This software is provided "as is" without express or implied warranty
 * to the extent permitted by applicable law.
]*/

/* ------------------------------------------------------
 * Here you will find the terminal table, filled
 * with C++ functions defined in wxt_gui.cpp,
 * where the wxWidgets terminal is mainly implemented.
 * See wxt_gui.cpp for details about this terminal.
 * ------------------------------------------------------*/

#ifdef TERM_REGISTER
register_term (wxt)
#endif

#ifdef TERM_PROTO
TERM_PUBLIC void wxt_options(void);
TERM_PUBLIC void wxt_text_wrapper(void);
#endif /* TERM_PROTO */

#ifndef TERM_PROTO_ONLY

#ifdef TERM_BODY

#include "wxterminal/wxt_term.h"

/* terminal state, defined extern in wxt_term.h */
int wxt_window_number = 0;
TBOOLEAN wxt_enhanced_enabled = TRUE;
TBOOLEAN wxt_dashed = TRUE;
double wxt_dashlength = 1.0;
double wxt_lw = 1.0;
int wxt_background = 0xffffff;
rgb_color wxt_rgb_background = {1.,1.,1.};
TBOOLEAN wxt_dark_background = FALSE;
int wxt_persist = UNSET;
int wxt_raise = UNSET;
int wxt_ctrl = UNSET;
int wxt_toggle = UNSET;
int wxt_redraw = UNSET;
t_linecap wxt_linecap = BUTT;
/* default text font family: */
char *wxt_set_fontname = NULL;
/* default text size*/
double wxt_set_fontsize = 0;
double wxt_set_fontscale = 1.0;
/* window title */
char wxt_title[MAX_ID_LEN + 1] = "";
/* size of the plot area, in pixels
 * (window is bigger, includes toolbar and status bar) */
int wxt_width = 640;
int wxt_height = 384;
/* initial position of the plot window. wxPoint(-1, -1) is equivalent to wxDefaultPosition */
int wxt_posx = -1;
int wxt_posy = -1;

/* These are used to pass axis scaling information at the end of each plot */
int wxt_axis_mask;
wxt_axis_state_t wxt_axis_state[4];

enum WXT_id {
    WXT_FONT,
    WXT_FONTSCALE,
    WXT_ENHANCED,
    WXT_NOENHANCED,
    WXT_SIZE,
    WXT_POSITION,
    WXT_PERSIST,
    WXT_NOPERSIST,
    WXT_RAISE,
    WXT_NORAISE,
    WXT_CTRL,
    WXT_NOCTRL,
    WXT_TITLE,
    WXT_CLOSE,
    WXT_ROUNDED,
    WXT_BUTT,
    WXT_SQUARE,
    WXT_SOLID,
    WXT_DASHED,
    WXT_DASHLENGTH,
    WXT_LINEWIDTH,
    WXT_BACKGROUND,
    WXT_NOBACKGROUND,
    WXT_OTHER
};

static struct gen_table wxt_opts[] = {
    {"fontscale",   WXT_FONTSCALE},
    {"font",   WXT_FONT},
    {"enh$anced", WXT_ENHANCED},
    {"noenh$anced", WXT_NOENHANCED},
    {"s$ize", WXT_SIZE},
    {"pos$ition", WXT_POSITION},
    {"per$sist", WXT_PERSIST},
    {"noper$sist", WXT_NOPERSIST},
    {"rai$se", WXT_RAISE},
    {"norai$se", WXT_NORAISE},
    {"ct$rlq", WXT_CTRL},
    {"noct$rlq", WXT_NOCTRL},
    {"ti$tle", WXT_TITLE},
    {"cl$ose", WXT_CLOSE},
    {"round$ed", WXT_ROUNDED},
    {"butt", WXT_BUTT},
    {"square", WXT_SQUARE},
    {"solid", WXT_SOLID},
    {"dash$ed", WXT_DASHED},
    {"dashl$ength", WXT_DASHLENGTH},
    {"dl", WXT_DASHLENGTH},
    {"line$width", WXT_LINEWIDTH},
    {"lw", WXT_LINEWIDTH},
    {"backg$round", WXT_BACKGROUND},
    {"noback$ground", WXT_NOBACKGROUND},
    {NULL, WXT_OTHER}
};


/* "Called when terminal type is selected. This procedure should parse options on the command line.
* A list of the currently selected options should be stored in term_options[],
* in a form suitable for use with the set term command.
* term_options[] is used by the save command.  Use options_null() if no options are available." */
TERM_PUBLIC void wxt_options()
{
	char *s = NULL;
	char *font_setting = NULL;
	TBOOLEAN duplication = FALSE;
	TBOOLEAN set_font = FALSE;
	TBOOLEAN set_persist = FALSE, set_number = FALSE;
	TBOOLEAN set_raise = FALSE, set_ctrl = FALSE;
	TBOOLEAN set_title = FALSE, set_close = FALSE;
	TBOOLEAN set_capjoin = FALSE, set_size = FALSE;
	TBOOLEAN set_position = FALSE;

#ifndef _WIN32
	if (term_interlock != NULL && term_interlock != (void *)wxt_init) {
		term = NULL;
		int_error(NO_CARET, "The wxt terminal cannot be used in a qt session");
	}
#endif

	while (!END_OF_COMMAND) {
		switch (lookup_table(&wxt_opts[0], c_token++)) {
		case WXT_FONT:
			if (!(s = try_to_get_string()))
				int_error(c_token,"font: expecting string");
			font_setting = gp_strdup(s);
			if (*s) {
				char *sep = strchr(s,',');
				if (sep) {
					sscanf(sep+1, "%lf", &wxt_set_fontsize);
					*sep = '\0';
				}
				free(wxt_set_fontname);
				wxt_set_fontname = gp_strdup(s);
			}
			free(s);
			if (set_font) duplication=TRUE;
			set_font = TRUE;
			break;
		case WXT_FONTSCALE:
			wxt_set_fontscale = END_OF_COMMAND ? -1 : real_expression();
			if (wxt_set_fontscale <= 0)
			    wxt_set_fontscale = 1.;
			break;
		case WXT_ENHANCED:
			wxt_enhanced_enabled = TRUE;
			term->flags |= TERM_ENHANCED_TEXT;
			break;
		case WXT_NOENHANCED:
			wxt_enhanced_enabled = FALSE;
			term->flags &= ~TERM_ENHANCED_TEXT;
			break;
		case WXT_SIZE:
		    {
			double insize; /* shige 2019-02-27 for size 0 */
			if (END_OF_COMMAND)
				int_error(c_token,"size requires 'width,height'");
			if ((insize = real_expression()) >= 1)
				wxt_width = insize;
			else
				int_error(c_token, "size is out of range");
			if (!equals(c_token++,","))
				int_error(c_token,"size requires 'width,height'");
			if ((insize = real_expression()) >= 1)
				wxt_height = insize;
			else
				int_error(c_token, "size is out of range");
			if (set_size) duplication=TRUE;
			set_size = TRUE;
			break;
		    }
		case WXT_POSITION:
			if (END_OF_COMMAND)
				int_error(c_token,"position requires 'x,y'");
			wxt_posx = real_expression();
			if (!equals(c_token++,","))
				int_error(c_token,"position requires 'x,y'");
			wxt_posy = real_expression();
			if (set_position) duplication = TRUE;
			set_position = TRUE;
			break;
		case WXT_PERSIST:
			wxt_persist = yes;
			if (set_persist) duplication=TRUE;
			set_persist = TRUE;
			break;
		case WXT_NOPERSIST:
			wxt_persist = no;
			if (set_persist) duplication=TRUE;
			set_persist = TRUE;
			break;
		case WXT_RAISE:
			wxt_raise = yes;
			if (set_raise) duplication=TRUE;
			set_raise = TRUE;
			break;
		case WXT_NORAISE:
			wxt_raise = no;
			if (set_raise) duplication=TRUE;
			set_raise = TRUE;
			break;
		case WXT_CTRL:
			wxt_ctrl = yes;
			if (set_ctrl) duplication=TRUE;
			set_ctrl = TRUE;
			break;
		case WXT_NOCTRL:
			wxt_ctrl = no;
			if (set_ctrl) duplication=TRUE;
			set_ctrl = TRUE;
			break;
		case WXT_TITLE:
			if (!(s = try_to_get_string()))
				int_error(c_token,"title: expecting string");
			if (*s)
				safe_strncpy(wxt_title, s, sizeof(wxt_title));
			free(s);
			if (set_title) duplication=TRUE;
			set_title = TRUE;
			break;
		case WXT_CLOSE:
			if (set_close) duplication=TRUE;
			set_close = TRUE;
			break;
		case WXT_ROUNDED:
			if (set_capjoin) duplication=TRUE;
			wxt_linecap = ROUNDED;
			set_capjoin = TRUE;
			break;
		case WXT_BUTT:
			if (set_capjoin) duplication=TRUE;
			wxt_linecap = BUTT;
			set_capjoin = TRUE;
			break;
		case WXT_SQUARE:
			if (set_capjoin) duplication=TRUE;
			wxt_linecap = SQUARE;
			set_capjoin = TRUE;
			break;
		case WXT_DASHED:
		case WXT_SOLID:
			/* dashes always enabled in version 5 */
			wxt_dashed = TRUE;
			break;
		case WXT_DASHLENGTH:
			wxt_dashlength = real_expression();
			if (wxt_dashlength <= 0)
			    wxt_dashlength = 1.0;
			break;
		case WXT_LINEWIDTH:
			wxt_lw = real_expression();
			if (wxt_lw <= 0)
			    wxt_lw = 1.0;
			break;
		case WXT_BACKGROUND:
			{
			double ntsc;
			wxt_background = parse_color_name();
			wxt_rgb_background.r = (double)((wxt_background >> 16) & 0xff) / 255.;
			wxt_rgb_background.g = (double)((wxt_background >>  8) & 0xff) / 255.;
			wxt_rgb_background.b = (double)( wxt_background        & 0xff) / 255.;
			ntsc = 0.299 * wxt_rgb_background.r + 0.587 * wxt_rgb_background.g
			     + 0.114 * wxt_rgb_background.b;
			wxt_dark_background = (ntsc < 0.5);
			break;
			}
		case WXT_NOBACKGROUND:
			{
			wxt_background = 0xffffff;
			wxt_rgb_background.r = 1.0;
			wxt_rgb_background.g = 1.0;
			wxt_rgb_background.b = 1.0;
			wxt_dark_background = FALSE;
			break;
			}
		case WXT_OTHER:
		default:
			c_token--;
			if (isanumber(c_token) || type_udv(c_token) == INTGR) {
				wxt_window_number = int_expression();
				if (set_number) duplication=TRUE;
				set_number = TRUE;
			} else {
				int_warn(c_token++, "unrecognized terminal option");
			}
			break;
		}

		if (duplication) {
			int_warn(c_token-1, "Duplicated or contradicting arguments in wxt term options.");
			duplication = FALSE;
		}
	}

	/* Save options back into options string in normalized format */
	snprintf(term_options, sizeof(term_options)-strlen(term_options),
		"%d", wxt_window_number);

	if (set_title) {
		strncat(term_options, " title \"", sizeof(term_options)-strlen(term_options)-1);
		strncat(term_options, wxt_title, sizeof(term_options)-strlen(term_options)-1);
		strncat(term_options, "\"", sizeof(term_options)-strlen(term_options)-1);
		wxt_update_title(wxt_window_number);
	}

	if (wxt_dashlength != 1.0) {
		char tmp_term_options[MAX_LINE_LEN+1] = "";
		snprintf(tmp_term_options,sizeof(tmp_term_options), " dashlength %g", wxt_dashlength);
		strncat(term_options, tmp_term_options, sizeof(term_options)-strlen(term_options)-1);
	}

	if (wxt_lw != 1.0) {
		char tmp_term_options[MAX_LINE_LEN+1] = "";
		snprintf(tmp_term_options,sizeof(tmp_term_options), " lw %g", wxt_lw);
		strncat(term_options, tmp_term_options, sizeof(term_options)-strlen(term_options)-1);
	}

	if (wxt_background != 0xffffff) {
		char tmp_term_options[MAX_LINE_LEN+1] = "";
		snprintf(tmp_term_options,sizeof(tmp_term_options), " background '#%06x'", wxt_background);
		strncat(term_options, tmp_term_options, sizeof(term_options)-strlen(term_options)-1);
	}

	if (set_size) {
		char tmp_term_options[MAX_LINE_LEN+1] = "";
		snprintf(tmp_term_options, sizeof(tmp_term_options),
			  " size %d, %d", wxt_width, wxt_height);
		strncat(term_options, tmp_term_options, sizeof(term_options)-strlen(term_options)-1);
		wxt_update_size(wxt_window_number);
	}

	if (set_position) {
		char tmp_term_options[MAX_LINE_LEN+1] = "";
		snprintf(tmp_term_options, sizeof(tmp_term_options),
			  " position %d, %d", wxt_posx, wxt_posy);
		strncat(term_options, tmp_term_options, sizeof(term_options)-strlen(term_options)-1);
		wxt_update_position(wxt_window_number);
	}

	strncat(term_options,
		wxt_enhanced_enabled ? " enhanced" : " noenhanced",
		sizeof(term_options)-strlen(term_options)-1);

	if (set_font) {
		strncat(term_options, " font \"", sizeof(term_options)-strlen(term_options)-1);
		strncat(term_options, font_setting, sizeof(term_options)-strlen(term_options)-1);
		strncat(term_options, "\"", sizeof(term_options)-strlen(term_options)-1);
		free(font_setting);
	}

	if (!wxt_set_fontname)
		wxt_set_fontname = gp_strdup("");

	if (wxt_set_fontscale != 1.0) {
		char tmp_term_options[MAX_LINE_LEN+1] = "";
		snprintf(tmp_term_options,sizeof(tmp_term_options), " fontscale %.1f", wxt_set_fontscale);
		strncat(term_options, tmp_term_options, sizeof(term_options)-strlen(term_options)-1);
	}

	if (set_capjoin)
		strncat(term_options,
			wxt_linecap == ROUNDED ? " rounded"
			: wxt_linecap == SQUARE ? " square"
			: " butt",
			sizeof(term_options)-strlen(term_options)-1);

	if (set_persist)
		strncat(term_options,
			(wxt_persist==yes) ? " persist" : " nopersist",
			sizeof(term_options)-strlen(term_options)-1);

	if (set_raise)
		strncat(term_options,
			(wxt_raise==yes) ? " raise" : " noraise",
			sizeof(term_options)-strlen(term_options)-1);

	if (set_ctrl)
		strncat(term_options,
			(wxt_ctrl==yes) ? " ctrl" : " noctrl",
			sizeof(term_options)-strlen(term_options)-1);

	if (set_close)
		wxt_close_terminal_window(wxt_window_number);
}

/* wxt_text() will do most of the work, but we have to pass it axis scaling
 * info via a global structure that is loaded here.  The axis scaling is
 * so that subsequent mouse events can be transformed into plot
 * coordinates even though the plot is no longer active.
 */
TERM_PUBLIC void wxt_text_wrapper()
{
    int i;

#ifdef USE_MOUSE
	int axis_order[4] = {FIRST_X_AXIS, FIRST_Y_AXIS, SECOND_X_AXIS, SECOND_Y_AXIS};
	wxt_axis_mask = 0;

	for (i=0; i<4; i++) {
		if (axis_array[axis_order[i]].ticmode != NO_TICS)
		    wxt_axis_mask |= (1 << i);
	}

	for (i=0; i<4; i++) {
		struct axis *mousing_axis = &axis_array[axis_order[i]];
		double log_base;
		if (mousing_axis->log)
			log_base = mousing_axis->log_base;
		else if (nonlinear(mousing_axis))
			log_base = -1;
		else
			log_base = 0;
		if (mousing_axis->log && mousing_axis->linked_to_primary)
			mousing_axis = mousing_axis->linked_to_primary;
		wxt_axis_state[i].min = mousing_axis->min;
		wxt_axis_state[i].term_lower = mousing_axis->term_lower;
		wxt_axis_state[i].term_scale = mousing_axis->term_scale;
		wxt_axis_state[i].logbase = log_base;
	}
#endif

    wxt_text();
}

#endif /* TERM_BODY */

#ifdef TERM_TABLE
TERM_TABLE_START (wxt_driver)
    "wxt", "wxWidgets cross-platform interactive terminal",
    /* the following values are overridden by wxt_graphics */
    1 /* xmax */ , 1 /* ymax */ , 1 /* vchar */ , 1 /* hchar */ ,
    1 /* vtic */ , 1 /* htic */ ,
    wxt_options, wxt_init, wxt_reset, wxt_text_wrapper, null_scale, wxt_graphics,
    wxt_move, wxt_vector, wxt_linetype, wxt_put_text,
    wxt_text_angle, wxt_justify_text,
    wxt_point, do_arrow, wxt_set_font,
    wxt_pointsize,
    TERM_CAN_MULTIPLOT|TERM_NO_OUTPUTFILE|TERM_ALPHA_CHANNEL|TERM_CAN_DASH|TERM_FONTSCALE|TERM_ENHANCED_TEXT|TERM_LINEWIDTH,
    wxt_text /* suspend */, 0 /* resume */, wxt_fillbox, wxt_linewidth
#ifdef USE_MOUSE
    , wxt_waitforinput, wxt_put_tmptext, wxt_set_ruler, wxt_set_cursor, wxt_set_clipboard
#endif
    , wxt_make_palette, 0 /* wxt_previous_palette */, wxt_set_color, wxt_filled_polygon
    , wxt_image
    , wxt_enhanced_open, wxt_enhanced_flush, wxt_enhanced_writec
    , wxt_layer
    , NULL /* no term->path */
    , 0.0 /* Scale (unused) */
    , wxt_hypertext
    , wxt_boxed_text
    , wxt_modify_plots
    , wxt_dashtype
TERM_TABLE_END (wxt_driver)

#undef LAST_TERM
#define LAST_TERM wxt_driver

#endif /* TERM_TABLE */
#endif /* TERM_PROTO_ONLY */

#ifdef TERM_HELP
START_HELP(wxt)
"1 wxt",
"?set terminal wxt",
"?terminal wxt",
"?set term wxt",
"?term wxt",
"?wxt",
" The `wxt` terminal device generates output in a separate window. The window",
" is created by the wxWidgets library, where the 'wxt' comes from. The actual",
" drawing is done via cairo, a 2D graphics library, and pango, a library for",
" laying out and rendering text.",
"",
" Syntax:",
"         set term wxt {<n>}",
"                      {size <width>,<height>} {position <x>,<y>}",
"                      {background <rgb_color> | nobackground}",
"                      {{no}enhanced}",
"                      {font <font>} {fontscale <scale>}",
"                      {title \"title\"}",
"                      {linewidth <lw>} {butt|rounded|square}",
"                      {dashlength <dl>}",
"                      {{no}persist}",
"                      {{no}raise}",
"                      {{no}ctrl}",
"                      {close}",
"",
" Multiple plot windows are supported: `set terminal wxt <n>` directs the",
" output to plot window number n.",
"",
" The default window title is based on the window number. This title can also",
" be specified with the keyword \"title\".",
"",
" Plot windows remain open even when the `gnuplot` driver is changed to a",
" different device.  A plot window can be closed by pressing the letter 'q'",
" while that window has input focus, by choosing `close` from a window",
" manager menu, or with `set term wxt <n> close`.",
"",
" The size of the plot area is given in pixels, it defaults to 640x384.",
" In addition to that, the actual size of the window also includes the space",
" reserved for the toolbar and the status bar.",
" When you resize a window, the plot is immediately scaled to fit in the",
" new size of the window. Unlike other interactive terminals, the `wxt`",
" terminal scales the whole plot, including fonts and linewidths, and keeps",
" its global aspect ratio constant, leaving an empty space painted in gray.",
" If you type `replot`, click the `replot` icon in the terminal toolbar or",
" type a new `plot` command, the new plot will completely fit in the window",
" and the font size and the linewidths will be reset to their defaults.",
"",
" The position option can be used to set the position of the plot window.",
" The position option only applies to the first plot after the `set term`",
" command.",
"",
" The active plot window (the one selected by `set term wxt <n>`) is",
" interactive. Its behaviour is shared with other terminal types. See `mouse`",
" for details. It also has some extra icons, which are supposed to be",
" self-explanatory.",
"",
" This terminal supports an enhanced text mode, which allows font and other",
" formatting commands (subscripts, superscripts, etc.) to be embedded in labels",
" and other text strings. The enhanced text mode syntax is shared with other",
" gnuplot terminal types. See `enhanced` for more details.",
"",
" <font> is in the format \"FontFace,FontSize\", i.e. the face and the size",
" comma-separated in a single string. FontFace is a usual font face name, such",
" as \'Arial\'. If you do not provide FontFace, the wxt terminal will use",
" \'Sans\'. FontSize is the font size, in points. If you do not provide it,",
" the wxt terminal will use a size of 10 points.",
"    For example :",
"       set term wxt font \"Arial,12\"",
"       set term wxt font \"Arial\" # to change the font face only",
"       set term wxt font \",12\" # to change the font size only",
"       set term wxt font \"\" # to reset the font name and size",
"",
" The fonts are retrieved from the usual fonts subsystems. Under Windows,",
" those fonts are to be found and configured in the entry \"Fonts\" of the",
" control panel. Under UNIX, they are handled by \"fontconfig\".",
"",
" Pango, the library used to layout the text, is based on utf-8. Thus, the wxt",
" terminal has to convert from your encoding to utf-8. The default input",
" encoding is based on your \'locale\'. If you want to use another encoding,",
" make sure gnuplot knows which one you are using. See `encoding` for more",
" details.",
"",
" Pango may give unexpected results with fonts that do not respect the unicode",
" mapping. With the Symbol font, for example, the wxt terminal will use the map",
" provided by http://www.unicode.org/ to translate character codes to unicode.",
" Pango will do its best to find a font containing this character, looking for",
" your Symbol font, or other fonts with a broad unicode coverage, like the",
" DejaVu fonts. Note that \"the Symbol font\" is to be understood as the Adobe",
" Symbol font, distributed with Acrobat Reader as \"SY______.PFB\".",
" Alternatively, the OpenSymbol font, distributed with OpenOffice.org as",
" \"opens___.ttf\", offers the same characters. Microsoft has distributed a",
" Symbol font (\"symbol.ttf\"), but it has a different character set with",
" several missing or moved mathematic characters. If you experience problems",
" with your default setup (if the demo enhancedtext.dem is not displayed",
" properly for example), you probably have to install one of the Adobe or",
" OpenOffice Symbol fonts, and remove the Microsoft one.",
" Other non-conform fonts, such as \"wingdings\" have been observed working.",
"",
" The rendering of the plot can be altered with a dialog available from the",
" toolbar. To obtain the best output possible, the rendering involves three",
" mechanisms : antialiasing, oversampling and hinting.",
" Antialiasing allows to display non-horizontal and non-vertical lines",
" smoother.",
" Oversampling combined with antialiasing provides subpixel accuracy,",
" so that gnuplot can draw a line from non-integer coordinates. This avoids",
" wobbling effects on diagonal lines ('plot x' for example).",
" Hinting avoids the blur on horizontal and vertical lines caused by",
" oversampling. The terminal will snap these lines to integer coordinates so",
" that a one-pixel-wide line will actually be drawn on one and only one pixel.",
"",
" By default, the window is raised to the top of your desktop when a plot is",
" drawn. This can be controlled with the keyword \"raise\".",
" The keyword \"persist\" will prevent gnuplot from exiting before you",
" explicitly close all the plot windows.",
" Finally, by default the key <space> raises the gnuplot console window, and",
" 'q' closes the plot window. The keyword \"ctrl\" allows you to replace those",
" bindings by <ctrl>+<space> and <ctrl>+'q', respectively.",
" These three keywords (raise, persist and ctrl) can also be set and remembered",
" between sessions through the configuration dialog."
END_HELP(wxt)
#endif /* TERM_HELP */