Subversion Repositories Kolibri OS

Rev

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