5 char s1
[] = "Line1 text\0";
6 char s2
[] = "line2 text\0";
7 char s3
[] = "line3 text\0";
8 char s4
[] = "line4 text\0";
11 char* screen1
[] = {s0
};
12 #define screen1Len (sizeof(screen1)/sizeof(&screen1))
13 char* screen2
[] = {s0
,s1
,s2
,s3
,s4
};
14 #define screen2Len (sizeof(screen2)/sizeof(&screen2))
15 char* screen3
[] = {s0
,s1
};
16 #define screen3Len (sizeof(screen3)/sizeof(&screen3))
18 char** screens
[] = {screen1
,screen2
,screen3
};
19 int screensLen
[] = {screen1Len
,screen2Len
,screen3Len
};
21 void drawScreen(char**,unsigned,int);
22 void next(char**,unsigned*,int);
23 void prev(char**,unsigned*,int);
24 float min(float a
, float b
){return (a
< b
? a
: b
);}
30 offset
= malloc(sizeof(unsigned));
32 drawScreen(screens
[1],0,screensLen
[1]);
37 next(screens
[1],offset
,screensLen
[1]);
40 prev(screens
[1],offset
,screensLen
[1]);
47 void drawScreen(char** s
,unsigned yo
,int scrLen
){
50 for(i
; i
<(unsigned)min(scrLen
, 2); i
++){
53 printf("%s\n",s
[i
+yo
]);
57 void next(char** s
,unsigned* menuOffset
,int scrLen
){
58 *menuOffset
= ((*menuOffset
)+2==scrLen
)?(*menuOffset
):(((*menuOffset
)+1));
59 drawScreen(s
,*menuOffset
,scrLen
);
62 void prev(char** s
, unsigned* menuOffset
,int scrLen
){
63 *menuOffset
= (*menuOffset
==0)?(*menuOffset
):((*menuOffset
)-1);
64 drawScreen(s
,*menuOffset
,scrLen
);