Commit a287e9db authored by Henning Heinold's avatar Henning Heinold

remove libxkbui, looks like it is not used anywhere

parent 4674a4ae
...@@ -199,9 +199,6 @@ XORGRELSTRING = XorgManVersionString ...@@ -199,9 +199,6 @@ XORGRELSTRING = XorgManVersionString
#ifndef BuildXKBlib #ifndef BuildXKBlib
#define BuildXKBlib (BuildXKB && !BuildServersOnly) #define BuildXKBlib (BuildXKB && !BuildServersOnly)
#endif #endif
#ifndef BuildXKBuilib
#define BuildXKBuilib (BuildXKB && !BuildServersOnly)
#endif
#ifndef BuildXKBfilelib #ifndef BuildXKBfilelib
#define BuildXKBfilelib (BuildXKB && !BuildServersOnly) #define BuildXKBfilelib (BuildXKB && !BuildServersOnly)
#endif #endif
...@@ -1823,50 +1820,6 @@ ProjectUnsharedLibReferences(XKBFILE,NX_xkbfile,$(XKBFILELIBSRC),XBuildLibDir) ...@@ -1823,50 +1820,6 @@ ProjectUnsharedLibReferences(XKBFILE,NX_xkbfile,$(XKBFILELIBSRC),XBuildLibDir)
# endif # endif
#endif /* BuildXKBlib */ #endif /* BuildXKBlib */
#if BuildXKBlib
# ifndef SharedLibxkbui
# define SharedLibxkbui HasSharedLibraries
# endif
# ifndef NormalLibxkbui
# define NormalLibxkbui (!SharedLibxkbui || ForceNormalLib)
# endif
# ifndef DebugLibxkbui
# define DebugLibxkbui NO
# endif
# ifndef ProfileLibxkbui
# define ProfileLibxkbui NO
# endif
#else
# ifndef SharedLibxkbui
# define SharedLibxkbui NO
# endif
# ifndef NormalLibxkbui
# define NormalLibxkbui NO
# endif
# ifndef DebugLibxkbui
# define DebugLibxkbui NO
# endif
# ifndef ProfileLibxkbui
# define ProfileLibxkbui NO
# endif
#endif
XKBUILIBSRC = $(LIBSRC)/xkbui
#if SharedLibxkbui
# ifndef SharedxkbuiRev
# define SharedxkbuiRev 1.0
# endif
SharedLibReferences(XKBUI,NX_xkbui,$(XKBUISRC),SOXKBUIREV, SharedxkbuiRev)
#else
ProjectUnsharedLibReferences(XKBUI,NX_xkbui,$(XKBUILIBSRC),XBuildLibDir)
#endif
#ifndef XkbuiLibs
# define XkbuiLibs $(XKBUILIB)
#endif
#ifndef XkbuiDepLibs
# define XkbuiDepLibs $(DEPXKBFILELIB)
#endif
#ifndef NeedDefaultDepLibs #ifndef NeedDefaultDepLibs
#define NeedDefaultDepLibs YES #define NeedDefaultDepLibs YES
#endif #endif
......
...@@ -19,7 +19,6 @@ XCOMM $XFree86: xc/config/cf/lnxLib.tmpl,v 3.19 2003/10/15 22:47:48 herrb Exp $ ...@@ -19,7 +19,6 @@ XCOMM $XFree86: xc/config/cf/lnxLib.tmpl,v 3.19 2003/10/15 22:47:48 herrb Exp $
#define SharedXxf86miscReqs $(LDPRELIB) $(XLIB) #define SharedXxf86miscReqs $(LDPRELIB) $(XLIB)
#define SharedXxf86vmReqs $(LDPRELIB) $(XLIB) #define SharedXxf86vmReqs $(LDPRELIB) $(XLIB)
#define SharedxkbfileReqs $(LDPRELIB) $(XONLYLIB) #define SharedxkbfileReqs $(LDPRELIB) $(XONLYLIB)
#define SharedxkbuiReqs $(LDPRELIB) $(XKBFILELIB) $(XONLYLIB)
#define SharedXfixesReqs $(LDPRELIB) $(XLIB) #define SharedXfixesReqs $(LDPRELIB) $(XLIB)
#define SharedXdamageReqs $(LDPRELIB) $(XLIB) #define SharedXdamageReqs $(LDPRELIB) $(XLIB)
#define SharedXcompositeReqs $(LDPRELIB) $(XDAMAGELIB) $(XFIXESLIB) $(XLIB) #define SharedXcompositeReqs $(LDPRELIB) $(XDAMAGELIB) $(XFIXESLIB) $(XLIB)
......
...@@ -160,7 +160,6 @@ XCOMM $Xorg: xfree86.cf,v 1.4 2000/08/17 19:41:49 cpqbld Exp $ ...@@ -160,7 +160,6 @@ XCOMM $Xorg: xfree86.cf,v 1.4 2000/08/17 19:41:49 cpqbld Exp $
#define BuildXF86VidModeLibrary YES #define BuildXF86VidModeLibrary YES
#define BuildXKBlib YES #define BuildXKBlib YES
#define BuildXKBfilelib YES #define BuildXKBfilelib YES
#define BuildXKBuilib YES
#endif #endif
/* /*
......
...@@ -196,7 +196,6 @@ NX_VERSION_CURRENT_STRING = nxVersionString ...@@ -196,7 +196,6 @@ NX_VERSION_CURRENT_STRING = nxVersionString
#define BuildXF86VidModeLibrary YES #define BuildXF86VidModeLibrary YES
#define BuildXKBlib YES #define BuildXKBlib YES
#define BuildXKBfilelib YES #define BuildXKBfilelib YES
#define BuildXKBuilib YES
#endif #endif
/* /*
......
...@@ -15,10 +15,6 @@ NULL = ...@@ -15,10 +15,6 @@ NULL =
XKBLIBDIR = xkbfile XKBLIBDIR = xkbfile
#endif #endif
#if BuildXKBuilib
XKBUILIBDIR = xkbui
#endif
#if BuildXF86MiscLibrary #if BuildXF86MiscLibrary
XF86MISCLIBDIR = Xxf86misc XF86MISCLIBDIR = Xxf86misc
#endif #endif
...@@ -87,7 +83,6 @@ LINTSUBDIRS = \ ...@@ -87,7 +83,6 @@ LINTSUBDIRS = \
$(XF86RUSHLIBDIR) \ $(XF86RUSHLIBDIR) \
$(XTSTLIBDIR) \ $(XTSTLIBDIR) \
$(XKBLIBDIR) \ $(XKBLIBDIR) \
$(XKBUILIBDIR) \
$(XINERAMADIR) \ $(XINERAMADIR) \
$(RENDERLIBDIR) \ $(RENDERLIBDIR) \
$(XFIXESLIBDIR) \ $(XFIXESLIBDIR) \
......
XCOMM $XConsortium: Imakefile /main/1 1995/11/30 19:00:42 kaleb $
XCOMM $XFree86: xc/lib/xkbui/Imakefile,v 3.4 2003/10/15 21:23:38 herrb Exp $
#define DoNormalLib NormalLibxkbui
#define DoSharedLib SharedLibxkbui
#define DoExtraLib SharedLibxkbui
#define DoDebugLib DebugLibxkbui
#define DoProfileLib ProfileLibxkbui
#define HasSharedData NO
#define LibName NX_xkbui
#define SoRev SOXKBUIREV
#define IncSubdir X11
#define IncSubSubdir extensions
#ifdef SharedxkbuiReqs
REQUIREDLIBS = SharedxkbuiReqs
#endif
SRCS = XKBui.c
OBJS = XKBui.o
HEADERS = XKBui.h
INCLUDES = -I. -I$(EXTINCSRC) -I../xkbfile
#include <Library.tmpl>
DependTarget()
/* $XConsortium: XKBui.c /main/2 1995/12/07 21:18:19 kaleb $ */
/************************************************************
Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc.
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright
notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting
documentation, and that the name of Silicon Graphics not be
used in advertising or publicity pertaining to distribution
of the software without specific prior written permission.
Silicon Graphics makes no representation about the suitability
of this software for any purpose. It is provided "as is"
without any express or implied warranty.
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
/* $XFree86: xc/lib/xkbui/XKBui.c,v 3.6 1999/06/20 07:14:08 dawes Exp $ */
#include <X11/Xos.h>
#include <stdio.h>
#include <stdlib.h>
#if defined(SVR4) && defined(i386) && !defined(_XOPEN_SOURCE)
# define _XOPEN_SOURCE
# include <math.h>
# undef _XOPEN_SOURCE
#else
# include <math.h>
#endif /* _XOPEN_SOURCE */
#include <X11/Xfuncs.h>
#include "XKBuiPriv.h"
#include <X11/extensions/XKBfile.h>
#ifndef M_PI
# define M_PI 3.141592653589793238462
#endif
/* This function is an internal function in the xkbfile library */
extern int _XkbStrCaseCmp(
char * /* str1 */,
char * /* str2 */
);
static XkbUI_ViewOptsRec dfltOpts = {
XkbUI_AllViewOptsMask /* present */,
1 /* fg */,
0 /* bg */,
XkbUI_KeyNames /* label_mode */,
0 /* color_mode */,
{
0 /* viewport.x */,
0 /* viewport.y */,
640 /* viewport.width */,
480 /* viewport.height */
},
10, 10, /* margin_width, margin_height */
None
};
XkbUI_ViewPtr
XkbUI_SimpleInit(Display *dpy,Window win,int width,int height)
{
XkbDescPtr xkb;
if ((!dpy)||(win==None)||(width<1)||(height<1))
return NULL;
xkb= XkbGetKeyboard(dpy,XkbGBN_AllComponentsMask,XkbUseCoreKbd);
if (!xkb)
return NULL;
return XkbUI_Init(dpy,win,width,height,xkb,NULL);
}
static void
_XkbUI_AllocateColors(XkbUI_ViewPtr view)
{
register int i;
Display * dpy;
XColor sdef,xdef;
XkbDescPtr xkb;
dpy= view->dpy;
xkb= view->xkb;
if (view->opts.cmap==None)
view->opts.cmap= DefaultColormap(dpy,DefaultScreen(dpy));
for (i=0;i<xkb->geom->num_colors;i++) {
char *spec;
Bool found;
spec= xkb->geom->colors[i].spec;
found= False;
if (XAllocNamedColor(view->dpy,view->opts.cmap,spec,&sdef,&xdef)) {
xkb->geom->colors[i].pixel= sdef.pixel;
#ifdef DEBUG
fprintf(stderr,"got pixel %d for \"%s\"\n",sdef.pixel,spec);
#endif
found= True;
}
if ((!found)&&(XkbLookupCanonicalRGBColor(spec,&sdef))) {
char buf[20];
sprintf(buf,"#%02x%02x%02x",(sdef.red>>8)&0xff,
(sdef.green>>8)&0xff,
(sdef.blue>>8)&&0xff);
if (XAllocNamedColor(view->dpy,view->opts.cmap,buf,&sdef,&xdef)) {
xkb->geom->colors[i].pixel= sdef.pixel;
#ifdef DEBUG
fprintf(stderr,"got pixel %d for \"%s\"\n",sdef.pixel,spec);
#endif
found= True;
}
}
if (!found) {
xkb->geom->colors[i].pixel= view->opts.fg;
fprintf(stderr,"Couldn't allocate color \"%s\"\n",spec);
}
}
return;
}
XkbUI_ViewPtr
XkbUI_Init( Display * dpy,
Window win,
int width,
int height,
XkbDescPtr xkb,
XkbUI_ViewOptsPtr opts)
{
XGCValues xgcv;
XkbUI_ViewPtr view;
int scrn;
if ((!dpy)||(!xkb)||(!xkb->geom)||(win==None)||(width<1)||(height<1))
return NULL;
view= _XkbTypedCalloc(1,XkbUI_ViewRec);
if (!view)
return NULL;
scrn= DefaultScreen(dpy);
view->dpy= dpy;
view->xkb= xkb;
view->win= win;
view->opts= dfltOpts;
view->opts.fg= WhitePixel(dpy,scrn);
view->opts.bg= BlackPixel(dpy,scrn);
view->opts.viewport.x= 0;
view->opts.viewport.y= 0;
view->opts.viewport.width= width;
view->opts.viewport.height= height;
if ((opts)&&(opts->present)) {
if (opts->present&XkbUI_BackgroundMask)
view->opts.bg= opts->bg;
if (opts->present&XkbUI_ForegroundMask)
view->opts.fg= opts->fg;
if (opts->present&XkbUI_LabelModeMask)
view->opts.label_mode= opts->label_mode;
if (opts->present&XkbUI_ColorModeMask)
view->opts.color_mode= opts->color_mode;
if (opts->present&XkbUI_WidthMask)
view->opts.viewport.width= opts->viewport.width;
if (opts->present&XkbUI_HeightMask)
view->opts.viewport.height= opts->viewport.height;
if (opts->present&XkbUI_XOffsetMask)
view->opts.viewport.x= opts->viewport.x;
if (opts->present&XkbUI_YOffsetMask)
view->opts.viewport.y= opts->viewport.y;
if (opts->present&XkbUI_MarginWidthMask)
view->opts.margin_width= opts->margin_width;
if (opts->present&XkbUI_MarginHeightMask)
view->opts.margin_height= opts->margin_height;
if (opts->present&XkbUI_ColormapMask)
view->opts.cmap= opts->cmap;
}
view->canvas_width= width+(2*view->opts.margin_width);
view->canvas_height= height+(2*view->opts.margin_height);
if (view->opts.viewport.width>view->canvas_width) {
int tmp;
tmp= (view->opts.viewport.width-view->canvas_width)/2;
view->opts.margin_width+= tmp;
}
if (view->opts.viewport.height>view->canvas_height) {
int tmp;
tmp= (view->opts.viewport.height-view->canvas_height)/2;
view->opts.margin_height+= tmp;
}
bzero(view->state,XkbMaxLegalKeyCode+1);
xgcv.foreground= view->opts.fg;
xgcv.background= view->opts.bg;
view->gc= XCreateGC(view->dpy,view->win,GCForeground|GCBackground,&xgcv);
view->xscale= ((double)width)/((double)xkb->geom->width_mm);
view->yscale= ((double)height)/((double)xkb->geom->height_mm);
_XkbUI_AllocateColors(view);
return view;
}
Status
XkbUI_SetViewOpts(XkbUI_ViewPtr view,XkbUI_ViewOptsPtr opts)
{
if ((!view)||(!opts))
return BadValue;
if (opts->present==0)
return Success;
if (opts->present&XkbUI_BackgroundMask)
view->opts.bg= opts->bg;
if (opts->present&XkbUI_ForegroundMask)
view->opts.fg= opts->fg;
if (opts->present&XkbUI_LabelModeMask)
view->opts.label_mode= opts->label_mode;
if (opts->present&XkbUI_ColorModeMask)
view->opts.color_mode= opts->color_mode;
if (opts->present&XkbUI_WidthMask)
view->opts.viewport.width= opts->viewport.width;
if (opts->present&XkbUI_HeightMask)
view->opts.viewport.height= opts->viewport.height;
if (opts->present&XkbUI_XOffsetMask)
view->opts.viewport.x= opts->viewport.x;
if (opts->present&XkbUI_YOffsetMask)
view->opts.viewport.y= opts->viewport.y;
if (opts->present&XkbUI_MarginWidthMask)
view->opts.margin_width= opts->margin_width;
if (opts->present&XkbUI_MarginHeightMask)
view->opts.margin_height= opts->margin_height;
if (opts->present&XkbUI_ColormapMask) {
view->opts.cmap= opts->cmap;
_XkbUI_AllocateColors(view);
}
return Success;
}
Status
XbUI_GetViewOpts(XkbUI_ViewPtr view,XkbUI_ViewOptsPtr opts_rtrn)
{
if ((!view)||(!opts_rtrn))
return BadValue;
*opts_rtrn= view->opts;
return Success;
}
Status
XkbUI_SetCanvasSize(XkbUI_ViewPtr view,int width,int height)
{
if ((!view)||(!view->xkb)||(!view->xkb->geom))
return BadValue;
view->canvas_width= width;
view->canvas_height= height;
view->xscale= ((double)width)/((double)view->xkb->geom->width_mm);
view->yscale= ((double)height)/((double)view->xkb->geom->height_mm);
return Success;
}
Status
XkbUI_GetCanvasSize(XkbUI_ViewPtr view,int *width_rtrn,int *height_rtrn)
{
if (!view)
return BadValue;
if (width_rtrn) *width_rtrn= view->canvas_width;
if (height_rtrn) *height_rtrn= view->canvas_height;
return Success;
}
/***====================================================================***/
static void
_RotatePoints( double rangle,
int corner_x,
int corner_y,
int nPts,
XkbUI_PointPtr pts)
{
register int i;
double rr,rx,ry,rt;
for (i=0;i<nPts;i++,pts++) {
rx= pts->x-corner_x; ry= pts->y-corner_y; /* translate */
rr= hypot(rx,ry);
rt= atan2(ry,rx)+rangle;
rx= rr*cos(rt);
ry= rr*sin(rt);
pts->x= rx+corner_x; pts->y= ry+corner_y;
}
return;
}
static void
_DrawPoints(XkbUI_ViewPtr view,int nPts,XkbUI_PointPtr pts,XPoint *xpts)
{
register int i;
for (i=0;i<nPts;i++) {
if (pts[i].x>=0.0) xpts[i].x= pts[i].x*view->xscale+0.5;
else xpts[i].x= pts[i].x*view->xscale-0.5;
xpts[i].x+= view->opts.viewport.x;
if (pts[i].y>=0.0) xpts[i].y= pts[i].y*view->yscale+0.5;
else xpts[i].x= pts[i].y*view->yscale-0.5;
xpts[i].y+= view->opts.viewport.y;
}
if ((xpts[nPts-1].x!=xpts[0].x)||(xpts[nPts-1].y!=xpts[0].y))
xpts[nPts++]= xpts[0]; /* close the shape, if necessary */
XDrawLines(view->dpy,view->win,view->gc,xpts,nPts,CoordModeOrigin);
XFlush(view->dpy);
return;
}
static void
_DrawSolidPoints(XkbUI_ViewPtr view,int nPts,XkbUI_PointPtr pts,XPoint *xpts)
{
register int i;
for (i=0;i<nPts;i++) {
if (pts[i].x>=0.0) xpts[i].x= pts[i].x*view->xscale+0.5;
else xpts[i].x= pts[i].x*view->xscale-0.5;
xpts[i].x+= view->opts.viewport.x;
if (pts[i].y>=0.0) xpts[i].y= pts[i].y*view->yscale+0.5;
else xpts[i].x= pts[i].y*view->yscale-0.5;
xpts[i].y+= view->opts.viewport.y;
}
if ((xpts[nPts-1].x!=xpts[0].x)||(xpts[nPts-1].y!=xpts[0].y))
xpts[nPts++]= xpts[0]; /* close the shape, if necessary */
XFillPolygon(view->dpy,view->win,view->gc,xpts,nPts,Nonconvex,
CoordModeOrigin);
XFlush(view->dpy);
return;
}
static void
_DrawShape( XkbUI_ViewPtr view,
double rangle,
int xoff,
int yoff,
int rotx,
int roty,
XkbShapePtr shape,
Bool key)
{
XkbOutlinePtr ol;
register int o;
int maxPts;
XkbUI_PointPtr uipts;
XPoint * xpts;
for (maxPts=4,o=0,ol=shape->outlines;o<shape->num_outlines;o++,ol++) {
if ((shape->num_outlines>1)&&(ol==shape->approx))
continue;
if (ol->num_points>maxPts)
maxPts= ol->num_points;
}
uipts= _XkbTypedCalloc(maxPts,XkbUI_PointRec);
xpts= _XkbTypedCalloc(maxPts+1,XPoint);
XSetForeground(view->dpy,view->gc,view->xkb->geom->label_color->pixel);
for (o=0,ol=shape->outlines;o<shape->num_outlines;o++,ol++) {
XkbPointPtr gpts;
register int p;
if ((shape->num_outlines>1)&&(ol==shape->approx))
continue;
gpts= ol->points;
if (ol->num_points==1) {
uipts[0].x= xoff; uipts[0].y= yoff;
uipts[1].x= xoff+gpts[0].x; uipts[1].y= yoff;
uipts[2].x= xoff+gpts[0].x; uipts[2].y= yoff+gpts[0].y;
uipts[3].x= xoff; uipts[3].y= yoff+gpts[0].y;
p= 4;
}
else if (ol->num_points==2) {
uipts[0].x= xoff+gpts[0].x; uipts[0].y= yoff+gpts[0].y;
uipts[1].x= xoff+gpts[1].x; uipts[1].y= yoff+gpts[0].y;
uipts[2].x= xoff+gpts[1].x; uipts[2].y= yoff+gpts[1].y;
uipts[3].x= xoff+gpts[0].x; uipts[3].y= yoff+gpts[1].y;
p= 4;
}
else {
for (p=0;p<ol->num_points;p++) {
uipts[p].x= xoff+gpts[p].x;
uipts[p].y= yoff+gpts[p].y;
}
p= ol->num_points;
}
if (rangle!=0.0)
_RotatePoints(rangle,rotx,roty,p,uipts);
if (key) {
if (o==0) {
XSetForeground(view->dpy,view->gc,
view->xkb->geom->base_color->pixel);
_DrawSolidPoints(view,p,uipts,xpts);
XSetForeground(view->dpy,view->gc,
view->xkb->geom->label_color->pixel);
}
_DrawPoints(view,p,uipts,xpts);
}
else {
_DrawPoints(view,p,uipts,xpts);
}
}
_XkbFree(uipts);
_XkbFree(xpts);
return;
}
static void
_DrawRect( XkbUI_ViewPtr view,
double rangle,
int x1,
int y1,
int x2,
int y2,
Bool key)
{
XkbUI_PointRec uipts[4];
XPoint xpts[4];
XSetForeground(view->dpy,view->gc,view->xkb->geom->label_color->pixel);
uipts[0].x= x1; uipts[0].y= y1;
uipts[1].x= x2; uipts[1].y= y1;
uipts[2].x= x2; uipts[2].y= y2;
uipts[3].x= x1; uipts[3].y= y2;
if (rangle!=0.0)
_RotatePoints(rangle,0,0,4,uipts);
if (key) {
XSetForeground(view->dpy,view->gc,view->xkb->geom->base_color->pixel);
_DrawSolidPoints(view,4,uipts,xpts);
XSetForeground(view->dpy,view->gc,view->xkb->geom->label_color->pixel);
_DrawPoints(view,4,uipts,xpts);
}
else {
_DrawPoints(view,4,uipts,xpts);
}
return;
}
static void
_DrawDoodad( XkbUI_ViewPtr view,
double rangle,
int xoff,
int yoff,
XkbDoodadPtr doodad)
{
int x;
int y;
XkbShapePtr shape;
Bool solid;
x= doodad->any.left+xoff;
y= doodad->any.top+yoff;
shape= NULL;
solid= False;
switch (doodad->any.type) {
case XkbOutlineDoodad:
shape= XkbShapeDoodadShape(view->xkb->geom,(&doodad->shape));
break;
case XkbSolidDoodad:
shape= XkbShapeDoodadShape(view->xkb->geom,(&doodad->shape));
solid= True;
break;
case XkbTextDoodad:
break;
case XkbIndicatorDoodad:
shape= XkbIndicatorDoodadShape(view->xkb->geom,&doodad->indicator);
solid= True;
break;
case XkbLogoDoodad:
shape= XkbLogoDoodadShape(view->xkb->geom,&doodad->logo);
solid= True;
break;
}
if (shape)
_DrawShape(view,rangle,x,y,x,y,shape,solid);
return;
}
static void
_DrawRow( XkbUI_ViewPtr view,
double rangle,
int xoff,
int yoff,
XkbRowPtr row)
{
register int k,x,y;
XkbKeyPtr key;
x= xoff+row->left; y= yoff+row->top;
for (k=0,key=row->keys;k<row->num_keys;k++,key++) {
XkbShapePtr shape;
shape= XkbKeyShape(view->xkb->geom,key);
if (row->vertical) {
y+= key->gap;
_DrawShape(view,rangle,x,y,xoff,yoff,shape,True);
y+= shape->bounds.y2;
}
else {
x+= key->gap;
_DrawShape(view,rangle,x,y,xoff,yoff,shape,True);
x+= shape->bounds.x2;
}
}
return;
}
static void
_DrawSection(XkbUI_ViewPtr view,XkbSectionPtr section)
{
double rangle;
rangle= ((((double)(section->angle%3600))/3600.0)*(2.0*M_PI));
if (section->doodads) {
XkbDrawablePtr first,draw;
first= XkbGetOrderedDrawables(NULL,section);
if (first) {
for (draw=first;draw!=NULL;draw=draw->next) {
_DrawDoodad(view,rangle,section->left,section->top,draw->u.doodad);
}
XkbFreeOrderedDrawables(first);
}
}
if (section->rows) {
register int r;
XkbRowPtr row;
for (r=0,row=section->rows;r<section->num_rows;r++,row++) {
_DrawRow(view,rangle,section->left,section->top,row);
}
}
return;
}
static void
_DrawAll(XkbUI_ViewPtr view)
{
XkbGeometryPtr geom;
XkbDrawablePtr first,draw;
Bool dfltBorder;
geom= view->xkb->geom;
first= XkbGetOrderedDrawables(geom,NULL);
if (first) {
dfltBorder= True;
for (draw=first;draw!=NULL;draw=draw->next) {
char *name;
if ((draw->type!=XkbDW_Doodad)||
((draw->u.doodad->any.type!=XkbOutlineDoodad)&&
(draw->u.doodad->any.type!=XkbSolidDoodad))) {
continue;
}
name= XkbAtomGetString(view->dpy,draw->u.doodad->any.name);
if ((name!=NULL)&&(_XkbStrCaseCmp(name,"edges")==0)) {
dfltBorder= False;
break;
}
}
if (dfltBorder)
_DrawRect(view,0.0,0,0,geom->width_mm,geom->height_mm,True);
for (draw=first;draw!=NULL;draw=draw->next) {
switch (draw->type) {
case XkbDW_Section:
_DrawSection(view,draw->u.section);
break;
case XkbDW_Doodad:
_DrawDoodad(view,0.0,0,0,draw->u.doodad);
break;
}
}
XkbFreeOrderedDrawables(first);
}
XFlush(view->dpy);
return;
}
static void
_RedrawKey(XkbUI_ViewPtr view,KeyCode kc)
{
/* _DrawAll(view);*/
return;
}
/***====================================================================***/
Bool
XkbUI_SetKeyAppearance(XkbUI_ViewPtr view,KeyCode kc,unsigned int flags)
{
XkbDescPtr xkb;
unsigned old;
if ((!view)||(!view->xkb))
return False;
xkb= view->xkb;
if ((kc<xkb->min_key_code)||(kc>xkb->max_key_code))
return False;
old= view->state[kc];
view->state[kc]= (flags&(~XkbUI_Obscured));
if (old&XkbUI_Obscured)
view->state[kc]|= XkbUI_Obscured;
else if (old!=view->state[kc])
_RedrawKey(view,kc);
return True;
}
Bool
XkbUI_SetKeyAppearanceByName( XkbUI_ViewPtr view,
XkbKeyNamePtr name,
unsigned int flags)
{
KeyCode kc;
if ((!view)||(!view->xkb)||(!name))
return False;
kc= XkbFindKeycodeByName(view->xkb,name->name,True);
if (!kc)
return False;
return XkbUI_SetKeyAppearance(view,kc,flags);
}
Bool
XkbUI_ResetKeyAppearance( XkbUI_ViewPtr view,
unsigned int mask,
unsigned int values)
{
register int i;
unsigned new_val;
if ((!view)||(!view->xkb))
return False;
if (!mask)
return True;
for (i=view->xkb->min_key_code;i<=view->xkb->max_key_code;i++) {
new_val= (view->state[i]&(~mask));
new_val|= (mask&values);
XkbUI_SetKeyAppearance(view,i,new_val);
}
return True;
}
Bool
XkbUI_DrawRegion(XkbUI_ViewPtr view,XRectangle *viewport)
{
if (!view)
return False;
_DrawAll(view);
return True;
}
Bool
XkbUI_DrawChanged( XkbUI_ViewPtr view,
XRectangle * viewport,
XkbChangesPtr changes,
int num_keys,
XkbKeyNamePtr keys)
{
return False;
}
Bool
XkbUI_Select( XkbUI_ViewPtr view,
XPoint * coord,
unsigned int which,
XkbSectionPtr section)
{
return False;
}
#ifndef XKBUI_H
#define XKBUI_H 1
/* $XConsortium: XKBui.h /main/2 1995/12/07 21:18:19 kaleb $ */
/************************************************************
Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc.
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright
notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting
documentation, and that the name of Silicon Graphics not be
used in advertising or publicity pertaining to distribution
of the software without specific prior written permission.
Silicon Graphics makes no representation about the suitability
of this software for any purpose. It is provided "as is"
without any express or implied warranty.
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
/* $XFree86$ */
#include <X11/Xlib.h>
#include <X11/XKBlib.h>
#include <X11/extensions/XKBgeom.h>
typedef struct _XkbUI_View *XkbUI_ViewPtr;
typedef struct _XkbUI_ViewOpts {
unsigned int present;
unsigned int fg;
unsigned int bg;
unsigned int label_mode;
unsigned int color_mode;
XRectangle viewport;
unsigned int margin_width;
unsigned int margin_height;
Colormap cmap;
} XkbUI_ViewOptsRec,*XkbUI_ViewOptsPtr;
/*
* legal values for present field of a view options
*/
#define XkbUI_BackgroundMask (1<<0)
#define XkbUI_ForegroundMask (1<<1)
#define XkbUI_LabelModeMask (1<<2)
#define XkbUI_ColorModeMask (1<<3)
#define XkbUI_WidthMask (1<<4)
#define XkbUI_HeightMask (1<<5)
#define XkbUI_XOffsetMask (1<<6)
#define XkbUI_YOffsetMask (1<<7)
#define XkbUI_ColormapMask (1<<8)
#define XkbUI_MarginWidthMask (1<<9)
#define XkbUI_MarginHeightMask (1<<10)
#define XkbUI_SizeMask (XkbUI_WidthMask|XkbUI_HeightMask)
#define XkbUI_OffsetMask (XkbUI_XOffsetMask|XkbUI_YOffsetMask)
#define XkbUI_MarginMask (XkbUI_MarginWidthMask|XkbUI_MarginHeightMask)
#define XkbUI_AllViewOptsMask (0x7ff)
/*
* legal values for the label_mode of a view options
*/
#define XkbUI_NoLabels 0
#define XkbUI_KeyCodes 1
#define XkbUI_KeyNames 2
#define XkbUI_StateSyms 3
#define XkbUI_MultiSyms 4
typedef struct _XkbUI_Select {
unsigned type;
XkbSectionPtr section;
XkbKeyPtr key;
XkbDoodadPtr doodad;
} XkbUI_SelectRec,*XkbUI_SelectPtr;
/*
* legal values for 'type' field of a selection report
*/
#define XkbUI_Keys 0
#define XkbUI_Indicators 1
#define XkbUI_TextLabels 2
#define XkbUI_SolidShapes 3
#define XkbUI_Outlines 4
#define XkbUI_Logos 5
#define XkbUI_Sections 6
/*
* legal values for 'which' field of a select call
*/
#define XkbUI_KeysMask (1<<0)
#define XkbUI_IndicatorsMask (1<<1)
#define XkbUI_TextLabelsMask (1<<2)
#define XkbUI_SolidShapesMask (1<<3)
#define XkbUI_OutlinesMask (1<<4)
#define XkbUI_LogosMask (1<<5)
#define XkbUI_SectionsMask (1<<6)
/*
* legal values for key appearance flag
*/
#define XkbUI_KeyDown (1<<0)
#define XkbUI_Highlight (1<<1)
_XFUNCPROTOBEGIN
extern XkbUI_ViewPtr XkbUI_SimpleInit(
Display * /* dpy */,
Window /* win */,
int /* width */,
int /* height */
);
extern XkbUI_ViewPtr XkbUI_Init(
Display * /* dpy */,
Window /* win */,
int /* width */,
int /* height */,
XkbDescPtr /* xkb */,
XkbUI_ViewOptsPtr /* view */
);
extern Status XkbUI_SetViewOpts(
XkbUI_ViewPtr /* view */,
XkbUI_ViewOptsPtr /* opts */
);
extern Status XbUI_GetViewOpts(
XkbUI_ViewPtr /* view */,
XkbUI_ViewOptsPtr /* opts_rtrn */
);
extern Status XkbUI_SetCanvasSize(
XkbUI_ViewPtr /* view */,
int /* width */,
int /* height */
);
extern Status XkbUI_GetCanvasSize(
XkbUI_ViewPtr /* view */,
int * /* width_rtrn */,
int * /* height_rtrn */
);
extern Bool XkbUI_SetKeyAppearance(
XkbUI_ViewPtr /* view */,
KeyCode /* kc */,
unsigned /* flags */
);
extern Bool XkbUI_SetKeyAppearanceByName(
XkbUI_ViewPtr /* view */,
XkbKeyNamePtr /* name */,
unsigned /* flags */
);
extern Bool XkbUI_ResetKeyAppearance(
XkbUI_ViewPtr /* view */,
unsigned int /* mask */,
unsigned int /* values */
);
extern Bool XkbUI_DrawRegion(
XkbUI_ViewPtr /* view */,
XRectangle * /* viewport */
);
extern Bool XkbUI_DrawChanged(
XkbUI_ViewPtr /* view */,
XRectangle * /* viewport */,
XkbChangesPtr /* changes */,
int /* num_keys */,
XkbKeyNamePtr /* keys */
);
extern Bool XkbUI_Select(
XkbUI_ViewPtr /* view */,
XPoint * /* coord */,
unsigned int /* which */,
XkbSectionPtr /* section */
);
_XFUNCPROTOEND
#endif /* XKBUI_H */
#ifndef XKBUIPRIV_H
#define XKBUIPRIV_H 1
/* $XConsortium: XKBuiPriv.h /main/2 1995/12/07 21:18:19 kaleb $ */
/************************************************************
Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc.
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright
notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting
documentation, and that the name of Silicon Graphics not be
used in advertising or publicity pertaining to distribution
of the software without specific prior written permission.
Silicon Graphics makes no representation about the suitability
of this software for any purpose. It is provided "as is"
without any express or implied warranty.
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
#include "XKBui.h"
typedef struct _XkbUI_Point {
double x;
double y;
} XkbUI_PointRec,*XkbUI_PointPtr;
typedef struct _XkbUI_View {
Display * dpy;
XkbDescPtr xkb;
Window win;
GC gc;
XkbUI_ViewOptsRec opts;
unsigned int canvas_width;
unsigned int canvas_height;
unsigned char state[XkbMaxLegalKeyCode];
double xscale;
double yscale;
} XkbUI_ViewRec;
#define _XkbAlloc(s) malloc((s))
#define _XkbCalloc(n,s) calloc((n),(s))
#define _XkbRealloc(o,s) realloc((o),(s))
#define _XkbTypedAlloc(t) ((t *)malloc(sizeof(t)))
#define _XkbTypedCalloc(n,t) ((t *)calloc((n),sizeof(t)))
#define _XkbTypedRealloc(o,n,t) \
((o)?(t *)realloc((o),(n)*sizeof(t)):_XkbTypedCalloc(n,t))
#define _XkbClearElems(a,f,l,t) bzero(&(a)[f],((l)-(f)+1)*sizeof(t))
#define _XkbFree(p) free(p)
/*
* private values for key appearance flags
* must not conflict with values from XKBui.h
*/
#define XkbUI_Obscured (1<<7)
_XFUNCPROTOBEGIN
_XFUNCPROTOEND
#endif /* XKBUIPRIV_H */
LIBRARY xkbui
VERSION LIBRARY_VERSION
EXPORTS
XbUI_GetViewOpts
XkbUI_DrawChanged
XkbUI_DrawRegion
XkbUI_GetCanvasSize
XkbUI_Init
XkbUI_ResetKeyAppearance
XkbUI_Select
XkbUI_SetCanvasSize
XkbUI_SetKeyAppearance
XkbUI_SetKeyAppearanceByName
XkbUI_SetViewOpts
XkbUI_SimpleInit
/* $XFree86$ */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment