Rev 8956 | Rev 8996 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8956 | Rev 8981 | ||
---|---|---|---|
Line 9... | Line 9... | ||
9 | } SystemDiscs=0; |
9 | } SystemDiscs=0; |
10 | 10 | ||
Line 11... | Line 11... | ||
11 | void _SystemDiscs::Get() |
11 | void _SystemDiscs::Get() |
12 | { |
12 | { |
13 | bool kolibrios_exists=false; |
- | |
14 | char dev_name[10], sys_discs[10]; |
13 | char dev_name[10], sys_discs[10]; |
15 | int i1, j1, dev_num_i, dev_disc_num; |
14 | int i1, j1, dev_disc_num, real_dev_num; |
16 | dword devbuf, diskbuf; |
15 | dword devbuf, diskbuf; |
Line 17... | Line 16... | ||
17 | 16 | ||
18 | list.drop(); |
17 | list.drop(); |
19 | devbuf = malloc(10000); |
18 | devbuf = malloc(10000); |
20 | ReadDir(19, devbuf, "/"); |
19 | ReadDir(19, devbuf, "/"); |
- | 20 | dev_num = real_dev_num = EBX; |
|
- | 21 | ||
- | 22 | list.add("/sys"); |
|
- | 23 | dev_num++; |
|
- | 24 | ||
- | 25 | if (dir_exists("/kolibrios")) { |
|
- | 26 | //need to check that /sys != /kolibrios |
|
- | 27 | list.add("/kolibrios"); |
|
- | 28 | dev_num++; |
|
- | 29 | } |
|
21 | dev_num = dev_num_i = EBX; |
30 | |
22 | for (i1=0; i1 |
31 | for (i1=0; i1 |
23 | { |
32 | { |
24 | sprintf(#dev_name,"/%s",i1*304+ devbuf+72); |
33 | sprintf(#dev_name,"/%s",i1*304+ devbuf+72); |
25 | GetDir(#diskbuf, #dev_disc_num, #dev_name, DIRS_NOROOT); |
34 | GetDir(#diskbuf, #dev_disc_num, #dev_name, DIRS_NOROOT); |
26 | for (j1=0; j1 |
35 | for (j1=0; j1 |
27 | { |
36 | { |
28 | sprintf(#sys_discs,"%s/%s",#dev_name,j1*304+ diskbuf+72); |
37 | sprintf(#sys_discs,"%s/%s",#dev_name,j1*304+ diskbuf+72); |
- | 38 | if (sys_discs[1]=='r') { |
|
- | 39 | dev_num--; |
|
29 | if (sys_discs[1]=='c') || (dir_exists(#sys_discs)) list.add(#sys_discs); |
40 | continue; |
30 | } |
- | |
31 | if (!strcmp(#sys_discs, "/rd/1")) |
- | |
32 | { |
41 | } |
33 | if (dir_exists("/kolibrios")) && (!kolibrios_exists) { |
- | |
34 | kolibrios_exists=true; |
42 | if (sys_discs[1]=='c') || (sys_discs[1]=='f') || (dir_exists(#sys_discs)) { |
35 | list.add("/kolibrios"); |
- | |
36 | dev_num++; |
43 | list.add(#sys_discs); |
37 | } |
44 | } |
38 | } |
45 | } |
39 | } |
46 | } |
40 | free(devbuf); |
47 | free(devbuf); |
41 | free(diskbuf); |
48 | free(diskbuf); |
Line 42... | Line 49... | ||
42 | } |
49 | } |
43 | 50 | ||
44 | void GetDiskIconAndName(char disk_first_letter, dword dev_icon, dword disc_name) |
51 | void GetDiskIconAndName(dword dev_name, dev_icon, disc_name) |
45 | { |
52 | { |
46 | int i; |
53 | int i; |
47 | for (i=0; devinfo[i]!=0; i+=3) { |
54 | for (i=0; devinfo[i]!=0; i+=3) { |
48 | if (disk_first_letter == ESBYTE[devinfo[i]]) { |
55 | if (!strncmp(dev_name+1, devinfo[i], 2)) { |
49 | ESBYTE[dev_icon] = devinfo[i+1]; |
56 | ESBYTE[dev_icon] = devinfo[i+1]; |
50 | strcpy(disc_name, devinfo[i+2]); |
57 | strcpy(disc_name, devinfo[i+2]); |
51 | return; |
58 | return; |
Line 72... | Line 79... | ||
72 | draw_y = 74; |
79 | draw_y = 74; |
73 | draw_x = 17; |
80 | draw_x = 17; |
74 | for (i=0;i |
81 | for (i=0;i |
75 | strcpy(#dev_name, list.get(i)); |
82 | strcpy(#dev_name, list.get(i)); |
76 | GetDiskIconAndName(dev_name[1], #dev_icon, #disc_name); |
83 | GetDiskIconAndName(#dev_name, #dev_icon, #disc_name); |
77 | if (strstr(path, #dev_name)==path) is_active=true; else is_active=false; |
84 | if (strstr(path, #dev_name)==path) is_active=true; else is_active=false; |
Line 78... | Line 85... | ||
78 | 85 | ||
79 | DrawBar(draw_x,draw_y,6,DEV_H+1,0xFFFFFF); |
86 | DrawBar(draw_x,draw_y,6,DEV_H+1,0xFFFFFF); |
80 | DrawBar(draw_x+6+18,draw_y,160-6-18,DEV_H+1,0xFFFFFF); |
87 | DrawBar(draw_x+6+18,draw_y,160-6-18,DEV_H+1,0xFFFFFF); |
Line 108... | Line 115... | ||
108 | strcpy(#dev_name, "/root"); |
115 | strcpy(#dev_name, "/root"); |
109 | dev_icon = 0; |
116 | dev_icon = 0; |
110 | } else if (chrnum(_path, '/')==1) { |
117 | } else if (chrnum(_path, '/')==1) { |
111 | strcpy(#dev_name, _path); |
118 | strcpy(#dev_name, _path); |
112 | GetDiskIconAndName(dev_name[1], #dev_icon, #disc_name); |
119 | GetDiskIconAndName(#dev_name, #dev_icon, #disc_name); |
113 | } else for (i=0;i |
120 | } else for (i=0;i |
114 | strcpy(#dev_name, list.get(i)); |
121 | strcpy(#dev_name, list.get(i)); |
115 | GetDiskIconAndName(dev_name[1], #dev_icon, #disc_name); |
122 | GetDiskIconAndName(#dev_name, #dev_icon, #disc_name); |
116 | if (strstr(_path, #dev_name)-_path==0) break; |
123 | if (strstr(_path, #dev_name)-_path==0) break; |
117 | } |
124 | } |
118 | DrawRectangle(draw_x-1, SELECTY-1, DDW+2-KFM2_DEVH, KFM2_DEVH+1, sc.work_graph); |
125 | DrawRectangle(draw_x-1, SELECTY-1, DDW+2-KFM2_DEVH, KFM2_DEVH+1, sc.work_graph); |
119 | DrawBar(draw_x, SELECTY, DDW+1-KFM2_DEVH, KFM2_DEVH, 0xFFFFFF); |
126 | DrawBar(draw_x, SELECTY, DDW+1-KFM2_DEVH, KFM2_DEVH, 0xFFFFFF); |
120 | _PutImage(draw_x + 5, SELECTY+2, 18,17, dev_icon*17*18*3+#devices); |
127 | _PutImage(draw_x + 5, SELECTY+2, 18,17, dev_icon*17*18*3+#devices); |
121 | kfont.WriteIntoWindow(draw_x + 24, math.max(KFM2_DEVH-kfont.height/2+SELECTY,0), 0xFFFfff, 0x000000, kfont.size.pt, #dev_name+1); |
128 | kfont.WriteIntoWindow(draw_x + 24, math.max(KFM2_DEVH-kfont.height/2+SELECTY,0), 0xFFFfff, 0x000000, kfont.size.pt, #dev_name+1); |
Line 133... | Line 140... | ||
133 | DrawPopup(draw_x, optionsy, DDW, list.count*KFM2_DEVH, 1, -1, sc.work_graph); |
140 | DrawPopup(draw_x, optionsy, DDW, list.count*KFM2_DEVH, 1, -1, sc.work_graph); |
Line 134... | Line 141... | ||
134 | 141 | ||
135 | for (i=0;i |
142 | for (i=0;i |
136 | strcpy(#dev_name, list.get(i)); |
143 | strcpy(#dev_name, list.get(i)); |
137 | GetDiskIconAndName(dev_name[1], #dev_icon, #disc_name); |
144 | GetDiskIconAndName(#dev_name, #dev_icon, #disc_name); |
Line 138... | Line 145... | ||
138 | if (strstr(path, #dev_name)!=0) is_active=true; else is_active=false; |
145 | if (strstr(path, #dev_name)!=0) is_active=true; else is_active=false; |
139 | 146 | ||
140 | DrawBar(draw_x, optionsy, DDW, KFM2_DEVH, 0xFFFFFF); |
147 | DrawBar(draw_x, optionsy, DDW, KFM2_DEVH, 0xFFFFFF); |