Mercurial > sdl-ios-xcode
view docs/html/sdlcreatecursor.html @ 1558:b46bb79cc197
Fixed bug #113:
Date: Sat, 16 Apr 2005 08:39:22 +1000
From: "Eric Mangold"
Subject: [SDL] Window manager does not show SDL window titles
Hello,
I have an issue with SDL-using applications and the sawfish window manager.
The problem is that SDL windows do not show the window caption. My gnome
panel *does* show the window name, but the actual sawfish window frame
shows no caption at all. All other non-SDL applications that I use work
fine.
I tried a couple other window managers, and they *were* able to show the
SDL window captions correctly. Though there many be other WMs that can't.
I believe the problem is that SDL is using the UTF8_STRING type for the
window's WM_NAME and WM_ICON properties. In fact, WM_NAME and WM_ICON are
supposed to set to a TEXT type, usually STRING (ISO 8859-1).
The property names _NET_WM_NAME and _NET_WM_ICON_NAME should be used to
store the UTF8_STRING versions of the window title and icon name.
You can see the properties I refer to with a command like this:
xprop|grep -e "WM.*NAME"
Please note the freedesktop.org standard:
http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html#id2506954
This page talks a little bit about the history of these properties. Just
search down the page for "WM_NAME".
http://www.cl.cam.ac.uk/~mgk25/unicode.html
Please let me know if I can be of any assistance in resolving this issue.
Thanks,
Eric Mangold
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 20 Mar 2006 07:31:36 +0000 |
parents | 355632dca928 |
children |
line wrap: on
line source
<HTML ><HEAD ><TITLE >SDL_CreateCursor</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ "><LINK REL="HOME" TITLE="SDL Library Documentation" HREF="index.html"><LINK REL="UP" TITLE="Video" HREF="video.html"><LINK REL="PREVIOUS" TITLE="SDL_WarpMouse" HREF="sdlwarpmouse.html"><LINK REL="NEXT" TITLE="SDL_FreeCursor" HREF="sdlfreecursor.html"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFF8DC" TEXT="#000000" LINK="#0000ee" VLINK="#551a8b" ALINK="#ff0000" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >SDL Library Documentation</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="sdlwarpmouse.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="sdlfreecursor.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="SDLCREATECURSOR" ></A >SDL_CreateCursor</H1 ><DIV CLASS="REFNAMEDIV" ><A NAME="AEN2487" ></A ><H2 >Name</H2 >SDL_CreateCursor -- Creates a new mouse cursor.</DIV ><DIV CLASS="REFSYNOPSISDIV" ><A NAME="AEN2490" ></A ><H2 >Synopsis</H2 ><DIV CLASS="FUNCSYNOPSIS" ><A NAME="AEN2491" ></A ><P ></P ><PRE CLASS="FUNCSYNOPSISINFO" >#include "SDL.h"</PRE ><P ><CODE ><CODE CLASS="FUNCDEF" >SDL_Cursor *<B CLASS="FSFUNC" >SDL_CreateCursor</B ></CODE >(Uint8 *data, Uint8 *mask, int w, int h, int hot_x, int hot_y);</CODE ></P ><P ></P ></DIV ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN2497" ></A ><H2 >Description</H2 ><P >Create a cursor using the specified <TT CLASS="PARAMETER" ><I >data</I ></TT > and <TT CLASS="PARAMETER" ><I >mask</I ></TT > (in MSB format). The cursor width must be a multiple of 8 bits.</P ><P >The cursor is created in black and white according to the following: <DIV CLASS="INFORMALTABLE" ><A NAME="AEN2503" ></A ><P ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><THEAD ><TR ><TH ALIGN="LEFT" VALIGN="TOP" >Data / Mask</TH ><TH ALIGN="LEFT" VALIGN="TOP" >Resulting pixel on screen</TH ></TR ></THEAD ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" >0 / 1</TD ><TD ALIGN="LEFT" VALIGN="TOP" >White</TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" >1 / 1</TD ><TD ALIGN="LEFT" VALIGN="TOP" >Black</TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" >0 / 0</TD ><TD ALIGN="LEFT" VALIGN="TOP" >Transparent</TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" >1 / 0</TD ><TD ALIGN="LEFT" VALIGN="TOP" >Inverted color if possible, black if not.</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></P ><P >Cursors created with this function must be freed with <A HREF="sdlfreecursor.html" >SDL_FreeCursor</A >.</P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN2524" ></A ><H2 >Example</H2 ><PRE CLASS="PROGRAMLISTING" >/* Stolen from the mailing list */ /* Creates a new mouse cursor from an XPM */ /* XPM */ static const char *arrow[] = { /* width height num_colors chars_per_pixel */ " 32 32 3 1", /* colors */ "X c #000000", ". c #ffffff", " c None", /* pixels */ "X ", "XX ", "X.X ", "X..X ", "X...X ", "X....X ", "X.....X ", "X......X ", "X.......X ", "X........X ", "X.....XXXXX ", "X..X..X ", "X.X X..X ", "XX X..X ", "X X..X ", " X..X ", " X..X ", " X..X ", " XX ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "0,0" }; static SDL_Cursor *init_system_cursor(const char *image[]) { int i, row, col; Uint8 data[4*32]; Uint8 mask[4*32]; int hot_x, hot_y; i = -1; for ( row=0; row<32; ++row ) { for ( col=0; col<32; ++col ) { if ( col % 8 ) { data[i] <<= 1; mask[i] <<= 1; } else { ++i; data[i] = mask[i] = 0; } switch (image[4+row][col]) { case 'X': data[i] |= 0x01; mask[i] |= 0x01; break; case '.': mask[i] |= 0x01; break; case ' ': break; } } } sscanf(image[4+row], "%d,%d", &hot_x, &hot_y); return SDL_CreateCursor(data, mask, 32, 32, hot_x, hot_y); }</PRE ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN2527" ></A ><H2 >See Also</H2 ><P ><A HREF="sdlfreecursor.html" ><TT CLASS="FUNCTION" >SDL_FreeCursor</TT ></A >, <A HREF="sdlsetcursor.html" ><TT CLASS="FUNCTION" >SDL_SetCursor</TT ></A >, <A HREF="sdlshowcursor.html" ><TT CLASS="FUNCTION" >SDL_ShowCursor</TT ></A ></P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="sdlwarpmouse.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="sdlfreecursor.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >SDL_WarpMouse</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="video.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >SDL_FreeCursor</TD ></TR ></TABLE ></DIV ></BODY ></HTML >