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