Rev 4076 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4042 | leency | 1 | //Leency 2008-2013 |
2 | |||
3 | |||
4 | byte copy_from[4096], copy_to[4096], cut_active=0; |
||
5 | enum {NOCUT, CUT, COPY_PASTE_END}; |
||
4427 | punk_joker | 6 | |
7 | struct buffer_data |
||
8 | { |
||
9 | dword size; |
||
10 | dword type; |
||
11 | dword encoding; |
||
12 | byte buffer_data[4096]; |
||
13 | }; |
||
14 | |||
15 | buffer_data buf_data; |
||
16 | Clipboard clipboard; |
||
17 | |||
4042 | leency | 18 | #define WIN_W 300 |
19 | #define WIN_H 50 |
||
20 | |||
21 | |||
22 | void Copy(dword pcth, char cut) |
||
23 | { |
||
24 | strcpy(#copy_from, pcth); |
||
4427 | punk_joker | 25 | buf_data.size = sizeof(buffer_data); |
26 | buf_data.type = 0; |
||
27 | buf_data.encoding = 866; |
||
28 | strcpy(#buf_data.buffer_data, pcth); |
||
29 | clipboard.SetSlotData(sizeof(buffer_data), #buf_data); |
||
4042 | leency | 30 | cut_active = cut; |
31 | } |
||
32 | |||
33 | void copyf_Draw_Progress(dword filename) { |
||
4076 | leency | 34 | DefineAndDrawWindow(Form.left+Form.width-200,Form.top+90,WIN_W,GetSkinHeight()+WIN_H-1,0x34,sc.work,T_PASTE_WINDOW); |
35 | WriteText(5,8, 0x80, sc.work_text, T_PASTE_WINDOW_TEXT); |
||
36 | DrawBar(5, 26, WIN_W-10, 10, sc.work); |
||
37 | WriteText(5,26, 0x80, sc.work_text, filename); |
||
4042 | leency | 38 | if (CheckEvent()==evButton) |
39 | { |
||
40 | notify(T_CANCEL_PASTE); |
||
41 | ExitProcess(); |
||
42 | } |
||
43 | } |
||
44 | |||
45 | |||
46 | void Paste() |
||
47 | { |
||
48 | char copy_rezult; |
||
49 | |||
4427 | punk_joker | 50 | strcpy(#copy_from, clipboard.GetSlotData(clipboard.GetSlotCount()-1)+12); |
51 | |||
4042 | leency | 52 | if (!copy_from) ExitProcess(); |
53 | strcpy(#copy_to, #path); |
||
54 | strcat(#copy_to, #copy_from+strrchr(#copy_from,'/')); |
||
55 | if (!strcmp(#copy_from,#copy_to)) |
||
56 | { |
||
57 | strcpy(#copy_to, #path); |
||
58 | strcat(#copy_to, "new_"); |
||
59 | strcat(#copy_to, #copy_from+strrchr(#copy_from,'/')); |
||
60 | } |
||
61 | if (strstr(#copy_to, #copy_from)) |
||
62 | { |
||
63 | notify("Copy directory into itself is a bad idea..."); |
||
64 | ExitProcess(); |
||
65 | } |
||
66 | if (copy_rezult = copyf(#copy_from,#copy_to)) |
||
67 | { |
||
68 | Write_Error(copy_rezult); |
||
69 | } |
||
70 | else if (cut_active) |
||
71 | { |
||
72 | strcpy(#file_path, #copy_from); |
||
73 | Del_File(true); |
||
74 | copy_from=NULL; |
||
75 | cut_active=false; |
||
76 | } |
||
77 | action_buf = COPY_PASTE_END; |
||
78 | ActivateWindow(GetProcessSlot(Form.ID)); |
||
79 | ExitProcess(); |
||
80 | } |