ItemDevice::ItemDevice(PnViewerNav* item_viewernav, const char* item_name, unsigned char* item_ipaddress, unsigned char* item_macaddress, char* item_devname, int vendorid, int deviceid, brow_tNode dest, flow_eDest dest_code) : viewernav(item_viewernav) { type = viewitem_eItemType_Device; strcpy(infotext, ""); strcpy(family, ""); strncpy(devname, item_devname, sizeof(devname)); memcpy(ipaddress, item_ipaddress, sizeof(ipaddress)); memcpy(macaddress, item_macaddress, sizeof(macaddress)); sprintf(ipaddress_str, "%hhu.%hhu.%hhu.%hhu", item_ipaddress[3], item_ipaddress[2], item_ipaddress[1], item_ipaddress[0]); sprintf(macaddress_str, "%02hhX:%02hhX:%02hhX:%02hhX:%02hhX:%02hhX", item_macaddress[5], item_macaddress[4], item_macaddress[3], item_macaddress[2], item_macaddress[1], item_macaddress[0]); sprintf(deviceid_str, "%d", deviceid); viewernav->vendorid_to_str(vendorid, vendorid_str, sizeof(vendorid_str)); viewernav->get_device_info( vendorid, deviceid, infotext, sizeof(infotext), family, sizeof(family)); brow_CreateNode(viewernav->brow->ctx, (char*)"Device", viewernav->brow->nc_device, dest, dest_code, (void*)this, 1, &node); brow_SetAnnotation(node, 0, devname, strlen(devname)); brow_SetAnnotation(node, 1, vendorid_str, strlen(vendorid_str)); brow_SetAnnotation(node, 2, family, strlen(family)); brow_SetAnnotation(node, 3, infotext, strlen(infotext)); brow_SetAnnotPixmap(node, 0, viewernav->brow->pixmap_map); }
ItemSubGraph::ItemSubGraph( SubGraphs *subgraphs, char *item_name, int *item_extern_p, void *item_nodeclass, brow_tNode dest, flow_eDest dest_code) : SubGraphBaseItem(subgraphs_eItemType_SubGraph), nodeclass(item_nodeclass), extern_p( item_extern_p), old_extern(0), first_scan(0) { strcpy( name, item_name); brow_CreateNode( subgraphs->brow->ctx, item_name, subgraphs->brow->nc_object, dest, dest_code, (void *) this, 1, &node); brow_SetAnnotPixmap( node, 0, subgraphs->brow->pixmap_leaf); brow_SetAnnotation( node, 0, item_name, strlen(item_name)); if ( *extern_p) brow_SetAnnotation( node, 1, "Extern", strlen("Extern")); else brow_SetAnnotation( node, 1, "Intern", strlen("Intern")); brow_SetTraceAttr( node, item_name, "", flow_eTraceType_User); }
ItemMsg::ItemMsg( MsgList *item_msglist, const char *item_name, char *item_text, int item_severity, brow_tNode dest, flow_eDest dest_code): msglist(item_msglist), severity(item_severity) { char type_str[8]; char time_str[40]; type = msglist_eItemType_Msg; strncpy( text, item_text, sizeof(text)); text[sizeof(text)-1] = 0; // Remove newline at end if ( text[strlen(text)-1] == '\n') text[strlen(text)-1] = 0; switch ( severity) { case 'S': brow_CreateNode( msglist->brow->ctx, (char *)"Success", msglist->brow->nc_success, dest, dest_code, (void *) this, 1, &node); strcpy( type_str, "S"); break; case 'I': brow_CreateNode( msglist->brow->ctx, (char *)"Info", msglist->brow->nc_info, dest, dest_code, (void *) this, 1, &node); strcpy( type_str, "I"); break; case 'E': brow_CreateNode( msglist->brow->ctx, (char *)"Error", msglist->brow->nc_error, dest, dest_code, (void *) this, 1, &node); strcpy( type_str, "E"); break; case 'W': brow_CreateNode( msglist->brow->ctx, (char *)"Warning", msglist->brow->nc_warning, dest, dest_code, (void *) this, 1, &node); strcpy( type_str, "W"); break; case 'F': brow_CreateNode( msglist->brow->ctx, (char *)"Fatal", msglist->brow->nc_fatal, dest, dest_code, (void *) this, 1, &node); strcpy( type_str, "F"); break; default: brow_CreateNode( msglist->brow->ctx, (char *)"Default", msglist->brow->nc_default, dest, dest_code, (void *) this, 1, &node); strcpy( type_str, ""); } brow_SetAnnotation( node, 0, type_str, strlen(type_str)); time_GetTime( &time); time_AtoAscii( &time, time_eFormat_ComprDateAndTime, time_str, sizeof(time_str)); time_str[17] = 0; brow_SetAnnotation( node, 1, time_str, strlen(time_str)); brow_SetAnnotation( node, 2, text, strlen(text)); // brow_SetAnnotPixmap( node, 0, msglist->brow->pixmap_leaf); }
ItemLocalAttr::ItemLocalAttr( TblNav *tblnav, const char *name, char *value, brow_tNode dest, flow_eDest dest_code) : ItemBase( tblnav_eItemType_LocalAttr) { brow_CreateNode( tblnav->brow->ctx, "LocalItemAttr", tblnav->brow->nc_attr, dest, dest_code, (void *) this, 1, &node); brow_SetAnnotPixmap( node, 0, tblnav->brow->pixmap_attr); brow_SetAnnotation( node, 0, name, strlen(name)); brow_SetAnnotation( node, 1, value, strlen(value)); }
ItemMsgRestart::ItemMsgRestart(CLogNav* item_clognav, const char* item_name, pwr_tTime item_time, brow_tNode dest, flow_eDest dest_code) : ItemMsgBase(item_clognav, item_name, dest), time(item_time) { char time_str[40]; brow_CreateNode(clognav->brow->ctx, item_name, clognav->brow->nc_restart, dest, dest_code, (void*)this, 1, &node); time_AtoAscii( &time, time_eFormat_ComprDateAndTime, time_str, sizeof(time_str)); brow_SetAnnotation(node, 0, time_str, strlen(time_str)); brow_SetAnnotation(node, 1, "Proview startup", strlen("Proview startup")); }
ItemLog::ItemLog( CoLogWNav *item_logwnav, const char *item_name, pwr_tTime item_time, char *item_category, char *item_user, char *item_comment, brow_tNode dest, flow_eDest dest_code): logwnav(item_logwnav), time(item_time) { char time_str[40]; char *s; type = logwitem_eItemType_Log; strncpy( category, item_category, sizeof(category)); strncpy( user, item_user, sizeof(user)); if ( item_comment) strncpy( comment, item_comment, sizeof(comment)); else strcpy( comment, ""); brow_CreateNode( logwnav->brow->ctx, (char *)"Log", logwnav->brow->nc_log, dest, dest_code, (void *) this, 1, &node); time_AtoAscii( &time, time_eFormat_ComprDateAndTime, time_str, sizeof(time_str)); time_str[17] = 0; int annot = 0; brow_SetAnnotation( node, annot++, time_str, strlen(time_str)); brow_SetAnnotation( node, annot++, category, strlen(category)); brow_SetAnnotation( node, annot++, user, strlen(user)); if ( logwnav->show_item) brow_SetAnnotation( node, annot++, item_name, strlen(item_name)); if ( item_comment) brow_SetAnnotation( node, annot++, item_comment, strlen(item_comment)); if ( (s = strstr( category, "Save"))) brow_SetAnnotPixmap( node, 0, logwnav->brow->pixmap_save); else if ( (s = strstr( category, "Build"))) brow_SetAnnotPixmap( node, 0, logwnav->brow->pixmap_build); else if ( (s = strstr( category, "Copy"))) brow_SetAnnotPixmap( node, 0, logwnav->brow->pixmap_copy); else if ( (s = strstr( category, "Package"))) brow_SetAnnotPixmap( node, 0, logwnav->brow->pixmap_package); else if ( (s = strstr( category, "Export"))) brow_SetAnnotPixmap( node, 0, logwnav->brow->pixmap_export); else if ( (s = strstr( category, "Clone"))) brow_SetAnnotPixmap( node, 0, logwnav->brow->pixmap_clone); }
ItemLocal::ItemLocal( TblNav *tblnav, TblNav_sevhistobject *xitem, brow_tNode dest, flow_eDest dest_code) : ItemBase( tblnav_eItemType_Local), item(*xitem) { type = tblnav_eItemType_Local; pwr_tAName aname; brow_CreateNode( tblnav->brow->ctx, "LocalItem", tblnav->brow->nc_object, dest, dest_code, (void *) this, 1, &node); brow_SetAnnotPixmap( node, 0, tblnav->brow->pixmap_leaf); strcpy( aname, item.oname); if( item.attrnum == 1 ) { strcat( aname, "."); strcat( aname, item.objectattrlist[0].aname); } brow_SetAnnotation( node, 0, aname, strlen(aname)); brow_SetAnnotation( node, 1, item.description, strlen(item.description)); }
ItemMsg::ItemMsg( CLogNav *item_clognav, const char *item_name, errh_eSeverity item_severity, char *item_logger, int item_pid, pwr_tTime item_time, char *item_text, brow_tNode dest, flow_eDest dest_code): ItemMsgBase(item_clognav, item_name, dest), severity(item_severity), pid(item_pid), time(item_time) { char type_str[2]; char time_str[40]; char pid_str[40]; strcpy( logger, item_logger); strncpy( text, item_text, sizeof(text)); text[sizeof(text)-1] = 0; switch ( severity) { case errh_eSeverity_Success: brow_CreateNode( clognav->brow->ctx, item_name, clognav->brow->nc_msg_info, dest, dest_code, (void *) this, 1, &node); strcpy( type_str, "S"); break; case errh_eSeverity_Info: brow_CreateNode( clognav->brow->ctx, item_name, clognav->brow->nc_msg_info, dest, dest_code, (void *) this, 1, &node); strcpy( type_str, "I"); break; case errh_eSeverity_Warning: brow_CreateNode( clognav->brow->ctx, item_name, clognav->brow->nc_msg_warning, dest, dest_code, (void *) this, 1, &node); strcpy( type_str, "W"); break; case errh_eSeverity_Error: brow_CreateNode( clognav->brow->ctx, item_name, clognav->brow->nc_msg_error, dest, dest_code, (void *) this, 1, &node); strcpy( type_str, "E"); break; case errh_eSeverity_Fatal: brow_CreateNode( clognav->brow->ctx, item_name, clognav->brow->nc_msg_fatal, dest, dest_code, (void *) this, 1, &node); strcpy( type_str, "F"); break; default: brow_CreateNode( clognav->brow->ctx, item_name, clognav->brow->nc_text, dest, dest_code, (void *) this, 1, &node); brow_SetAnnotation( node, 0, text, strlen(text)); return; } sprintf( pid_str, "%5d", pid); brow_SetAnnotation( node, 0, type_str, strlen(type_str)); time_AtoAscii( &time, time_eFormat_ComprDateAndTime, time_str, sizeof(time_str)); brow_SetAnnotation( node, 1, logger, strlen(logger)); brow_SetAnnotation( node, 2, pid_str, strlen(pid_str)); brow_SetAnnotation( node, 3, time_str, strlen(time_str)); brow_SetAnnotation( node, 4, text, strlen(text)); // brow_SetAnnotPixmap( node, 0, clognav->brow->pixmap_leaf); }
ItemTreeNode::ItemTreeNode( TblNav *tblnav, char *name, int index, brow_tNode dest, flow_eDest dest_code) : ItemBase(tblnav_eItemType_TreeNode), idx(index) { brow_CreateNode( tblnav->brow->ctx, "TreeNode", tblnav->brow->nc_attr, dest, dest_code, (void *) this, 1, &node); if ( tblnav->tree[idx].fch) brow_SetAnnotPixmap( node, 0, tblnav->brow->pixmap_map); else brow_SetAnnotPixmap( node, 0, tblnav->brow->pixmap_leaf); brow_SetAnnotation( node, 0, name, strlen(name)); }
ItemDeviceAttr::ItemDeviceAttr(PnViewerNav* viewernav, const char* item_name, pwr_eType item_attr_type, void* item_p, brow_tNode dest, flow_eDest dest_code) : attr_type(item_attr_type), p(item_p) { char value[80]; type = viewitem_eItemType_DeviceAttr; strcpy(name, item_name); brow_CreateNode(viewernav->brow->ctx, (char*)"DeviceAttr", viewernav->brow->nc_attr, dest, dest_code, (void*)this, 1, &node); strncpy(value, (char*)p, sizeof(value)); brow_SetAnnotation(node, 0, name, strlen(name)); brow_SetAnnotation(node, 1, value, strlen(value)); brow_SetAnnotPixmap(node, 0, viewernav->brow->pixmap_attr); if (viewernav->type == viewer_eType_Network && (streq(item_name, "DeviceName") || streq(item_name, "IP Address"))) brow_SetAnnotPixmap(node, 1, viewernav->brow->pixmap_edit); }
ItemLocalSubGraphs::ItemLocalSubGraphs( SubPalette *subpalette, char *item_name, char *item_filename, brow_tNode dest, flow_eDest dest_code) : Item(subpalette_eItemType_LocalSubGraphs) { strcpy( name, item_name); strcpy( filename, item_filename); brow_CreateNode( subpalette->brow->ctx, item_name, subpalette->brow->nc_object, dest, dest_code, (void *) this, 1, &node); brow_SetAnnotPixmap( node, 0, subpalette->brow->pixmap_map); brow_SetAnnotation( node, 0, item_name, strlen(item_name)); }
ItemTreeLocal::ItemTreeLocal( TblNav *tblnav, TblNav_sevhistobject *xitem, int index, brow_tNode dest, flow_eDest dest_code) : ItemLocal(tblnav, xitem, dest, dest_code), idx(index) { pwr_tAName aname; char *s; type = tblnav_eItemType_TreeLocal; if ((s = strrchr( item.oname, '-'))) strcpy( aname, s+1); else strcpy( aname, item.oname); if( item.attrnum == 1 ) { strcat( aname, "."); strcat( aname, item.objectattrlist[0].aname); } brow_SetAnnotation( node, 0, aname, strlen(aname)); }
ItemFile::ItemFile( SubPalette *subpalette, char *item_name, char *item_filename, int item_pixmap, brow_tNode dest, flow_eDest dest_code) : Item(subpalette_eItemType_File), pixmap(item_pixmap) { strcpy( name, item_name); strcpy( filename, item_filename); brow_CreateNode( subpalette->brow->ctx, item_name, subpalette->brow->nc_sub, dest, dest_code, (void *) this, 1, &node); brow_SetAnnotPixmap( node, 0, subpalette->brow->pixmap_leaf); if ( 0 <= (pixmap-1) && (pixmap-1) < SUBP_PIXMAPS_SIZE && subpalette->brow->pixmaps[pixmap-1]) brow_SetAnnotPixmap( node, 1, subpalette->brow->pixmaps[pixmap-1]); brow_SetAnnotation( node, 0, item_name, strlen(item_name)); }
ItemMenu::ItemMenu( SubPalette *subpalette, const char *item_name, brow_tNode dest, flow_eDest dest_code, subpalette_sMenu **item_child_list, int item_is_root) : Item( subpalette_eItemType_Menu), child_list(item_child_list), is_root(item_is_root) { type = subpalette_eItemType_Menu; strcpy( name, item_name); if ( !is_root) { brow_CreateNode( subpalette->brow->ctx, name, subpalette->brow->nc_object, dest, dest_code, (void *)this, 1, &node); // Set pixmap if ( *child_list) brow_SetAnnotPixmap( node, 0, subpalette->brow->pixmap_map); else brow_SetAnnotPixmap( node, 0, subpalette->brow->pixmap_leaf); // Set object name annotation brow_SetAnnotation( node, 0, name, strlen(name)); } }
static int subgraphs_trace_scan_bc( brow_tObject object, void *p) { SubGraphBaseItem *base_item; char buf[20]; int len; brow_GetUserData( object, (void **)&base_item); switch( base_item->type) { case subgraphs_eItemType_SubGraph: { ItemSubGraph *item; item = (ItemSubGraph *)base_item; if ( !item->first_scan) { if ( *item->extern_p == item->old_extern) // No change since last time return 1; } else item->first_scan = 0; if ( *item->extern_p) len = sprintf( buf, "Extern"); else len = sprintf( buf, "Intern"); brow_SetAnnotation( object, 1, buf, len); item->old_extern = *item->extern_p; break; } default: ; } return 1; }
int XAttNav::trace_scan_bc( brow_tObject object, void *p) { Item *base_item; char buf[500]; int len; brow_GetUserData( object, (void **)&base_item); switch( base_item->type) { case xnav_eItemType_Attr: case xnav_eItemType_AttrArrayElem: case xnav_eItemType_Collect: { ItemAttr *item; item = (ItemAttr *)base_item; if ( !item->first_scan) { if ( item->size > (int) sizeof(item->old_value) && item->type_id == pwr_eType_String && strlen((char *)p) < sizeof(item->old_value) && strcmp( (char *)p, item->old_value) == 0) // No change since last time return 1; else if ( memcmp( item->old_value, p, item->size) == 0) // No change since last time return 1; } else item->first_scan = 0; XNav::attrvalue_to_string( item->type_id, item->tid, p, buf, sizeof(buf), &len, NULL, item->conversion); brow_SetAnnotation( object, 1, buf, len); memcpy( item->old_value, p, min(item->size, (int) sizeof(item->old_value))); break; } case xnav_eItemType_Enum: { ItemEnum *item; item = (ItemEnum *)base_item; if ( !item->first_scan) { if ( memcmp( item->old_value, p, sizeof(pwr_tEnum)) == 0) // No change since last time return 1; } else item->first_scan = 0; if ( *(pwr_tEnum *)p == item->num) brow_SetRadiobutton( object, 0, 1); else brow_SetRadiobutton( object, 0, 0); memcpy( item->old_value, p, sizeof(pwr_tEnum)); break; } case xnav_eItemType_Mask: { ItemMask *item; item = (ItemMask *)base_item; if ( !item->first_scan) { if ( memcmp( item->old_value, p, sizeof(pwr_tMask)) == 0) // No change since last time return 1; } else item->first_scan = 0; if ( *(pwr_tMask *)p & item->num) brow_SetRadiobutton( object, 0, 1); else brow_SetRadiobutton( object, 0, 0); memcpy( item->old_value, p, sizeof(pwr_tMask)); break; } default: ; } return 1; }
// // Set attribute value // int PnViewerNav::set_attr_value(char* value_str) { brow_tNode* node_list; int node_count; ItemDeviceAttr* base_item; int sts; brow_GetSelectedNodes(brow->ctx, &node_list, &node_count); if (!node_count) return 0; brow_GetUserData(node_list[0], (void**)&base_item); free(node_list); switch (base_item->type) { case viewitem_eItemType_DeviceAttr: { ItemDeviceAttr* item; item = (ItemDeviceAttr*)base_item; if (streq(item->name, "IP Address")) { unsigned char address[4]; int num; num = sscanf(value_str, "%hhu.%hhu.%hhu.%hhu", &address[3], &address[2], &address[1], &address[0]); if (num != 4) return PB__SYNTAX; // Change ip address in parent node brow_tNode parent; ItemDevice* pitem; sts = brow_GetParent(brow->ctx, item->node, &parent); if (EVEN(sts)) return 0; brow_GetUserData(parent, (void**)&pitem); memcpy(pitem->ipaddress, address, sizeof(pitem->ipaddress)); strcpy((char*)item->p, value_str); brow_SetAnnotation(item->node, 1, (char*)item->p, strlen((char*)item->p)); } else if (streq(item->name, "DeviceName")) { strcpy((char*)item->p, value_str); brow_SetAnnotation(item->node, 1, (char*)item->p, strlen((char*)item->p)); // Change parent annotation also brow_tNode parent; ItemDevice* pitem; sts = brow_GetParent(brow->ctx, item->node, &parent); if (EVEN(sts)) return 0; brow_GetUserData(parent, (void**)&pitem); brow_SetAnnotation( pitem->node, 0, (char*)item->p, strlen((char*)item->p)); } break; } default:; } return 1; }