GTK プログラミング! ..
[2ch|▼Menu]
116:login:Penguin
02/12/06 22:34 5wmq/hiL
>>115
確かに、confgure.in(ac)のマクロとシェルスクリプトの混在状態は
変態的だね。Makefile.amはまだマトモだけどさ。
自分でhoge.m4を作っておいてconfigure.inはほとんどマクロだけに
するとかしたほうがいいのかな?何とかすっきりさせたいんだけどね。

UNIX板のすれは死んでいる状態だけど、やっぱりすれ違いかな?


117:login:Penguin
02/12/06 23:06 m6HOswTF
>116

bin_PROGRAMS=hoge

hoge_SOURCES= main.c

みたいなMakefile.amの書き方も俺は気持ち悪いと思うんだけど、そこらへん
はどう思う?
なんで区切が_なんだよ。未だになじめない。

そろそろスレ違いっぽくなってきてるような気がするので最後にGTK情報を。
GTK+ 2.1.3がリリースされてる。

118:冗談だよ
02/12/06 23:20 5wmq/hiL
>>117
> なんで区切が_なんだよ。未だになじめない。
GTK+の関数やマクロは、ほとんど _ がデリミタになっているから気にしない。


119:login:Penguin
02/12/06 23:30 m6HOswTF
>>118

GTK+の関数とかは、向こうが用意してくれてるじゃん。自分が定義したhogeが
hoge_SOURCESみたいな感じで_でつながってる!って感じがなんか気持ちわるい
んだ。
そう、俺の中では_は完全に区切ってる感じじゃなくて、区切りつつもつなが
ってる感じなんよ。ここらへんの感覚は、やっぱり人によって違うんだろうなぁ。

120:login:Penguin
02/12/06 23:39 5wmq/hiL
名前のところを見て欲しいが、、、>>119
確かに SOURCES プライマリは気に入らないですね。
それ以外はインストールされるディレクトリ名と割り切ってしまえば、
そんなでもないですけど。
# 他にも例外あったっけ?



121:login:Penguin
02/12/07 00:17 yjJ1LM9Y
>>120

とりあえず、hoge_LDADDってのがあるね。hoge_LDADD = @GTK_LIBS@みたい
な感じで使う。

まぁ、定型的に使う分には、割切ってしまえばそんなに気にはならないと
いえば、そうなんですけどね。

122:120
02/12/07 10:07 Of8FLFRv
ということでまとめ、am-1.7環境でMakefile.amで変態的なプライマリは、
SOURCES AR LIBADD LDADD LDFLAGS LINK CCASFLAGS CFLAGS CPPFLAGS
CXXFLAGS FFLAGS GCJFLAGS LFAGS OBJCFLAGS RFLAGS YFLAGS DEPENDENCIES
SHORTNAME
に決定されました。結構いっぱいありますね。


123:login:Penguin
02/12/07 20:20 yjJ1LM9Y
120さん乙ー

124:login:Penguin
02/12/10 17:16 m9e/PYr1
良スレage

125:login:Penguin
02/12/23 19:31 1cqFxvzz
GTK+2.2 リリースage。

ところで、みなさんはGTK+1.2とGTK+2.x、どっちを使ってますか?またその理由は?

ちなみに俺はGTK+2.xの方を使ってます。1.2より速いし、immoduleとか
アンチエイリアスとか、いろいろ新機能があるから。

126:名無しさん@Emacs
02/12/23 19:54 Mt+k38km
僕もGTK+2.xですね。
とりあえず新しいの使っておこうって感じです。

127:名無しさん@カラアゲうまうま
02/12/23 20:11 HupxKL2U
いまだ1.2.xのまま。
自分でつくったやつが動くのかどうか検証するのがめんどい。

# そんなことじゃだめなんだけどなー。

128:(^v^)-666
02/12/26 12:41 5tM+3DZe
オレも1.2.xのまま。
特に、理由はないです。Gtk+2.xに変えてもいいけど…。

イマ、ちょっと忙しいんで、年明けにでも…。

129:login:Penguin
03/01/03 20:55 WNlDvEUU
保守

130:IP記録実験
03/01/08 22:04 1aQvEFST
IP記録実験
スレリンク(accuse板)

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。

131:login:Penguin
03/01/09 01:27 5dI2J0HT
>>375
偽者だから

132:login:Penguin
03/01/09 01:41 5dI2J0HT
さて、そろそろ読むべきレスがなくなって
記念カキコで1000目指す頃合ですか。

133:IP記録実験
03/01/09 02:05 NCBslnNH
IP記録実験
スレリンク(accuse板)

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。

134:login:Penguin
03/01/09 02:11 X6ogbEfM
>>584
ポイズン

135:login:Penguin
03/01/09 02:45 oeq9HIxH
>>50
タイプミス
スマソ

136:login:Penguin
03/01/09 03:29 z58+fY32
90 名前:心得をよく読みましょう 本日のレス 投稿日:03/01/08 17:30 Xc+fqEec
>1
>どうやら管理人

>qbサーバ
ってなんですか?


97 名前:●ITAN.IBM ◆GQITAN.IBM 本日のレス 投稿日:03/01/08 17:31 A4oVmFaH
>>90
批判要望、削除議論、削除整理、削除要請


98 名前:心得をよく読みましょう 本日のレス 投稿日:03/01/08 17:31 TzeruebF
>>90
qb.2ch.netで始まるアドレスの鯖。


とありましたな。スマソ
他の鯖はIPとってないの?

137:山崎渉
03/01/15 11:29 wo7m90to
(^^)

138:質問君
03/01/17 21:51 Gw5Q2kTa
お力をお貸し下さい!
gtk_timeout_addで画面の再描画を設定しています.
しかし,別の関数内でwhile(1)の無限ループを使うと,画面の再描画ができません.
どうしても無限ループが必要なのですが,どのようにすればよいのでしょう?
お力をお貸し下さい!

139:山崎歩
03/01/17 22:20 tQv9kuDJ
>>138 おまえが永遠にソースを書き続ければよろしい。

140:login:Penguin
03/01/17 22:49 wyXs27gT
>>138
スレッド使えば?

141:login:Penguin
03/01/19 05:15 LdWFg6+q
>>138
あなたの望むそのものズバリの解答ではないかもしれないけど、

while( g_main_iteration(FALSE) )
/* do nothing */;

で強制的にメインループを回せます。
よって再描画が必要なときはただちに行われます。
参考までに。

