void ui_edit_newSite (Widget w, struct SimpleListType *listDescriptorPtr, caddr_t call) { ui_xStringFromAsciiWidget(ui_edit_siteNameWidget, ui_edit_siteName, MAX_NAME_LENGTH); ui_correctName(ui_edit_siteName); if ((strlen(ui_edit_siteName) == 0) OR (strlen(ui_edit_siteFuncName) == 0)) { ui_confirmOk("Invalid name or function!"); return; } ui_checkError(krui_createSiteTableEntry(ui_edit_siteName, ui_edit_siteFuncName)); if (ui_kernelError >= 0) { if (ui_list_noOfSites++ == 0) { /* first entry is "*** no sites ***" */ free((listDescriptorPtr->listPtr)[0]); (listDescriptorPtr->listPtr)[0] = XtNewString(ui_edit_siteName); } else ui_xAddListEntry(listDescriptorPtr, ui_edit_siteName); XawListChange(listDescriptorPtr->listWidget, listDescriptorPtr->listPtr, listDescriptorPtr->noOfItems, 0, True); } }
/***************************************************************************** FUNCTION : bn_artmap_make_layer PURPOSE : make a complete layer NOTES : UPDATE : 20.1.1993 ******************************************************************************/ krui_err SnnsCLib::bn_artmap_make_layer (int units, int rows, int cols, int Xbegin, int Ybegin, char *name_prefix, int unit_ttype, char *actfuncname, char *outfuncname, int NoOfSites, char **SiteNames, char **SiteFuncNames) { krui_err ret_code = KRERR_NO_ERROR; int row; int col; int count; int last_col; int unit_no; struct PosType unit_pos; char *site_name, *site_func_name; int site_no; char name[100]; unit_pos.z = 0; /* Create Site Table Entries */ site_no = 1; while (site_no <= NoOfSites) { site_name= *(SiteNames+(site_no-1)); site_func_name= *(SiteFuncNames+(site_no-1)); if ((site_name != NULL) && (site_func_name != NULL)) { ret_code = krui_createSiteTableEntry(site_name, site_func_name); CHECK_RETURN (ret_code); } /*if*/ site_no++; } /*while*/ /* Create Units */ for (row = 1, count = 0; row <= rows; row++) { if ((units % rows) > 0) { last_col = POS_SIGN((units-count) % (rows-row+1)); } else { last_col = 1; } /*if*/ for (col = 1; col <= (cols-1+last_col); col++) { count++; unit_no = krui_createDefaultUnit(); if (unit_no < 0) CHECK_RETURN (unit_no); ret_code = krui_setUnitTType (unit_no, unit_ttype); CHECK_RETURN( ret_code ); ret_code = krui_setUnitActFunc(unit_no, actfuncname); CHECK_RETURN (ret_code); ret_code = krui_setUnitOutFunc(unit_no, outfuncname); CHECK_RETURN (ret_code); if (units > 1) { sprintf (name,"%s%d",name_prefix,count); } else { sprintf (name,"%s",name_prefix); } /*if*/ ret_code = krui_setUnitName (unit_no, name); CHECK_RETURN (ret_code); unit_pos.x = Xbegin + col - 1; unit_pos.y = Ybegin + row - 1; krui_setUnitPosition( unit_no, &unit_pos ); ret_code = krui_setCurrentUnit (unit_no); CHECK_RETURN (ret_code); /* Add Sites */ site_no = 1; while (site_no <= NoOfSites) { site_name= *(SiteNames+(site_no-1)); if (site_name != NULL) { ret_code = krui_addSite (site_name); CHECK_RETURN (ret_code); } /*if*/ site_no++; } /*while*/ } /*for*/ } /*for*/ return (ret_code); }