summaryrefslogtreecommitdiff
path: root/NxWidgets/Kconfig
blob: 89e7e222d5512560b4df22b672c3d7703a7246f3 (plain) (blame)
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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
#
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#

config NXWIDGETS
	bool "Enable NxWidgets"
	default n
	depends on NX && HAVE_CXX
	---help---
		Enable support for NxWidgets

if NXWIDGETS

menu "NX Server/Device Configuration"

config NXWIDGETS_FLICKERFREE
	bool "Enable Flicker Reduction Logic"
	default y if NX_LCDDRIVER
	default n if !NX_LCDDRIVER
	---help---
		Because of their performance an in the manner in which they are
		updated, LCDs may be prone to "flicker" in the displays when Widgets
		are updated.  Often more complex (and slower) options are availble
		to reduce the flicker.  Enabling this option will enabled those
		lower-performance flicker-reductions measures where-ever thay may
		be available.

config NXWIDGETS_EXTERNINIT
	bool "External display Initialization"
	default n
	---help---
		Define to support external display initialization.

config NXWIDGETS_DEVNO
	int "LCD Device Number"
	default 0
	depends on NXWIDGETS_EXTERNINIT || NX_LCDDRIVER
	---help---
		LCD device number (in case there are more than one LCDs connected).
		Default: 0

config NXWIDGETS_VPLANE
	int "Plane Number"
	default 0
	depends on !NX_LCDDRIVER && !NXWIDGETS_EXTERNINIT
	---help---
		Only a single video plane is supported. Default: 0

if NX_MULTIUSER

config NXWIDGET_SERVERINIT
	bool "Start server"
	default y
	depends on !BUILD_PROTECTED && !BUILD_KERNEL
	---help---
		If this option is selected, then the NxWidgets::CNxServer class will
		bring up the NX server when it is initialized.  If this option is
		not selected then the NxWidgets::CNxServer constructor
		initialization logic will assume that the NX server has been started
		by other, external logic and will simply attempt to connect to the
		server.

if NXWIDGET_SERVERINIT

config NXWIDGETS_SERVERPRIO
	int "NX Server priority"
	default 110
	---help---
		Priority of the NX server.  This applies only if NX is configured in
		multi-user mode (NX_MULTIUSER=y).  Default: 110.

		NOTE:  Of the three priority definitions here, NXWIDGETS_SERVERPRIO
		should have the highest priority to avoid data overrun race conditions.
		Such errors would most likely appear as duplicated rows of data on the
		display.

config NXWIDGETS_SERVERSTACK
	int "NX Server Stack Size"
	default 2048
	---help---
		NX server thread stack size (in multi-user mode).  Default 2048

endif # NXWIDGET_SERVERINIT

config NXWIDGETS_CLIENTPRIO
	int "NX Client Priority"
	default 100
	---help---
		The thread that calls CNxServer::connect() will be re-prioritized to
		this priority.  This applies only if NX is configured in multi-user
		mode (NX_MULTIUSER=y). Default: 100

config NXWIDGETS_LISTENERPRIO
	int "NX Listener Priority"
	default 100
	---help---
		Priority of the NX event listener thread. This applies only if NX
		is configured in multi-user mode (NX_MULTIUSER=y). Default: 100

config NXWIDGETS_LISTENERSTACK
	int "NX Listener Stack Size"
	default 2048
	---help---
		NX listener thread stack size (in multi-user mode).  Default 2048

endif # NX_MULTIUSER

config NXWIDGET_EVENTWAIT
	bool "Event Waiting"
	default n
	---help---
		Build in support for external window event, modal loop management
		logic.  This includes methods to wait for windows events to occur
		so that looping logic can sleep until something interesting happens
		with the window.

endmenu # NX Server/Device Configuration

menu "NXWidget Configuration"

config NXWIDGETS_BPP
	int "BPP"
	---help---
		Supported bits-per-pixel {8, 16, 24, 32}.  Default: The smallest
		BPP configuration supported by NX.

config NXWIDGETS_SIZEOFCHAR
	int "Size of a character (1 or 2 bytes)"
	range 1 2
	---help---
		Size of character {1 or 2 bytes}.  Default Determined by
		NXWIDGETS_SIZEOFCHAR

comment "NXWidget Default Values"

config NXWIDGETS_SYSTEM_CUSTOM_FONTID
	bool "Use a Custom Default Font"
	default n
	---help---
		Set to override the system default font id (NXFONT_DEFAULT).

if NXWIDGETS_SYSTEM_CUSTOM_FONTID

config NXWIDGETS_DEFAULT_FONTID
	int "Default Font ID"
	default 0
	---help---
		Use this default NxWidgets font ID instead of the system font ID
		(NXFONT_DEFAULT).  Default: 0

endif # NXWIDGETS_SYSTEM_CUSTOM_FONTID

config NXWIDGETS_TNXARRAY_INITIALSIZE
	int "Initial Size of Dynamic Arrays"
	default 16
	---help---
		Default dynamic array size (in entries).  Default: 16

config NXWIDGETS_TNXARRAY_SIZEINCREMENT
	int "Dyanamic Array Reallocation Size Increment"
	default 8
	---help---
		Default dynamic array realloctino increment (in entries).  Default: 8

