]> git.ipfire.org Git - thirdparty/newt.git/blame - testtree.c
0.52.24
[thirdparty/newt.git] / testtree.c
CommitLineData
f06c5a99 1#include <stdlib.h>
2#include <stdio.h>
3#include <string.h>
4#include <signal.h>
5
6#include "newt.h"
7
8int main(void) {
9 newtGrid grid;
10 newtComponent checktree;
11 newtComponent button;
12 newtComponent form;
d78245ab 13 const void **result, **ptr;
f06c5a99 14 int numselected, i, j;
1e0b187b 15 int * list;
f06c5a99 16
17 newtInit();
18 newtCls();
19
1fc80395 20 checktree = newtCheckboxTreeMulti(-1, -1, 10, " ab", NEWT_FLAG_SCROLL);
1e0b187b 21 newtCheckboxTreeAddItem(checktree, "Numbers", (void *) 2, 0,
6f481af2 22 NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 23 newtCheckboxTreeAddItem(checktree, "Really really long thing",
6f481af2 24 (void *) 3, 0, NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 25 newtCheckboxTreeAddItem(checktree, "number 5", (void *) 5,
6f481af2 26 NEWT_FLAG_SELECTED,
27 NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 28 newtCheckboxTreeAddItem(checktree, "number 6", (void *) 6, 0,
6f481af2 29 NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 30 newtCheckboxTreeAddItem(checktree, "number 7", (void *) 7,
6f481af2 31 NEWT_FLAG_SELECTED,
32 NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 33 newtCheckboxTreeAddItem(checktree, "number 8", (void *) 8, 0,
6f481af2 34 NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 35 newtCheckboxTreeAddItem(checktree, "number 9", (void *) 9, 0,
6f481af2 36 NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 37 newtCheckboxTreeAddItem(checktree, "number 10", (void *) 10,
6f481af2 38 NEWT_FLAG_SELECTED,
39 NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 40 newtCheckboxTreeAddItem(checktree, "number 11", (void *) 11, 0,
6f481af2 41 NEWT_ARG_APPEND, NEWT_ARG_LAST);
73390860 42 newtCheckboxTreeAddItem(checktree, "Donuts", (void *) 12,
6f481af2 43 NEWT_FLAG_SELECTED,
44 NEWT_ARG_APPEND, NEWT_ARG_LAST);
5160fc22 45
46 newtCheckboxTreeAddItem(checktree, "Bavarian Cream", (void *) 301,
6f481af2 47 NEWT_FLAG_SELECTED,
48 9, NEWT_ARG_APPEND, NEWT_ARG_LAST);
5160fc22 49 newtCheckboxTreeAddItem(checktree, "Honey dipped", (void *) 302,
6f481af2 50 NEWT_FLAG_SELECTED,
51 9, NEWT_ARG_APPEND, NEWT_ARG_LAST);
5160fc22 52 newtCheckboxTreeAddItem(checktree, "Jelly", (void *) 303,
6f481af2 53 NEWT_FLAG_SELECTED,
54 9, NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 55
56 newtCheckboxTreeAddItem(checktree, "Colors", (void *) 1, 0,
6f481af2 57 0, NEWT_ARG_LAST);
1e0b187b 58 newtCheckboxTreeAddItem(checktree, "Red", (void *) 100, 0,
6f481af2 59 0, NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 60 newtCheckboxTreeAddItem(checktree, "White", (void *) 101, 0,
6f481af2 61 0, NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 62 newtCheckboxTreeAddItem(checktree, "Blue", (void *) 102, 0,
6f481af2 63 0, NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 64
65 newtCheckboxTreeAddItem(checktree, "number 4", (void *) 4, 0,
6f481af2 66 3, NEWT_ARG_LAST);
1e0b187b 67
68 newtCheckboxTreeAddItem(checktree, "Single digit", (void *) 200, 0,
6f481af2 69 1, NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 70 newtCheckboxTreeAddItem(checktree, "One", (void *) 201, 0,
6f481af2 71 1, 0, NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 72 newtCheckboxTreeAddItem(checktree, "Two", (void *) 202, 0,
6f481af2 73 1, 0, NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 74 newtCheckboxTreeAddItem(checktree, "Three", (void *) 203, 0,
6f481af2 75 1, 0, NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 76 newtCheckboxTreeAddItem(checktree, "Four", (void *) 204, 0,
6f481af2 77 1, 0, NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 78
79 newtCheckboxTreeAddItem(checktree, "Double digit", (void *) 300, 0,
6f481af2 80 1, NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 81 newtCheckboxTreeAddItem(checktree, "Ten", (void *) 210, 0,
6f481af2 82 1, 1, NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 83 newtCheckboxTreeAddItem(checktree, "Eleven", (void *) 211, 0,
6f481af2 84 1, 1, NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 85 newtCheckboxTreeAddItem(checktree, "Twelve", (void *) 212, 0,
6f481af2 86 1, 1, NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 87 newtCheckboxTreeAddItem(checktree, "Thirteen", (void *) 213, 0,
6f481af2 88 1, 1, NEWT_ARG_APPEND, NEWT_ARG_LAST);
1e0b187b 89
5160fc22 90 newtCheckboxTreeSetCurrent(checktree, (void *) 12);
91
f06c5a99 92 button = newtButton(-1, -1, "Exit");
93
94 grid = newtCreateGrid(1, 2);
1e0b187b 95 newtGridSetField(grid, 0, 0, NEWT_GRID_COMPONENT, checktree, 0, 0, 0, 1,
6f481af2 96 NEWT_ANCHOR_RIGHT, 0);
f06c5a99 97 newtGridSetField(grid, 0, 1, NEWT_GRID_COMPONENT, button, 0, 0, 0, 0,
6f481af2 98 0, 0);
f06c5a99 99
100 newtGridWrappedWindow(grid, "Checkbox Tree Test");
101 newtGridFree(grid, 1);
102
103 form = newtForm(NULL, NULL, 0);
104 newtFormAddComponents(form, checktree, button, NULL);
105
4fb7e108 106 newtRunForm(form);
f06c5a99 107
108 newtFinished();
109
110 result = newtCheckboxTreeGetSelection(checktree, &numselected);
111 ptr = result;
112 if (!result || !numselected)
6f481af2 113 printf("none selected\n");
f06c5a99 114 else
6f481af2 115 printf("Current selection (all) (%d):\n", numselected);
f06c5a99 116 for (i = 0; i < numselected; i++) {
8bec7d99 117 j = (long) *ptr++;
6f481af2 118 printf("%d\n", j);
f06c5a99 119 }
f7a354ed 120 free(result);
121
1fc80395 122 result = newtCheckboxTreeGetMultiSelection(checktree, &numselected, 'b');
123 ptr = result;
124 if (!result || !numselected)
6f481af2 125 printf("none selected\n");
1fc80395 126 else
6f481af2 127 printf("Current selection (b) (%d):\n",numselected);
1fc80395 128 for (i = 0; i < numselected; i++) {
8bec7d99 129 j = (long) *ptr++;
6f481af2 130 printf("%d\n", j);
1fc80395 131 }
6f481af2 132
f06c5a99 133 if (result)
6f481af2 134 free(result);
1e0b187b 135
136 list = newtCheckboxTreeFindItem(checktree, (void *) 213);
137 printf("path:");
138 for (i = 0; list && list[i] != NEWT_ARG_LAST; i++)
139 printf(" %d", list[i]);
140 printf("\n");
f7a354ed 141 free(list);
f06c5a99 142
143 newtFormDestroy(form);
144
145 return 0;
146}