source: titan/plugins/networkbrowser/networkbrowser_menulist.h @ 14391

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

[titan] fix mc vp playlist

File size: 7.2 KB
Line 
1#ifndef NETWORKBROWSER_MENULIST_H
2#define NETWORKBROWSER_MENULIST_H
3
4// showpng = 0 (no icon)
5// showpng = 1 (smal icon)
6// showpng = 2 (big icon) (ipk)
7// showpng = 3 (networkbrowser)
8// showpng = 4 same as 1 the first arg splittet ")( " (networkbrowser/harddisk)
9
10char* networkbrowser_listbox(char* defaultstr, char* str, char* skinname, char* skintitle, char* skinpath, int showpng)
11{
12        debug(1000, "in");
13        char* skinname1 = NULL;
14        char* skinpath1 = NULL;
15        char* tmpskinpath = NULL;
16        char* tmppic = NULL;
17        int rcret = 0;
18
19        if (str == NULL)
20                return 0;
21
22        if (skinname == NULL){
23                debug(60, "skinname default=menulist");
24                skinname1 = ostrcat(skinname, "menulist", 1, 0);
25        } else {
26                debug(60, "skinname changed=%s", skinname);
27                skinname1 = ostrcat(skinname, "", 0, 0);
28        }
29
30        if (skinpath == NULL){
31                debug(60, "skinpath default=skin/");
32                skinpath1 = ostrcat(skinpath, "skin/", 1, 0);
33        } else {
34                debug(60, "skinpath changed=%s", skinpath);
35                skinpath1 = ostrcat(skinpath, "", 0, 0);
36        }
37
38        struct skin* screen = getscreen(skinname1);
39        struct skin* listbox = getscreennode(screen, "listbox");
40       
41        listbox->aktpage = -1;
42        listbox->aktline = 1;
43
44        if(skintitle != NULL){
45                debug(60, "skintitle changed=%s", skintitle);
46                changetitle(screen, _(skintitle));
47        }
48
49        struct skin* tmp = NULL;
50        char* tmpstr = NULL;
51        char* defaultdir = NULL;
52        char* tmpsplit = NULL;
53//      char* tmpck = NULL;
54        char* tmpstr1 = NULL;
55        char* tmpstr4 = NULL;
56        char* tmpstr5 = NULL;
57
58        struct splitstr* ret1 = NULL;
59        struct splitstr* ret2 = NULL;
60        struct splitstr* ret3 = NULL;
61        int count = 0;
62        int i = 0;
63        ret1 = strsplit(str, "\n", &count);
64
65//      if(showpng == 2)
66//              tmpck = get_ipk_listinstall();
67//              tmpck = ostrcat(tmpck, get_ipk_listinstall(), 1, 0);
68
69        for( i = 0; i < count; i++)
70        {
71                int count2 = 0;
72                tmpsplit = ostrcat(tmpsplit, (&ret1[i])->part, 1, 0);
73                free(ret2); ret2 = NULL;
74                ret2 = strsplit(tmpsplit, "-", &count2);
75
76                tmp = addlistbox(screen, listbox, tmp, 1);
77               
78                if(tmp != NULL)
79                {
80                        changetext(tmp, _((&ret1[i])->part));
81                        changename(tmp, (&ret1[i])->part);
82
83                        tmp->del = 1;
84                        if((showpng == 1) || (showpng == 3) || (showpng == 4))
85                        {
86                                tmp->textposx = 120;
87                                tmp->height = 50;
88//                              tmp->fontsize = 30;
89                                tmp->valign = convertxmlentry("middle", 0);
90                                tmp->hspace = 5;
91                                debug(60, "showpng changed=%d", showpng);
92                        }
93                        else
94                        {
95                                debug(60, "showpng default=%d", showpng);
96                        }
97
98                        if(ostrcmp((&ret1[i])->part, "\t") == 0)
99                                tmp->deaktivcol = convertcol("deaktivcol");
100                        else
101                        {
102                                if(showpng == 1)
103                                {
104                                        struct splitstr* ret6 = NULL;
105                                        int count6 = 0;
106                                        char* tmpstr6 = NULL;
107                                        tmpstr6 = ostrcat("", skinpath1, 0, 0);
108                                        ret6 = strsplit(tmpstr6, "%", &count6);
109                                        defaultdir = ostrcat(getconfig("skinpath", NULL), "/skin/netbrowser_", 0, 0);
110                                        defaultdir = ostrcat(defaultdir, (&ret1[i])->part, 1, 0);
111                                        defaultdir = ostrcat(defaultdir, ".png", 1, 0);
112                                        debug(70, "defaultdir1 %s", defaultdir);
113                                        if(!file_exist(defaultdir))
114                                        {
115                                                defaultdir = ostrcat(getconfig("pluginpath", NULL), (&ret6[1])->part, 0, 0);
116                                                defaultdir = ostrcat(defaultdir, "netbrowser_", 0, 0);
117                                                defaultdir = ostrcat(defaultdir, (&ret1[i])->part, 1, 0);
118                                                defaultdir = ostrcat(defaultdir, ".png", 1, 0);
119                                        }
120                                        free(ret6), ret6 = NULL;
121                                        debug(70, "defaultdir1 %s", defaultdir);
122
123                                        if(file_exist(defaultdir))
124                                        {
125                                                tmpskinpath = ostrcat("", defaultdir, 0, 0);
126                                                changepic(tmp, tmpskinpath);
127                                                free(tmpskinpath); tmpskinpath = NULL;
128                                        }
129                                        else
130                                        {
131                                                tmpskinpath = ostrcat(skinpath1, "aafpanel_default.png", 0, 0);
132                                                changepic(tmp, tmpskinpath);
133                                                free(tmpskinpath); tmpskinpath = NULL;
134                                        }
135                                        free(defaultdir); defaultdir = NULL;
136                                }
137                                else if(showpng == 3)
138                                {
139                                        struct splitstr* ret6 = NULL;
140                                        int count6 = 0;
141                                        char* tmpstr6 = NULL;
142                                        tmpstr6 = ostrcat("", skinpath1, 0, 0);
143                                        ret6 = strsplit(tmpstr6, "%", &count6);
144                                        defaultdir = ostrcat(getconfig("skinpath", NULL), "/skin/netbrowser_scanshares.png", 0, 0);
145                                        debug(70, "defaultdir1 %s", defaultdir);
146                                        if(!file_exist(defaultdir))
147                                        {
148                                                defaultdir = ostrcat(getconfig("pluginpath", NULL), (&ret6[1])->part, 0, 0);
149                                                defaultdir = ostrcat(defaultdir, "netbrowser_scanshares.png", 1, 0);
150                                        }
151                                        free(ret6), ret6 = NULL;
152                                        debug(70, "defaultdir %s", defaultdir);
153
154                                        if(file_exist(defaultdir))
155                                        {
156                                                tmpskinpath = ostrcat("", defaultdir, 0, 0);
157                                                changepic(tmp, tmpskinpath);
158                                                free(tmpskinpath); tmpskinpath = NULL;
159                                        }
160                                        else
161                                        {
162                                                tmpskinpath = ostrcat(skinpath1, "netbrowser_default.png", 0, 0);
163                                                changepic(tmp, tmpskinpath);
164                                                free(tmpskinpath); tmpskinpath = NULL;
165                                        }
166                                        free(defaultdir); defaultdir = NULL;
167                                        free(tmpskinpath); tmpskinpath = NULL;
168                                }
169                                else if(showpng == 4)
170                                {
171                                        struct splitstr* ret5 = NULL;
172                                        int count5 = 0;
173                                        tmpstr5 = ostrcat("", (&ret1[i])->part, 0, 0);
174                                        ret5 = strsplit(tmpstr5, ")( ", &count5);
175                                        debug(60, "(&ret5[0])->part %s", (&ret5[0])->part);
176
177                                        struct splitstr* ret6 = NULL;
178                                        int count6 = 0;
179                                        char* tmpstr6 = NULL;
180                                        tmpstr6 = ostrcat("", skinpath1, 0, 0);
181                                        ret6 = strsplit(tmpstr6, "%", &count6);
182
183                                        if(ostrcmp((&ret5[0])->part, "add") == 0){
184                                                tmppic = ostrcat((&ret1[i])->part, ".png", 0, 0);
185                                        } else {
186                                                tmppic = ostrcat((&ret5[0])->part, ".png", 0, 0);
187
188                                        }
189                                        debug(70, "tmppic %s", tmppic);
190
191                                        defaultdir = ostrcat(getconfig("skinpath", NULL), "/skin/netbrowser_", 0, 0);
192                                        defaultdir = ostrcat(defaultdir, tmppic, 1, 0);
193                                        debug(70, "defaultdir11 %s", defaultdir);
194                                        if(!file_exist(defaultdir))
195                                        {
196                                                defaultdir = ostrcat(getconfig("pluginpath", NULL), (&ret6[1])->part, 0, 0);
197                                                defaultdir = ostrcat(defaultdir, "netbrowser_", 0, 0);
198                                                defaultdir = ostrcat(defaultdir, tmppic, 1, 0);
199                                        }
200
201                                        debug(70, "defaultdir1111111111111 %s", defaultdir);
202                                        if(file_exist(defaultdir))
203                                        {
204                                                tmpskinpath = ostrcat("", defaultdir, 0, 0);
205                                                changepic(tmp, tmpskinpath);
206                                                free(tmpskinpath); tmpskinpath = NULL;
207                                        }
208                                        else
209                                        {
210                                                tmpskinpath = ostrcat(skinpath1, "netbrowser_default.png", 0, 0);
211                                                changepic(tmp, tmpskinpath);
212                                                free(tmpskinpath); tmpskinpath = NULL;
213                                        }
214                                       
215                                        free(tmpskinpath); tmpskinpath = NULL;
216                                        free(defaultdir); defaultdir = NULL;
217                                        free(ret5), ret5 = NULL;
218                                        free(ret6), ret6 = NULL;
219                                }
220                        }
221                        if(defaultstr != NULL)
222                        {
223                                setlistboxselection(listbox, defaultstr);
224                        //      if(ostrcmp(defaultstr, (&ret1[i])->part) == 0)
225                        //              listbox->aktline = i + 1;
226                        }
227                }
228        }
229
230        free(ret1); ret1 = NULL;
231        free(ret2); ret2 = NULL;
232        free(ret3); ret3 = NULL;
233//      free(tmpck); tmpck = NULL;
234        free(tmpsplit); tmpsplit = NULL;
235        free(tmpstr1); tmpstr1 = NULL;
236        free(tmpstr4); tmpstr4 = NULL;
237        free(tmpstr5); tmpstr5 = NULL;
238
239        listbox->aktpage = -1;
240
241        drawscreen(screen,0);
242        addscreenrc(screen, listbox);
243
244        while (1)
245        {
246                rcret = waitrc(screen, 0, 0);
247
248                if(rcret==getrcconfigint("rcexit",NULL)) break;
249                if(listbox->select != NULL && rcret==getrcconfigint("rcok",NULL))
250                {
251                        tmpstr = ostrcat(tmpstr, listbox->select->name, 1, 0);
252                        break;
253                }
254        }
255
256        free(skinname1); skinname1 = NULL;
257        free(skinpath1); skinpath1 = NULL;
258        delownerrc(screen);
259        delmarkedscreennodes(screen, 1);
260        clearscreen(screen);
261        debug(1000, "out");
262        return tmpstr;
263}
264
265#endif
Note: See TracBrowser for help on using the repository browser.