Subversion Repositories Kolibri OS

Rev

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

Rev 5676 Rev 6562
Line 9... Line 9...
9
struct buffer_data
9
struct buffer_data
10
{
10
{
11
	dword	size;
11
	dword	size;
12
	dword	type;
12
	dword	type;
13
	dword	encoding;
13
	dword	encoding;
14
	byte	buffer_data[4096];
14
	dword	content;
15
};
15
};
Line 16... Line 16...
16
 
16
 
17
 
17
 
18
struct Clipboard {
18
struct Clipboard {
19
	buffer_data data;
19
	buffer_data slot_data;
20
	dword GetSlotCount();
20
	dword GetSlotCount();
21
	dword GetSlotData( ECX);
21
	dword GetSlotData( ECX);
22
	dword SetSlotData( EDX, ESI);
22
	dword SetSlotData( EDX, ESI);
Line 29... Line 29...
29
	$mov eax, 54 
29
	$mov eax, 54 
30
	$mov ebx, 0
30
	$mov ebx, 0
31
	$int 0x40
31
	$int 0x40
32
}
32
}
Line -... Line 33...
-
 
33
 
-
 
34
#define SLOT_DATA_TYPE_TEXT 0
-
 
35
#define SLOT_DATA_TYPE_IMAGE 1
-
 
36
#define SLOT_DATA_TYPE_RAW 2
33
 
37
#define SLOT_DATA_TYPE_RESERVED 3
34
dword Clipboard::GetSlotData( ECX) //ECX = slot number
38
dword Clipboard::GetSlotData( ECX) //ECX = slot number
-
 
39
{
35
{
40
	dword result;
36
	$mov eax, 54 
41
	$mov eax, 54 
37
	$mov ebx, 1
42
	$mov ebx, 1
-
 
43
	$int 0x40
-
 
44
	result = EAX;
-
 
45
	slot_data.size = DSDWORD[result];
-
 
46
	slot_data.type = DSDWORD[result+4];
-
 
47
	slot_data.encoding = DSDWORD[result+8];
-
 
48
	if (slot_data.type == SLOT_DATA_TYPE_TEXT) slot_data.content = result+12;
38
	$int 0x40
49
	else slot_data.content = result+10;
Line 39... Line 50...
39
}
50
}
40
 
51
 
41
dword Clipboard::SetSlotData( ECX, EDX) //ECX = data size, EDX - pointer to data
52
dword Clipboard::SetSlotData( ECX, EDX) //ECX = data size, EDX - pointer to data
Line 53... Line 64...
53
}
64
}
Line 54... Line 65...
54
 
65
 
55
dword Clipboard::ResetBlockingBuffer()
66
dword Clipboard::ResetBlockingBuffer()
56
{
67
{
57
	$mov eax, 54 
68
	$mov eax, 54 
58
	$mov ebx, 3
69
	$mov ebx, 4
59
	$int 0x40
70
	$int 0x40
Line 60... Line 71...
60
}
71
}
61
 
72