Hidetaka Iwai
tyuyu****@sings*****
2004年 3月 21日 (日) 12:52:49 JST
岩井@札幌です。 Yoichi Imai <yoich****@silve*****> wrote: Message-ID: <20040****@silve*****> > > 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で > > あるという旨の警告が出ます(当り前なのか..?(^^; (snip) > 欲しい情報はたぶんこれじゃないですかね。 > 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); > } 御教授ありがとうございます。実際これを見てできるかなぁと考えてコード書 いたのですが、こちらはwarningがでないのに自分の書いたコードはでるとい うことで、egg_menu_merge_get_widget()で得られるものが、kz-ui-*.xmlで同 じくsubmenuとして定義されていても、pathが/menu/BookmarksMenu*の場合と /popup/*の場合では違うのかと思い、上の質問になりました。 が、書いててegg-merge.cをもう一度丹念に読めば分かるような気がしてきま した。ので、ソース読むことにします... -- Hidetaka Iwai tyuyu****@sings*****