int XNav::help_index( navh_eHelpFile file_type, char *file_name, int pop) { int sts; brow_tObject *object_list; int object_cnt; NavHelp *navhelp = new NavHelp( (void *)this, "$pwr_exe/xtt_help.dat", "$pwrp_exe/xtt_help.dat"); navhelp->insert_cb = xnav_help_insert_cb; if (pop) brow_pop(); brow_SetNodraw( brow->ctx); new ItemHelpHeader( brow, "help_index", "Index", NULL, flow_eDest_IntoLast); new ItemHelp( brow, "help_index", "", "", "", "", "", NULL, navh_eHelpFile_Base, 0, NULL, flow_eDest_IntoLast); sts = navhelp->help_index( file_type, file_name); brow_GetObjectList( brow->ctx, &object_list, &object_cnt); flow_qsort( &object_list[2], object_cnt - 2, sizeof(object_list[0]), help_cmp_items); brow_ResetNodraw( brow->ctx); brow_Redraw( brow->ctx, 0); return sts; }
void TblNav::delete_item( TblNav_sevhistobject *hi) { brow_tNode *node_list; int node_count; ItemBase *baseitem; brow_GetObjectList( brow->ctx, &node_list, &node_count); // Delete in tree for ( int i = 1; i < (int)tree.size(); i++) { if ( tree[i].deleted) continue; if ( tree[i].item && cdh_ObjidIsEqual( tree[i].item->oid, hi->oid) && strcmp( tree[i].item->objectattrlist[0].aname, hi->objectattrlist[0].aname) == 0) { tree[i].deleted = 1; } } // Delete node if visible brow_GetObjectList( brow->ctx, &node_list, &node_count); int found = 0; for ( int i = 0; i < node_count; i++) { brow_GetUserData( node_list[i], (void **)&baseitem); switch ( baseitem->type) { case tblnav_eItemType_Local: case tblnav_eItemType_TreeLocal: { ItemLocal *item = (ItemLocal *)baseitem; if ( cdh_ObjidIsEqual( hi->oid, item->item.oid) && strcmp( hi->objectattrlist[0].aname, item->item.objectattrlist[0].aname) == 0) { brow_DeleteNode( brow->ctx, item->node); found = 1; } break; } default: ; } if ( found) break; } }
int XAttNav::object_exist( brow_tObject object) { brow_tObject *object_list; int object_cnt; int i; brow_GetObjectList( brow->ctx, &object_list, &object_cnt); for ( i = 0; i < object_cnt; i++) { if ( object_list[i] == object) return 1; } return 0; }
int SubGraphs::set_all_extern( int eval) { brow_tNode *node_list; int node_count; SubGraphBaseItem *item; brow_GetObjectList( brow->ctx, &node_list, &node_count); if ( !node_count) return 0; for ( int i = 0; i < node_count; i++) { brow_GetUserData( node_list[i], (void **)&item); if ( item->type == subgraphs_eItemType_SubGraph) ((ItemSubGraph *)item)->set_extern( eval); } return 1; }
int XAttNav::select_by_name( char *name) { Item *base_item; brow_tObject *object_list; int object_cnt; int i; int found; brow_tObject object; brow_GetObjectList( brow->ctx, &object_list, &object_cnt); found = 0; for ( i = 0; i < object_cnt; i++) { brow_GetUserData( object_list[i], (void **)&base_item); switch( base_item->type) { case xnav_eItemType_Attr: case xnav_eItemType_AttrArrayElem: { ItemBaseAttr *item = (ItemBaseAttr *)base_item; if ( strcmp( name, item->attr) == 0) { object = object_list[i]; found = 1; } break; } default: ; } if ( found) break; } if ( !found) return XATT__ATTRNOTFOUND; brow_SelectClear( brow->ctx); brow_SetInverse( object, 1); brow_SelectInsert( brow->ctx, object); return XATT__SUCCESS; }
void SubPalette::select_by_name( char *name) { // Refresh brow_SetNodraw( brow->ctx); brow_DeleteAll( brow->ctx); ((ItemMenu *)root_item)->open_children( this, 0, 0); char *s = name; char *t = name; char itemname[200]; int level = 0; brow_tObject *nodelist; brow_tObject current; brow_tObject child; int nodecnt; Item *item; int sts; for (;;) { if ( !t) break; level ++; strcpy( itemname, t); if ( (s = strchr( itemname, '-'))) { *s = 0; t += (s - itemname + 1); } else t = 0; if ( level == 1) { brow_GetObjectList( brow->ctx, &nodelist, &nodecnt); for ( int i = 0; i < nodecnt; i++) { brow_GetUserData( nodelist[i], (void **)&item); if ( strcmp( itemname, item->name) == 0) { current = nodelist[i]; } } } else { current = 0; item->open_children( this, 0, 0); for ( sts = brow_GetChild( brow->ctx, item->node, &child); ODD( sts); sts = brow_GetNextSibling( brow->ctx, child, &child)) { brow_GetUserData( child, (void **)&item); if ( cdh_NoCaseStrcmp( itemname, item->name) == 0) { current = child; break; } } if ( !current) break; } } brow_ResetNodraw( brow->ctx); brow_Redraw( brow->ctx, 0); if ( current) { brow_SetInverse( current, 1); brow_SelectInsert( brow->ctx, current); if ( !brow_IsVisible( brow->ctx, current, flow_eVisible_Full)) brow_CenterObject( brow->ctx, current, 0.25); } }