示例#1
0
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;
}
示例#2
0
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;
  }
}
示例#3
0
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;
}
示例#4
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;
}
示例#5
0
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;
}
示例#6
0
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);
  }
}