142:login:Penguin
03/01/22 11:49 VGBhRJXh
Gtkmmの参考書って出てないんですか?

143:login:Penguin
03/01/22 23:47 2URUk/vJ
Gtkmmを使いたいなら、まずただのGtkをやること。
オブジェクト指向の知識があれば、すぐ移行できる。

144:login:Penguin
03/01/22 23:49 2URUk/vJ
Gtk2で開発している人はあまりいないのかな?
自分が思うに、Gtkは1.2.xでも相当洗練されていて、十分な機能を備えているんじゃないだろうか。


145:login:Penguin
03/01/23 02:34 DVnX67iq
>>144
Pango だけでも十分 1.2.x から 2.x に移行する動機付けには十分過ぎると思うんだけどなぁ。
2.1 からは Xft2/fontconfig 対応で OpenType フォントも使えるようになったし。

あと、個人的に Gtk+ 1.2の GtkPaned Widget は大キライ。仕切りの下にあんなつまみつけた
センスが分からん。


146:login:Penguin
03/03/06 12:49 ucaHnoqM
scheme で gtk やりたいぞ age.
和製糞ソフト作るようなヤツでもわかる日本語ドキュメント見せろ,または書け.
guile-gtk 希望.

え?w3m cgi? GUI じゃないだろ?便利だけど.

147:login:Penguin
03/03/06 13:53 fSTp04vi
>>146
(・∀・)つ gauche-gtk ツカエ!
URLリンク(www.shiro.dreamhost.com)
URLリンク(www.shiro.dreamhost.com)


148:146
03/03/07 12:46 5F6JJ4cf
>>147
Gauche-gtk に同梱されている gtk-tutorial の hello, world! か.
でもこれだけじゃあ和製糞ソフトが量産されるとは思えないな.

gtk2 って何?
まだ 1.2 使ってるんだけど,これから gtk プログラムを作るなら 2.x の方がいいの?
多国語の扱いがマシになったとか書いてあるところがあったけど.
簡単な方を教えてクレクレ はぁと.

149:login:Penguin
03/03/07 13:19 E7ysupB/
1ユーザとしては

アンチエイリアシングで、表示が綺麗なgtk2を使って欲しい、、

150:山崎渉
03/03/13 16:51 52vAtNh8
(^^)

151:login:Penguin
03/03/18 10:45 FeF5+SYV
gtk ver 1.2を使っているが、どうすればwidgetの中味を強制的に再描画させら
れる?計算結果をすぐに反映したい時など、ウィンドウ操作によって
expose_eventが発生するのを待たずに再描画したいケースが有るはず。例えば
ボタンをクリックした時にGtkDrawingAreaオブジェクトを再描画させるとすると

GtkDrawingArea* area;

int main(int argc, char** argv)
{
(中略)

// GtkDrawingAreaオブジェクトを作成

area = gtk_drawing_area_new():

// expose_eventのコールバック関数を指定

gtk_signal_connect(GTK_OBJECT(drawingarea1), "expose_event",
GTK_SIGNAL_FUNC(on_drawingarea1_expose_event), NULL);

// GtkButtonオブジェクトを作成

GtkButton* button = gtk_button_new_with_label("Draw now");

// clickedイベントのコールバック関数を指定

gtk_signal_connect(GTK_WIDGET(button), "clicked", GTK_SIGNAL_FUNC(click_event_handler));

(略)

}
(続く)

152:login:Penguin
03/03/18 10:45 FeF5+SYV
(続き)
// drawing areaの中味を描画する

gboolean expose_event_handler(GtkWidget* widget, GdkEventExpose* event, gpointer arg)
{
GdkWindow* window;
GdkGC* gc = gdk_gc_new(window = event->window); // グラフィックコンテクストを取得する

// 描画コード

gdk_gc_unref(gc);
return FALSE;
}

// ボタンがクリックされた時の処理