config NXWIDGETS_CUSTOM_FILLCOLORS
	bool "Custom Default Fill Colors"
	default n
	---help---
		Select custom default colors for the widget background.  If defined,
		the hexadecimal values for all filled colors must be provided
		(there are no default colors because the hexadecimal representation
		of the default colors depend on the pixel depth). Default: n

if NXWIDGETS_CUSTOM_FILLCOLORS

config NXWIDGETS_DEFAULT_BACKGROUNDCOLOR
	hex "Default Normal Background Color"
	---help---
		Normal background color.  Default: RGB(148,189,215)

config NXWIDGETS_DEFAULT_SELECTEDBACKGROUNDCOLOR
	hex "Default Selected Background Color"
	---help---
		Default selected background color. Default: RGB(206,227,241)

config NXWIDGETS_DEFAULT_HIGHLIGHTCOLOR
	hex "Default Highlight Color"
	---help---
		Highlight color.  Currently this color is only used in clist
		boxes, progress bars, and slider grips.  Default: RGB(192,192,192)

endif # NXWIDGETS_CUSTOM_FILLCOLORS

config NXWIDGETS_CUSTOM_EDGECOLORS
	bool "Custom Default Edge Colors"
	default n
	---help---
		Select custom default colors for the widget edges.  If defined,
		then hexadecimal values for all edge colors must be provided
		(there are no default colors because the hexadecimal representation
		of the default colors depend on the pixel depth). Default: n.

if NXWIDGETS_CUSTOM_EDGECOLORS

config NXWIDGETS_DEFAULT_SHINEEDGECOLOR
	hex "Default Shiny Edge Color"
	---help---
		Shiny side boarder color. Default: RGB(248,248,248)

config NXWIDGETS_DEFAULT_SHADOWEDGECOLOR
	hex "Default Shadow Edge Color"
	---help---
		Shadowed side border color. Default: RGB(35,58,73)

endif # NXWIDGETS_CUSTOM_EDGECOLORS

config NXWIDGETS_CUSTOM_TEXTCOLORS
	bool "Custom Default Text colors"
	default n
	---help---
		Select custom colors for the widget text.  If defined, then
		hexadecimal values for all text colors must be provided
		(there are no default colors because the hexadecimal representation
		of the default colors depend on the pixel depth). Default: n.

if NXWIDGETS_CUSTOM_TEXTCOLORS

config NXWIDGETS_DEFAULT_DISABLEDTEXTCOLOR
	hex "Default Disabled Text Color"
	---help---
		Text color on a disabled widget: Default: RGB(192,192,192)

config NXWIDGETS_DEFAULT_ENABLEDTEXTCOLOR
	hex "Default Enabled Text Color"
	---help---
		Text color on a enabled widget. Default: RGB(248,248,248)

config NXWIDGETS_DEFAULT_SELECTEDTEXTCOLOR
	hex "Default Selected Text Color"
	---help---
		Text color on a selected widget. Default: RGB(0,0,0)

config NXWIDGETS_DEFAULT_FONTCOLOR
	hex "Default Default Font Color"
	---help---
		Default font color. Default: RGB(255,255,255)

endif # NXWIDGETS_CUSTOM_TEXTCOLORS

config NXWIDGETS_TRANSPARENT_COLOR
	hex "Transparent Color"
	default 0x0
	---help---
		Transparent color. Default: RGB(0,0,0)

comment "Keypad behavior"

config NXWIDGETS_FIRST_REPEAT_TIME
	int "First Repeat Time"
	default 500
	---help---
		Time taken before a key starts repeating (in milliseconds).  Default: 500

config NXWIDGETS_CONTINUE_REPEAT_TIME
	int "Continue Repeat Time"
	default 200
	---help---
		Time taken before a repeating key repeats again (in milliseconds).
		Default: 200

config NXWIDGETS_DOUBLECLICK_TIME
	int "Double Click Time"
	default 350
	---help---
		Left button release-press time for double click (in milliseconds).
		Default: 350

config NXWIDGETS_KBDBUFFER_SIZE
	int "Keyboard Buffer Size"
	default 16
	---help---
		Size of incoming character buffer, i.e., the maximum number of
		characters that can be entered between NX polling cycles without
		losing data.

config NXWIDGETS_CURSORCONTROL_SIZE
	int "Cursor Control Buffer Size"
	default 4
	---help---
		Size of incoming cursor control buffer, i.e., the maximum number
		of cursor controls that can between entered by NX polling cycles
		without losing data.  Default: 4

config NXWIDGET_MEMMONITOR
	bool "Memory Usage Monitor"
	default n
	---help---
		Enable memory usage monitor instrumentation.  This feature is only
		used by the NxWidget/NxWM unit tests.

endmenu # NXWidget Configuration
endif # NxWidgets

config NXWM
	bool "Enable NxWM"
	default n
	depends on NXWIDGETS && NX_MULTIUSER
	---help---
		Enable support for the NuttX Tiny Window Manager (NxWM)

if NXWM

menu "NxWM General Settings"

