2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

作るぞ ギコ猫アプレット

1 :gchar :2001/03/27(火) 13:30.net
どうしょうもなく、くだらなくて恐縮ですが、
ギコ猫アプレットを作りたいと思います。

http://gikocat.20m.com/

まあ、感想なぞ書いて下さい。

251 :gchar:01/10/27 13:16 ID:J+Ar/dlX.net
http://sakots.pekori.jp/imgboard/imgs/img20011027130609.jpg

GtkTransLabelという透明ラベルウィジェットを作成中
完成度50%くらい。日本語もイケルっぽい。複数行もうまくイッテル。

あとは描画する相対座標を正確に計算。
色設定の外部関数。
透明%の設定外部関数。

ウィンドウの位置を動かして起こるトップレベルウィンドウのConfigureNotifyが
どうもわからない。

252 :login:Penguin:01/10/27 16:32 ID:LklSfNVx.net
おお、いいですね。

253 :gchar:01/10/27 17:21 ID:I4qNbKo+.net
>ウィンドウの位置を動かして起こるトップレベルウィンドウのConfigureNotifyが
>どうもわからない。

ずっと悩んでいたのが、ようやく一つ解決した。
トップレベルウィンドウを動かすとトップレベルのウィジェットにはConfigureNotifyイベントが発生する。
それをGtkTransLabelに伝搬させたかった。
それが今までうまくいかなかったんだけど、トップレベルウィンドウに
gtk_signal_connect(GTK_OBJECT(main_win), "configure_event", なんたら
でシグナル接続して、gtk_widget_queue_resize(GTK_WIDGET(trans_label));したら
うまくいった。

>>252さん
ありがとねー。
透明ギコ猫アプレット以外に早くできるかも。

254 :gchar:01/10/28 14:30 ID:YnKeydhL.net
http://sakots.pekori.jp/imgboard/imgs/img20011028142535.jpg

やったよー。
今までのギコ猫アプレットに組み込んでる。
AAが使えるか試してみる。
色も付いた。

早ければ今日です。 なんとか公開できるようにしたいです。

255 :名無しさん@XEmacs:01/10/28 19:01 ID:ex07yMho.net
tripodって、死ぬほどクソ

256 :gchar:01/10/28 23:22 ID:DaSxELIJ.net
眠いし腹へったしアゲ。
http://sakots.pekori.jp/imgboard/imgs/img20011028231110.jpg

できました。かなり急いだので怪しいですけど。
バグ、技術的なアドバイス宜しくお願いします。
透明の状態がセーブできていないので、修正すると思います。

GTKプログラミングはちょっと分かってきたような気がする。
次はGnomeパネルのソース読む。
今後は作るぞGnome-dockにします。
できるかどうか分かりませんけど。
rpmは明日。

>>名無しさん@XEmacsさん
tripodどう悪いのでしょうか?

相変わらずエディタは諦めておりません。\(^o^)/
http://gikocat.20m.com
http://gikocat.tripod.com

257 :255:01/10/28 23:35 ID:2L0GEZ1X.net
リンク先のファイル名や中身を勝手に変えるのです。
一部では「tripodの罠」と呼ばれてます。

258 :login:Penguin:01/10/29 20:06 ID:dEszFeli.net
Kondara 2.0で実行すると、プロパティで透明のボタンを押したところで
SIGSEGVになりました。
$ gdb -q giko_applet
(gdb) run
Starting program: /usr/bin/giko_applet
/* ここでプロパティを開いて、透明ボタンをクリック */

Gtk-WARNING **: invalid unclassed pointer in cast to `GtkWidget'

Program received signal SIGSEGV, Segmentation fault.
0x08050b14 in gtk_trans_label_expose () at eval.c:88
88 eval.c: No such file or directory.
in eval.c
(gdb) quit
な状況です。よくわからんです。
$ gnome-config --version
gnome-libs 1.2.13
$ gtk-config --version
1.2.10
$ glib-config --version
1.2.10
です。

259 :gchar:01/10/29 22:24 ID:Q7ZID6Y5.net
>>258さん、バグ報告ありがとうざいます。

gtkのバージョンの違いによるものだと思います。
gtk_container_removeが怪しいような気がします。
時間がかかると思いますがなんとかします。

ギコ猫アプレット(giko.c)内の関数
trans_button_clicked 透明ボタンが押されたら呼ばれる
add_transparent_page 透明のページを作成する。
GTKプログラミングの分かる方にできたら直していただきたいです。

自信あったんだけど、実際バグあるとヘコみますです。

260 :258:01/10/29 23:28 ID:KnIVeG2S.net
>>259さん
ヘコまないでください。

Makefile.am を CFLAGS = @GNOME_INCLUDEDIR@ -g
にしてデバッグしました。

(gdb)break trans_button_clicked
したところ、その関数では問題なく、
Gtk-WARNING **: invalid unclassed pointer in cast to `GtkWidget'

Program received signal SIGSEGV, Segmentation fault.
0x08050b14 in gtk_trans_label_expose (widget=0x80d6f60, event=0x80c03b8)
at gtktranslabel.c:446
446 gdk_draw_pixmap(widget->window, GTK_WIDGET(trans_label)->style->fg_gc[0], GTK_TRANS_LABEL(widget)->pixmap, 0,0,
のような結果となりました。

ということで、以下のようなことをしてみました。
$ gdb -q ./giko_applet
(gdb) break gtk_trans_label_expose
Breakpoint 1 at 0x8050936: file gtktranslabel.c, line 428.
(gdb) run
Starting program: /home/futoshi/tmp/giko_applet-4.9/./giko_applet

Breakpoint 1, gtk_trans_label_expose (widget=0x80d72e8, event=0xbfffeb40)
at gtktranslabel.c:428
428 gint offset = 0;
(gdb) continue
Continuing.

Breakpoint 1, gtk_trans_label_expose (widget=0x80d72e8, event=0x80c0428)
at gtktranslabel.c:428
428 gint offset = 0;
(gdb) continue
Continuing.

Gtk-WARNING **: invalid unclassed pointer in cast to `GtkWidget'

Program received signal SIGSEGV, Segmentation fault.
0x08050b14 in gtk_trans_label_expose (widget=0x80d72e8, event=0x80c0428)
at gtktranslabel.c:446
446 gdk_draw_pixmap(widget->window, GTK_WIDGET(trans_label)->style->fg_gc[0], GTK_TRANS_LABEL(widget)->pixmap, 0,0,
(gdb) continue
Continuing.

Program exited with code 01.
(gdb) q
1回目の continue で check ボタンがクリックされた状態になり、
アプレットは透明になります。2回目のgtktranslabel.c内部の
gdk_draw_pixmap(widget->window,
GTK_WIDGET(trans_label)->style->fg_gc[0],
GTK_TRANS_LABEL(widget)->pixmap, 0, 0, event->area.x, event->area.y,
event->area.width, event- >area.height);
の処理でSIGSEGVっています。
libgdkはデバッグオプションなしなので、中までは分かりません。
厨房でスマソ。

126 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★