Subversion Repositories Kolibri OS

Rev

Rev 8877 | 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
 
7037 leency 9
//===================================================//
10
//                                                   //
11
//       Kolibri Clipboard System Functions          //
12
//                                                   //
13
//===================================================//
4426 punk_joker 14
 
7037 leency 15
#define SLOT_DATA_TYPE_TEXT 0
16
#define SLOT_DATA_TYPE_TEXT_BLOCK 1
17
#define SLOT_DATA_TYPE_IMAGE 2
18
#define SLOT_DATA_TYPE_RAW 3
19
 
20
inline fastcall dword Clipboard__GetSlotCount()
4426 punk_joker 21
{
22
	$mov eax, 54
23
	$mov ebx, 0
24
	$int 0x40
25
}
26
 
7037 leency 27
inline fastcall dword Clipboard__GetSlotData( ECX) //ECX = slot number
4426 punk_joker 28
{
29
	$mov eax, 54
30
	$mov ebx, 1
31
	$int 0x40
32
}
33
 
7037 leency 34
inline fastcall dword Clipboard__SetSlotData( ECX, EDX) //ECX = data size, EDX - pointer to data
4426 punk_joker 35
{
36
	$mov eax, 54
37
	$mov ebx, 2
38
	$int 0x40
39
}
40
 
7037 leency 41
inline fastcall dword Clipboard__DeleteLastSlot()
4426 punk_joker 42
{
43
	$mov eax, 54
44
	$mov ebx, 3
45
	$int 0x40
46
}
47
 
7037 leency 48
inline fastcall dword Clipboard__ResetBlockingBuffer()
4426 punk_joker 49
{
50
	$mov eax, 54
6562 leency 51
	$mov ebx, 4
4426 punk_joker 52
	$int 0x40
5598 pavelyakov 53
}
54
 
7037 leency 55
//===================================================//
56
//                                                   //
57
//               Some useful patterns                //
58
//                                                   //
59
//===================================================//
60
 
61
:void Clipboard__CopyText(dword _text)
62
{
7914 leency 63
dword size_buf;
7037 leency 64
dword buff_data;
65
 
66
	size_buf = strlen(_text) + 12;
67
	buff_data = malloc(size_buf);
68
	ESDWORD[buff_data] = size_buf;
69
	ESDWORD[buff_data+4] = SLOT_DATA_TYPE_TEXT;
70
	ESDWORD[buff_data+8] = 1; //encoding 0=UTF, 1=866, 2=1251
71
	strcpy(buff_data+12, _text);
72
 
73
	Clipboard__SetSlotData(size_buf, buff_data);
8878 leency 74
	//if (EAX!=0) notify("'Error while copying to clipboard!'E");
7037 leency 75
 
76
	buff_data = free(buff_data);
77
}
78
 
79
 
5598 pavelyakov 80
#endif