win.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /*
  2. * This file is part of the UCB release of Plan 9. It is subject to the license
  3. * terms in the LICENSE file found in the top-level directory of this
  4. * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
  5. * part of the UCB release of Plan 9, including this file, may be copied,
  6. * modified, propagated, or distributed except according to the terms contained
  7. * in the LICENSE file.
  8. */
  9. /* acme */
  10. typedef struct Event Event;
  11. typedef struct Window Window;
  12. enum
  13. {
  14. STACK = 8192,
  15. EVENTSIZE = 256,
  16. NEVENT = 5,
  17. };
  18. struct Event
  19. {
  20. int c1;
  21. int c2;
  22. int q0;
  23. int q1;
  24. int flag;
  25. int nb;
  26. int nr;
  27. char b[EVENTSIZE*UTFmax+1];
  28. Rune r[EVENTSIZE+1];
  29. };
  30. struct Window
  31. {
  32. /* file descriptors */
  33. int ctl;
  34. int event;
  35. int addr;
  36. int data;
  37. Biobuf *body;
  38. /* event input */
  39. char buf[512];
  40. char *bufp;
  41. int nbuf;
  42. Event e[NEVENT];
  43. int dirtied;
  44. int id;
  45. int open;
  46. Channel *cevent; /* chan(Event*) */
  47. };
  48. extern Window* newwindow(void);
  49. extern int winopenfile(Window*, char*);
  50. extern void winopenbody(Window*, int);
  51. extern void winclosebody(Window*);
  52. extern void wintagwrite(Window*, char*, int);
  53. extern void winname(Window*, char*);
  54. extern void winwriteevent(Window*, Event*);
  55. extern void winread(Window*, uint, uint, char*);
  56. extern int windel(Window*, int);
  57. extern void wingetevent(Window*, Event*);
  58. extern void wineventproc(void*);
  59. extern void winwritebody(Window*, char*, int);
  60. extern void winclean(Window*);
  61. extern int winselect(Window*, char*, int);
  62. extern int winsetaddr(Window*, char*, int);
  63. extern char* winreadbody(Window*, int*);
  64. extern void windormant(Window*);
  65. extern void winsetdump(Window*, char*, char*);
  66. extern char* readfile(char*, char*, int*);
  67. extern void ctlprint(int, char*, ...);
  68. extern void* emalloc(uint);
  69. extern char* estrdup(char*);
  70. extern char* estrstrdup(char*, char*);
  71. extern char* estrstrstrdup(char*, char*, char*);
  72. extern char* egrow(char*, char*, char*);
  73. extern char* eappend(char*, char*, char*);
  74. extern void error(char*, ...);
  75. extern int tokenizec(char*, char**, int, char*);