00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifdef X11_SKINS
00026
00027 #include "../src/generic_window.hpp"
00028 #include "x11_display.hpp"
00029 #include "x11_graphics.hpp"
00030 #include "x11_tooltip.hpp"
00031
00032 X11Tooltip::X11Tooltip( intf_thread_t *pIntf,
00033 X11Display &rDisplay ):
00034 OSTooltip( pIntf ), m_rDisplay( rDisplay )
00035 {
00036 Window root = DefaultRootWindow( XDISPLAY );
00037 XSetWindowAttributes attr;
00038
00039 attr.override_redirect = True;
00040
00041
00042 m_wnd = XCreateWindow( XDISPLAY, root, 0, 0, 1, 1, 0, 0,
00043 InputOutput, CopyFromParent, CWOverrideRedirect,
00044 &attr );
00045
00046
00047 if( XPIXELSIZE == 1 )
00048 {
00049 XSetWindowColormap( XDISPLAY, m_wnd, m_rDisplay.getColormap() );
00050 }
00051 }
00052
00053
00054 X11Tooltip::~X11Tooltip()
00055 {
00056 XDestroyWindow( XDISPLAY, m_wnd );
00057 }
00058
00059
00060 void X11Tooltip::show( int left, int top, OSGraphics &rText )
00061 {
00062
00063 Drawable src = ((X11Graphics&)rText).getDrawable();
00064 int width = rText.getWidth();
00065 int height = rText.getHeight();
00066
00067 XMoveResizeWindow( XDISPLAY, m_wnd, left, top, width, height );
00068
00069 XMapRaised( XDISPLAY, m_wnd );
00070
00071 XMoveWindow( XDISPLAY, m_wnd, left, top );
00072 XCopyArea( XDISPLAY, src, m_wnd, XGC, 0, 0, width, height, 0, 0 );
00073 }
00074
00075
00076 void X11Tooltip::hide()
00077 {
00078
00079 XUnmapWindow( XDISPLAY, m_wnd );
00080 }
00081
00082
00083 #endif