source: titan/titan/language.h @ 32105

Last change on this file since 32105 was 26863, checked in by obi, 10 years ago

fix textbox size on language.h

File size: 1.6 KB
Line 
1#ifndef LANGUAGE_H
2#define LANGUAGE_H
3
4//flag 0: with reboot
5//flag 1: without reboot
6//flag 2: reload skin
7int screenlanguage(int flag)
8{
9        int rcret = 0, change = 0, reloadskin = 0;
10        struct skin* language = getscreen("language");
11        struct skin* listbox = getscreennode(language, "listbox");
12
13        if(listbox == NULL || language == NULL)
14        {
15                err("NULL detect");
16                return 1;
17        }
18
19        setlistboxselection(listbox, getconfig("lang", NULL));
20
21        drawscreen(language, 0, 0);
22        addscreenrc(language, listbox);
23
24        while(1)
25        {
26                rcret = waitrc(language, 0, 0);
27
28                if (rcret == getrcconfigint("rcexit", NULL)) break;
29
30                if(rcret == getrcconfigint("rcok", NULL) || rcret == getrcconfigint("rcgreen", NULL))
31                {
32                        if(listbox->select != NULL && ostrcmp(listbox->select->name, getconfig("lang", NULL)) != 0)
33                        {
34                                if(ostrcmp(listbox->select->name, "po/en") == 0)
35                                {
36                                        setlang(listbox->select->name);
37                                        initlocale(getconfig("localepath", NULL));
38                                        addconfig("lang", listbox->select->name);
39                                        change = 1;
40                                }
41                                else if(setlang(listbox->select->name) == 0 && initlocale(getconfig("localepath", NULL)) == 0)
42                                {
43                                        addconfig("lang", listbox->select->name);
44                                        change = 1;
45                                }
46
47                                if(flag == 0 && change == 1)
48                                {
49                                        textbox(_("Message"), _("Change language needs reboot"), NULL, 0, NULL, 0, NULL, 0, NULL, 0, 1000, 200, 5, 0);
50                                        oshutdown(3, 1);
51                                }
52                                if(flag == 2 && change == 1)
53                                        reloadskin = 1;
54                        }
55                        break;
56                }
57        }
58
59        delownerrc(language);
60        clearscreen(language);
61
62        if(reloadskin == 1)
63        {
64                status.skinerr = NULL;
65                freescreen();
66                if(createstartscreen() != 0) return 2;
67                readscreen(getconfig("skinfile", NULL), 0, 0);
68        }
69        return 0;
70}
71
72#endif
Note: See TracBrowser for help on using the repository browser.