void click_event_handler(GtkWidget* widget, gpointer arg)
{
gboolean return_val;

// areaの再描画を要求

困ったのはここから。click_event_handlerの中でareaに対してexpose_eventを発行すれば再描画されると踏んだが、関数
gtk_signal_emit_by_name()の呼び出しで第3引数以下にどんなパラメー
タを渡せば良いのやら(続く)。


153:login:Penguin
03/03/18 10:48 FeF5+SYV
(続き)
以下は今までに洩れが試したこと
1.expose_event_handlerにargだけを渡す

gtk_signal_emit_by_name(
GTK_OBJECT(area), // areaに対して
"expose_event", // expose_eventを発行する
NULL, // expose_event_handlerの第3引数argに渡す値
&return_val); // expose_event_handlerの戻り値を格納する変数へのポインタ

コールバック関数expose_event_handlerは第2引数にGdkEventExpose*を
取るが、ここでexpose_eventを発行すると指定している以上、
GdkEventExpose*は自動的に渡されると予想して第2引数eventに渡す値は
指定しなかった。結果はこのコードを実行するとsegmentation faultが
発生して失敗。

2.GdkEventExposeオブジェクトを生成する

GdkEvent* event = gdk_event_new(GDK_EXPOSE); // GdkEventExposeオブジェクトを生成する
gtk_signal_emit_by_name(
GTK_OBJECT(area), // areaに対して
"expose_event", // expose_eventを発行する
event, // expose_event_handlerの第2引数eventに渡す値
NULL, // expose_event_handlerの第3引数argに渡す値
&return_val); // expose_event_handlerの戻り値を格納する変数へのポインタ
gdk_event_free(event); // eventに割り当てられていたリソースを解放する

結果はgdk_event_newがundefined referenceとなってコンパイル不能。

誰か手がかりをキボンヌ。

154:login:Penguin
03/03/18 12:23 LjoIsUnh
>153
ウィジェットを再表示するだけなら単に gtk_widget_draw() 使えば
いいんじゃないのかな。

155:151-153
03/03/18 12:53 FeF5+SYV
>>154
サンクス。ついでにgtk_widget_で始まる関数の一覧表調べたら今ではgtk_widget_queue_drawを使うことを推奨しているみたいだね。おまけに、描画
領域を背景色で塗り潰す方法も発見。結局上記のコードはこうなった。

// drawing areaの中味を描画する

gboolean expose_event_handler(GtkWidget* widget, GdkEventExpose* event, gpointer arg)
{
GdkWindow* window;
GdkGC* gc = gdk_gc_new(window = event->window); // グラフィックコンテクストを取得する

gdk_window_clear(window); // 背景色で塗り潰す

// 描画コード

gdk_gc_unref(gc);
return FALSE;
}

// ボタンがクリックされた時の処理

void click_event_handler(GtkWidget* widget, gpointer arg)
{
gtk_widget_queue_draw(GTK_WIDGET(area));
}


156:login:Penguin
03/03/22 23:09 XBKip/9C
GTKアプリを、Xの起動時に立ち上げると、
日本語が一部消えるんだけど・・・。
なぜ?


157:相互リンク
03/04/14 14:01 nee9/l5h
GTK+/Glade/gtkmm
スレリンク(tech板)l50

158:login:Penguin
03/04/14 20:31 Rvr2v4eQ
>>156
化けるんじゃなくて?
化けるのはAAを掛けてるライブラリのせいなのでAAを切るとよいかも。

159:156
03/04/14 22:58 Y/KrP1DD
>158
化けてはいません。
なんか、X起動直後に、初めて描画したときだけWidget単位で消えます。(ちゃんと出るのもある)
でも、『あああaaaあああ』みたいのだと『   aaa   』ってアルファベットだけ出る。
 しかも、最小化とかすると、元に戻したときちゃんと出る。
 上の別のウィンドウを重ねたりしても。

 今は仕方ないから、プログラム中でxrefreshを呼び出して、むりやり再描画してるけど。
 タイムアウトでの割り込みをかけたりしてるから、美しくないんだよな。


160:login:Penguin
03/04/16 18:42 p/eHtb4s
Gtk2(というかGdk/Pango)で、文字を任意の深さのPixmapに
(実際表示されているウィンドゥの深さ,Visualとは切り離して)
描画できる方法はないですか?

いったん描画したあとでgdk_drawable_get_imageで取り込み
プログラム内部で利用しようと考えています。

内部で使用するため、ハードにかかわらず一定の深さの
データがいいわけで、表示しているWindowとは無関係のPixmapに
描画できる方法をさがしています。

ただ単にPixmapを作成してgdk_draw_layout_with_colorsで
描画すると、カラーマップの設定が必要と怒られます。
カラーマップを設定しようとしたのですが、そのためには
Visual構造体を設定することが必要です。
自分で勝手に値を設定してそれをgdk_colormap_newに渡すと
落ちてしまうようですし...なんか方法はあるのでしょうか

161:160
03/04/16 18:48 p/eHtb4s
pixmap=gdk_pixmap_new(drawable,xsize,ysize);
visual.type=GDK_VISUAL_STATIC_GRAY;
visual.depth=1;
visual.colormap_size=1;
visual.bits_per_rgb=1;
visual.red_mask=1;
visual.red_shift=1;
visual.red_prec=1;
visual.green_mask=2;
visual.green_shift=2;
visual.green_prec=1;
visual.blue_mask=4;
visual.blue_shift=3;
visual.blue_prec=1;
colmap2=gdk_colormap_new(&visual,TRUE); ←ここで落ちる
gdk_drawable_set_colormap(pixmap,colmap2);

pangocontext=gtk_widget_get_pango_context(widget);
pangolayout=pango_layout_new(pangocontext);
pangofontdesc=pango_font_description_new();
pango_font_description_set_family(pangofontdesc,"monospace");
pango_layout_set_font_description(pangolayout,pangofontdesc);
pango_layout_set_text(pangolayout,"TEST",4);

gdk_draw_layout_with_colors(pixmap,gc,0,0,pangolayout,gdkcol,NULL);
getimg=gdk_drawable_get_image(pixmap,0,0,xsize,ysize);

/* getimg->mem の内容をプログラムで使用する */

162:160
03/04/16 18:53 p/eHtb4s
大切なとこ間違えてたスマソ
× pixmap=gdk_pixmap_new(drawable,xsize,ysize);
○ pixmap=gdk_pixmap_new(drawable,xsize,ysize,8); /*深さ固定*/

163:login:Penguin
03/04/16 20:10 lo8mJ2VY
gtk2ってUTF8で渡さないと文字書いてくれないですよね。
で教えて欲しいのですが、EUC-JPからUTF8に変換するには
普通 iconv を使うものなのですか? それとも mbstowcs とかでもOK?

とりあえず今は iconv 使って表示できてるけどムダなのかな。


164:login:Penguin
03/04/16 20:27 f73hW52k
mbstowcs は wchar_t が UTF-8 であることを仮定しちゃうことになるので
使っちゃだめ。
iconv() の wrapper である g_iconv 系の関数か、g_locale_to_utf8() を使う。
前者は変換元の文字コードを明示的に指定したい場合。
後者は「locale の文字コード」から変換したい時。gconvert.h を参照のこと。



165:160
03/04/17 01:22 LaltSFnA
PangoとXftを組み合わせればなんとかなりそうという気がしたが
...どうやって使うのだろうか

XCreatePixmapでPixmap作成(Xは使いたくなかったが...)
XftDrawCreateAlphaでXftDraw作成
XftDrawColormapでカラーマップ作成
pango_xft_get_font_mapでPangoFontMap作成
pango_font_description_newでPangoFontDescription作成、必要な値をセット
pango_font_map_load_fontでフォント読み込み
script_engine_listでpangoエンジンIDを取得←このあたりよくわからん
script_engine_loadでロード
PangoEngineShape(←これはどうやって取得するのか...)で
文字列からPangoGlyphStringに変換
pango_xft_renderで文字列描画
XGetSubImageでイメージ取得、でいいのかな?

166:山崎渉
03/04/17 11:49 KRn99/cy
(^^)

167:login:Penguin
03/04/19 23:58 OPO/Nk6v
保全age

168:山崎渉
03/04/20 05:47 X64WTq1+
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

169:login:Penguin
03/04/22 18:53 f6Aef7e/
>>164
> mbstowcs は wchar_t が UTF-8 であることを仮定しちゃうことになるので
> 使っちゃだめ。

どんなlibcをつかってんだ(w
UTF-8っつーのは最大6byteのマルチバイトなcharacter encoding schemeだそ。
union wchar_t{
uint64_t wc;
char utf8[8]; /* 先頭2byteおまけ */
} wchar_t;
みたいな実装にはお目にかかったことが無いけど?
# wchar_tがUCS2だったりUCS4だったりする実装は山ほど在るが。

>>163に答えるなら、内部エンコードを仮定云々は関係なしに
「mb/wcはコード変換機能ではない」だろうよ。


170:160
03/04/22 23:43 N17I9atm
(pangoを使って配列に文字描画結果を格納する)
gdk-pixbufを使って解決しますた
ウィンドゥと同じ深さのpixmapを用意して
そこに文字を描画して
gdk-pixbufにとりこむ
gdk-pixbufはハードにかかわらずRGB24bitで操作できる

pixmap=gdk_pixmap_new(window,xsize,ysize,-1);
pixbuf=gdk_pixbuf_new(GDK_COLORSPACE_RGB,TRUE,8,xsize,ysize);

pangocontext=gtk_widget_get_pango_context(widget);
pangolayout=pango_layout_new(pangocontext);
pangofontdesc=pango_font_description_new();
pango_font_description_set_family(pangofontdesc,"monospace");
pango_layout_set_font_description(pangolayout,pangofontdesc);
pango_layout_set_text(pangolayout,"TEST",4);

gdk_draw_layout_with_colors(pixmap,gc,0,0,pangolayout,gdkcol,NULL);
gdk_pixbuf_get_from_drawable(pixbuf,pixmap,NULL,0,0,xsize,ysize);

171:160
03/04/22 23:49 N17I9atm
↑これで配列に取り込まれるので
gchar *pos;
pos=gdk_pixbuf_get_pixels(pixbuf)+x*4+y*gdk_pixbuf_get_rowstride(pixbuf);
で、R:pos[0], G:pos[1], B:pos[2], A:pos[3]で(x,y)の値が取得可能。

XmbDrawStringとXGetSubImageでもできないことはないが、pangoに
こだわったのは、(プログラム操作する側をふくめて)フォントの
扱いが簡単になり、統一がとれるため。

ただ、アンチエイリアスフォントはこの方法できれいにとれるが
2値(ビットマップ)にしたいばあいがきれいにとれない....

172:164
03/04/26 03:02 d+JpEtZU
>>169
あ、UCS4 だ。UTF-8 じゃねぇや..ボケてた。
>「mb/wcはコード変換機能ではない」だろうよ。
が言いたかったことです。wchar_t の実装がどうなってるかを
仮定するな、ってことで。

173:login:Penguin
03/04/29 04:55 TV50G8uM
Gtk でスプラインとかベジェとか、曲線を描きたいのですが、サンプルとか無い
でしょうか。Gtk 単体では難しそうなので、他のライブラリも必要かなと思うの
ですが。作りたいのは Flash みたいな Vector Animation です。

174:login:Penguin
03/04/29 15:26 37fqnSLQ
DPS (Display PostScript)を使用するのがいいんじゃない?
使ったことないけど(^^;
URLリンク(www.xfree86.org)

175:login:Penguin
03/04/29 18:48 LuljFrkZ
>>173
URLリンク(www.gyve.org)
はもうダメぽなので
URLリンク(sodipodi.sourceforge.net)
とか参考にどうよ、かなり萎えるTopだが。

176:login:Penguin
03/04/29 21:12 dHsFcWW5
>>175
スクリーンショットがひどぃ...

177:login:Penguin
03/04/29 22:05 ER/8FD9H
>>175
gyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

178:login:Penguin
03/04/29 22:35 /4ZC/4OS
>175
ワラタ、腹筋硬直するぐらい

179:login:Penguin
03/04/29 22:36 AjRnLWEG
参った・・・

180:login:Penguin
03/04/29 22:39 clC6rFXj
精神的ブラクラ
URLリンク(sodipodi.sourceforge.net)

181:login:Penguin
03/04/29 22:40 OyAr9ioi
>174-175
ありがとうございます。
guppi や gtkextra も見てみましたが、GtkGLExt で OpenGL を使ってみようかな
と考えています。

182:login:Penguin
03/04/29 22:49 /4ZC/4OS
>180
svgでここまで書かれると凄いものがあるな

183:login:Penguin
03/04/30 05:22 +Nekyn/i
>>173
使ったことはないのだが、GNOMEならlibartを使うのが王道っぽい。

184:login:Penguin
03/04/30 13:31 Cq88QVNL
gyk+インスコ難い

185:login:Penguin
03/04/30 22:31 frxRUIpZ
>183
これかなり良いですね。ちょっと試してみます。ありがとうございました。

186:login:Penguin
03/05/01 03:56 BcJCA4M8
ほー、levien さんって GhostScript のメンテナーさんなんだ。なるへそ。
libart って gnome 無くても使えるみたいだね。fresco にも使われてる。

187:login:Penguin
03/05/01 04:22 v9irLuOR
>>164

wchar_tをUnicodeと見なすのは悪だというのは、ダメハッカーの寝言。
このアプリではwchar_tはUnicodeに限定すると、宣言すればいいだけのこと。
どうせ、g_locale_to_utf8()も内部ではmbstowcs()呼んでるよ。
まあ、その場合でもglibの関数を使うべきだが、それはUTF-8仮定とか
が理由ではない。

>>173
ベジエなんて自分で書けるだろ。ほれ。
double x = (1-t)*(1-t)*p0.x + 2*t*(1-t)*p1.x + t*t*p2.x;
double y = (1-t)*(1-t)*p0.y + 2*t*(1-t)*p1.y + t*t*p2.y;
0<=t<=1な。

>>183の言うとおり、libartでもベジエをドローできる。
libartだとアンチエイリアスの機能もあるのでありがたくはある。




188:login:Penguin
03/05/01 16:22 N64qTJQU
>>187 ソース読めない香具師ハケーン
glibは文字コード変換はiconvでやってますが何か?

g_convert_to_utf8 -> g_convert -> g_covert_with_iconv -> g_iconv -> iconv

MS-Win32のバヤイMultiByteToWideCharを使ってるがこいつは非POSIX関数だしな。
変換結果がUCS2(プッ16bitかよ)だと保証がある。
一旦MBCSからUCS2に変換して自前でUCS2->utf8変換書いた方が楽かもしれん。
あんまり褒められたコードとは思えんがな。

ちなみにSUSv4ではwchar_t is opaque objectと書いてありますが何か?

__UNICODE__とか__MBCS__とか__、C99の__STDC_ISO10646__を宣言するのは勝手だが、
MS-Win32のMSBC用バイナリ for Win9x/Me とUNICODE用バイナリ for NT/2k/XP のように
互換性の無いものになる & サポートしないplatformがあることは覚悟しとけ。



189:188
03/05/01 16:27 N64qTJQU
補足、Win32の場合__UNICODE__と__MBCS__で
リンクされる関数が別になるだけまだまし。
__STDC_ISO10646__の場合は同一インタフェースになるからな。
どこでブっ壊れるか判ったもんじゃない。

まあNetBSDのsys/cdefs.h内の__RENAMEマクロのような仕組みを使うとか
ldに細工するとかで、別シンボルを呼び分ける仕組みがlibcに用意されれば
Win32並に安全にはなる。


190:山崎渉
03/05/22 02:04 p4opmoqv
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―

191:login:Penguin
03/06/01 21:11 Mv7aj8Tw
Ruby-Gtk+-2には、Ruby-GTK+-1.2のときにあったCListは無いよね?
CListと同じことを別の方法でするには、なんかいい方法ありますか?

192:動画直リン
03/06/01 21:13 +qVihZQ+
URLリンク(homepage.mac.com)

193:160
03/06/01 22:02 JkScEVpY
>>191
Gtk2ではCListのかわりに
GtkTreeViewを使うことになっている。

C言語での話になるが、GtkListStoreをつくってそのなかに
表のデータをほうりこんでやり、
別にGtkTreeViewヴィジェットを作成して
gtk_tree_view_column_new_with_attributesで表示上の列と
データ上の列を対応づけ(アトリビュートの"text"に何列目の値を
表示するかを指定する)
gtk_tree_view_set_modelで、先に用意したGtkTreeViewrと
GtkListStoreを対応づける

おそらくRuby-Gtkでも同じようにできると思われ

194:login:Penguin
03/06/02 05:57 l0w8IOx1
で、何作るの?
何つかってもそれは個人の自由だから良いが
目的があるのと無いのでは習得速度に雲泥の差がある。
最低限のライブラリの使い方を覚えたらさっさgladeでも使って
組んだ方が良いよ。
目的が無いとすぐ飽きるし飽きると忘れる、結局無駄な時間を過ごした事になる。
ある程度長い時間使ってないとモノにならない。
見た目にしろlibgtk自体いしろ結局”ガワ”でしかないのだから
ちゃんと日本語化されてるなら後は中身に心血を注ごう。

cだからめんどくさそうとか言う奴はgtk,gdk,glibのチュートリアルをだいたい
どんな事ができるかざっと眺める位にして後はgladeつかえ。


195:191
03/06/02 20:31 H7/+JInF
>>193=160
Ruby-GNOME2のソースについてたサンプルに、GtkTreeViewもありました。
どうやら、説明してくれた通りのようです。
ありがとうございました

>>194
MPlayerのフロントエンドを作ろうかと...
飽きないように、まったり作ろうと思ってます。

glade使ってますよ。便利ですね、あれは。
頭の中でゴチャゴチャ考えるのがいかに非効率的かわかります(^^;

196:login:Penguin
03/06/05 00:27 NeWdmQAa
>>195
mplayerのフロントエンドなら2つ3つあるみたいだけどそれとどういう差別化をす
んの?
俺としてはフロントエンドによる速度低下を使い勝手が上回るような奴を希望。

197:login:Penguin
03/06/08 11:46 h1K8ATYr
GTKで何か作りたいけどWinみたいにGUI主体じゃないから
作りたいものがない・・・
こういうツールが欲しいとかなんかないですか?

198:login:Penguin
03/06/08 12:18 NVYlBdnZ
>>197
家計簿ほすぃ

199:197
03/06/08 17:11 h1K8ATYr
家計簿ですか、、Linuxで家計簿付ける人っているのだろうか。(^^;
需要があるかどうかわかりませんが勉強かねてそれらしいの作ってみます。

200:login:Penguin
03/06/08 18:19 TUPg9XW4
>>199
>>198じゃないけどモノによっては期待する。
今OOo使って家計簿つけてるんだけど、なんかイマイチ。
機能を絞り込んだ「一人暮らしの男のための家計簿」みたいな感じだと俺は使うと思う。

201:197
03/06/08 21:38 NVYlBdnZ
>>199
>>200の「一人暮らしの男のための家計簿」ようなやつがほしい。

#さらに完成度が高まると、主婦層を狙ったキラーアプリにもなる!

202:login:Penguin
03/06/13 15:25 bpko5Clf
aunjuta って内蔵エディタ以外のエディタ指定できますか?
なんか、そういう設定項目が見つかりません。


203:197
03/06/14 07:43 aLrsfyXo
>>200
OOoみて公開するの躊躇ったんですが、せっかく作ったので公開します。(^^;
# めちゃくちゃシンプルな家計簿ですが…。
URLリンク(gtk2ch.hp.infoseek.co.jp)

UNIXプログラムは今回が初めて&一週間そこらで作ったのでヘタレなのはご勘弁ください。。
# あぁなんか叩かれそうだ…。


204:login:Penguin
03/06/16 23:41 qOFJTntY
見れん >>203

205:login:Penguin
03/06/17 00:48 rQFVPuSz
ぢつは>>203がアクセスできるうちに手にいれたのだが
src/menu.cpp:40: invalid conversion from `void*' to `gchar*'
src/menu.cpp:40: invalid conversion from `void*' to `void (*)()'
っていうのが9回くらい出た後に

src/menu.cpp: function 内の `void print_hello(void*, unsigned int,
GtkWidget*)':
src/menu.cpp:63: invalid conversion from `void*' to `GdkEvent*'
となってコンパイルできない。

gcc-3.2.2-5
gtk2-2.2.1-4
glib2-2.2.1-1

直してからカキコしようかとも思ったが、
あまりカキコせずにいるのもなんかなーと思ったので一応。

206:login:Penguin
03/06/30 20:36 yw9J/DOE
197どこ逝った

207:login:Penguin
03/07/01 00:52 NjIY7kth
    age       テモ      イイ?
  ∧_∧     ∧_∧   ∧_∧ 
 ( ・∀・ ∩   ( ・∀・)  (  ・∀)
⊂    ノ  ⊂ ⊂  )  (  (_`つ
 ,(__つ    < < <   > 〉\ \
  し'      (_(_)  (__) (__)

208:login:Penguin
03/07/10 02:20 h0xkhYEg
どなたか助けて下さい。

gtkhtmlの、src/gtkhtml.cの2670行目くらいにある

gtk_html_im_preedit_changed_cb (GtkIMContext *context, GtkHTML *html){
g_warning ("preedit changed callback: implement me");
}
をちゃんと実装したいのです。(このメソッドは現在CVSから取ってきた
物でも実装されてません)
目的は、evolutionで日本語メールを書く時に、XIM(or IIIMF)経由で入力すると
確定前の変換中の文字が見えないのを直したいのです。

URLリンク(docs.linux.cz)
ここらへん見ながらいろいろいじったのですが、CもGTKも全く分らないため、
私には手が出せそうにありません。
よろしくお願いします。

209:login:Penguin
03/07/10 11:29 cUIBJ5ZH
>>208
「いろいろいじった」のなら手は出せてるという事。
そんなに心配せず、勇気を持ってhackしれ。

俺はそっち専門じゃないので力になれないがとりあえず、
ちゃんと未確定文字が見えてる非gtkhtmlのアプリのソースを
漁るとか、im-module関係のプロダクトのソースをのぞくとか。

あるいは、gnome-devel at gnome.gr.jpあたりで「格闘してます」
ていう話を出せば、助け舟出してくれる人もいるかも。

210:login:Penguin
03/07/12 10:58 5xq0Wvrh
GTKもWideStudioも見た目がダサダサなんですが、もう少しマシなのありませんか?
ソースあるんだから自分でいじれ とかは無しでお願いします

211:login:Penguin
03/07/12 14:06 CNiFHab+
具体的にどの部分か書かないと意味分かんねーぞゴルァ。
けどツールキットとして見た目がダサい、ってことなら
GTKのテーマ使えば変え放題だと思うんだけど。

212:login:Penguin
03/07/12 14:52 4FR+yimT
言いたいのは>>75-78と同様のことでした
Windows標準色に慣れきってるので随分違和感があるんだよなぁ・・・テーマ書くのめんどくさいし

213:login:Penguin
03/07/12 15:07 2HSyDTV2
>>212
すごいな。
自分が慣れてないものは「ダサい」とみなしてしまうのか。

これでも入れとけ。
URLリンク(themes.freshmeat.net)

214:211
03/07/12 15:08 CNiFHab+
>>212
そんなあなたにGTK-Wimp。
URLリンク(gtk-wimp.sourceforge.net)
それ以外でも、Win9x風味のならデフォルトで入ってるよね。

気に入らなきゃ
URLリンク(themes.freshmeat.net)
にでも行ってらっしゃい。

ってすげースレ違いの予感。

215:login:Penguin
03/07/12 15:09 CNiFHab+
>>213
>>214
擦れ違い…

216:login:Penguin
03/07/12 15:12 3e213sQq
俺はダイアログでESC押した時とかEnter押した時なんかの挙動のほうが気になるんだけど。
変更可能?ESCで閉じたりとか

217:login:Penguin
03/07/12 15:23 CNiFHab+
少なくともGDKレベルでやれば何とかなる気もすます。
ていうかバグ臭いかなそれ。

218:login:Penguin
03/07/14 02:43 5XjH4O4S
age

219:山崎 渉
03/07/15 11:17 doz396Fq

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

220:login:Penguin
03/07/15 12:05 Fo16Kpwc
(・∀・)renice!

221:login:Penguin
03/07/17 20:37 qoyTZeYl
で、GtkGLExt使ってるヤシっている?

222:login:Penguin
03/07/18 00:28 NwO1ORPE
GTKって、タブ移動の概念ってある?
なんかこういうダイアログって、
URLリンク(gtk-wimp.sourceforge.net)
タブコントロール(タブ移動とは別の)に移動できないんだけど。

223:login:Penguin
03/07/19 02:39 E7P2kjzI
/* 初めて書いたGTK2アプリを記念カキコ */

#include<gtk/gtk.h>

int main (int argc, char** argv)
{
GtkWidget *window;
GtkWidget *calendar;

gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);

calendar = gtk_calendar_new();
gtk_container_add(GTK_CONTAINER(window), calendar);

gtk_widget_show_all(window);
gtk_main();
return 0;
}

224:login:Penguin
03/07/19 14:08 zaPj7Dgy
>>223
ひねりなしかよ。

225:login:Penguin
03/07/23 11:46 ZPPlsMW8
(・∀・)renice!

226:login:Penguin
03/07/24 06:52 fVjg/qZ7
>>223はその後
gtk_window_set_title(GTK_WINDOW(window), "gcal");
を加えたに12signal

227:login:Penguin
03/07/27 11:44 Aq2rr+SO
(・∀・)renice!

228:login:Penguin
03/07/30 12:13 cPdgkLk2
(・∀・)renice!

229:ぼるじょあ ◆yBEncckFOU
03/08/02 05:03 +QUfMouI
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎―――◎                      山崎渉&ぼるじょあ

230:login:Penguin
03/08/02 10:26 2rmp9gin
(・∀・)renice!

231:login:Penguin
03/08/08 11:54 mg5o8ebS
(・∀・)renice!

232:login:Penguin
03/08/08 13:14 9dXoYmRI
(・∀・)

233:login:Penguin
03/08/13 12:31 pfCYHBFY
(・∀・)renice!

234:山崎 渉
03/08/15 22:50 dil3w4kp
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

235:login:Penguin
03/08/15 23:48 GfNK1qbf
(・∀・)renice!

236:login:Penguin
03/08/16 18:54 1hd43OWj
もしかして、gtk1.2 で Button4,5(ホイール)の
GDK_BUTTON_PRESSイベントって配送されない?

237:login:Penguin
03/08/17 07:22 MkQ6Z6x8
質問。
ItemFactory のアクセラレーターキーの指定で、
ファンクションキーの場合はどう表記すればいいですか?

238:login:Penguin
03/08/19 09:54 ocMYGtK+
IDがGtK+なので祈念化旗鼓

239:login:Penguin
03/08/25 09:48 +hXUD3jL
(・∀・)renice!

240:login:Penguin
03/08/28 18:06 r/AujdJz
gtk+2ってかなり重くない?
gtk+1は再描画一瞬で終わるのにgtk+2は描画してるの見えるし。
何が悪いんだろ。utf8? xft?


241:login:Penguin
03/08/28 18:29 HlBh46Kn
メニューバーをクリックするとメニューが出てくる(ファイルとか編集とか)
同じ場所をもう一度クリックするとメニューが引っ込む・・・

はずなんだけど
Linuxのアプリって出したメニューが引っ込まないような気がする
引っ込むようにはできないの?

242:login:Penguin
03/08/28 18:34 5x7m3sUW
gtk2を使ってちょ。

243:login:Penguin
03/08/29 16:34 9qGUa9Nr
初心者です。どうしても気になるけれど
どこにも解説がない事があります。

なぜ
GtkButton *button = gtk_button_new();
じゃなくて
GtkWidget *button = gtk_button_new();
なのですか?

244:login:Penguin
03/08/29 18:52 F8jx8uO3
gtk_button_new()が GtkWidget* を返すからだろ。

245:243
03/08/29 23:13 9qGUa9Nr
つまりは、なぜに
GtkButton *gtk_button_new(void);
でないか、ということをお聞きしたいのです。

246:login:Penguin
03/08/30 00:40 npfy9qpx
鷲のしょーもない理解でよければ...

GtkButtonヴィジェットは、ボタンとしての側面以外にも
「ラベルとかをはりつけて表示する(Container)」とか
「シグナルを発生する」(まぁボタンとしての性質だが、ボタンに限らない)
とかもある。

そこで、生成するときはGtkWidgetで生成しておき、必要に応じて
キャスト(GTK_BUTTON()とか)して使う。

ボタンの性質(押されているか)を扱うときはGTK_BUTTONでキャストするし
コンテナの性質(ほかのヴィジェットを貼り付ける)を扱うときは
GTK_CONTAINERでキャストすることで
それぞれの型のヴィジェットとして扱うことができる。

247:login:Penguin
03/08/30 10:44 aGRYNy0z
>>243
なぜなら、オブジェクト指向に則っているから。

248:login:Penguin
03/08/30 11:19 ooQKA+zG
>>247
オブジェクト指向なら new くらい継承してくれってことじゃないのか?

249:243
03/09/01 01:17 uanR/ozZ
>>246
解説どうもです。
そこらへんの使い方は分かってるつもりなんですが、
「そこで」の部分の理由がよく分かないんです。
普段は、ButtonはButtonとして定義して、CONTAINERとして使いたい
ときはそうキャストすればいいのではないかと思ったので。

>>247,248
すまん、よく分からない。(Eiffel本読書中の身です)

250:login:Penguin
03/09/01 03:10 6aY0iPSh
javaやc++と違ってcでオブジェクト指向を実現しているgtk+では
アップキャストでも明示的にキャスト用マクロが必要となる。

GtkWidget* を引数にとる関数を使う頻度の方が GtkButton* を引数にとる関数を使う頻度より多いから
最初から GtkWidget* を返した方が後々のキャスト量が減ってプログラム記述の冗長さが減る

251:243
03/09/01 12:57 uanR/ozZ
>>250
なるほど、頻度の問題なんですね。
どうもありがとうございました。

252:login:Penguin
03/09/01 20:35 2b6fGses
素朴な質問です。

gtk2でオリジナルwidgetを書いています。
親widgetでハンドルされていないイベントを追加する必要に迫られました。
(例:GDK_POINTER_MOTION_MASK)
ただし、realizeイベント・ハンドラはオーバーライドしていません。
皆さんならどうしますか?

1. realizeをオーバーライドして、GdkWindowAttr構造体event_maskメンバで指定する。
2. GInstanceInitFuncハンドラ内でgtk_widget_add_events()を呼び出して追加する。
3. それ以外。

253:login:Penguin
03/09/06 17:30 E4nfQMs/
(・∀・)renice!

254:login:Penguin
03/09/20 19:40 63iWcr2P
(・∀・)renice!

255:login:Penguin
03/09/22 23:08 vXbOU9AM
VRMLオブジェクト(CG)をファイル選択widgetから選択し、
ウインドウwidgetに表示出力させたいと思っているのですが、
VRMLオブジェクトを出力出来る様なwidgetは存在するのでしょうか?
もし知っている方いらっしゃいましたら、ご助言宜しくお願いします。

256:login:Penguin
03/09/23 00:04 C61XdUyB
>>255
"VRMLオブジェクトを"直接表示できるものは知らないが、
VRMLの表示部分は自分で作成するのであるというのなら、2通りの方法が

1.線や塗りつぶしが主体の場合
widget=gtk_drawing_area_new() で表示領域を確保
barwidget[trk]->window をDrawableとしてgdk_draw_rectangleなどの
Gdk描画系関数を実行
Xのプログラミングに近く、色の扱いが面倒だし、再表示のたびに線とかを
描き直さなければならない(DrawableとしてPixmapを使えばいいが)

2.イメージを表示する場合
pixbuf=gdk_pixbuf_new(...);
widget=gtk_image_new_from_pixbuf(pixbuf);
なんかでpixbuf描画領域を確保。描画操作はpixbufに対して行う。
pixbufは1ピクセルにつきR,G,B(,A)1バイトずつのVRAMのイメージ。
色はRGB要素を指定するだけでいいが、線を引くにもどの座標に
点を打つかは計算してやらないといけない。

1,2の合わせ技として、gdk_pixbufの内容をDrawableに描く関数
(gdk_draw_rgb_image等)もあるので必要に応じて使う。

257:login:Penguin
03/09/23 17:39 CXvOrUVV
>>252
超遅レスだけど、余計なコ−ド書かない2でいいのでは。
realizeを書くケ−スは、realizeが実装されていない抽象クラス(GtkWidgetとかGtkContainer)から直に派生する時ぐらいじゃないかな。

258:257
03/09/23 17:53 CXvOrUVV
あ−実装されてないっていうのはgdk_window_newを呼んでないって意味でつ

259:login:Penguin
03/09/25 17:05 FN6PNMc8
(・∀・)renice!

260:login:Penguin
03/10/01 17:51 OtB8zaps
gtktreeview上にリストのデータを表示してる時に、複数行を選択した状態で
右クリックしてメニューを表示させたいのですがどうすればいいんでしょう?

複数行の選択まではできてますが、そこで右でも左でもクリックすると複数
行の選択がクリックした行だけの選択にかわってしまいます。


261:login:Penguin
03/10/11 23:17 5hfILiTB
初歩的な質問ですいません。
cygwinでGTKを使用したいため、 様々なホームページを参照した結果GTK2.0をインストールしました。
サンプルソースのインクルードの指定が
#include "gtk/gtk.h"
となっているのですが、今回、インストールした結果、
次のようなディレクトリ構造であった為、以下の記載に変更しました。
gtk-2.0/gtk/gtk.h
これでgcc test.cを実行したところ
gtk.hでincludeされている他のヘッダーファイルが参照できず、
たくさんエラーが出ました。
そこで、元々のサンプルのインクルードの記載に戻し、
gtkディレクトリを一つ上にコピーしたのですが、同様の結果でした。
すいませんが、解決方法をご教授下さい。
<サンプルソース>
#include <gtk/gtk.h>
int main(int argc, char* argv[]){
GtkWidget* window;
GtkWidget* label;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
label = gtk_label_new("Hello World.");
gtk_container_add(GTK_CONTAINER(window), label);
gtk_widget_show_all(window);
gtk_main();
return 0;}


262:login:Penguin
03/10/11 23:44 kUFRMD7K
cygwinのことは知らないけど、コンパイルのオプションに-Iでインクルード
ファイルのありかを教えるんじゃないの?
というか pkg-config --cflags --libs gtk+-2.0 で全部勝手にやってくれる。
ドキュメントのコンパイルのあたりよんでよ。

263:login:Penguin
03/10/13 16:46 Y2TizDoa
GTK使うなら、1.2系を使えよ!

264:login:Penguin
03/10/13 19:55 Y2TizDoa
1.2なら俺がいろいろ教えてやるぞ

265:login:Penguin
03/10/13 20:55 ebIrzkRx
1.2って削除の方向に向かってるんですか?

266:login:Penguin
03/10/13 21:24 8ZoDmGS+
>>263
理由は?

267:login:Penguin
03/10/14 23:23 6azmQS+6
初心者です。
GTKでxpmを表示することができたのですが、
xpmデータの上に、さらにxpmデータを好きな位置に
描画することってできますか?
すいません、教えて下さい。

268:login:Penguin
03/10/15 00:58 FhH2bw4j
>>267
gdk_pixbuf_new_from_file で、ファイルからGdkPixbufをそれぞれ取得
gdk_pixbuf_render_to_drawable で、GdkPixbufをGdkDrawableに重ねうち
GdkDrawable(pixmap)はgdk_pixmap_newで作成しておく...(1)
(1)で作成したpixmapをgtk_drawing_area_newで取得したwidget->windowに
exposeシグナル発生のつど転送(gdk_draw_drawable)

で、いけると思う。

GdkまわりはXの知識がないと難しいかも

269:267
03/10/18 01:50 +faUZTm8
>>268
ありがとうございます

270:login:Penguin
03/10/24 19:11 FhYActk9
age

271:login:Penguin
03/10/26 16:31 khx8YbTs
GTK1.2+のいろいろなホームページを見たのですが、
理解できないので教えて頂けないでしょうか。
xmp、テキストなどにウィジェットにフォーカスって当てることできますでしょうか?
できるようでしたらどのような方法でしたら良いか教えて下さい。


272:login:Penguin
03/10/26 17:21 XFblFRSC
gtk_container_set_focus_childとか?

273:login:Penguin
03/10/26 18:43 Cf18t0yU
>>271

イベントボックスの中にGtkLabelとか入れればできる。
FAQだから、ぐぐれ。

274:login:Penguin
03/10/28 00:46 n92YYpRn
>>272
>>273

271です。
レス頂いてすいません。
チャレンジしてみます。

275:login:Penguin
03/10/31 18:42 IOboVxUJ
gtk+ではじめるXプログラミングなる本を読みながら、Gtkに入門してみました。

今、テキストエディタらしきものを作ってみようと思っています。
テキストウィジェットの横幅を半角80文字固定にしたいのですが、方法が
わかりません。

また、半角80文字目で自動的に\nを挿入する方法も出来れば教えて下さい。

276:login:Penguin
03/10/31 19:00 XMwowiCK
>>275
glade で雛形を作って、生成されたソースコードを読む手もあるなぁ

277:login:Penguin
03/11/01 06:11 hDKdsiea
>>275
gdk で文字幅もらってそこからウィンドウサイズを決めるとか。

gtk つかうなら 2.* の方がよくないかい? text ウィジット
も textview にかわってるようだし。

278:login:Penguin
03/11/05 01:14 a2IzLU73
ge

279:login:Penguin
03/11/10 23:36 SWl6gM2L
AGE

280:login:Penguin
03/11/16 02:05 RQO5eIp4
すみません。
直接Gtkと関係ないのかもしれませんが、Gnome標準アイコン(CD-ROM)等を
表示させるにはどうすればよいのでしょうか?

Gladeの吐き出したソースを元に、以下のプログラムを作成してみましたが、ダメでした。

なお、事情によりGTK1.2でプログラミングを行っています。よろしくお願いします。

#include <gtk/gtk.h>

int main(int argc,char *argv[])
{
GtkWidget *window1;
GtkWidget *image1;

gtk_init(&argc,&argv);

window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window1), ("window1"));

image1 = gtk_image_new_from_stock ("gtk-go-up", GTK_ICON_SIZE_LARGE_TOOLBAR);
gtk_widget_show (image1);
gtk_container_add (GTK_CONTAINER (window1), image1);

gtk_main();

return 0;
}

281:login:Penguin
03/11/16 09:25 rEMWU24N
gtk_widget_show (window1);
いれれ

282:243
03/11/16 10:13 ttZTK75X
>>280
1.2には gtk_image_new_from_stock() ないと思うんですけど。

#include <gnome.h> 入れて、あとは
URLリンク(developer.gnome.org)
を見て適当にどうぞ。

283:login:Penguin
03/11/16 12:50 blYqkdPM
GTK+ FAQ 2003-11-05版 日本語訳
URLリンク(www.gnome.gr.jp)

284:280
03/11/16 13:24 RQO5eIp4
>>281-283

さんきす!

ちょっと今日は時間がないので、明日辺り再チャレンジしてみます!

285:280
03/11/17 18:26 YrxAFWBK
#include <gnome.h>

すると、ヘッダファイルが見つからないとエラーが出てしまいます。
これは、Gtkの時同様にコンパイルオプションが必要に違いない!

と思って、ググって見ました。それを参考に

$gcc -c -main.c `gtk-config --cflags` `gtk-config --libs` `gnome-config --cflags --libs gnomeui`

として、コンパイルしてみたのですが
gcc: -lgtk: リンクが完了しなかったのでリンカの入力ファイルは使われませんでした
等のエラーが出てしまいコンパイルできません。


ちょっと、Gtkからお話ずれてしまいますがどの様にコンパイルすればいいのでしょうか?
なお、gnome-config --cflags --libs gnomeuiを直接実行するところちゃんと
値が帰ってきました。



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4040日前に更新/255 KB
担当:undef