source: titan/titan/listedit.h @ 15272

Last change on this file since 15272 was 14056, checked in by nit, 10 years ago

[titan] fix listedit

File size: 3.5 KB
Line 
1#ifndef LISTEDIT_H
2#define LISTEDIT_H
3
4int screenlistedit(int list, struct channel* chnode)
5{
6        int rcret = 0, ret = NOMODE, startchannel = 0;
7        struct skin* listedit = getscreen("listedit");
8        struct skin* listbox = getscreennode(listedit, "listbox");
9        struct skin* cpmode = getscreennode(listedit, "cpmode");
10        struct skin* rmmode = getscreennode(listedit, "rmmode");
11        struct skin* movemode = getscreennode(listedit, "movemode");
12        struct skin* protectmode = getscreennode(listedit, "protectmode");
13        struct skin* addmode = getscreennode(listedit, "addmode");
14        struct skin* editmode = getscreennode(listedit, "editmode");
15        struct skin* setstartchannel = getscreennode(listedit, "setstartchannel");
16        struct skin* delstartchannel = getscreennode(listedit, "delstartchannel");
17        char* newentry = NULL, *tmpstr = NULL, *tmpnr = NULL;
18
19        listbox->aktline = 1;
20        listbox->aktpage = -1;
21
22        cpmode->hidden = NO;
23        rmmode->hidden = NO;
24        movemode->hidden = NO;
25        protectmode->hidden = NO;
26        addmode->hidden = YES;
27        editmode->hidden = YES;
28        setstartchannel->hidden = YES;
29        delstartchannel->hidden = YES;
30
31        if(list == SATCHANNEL || list == PROVIDERCHANNEL || list == AZCHANNEL)
32                movemode->hidden = YES;
33        if(list == SATLIST || list == PROVIDERLIST || list == MAINBOUQUETLIST)
34        {
35                cpmode->hidden = YES;
36                protectmode->hidden = YES;
37        }
38        if(list == MAINBOUQUETLIST)
39        {
40                addmode->hidden = NO;
41                editmode->hidden = NO;
42        }
43
44        if(list == ALLCHANNEL || list == SATCHANNEL || list == PROVIDERCHANNEL || list == AZCHANNEL || list == BOUQUETCHANNEL)
45        {
46                if(chnode != NULL)
47                {
48                        startchannel = 1;
49                        setstartchannel->hidden = NO;
50                }
51                delstartchannel->hidden = NO;
52                editmode->hidden = NO;
53        }
54
55        drawscreen(listedit, 0);
56        addscreenrc(listedit, listbox);
57
58        while(1)
59        {
60                rcret = waitrc(listedit, 0, 0);
61       
62                if(rcret == getrcconfigint("rcexit", NULL)) break;
63                if(rcret == getrcconfigint("rcok", NULL) && listbox->select != NULL)
64                {
65                        if(ostrcmp(listbox->select->name, "movemode") == 0)
66                                ret = MVMODE;
67                        if(ostrcmp(listbox->select->name, "rmmode") == 0)
68                                ret = RMMODE;
69                        if(ostrcmp(listbox->select->name, "cpmode") == 0)
70                                ret = CPMODE;
71                        if(ostrcmp(listbox->select->name, "protectmode") == 0)
72                                ret = PROTECTMODE;
73                        if(ostrcmp(listbox->select->name, "editmode") == 0)
74                                ret = EDITMODE;
75                        if(ostrcmp(listbox->select->name, "addmode") == 0)
76                        {
77                                newentry = textinput(NULL, "bouquet");
78                                if(newentry != NULL)
79                                {
80                                        newentry = stringreplacechar(newentry, '#', '_');
81                                        tmpstr = ostrcat(newentry, "#", 0, 0);
82                                        tmpnr = oitoa(status.servicetype);
83                                        tmpstr = ostrcat(tmpstr, tmpnr, 1, 0);
84                                        free(tmpnr); tmpnr = NULL;
85                                        tmpstr = ostrcat(tmpstr, "#", 1, 0);
86                                        tmpstr = ostrcat(tmpstr, getconfig("bouquetpath", NULL), 1, 0);
87                                        tmpstr = ostrcat(tmpstr, "/", 1, 0);
88                                        tmpstr = ostrcat(tmpstr, "bouquets.", 1, 0);
89                                        tmpstr = ostrcat(tmpstr, newentry, 1, 1);
90                                        addmainbouquet(tmpstr, 1, NULL);
91                                        free(tmpstr); tmpstr = NULL;
92                                }
93                        }
94                        if(startchannel == 1 && ostrcmp(listbox->select->name, "setstartchannel") == 0)
95                        {
96                                addconfig("startchannellist", getconfig("channellist", NULL));
97                                addconfigint("startserviceid", chnode->serviceid);
98                                addconfiglu("starttransponderid", chnode->transponderid);
99                                addconfig("startservicetype", getconfig("servicetype", NULL));
100                        }
101                        if(startchannel == 1 && ostrcmp(listbox->select->name, "delstartchannel") == 0)
102                        {
103                                delconfig("startchannellist");
104                                delconfig("startserviceid");
105                                delconfig("starttransponderid");
106                                delconfig("startservicetype");
107                        }
108                        break;
109                }
110        }
111
112        delownerrc(listedit);
113        clearscreen(listedit);
114        return ret;
115}
116
117#endif
Note: See TracBrowser for help on using the repository browser.