示例#1
0
void
XFE_AttachmentMenu::update()
{
    Widget *kids;
    int nkids;

    XtVaGetValues (m_submenu, XmNchildren, &kids, XmNnumChildren, &nkids, 0);

    XtUnrealizeWidget(m_submenu);

    if (nkids)
    {
        kids = &(kids[m_firstslot]);
        nkids -= m_firstslot;

        XtUnmanageChildren (kids, nkids);
        fe_DestroyWidgetTree(kids, nkids);
    }

    add_attachment_menu_items(m_submenu);

    XtRealizeWidget(m_submenu);

    XtRemoveCallback(m_cascade, XmNcascadingCallback, update_cb, this);
}
示例#2
0
/* virtual */ void
XFE_BookmarkMenu::reallyUpdateRoot()
{
 	WidgetList		children;
 	Cardinal		numChildren;
 	BM_Entry *		root = getMenuFolder();

	// Ignore the root header (ie, "Joe's Bookmarks")
	if (root && BM_IsHeader(root))
	{
		root = BM_GetChildren(root);
	}

 	XfeChildrenGet(_subMenu,&children,&numChildren);	
	
	//  XtUnrealizeWidget(m_subMenu);

 	// Get rid of the previous items we created
 	if (children && numChildren)
	{
 		children += _firstSlot;

 		numChildren -= _firstSlot;

 		if (children && numChildren)
		{
 			XtUnmanageChildren(children,numChildren);
      
 			fe_DestroyWidgetTree(children,numChildren);
		}
	}

 	// Create the entries if any
 	if (root)
 	{
 		createItemTree(_subMenu,root);
 	}
}