config NXWM_LARGE_ICONS
	bool "Use large icons"
	default n
	---help---
		The default icons are nominally 25x25 pixels for a small
		resolution/display, this is a good selection.  For example, a
		320x240 display that is 4.5cm x 3.375 would have a resolution of
		about 71 dots per cm.  In this case, the icon would be 0.35cm.

		If you use a larger display, these smaller icons may seem
		inappropriately small.  In this case, you have two options:  (1)
		Enable image scaling which will make the icons "fuzzy" looking, or
		(2) select this option to enable use of larger icons.

config NXWM_CUSTOM_FONTID
	bool "Use Custom Default Font"
	default n
	---help---
		Set to override the system default font id (NXFONT_DEFAULT).

if NXWM_CUSTOM_FONTID

config NXWM_DEFAULT_FONTID
	int "Font ID"
	default 0
	---help---
		Use this NxWM default font ID instead of the system font ID
		(NXFONT_DEFAULT).  Default: 0

endif # NXWM_CUSTOM_FONTID

config NXWM_UNITTEST
	bool "NxWM Unit Test"
	default n
	---help---
		Enable Hooks for the NxWM Unit Test

comment "Color configuration"

config NXWM_CUSTOM_FILLCOLORS
	bool "Custom Default Fill Colors"
	default n
	---help---
		Select custom default colors for the widget background.  If defined,
		the hexadecimal values for all filled colors must be provided
		(there are no default colors because the hexadecimal representation
		of the default colors depend on the pixel depth). Default: n

if NXWM_CUSTOM_FILLCOLORS

config NXWM_DEFAULT_BACKGROUNDCOLOR
	hex "Background Color"
	---help---
		Normal background color.  Default: RGB(148,189,215)

config NXWM_DEFAULT_SELECTEDBACKGROUNDCOLOR
	hex "Normal Background Color"
	---help---
		Select background color. Default:  RGB(206,227,241)

endif # NXWM_DEFAULT_BACKGROUNDCOLOR

config NXWM_CUSTOM_EDGECOLORS
	bool "Custom Default Edge Colors"
	default n
	---help---
		Select custom default colors for the widget edges.  If defined,
		then hexadecimal values for all edge colors must be provided
		(there are no default colors because the hexadecimal representation
		of the default colors depend on the pixel depth). Default: n.

if NXWM_CUSTOM_EDGECOLORS

config NXWM_DEFAULT_SHINEEDGECOLOR
	hex "Shiny Edge Color"
	---help---
		Color of the bright edge of a border. Default: RGB(255,255,255)

config NXWM_DEFAULT_SHADOWEDGECOLOR
	hex "Shadow Edge Color"
	---help---
		Color of the shadowed edge of a border. Default: RGB(0,0,0)

endif # NXWM_CUSTOM_EDGECOLORS

config NXWM_CUSTOM_TEXTCOLORS
	bool "Custom Default Text colors"
	default n
	---help---
		Select custom colors for the widget text.  If defined, then
		hexadecimal values for all text colors must be provided
		(there are no default colors because the hexadecimal representation
		of the default colors depend on the pixel depth). Default: n.

if NXWM_CUSTOM_TEXTCOLORS

config NXWM_DEFAULT_FONTCOLOR
	hex "Default Font Color"
	---help---
		Default fong color.  Default: RGB(0,0,0)

config NXWM_TRANSPARENT_COLOR
	hex "Transparent Color"
	default 0x0
	---help---
		The "transparent" color.  Default: RGB(0,0,0)

endif # NXWM_CUSTOM_TEXTCOLORS

comment "Background Image"

config NXWM_DISABLE_BACKGROUND_IMAGE
	bool "Disable Background Image"
	default n if !NXWM_DISABLE_MINIMIZE
	default y if NXWM_DISABLE_MINIMIZE
	---help---
		Disable support for the "Desktop" background image.

config NXWM_BACKGROUND_IMAGE
	string "Background Image"
	default "NXWidgets::g_nuttxBitmap160x160"
	depends on !NXWM_DISABLE_BACKGROUND_IMAGE
	---help---
		The name of the image to use in the background window.  Default:
		"NXWidgets::g_nuttxBitmap160x160"

endmenu # NxWM General Configuration

menu "NxWM Taskbar Configuration"
comment "Horizontal and vertical spacing of icons in the task bar"

config NXWM_TASKBAR_VSPACING
	int "Vertical Spacing"
	default 2
	---help---
		Vertical spacing.  Default: 2 pixels

config NXWM_TASKBAR_HSPACING
	int "Horizontal Spacing"
	default 2
	---help---
		Horizontal spacing.  Default: 2 rows

choice NXWM_TASKBAR_LOCATION
	prompt "Taskbar Location"
	default NXWM_TASKBAR_TOP

config NXWM_TASKBAR_TOP
	bool "Top"
	---help---
		Task bar is at the top of the display

config NXWM_TASKBAR_BOTTOM
	bool "Bottom"
	---help---
		Task bar is at the bottom of the display

config NXWM_TASKBAR_LEFT
	bool "Left"
	---help---
		Task bar is on the left side of the display

config NXWM_TASKBAR_RIGHT
	bool "Right"
	---help---
		Task bar is on the right side of the display

endchoice

config NXWM_CUSTOM_TASKBAR_WIDTH
	bool "Use Custom Taskbar width"
	default n
	---help---
		Set to override the default taskbar thickness (either vertical or
		horizontal).  The default depends on the selected horizontal or
		vertical spacing. Default: 25 + 2*spacing

