GtkAspectFrame shadow_type

最近 PyGtk ネタを書いていないことに気がつく。
てかセ CULV セレロンの検索で何人も来ているという始末。

culva

やっぱり需要の高そうなネタに終始したほうが…とか思ってしまいます。

ということで Y901x の現状。
Mandriva で Y901x を使うと GtkAspectFrame に枠が入ってしまう件はなんとか解決。

gtk.Frame

GtkAspectFrame の set_shadow_type メソッドで gtk.SHADOW_NONE にするだけ。
つまり Ubuntu で使っているテーマでは影が元々まっ黒だっただけということかな?
後はとにかく Compiz 有効にできる HDD インストールを行って試してから更新の予定。
2010.0 は 15 日だったような覚えがあるんだけど…気のせいだったか。

DistroWatch.com: Put the fun back into computing. Use Linux, BSD.

それとずっと解らないこと。
Compiz 無効の 2D 描写時はリストグリップのラインが再描写で上手く描写されない。
expose-event ってどうも Windows の WM_PAINT のように完璧にはいかないようだ。

ダブルバッファリングを無効にすると少しマシだがダメな場合もある。
そういえば Windows では DC に線を書くより画像を表示したほうが負荷が軽い。
ならば画像でやってみよう、self.grip_pix という変数に GtkPixbuf を格納し

def __on_expose_event(self, widget, event):
    # GetDC()(Windows)
    gc = widget.style.fg_gc[gtk.STATE_NORMAL]
    # Draw Vertical Line
    area = widget.window
    area.draw_pixbuf(gc,
                    self.grip_pix.scale_simple(event.area.width, event.area.height, gtk.gdk.INTERP_NEAREST),
                    0, 0, 0, 0)

もっと負荷が大きくなった…
てか pixbuf を引き伸ばして描写するにはこういう方法しか無いのだろうか?
Win32API の BitBlt みたいな転送方法があると思うんだけど今は解らない。

いっそ GtkImage で…こいつは GtkEventBox が必要になるので嫌だし引き延ばしが無理そう。
おまけにやっぱり上手くいかない、3D で使えば何も問題無いので放置のままかな。

しかしちっとも需要が無い GStreamer Player の更新を続けてどうする…
だが Windows でソレをやり続けたから Linux でもアプリが作れるようになったのだからね。