Yoichi Imai
yoich****@silve*****
2004年 3月 21日 (日) 01:59:28 JST
今井です。 On Sun, 21 Mar 2004 00:55:26 +0900 (JST) Hidetaka Iwai <tyuyu****@sings*****> wrote: > 岩井@札幌です。libeggについて質問があります。 > > 入力メソッドやエンコーディングのポップアップメニュー、またはsf.jpに要 > 望として提出されているクリックでタブリストについて、これらは実行時に動 > 的に中身が決定されるために、kz-ui-*.xmlにその内容を列挙するわけにはい > かないと思います。これでlibeggの恩恵に預るには > > 1. kz-ui-*.xmlで<submenu></submenu>でサブメニューだけ用意 > 2. kz_actions_popup_menu_modalでegg_menu_merge_get_widgetを呼んで、予 > め定義してあるでサブメニューをゲット > 3. サブメニューがNULLじゃなかったら、そのサブメニューに対して > gtk_menu_shell_appendでアイテムを追加 > > という手順で上手く行くかと考えて、実際そのようなコードを書いてみたので > すが、一応動くもののGtkImageMenuItemからGtkMenuShellへのInvalid Castで > あるという旨の警告が出ます(当り前なのか..?(^^; > > 何か他に上手い方法はあるのでしょうか。それとも、libeggの恩恵に預るのは > 無理だったりするのでしょうか。 欲しい情報はたぶんこれじゃないですかね。 kz-window.c, kz_window_sync_ui_level(): widget = egg_menu_merge_get_widget(kz->menu_merge, path); if (GTK_IS_MENU_ITEM(widget)) widget = gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget)); if (GTK_IS_MENU_SHELL(widget)) { kz_boommark_menu_remove_menuitems(GTK_MENU_SHELL(widget), kz); kz_boommark_menu_append_menuitems(GTK_MENU_SHELL(widget), kz, kz_bookmark); } -- Yoichi Imai <yoich****@silve*****> http://y-imai.good-day.net/