if NXWM_CUSTOM_TASKBAR_WIDTH

config NXWM_TASKBAR_WIDTH
	int "Taskbar Width"
	default 29 if !NXWM_LARGE_ICONS
	default 54 if !NXWM_LARGE_ICONS
	---help---
		Task bar thickness (either vertical or horizontal).  Default: 25 + 2*2

endif # NXWM_CUSTOM_TASKBAR_WIDTH

config NXWM_TASKBAR_ICONSCALE
	bool "Scale Icons"
	default n
	---help---
		Enable scaling of icons in the task bar

if NXWM_TASKBAR_ICONSCALE

config NXWM_TASKBAR_ICONWIDTH
	int "Icon Width (pixels)"
	default 50
	---help---
		Scaled width of each taskbar ICON in pixels.

config NXWM_TASKBAR_ICONHEIGHT
	int "Icon Height (rows)"
	default 42
	---help---
		Scaled height of each taskbar ICON in pixels.

endif # NXWM_TASKBAR_ICONSCALE

config NXWM_DISABLE_MINIMIZE
	bool "Disable Minimize Button"
	default n
	---help---
		If the "desktop" is empty, users have no need to minimize any
		windows. If the buttons are small, it's easy to hit minimize
		button accidentally when trying to close an application.

config NXWM_TASKBAR_NO_BORDER
	bool "Suppress Taskbar border"
	default n
	---help---
		Suppress drawing a the border around the taskbar.

endmenu # NxWM Taskbar Configuration

menu "NxWM Toolbar Configuration"

config NXWM_CUSTOM_TOOLBAR_HEIGHT
	bool "Use Custom Toolbar Height"
	default n
	---help---
		Set to override the default tooldar height The default depends on
		the selected horizontal or vertical spacing. Default: 21 + 2*spacing
		or 42 + 2*spacing if large icons are selected

if NXWM_CUSTOM_TOOLBAR_HEIGHT

config NXWM_TOOLBAR_HEIGHT
	int "Toolbar Height"
	default 25 if !NXWM_LARGE_ICONS
	default 46 if NXWM_LARGE_ICONS
	---help---
		The height of the tool bar in each application window. At present,
		all icons are 21 pixels in height and, hence, require a task bar of
		at least that size.  Default:  21 + 2*2or 42 + 2*spacing if large
		icons are selected

endif # NXWM_CUSTOM_TOOLBAR_HEIGHT

config NXWM_TOOLBAR_CUSTOM_FONTID
	bool "Use Custom Toolbar Font"
	default n
	---help---
		Set to override the NxWM default font id (NXWM_DEFAULT_FONTID).

if NXWM_TOOLBAR_CUSTOM_FONTID

config NXWM_TOOLBAR_FONTID
	int "Toolbar Font ID"
	default 0
	---help---
		Use this default font ID in the NxTerm window instead of the
		NxWM font ID (NXWM_DEFAULT_FONTID).  Default: 0 (maybe invalid)

endif # NXWM_TOOLBAR_CUSTOM_FONTID
endmenu # NxWM Toolbar Configuration

menu "NxWM Application Window Configuration"

config NXWM_CUSTOM_APPWINDOW_ICONS
	bool "Custom Start/Stop Application Window Icons"
	default n
	---help---
		Select to override the default Application Window Stop and Minimize Icons.

if NXWM_CUSTOM_APPWINDOW_ICONS

config NXWM_STOP_BITMAP
	string "Stop Icon"
	default "NxWM::g_stopBitmap"
	---help---
		The glyph to use as the Stop icon.  Default: NxWM::g_stopBitmap

config NXWM_MINIMIZE_BITMAP
	string "Minimize Icon"
	default "NxWM::g_minimizeBitmap"
	---help---
		The glyph to use as the Minimize icon.  Default: NxWM::g_minimizeBitmap

endif # NXWM_CUSTOM_APPWINDOW_ICONS
endmenu # NxWM Application Window Configuration

menu "NxWM Start Window Configuration"
comment "Horizontal and vertical spacing of icons in the task bar"

config NXWM_STARTWINDOW_VSPACING
	int "Vertical Spacing"
	default 4
	---help---
		Vertical spacing.  Default: 4 pixels

config NXWM_STARTWINDOW_HSPACING
	int "Horizontal Spacing"
	default 4
	---help---
		Horizontal spacing.  Default: 4 rows

config NXWM_CUSTOM_STARTWINDOW_ICON
	bool "Custom Start Window Icon"
	default n
	---help---
		Select to override the default Start Window Icon: NxWM::g_playBitmap

if NXWM_CUSTOM_STARTWINDOW_ICON

config NXWM_STARTWINDOW_ICON
	string "StartWindow Icon"
	default "NxWM::g_playBitmap"
	---help---
		The glyph to use as the start window icon.  Default: NxWM::g_playBitmap

endif # NXWM_CUSTOM_STARTWINDOW_ICON

config NXWM_STARTWINDOW_MQNAME
	string "Message Queue Name"
	default "/dev/nxwm"
	---help---
		The well known name of the message queue. Used to communicated from
		CWindowMessenger to the start window thread.  Default: "/dev/nxwm"

