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