FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
nuttx-apps/include/graphics/curses.h at master · apache/nuttx-apps · GitHub
apache
/
nuttx-apps
Public
Notifications
You must be signed in to change notification settings
Fork
783
Star
465
Code
Issues
47
Pull requests
12
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
nuttx-apps
/
include
/
graphics
/
curses.h
Copy path
More file actions
More file actions
Latest commit
History
History
History
1523 lines (1373 loc) · 54.8 KB
Breadcrumbs
nuttx-apps
/
include
/
graphics
/
curses.h
Copy path
File metadata and controls
1523 lines (1373 loc) · 54.8 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/****************************************************************************
* apps/include/graphics/curses.h
*
* SPDX-License-Identifier: Apache-2.0
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
/* Public Domain Curses
* $Id: curses.h,v 1.295 2008/07/15 17:13:25 wmcbrine Exp $
*/
#ifndef
__APPS_INCLUDE_GRAPHICS_CURSES_H
#define
__APPS_INCLUDE_GRAPHICS_CURSES_H
/* PDCurses definitions list: (Only define those needed)
*
* CONFIG_PDCURSES_WIDE True if building wide-character support.
* NCURSES_MOUSE_VERSION Use the ncurses mouse API instead
* of PDCurses' traditional mouse API.
*/
/****************************************************************************
* Included Files
****************************************************************************/
#include
<stdint.h>
#include
<stdbool.h>
#include
<stdarg.h>
#include
<stddef.h>
#include
<stdio.h>
#define
PDC_RGB
1
#ifdef
CONFIG_PDCURSES_WIDE
# include
<wchar.h>
#endif
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
#define
PDC_BUILD
3401
/* PDCurses Manifest Constants */
#ifndef
NULL
# define
NULL
(void *)0
#endif
#ifndef
ERR
# define
ERR
(-1)
#endif
#ifndef
OK
# define
OK
0
#endif
#ifdef
CONFIG_PDCURSES_CHTYPE_LONG
# define
PDC_COLOR_PAIRS
256
#else
# define
PDC_COLOR_PAIRS
32
#endif
#define
BUTTON_RELEASED
0x0000
#define
BUTTON_PRESSED
0x0001
#define
BUTTON_CLICKED
0x0002
#define
BUTTON_DOUBLE_CLICKED
0x0003
#define
BUTTON_TRIPLE_CLICKED
0x0004
#define
BUTTON_MOVED
0x0005
/* PDCurses */
#define
WHEEL_SCROLLED
0x0006
/* PDCurses */
#define
BUTTON_ACTION_MASK
0x0007
/* PDCurses */
#define
PDC_BUTTON_SHIFT
0x0008
/* PDCurses */
#define
PDC_BUTTON_CONTROL
0x0010
/* PDCurses */
#define
PDC_BUTTON_ALT
0x0020
/* PDCurses */
#define
BUTTON_MODIFIER_MASK
0x0038
/* PDCurses */
#define
MOUSE_X_POS
(Mouse_status.x)
#define
MOUSE_Y_POS
(Mouse_status.y)
/* Bits associated with the .changes field:
* 3 2 1 0
* 210987654321098765432109876543210
* 1 <- button 1 has changed
* 10 <- button 2 has changed
* 100 <- button 3 has changed
* 1000 <- mouse has moved
* 10000 <- mouse position report
* 100000 <- mouse wheel up
* 1000000 <- mouse wheel down
*/
#define
PDC_MOUSE_MOVED
0x0008
#define
PDC_MOUSE_POSITION
0x0010
#define
PDC_MOUSE_WHEEL_UP
0x0020
#define
PDC_MOUSE_WHEEL_DOWN
0x0040
#define
A_BUTTON_CHANGED
(Mouse_status.changes & 7)
#define
MOUSE_MOVED
(Mouse_status.changes & PDC_MOUSE_MOVED)
#define
MOUSE_POS_REPORT
(Mouse_status.changes & PDC_MOUSE_POSITION)
#define
BUTTON_CHANGED
(
x
) (Mouse_status.changes & (1 << ((x) - 1)))
#define
BUTTON_STATUS
(
x
) (Mouse_status.button[(x) - 1])
#define
MOUSE_WHEEL_UP
(Mouse_status.changes & PDC_MOUSE_WHEEL_UP)
#define
MOUSE_WHEEL_DOWN
(Mouse_status.changes & PDC_MOUSE_WHEEL_DOWN)
/* mouse bit-masks */
#define
BUTTON1_RELEASED
0x00000001L
#define
BUTTON1_PRESSED
0x00000002L
#define
BUTTON1_CLICKED
0x00000004L
#define
BUTTON1_DOUBLE_CLICKED
0x00000008L
#define
BUTTON1_TRIPLE_CLICKED
0x00000010L
#define
BUTTON1_MOVED
0x00000010L
/* PDCurses */
#define
BUTTON2_RELEASED
0x00000020L
#define
BUTTON2_PRESSED
0x00000040L
#define
BUTTON2_CLICKED
0x00000080L
#define
BUTTON2_DOUBLE_CLICKED
0x00000100L
#define
BUTTON2_TRIPLE_CLICKED
0x00000200L
#define
BUTTON2_MOVED
0x00000200L
/* PDCurses */
#define
BUTTON3_RELEASED
0x00000400L
#define
BUTTON3_PRESSED
0x00000800L
#define
BUTTON3_CLICKED
0x00001000L
#define
BUTTON3_DOUBLE_CLICKED
0x00002000L
#define
BUTTON3_TRIPLE_CLICKED
0x00004000L
#define
BUTTON3_MOVED
0x00004000L
/* PDCurses */
/* For the ncurses-compatible functions only, BUTTON4_PRESSED and
* BUTTON5_PRESSED are returned for mouse scroll wheel up and down;
* otherwise PDCurses doesn't support buttons 4 and 5
*/
#define
BUTTON4_RELEASED
0x00008000L
#define
BUTTON4_PRESSED
0x00010000L
#define
BUTTON4_CLICKED
0x00020000L
#define
BUTTON4_DOUBLE_CLICKED
0x00040000L
#define
BUTTON4_TRIPLE_CLICKED
0x00080000L
#define
BUTTON5_RELEASED
0x00100000L
#define
BUTTON5_PRESSED
0x00200000L
#define
BUTTON5_CLICKED
0x00400000L
#define
BUTTON5_DOUBLE_CLICKED
0x00800000L
#define
BUTTON5_TRIPLE_CLICKED
0x01000000L
#define
MOUSE_WHEEL_SCROLL
0x02000000L
/* PDCurses */
#define
BUTTON_MODIFIER_SHIFT
0x04000000L
/* PDCurses */
#define
BUTTON_MODIFIER_CONTROL
0x08000000L
/* PDCurses */
#define
BUTTON_MODIFIER_ALT
0x10000000L
/* PDCurses */
#define
ALL_MOUSE_EVENTS
0x1fffffffL
#define
REPORT_MOUSE_POSITION
0x20000000L
#ifdef
NCURSES_MOUSE_VERSION
# define
BUTTON_SHIFT
BUTTON_MODIFIER_SHIFT
# define
BUTTON_CONTROL
BUTTON_MODIFIER_CONTROL
# define
BUTTON_CTRL
BUTTON_MODIFIER_CONTROL
# define
BUTTON_ALT
BUTTON_MODIFIER_ALT
#else
# define
BUTTON_SHIFT
PDC_BUTTON_SHIFT
# define
BUTTON_CONTROL
PDC_BUTTON_CONTROL
# define
BUTTON_ALT
PDC_BUTTON_ALT
#endif
/* PDCurses Text Attributes
*
* Originally, PDCurses used a short (16 bits) for its chtype. To include
* color, a number of things had to be sacrificed from the strict Unix and
* System V support. The main problem was fitting all character attributes
* and color into an unsigned char (all 8 bits!).
*
* Today, PDCurses by default uses a long (32 bits) for its chtype, as in
* System V. The short chtype is still available, by undefining
* CONFIG_PDCURSES_CHTYPE_LONG and rebuilding the library.
*
* The following is the structure of a win->_attrs chtype:
*
* short form:
*
* -------------------------------------------------
* |15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
* -------------------------------------------------
* color number | attrs | character eg 'a'
*
* The available non-color attributes are bold, reverse and blink. Others
* have no effect. The high order char is an index into an array of
* physical colors (defined in color.c) -- 32 foreground/background color
* pairs (5 bits) plus 3 bits for other attributes.
*
* long form:
*
* -------------------------------------------------------------------------
* |31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|..| 3| 2| 1| 0|
* -------------------------------------------------------------------------
* color number | modifiers | character eg 'a'
*
* The available non-color attributes are bold, underline, invisible,
* right-line, left-line, protect, reverse and blink. 256 color pairs (8
* bits), 8 bits for other attributes, and 16 bits for character data.
*/
/* Video attribute macros */
#define
A_NORMAL
(chtype)0
#ifdef
CONFIG_PDCURSES_CHTYPE_LONG
# define
A_ALTCHARSET
(chtype)0x00010000
# define
A_RIGHTLINE
(chtype)0x00020000
# define
A_LEFTLINE
(chtype)0x00040000
# define
A_INVIS
(chtype)0x00080000
# define
A_UNDERLINE
(chtype)0x00100000
# define
A_REVERSE
(chtype)0x00200000
# define
A_BLINK
(chtype)0x00400000
# define
A_BOLD
(chtype)0x00800000
# define
A_ATTRIBUTES
(chtype)0xffff0000
# define
A_CHARTEXT
(chtype)0x0000ffff
# define
A_COLOR
(chtype)0xff000000
# define
A_ITALIC
A_INVIS
# define
A_PROTECT
(A_UNDERLINE | A_LEFTLINE | A_RIGHTLINE)
# define
PDC_ATTR_SHIFT
19
# define
PDC_COLOR_SHIFT
24
#else
# define
A_BOLD
(chtype)0x0100
/* X/Open */
# define
A_REVERSE
(chtype)0x0200
/* X/Open */
# define
A_BLINK
(chtype)0x0400
/* X/Open */
#ifdef
CONFIG_PDCURSES_SHORT_ALTCHARSET
# define
A_ATTRIBUTES
(chtype)0xff80
/* X/Open */
#else
# define
A_ATTRIBUTES
(chtype)0xff00
/* X/Open */
#endif
# define
A_CHARTEXT
(chtype)0x00ff
/* X/Open */
# define
A_COLOR
(chtype)0xf800
/* System V */
#ifdef
CONFIG_PDCURSES_SHORT_ALTCHARSET
# define
A_ALTCHARSET
(chtype)0x0080
/* X/Open */
#else
# define
A_ALTCHARSET
A_NORMAL
/* X/Open */
#endif
# define
A_PROTECT
A_NORMAL
/* X/Open */
# define
A_UNDERLINE
A_NORMAL
/* X/Open */
# define
A_LEFTLINE
A_NORMAL
# define
A_RIGHTLINE
A_NORMAL
# define
A_ITALIC
A_NORMAL
# define
A_INVIS
A_NORMAL
# define
PDC_ATTR_SHIFT
8
# define
PDC_COLOR_SHIFT
11
#endif
#define
A_STANDOUT
(A_REVERSE | A_BOLD)
/* X/Open */
#define
A_DIM
A_NORMAL
#define
CHR_MSK
A_CHARTEXT
/* Obsolete */
#define
ATR_MSK
A_ATTRIBUTES
/* Obsolete */
#define
ATR_NRM
A_NORMAL
/* Obsolete */
/* For use with attr_t -- X/Open says, "these shall be distinct", so
* this is a non-conforming implementation.
*/
#define
WA_ALTCHARSET
A_ALTCHARSET
#define
WA_BLINK
A_BLINK
#define
WA_BOLD
A_BOLD
#define
WA_DIM
A_DIM
#define
WA_INVIS
A_INVIS
#define
WA_LEFT
A_LEFTLINE
#define
WA_PROTECT
A_PROTECT
#define
WA_REVERSE
A_REVERSE
#define
WA_RIGHT
A_RIGHTLINE
#define
WA_STANDOUT
A_STANDOUT
#define
WA_UNDERLINE
A_UNDERLINE
#define
WA_HORIZONTAL
A_NORMAL
#define
WA_LOW
A_NORMAL
#define
WA_TOP
A_NORMAL
#define
WA_VERTICAL
A_NORMAL
/* Alternate character set macros
*
* 'w' = 32-bit chtype; acs_map[] index | A_ALTCHARSET
* 'n' = 16-bit chtype; it gets the fallback set because no bit is
* available for A_ALTCHARSET
*/
#ifdef
CONFIG_PDCURSES_CHTYPE_LONG
# define
ACS_PICK
(
w
,
n
) ((chtype)w | A_ALTCHARSET)
#else
# ifdef
CONFIG_PDCURSES_SHORT_ALTCHARSET
# define
ACS_PICK
(
w
,
n
) ((chtype)w | A_ALTCHARSET)
# else
# define
ACS_PICK
(
w
,
n
) ((chtype)n)
# endif
#endif
/* VT100-compatible symbols -- box chars */
#define
ACS_ULCORNER
ACS_PICK('l', '+')
#define
ACS_LLCORNER
ACS_PICK('m', '+')
#define
ACS_URCORNER
ACS_PICK('k', '+')
#define
ACS_LRCORNER
ACS_PICK('j', '+')
#define
ACS_RTEE
ACS_PICK('u', '+')
#define
ACS_LTEE
ACS_PICK('t', '+')
#define
ACS_BTEE
ACS_PICK('v', '+')
#define
ACS_TTEE
ACS_PICK('w', '+')
#define
ACS_HLINE
ACS_PICK('q', '-')
#define
ACS_VLINE
ACS_PICK('x', '|')
#define
ACS_PLUS
ACS_PICK('n', '+')
/* VT100-compatible symbols -- other */
#define
ACS_S1
ACS_PICK('o', '-')
#define
ACS_S9
ACS_PICK('s', '_')
#define
ACS_DIAMOND
ACS_PICK('`', '+')
#define
ACS_CKBOARD
ACS_PICK('a', ':')
#define
ACS_DEGREE
ACS_PICK('f', '\'')
#define
ACS_PLMINUS
ACS_PICK('g', '#')
#define
ACS_BULLET
ACS_PICK('~', 'o')
/* Teletype 5410v1 symbols -- these are defined in SysV curses, but
* are not well-supported by most terminals. Stick to VT100 characters
* for optimum portability.
*/
#define
ACS_LARROW
ACS_PICK(',', '<')
#define
ACS_RARROW
ACS_PICK('+', '>')
#define
ACS_DARROW
ACS_PICK('.', 'v')
#define
ACS_UARROW
ACS_PICK('-', '^')
#define
ACS_BOARD
ACS_PICK('h', '#')
#define
ACS_LANTERN
ACS_PICK('i', '*')
#define
ACS_BLOCK
ACS_PICK('0', '#')
/* That goes double for these -- undocumented SysV symbols. Don't use them. */
#define
ACS_S3
ACS_PICK('p', '-')
#define
ACS_S7
ACS_PICK('r', '-')
#define
ACS_LEQUAL
ACS_PICK('y', '<')
#define
ACS_GEQUAL
ACS_PICK('z', '>')
#define
ACS_PI
ACS_PICK('{', 'n')
#define
ACS_NEQUAL
ACS_PICK('|', '+')
#define
ACS_STERLING
ACS_PICK('}', 'L')
/* Box char aliases */
#define
ACS_BSSB
ACS_ULCORNER
#define
ACS_SSBB
ACS_LLCORNER
#define
ACS_BBSS
ACS_URCORNER
#define
ACS_SBBS
ACS_LRCORNER
#define
ACS_SBSS
ACS_RTEE
#define
ACS_SSSB
ACS_LTEE
#define
ACS_SSBS
ACS_BTEE
#define
ACS_BSSS
ACS_TTEE
#define
ACS_BSBS
ACS_HLINE
#define
ACS_SBSB
ACS_VLINE
#define
ACS_SSSS
ACS_PLUS
/* cchar_t aliases */
#ifdef
CONFIG_PDCURSES_WIDE
# define
WACS_ULCORNER
(&(acs_map['l']))
# define
WACS_LLCORNER
(&(acs_map['m']))
# define
WACS_URCORNER
(&(acs_map['k']))
# define
WACS_LRCORNER
(&(acs_map['j']))
# define
WACS_RTEE
(&(acs_map['u']))
# define
WACS_LTEE
(&(acs_map['t']))
# define
WACS_BTEE
(&(acs_map['v']))
# define
WACS_TTEE
(&(acs_map['w']))
# define
WACS_HLINE
(&(acs_map['q']))
# define
WACS_VLINE
(&(acs_map['x']))
# define
WACS_PLUS
(&(acs_map['n']))
# define
WACS_S1
(&(acs_map['o']))
# define
WACS_S9
(&(acs_map['s']))
# define
WACS_DIAMOND
(&(acs_map['`']))
# define
WACS_CKBOARD
(&(acs_map['a']))
# define
WACS_DEGREE
(&(acs_map['f']))
# define
WACS_PLMINUS
(&(acs_map['g']))
# define
WACS_BULLET
(&(acs_map['~']))
# define
WACS_LARROW
(&(acs_map[',']))
# define
WACS_RARROW
(&(acs_map['+']))
# define
WACS_DARROW
(&(acs_map['.']))
# define
WACS_UARROW
(&(acs_map['-']))
# define
WACS_BOARD
(&(acs_map['h']))
# define
WACS_LANTERN
(&(acs_map['i']))
# define
WACS_BLOCK
(&(acs_map['0']))
# define
WACS_S3
(&(acs_map['p']))
# define
WACS_S7
(&(acs_map['r']))
# define
WACS_LEQUAL
(&(acs_map['y']))
# define
WACS_GEQUAL
(&(acs_map['z']))
# define
WACS_PI
(&(acs_map['{']))
# define
WACS_NEQUAL
(&(acs_map['|']))
# define
WACS_STERLING
(&(acs_map['}']))
# define
WACS_BSSB
WACS_ULCORNER
# define
WACS_SSBB
WACS_LLCORNER
# define
WACS_BBSS
WACS_URCORNER
# define
WACS_SBBS
WACS_LRCORNER
# define
WACS_SBSS
WACS_RTEE
# define
WACS_SSSB
WACS_LTEE
# define
WACS_SSBS
WACS_BTEE
# define
WACS_BSSS
WACS_TTEE
# define
WACS_BSBS
WACS_HLINE
# define
WACS_SBSB
WACS_VLINE
# define
WACS_SSSS
WACS_PLUS
#endif
/* Color macros */
#define
COLOR_BLACK
0
#ifdef
PDC_RGB
/* RGB */
# define
COLOR_RED
1
# define
COLOR_GREEN
2
# define
COLOR_BLUE
4
#else
/* BGR */
# define
COLOR_BLUE
1
# define
COLOR_GREEN
2
# define
COLOR_RED
4
#endif
#define
COLOR_CYAN
(COLOR_BLUE | COLOR_GREEN)
#define
COLOR_MAGENTA
(COLOR_RED | COLOR_BLUE)
#define
COLOR_YELLOW
(COLOR_RED | COLOR_GREEN)
#define
COLOR_WHITE
7
/* Function and Keypad Key Definitions.
* Many are just for compatibility.
*/
#define
KEY_CODE_YES
0x100
/* If get_wch() gives a key code */
#define
KEY_BREAK
0x101
/* Not on PC KBD */
#define
KEY_DOWN
0x102
/* Down arrow key */
#define
KEY_UP
0x103
/* Up arrow key */
#define
KEY_LEFT
0x104
/* Left arrow key */
#define
KEY_RIGHT
0x105
/* Right arrow key */
#define
KEY_HOME
0x106
/* home key */
#define
KEY_BACKSPACE
0x107
/* not on pc */
#define
KEY_F0
0x108
/* function keys; 64 reserved */
#define
KEY_DL
0x148
/* delete line */
#define
KEY_IL
0x149
/* insert line */
#define
KEY_DC
0x14a
/* delete character */
#define
KEY_IC
0x14b
/* insert char or enter ins mode */
#define
KEY_EIC
0x14c
/* exit insert char mode */
#define
KEY_CLEAR
0x14d
/* clear screen */
#define
KEY_EOS
0x14e
/* clear to end of screen */
#define
KEY_EOL
0x14f
/* clear to end of line */
#define
KEY_SF
0x150
/* scroll 1 line forward */
#define
KEY_SR
0x151
/* scroll 1 line back (reverse) */
#define
KEY_NPAGE
0x152
/* next page */
#define
KEY_PPAGE
0x153
/* previous page */
#define
KEY_STAB
0x154
/* set tab */
#define
KEY_CTAB
0x155
/* clear tab */
#define
KEY_CATAB
0x156
/* clear all tabs */
#define
KEY_ENTER
0x157
/* enter or send (unreliable) */
#define
KEY_SRESET
0x158
/* soft/reset (partial/unreliable) */
#define
KEY_RESET
0x159
/* reset/hard reset (unreliable) */
#define
KEY_PRINT
0x15a
/* print/copy */
#define
KEY_LL
0x15b
/* home down/bottom (lower left) */
#define
KEY_ABORT
0x15c
/* abort/terminate key (any) */
#define
KEY_SHELP
0x15d
/* short help */
#define
KEY_LHELP
0x15e
/* long help */
#define
KEY_BTAB
0x15f
/* Back tab key */
#define
KEY_BEG
0x160
/* beg(inning) key */
#define
KEY_CANCEL
0x161
/* cancel key */
#define
KEY_CLOSE
0x162
/* close key */
#define
KEY_COMMAND
0x163
/* cmd (command) key */
#define
KEY_COPY
0x164
/* copy key */
#define
KEY_CREATE
0x165
/* create key */
#define
KEY_END
0x166
/* end key */
#define
KEY_EXIT
0x167
/* exit key */
#define
KEY_FIND
0x168
/* find key */
#define
KEY_HELP
0x169
/* help key */
#define
KEY_MARK
0x16a
/* mark key */
#define
KEY_MESSAGE
0x16b
/* message key */
#define
KEY_MOVE
0x16c
/* move key */
#define
KEY_NEXT
0x16d
/* next object key */
#define
KEY_OPEN
0x16e
/* open key */
#define
KEY_OPTIONS
0x16f
/* options key */
#define
KEY_PREVIOUS
0x170
/* previous object key */
#define
KEY_REDO
0x171
/* redo key */
#define
KEY_REFERENCE
0x172
/* ref(erence) key */
#define
KEY_REFRESH
0x173
/* refresh key */
#define
KEY_REPLACE
0x174
/* replace key */
#define
KEY_RESTART
0x175
/* restart key */
#define
KEY_RESUME
0x176
/* resume key */
#define
KEY_SAVE
0x177
/* save key */
#define
KEY_SBEG
0x178
/* shifted beginning key */
#define
KEY_SCANCEL
0x179
/* shifted cancel key */
#define
KEY_SCOMMAND
0x17a
/* shifted command key */
#define
KEY_SCOPY
0x17b
/* shifted copy key */
#define
KEY_SCREATE
0x17c
/* shifted create key */
#define
KEY_SDC
0x17d
/* shifted delete char key */
#define
KEY_SDL
0x17e
/* shifted delete line key */
#define
KEY_SELECT
0x17f
/* select key */
#define
KEY_SEND
0x180
/* shifted end key */
#define
KEY_SEOL
0x181
/* shifted clear line key */
#define
KEY_SEXIT
0x182
/* shifted exit key */
#define
KEY_SFIND
0x183
/* shifted find key */
#define
KEY_SHOME
0x184
/* shifted home key */
#define
KEY_SIC
0x185
/* shifted input key */
#define
KEY_SLEFT
0x187
/* shifted left arrow key */
#define
KEY_SMESSAGE
0x188
/* shifted message key */
#define
KEY_SMOVE
0x189
/* shifted move key */
#define
KEY_SNEXT
0x18a
/* shifted next key */
#define
KEY_SOPTIONS
0x18b
/* shifted options key */
#define
KEY_SPREVIOUS
0x18c
/* shifted prev key */
#define
KEY_SPRINT
0x18d
/* shifted print key */
#define
KEY_SREDO
0x18e
/* shifted redo key */
#define
KEY_SREPLACE
0x18f
/* shifted replace key */
#define
KEY_SRIGHT
0x190
/* shifted right arrow */
#define
KEY_SRSUME
0x191
/* shifted resume key */
#define
KEY_SSAVE
0x192
/* shifted save key */
#define
KEY_SSUSPEND
0x193
/* shifted suspend key */
#define
KEY_SUNDO
0x194
/* shifted undo key */
#define
KEY_SUSPEND
0x195
/* suspend key */
#define
KEY_UNDO
0x196
/* undo key */
/* PDCurses-specific key definitions -- PC only */
#define
ALT_0
0x197
#define
ALT_1
0x198
#define
ALT_2
0x199
#define
ALT_3
0x19a
#define
ALT_4
0x19b
#define
ALT_5
0x19c
#define
ALT_6
0x19d
#define
ALT_7
0x19e
#define
ALT_8
0x19f
#define
ALT_9
0x1a0
#define
ALT_A
0x1a1
#define
ALT_B
0x1a2
#define
ALT_C
0x1a3
#define
ALT_D
0x1a4
#define
ALT_E
0x1a5
#define
ALT_F
0x1a6
#define
ALT_G
0x1a7
#define
ALT_H
0x1a8
#define
ALT_I
0x1a9
#define
ALT_J
0x1aa
#define
ALT_K
0x1ab
#define
ALT_L
0x1ac
#define
ALT_M
0x1ad
#define
ALT_N
0x1ae
#define
ALT_O
0x1af
#define
ALT_P
0x1b0
#define
ALT_Q
0x1b1
#define
ALT_R
0x1b2
#define
ALT_S
0x1b3
#define
ALT_T
0x1b4
#define
ALT_U
0x1b5
#define
ALT_V
0x1b6
#define
ALT_W
0x1b7
#define
ALT_X
0x1b8
#define
ALT_Y
0x1b9
#define
ALT_Z
0x1ba
#define
CTL_LEFT
0x1bb
/* Control-Left-Arrow */
#define
CTL_RIGHT
0x1bc
#define
CTL_PGUP
0x1bd
#define
CTL_PGDN
0x1be
#define
CTL_HOME
0x1bf
#define
CTL_END
0x1c0
#define
KEY_A1
0x1c1
/* upper left on Virtual keypad */
#define
KEY_A2
0x1c2
/* upper middle on Virt. keypad */
#define
KEY_A3
0x1c3
/* upper right on Vir. keypad */
#define
KEY_B1
0x1c4
/* middle left on Virt. keypad */
#define
KEY_B2
0x1c5
/* center on Virt. keypad */
#define
KEY_B3
0x1c6
/* middle right on Vir. keypad */
#define
KEY_C1
0x1c7
/* lower left on Virt. keypad */
#define
KEY_C2
0x1c8
/* lower middle on Virt. keypad */
#define
KEY_C3
0x1c9
/* lower right on Vir. keypad */
#define
PADSLASH
0x1ca
/* slash on keypad */
#define
PADENTER
0x1cb
/* enter on keypad */
#define
CTL_PADENTER
0x1cc
/* ctl-enter on keypad */
#define
ALT_PADENTER
0x1cd
/* alt-enter on keypad */
#define
PADSTOP
0x1ce
/* stop on keypad */
#define
PADSTAR
0x1cf
/* star on keypad */
#define
PADMINUS
0x1d0
/* minus on keypad */
#define
PADPLUS
0x1d1
/* plus on keypad */
#define
CTL_PADSTOP
0x1d2
/* ctl-stop on keypad */
#define
CTL_PADCENTER
0x1d3
/* ctl-enter on keypad */
#define
CTL_PADPLUS
0x1d4
/* ctl-plus on keypad */
#define
CTL_PADMINUS
0x1d5
/* ctl-minus on keypad */
#define
CTL_PADSLASH
0x1d6
/* ctl-slash on keypad */
#define
CTL_PADSTAR
0x1d7
/* ctl-star on keypad */
#define
ALT_PADPLUS
0x1d8
/* alt-plus on keypad */
#define
ALT_PADMINUS
0x1d9
/* alt-minus on keypad */
#define
ALT_PADSLASH
0x1da
/* alt-slash on keypad */
#define
ALT_PADSTAR
0x1db
/* alt-star on keypad */
#define
ALT_PADSTOP
0x1dc
/* alt-stop on keypad */
#define
CTL_INS
0x1dd
/* ctl-insert */
#define
ALT_DEL
0x1de
/* alt-delete */
#define
ALT_INS
0x1df
/* alt-insert */
#define
CTL_UP
0x1e0
/* ctl-up arrow */
#define
CTL_DOWN
0x1e1
/* ctl-down arrow */
#define
CTL_TAB
0x1e2
/* ctl-tab */
#define
ALT_TAB
0x1e3
#define
ALT_MINUS
0x1e4
#define
ALT_EQUAL
0x1e5
#define
ALT_HOME
0x1e6
#define
ALT_PGUP
0x1e7
#define
ALT_PGDN
0x1e8
#define
ALT_END
0x1e9
#define
ALT_UP
0x1ea
/* alt-up arrow */
#define
ALT_DOWN
0x1eb
/* alt-down arrow */
#define
ALT_RIGHT
0x1ec
/* alt-right arrow */
#define
ALT_LEFT
0x1ed
/* alt-left arrow */
#define
ALT_ENTER
0x1ee
/* alt-enter */
#define
ALT_ESC
0x1ef
/* alt-escape */
#define
ALT_BQUOTE
0x1f0
/* alt-back quote */
#define
ALT_LBRACKET
0x1f1
/* alt-left bracket */
#define
ALT_RBRACKET
0x1f2
/* alt-right bracket */
#define
ALT_SEMICOLON
0x1f3
/* alt-semi-colon */
#define
ALT_FQUOTE
0x1f4
/* alt-forward quote */
#define
ALT_COMMA
0x1f5
/* alt-comma */
#define
ALT_STOP
0x1f6
/* alt-stop */
#define
ALT_FSLASH
0x1f7
/* alt-forward slash */
#define
ALT_BKSP
0x1f8
/* alt-backspace */
#define
CTL_BKSP
0x1f9
/* ctl-backspace */
#define
PAD0
0x1fa
/* keypad 0 */
#define
CTL_PAD0
0x1fb
/* ctl-keypad 0 */
#define
CTL_PAD1
0x1fc
#define
CTL_PAD2
0x1fd
#define
CTL_PAD3
0x1fe
#define
CTL_PAD4
0x1ff
#define
CTL_PAD5
0x200
#define
CTL_PAD6
0x201
#define
CTL_PAD7
0x202
#define
CTL_PAD8
0x203
#define
CTL_PAD9
0x204
#define
ALT_PAD0
0x205
/* alt-keypad 0 */
#define
ALT_PAD1
0x206
#define
ALT_PAD2
0x207
#define
ALT_PAD3
0x208
#define
ALT_PAD4
0x209
#define
ALT_PAD5
0x20a
#define
ALT_PAD6
0x20b
#define
ALT_PAD7
0x20c
#define
ALT_PAD8
0x20d
#define
ALT_PAD9
0x20e
#define
CTL_DEL
0x20f
/* clt-delete */
#define
ALT_BSLASH
0x210
/* alt-back slash */
#define
CTL_ENTER
0x211
/* ctl-enter */
#define
SHF_PADENTER
0x212
/* shift-enter on keypad */
#define
SHF_PADSLASH
0x213
/* shift-slash on keypad */
#define
SHF_PADSTAR
0x214
/* shift-star on keypad */
#define
SHF_PADPLUS
0x215
/* shift-plus on keypad */
#define
SHF_PADMINUS
0x216
/* shift-minus on keypad */
#define
SHF_UP
0x217
/* shift-up on keypad */
#define
SHF_DOWN
0x218
/* shift-down on keypad */
#define
SHF_IC
0x219
/* shift-insert on keypad */
#define
SHF_DC
0x21a
/* shift-delete on keypad */
#define
KEY_MOUSE
0x21b
/* "mouse" key */
#define
KEY_SHIFT_L
0x21c
/* Left-shift */
#define
KEY_SHIFT_R
0x21d
/* Right-shift */
#define
KEY_CONTROL_L
0x21e
/* Left-control */
#define
KEY_CONTROL_R
0x21f
/* Right-control */
#define
KEY_ALT_L
0x220
/* Left-alt */
#define
KEY_ALT_R
0x221
/* Right-alt */
#define
KEY_RESIZE
0x222
/* Window resize */
#define
KEY_SUP
0x223
/* Shifted up arrow */
#define
KEY_SDOWN
0x224
/* Shifted down arrow */
#define
ALT_PLUS
0x225
/* alt-+ key */
#define
ALT_PERIOD
0x226
/* alt-. key */
#define
ALT_QUESTION
0x227
/* alt-? key */
#define
ALT_LBRACE
0x228
/* alt-{ key */
#define
ALT_RBRACE
0x229
/* alt-} key */
#define
ALT_COLON
0x22a
/* alt-: key */
#define
ALT_TICK
0x22b
/* alt-' key */
#define
ALT_QUOTE
0x22c
/* alt-" key */
#define
ALT_LESS
0x22d
/* alt-< key */
#define
ALT_GREATER
0x22e
/* alt-> key */
#define
ALT_UNDERSCORE
0x22f
/* alt-_ key */
#define
ALT_VBAR
0x230
/* alt-| key */
#define
ALT_EXCL
0x231
/* alt-! key */
#define
ALT_AT
0x232
/* alt-@ key */
#define
ALT_POUND
0x233
/* alt-# key */
#define
ALT_DOLLAR
0x234
/* alt-$ key */
#define
ALT_PERCENT
0x235
/* alt-% key */
#define
ALT_CARET
0x236
/* alt-^ key */
#define
ALT_AMP
0x237
/* alt-& key */
#define
ALT_STAR
0x238
/* alt-* key */
#define
ALT_LPAREN
0x239
/* alt-( key */
#define
ALT_RPAREN
0x23a
/* alt-) key */
#define
ALT_SPACE
0x23b
/* alt-space key */
#define
KEY_MIN
KEY_BREAK
/* Minimum curses key value */
#define
KEY_MAX
ALT_SPACE
/* Maximum curses key */
#define
KEY_F
(
n
) (KEY_F0 + (n))
#define
COLOR_PAIR
(
n
) (((chtype)(n) << PDC_COLOR_SHIFT) & A_COLOR)
#define
PAIR_NUMBER
(
n
) (((n) & A_COLOR) >> PDC_COLOR_SHIFT)
/* return codes from PDC_getclipboard() and PDC_setclipboard() calls */
#define
PDC_CLIP_SUCCESS
0
#define
PDC_CLIP_ACCESS_ERROR
1
#define
PDC_CLIP_EMPTY
2
#define
PDC_CLIP_MEMORY_ERROR
3
/* PDCurses key modifier masks */
#define
PDC_KEY_MODIFIER_SHIFT
1
#define
PDC_KEY_MODIFIER_CONTROL
2
#define
PDC_KEY_MODIFIER_ALT
4
#define
PDC_KEY_MODIFIER_NUMLOCK
8
/* Functions defined as macros */
/* getch() and ungetch() conflict with some DOS libraries */
#define
getch
() wgetch(stdscr)
#define
ungetch
(
ch
) PDC_ungetch(ch)
/* These will _only_ work as macros */
#define
getbegyx
(
w
,
y
,
x
) (y = getbegy(w), x = getbegx(w))
#define
getmaxyx
(
w
,
y
,
x
) (y = getmaxy(w), x = getmaxx(w))
#define
getparyx
(
w
,
y
,
x
) (y = getpary(w), x = getparx(w))
#define
getyx
(
w
,
y
,
x
) (y = getcury(w), x = getcurx(w))
#define
getsyx
(
y
,
x
) { if (curscr->_leaveit) (y)=(x)=-1; \
else getyx(curscr,(y),(x)); }
#ifdef
NCURSES_MOUSE_VERSION
# define
getmouse
(
x
) nc_getmouse(x)
#endif
/****************************************************************************
* Public Types
****************************************************************************/
#if
defined(
__cplusplus
)
extern
"C"
{
# define
EXTERN
extern "C"
#else
# define
EXTERN
extern
#endif
#ifdef
CONFIG_PDCURSES_CHTYPE_LONG
typedef
uint32_t
chtype
;
/* 16-bit attr + 16-bit char */
#else
typedef
uint16_t
chtype
;
/* 8-bit attr + 8-bit char */
#endif
#ifdef
CONFIG_PDCURSES_WIDE
typedef
chtype
cchar_t
;
#endif
typedef
chtype
attr_t
;
/* PDCurses Mouse Interface -- SYSVR4, with extensions */
typedef
struct
{
int
x
;
/* absolute column, 0 based, measured in characters */
int
y
;
/* absolute row, 0 based, measured in characters */
short
button
[
3
];
/* state of each button */
int
changes
;
/* flags indicating what has changed with the mouse */
}
MOUSE_STATUS
;
/* ncurses mouse interface */
typedef
unsigned long
mmask_t
;
typedef
struct
{
short
id
;
/* unused, always 0 */
int
x
;
/* x, y same as MOUSE_STATUS; z unused */
int
y
;
int
z
;
mmask_t
bstate
;
/* equivalent to changes + button[], but
* in the same format as used for mousemask()
*/
}
MEVENT
;
/* PDCurses Structure Definitions */
typedef
struct
_win
/* definition of a window */
{
int
_cury
;
/* current pseudo-cursor */
int
_curx
;
int
_maxy
;
/* max window coordinates */
int
_maxx
;
int
_begy
;
/* origin on screen */
int
_begx
;
int
_flags
;
/* window properties */
chtype
_attrs
;
/* standard attributes and colors */
chtype
_bkgd
;
/* background, normally blank */
bool
_clear
;
/* causes clear at next refresh */
bool
_leaveit
;
/* leaves cursor where it is */
bool
_scroll
;
/* allows window scrolling */
bool
_nodelay
;
/* input character wait flag */
bool
_immed
;
/* immediate update flag */
bool
_sync
;
/* synchronise window ancestors */
bool
_use_keypad
;
/* flags keypad key mode active */
chtype
*
*
_y
;
/* pointer to line pointer array */
int
*
_firstch
;
/* first changed character in line */
int
*
_lastch
;
/* last changed character in line */
int
_tmarg
;
/* top of scrolling region */
int
_bmarg
;
/* bottom of scrolling region */
int
_delayms
;
/* milliseconds of delay for getch() */
int
_parx
;
/* coords relative to parent (0,0) */
int
_pary
;
struct
_win
*
_parent
;
/* subwin's pointer to parent win */
}
WINDOW
;
/* Avoid using the SCREEN struct directly -- use the corresponding
* functions if possible. This struct may eventually be made private.
*/
typedef
struct
{
bool
alive
;
/* if initscr() called, and not endwin() */
bool
autocr
;
/* if cr -> lf */
bool
cbreak
;
/* if terminal unbuffered */
bool
echo
;
/* if terminal echo */
bool
raw_inp
;
/* raw input mode (v. cooked input) */
bool
raw_out
;
/* raw output mode (7 v. 8 bits) */
bool
audible
;
/* FALSE if the bell is visual */
bool
mono
;
/* TRUE if current screen is mono */
bool
resized
;
/* TRUE if TERM has been resized */
bool
orig_attr
;
/* TRUE if we have the original colors */
short
orig_fore
;
/* original screen foreground color */
short
orig_back
;
/* original screen foreground color */
int
cursrow
;
/* position of physical cursor */
int
curscol
;
/* position of physical cursor */
int
visibility
;
/* visibility of cursor */
int
orig_cursor
;
/* original cursor size */
int
lines
;
/* new value for LINES */
int
cols
;
/* new value for COLS */
unsigned long
_trap_mbe
;
/* trap these mouse button events */
unsigned long
_map_mbe_to_key
;
/* map mouse buttons to slk */
int
mouse_wait
;
/* time to wait (in ms) for a
* button release after a press, in
* order to count it as a click */
int
slklines
;
/* lines in use by slk_init() */
WINDOW
*
slk_winptr
;
/* window for slk */
int
linesrippedoffcnt
;
/* lines ripped off via ripoffline() */
int
linesrippedoffontop
;
/* lines ripped off on
* top via ripoffline() */
int
delaytenths
;
/* 1/10ths second to wait block
* getch() for */
bool
_preserve
;
/* TRUE if screen background
* to be preserved */
int
_restore
;
/* specifies if screen background
* to be restored, and how */
bool
save_key_modifiers
;
/* TRUE if each key modifiers saved
* with each key press */
bool
return_key_modifiers
;
/* TRUE if modifier keys are
* returned as "real" keys */
bool
key_code
;
/* TRUE if last key is a special key;
* used internally by get_wch() */
short
line_color
;
/* color of line attributes - default -1 */
}
SCREEN
;
typedef
struct
/* Structure for ripped off lines */
{
int
line
;
int
(
*
init
)(
WINDOW
*
,
int
);
}
RIPPEDOFFLINE
;
struct
SLK
{
chtype
label
[
32
];
int
len
;
int
format
;
int
start_col
;
};
struct
cttyset
{
bool
been_set
;
SCREEN
saved
;
};
/****************************************************************************
* Public Data
****************************************************************************/
#ifdef
CONFIG_PDCURSES_MULTITHREAD
#define
_INBUFSIZ
512
/* size of terminal input buffer */
#define
NUNGETCH
256
/* max # chars to ungetch() */
struct
pdc_context_s
{
#ifndef
CONFIG_PDCURSES_MULTITHREAD_HASH
int
pid
;
FAR
struct
pdc_context_s
*
next
;
FAR
struct
pdc_context_s
*
prev
;
#endif
#ifdef
CONFIG_SYSTEM_TERMCURSES
bool
graphic_screen
;
#endif
uint8_t
pdc_color_started
;
uint8_t
default_colors
;
uint8_t
hidden
;
uint8_t
ungot
;
uint8_t
pair_set
[
PDC_COLOR_PAIRS
];
short
LINES
;
/* terminal height */
short
COLS
;
/* terminal width */
WINDOW
*
stdscr
;
/* the default screen window */
WINDOW
*
curscr
;
/* the current screen image */
WINDOW
*
pdc_lastscr
;
SCREEN
*
SP
;
/* curses variables */
MOUSE_STATUS
Mouse_status
;
MOUSE_STATUS
pdc_mouse_status
;
unsigned long
pdc_key_modifiers
;
char
ttytype
[
64
];
/* terminal name/description */
int
COLORS
;
short
COLOR_PAIRS
;
short
TABSIZE
;
short
first_col
;
short
c_pindex
;
/* putter index */
short
c_gindex
;
/* getter index */
short
c_ungind
;
/* ungetch() push index */
short
c_ungch
[
NUNGETCH
];
/* array of ungotten chars */
short
c_buffer
[
_INBUFSIZ
];
/* character buffer */
RIPPEDOFFLINE
linesripped
[
5
];
short
linesrippedoff
;
short
label_length
;
short
labels
;
short
label_fmt
;
int
label_line
;
struct
SLK
*
slk
;
short
save_pminrow
;
short
save_pmincol
;
short
save_sminrow
;
short
save_smincol
;
short
save_smaxrow
;
short
save_smaxcol
;
uint8_t
pdc_trace_on
;
/* Tracing flag */
char
strbuf
[
3
];
char
strbuf2
[
3
];
struct
cttyset
ctty
[
3
];
void
*
panel_ctx
;
void
*
term_ctx
;
char
slk_temp
[
33
];
char
slk_temp2
[
33
];
};
FAR
struct
pdc_context_s
*
PDC_ctx
(
void
);
void
PDC_ctx_free
(
void
);
#define
LINES
ctx->LINES
#define
COLS
ctx->COLS
#define
stdscr
ctx->stdscr
#define
curscr
ctx->curscr
#define
pdc_lastscr
ctx->pdc_lastscr
#define
SP
ctx->SP
#define
Mouse_status
ctx->Mouse_status
#define
pdc_mouse_status
ctx->pdc_mouse_status
#define
COLORS
ctx->COLORS
#define
COLOR_PAIRS
ctx->COLOR_PAIRS
#define
TABSIZE
ctx->TABSIZE
#define
ttytype
ctx->ttytype
#define
pdc_color_started
ctx->pdc_color_started
#define
pair_set
ctx->pair_set
#define
default_colors
ctx->default_colors
#define
first_col
ctx->first_col
#define
pdc_trace_on
ctx->pdc_trace_on
#define
pdc_key_modifiers
ctx->pdc_key_modifiers
#define
c_pindex
ctx->c_pindex
View remainder of file in raw view
Back
|
FazBrowse Home
|
New Git URL