Subversion Repositories Kolibri OS

Rev

Rev 6613 | Rev 7037 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. #ifndef INCLUDE_CLIPBOARD_H
  2. #define INCLUDE_CLIPBOARD_H
  3. #print "[include <clipboard.h>]\n"
  4.  
  5. #ifndef INCLUDE_KOLIBRI_H
  6. #include "../lib/kolibri.h"
  7. #endif
  8.  
  9. struct buffer_data
  10. {
  11.         dword   size;
  12.         dword   type;
  13.         dword   encoding;
  14.         dword   content;
  15. };
  16.  
  17.  
  18. struct Clipboard {
  19.         buffer_data slot_data;
  20.         dword GetSlotCount();
  21.         dword GetSlotData( ECX);
  22.         dword SetSlotData( EDX, ESI);
  23.         dword DelLastSlot();
  24.         dword ResetBlockingBuffer();
  25. };
  26.  
  27. dword Clipboard::GetSlotCount()
  28. {
  29.         $mov eax, 54
  30.         $mov ebx, 0
  31.         $int 0x40
  32. }
  33.  
  34. #define SLOT_DATA_TYPE_TEXT 0
  35. #define SLOT_DATA_TYPE_TEXT_WITH_BLOCK_SELECTION 1
  36. #define SLOT_DATA_TYPE_IMAGE 2
  37. #define SLOT_DATA_TYPE_RAW 3
  38. dword Clipboard::GetSlotData( ECX) //ECX = slot number
  39. {
  40.         dword result;
  41.         $mov eax, 54
  42.         $mov ebx, 1
  43.         $int 0x40
  44.         result = EAX;
  45.         slot_data.size = DSDWORD[result];
  46.         slot_data.type = DSDWORD[result+4];
  47.         slot_data.encoding = DSDWORD[result+8];
  48.         if (slot_data.type == SLOT_DATA_TYPE_TEXT) slot_data.content = result+12;
  49.         else slot_data.content = result+8;
  50.         return result;
  51. }
  52.  
  53. dword Clipboard::SetSlotData( ECX, EDX) //ECX = data size, EDX - pointer to data
  54. {
  55.         $mov eax, 54
  56.         $mov ebx, 2
  57.         $int 0x40
  58. }
  59.  
  60. dword Clipboard::DelLastSlot()
  61. {
  62.         $mov eax, 54
  63.         $mov ebx, 3
  64.         $int 0x40
  65. }
  66.  
  67. dword Clipboard::ResetBlockingBuffer()
  68. {
  69.         $mov eax, 54
  70.         $mov ebx, 4
  71.         $int 0x40
  72. }
  73.  
  74. #endif