config NXWM_STARTWINDOW_MXMSGS
	int "Max Messages"
	default 32
	---help---
		The maximum number of messages to queue before blocking.  Defualt 32

config NXWM_STARTWINDOW_MXMPRIO
	int "Message Priority"
	default 42
	---help---
		The message priority. Default: 42.

config NXWM_STARTWINDOW_PRIO
	int "StartWindow Task Priority"
	default 100
	---help---
		Priority of the StartWindow task.  Default: 100.

		NOTE:  This priority should be less than NXWIDGETS_SERVERPRIO or else
		there may be data overrun errors. Such errors would most likely appear
		as duplicated rows of data on the display.

config NXWM_STARTWINDOW_STACKSIZE
	int "StartWindow Task Stack Size"
	default 2048
	---help---
		The stack size to use when starting the StartWindow task.  Default:
		2048 bytes.

endmenu # Start Window Configuration

menu "NxTerm Window Settings"

config NXWM_NXTERM
	bool "NxTerm Window"
	default y
	---help---
		Enable support for the NxTerm window which provides a text window
		in which you can interact with NSH.

if NXWM_NXTERM

config NXWM_NXTERM_PRIO
	int "NxTerm Task Priority"
	default 100
	---help---
		Priority of the NxTerm task.  Default:  100.

		NOTE:  This priority should be less than NXWIDGETS_SERVERPRIO or
		else there may be data overrun errors. Such errors would most likely
		appear as duplicated rows of data on the display.

config NXWM_NXTERM_STACKSIZE
	int "NxTerm Task Stack Size"
	default 2048
	---help---
		The stack size to use when starting the NxTerm task.  Default:
		2048 bytes.

config NXWM_NXTERM_CUSTOM_COLORS
	bool "Custom NxTerm Colors"
	default n
	---help---
		Select custom default colors for the NxTerm window.  If defined,
		the hexadecimal values for all NxTerm colors must be provided
		(there are no default colors because the hexadecimal representation
		of the default colors depend on the pixel depth). Default: n

if NXWM_NXTERM_CUSTOM_COLORS

config NXWM_NXTERM_WCOLOR
	hex "NxTerm Background Color"
	---help---
		The color of the NxTerm window background. Default:
		RGB(192,192,192)

config NXWM_NXTERM_FONTCOLOR
	hex "NxTerm Font Color"
	---help---
		The color of the fonts to use in the NxTerm window.
		Default: RGB(0,0,0)

endif # NXWM_NXTERM_CUSTOM_COLORS

config NXWM_NXTERM_CUSTOM_FONTID
	bool "Use Custom Default Font"
	default n
	---help---
		Set to override the NxWM default font id (NXWM_DEFAULT_FONTID).

if NXWM_NXTERM_CUSTOM_FONTID

config NXWM_NXTERM_FONTID
	int "NxTerm Font ID"
	default 0
	---help---
		Use this default font ID in the NxTerm window instead of the
		NxWM font ID (NXWM_DEFAULT_FONTID).  Default: 0

endif # NXWM_NXTERM_CUSTOM_FONTID

config NXWM_CUSTOM_NXTERM_ICON
	bool "Custom NxTerm Icon"
	default n
	---help---
		Select to override the default NxTerm Window Icon: NxWM::g_cmdBitmap

if NXWM_CUSTOM_NXTERM_ICON

config NXWM_NXTERM_ICON
	string "NxTerm Icon"
	default "NxWM::g_cmdBitmap"
	---help---
		The glyph to use as the NxTerm icon.  Default: NxWM::g_cmdBitmap

endif # NXWM_NXTERM_ICON
endif # NXWM_NXTERM
endmenu # NxTerm Window Settings

menu "NxWM Touchscreen Configuration"

config NXWM_TOUCHSCREEN
	bool "Touchscreen Support"
	default y if INPUT
	default n if !INPUT
	---help---
		Define to build in touchscreen support.

if NXWM_TOUCHSCREEN

comment "Touchscreen Device Settings"

config NXWM_TOUCHSCREEN_DEVINIT
	bool "Touchscreen Device Initialization"
	default y
	depends on !BUILD_PROTECTED && !BUILD_KERNEL
	---help---
		It this option is selected, then the NxWM:CTouchscreen listener
		thread will call a function arch_tcinitialize(NXWM_TOUCHSCREEN_DEVNO)
		in order to instantiate the touchscreen driver at path
		NXWM_TOUCHSCREEN_DEVPATH.  If NXWM_TOUCHSCREEN_DEVINIT is not
		selected, then the NxWM:CTouchscreen listener thread will assume
		that the driver has already been initialized at
		NXWM_TOUCHSCREEN_DEVPATH.

		NOTE that in the kernel build, all touchscreen initialize must be
		performed in kernel logic prior to the execution of NxWM.

config NXWM_TOUCHSCREEN_DEVNO
	int "Touchscreen Device Number"
	default 0
	---help---
		Touchscreen device minor number, i.e., the N in /dev/inputN.
		Default: 0

config NXWM_TOUCHSCREEN_DEVPATH
	string "Touchscreen Device Path"
	default "/dev/input0"
	---help---
		The full path to the touchscreen device. Default: "/dev/input0"

