[Armadillo:05955] Re: 500FX のGTK小技メモ
Yasushi SHOJI
email@hidden
2010年 10月 20日 (水) 16:37:51 JST
At Wed, 20 Oct 2010 11:37:49 +0900,
MasakiAoyama wrote:
>
> ググってもすぐ出てくる情報ですが、ML検索したらすぐ出てくるようにメモ代わり
> に書いといてもいいんじゃなイカ?と思ったので書き残しておきます。
こういうの個人的には大好きです。:-)
# glib/gtk+ な開発ガイドを書いていない言い訳ではなく…。
> 500FXのGTK小技メモです。
>
> 1.タッチパネルアプリなのでマウスカーソルいらない!消したい!
重要ですよね!
Gtk+ 2.16 からは GDK_BLANK_CURSORが定義されているので
gdk_cursor_new(GDK_BLANK_CURSOR);
で作成できるのですが Debian Lenny に入っている 2.12 では
使えないんですよね。
> マウスカーソル(マウスポインタ)を透明にします。
>
> gchar bits[32] = { 0};
> GdkBitmap *bitmap;
> GdkColor color = {0, 0, 0, 0};
> GdkCursor *cursor;
>
> ※gtk_widget_show_all(window)の後あたり
# window == top level window ですよね?
window->window が生成されないと gdk_window_*() が呼べないので
この点重要です。
> bitmap = gdk_bitmap_create_from_data( NULL, bits, 16, 16);
> cursor = gdk_cursor_new_from_pixmap( bitmap, bitmap, &color, &color, 8, 8);
> gdk_window_set_cursor( fixed->window, cursor);
>
> ※gdk_window_set_cursorで、gdk_window_set_cursor( window, cursor) とすると
> 実行時エラーになったので、windowの上に全面配置しているfixed->windowを指定
> しています。
gdk_window_set_cursor(window->window, cursor); とできませんか?
2.16になるまでは
static GdkCursor *create_blank_cursor(GdkWindow *w)
{
const gchar bits[] = { 0x0 };
GdkColor c = {0, 0, 0, 0};
GdkPixmap *p;
GdkCursor *ret;
p = gdk_bitmap_create_from_data(w, bits, 1, 1);
ret = gdk_cursor_new_from_pixmap(p, p, &c, &c, 0, 0);
g_object_unref(p);
return ret;
}
としておくと、便利かもしれません。
# gdk_cursor_new_from_pixmap() も Gtk+ 3.0では使えないので
# cairo への移行が必要です。
# http://library.gnome.org/devel/gtk/unstable/ch25s02.html#id1132461
--
yashi
armadillo メーリングリストの案内