source: titan/titan/rcfunc.h @ 39651

Last change on this file since 39651 was 35642, checked in by gost, 9 years ago

[titan] revert

File size: 32.2 KB
Line 
1#ifndef RCFUNC_H
2#define RCFUNC_H
3
4void progressbarright(struct skin* screen, struct skin* progressbar, int screencalc, int filelistview, int flag)
5{
6        if(progressbar != NULL)
7        {
8                if(progressbar->progresssize <= 100)
9                {
10                        progressbar->progresssize++;
11                        drawscreen(screen, screencalc, flag);
12                }
13                else
14                        progressbar->progresssize = 100;
15        }
16}
17
18void progressbarleft(struct skin* screen, struct skin* progressbar, int screencalc, int filelistview, int flag)
19{
20        if(progressbar != NULL)
21        {
22                if(progressbar->progresssize > 0)
23                {
24                        progressbar->progresssize--;
25                        drawscreen(screen, screencalc, flag);
26                }
27                else
28                        progressbar->progresssize = 0;
29        }
30}
31
32void filelistok(struct skin* screen, struct skin* filelist, int screencalc, int filelistview, int flag)
33{
34        struct skin* path = NULL;
35        char* tmp = NULL, *lastdir = NULL, *plastdir = NULL;
36        int inplen = 0;
37
38        if(filelist != NULL)
39        {
40                if(filelist->select != NULL && filelist->select->input != NULL)
41                {
42                        inplen = strlen(filelist->select->input);
43                        if(inplen >= 3 && filelist->select->input[inplen - 1] == '.' && filelist->select->input[inplen - 2] == '.' && filelist->select->input[inplen - 3] == '/')
44                        {
45                                lastdir = ostrcat(lastdir, filelist->select->input, 1, 0);
46                                lastdir[inplen - 3] = '\0';
47                                plastdir = strrchr(lastdir, '/');
48                                if(plastdir == NULL)
49                                        plastdir = lastdir;
50                                else
51                                        plastdir++;
52                        }
53
54                        filelist->aktline = 0;
55                        filelist->aktpage = 0;
56                        tmp = createpath(filelist->select->input, "");
57                        changeinput(filelist, tmp);
58                        free(tmp); tmp = NULL;
59
60                        tmp = malloc(strlen(filelist->name) + 5);
61                        if(tmp != NULL)
62                        {
63                                sprintf(tmp, "%s%s", filelist->name, "path");
64                                path = getscreennode(screen, tmp);
65                                free(tmp);
66                                if(path != status.skinerr)
67                                        changetext(path, filelist->input);
68                                delmarkedscreennodes(screen, FILELISTDELMARK);
69                                createfilelist(screen, filelist, filelistview);
70                                setlistboxselection(filelist, plastdir);
71                                free(lastdir); lastdir = NULL;
72                                drawscreen(screen, screencalc, flag);
73                        }
74                        else
75                                err("no memory");
76                }
77        }
78}
79
80void helpbox(struct skin* screen, struct skin* node, int screencalc, int filelistview, int flag)
81{
82        if(node != NULL && flag == 0)
83        {
84                screenhelp(screen);
85                drawscreen(screen, screencalc, flag);
86        }
87}
88
89void inputboxhelp(struct skin* screen, struct skin* inputbox, int screencalc, int filelistview, int flag)
90{
91        char* tmpstr = NULL;
92
93        if(inputbox != NULL && (inputbox->type & INPUTBOX) && flag == 0)
94        {
95                tmpstr = screeninputhelp(inputbox->input, 0, filelistview, flag);
96                changeinput(inputbox, tmpstr);
97                free(tmpstr); tmpstr = NULL;
98                drawscreen(screen, screencalc, flag);
99        }
100}
101
102void inputboxchar(struct skin* screen, struct skin* inputbox, char zeichen, int screencalc, int filelistview, int flag)
103{
104        if(inputbox != NULL && inputbox->input != NULL)
105        {
106                if(strlen(inputbox->input) > 0)
107                {
108                        inputbox->input[inputbox->aktpage - 1] = zeichen;
109                        if(flag != 1)
110                                drawscreen(screen, screencalc, flag);
111                }
112        }
113}
114
115void inputboxff(struct skin* screen, struct skin* inputbox, int screencalc, int filelistview, int flag)
116{
117        if(inputbox != NULL)
118        {
119                if(inputbox->input == NULL)
120                        changeinput(inputbox, "");
121                inputbox->aktpage = insertchar(&inputbox->input, '_', inputbox->aktpage);
122                drawscreen(screen, screencalc, flag);
123        }
124}
125
126void inputboxfr(struct skin* screen, struct skin* inputbox, int screencalc, int filelistview, int flag)
127{
128        if(inputbox != NULL && inputbox->input != NULL)
129        {
130                inputbox->aktpage = delchar(&inputbox->input, inputbox->aktpage);
131                drawscreen(screen, screencalc, flag);
132        }
133}
134
135void checkinputboxnumright(struct skin* inputbox)
136{
137        int count = 0;
138
139        if(inputbox != NULL && inputbox->input != NULL && (inputbox->type & INPUTBOXNUM))
140        {
141                while(isdigit(inputbox->input[inputbox->aktpage - 1]) == 0 && inputbox->input[inputbox->aktpage - 1] != '*')
142                {
143                        inputbox->aktpage++;
144                        if(inputbox->input[inputbox->aktpage - 1] == '\0')
145                        {
146                                count++;
147                                inputbox->aktpage = 0;
148                        }
149                        if(count > 1)
150                        {
151                                inputbox->aktpage = strlen(inputbox->input) + 1;
152                                break;
153                        }
154                }
155        }
156}
157
158void checkinputboxnumleft(struct skin* inputbox)
159{
160        int count = 0;
161
162        if(inputbox != NULL && inputbox->input != NULL && (inputbox->type & INPUTBOXNUM))
163        {
164                while(isdigit(inputbox->input[inputbox->aktpage - 1]) == 0 && inputbox->input[inputbox->aktpage - 1] != '*')
165                {
166                        inputbox->aktpage--;
167                        if(inputbox->aktpage < 0)
168                        {
169                                count++;
170                                inputbox->aktpage = strlen(inputbox->input);
171                        }
172                        if(count > 1)
173                        {
174                                inputbox->aktpage = strlen(inputbox->input) + 1;
175                                break;
176                        }
177                }
178        }
179}
180
181void inputboxright(struct skin* screen, struct skin* inputbox, int screencalc, int filelistview, int flag)
182{
183        if(inputbox != NULL && inputbox->input != NULL)
184        {
185                inputbox->aktpage++;
186                if(inputbox->aktpage >= strlen(inputbox->input) + 1) inputbox->aktpage = 1;
187
188                checkinputboxnumright(inputbox);
189                drawscreen(screen, screencalc, flag);
190        }
191}
192
193void inputboxleft(struct skin* screen, struct skin* inputbox, int screencalc, int filelistview, int flag)
194{
195        if(inputbox != NULL && inputbox->input != NULL)
196        {
197                inputbox->aktpage--;
198                if(inputbox->aktpage < 1) inputbox->aktpage = strlen(inputbox->input);
199
200                checkinputboxnumleft(inputbox);
201                drawscreen(screen, screencalc, flag);
202        }
203}
204
205void inputbox0(struct skin* screen, struct skin* inputbox, int screencalc, int filelistview, int flag)
206{
207        if(inputbox != NULL && inputbox->input != NULL)
208        {
209                int aktpage = inputbox->aktpage - 1;
210
211                if(inputbox->type & INPUTBOX)
212                {
213                        if(inputbox->input[aktpage] == '0')
214                                inputboxchar(screen, inputbox, ' ', screencalc, filelistview, flag);
215                        else if(inputbox->input[aktpage] == ' ')
216                                inputboxchar(screen, inputbox, '#', screencalc, filelistview, flag);
217                        else if(inputbox->input[aktpage] == '#')
218                                inputboxchar(screen, inputbox, '*', screencalc, filelistview, flag);
219                        else if(inputbox->input[aktpage] == '*')
220                                inputboxchar(screen, inputbox, '_', screencalc, filelistview, flag);
221                        else
222                                inputboxchar(screen, inputbox, '0', screencalc, filelistview, flag);
223                }
224                else
225                {
226                        inputboxchar(screen, inputbox, '0', screencalc, filelistview, 1);
227                        inputboxright(screen, inputbox, screencalc, filelistview, flag);
228                }
229        }
230}
231
232void inputbox1(struct skin* screen, struct skin* inputbox, int screencalc, int filelistview, int flag)
233{
234        if(inputbox != NULL && inputbox->input != NULL)
235        {
236                int aktpage = inputbox->aktpage - 1;
237
238                if(inputbox->type & INPUTBOX)
239                {
240                        if(inputbox->input[aktpage] == '1')
241                                inputboxchar(screen, inputbox, '.', screencalc, filelistview, flag);
242                        else if(inputbox->input[aktpage] == '.')
243                                inputboxchar(screen, inputbox, ',', screencalc, filelistview, flag);
244                        else if(inputbox->input[aktpage] == ',')
245                                inputboxchar(screen, inputbox, '?', screencalc, filelistview, flag);
246                        else if(inputbox->input[aktpage] == '?')
247                                inputboxchar(screen, inputbox, '!', screencalc, filelistview, flag);
248                        else if(inputbox->input[aktpage] == '!')
249                                inputboxchar(screen, inputbox, '\'', screencalc, filelistview, flag);
250                        else if(inputbox->input[aktpage] == '\'')
251                                inputboxchar(screen, inputbox, '-', screencalc, filelistview, flag);
252                        else if(inputbox->input[aktpage] == '-')
253                                inputboxchar(screen, inputbox, '(', screencalc, filelistview, flag);
254                        else if(inputbox->input[aktpage] == '(')
255                                inputboxchar(screen, inputbox, ')', screencalc, filelistview, flag);
256                        else if(inputbox->input[aktpage] == ')')
257                                inputboxchar(screen, inputbox, '@', screencalc, filelistview, flag);
258                        else if(inputbox->input[aktpage] == '@')
259                                inputboxchar(screen, inputbox, '/', screencalc, filelistview, flag);
260                        else if(inputbox->input[aktpage] == '/')
261                                inputboxchar(screen, inputbox, ':', screencalc, filelistview, flag);
262                        else
263                                inputboxchar(screen, inputbox, '1', screencalc, filelistview, flag);
264                }
265                else
266                {
267                        inputboxchar(screen, inputbox, '1', screencalc, filelistview, 1);
268                        inputboxright(screen, inputbox, screencalc, filelistview, flag);
269                }
270        }
271}
272
273void inputbox2(struct skin* screen, struct skin* inputbox, int screencalc, int filelistview, int flag)
274{
275        if(inputbox != NULL && inputbox->input != NULL)
276        {
277                int aktpage = inputbox->aktpage - 1;
278
279                if(inputbox->type & INPUTBOX)
280                {
281                        if(inputbox->input[aktpage] == '2')
282                                inputboxchar(screen, inputbox, 'a', screencalc, filelistview, flag);
283                        else if(inputbox->input[aktpage] == 'a')
284                                inputboxchar(screen, inputbox, 'b', screencalc, filelistview, flag);
285                        else if(inputbox->input[aktpage] == 'b')
286                                inputboxchar(screen, inputbox, 'c', screencalc, filelistview, flag);
287                        else if(inputbox->input[aktpage] == 'c')
288                                inputboxchar(screen, inputbox, 'A', screencalc, filelistview, flag);
289                        else if(inputbox->input[aktpage] == 'A')
290                                inputboxchar(screen, inputbox, 'B', screencalc, filelistview, flag);
291                        else if(inputbox->input[aktpage] == 'B')
292                                inputboxchar(screen, inputbox, 'C', screencalc, filelistview, flag);
293                        else
294                                inputboxchar(screen, inputbox, '2', screencalc, filelistview, flag);
295                }
296                else
297                {
298                        inputboxchar(screen, inputbox, '2', screencalc, filelistview, 1);
299                        inputboxright(screen, inputbox, screencalc, filelistview, flag);
300                }
301        }
302}
303
304void inputbox3(struct skin* screen, struct skin* inputbox, int screencalc, int filelistview, int flag)
305{
306        if(inputbox != NULL && inputbox->input != NULL)
307        {
308                int aktpage = inputbox->aktpage - 1;
309
310                if(inputbox->type & INPUTBOX)
311                {
312                        if(inputbox->input[aktpage] == '3')
313                                inputboxchar(screen, inputbox, 'd', screencalc, filelistview, flag);
314                        else if(inputbox->input[aktpage] == 'd')
315                                inputboxchar(screen, inputbox, 'e', screencalc, filelistview, flag);
316                        else if(inputbox->input[aktpage] == 'e')
317                                inputboxchar(screen, inputbox, 'f', screencalc, filelistview, flag);
318                        else if(inputbox->input[aktpage] == 'f')
319                                inputboxchar(screen, inputbox, 'D', screencalc, filelistview, flag);
320                        else if(inputbox->input[aktpage] == 'D')
321                                inputboxchar(screen, inputbox, 'E', screencalc, filelistview, flag);
322                        else if(inputbox->input[aktpage] == 'E')
323                                inputboxchar(screen, inputbox, 'F', screencalc, filelistview, flag);
324                        else
325                                inputboxchar(screen, inputbox, '3', screencalc, filelistview, flag);
326                }
327                else
328                {
329                        inputboxchar(screen, inputbox, '3', screencalc, filelistview, 1);
330                        inputboxright(screen, inputbox, screencalc, filelistview, flag);
331                }
332        }
333}
334
335void inputbox4(struct skin* screen, struct skin* inputbox, int screencalc, int filelistview, int flag)
336{
337        if(inputbox != NULL && inputbox->input != NULL)
338        {
339                int aktpage = inputbox->aktpage - 1;
340
341                if(inputbox->type & INPUTBOX)
342                {
343                        if(inputbox->input[aktpage] == '4')
344                                inputboxchar(screen, inputbox, 'g', screencalc, filelistview, flag);
345                        else if(inputbox->input[aktpage] == 'g')
346                                inputboxchar(screen, inputbox, 'h', screencalc, filelistview, flag);
347                        else if(inputbox->input[aktpage] == 'h')
348                                inputboxchar(screen, inputbox, 'i', screencalc, filelistview, flag);
349                        else if(inputbox->input[aktpage] == 'i')
350                                inputboxchar(screen, inputbox, 'G', screencalc, filelistview, flag);
351                        else if(inputbox->input[aktpage] == 'G')
352                                inputboxchar(screen, inputbox, 'H', screencalc, filelistview, flag);
353                        else if(inputbox->input[aktpage] == 'H')
354                                inputboxchar(screen, inputbox, 'I', screencalc, filelistview, flag);
355                        else
356                                inputboxchar(screen, inputbox, '4', screencalc, filelistview, flag);
357                }
358                else
359                {
360                        inputboxchar(screen, inputbox, '4', screencalc, filelistview, 1);
361                        inputboxright(screen, inputbox, screencalc, filelistview, flag);
362                }
363        }
364}
365
366void inputbox5(struct skin* screen, struct skin* inputbox, int screencalc, int filelistview, int flag)
367{
368        if(inputbox != NULL && inputbox->input != NULL)
369        {
370                int aktpage = inputbox->aktpage - 1;
371
372                if(inputbox->type & INPUTBOX)
373                {
374                        if(inputbox->input[aktpage] == '5')
375                                inputboxchar(screen, inputbox, 'j', screencalc, filelistview, flag);
376                        else if(inputbox->input[aktpage] == 'j')
377                                inputboxchar(screen, inputbox, 'k', screencalc, filelistview, flag);
378                        else if(inputbox->input[aktpage] == 'k')
379                                inputboxchar(screen, inputbox, 'l', screencalc, filelistview, flag);
380                        else if(inputbox->input[aktpage] == 'l')
381                                inputboxchar(screen, inputbox, 'J', screencalc, filelistview, flag);
382                        else if(inputbox->input[aktpage] == 'J')
383                                inputboxchar(screen, inputbox, 'K', screencalc, filelistview, flag);
384                        else if(inputbox->input[aktpage] == 'K')
385                                inputboxchar(screen, inputbox, 'L', screencalc, filelistview, flag);
386                        else
387                                inputboxchar(screen, inputbox, '5', screencalc, filelistview, flag);
388                }
389                else
390                {
391                        inputboxchar(screen, inputbox, '5', screencalc, filelistview, 1);
392                        inputboxright(screen, inputbox, screencalc, filelistview, flag);
393                }
394
395        }
396}
397
398void inputbox6(struct skin* screen, struct skin* inputbox, int screencalc, int filelistview, int flag)
399{
400        if(inputbox != NULL && inputbox->input != NULL)
401        {
402                int aktpage = inputbox->aktpage - 1;
403
404                if(inputbox->type & INPUTBOX)
405                {
406                        if(inputbox->input[aktpage] == '6')
407                                inputboxchar(screen, inputbox, 'm', screencalc, filelistview, flag);
408                        else if(inputbox->input[aktpage] == 'm')
409                                inputboxchar(screen, inputbox, 'n', screencalc, filelistview, flag);
410                        else if(inputbox->input[aktpage] == 'n')
411                                inputboxchar(screen, inputbox, 'o', screencalc, filelistview, flag);
412                        else if(inputbox->input[aktpage] == 'o')
413                                inputboxchar(screen, inputbox, 'M', screencalc, filelistview, flag);
414                        else if(inputbox->input[aktpage] == 'M')
415                                inputboxchar(screen, inputbox, 'N', screencalc, filelistview, flag);
416                        else if(inputbox->input[aktpage] == 'N')
417                                inputboxchar(screen, inputbox, 'O', screencalc, filelistview, flag);
418                        else
419                                inputboxchar(screen, inputbox, '6', screencalc, filelistview, flag);
420                }
421                else
422                {
423                        inputboxchar(screen, inputbox, '6', screencalc, filelistview, 1);
424                        inputboxright(screen, inputbox, screencalc, filelistview, flag);
425                }
426        }
427}
428
429void inputbox7(struct skin* screen, struct skin* inputbox, int screencalc, int filelistview, int flag)
430{
431        if(inputbox != NULL && inputbox->input != NULL)
432        {
433                int aktpage = inputbox->aktpage - 1;
434
435                if(inputbox->type & INPUTBOX)
436                {
437                        if(inputbox->input[aktpage] == '7')
438                                inputboxchar(screen, inputbox, 'p', screencalc, filelistview, flag);
439                        else if(inputbox->input[aktpage] == 'p')
440                                inputboxchar(screen, inputbox, 'q', screencalc, filelistview, flag);
441                        else if(inputbox->input[aktpage] == 'q')
442                                inputboxchar(screen, inputbox, 'r', screencalc, filelistview, flag);
443                        else if(inputbox->input[aktpage] == 'r')
444                                inputboxchar(screen, inputbox, 's', screencalc, filelistview, flag);
445                        else if(inputbox->input[aktpage] == 's')
446                                inputboxchar(screen, inputbox, 'P', screencalc, filelistview, flag);
447                        else if(inputbox->input[aktpage] == 'P')
448                                inputboxchar(screen, inputbox, 'Q', screencalc, filelistview, flag);
449                        else if(inputbox->input[aktpage] == 'Q')
450                                inputboxchar(screen, inputbox, 'R', screencalc, filelistview, flag);
451                        else if(inputbox->input[aktpage] == 'R')
452                                inputboxchar(screen, inputbox, 'S', screencalc, filelistview, flag);
453                        else
454                                inputboxchar(screen, inputbox, '7', screencalc, filelistview, flag);
455                }
456                else
457                {
458                        inputboxchar(screen, inputbox, '7', screencalc, filelistview, 1);
459                        inputboxright(screen, inputbox, screencalc, filelistview, flag);
460                }
461        }
462}
463
464void inputbox8(struct skin* screen, struct skin* inputbox, int screencalc, int filelistview, int flag)
465{
466        if(inputbox != NULL && inputbox->input != NULL)
467        {
468                int aktpage = inputbox->aktpage - 1;
469
470                if(inputbox->type & INPUTBOX)
471                {
472                        if(inputbox->input[aktpage] == '8')
473                                inputboxchar(screen, inputbox, 't', screencalc, filelistview, flag);
474                        else if(inputbox->input[aktpage] == 't')
475                                inputboxchar(screen, inputbox, 'u', screencalc, filelistview, flag);
476                        else if(inputbox->input[aktpage] == 'u')
477                                inputboxchar(screen, inputbox, 'v', screencalc, filelistview, flag);
478                        else if(inputbox->input[aktpage] == 'v')
479                                inputboxchar(screen, inputbox, 'T', screencalc, filelistview, flag);
480                        else if(inputbox->input[aktpage] == 'T')
481                                inputboxchar(screen, inputbox, 'U', screencalc, filelistview, flag);
482                        else if(inputbox->input[aktpage] == 'U')
483                                inputboxchar(screen, inputbox, 'V', screencalc, filelistview, flag);
484                        else
485                                inputboxchar(screen, inputbox, '8', screencalc, filelistview, flag);
486                }
487                else
488                {
489                        inputboxchar(screen, inputbox, '8', screencalc, filelistview, 1);
490                        inputboxright(screen, inputbox, screencalc, filelistview, flag);
491                }
492        }
493}
494
495void inputbox9(struct skin* screen, struct skin* inputbox, int screencalc, int filelistview, int flag)
496{
497        if(inputbox != NULL && inputbox->input != NULL)
498        {
499                int aktpage = inputbox->aktpage - 1;
500
501                if(inputbox->type & INPUTBOX)
502                {
503                        if(inputbox->input[aktpage] == '9')
504                                inputboxchar(screen, inputbox, 'w', screencalc, filelistview, flag);
505                        else if(inputbox->input[aktpage] == 'w')
506                                inputboxchar(screen, inputbox, 'x', screencalc, filelistview, flag);
507                        else if(inputbox->input[aktpage] == 'x')
508                                inputboxchar(screen, inputbox, 'y', screencalc, filelistview, flag);
509                        else if(inputbox->input[aktpage] == 'y')
510                                inputboxchar(screen, inputbox, 'z', screencalc, filelistview, flag);
511                        else if(inputbox->input[aktpage] == 'z')
512                                inputboxchar(screen, inputbox, 'W', screencalc, filelistview, flag);
513                        else if(inputbox->input[aktpage] == 'W')
514                                inputboxchar(screen, inputbox, 'X', screencalc, filelistview, flag);
515                        else if(inputbox->input[aktpage] == 'X')
516                                inputboxchar(screen, inputbox, 'Y', screencalc, filelistview, flag);
517                        else if(inputbox->input[aktpage] == 'Y')
518                                inputboxchar(screen, inputbox, 'Z', screencalc, filelistview, flag);
519                        else
520                                inputboxchar(screen, inputbox, '9', screencalc, filelistview, flag);
521                }
522                else
523                {
524                        inputboxchar(screen, inputbox, '9', screencalc, filelistview, 1);
525                        inputboxright(screen, inputbox, screencalc, filelistview, flag);
526                }
527        }
528}
529
530void choiceboxleft(struct skin* screen, struct skin* choicebox, int screencalc, int filelistview, int flag)
531{
532        if(choicebox != NULL)
533        {
534                if(choicebox->aktpage <= 1)
535                        choicebox->aktpage = choicebox->linecount;
536                else
537                        choicebox->aktpage--;
538                drawscreen(screen, screencalc, flag);
539        }
540}
541
542void choiceboxright(struct skin* screen, struct skin* choicebox, int screencalc, int filelistview, int flag)
543{
544        if(choicebox != NULL)
545        {
546                if(choicebox->aktpage >= choicebox->linecount)
547                        choicebox->aktpage = 1;
548                else
549                {
550                        if(choicebox->aktpage < 1) choicebox->aktpage = 1;
551                        choicebox->aktpage++;
552                }
553                drawscreen(screen, screencalc, flag);
554        }
555}
556
557void griddown(struct skin* screen, struct skin* grid, int screencalc, int filelistview, int flag)
558{
559        int end = 0, br = 0, mark = 0;
560        struct skin* node = NULL;
561
562        if(grid != NULL)
563        {
564                if(grid->select != NULL && grid->gridcol == 0)
565                        grid->gridcol = grid->select->posx + (grid->select->width / 2);
566
567                node = grid->select;
568                while(node != NULL)
569                {
570                        if(node->next == NULL && node != grid->select && ((node->type & GRIDBR))) break;
571                        if(node->next == NULL || node->deaktivcol != -1 || node->hidden == YES || node->locked == YES || (node->parentpointer != grid && ostrcmp(node->parent, grid->name) != 0))
572                        {
573                                node = node->next;
574                                if(node == NULL && mark == 0)
575                                {
576                                        //go to the first cell
577                                        node = grid->next;
578                                        mark = 1;
579                                        grid->aktline = 1;
580                                }
581                                continue;
582                        }
583
584                        if((node->type & GRIDBR) && node != grid->select) br++;
585                        if(br > 1)
586                        {
587                                grid->aktline--;
588                                break;
589                        }
590
591                        if(br > 0)
592                        {
593                                end = node->posx + node->width;
594                                if(end <= grid->gridcol)
595                                {
596                                        grid->aktline++;
597                                        node = node->next;
598                                        continue;
599                                }
600                                break;
601                        }
602
603                        grid->aktline++;
604                        node = node->next;
605                }
606
607                grid->aktpage = -1;
608                if(grid->aktline > grid->linecount || grid->aktline < 1)
609                        grid->aktline = grid->linecount;
610
611                if(grid->select != NULL) delscreenrc(screen, grid->select);
612                drawscreen(screen, screencalc, flag);
613        }
614}
615
616void gridup(struct skin* screen, struct skin* grid, int screencalc, int filelistview, int flag)
617{
618        int start = 0, br = 0, mark = 0;
619        struct skin* node = NULL, *tmpnode = NULL;;
620
621        if(grid != NULL)
622        {
623                if(grid->select != NULL && grid->gridcol == 0)
624                        grid->gridcol = grid->select->posx + (grid->select->width / 2);
625
626                node = grid->select;
627                while(node != NULL)
628                {
629               
630                        if(node->prev == NULL || node->prev == grid || node->deaktivcol != -1 || node->hidden == YES || node->locked == YES || (node->prev->parentpointer != grid && ostrcmp(node->prev->parent, grid->name) != 0))
631                        {
632                                if(br > 0 && (node->type & GRIDBR) && !(node->deaktivcol != -1 || node->hidden == YES || node->locked == YES)) break;
633
634                                node = node->prev;
635                                if(node == grid && mark == 0)
636                                {
637                                        while(node != NULL)
638                                        {
639                                                if(node->parentpointer == grid || ostrcmp(node->parent, grid->name) == 0)
640                                                        tmpnode = node;
641                                                node = node->next;
642                                        }
643                                        if(tmpnode == NULL) break;
644                                        node = tmpnode;
645                                        grid->aktline = grid->linecount;
646                                        if(br == 0) br++;
647                                }
648                                continue;
649                        }
650
651                        if(br > 1)
652                        {
653                                grid->aktline++;
654                                break;
655                        }
656
657                        if(br > 0)
658                        {
659                                start = node->posx;
660                                if(start > grid->gridcol)
661                                {
662                                        grid->aktline--;
663                                        node = node->prev;
664                                        continue;
665                                }
666                                break;
667                        }
668
669                        if(node->type & GRIDBR) br++;
670
671                        grid->aktline--;
672                        node = node->prev;
673                }
674
675                grid->aktpage = -1;
676                if(grid->aktline < 1 || grid->aktline > grid->linecount)
677                        grid->aktline = 1;
678
679                if(grid->select != NULL) delscreenrc(screen, grid->select);
680                drawscreen(screen, screencalc, flag);
681        }
682}
683
684void gridleft(struct skin* screen, struct skin* grid, int screencalc, int filelistview, int flag)
685{
686        struct skin* node = NULL;
687
688        if(grid != NULL)
689        {
690                node = grid->select;
691                if(node != NULL && (node->type & GRIDBR))
692                {
693                        grid->aktpage = -1;
694                        while(node != NULL)
695                        {
696                                if(node->parentpointer == grid || ostrcmp(node->parent, grid->name) == 0)
697                                {
698                                        if(node->next == NULL || (node->next->type & GRIDBR))
699                                                break;
700                                        else
701                                                grid->aktline++;
702                                }
703                                node = node->next;
704                        }
705                }
706                else
707                {
708                        grid->aktpage = -1;
709                        grid->aktline--;
710                        if(grid->aktline < 1) grid->aktline = 1;
711                }
712
713                if(grid->select != NULL) delscreenrc(screen, grid->select);
714                drawscreen(screen, screencalc, flag);
715                if(grid->select != NULL)
716                        grid->gridcol = grid->select->posx + (grid->select->width / 2);
717        }
718}
719
720void gridright(struct skin* screen, struct skin* grid, int screencalc, int filelistview, int flag)
721{
722        struct skin* node = NULL;
723
724        if(grid != NULL)
725        {
726                node = grid->select;
727                if((node != NULL && node->next != NULL && (node->next->type & GRIDBR)) || grid->aktline == grid->linecount)
728                {
729                        grid->aktpage = -1;
730                        while(node != NULL)
731                        {
732                                if(node->parentpointer == grid || ostrcmp(node->parent, grid->name) == 0)
733                                {
734                                        if(node == NULL || (node->type & GRIDBR))
735                                                break;
736                                        else
737                                                grid->aktline--;
738                                }
739                                node = node->prev;
740                        }
741                }
742                else
743                {
744                        grid->aktpage = -1;
745                        if(grid->aktline <= grid->linecount)
746                                grid->aktline++;
747                        if(grid->aktline > grid->linecount)
748                                grid->aktline = grid->linecount;
749                }
750
751                if(grid->select != NULL) delscreenrc(screen, grid->select);
752                drawscreen(screen, screencalc, flag);
753                if(grid->select != NULL)
754                        grid->gridcol = grid->select->posx + (grid->select->width / 2);
755        }
756}
757
758void gridchup(struct skin* screen, struct skin* grid, int screencalc, int filelistview, int flag)
759{
760        if(grid != NULL)
761        {
762                grid->aktline = -1;
763                grid->aktpage--;
764                if(grid->aktpage < 1)
765                        grid->aktpage = 1;
766
767                drawscreen(screen, screencalc, flag);
768                if(grid->select != NULL)
769                        grid->gridcol = grid->select->posx + (grid->select->width / 2);
770        }
771}
772
773void gridchdown(struct skin* screen, struct skin* grid, int screencalc, int filelistview, int flag)
774{
775        if(grid != NULL)
776        {
777                grid->aktline = -1;
778                grid->aktpage++;
779                if(grid->aktpage > grid->pagecount)
780                {
781                        grid->aktpage = grid->pagecount;
782                        grid->aktline = -2;
783                }
784
785                drawscreen(screen, screencalc, flag);
786                if(grid->select != NULL)
787                        grid->gridcol = grid->select->posx + (grid->select->width / 2);
788        }
789}
790
791
792void listboxleft(struct skin* screen, struct skin* listbox, int screencalc, int filelistview, int flag)
793{
794        if(listbox != NULL)
795        {
796                listbox->aktline = -1;
797                listbox->aktpage--;
798                if(listbox->aktpage < 1)
799                        listbox->aktpage = 1;
800
801                if(listbox->select != NULL) delscreenrc(screen, listbox->select);
802                drawscreen(screen, screencalc, flag);
803        }
804}
805
806void listboxright(struct skin* screen, struct skin* listbox, int screencalc, int filelistview, int flag)
807{
808        if(listbox != NULL)
809        {
810                listbox->aktline = -1;
811                listbox->aktpage++;
812                if(listbox->aktpage > listbox->pagecount)
813                {
814                        listbox->aktpage = listbox->pagecount;
815                        listbox->aktline = -2;
816                }
817
818                if(listbox->select != NULL) delscreenrc(screen, listbox->select);
819                drawscreen(screen, screencalc, flag);
820        }
821}
822
823void listboxup(struct skin* screen, struct skin* listbox, int screencalc, int filelistview, int flag)
824{
825        if(listbox != NULL)
826        {
827                listbox->aktpage = -1;
828                listbox->aktline--;
829                if(listbox->aktline < 1)
830                        listbox->aktline = listbox->linecount;
831
832                if(listbox->select != NULL) delscreenrc(screen, listbox->select);
833                drawscreen(screen, screencalc, flag);
834        }
835}
836
837void listboxdown(struct skin* screen, struct skin* listbox, int screencalc, int filelistview, int flag)
838{
839        if(listbox != NULL)
840        {
841                listbox->aktpage = -1;
842                if(listbox->aktline <= listbox->linecount)
843                        listbox->aktline++;
844                if(listbox->aktline > listbox->linecount)
845                        listbox->aktline = 1;
846
847                if(listbox->select != NULL) delscreenrc(screen, listbox->select);
848                drawscreen(screen, screencalc, flag);
849        }
850}
851
852void textboxup(struct skin* screen, struct skin* textbox, int screencalc, int filelistview, int flag)
853{
854        if(textbox != NULL)
855        {
856                if(textbox->aktpage > 1)
857                {
858                        textbox->aktpage--;
859                        drawscreen(screen, screencalc, flag);
860                }
861        }
862}
863
864void textboxdown(struct skin* screen, struct skin* textbox, int screencalc, int filelistview, int flag)
865{
866        if(textbox != NULL)
867        {
868                if(textbox->aktpage < textbox->pagecount)
869                {
870                        textbox->aktpage++;
871                        drawscreen(screen, screencalc, flag);
872                }
873        }
874}
875
876int addscreenrc(struct skin* screen, struct skin* node)
877{
878        if(node == NULL)
879        {
880                err("NULL detect");
881                return 1;
882        }
883
884        if(node->type & GRID)
885        {
886                addrc(getrcconfigint("rcright", NULL), gridright, screen, node);
887                addrc(getrcconfigint("rcleft", NULL), gridleft, screen, node);
888                addrc(getrcconfigint("rcup", NULL), gridup, screen, node);
889                addrc(getrcconfigint("rcdown", NULL), griddown, screen, node);
890                addrc(getrcconfigint("rcchup", NULL), gridchup, screen, node);
891                addrc(getrcconfigint("rcchdown", NULL), gridchdown, screen, node);
892                addrc(getrcconfigint("rchelp", NULL), helpbox, screen, node);
893                if(node->type & FILELIST)
894                        addrc(getrcconfigint("rcok", NULL), filelistok, screen, node);
895        }
896        else if(node->type & LISTBOX)
897        {
898                addrc(getrcconfigint("rcup", NULL), listboxup, screen, node);
899                addrc(getrcconfigint("rcdown", NULL), listboxdown, screen, node);
900                addrc(getrcconfigint("rcright", NULL), listboxright, screen, node);
901                addrc(getrcconfigint("rcleft", NULL), listboxleft, screen, node);
902                addrc(getrcconfigint("rcchup", NULL), listboxleft, screen, node);
903                addrc(getrcconfigint("rcchdown", NULL), listboxright, screen, node);
904                addrc(getrcconfigint("rchelp", NULL), helpbox, screen, node);
905        }
906        else if(node->type & CHOICEBOX)
907        {
908                addrc(getrcconfigint("rcleft", NULL), choiceboxleft, screen, node);
909                addrc(getrcconfigint("rcright", NULL), choiceboxright, screen, node);
910                addrc(getrcconfigint("rchelp", NULL), helpbox, screen, node);
911        }
912        else if((node->type & INPUTBOX) || (node->type & INPUTBOXNUM))
913        {
914                addrc(getrcconfigint("rc0", NULL), inputbox0, screen, node);
915                addrc(getrcconfigint("rc1", NULL), inputbox1, screen, node);
916                addrc(getrcconfigint("rc2", NULL), inputbox2, screen, node);
917                addrc(getrcconfigint("rc3", NULL), inputbox3, screen, node);
918                addrc(getrcconfigint("rc4", NULL), inputbox4, screen, node);
919                addrc(getrcconfigint("rc5", NULL), inputbox5, screen, node);
920                addrc(getrcconfigint("rc6", NULL), inputbox6, screen, node);
921                addrc(getrcconfigint("rc7", NULL), inputbox7, screen, node);
922                addrc(getrcconfigint("rc8", NULL), inputbox8, screen, node);
923                addrc(getrcconfigint("rc9", NULL), inputbox9, screen, node);
924                addrc(getrcconfigint("rcright", NULL), inputboxright, screen, node);
925                addrc(getrcconfigint("rcleft", NULL), inputboxleft, screen, node);
926                addrc(getrcconfigint("rchelp", NULL), helpbox, screen, node);
927                if(node->type & INPUTBOX) addrc(getrcconfigint("rcff", NULL), inputboxff, screen, node);
928                if(node->type & INPUTBOX) addrc(getrcconfigint("rcfr", NULL), inputboxfr, screen, node);
929                if(node->type & INPUTBOX) addrc(getrcconfigint("rctext", NULL), inputboxhelp, screen, node);
930        }
931        else if(node->type & TEXTBOX)
932        {
933                addrc(getrcconfigint("rcup", NULL), textboxup, screen, node);
934                addrc(getrcconfigint("rcdown", NULL), textboxdown, screen, node);
935                addrc(getrcconfigint("rcchup", NULL), textboxup, screen, node);
936                addrc(getrcconfigint("rcchdown", NULL), textboxdown, screen, node);
937                addrc(getrcconfigint("rchelp", NULL), helpbox, screen, node);
938        }
939        else if(node->type & FILELIST)
940        {
941                addrc(getrcconfigint("rcup", NULL), listboxup, screen, node);
942                addrc(getrcconfigint("rcdown", NULL), listboxdown, screen, node);
943                addrc(getrcconfigint("rcright", NULL), listboxright, screen, node);
944                addrc(getrcconfigint("rcleft", NULL), listboxleft, screen, node);
945                addrc(getrcconfigint("rcok", NULL), filelistok, screen, node);
946                //addrc(getrcconfigint("rcchup", NULL), listboxleft, screen, node);
947                //addrc(getrcconfigint("rcchdown", NULL), listboxright, screen, node);
948                addrc(getrcconfigint("rchelp", NULL), helpbox, screen, node);
949        }
950        else if(node->type & PROGRESSBAR)
951        {
952                addrc(getrcconfigint("rcleft", NULL), progressbarleft, screen, node);
953                addrc(getrcconfigint("rcright", NULL), progressbarright, screen, node);
954                addrc(getrcconfigint("rchelp", NULL), helpbox, screen, node);
955        }
956
957        return 0;
958}
959
960int delscreenrc(struct skin* screen, struct skin* node)
961{
962        if(node == NULL)
963        {
964                err("NULL detect");
965                return 1;
966        }
967
968        if(node->type & GRID)
969        {
970                delrc(getrcconfigint("rcright", NULL), screen, node);
971                delrc(getrcconfigint("rcleft", NULL), screen, node);
972                delrc(getrcconfigint("rcup", NULL), screen, node);
973                delrc(getrcconfigint("rcdown", NULL), screen, node);
974                delrc(getrcconfigint("rcchup", NULL), screen, node);
975                delrc(getrcconfigint("rcchdown", NULL), screen, node);
976                delrc(getrcconfigint("rchelp", NULL), screen, node);
977                if(node->type & FILELIST)
978                        delrc(getrcconfigint("rcok", NULL), screen, node);
979        }
980        else if(node->type & LISTBOX)
981        {
982                delrc(getrcconfigint("rcup", NULL), screen, node);
983                delrc(getrcconfigint("rcdown", NULL), screen, node);
984                delrc(getrcconfigint("rcright", NULL), screen, node);
985                delrc(getrcconfigint("rcleft", NULL), screen, node);
986                delrc(getrcconfigint("rcchup", NULL), screen, node);
987                delrc(getrcconfigint("rcchdown", NULL), screen, node);
988                delrc(getrcconfigint("rchelp", NULL), screen, node);
989        }
990        else if(node->type & CHOICEBOX)
991        {
992                delrc(getrcconfigint("rcleft", NULL), screen, node);
993                delrc(getrcconfigint("rcright", NULL), screen, node);
994                delrc(getrcconfigint("rchelp", NULL), screen, node);
995        }
996        else if((node->type & INPUTBOX) || (node->type & INPUTBOXNUM))
997        {
998                delrc(getrcconfigint("rc0", NULL), screen, node);
999                delrc(getrcconfigint("rc1", NULL), screen, node);
1000                delrc(getrcconfigint("rc2", NULL), screen, node);
1001                delrc(getrcconfigint("rc3", NULL), screen, node);
1002                delrc(getrcconfigint("rc4", NULL), screen, node);
1003                delrc(getrcconfigint("rc5", NULL), screen, node);
1004                delrc(getrcconfigint("rc6", NULL), screen, node);
1005                delrc(getrcconfigint("rc7", NULL), screen, node);
1006                delrc(getrcconfigint("rc8", NULL), screen, node);
1007                delrc(getrcconfigint("rc9", NULL), screen, node);
1008                delrc(getrcconfigint("rcright", NULL), screen, node);
1009                delrc(getrcconfigint("rcleft", NULL), screen, node);
1010                delrc(getrcconfigint("rchelp", NULL), screen, node);
1011                if(node->type & INPUTBOX) delrc(getrcconfigint("rcff", NULL), screen, node);
1012                if(node->type & INPUTBOX) delrc(getrcconfigint("rcfr", NULL), screen, node);
1013                if(node->type & INPUTBOX) delrc(getrcconfigint("rchelp", NULL), screen, node);
1014        }
1015        else if(node->type & TEXTBOX)
1016        {
1017                delrc(getrcconfigint("rcup", NULL), screen, node);
1018                delrc(getrcconfigint("rcdown", NULL), screen, node);
1019                delrc(getrcconfigint("rcchup", NULL), screen, node);
1020                delrc(getrcconfigint("rcchdown", NULL), screen, node);
1021                delrc(getrcconfigint("rchelp", NULL), screen, node);
1022        }
1023        else if(node->type & FILELIST)
1024        {
1025                delrc(getrcconfigint("rcup", NULL), screen, node);
1026                delrc(getrcconfigint("rcdown", NULL), screen, node);
1027                delrc(getrcconfigint("rcright", NULL), screen, node);
1028                delrc(getrcconfigint("rcleft", NULL), screen, node);
1029                delrc(getrcconfigint("rcok", NULL), screen, node);
1030                //delrc(getrcconfigint("rcchup", NULL), screen, node);
1031                //delrc(getrcconfigint("rcchdown", NULL), screen, node);
1032                delrc(getrcconfigint("rchelp", NULL), screen, node);
1033        }
1034        else if(node->type & PROGRESSBAR)
1035        {
1036                delrc(getrcconfigint("rcleft", NULL), screen, node);
1037                delrc(getrcconfigint("rcright", NULL), screen, node);
1038                delrc(getrcconfigint("rchelp", NULL), screen, node);
1039        }
1040
1041        return 0;
1042}
1043
1044#endif
Note: See TracBrowser for help on using the repository browser.