config NXWM_TOUCHSCREEN_SIGNO
	int "Touchscreen Signal Number"
	default 5
	---help---
		The realtime signal used to wake up the touchscreen listener
		thread.  Default: 5

config NXWM_TOUCHSCREEN_LISTENERPRIO
	int "Touchscreen Listener Task Priority"
	default 120
	---help---
		Priority of the touchscreen listener thread.  This listener should
		have a higher priority than most display-related tsks otherwise it
		may miss touchscreen events. Default: 120

config NXWM_TOUCHSCREEN_LISTENERSTACK
	int "Touchscreen Listener Task Stack Size"
	default 1024
	---help---
		Touchscreen listener thread stack size.  Default 1024

config NXWM_TOUCHSCREEN_CONFIGDATA
	bool "Touchscreen configuration data"
	default n
	depends on PLATFORM_CONFIGDATA
	---help---
		If the architecture supports retention of configuration data, then
		you may select this option to save touchscreen configuration data.
		Otherwise, the touchscreen calibration must be performed each time
		that you boot the system.

endif # NXWM_TOUCHSCREEN
endmenu # NxWM Touchscreen Configuration

menu "NxWM Keyboard Configuration"

config NXWM_KEYBOARD
	bool "Keyboard Support"
	default n
	---help---
		Define to build in keyboard support.

if NXWM_KEYBOARD

comment "Keyboard Device Settings"

config NXWM_KEYBOARD_DEVPATH
	string "Keyboard Device Path"
	default "/dev/console"
	---help---
		The full path to the keyboard device. Default: "/dev/console"

config NXWM_KEYBOARD_USBHOST
	bool "USB Keyboard Device"
	default n
	---help---
		This setting indicates that NXWM_KEYBOARD_DEVPATH is a USB keyboard.
		A USB Keyboard is a removable device. When it is inserted, then
		device at NXWM_KEYBOARD_DEVPATH will appear; when it removed,
		keyboard reads will fail and the device at NXWM_KEYBOARD_DEVPATH
		will disappear.  Selecting this option builds addtional logic into
		the keyboard listener thread in order to handle this case.

config NXWM_KEYBOARD_SIGNO
	int "Keyboard Task Signal Number"
	default 6
	---help---
		The realtime signal used to wake up the keyboard listener thread.
		Default: 6

config NXWM_KEYBOARD_BUFSIZE
	int "Keyboard Buffer Size"
	default 16
	---help---
		The size of the keyboard read data buffer. Default: 16

config NXWM_KEYBOARD_LISTENERPRIO
	int "Keyboard Listener Task Priority"
	default 120
	---help---
		Priority of the keyboard listener thread. This listener should
		have a higher priority than most display-related tasks otherwise it
		may miss keyboard input (not really very likely because keyboard
		input is relatively slow). Default: 120

config NXWM_KEYBOARD_LISTENERSTACK
	int "Keyboard Listener Task Stack Size"
	default 2048
	---help---
		Keyboard listener thread stack size.  Default: 1024

endif # NXWM_KEYBOARD
endmenu # NxWM Keyboard Configuration

menu "NxWM Calibration Display Settings"

config NXWM_CALIBRATION_MARGIN
	int "Calibration Margin"
	default 40
	---help---
		The Calbration display consists of a target press offset from the edges
		of the display by this number of pixels (in the horizontal direction)
		or rows (in the vertical).  The closer that you can comfortabley
		position the press positions to the edge, the more accurate will be the
		linear interpolation (provide that the hardware provides equally good
		measurements near the edges).

config NXWM_CALIBRATION_CUSTOM_COLORS
	bool "Custom Calibration Colors"
	default n
	---help---
		Select custom default colors for the calibration window.  If
		defined, the hexadecimal values for all calibration window
		colors must be provided (there are no default colors because
		the hexadecimal representation of the default colors depend
		on the pixel depth). Default: n

if NXWM_CALIBRATION_CUSTOM_COLORS

config NXWM_CALIBRATION_BACKGROUNDCOLOR
	hex "Background Color"
	---help---
		The background color of the touchscreen calibration display.
		Default:  Same as NXWM_DEFAULT_BACKGROUNDCOLOR.

config NXWM_CALIBRATION_LINECOLOR
	hex "Line Color"
	---help---
		The color of the lines used in the touchscreen calibration display.
		Default:  RGB(0, 0, 128) (dark blue)

config NXWM_CALIBRATION_CIRCLECOLOR
	hex "Normal Circle Color"
	---help---
		The color of the circle in the touchscreen calibration display.
		Default:  RGB(255, 255, 255) (white)

config NXWM_CALIBRATION_TOUCHEDCOLOR
	hex "Touched Circle Color"
	---help---
		The color of the circle in the touchscreen calibration display after
		the touch is recorder.  Default: RGB(255, 255, 96) (very light yellow)

endif # NXWM_CALIBRATION_CUSTOM_COLORS

config NXWM_CALIBRATION_MESSAGES
	bool "Add Instructions in Center"
	default n
	---help---
		By default, the calibration screen is clear excecpt for the
		calibration touchpoints.  If this options are enabled, then
		instructions when to touch and when to release the touch will
		be added in the center of the display,

if NXWM_CALIBRATION_MESSAGES

