我是靠谱客的博主 稳重乌龟,这篇文章主要介绍directfb + gtk的鼠标隐藏问题,现在分享给大家,希望可以做个参考。

这段时间实现基于directfbGTK项目,遇到一些问题,其中一个问题是由于基于directfbgtk没有实现相应的接口造成。本来想通过移动鼠标或禁止鼠标的方式来实现鼠标的隐藏,但是因为gdk_display_warp_pointer()gdk_display_freeze_pointer()接口没有实现无法实现鼠标的隐藏。

为了能够隐藏鼠标我找了gdk_display_warp_pointer()gdk_display_freeze_pointer()实现。为了以后回来温习,同时让其他人不为此烦恼,我将实现贴出。

 

 

/* 移动鼠标 */

void gdk_display_warp_pointer (GdkDisplay *display,

                                                      GdkScreen  *screen,

                                                                    gint            x,

                                                                    gint            y)

{

    GdkDisplayDFB * gdkdisplay = _gdk_display;

    gdkdisplay->layer->SetCooperativeLevel(gdkdisplay->layer, DLSCL_ADMINISTRATIVE);

    DFBResult returnvalue = gdkdisplay->layer->WarpCursor(gdkdisplay->layer, x, y);

    gdkdisplay->layer->SetCooperativeLevel(gdkdisplay->layer, DLSCL_SHARED);

}

 

/* 使能或不使能鼠标 */

void gdk_display_freeze_pointer (const gboolean flag)

{

    GdkDisplayDFB * gdkdisplay = _gdk_display;

    gdkdisplay->layer->SetCooperativeLevel(gdkdisplay->layer, DLSCL_ADMINISTRATIVE);

    DFBResult returnvalue = gdkdisplay->layer->EnableCursor(gdkdisplay->layer, flag);

    gdkdisplay->layer->SetCooperativeLevel(gdkdisplay->layer, DLSCL_SHARED);

 

}

 

/* 用一个透明图片覆盖鼠标 */

 void gdk_window_set_invisible_cursor (GdkWindow *window)
{
 GdkBitmap *empty_bitmap;
 GdkCursor *cursor;
 GdkColor useless;
 char invisible_cursor_bits[] = { 0x0 }; 
 useless.red = useless.green = useless.blue = 0;
 useless.pixel = 0;
 empty_bitmap = gdk_bitmap_create_from_data (window,
          invisible_cursor_bits,
          1, 1);
  cursor = gdk_cursor_new_from_pixmap (empty_bitmap,
          empty_bitmap,
          &useless,
          &useless, 0, 0);
 gdk_window_set_cursor (window, cursor);
 gdk_cursor_unref (cursor);
 g_object_unref (G_OBJECT (empty_bitmap));
}

最后

以上就是稳重乌龟最近收集整理的关于directfb + gtk的鼠标隐藏问题的全部内容,更多相关directfb内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部