xdata.c 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. #include "lib9.h"
  2. #include "draw.h"
  3. #include "tk.h"
  4. #define O(t, e) ((long)(&((t*)0)->e))
  5. TkStab tkorient[] =
  6. {
  7. "vertical", Tkvertical,
  8. "horizontal", Tkhorizontal,
  9. nil
  10. };
  11. #define RGB(r,g,b) ((r<<24)|(g<<16)|(b<<8)|0xff)
  12. TkStab tkcolortab[] =
  13. {
  14. "black", RGB(0,0,0),
  15. "blue", RGB(0,0,204),
  16. "darkblue", RGB(93,0,187),
  17. "red", RGB(255,0,0),
  18. "yellow", RGB(255,255,0),
  19. "green", RGB(0,128,0),
  20. "white", RGB(255,255,255),
  21. "orange", RGB(255,170,0),
  22. "aqua", RGB(0,255,255),
  23. "fuchsia", RGB(255,0,255),
  24. "gray", RGB(128,128,128),
  25. "grey", RGB(128,128,128),
  26. "lime", RGB(0,255,0),
  27. "maroon", RGB(128,0,0),
  28. "navy", RGB(0,0,128),
  29. "olive", RGB(128,128,0),
  30. "purple", RGB(128,0,128),
  31. "silver", RGB(192,192,192),
  32. "teal", RGB(0,128,128),
  33. "transparent", DTransparent,
  34. nil
  35. };
  36. TkStab tkrelief[] =
  37. {
  38. "raised", TKraised,
  39. "sunken", TKsunken,
  40. "flat", TKflat,
  41. "groove", TKgroove,
  42. "ridge", TKridge,
  43. nil
  44. };
  45. TkStab tkbool[] =
  46. {
  47. "0", BoolF,
  48. "no", BoolF,
  49. "off", BoolF,
  50. "false", BoolF,
  51. "1", BoolT,
  52. "yes", BoolT,
  53. "on", BoolT,
  54. "true", BoolT,
  55. nil
  56. };
  57. TkStab tkanchor[] =
  58. {
  59. "center", Tkcenter,
  60. "c", Tkcenter,
  61. "n", Tknorth,
  62. "ne", Tknorth|Tkeast,
  63. "e", Tkeast,
  64. "se", Tksouth|Tkeast,
  65. "s", Tksouth,
  66. "sw", Tksouth|Tkwest,
  67. "w", Tkwest,
  68. "nw", Tknorth|Tkwest,
  69. nil
  70. };
  71. static
  72. TkStab tkstate[] =
  73. {
  74. "normal", 0,
  75. "active", Tkactive,
  76. "disabled", Tkdisabled,
  77. nil
  78. };
  79. static
  80. TkStab tktakefocus[] =
  81. {
  82. "0", 0,
  83. "1", Tktakefocus,
  84. nil
  85. };
  86. TkStab tktabjust[] =
  87. {
  88. "left", Tkleft,
  89. "right", Tkright,
  90. "center", Tkcenter,
  91. "numeric", Tknumeric,
  92. nil
  93. };
  94. TkStab tkwrap[] =
  95. {
  96. "none", Tkwrapnone,
  97. "word", Tkwrapword,
  98. "char", Tkwrapchar,
  99. nil
  100. };
  101. TkStab tkjustify[] =
  102. {
  103. "left", Tkleft,
  104. "right", Tkright,
  105. "center", Tkcenter,
  106. nil
  107. };
  108. TkOption tkgeneric[] =
  109. {
  110. "actx", OPTact, 0, IAUX(0),
  111. "acty", OPTact, 0, IAUX(1),
  112. "actwidth", OPTdist, O(Tk, act.width), IAUX(O(Tk, env)),
  113. "actheight", OPTdist, O(Tk, act.height), IAUX(O(Tk, env)),
  114. "bd", OPTnndist, O(Tk, borderwidth), nil,
  115. "borderwidth", OPTnndist, O(Tk, borderwidth), nil,
  116. "highlightthickness", OPTnndist, O(Tk, highlightwidth), nil,
  117. "height", OPTsize, 0, IAUX(O(Tk, env)),
  118. "width", OPTsize, 0, IAUX(O(Tk, env)),
  119. "relief", OPTstab, O(Tk, relief), tkrelief,
  120. "state", OPTflag, O(Tk, flag), tkstate,
  121. "font", OPTfont, O(Tk, env), nil,
  122. "foreground", OPTcolr, O(Tk, env), IAUX(TkCforegnd),
  123. "background", OPTcolr, O(Tk, env), IAUX(TkCbackgnd),
  124. "fg", OPTcolr, O(Tk, env), IAUX(TkCforegnd),
  125. "bg", OPTcolr, O(Tk, env), IAUX(TkCbackgnd),
  126. "selectcolor", OPTcolr, O(Tk, env), IAUX(TkCselect),
  127. "selectforeground", OPTcolr, O(Tk, env), IAUX(TkCselectfgnd),
  128. "selectbackground", OPTcolr, O(Tk, env), IAUX(TkCselectbgnd),
  129. "activeforeground", OPTcolr, O(Tk, env), IAUX(TkCactivefgnd),
  130. "activebackground", OPTcolr, O(Tk, env), IAUX(TkCactivebgnd),
  131. "highlightcolor", OPTcolr, O(Tk, env), IAUX(TkChighlightfgnd),
  132. "disabledcolor", OPTcolr, O(Tk, env), IAUX(TkCdisablefgnd),
  133. "padx", OPTnndist, O(Tk, pad.x), nil,
  134. "pady", OPTnndist, O(Tk, pad.y), nil,
  135. "takefocus", OPTflag, O(Tk, flag), tktakefocus,
  136. nil
  137. };
  138. TkOption tktop[] =
  139. {
  140. "x", OPTdist, O(TkWin, req.x), nil,
  141. "y", OPTdist, O(TkWin, req.y), nil,
  142. nil
  143. };
  144. TkOption tktopdbg[] =
  145. {
  146. "debug", OPTbool, O(TkTop, debug), nil,
  147. nil
  148. };
  149. TkMethod *tkmethod[] =
  150. {
  151. &framemethod, /* TKframe */
  152. &labelmethod, /* TKlabel */
  153. &checkbuttonmethod, /* TKcheckbutton */
  154. &buttonmethod, /* TKbutton */
  155. &menubuttonmethod, /* TKmenubutton */
  156. &menumethod, /* TKmenu */
  157. &separatormethod, /* TKseparator */
  158. &cascademethod, /* TKcascade */
  159. &listboxmethod, /* TKlistbox */
  160. &scrollbarmethod, /* TKscrollbar */
  161. &textmethod, /* TKtext */
  162. &canvasmethod, /* TKcanvas */
  163. &entrymethod, /* TKentry */
  164. &radiobuttonmethod, /* TKradiobutton */
  165. &scalemethod, /* TKscale */
  166. &panelmethod, /* TKpanel */
  167. &choicebuttonmethod, /*TKchoicebutton */
  168. };
  169. char TkNomem[] = "!out of memory";
  170. char TkBadop[] = "!bad option";
  171. char TkOparg[] = "!arg requires option";
  172. char TkBadvl[] = "!bad value";
  173. char TkBadwp[] = "!bad window path";
  174. char TkWpack[] = "!window is already packed";
  175. char TkNotop[] = "!no toplevel";
  176. char TkDupli[] = "!window path already exists";
  177. char TkNotpk[] = "!window not packed";
  178. char TkBadcm[] = "!bad command";
  179. char TkIstop[] = "!can't pack top level";
  180. char TkBadbm[] = "!failed to load bitmap";
  181. char TkBadft[] = "!failed to open font";
  182. char TkBadit[] = "!bad item type";
  183. char TkBadtg[] = "!bad/no matching tag";
  184. char TkFewpt[] = "!wrong number of points";
  185. char TkBadsq[] = "!bad event sequence";
  186. char TkBadix[] = "!bad index";
  187. char TkNotwm[] = "!not a window";
  188. char TkBadvr[] = "!variable does not exist";
  189. char TkNotvt[] = "!variable is wrong type";
  190. char TkMovfw[] = "!too many events buffered";
  191. char TkBadsl[] = "!selection already exists";
  192. char TkSyntx[] = "!bad [] or {} syntax";
  193. char TkRecur[] = "!cannot pack recursively";
  194. char TkDepth[] = "!execution stack too big";
  195. char TkNomaster[] = "!no master given";
  196. char TkNotgrid[] = "!not a grid";
  197. char TkIsgrid[] = "!cannot use pack inside a grid";
  198. char TkBadgridcell[] = "!grid cell in use";
  199. char TkBadspan[] = "!bad grid span";
  200. char TkBadcursor[] = "!bad cursor image";