217 lines · 5.1 KB · C
RawDownload
#include "lib9.h"#include "draw.h"#include "tk.h" #define	O(t, e)		((long)(&((t*)0)->e)) TkStab tkorient[] ={	"vertical",	Tkvertical,	"horizontal",	Tkhorizontal,	nil}; #define RGB(r,g,b) ((r<<24)|(g<<16)|(b<<8)|0xff) TkStab tkcolortab[] ={	"black",	RGB(0,0,0),	"blue",		RGB(0,0,204),	"darkblue",	RGB(93,0,187),	"red",		RGB(255,0,0),	"yellow",	RGB(255,255,0),	"green",	RGB(0,128,0),	"white",	RGB(255,255,255),	"orange",	RGB(255,170,0),	"aqua",		RGB(0,255,255),	"fuchsia",	RGB(255,0,255),	"gray",		RGB(128,128,128),	"grey",		RGB(128,128,128),	"lime",		RGB(0,255,0),	"maroon",	RGB(128,0,0),	"navy",		RGB(0,0,128),	"olive",	RGB(128,128,0),	"purple",	RGB(128,0,128),	"silver",	RGB(192,192,192),	"teal",		RGB(0,128,128),	"transparent",	DTransparent,	nil}; TkStab tkrelief[] ={	"raised",	TKraised,	"sunken",	TKsunken,	"flat",		TKflat,	"groove",	TKgroove,	"ridge",	TKridge,	nil}; TkStab tkbool[] ={	"0",		BoolF,	"no",		BoolF,	"off",		BoolF,	"false",	BoolF,	"1",		BoolT,	"yes",		BoolT,	"on",		BoolT,	"true",		BoolT,	nil}; TkStab tkanchor[] ={	"center",	Tkcenter,	"c",		Tkcenter,	"n",		Tknorth,	"ne",		Tknorth|Tkeast,	"e",		Tkeast,	"se",		Tksouth|Tkeast,	"s",		Tksouth,	"sw",		Tksouth|Tkwest,	"w",		Tkwest,	"nw",		Tknorth|Tkwest,	nil}; staticTkStab tkstate[] ={	"normal",	0,	"active",	Tkactive,	"disabled",	Tkdisabled,	nil}; staticTkStab tktakefocus[] ={	"0",	0,	"1",	Tktakefocus,	nil}; TkStab tktabjust[] ={	"left",		Tkleft,	"right",	Tkright,	"center",	Tkcenter,	"numeric",	Tknumeric,		nil}; TkStab tkwrap[] ={	"none",		Tkwrapnone,	"word",		Tkwrapword,	"char",		Tkwrapchar,	nil}; TkStab tkjustify[] ={	"left",		Tkleft,	"right",	Tkright,	"center",	Tkcenter,	nil}; TkOption tkgeneric[] ={ "actx",		OPTact,	0,	IAUX(0), "acty",		OPTact,	0,	IAUX(1), "actwidth",		OPTdist, O(Tk, act.width),	IAUX(O(Tk, env)), "actheight",		OPTdist, O(Tk, act.height),	IAUX(O(Tk, env)), "bd",			OPTnndist, O(Tk, borderwidth),	nil, "borderwidth",		OPTnndist, O(Tk, borderwidth),	nil, "highlightthickness",	OPTnndist, O(Tk, highlightwidth), nil, "height",		OPTsize, 0,			IAUX(O(Tk, env)), "width",		OPTsize, 0,			IAUX(O(Tk, env)), "relief",		OPTstab, O(Tk, relief),		tkrelief, "state",		OPTflag, O(Tk, flag),		tkstate, "font",		OPTfont, O(Tk, env),		nil, "foreground",		OPTcolr, O(Tk, env),		IAUX(TkCforegnd), "background",		OPTcolr, O(Tk, env),		IAUX(TkCbackgnd), "fg",			OPTcolr, O(Tk, env),		IAUX(TkCforegnd), "bg",			OPTcolr, O(Tk, env),		IAUX(TkCbackgnd), "selectcolor",		OPTcolr, O(Tk, env),		IAUX(TkCselect), "selectforeground",	OPTcolr, O(Tk, env),		IAUX(TkCselectfgnd), "selectbackground",	OPTcolr, O(Tk, env),		IAUX(TkCselectbgnd), "activeforeground",	OPTcolr, O(Tk, env),		IAUX(TkCactivefgnd), "activebackground",	OPTcolr, O(Tk, env),		IAUX(TkCactivebgnd), "highlightcolor",	OPTcolr, O(Tk, env),		IAUX(TkChighlightfgnd), "disabledcolor",	OPTcolr, O(Tk, env),		IAUX(TkCdisablefgnd), "padx",		OPTnndist, O(Tk, pad.x),		nil, "pady",		OPTnndist, O(Tk, pad.y),		nil, "takefocus",	OPTflag, O(Tk, flag),		tktakefocus, nil}; TkOption tktop[] ={	"x",		OPTdist,	O(TkWin, req.x),		nil,	"y",		OPTdist,	O(TkWin, req.y),		nil,	nil}; TkOption tktopdbg[] ={	"debug",	OPTbool,	O(TkTop, debug),	nil,	nil}; TkMethod *tkmethod[] ={	&framemethod,	/* TKframe */	&labelmethod,		/* TKlabel */	&checkbuttonmethod,	/* TKcheckbutton */	&buttonmethod,	/* TKbutton */	&menubuttonmethod,	/* TKmenubutton */	&menumethod,	/* TKmenu */	&separatormethod,	/* TKseparator */	&cascademethod,	/* TKcascade */		&listboxmethod,	/* TKlistbox */	&scrollbarmethod,	/* TKscrollbar */	&textmethod,	/* TKtext */	&canvasmethod,	/* TKcanvas */	&entrymethod,	/* TKentry */	&radiobuttonmethod,	/* TKradiobutton */	&scalemethod,	/* TKscale */	&panelmethod,	/* TKpanel */	&choicebuttonmethod,	/*TKchoicebutton */}; char TkNomem[]	= "!out of memory";char TkBadop[]	= "!bad option";char TkOparg[]	= "!arg requires option";char TkBadvl[]	= "!bad value";char TkBadwp[]	= "!bad window path";char TkWpack[]	= "!window is already packed";char TkNotop[]	= "!no toplevel";char TkDupli[]  = "!window path already exists";char TkNotpk[]	= "!window not packed";char TkBadcm[]	= "!bad command";char TkIstop[]	= "!can't pack top level";char TkBadbm[]	= "!failed to load bitmap";char TkBadft[]	= "!failed to open font";char TkBadit[]	= "!bad item type";char TkBadtg[]	= "!bad/no matching tag";char TkFewpt[]	= "!wrong number of points";char TkBadsq[]	= "!bad event sequence";char TkBadix[]	= "!bad index";char TkNotwm[]	= "!not a window";char TkBadvr[]	= "!variable does not exist";char TkNotvt[]	= "!variable is wrong type";char TkMovfw[]	= "!too many events buffered";char TkBadsl[]	= "!selection already exists";char TkSyntx[]	= "!bad [] or {} syntax";char TkRecur[] = "!cannot pack recursively";char TkDepth[] = "!execution stack too big";char TkNomaster[] = "!no master given";char TkNotgrid[] = "!not a grid";char TkIsgrid[] = "!cannot use pack inside a grid";char TkBadgridcell[] = "!grid cell in use";char TkBadspan[] = "!bad grid span";char TkBadcursor[] = "!bad cursor image";