Subversion Repositories Kolibri OS

Rev

Rev 4428 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4428 Rev 4698
Line 1... Line 1...
1
//Leency 2008-2014
1
//Leency 2008-2014
Line 2... Line 2...
2
 
2
 
3
byte copy_to[4096];
3
byte copy_to[4096];
-
 
4
byte cut_active=0;
-
 
5
byte id_add_to_copy=0;
4
byte cut_active=0;
6
byte add_to_copy_active=0;
Line -... Line 7...
-
 
7
enum {NOCUT, CUT, COPY_PASTE_END};
-
 
8
 
-
 
9
struct path_str {
-
 
10
	char Item[4096];
-
 
11
};
-
 
12
 
5
enum {NOCUT, CUT, COPY_PASTE_END};
13
#define MAX_HISTORY_NUM 10
Line -... Line 14...
-
 
14
 
-
 
15
Clipboard clipboard;
-
 
16
 
-
 
17
struct Copy_Path {
-
 
18
	dword	size;
-
 
19
	dword	type;
-
 
20
	path_str copy_list[MAX_HISTORY_NUM];
-
 
21
};	
-
 
22
 
-
 
23
Copy_Path copy_path;
-
 
24
 
-
 
25
void add_to_copy(dword pcth)
-
 
26
{
-
 
27
	add_to_copy_active=1;
-
 
28
	strlcpy(#copy_path.copy_list[id_add_to_copy].Item, pcth);
Line 6... Line 29...
6
 
29
	id_add_to_copy++;
7
Clipboard clipboard;
30
}
8
 
-
 
9
 
31
 
10
void Copy(dword pcth, char cut)
-
 
11
{
32
 
12
	clipboard.data.size = sizeof(buffer_data);
33
void Copy(dword pcth, char cut)
13
	clipboard.data.type = 0;
34
{
14
	clipboard.data.encoding = 1;
35
	copy_path.type = 3;
Line 15... Line 36...
15
	strcpy(#clipboard.data.buffer_data, pcth);
36
	copy_path.size = sizeof(copy_path);
16
	clipboard.SetSlotData(sizeof(buffer_data), #clipboard.data);
37
	clipboard.SetSlotData(sizeof(copy_path), #copy_path);
Line 34... Line 55...
34
 
55
 
35
void Paste()
56
void Paste()
36
{
57
{
37
	char copy_rezult;
58
	char copy_rezult;
-
 
59
	byte copy_from[4096];
Line -... Line 60...
-
 
60
	int tst;
-
 
61
	
38
	byte copy_from[4096];
62
	for (j = 0; j < MAX_HISTORY_NUM; j++) {
39
	
-
 
-
 
63
		tst = j*4096;
40
	strcpy(#copy_from, clipboard.GetSlotData(clipboard.GetSlotCount()-1)+12);
64
		strlcpy(#copy_from, clipboard.GetSlotData(clipboard.GetSlotCount()-1)+8+tst, 4096);
41
	
65
		debug(#copy_from);
42
	if (!copy_from) ExitProcess();
66
		if (!copy_from) ExitProcess();
43
	strcpy(#copy_to, #path);
67
		strcpy(#copy_to, #path);
44
	strcat(#copy_to, #copy_from+strrchr(#copy_from,'/'));
68
		strcat(#copy_to, #copy_from+strrchr(#copy_from,'/'));
Line 55... Line 79...
55
	}
79
		}
56
	if (copy_rezult = copyf(#copy_from,#copy_to))
80
		if (copy_rezult = copyf(#copy_from,#copy_to))
57
	{
81
		{
58
		Write_Error(copy_rezult);
82
			Write_Error(copy_rezult);
59
	}
83
		}
-
 
84
	}
-
 
85
	if (copy_rezult = copyf(#copy_from,#copy_to))
-
 
86
	{
-
 
87
		Write_Error(copy_rezult);
-
 
88
	}
60
	else if (cut_active)
89
	else if (cut_active)
61
	{
90
	{
62
		strcpy(#file_path, #copy_from);
91
		strcpy(#file_path, #copy_from);
63
		Del_File(true);
92
		Del_File(true);
64
		cut_active=false;
93
		cut_active=false;
65
	}
94
	}
-
 
95
	for (j = 0; j < MAX_HISTORY_NUM; j++) strcpy(#copy_path.copy_list[j].Item, 0);
66
	action_buf = COPY_PASTE_END;
96
	action_buf = COPY_PASTE_END;
-
 
97
	add_to_copy_active=0;
-
 
98
	id_add_to_copy=0;
67
	ActivateWindow(GetProcessSlot(Form.ID));
99
	ActivateWindow(GetProcessSlot(Form.ID));
68
	ExitProcess();
100
	ExitProcess();
69
}
101
}