Mercurial > hg > xemacs-beta
view src/balloon-x.c @ 134:34a5b81f86ba r20-2b1
Import from CVS: tag r20-2b1
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:30:11 +0200 |
parents | |
children | b980b6286996 |
line wrap: on
line source
#include <config.h> #include "lisp.h" #include "device.h" #include "console-x.h" #include "balloon_help.h" /* ### start of hack */ static unsigned long alloc_color( Display* dpy, const char* colorname, int light ) { Colormap cmap = DefaultColormap( dpy, DefaultScreen(dpy) ); unsigned long pixel = 0; XColor color; if( XParseColor(dpy, cmap, colorname, &color) && XAllocColor(dpy, cmap, &color) ) { pixel = color.pixel; } else { if( light ) { printf("Warning: could not allocate color \"%s\", using \"white\"\n", colorname); pixel = alloc_color( dpy, "white", True ); } else { printf("Warning: could not allocate color \"%s\", using \"black\"\n", colorname); pixel = alloc_color( dpy, "black", True ); } } return pixel; } static XFontStruct* open_font( Display* dpy, const char* font_name ) { XFontStruct* fontStruct = NULL; fontStruct = XLoadQueryFont( dpy, font_name ? font_name : "fixed" ); if( fontStruct == NULL ) { printf("Warning: could not load font \"%s\", using \"fixed\".\n", font_name); fontStruct = XLoadQueryFont( dpy, "fixed" ); assert( fontStruct != NULL ); } return fontStruct; } static void init( void ) { static int init; if( !init ) { Pixel fg, bg, shine, shadow; XFontStruct* font; Display *dpy = DEVICE_X_DISPLAY (XDEVICE (Vdefault_x_device)); fg = alloc_color( dpy, "grey60", 1 ); bg = alloc_color( dpy, "black", 0 ); shine = alloc_color( dpy, "grey80", 1 ); shadow = alloc_color( dpy, "grey40", 0 ); font = open_font( dpy, "-adobe-helvetica-medium-r-normal--12-*" ); balloon_help_create( dpy, bg, fg, shine, shadow, font ); init = 1; } } /* ### end of hack */ DEFUN( "show-balloon-help", Fshow_balloon_help, 1, 1, 0, /* Show balloon help. */ (string)) { char *p; CHECK_STRING (string); p = (char *) XSTRING_DATA (string); init(); balloon_help_show( p ); return Qnil; } DEFUN( "hide-balloon-help", Fhide_balloon_help, 0, 0, 0, /* Hide balloon help. */ ()) { init(); balloon_help_hide(); return Qnil; } DEFUN( "balloon-help-move-to-pointer", Fballoon_help_move_to_pointer, 0, 0, 0, /* Hide balloon help. */ ()) { init(); balloon_help_move_to_pointer(); return Qnil; } /************************************************************************/ /* initialization */ /************************************************************************/ void syms_of_balloon_x (void) { DEFSUBR( Fshow_balloon_help ); DEFSUBR( Fhide_balloon_help ); DEFSUBR( Fballoon_help_move_to_pointer ); } void vars_of_balloon_x (void) { Fprovide (intern ("balloon-help")); }