config NXWM_CALIBRATION_CUSTOM_FONTID
	bool "Use a Custom Font in Calibration Display"
	default n
	---help---
		Set to override the system default font id (NXFONT_DEFAULT).

if NXWM_CALIBRATION_CUSTOM_FONTID

config NXWM_CALIBRATION_FONTID
	int "Calibration Font ID"
	default 0
	---help---
		Use this default NxWidgets font ID instead of the system font ID
		(NXFONT_DEFAULT).  Default: 0

endif # NXWM_CALIBRATION_CUSTOM_FONTID

config NXWM_CALIBRATION_AVERAGE
	bool "Average Samples"
	default n
	---help---
		Collect multiple samples at each calibration position and use the
		average of the samples.  NOTE that is option is not available if we are
		not providing instructions on the display.  That is because it would
		be impossible to know what to do if we are collecting multiple samples
		at each position.

if NXWM_CALIBRATION_AVERAGE

config NXWM_CALIBRATION_NSAMPLES
	int "Number of Samples in Average"
	default 4
	range 2 255
	---help---
		This is the number of samples to use in the average.

config NXWM_CALIBRATION_DISCARD_MINMAX
	bool "Discard minimum and maximum values"
	default n
	---help---
		Discard the largest and smallest values before averaging.  This
		setting is ignored if NXWM_CALIBRATION_NSAMPLES < 3.

endif # NXWM_CALIBRATION_AVERAGE
endif # NXWM_CALIBRATION_MESSAGES

config NXWM_CALIBRATION_ANISOTROPIC
	bool "Anisotropic Scaling"
	default n
	---help---
		Most touchscreens have the property that the X value consistent across
		the entire vertial range of the display, i.e., if you press in the
		upper left of the display and in the low right of the display, then
		only the Y value will change.  This is true of some touchscreens:
		For some touchscreens the X values in the same vertical column will
		change as the Y values change.  Here I use the term anisotropic to
		describe that (that is not really the correct use of term term, but
		I have not yet thought of a better name).

		If you have such an LCD, then you may select this option to enable
		some much more complex scaling alorithms to handle this case.  Not
		only are these algorithms more complex, but they are (currenly)
		implemented using floating point.  As a result, you should not select
		this option if you have a lower end MCU without hardware floating
		point support.

config NXWM_CUSTOM_CALIBRATION_ICON
	bool "Custom Calibration Icon"
	default n
	---help---
		Select to override the default Calibration Window Icon:
		NxWM::g_calibrationBitmap

if NXWM_CUSTOM_CALIBRATION_ICON

config NXWM_CALIBRATION_ICON
	string "Callibration Icon"
	default "NxWM::g_calibrationBitmap"
	---help---
		The ICON to use for the touchscreen calibration application. Default:
		NxWM::g_calibrationBitmap

endif # NXWM_CUSTOM_CALIBRATION_ICON

config NXWM_CALIBRATION_SIGNO
	int "Calibration Signal Number"
	default 5
	---help---
		The realtime signal used to wake up the touchscreen calibration
		thread.  Default: 5

config NXWM_CALIBRATION_LISTENERPRIO
	int "Calibration Task Priority"
	default 100
	---help---
		Priority of the calibration listener thread.  Default: 100

config NXWM_CALIBRATION_LISTENERSTACK
	int "Calibration Task Stack Size"
	default 2048
	---help---
		Calibration listener thread stack size.  Default 2048

endmenu # NxWM Calibration Display Settings

menu "NxWM Hex Calculator Display Settings"

config NXWM_HEXCALCULATOR_CUSTOM_COLORS
	bool "Custom Hex Calculator Colors"
	default n
	---help---
		Select custom default colors for the Hex Calcualtor window.  If
		defined, the hexadecimal values for all hex calculator colors
		must be provided (there are no default colors because the
		hexadecimal representation of the default colors depend on the
		pixel depth). Default: n

if NXWM_HEXCALCULATOR_CUSTOM_COLORS

config NXWM_HEXCALCULATOR_BACKGROUNDCOLOR
	hex "Calculator Background Color"
	---help---
		The background color of the calculator display.  Default:  Same
		as NXWM_DEFAULT_BACKGROUNDCOLOR

endif # NXWM_HEXCALCULATOR_CUSTOM_COLORS

config NXWM_CUSTOM_HEXCALCULATOR_ICON
	bool "Custom Hex Calculator Icon"
	default n
	---help---
		Select to override the default Hex Calculator Window Icon:
		NxWM::g_calculatorBitmap

if NXWM_CUSTOM_HEXCALCULATOR_ICON

config NXWM_HEXCALCULATOR_ICON
	string "Calculator Icon"
	default "NxWM::g_calculatorBitmap"
	---help---
		The ICON to use for the hex calculator application.  Default:
		"NxWM::g_calculatorBitmap"

endif # NXWM_CUSTOM_HEXCALCULATOR_ICON

config NXWM_HEXCALCULATOR_CUSTOM_FONTID
	bool "Use Custom Default Font"
	default n
	---help---
		Set to override the NxWM default font id (NXWM_DEFAULT_FONTID).

if NXWM_HEXCALCULATOR_CUSTOM_FONTID

config NXWM_HEXCALCULATOR_FONTID
	int "Calculator Font ID"
	default 0
	---help---
		Use this default font ID in the calculator window instead of the
		NxWM font ID (NXWM_DEFAULT_FONTID).  Default: 0

endif # NXWM_HEXCALCULATOR_FONTID
endmenu # NxWM Hex Calculator Display Dettings

menu "NxWM Media Player Display Settings"

config NXWM_MEDIAPLAYER
	bool "NxWM Media Player"
	default n
	depends on FS_READABLE && SYSTEM_NXPLAYER
	---help---
		Enable support for the MP3 Media Player.  This features requires
		a board that includes an MP3 Codec chip, such as the Mikromedia
		boards available from MikroElektronica, along with a NuttX port
		with a device driver for the MP3 codec.

		NOTE:  This application is currently under development and just
		a shell of an app which will be developed soon.

if NXWM_MEDIAPLAYER

menu "NxPlayer Integration"

config NXWM_MEDIAPLAYER_PREFERRED_DEVICE
	string "Preferred audio device"
	default "pcm0"
	depends on NXPLAYER_INCLUDE_PREFERRED_DEVICE
	---help---
		NxPlayer expects us to specify a preferred audio device.  This
		selection allows us to identify that preferred audio device.  This
		device is identified by a simple name string that corresponds to an
		audio device that can be found under /dev/audio.

endmenu # NxPlayer Integration

menu "Media File Configuration"

config NXWM_MEDIAPLAYER_MEDIAPATH
	string "Path to media"
	default "/mnt/sdcard"
	---help---
		This is the full path to the mount point of the storage device
		containing all of the media files accessible by the media player.

config NXWM_MEDIAPLAYER_NOFILTER
	bool "Disable filtering by file name extension"
	default y

config NXWM_MEDIAPLAYER_FILTER
	bool
	default n

if !NXWM_MEDIAPLAYER_NOFILTER

config NXWM_MEDIAPLAYER_FILTER_AC3
	bool "Accept .ac3 extension"
	default n
	select NXWM_MEDIAPLAYER_FILTER

config NXWM_MEDIAPLAYER_FILTER_DTS
	bool "Accept .dts extension"
	default n
	select NXWM_MEDIAPLAYER_FILTER

config NXWM_MEDIAPLAYER_FILTER_WAV
	bool "Accept .wav extension"
	default y
	select NXWM_MEDIAPLAYER_FILTER

config NXWM_MEDIAPLAYER_FILTER_PCM
	bool "Accept .pcm extension"
	default n
	select NXWM_MEDIAPLAYER_FILTER

config NXWM_MEDIAPLAYER_FILTER_MP3
	bool "Accept .mp3 extension"
	default n
	select NXWM_MEDIAPLAYER_FILTER

config NXWM_MEDIAPLAYER_FILTER_MIDI
	bool "Accept .mid extension"
	default n
	select NXWM_MEDIAPLAYER_FILTER

config NXWM_MEDIAPLAYER_FILTER_WMA
	bool "Accept .wma extension"
	default n
	select NXWM_MEDIAPLAYER_FILTER

config NXWM_MEDIAPLAYER_FILTER_OGGVORBIS
	bool "Accept .ogg extension"
	default n
	select NXWM_MEDIAPLAYER_FILTER

endif # !NXWM_MEDIAPLAYER_NOFILTER
endmenu # Media File Configuration

menu "General Look and Feel"

config NXWM_MEDIAPLAYER_XSPACING
	int "Media Player Horizontal Spacing"
	default 12
	---help---
		This is the space between play, forward, and reverse controls in
		units of pixels.

config NXWM_MEDIAPLAYER_YSPACING
	int "Media Player Vertical Spacing"
	default 8
	---help---
		This is the space between vertical element: (1) list box, (2) play,
		forward, and reverse controls, and the volume slider in units of
		lines.

config NXWM_MEDIAPLAYER_CUSTOM_COLORS
	bool "Select Custom Media Player Colors"
	default n

if NXWM_MEDIAPLAYER_CUSTOM_COLORS

	config NXWM_MEDIAPLAYER_VOLUMECOLOR
	hex "Media Volume Slide Color"
	default 0x0

endif # NXWM_MEDIAPLAYER_CUSTOM_COLORS

config NXWM_MEDIAPLAYER_BORDERS
	bool "Media Player Button Borders"
	default n
	---help---
		If you have nice graphics, then borderless would probably be the
		better choice.  If you graphics is really more of a button label,
		then have buttons with boarders might make more sense.

endmenu # General Look and Feel

menu "Volume Control Configuration"

config NXWM_MEDIAPLAYER_VOLUMESTEP
	int "Media Player Volume Step"
	default 5
	---help---
		This increment in volume, up or down, when the volume bar is clicked.

config NXWM_MEDIAPLAYER_MINVOLUMEHEIGHT
	int "Minimum Player Volume Minimum Height"
	default 6
	---help---
		The height of the slider is automatically calculated from the height
		of the grip image.  However, we will not let the height of the grip
		get smaller than this value.

		NOTE: This width includes the size of the slider upper and lower
		borders.

endmenu # Volume Configuration"
endif # NXWM_MEDIAPLAYER
endmenu # NxWM Media Player Display Settings

endif # NXWM