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 |
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 | #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 |