Rev 5674 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4042 | leency | 1 | |
4428 | leency | 2 | byte copy_from[4096]; |
5514 | leency | 3 | byte cut_active=0; |
4428 | leency | 4 | |
4896 | punk_joker | 5 | |
4042 | leency | 6 | |
4427 | punk_joker | 7 | |
8 | |||
9 | |||
4896 | punk_joker | 10 | { |
4698 | punk_joker | 11 | dword selected_offset2; |
5513 | punk_joker | 12 | byte copy_t[4096]; |
13 | dword buff_data; |
||
14 | int ind = 0; |
||
15 | |||
16 | |||
17 | { |
||
18 | buff_data = malloc(selected_count*4096+10); |
||
19 | ESDWORD[buff_data] = selected_count*4096+10; |
||
20 | ESDWORD[buff_data+4] = 3; |
||
21 | ESINT[buff_data+8] = selected_count; |
||
22 | for (i=0; i |
||
5174 | punk_joker | 23 | { |
24 | selected_offset2 = file_mas[i]*304 + buf+32 + 7; |
||
5513 | punk_joker | 25 | if (ESBYTE[selected_offset2]) { |
26 | strcpy(#copy_t, #path); |
||
27 | strcat(#copy_t, file_mas[i]*304+buf+72); |
||
28 | strlcpy(ind*4096+buff_data+10, #copy_t, 4096);; |
||
29 | ind++; |
||
30 | } |
||
31 | } |
||
5174 | punk_joker | 32 | clipboard.SetSlotData(selected_count*4096+10, buff_data); |
5513 | punk_joker | 33 | } |
34 | else |
||
35 | { |
||
36 | buff_data = malloc(4106); |
||
37 | ESDWORD[buff_data] = 4106; |
||
38 | ESDWORD[buff_data+4] = 3; |
||
39 | ESINT[buff_data+8] = 1; |
||
40 | strlcpy(buff_data+10, #file_path, 4096);; |
||
41 | clipboard.SetSlotData(4106, buff_data); |
||
42 | } |
||
43 | cut_active = cut; |
||
4042 | leency | 44 | free(buff_data); |
5209 | punk_joker | 45 | } |
4042 | leency | 46 | |
47 | |||
48 | |||
5609 | leency | 49 | copy_stak = malloc(20000); |
50 | CreateThread(#PasteThread,copy_stak+20000-4); |
||
5620 | leency | 51 | } |
5609 | leency | 52 | |
53 | |||
54 | |||
5608 | leency | 55 | { |
4042 | leency | 56 | char copy_rezult; |
57 | int j; |
||
5174 | punk_joker | 58 | int cnt = 0; |
5514 | leency | 59 | dword buf; |
4864 | punk_joker | 60 | |
4042 | leency | 61 | |
4864 | punk_joker | 62 | if (DSDWORD[buf+4] != 3) return; |
5514 | leency | 63 | cnt = ESINT[buf+8]; |
5174 | punk_joker | 64 | for (j = 0; j < cnt; j++) { |
5514 | leency | 65 | strlcpy(#copy_from, j*4096+buf+10, 4096); |
5174 | punk_joker | 66 | if (!copy_from) CopyExit(); |
4861 | leency | 67 | strcpy(#copy_to, #path); |
4042 | leency | 68 | strcat(#copy_to, #copy_from+strrchr(#copy_from,'/')); |
69 | if (!strcmp(#copy_from,#copy_to)) |
||
4698 | punk_joker | 70 | { |
71 | strcpy(#copy_to, #path); |
||
72 | strcat(#copy_to, "new_"); |
||
73 | strcat(#copy_to, #copy_from+strrchr(#copy_from,'/')); |
||
74 | } |
||
75 | if (strstr(#copy_to, #copy_from)) |
||
76 | { |
||
77 | notify("Copy directory into itself is a bad idea..."); |
||
78 | CopyExit(); |
||
4861 | leency | 79 | } |
4698 | punk_joker | 80 | |
5514 | leency | 81 | |
5689 | punk_joker | 82 | pause(1000); |
83 | |||
5514 | leency | 84 | |
4698 | punk_joker | 85 | { |
86 | Write_Error(copy_rezult); |
||
87 | } |
||
88 | else if (cut_active) |
||
4894 | punk_joker | 89 | { |
90 | strcpy(#file_path, #copy_from); |
||
91 | Del_File(true); |
||
92 | |||
93 | |||
94 | } |
||
4042 | leency | 95 | if (cut_active) |
4894 | punk_joker | 96 | { |
4042 | leency | 97 | cut_active=false; |
98 | } |
||
99 | if (info_after_copy) notify(INFO_AFTER_COPY); |
||
5459 | punk_joker | 100 | CopyExit(); |
4861 | leency | 101 | } |
102 | |||
103 | |||
5514 | leency | 104 | #define WIN_COPY_H 80 |
105 | proc_info Copy_Form; |
||
106 | |||
107 | |||
108 | { |
||
4861 | leency | 109 | switch(CheckEvent()) |
5514 | leency | 110 | { |
111 | case evButton: |
||
112 | notify(T_CANCEL_PASTE); |
||
113 | CopyExit(); |
||
114 | break; |
||
115 | |||
116 | |||
117 | DefineAndDrawWindow(Form.left+Form.width-200,Form.top+90,WIN_COPY_W,GetSkinHeight()+WIN_COPY_H,0x34,0xFFFFFF,T_PASTE_WINDOW_TITLE); |
||
5689 | punk_joker | 118 | GetProcessInfo(#Copy_Form, SelfInfo); |
5514 | leency | 119 | WriteText(45, 11, 0x80, system.color.work_text, T_PASTE_WINDOW_TEXT); |
5674 | pavelyakov | 120 | DrawFlatButton(Copy_Form.cwidth - 90, Copy_Form.cheight - 32, 80, 22, 10, system.color.work_button, T_PASTE_WINDOW_BUTTON); |
121 | DrawBar(8, 10, 32, 32, 0xFFFfff); |
||
5514 | leency | 122 | break; |
123 | } |
||
124 | } |
||
125 | |||
126 | |||
127 | action_buf = COPY_PASTE_END; |
||
4861 | leency | 128 | ActivateWindow(GetProcessSlot(Form.ID)); |
4042 | leency | 129 | ExitProcess(); |
130 | } |
||
5514 | leency | 131 | |
132 | |||
133 | |||
134 | //if (Copy_Form.cwidth==0) return; |
||
5689 | punk_joker | 135 | DisplayCopyfForm(); |
5514 | leency | 136 | Put_icon(copying_filename+strrchr(copying_filename,'.'), 16, 19, 0xFFFfff, 0); |
137 | DrawBar(45, 29, Copy_Form.cwidth-45, 10, 0xFFFFFF); |
||
5689 | punk_joker | 138 | WriteText(45, 29, 0x80, system.color.work_text, copying_filename); |
5674 | pavelyakov | 139 | }> |
4861 | leency | 140 |