Subversion Repositories Kolibri OS

Rev

Rev 7219 | Rev 8877 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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