2008年4月23日水曜日

OnPaint on wxWidgets/wxPython その3 GTK編

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
その2ではwxMacを扱ったが、こんどはGTK.
macでの調査結果をそのまま応用できるので瞬殺ですな。

  • void wxWindowGTK::GtkSendPaintEvents() @ src/gtk/window.cpp

  • で、上記のコードを呼んでいるのは

    extern "C" {
    static gboolean
    gtk_window_expose_callback( GtkWidget*,
    GdkEventExpose *gdk_event,
    wxWindow *win )

    あとはGdkEventExposeが何であるかを調べればよさげ。

  • struct GdkEventExpose

    ウィンドウ全体またはその一部が表示状態 (visible) になり再描画の必要性が発生した際に生成されます。

    GdkEventType type イベントの種類 (GDK_EXPOSE)
    GdkWindow *window イベントを受け取るウィンドウ
    gint8 send_event イベントが正しく (例えば XSendEvent などを利用して) 送信された場合は TRUE
    GdkRectangle area 再描画の必要がある領域
    gint count 連続して GDK_EXPOSE イベントが発生した際の回数で、これは "exposure compression" のためだけに使用する (つまり全ての連続した GDK_EXPOSE イベントを一回で取り扱う場合に GDK がいくつかの exposure compression を実行するので、通常は必要ない)

    だとさ。
  • 0 件のコメント: