[Kazehakase-devel 993] Re: 動的に生成されるポップアップメニュー

Back to archive index

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*****



Kazehakase-devel メーリングリストの案内
Back to archive index