Subversion Repositories Kolibri OS

Rev

Rev 6562 | Rev 6613 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5598 pavelyakov 1
#ifndef INCLUDE_CLIPBOARD_H
2
#define INCLUDE_CLIPBOARD_H
5676 pavelyakov 3
#print "[include ]\n"
5598 pavelyakov 4
 
5
#ifndef INCLUDE_KOLIBRI_H
6
#include "../lib/kolibri.h"
7
#endif
8
 
4428 leency 9
struct buffer_data
10
{
11
	dword	size;
12
	dword	type;
13
	dword	encoding;
6562 leency 14
	dword	content;
4428 leency 15
};
16
 
17
 
4426 punk_joker 18
struct Clipboard {
6562 leency 19
	buffer_data slot_data;
4426 punk_joker 20
	dword GetSlotCount();
21
	dword GetSlotData( ECX);
22
	dword SetSlotData( EDX, ESI);
23
	dword DelLastSlot();
24
	dword ResetBlockingBuffer();
25
};
26
 
27
dword Clipboard::GetSlotCount()
28
{
29
	$mov eax, 54
30
	$mov ebx, 0
31
	$int 0x40
32
}
33
 
6562 leency 34
#define SLOT_DATA_TYPE_TEXT 0
35
#define SLOT_DATA_TYPE_IMAGE 1
36
#define SLOT_DATA_TYPE_RAW 2
37
#define SLOT_DATA_TYPE_RESERVED 3
4426 punk_joker 38
dword Clipboard::GetSlotData( ECX) //ECX = slot number
39
{
6562 leency 40
	dword result;
4426 punk_joker 41
	$mov eax, 54
42
	$mov ebx, 1
43
	$int 0x40
6562 leency 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;
49
	else slot_data.content = result+10;
6565 leency 50
	return result;
4426 punk_joker 51
}
52
 
53
dword Clipboard::SetSlotData( ECX, EDX) //ECX = data size, EDX - pointer to data
54
{
55
	$mov eax, 54
56
	$mov ebx, 2
57
	$int 0x40
58
}
59
 
60
dword Clipboard::DelLastSlot()
61
{
62
	$mov eax, 54
63
	$mov ebx, 3
64
	$int 0x40
65
}
66
 
67
dword Clipboard::ResetBlockingBuffer()
68
{
69
	$mov eax, 54
6562 leency 70
	$mov ebx, 4
4426 punk_joker 71
	$int 0x40
5598 pavelyakov 72
}
73
 
74
#endif