Subversion Repositories Kolibri OS

Rev

Rev 7037 | Rev 8877 | 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.  
  10. #ifndef INCLUDE_FILESYSTEM_H
  11. #include "../lib/fs.h"
  12. #endif
  13.  
  14. //===================================================//
  15. //                                                   //
  16. //       Kolibri Clipboard System Functions          //
  17. //                                                   //
  18. //===================================================//
  19.  
  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()
  26. {
  27.         $mov eax, 54
  28.         $mov ebx, 0
  29.         $int 0x40
  30. }
  31.  
  32. inline fastcall dword Clipboard__GetSlotData( ECX) //ECX = slot number
  33. {
  34.         $mov eax, 54
  35.         $mov ebx, 1
  36.         $int 0x40
  37. }
  38.  
  39. inline fastcall dword Clipboard__SetSlotData( ECX, EDX) //ECX = data size, EDX - pointer to data
  40. {
  41.         $mov eax, 54
  42.         $mov ebx, 2
  43.         $int 0x40
  44. }
  45.  
  46. inline fastcall dword Clipboard__DeleteLastSlot()
  47. {
  48.         $mov eax, 54
  49.         $mov ebx, 3
  50.         $int 0x40
  51. }
  52.  
  53. inline fastcall dword Clipboard__ResetBlockingBuffer()
  54. {
  55.         $mov eax, 54
  56.         $mov ebx, 4
  57.         $int 0x40
  58. }
  59.  
  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.  
  85. #endif