Merge branch 'work' into tomerge
This commit is contained in:
commit
9dcaddc67c
|
|
@ -631,6 +631,8 @@ calmaElementPath()
|
|||
}
|
||||
}
|
||||
|
||||
typedef enum { LABEL_TYPE_NONE, LABEL_TYPE_TEXT, LABEL_TYPE_PORT } labelType;
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
*
|
||||
|
|
@ -853,16 +855,9 @@ calmaElementText()
|
|||
else
|
||||
{
|
||||
int flags, i;
|
||||
Label *lab;
|
||||
|
||||
/* Find the style layer record corresponding to the label type */
|
||||
layer = -1;
|
||||
for (i = 0; i < cifCurReadStyle->crs_nLayers; i++)
|
||||
if (cifCurReadStyle->crs_layers[i]->crl_magicType == type) {
|
||||
layer = i;
|
||||
break;
|
||||
}
|
||||
|
||||
if (layer >= 0 && cifCurReadStyle->crs_labelSticky[layer])
|
||||
if (cifnum >= 0 && (cifCurReadStyle->crs_labelSticky[cifnum] != LABEL_TYPE_NONE))
|
||||
flags = LABEL_STICKY;
|
||||
else if (cifCurReadStyle->crs_flags & CRF_NO_RECONNECT_LABELS)
|
||||
flags = LABEL_STICKY;
|
||||
|
|
@ -870,10 +865,32 @@ calmaElementText()
|
|||
flags = 0;
|
||||
|
||||
if (font < 0)
|
||||
DBPutLabel(cifReadCellDef, &r, pos, textbody, type, flags);
|
||||
lab = DBPutLabel(cifReadCellDef, &r, pos, textbody, type, flags);
|
||||
else
|
||||
DBPutFontLabel(cifReadCellDef, &r, font, size, angle,
|
||||
lab = DBPutFontLabel(cifReadCellDef, &r, font, size, angle,
|
||||
&GeoOrigin, pos, textbody, type, flags);
|
||||
|
||||
if ((lab != NULL) && (cifnum >= 0) &&
|
||||
((cifCurReadStyle->crs_labelSticky[cifnum] == LABEL_TYPE_PORT)))
|
||||
{
|
||||
Label *sl;
|
||||
int idx;
|
||||
|
||||
/* No port information can be encoded in the GDS file, so */
|
||||
/* assume defaults, and assume that the port order is the */
|
||||
/* order in which labels arrive in the GDS stream. */
|
||||
|
||||
i = -1;
|
||||
for (sl = cifReadCellDef->cd_labels; sl != NULL; sl = sl->lab_next)
|
||||
{
|
||||
idx = sl->lab_flags & PORT_NUM_MASK;
|
||||
if (idx > i) i = idx;
|
||||
}
|
||||
i++;
|
||||
lab->lab_flags |= (PORT_NUM_MASK & i);
|
||||
lab->lab_flags |= PORT_DIR_NORTH | PORT_DIR_SOUTH |
|
||||
PORT_DIR_EAST | PORT_DIR_WEST;
|
||||
}
|
||||
}
|
||||
|
||||
/* done with textbody */
|
||||
|
|
|
|||
|
|
@ -62,6 +62,9 @@ CIFOp *cifCurReadOp; /* Last geometric operation seen. */
|
|||
void cifReadStyleInit();
|
||||
void CIFReadLoadStyle();
|
||||
|
||||
/* Label types used by the "labels" statement option */
|
||||
typedef enum { LABEL_TYPE_NONE, LABEL_TYPE_TEXT, LABEL_TYPE_PORT } labelType;
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
*
|
||||
|
|
@ -365,7 +368,7 @@ cifReadStyleInit()
|
|||
for (i = 0; i < MAXCIFRLAYERS; i++)
|
||||
{
|
||||
cifCurReadStyle->crs_labelLayer[i] = TT_SPACE;
|
||||
cifCurReadStyle->crs_labelSticky[i] = FALSE;
|
||||
cifCurReadStyle->crs_labelSticky[i] = LABEL_TYPE_NONE;
|
||||
cifCurReadStyle->crs_layers[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
|
@ -465,6 +468,7 @@ CIFReadTechLine(sectionName, argc, argv)
|
|||
CalmaLayerType clt;
|
||||
int calmaLayers[CALMA_LAYER_MAX], calmaTypes[CALMA_LAYER_MAX];
|
||||
int nCalmaLayers, nCalmaTypes, l, t, j;
|
||||
int calmaLabelType = LABEL_TYPE_NONE;
|
||||
|
||||
if (argc <= 0) return TRUE;
|
||||
else if (argc >= 2) l = strlen(argv[1]);
|
||||
|
|
@ -848,7 +852,13 @@ CIFReadTechLine(sectionName, argc, argv)
|
|||
{
|
||||
if (argc == 3)
|
||||
{
|
||||
if (strcmp(argv[2], "text"))
|
||||
if (!strcmp(argv[2], "text"))
|
||||
calmaLabelType = LABEL_TYPE_TEXT;
|
||||
else if (!strcmp(argv[2], "sticky"))
|
||||
calmaLabelType = LABEL_TYPE_TEXT;
|
||||
else if (!strcmp(argv[2], "port"))
|
||||
calmaLabelType = LABEL_TYPE_PORT;
|
||||
else
|
||||
goto wrongNumArgs;
|
||||
}
|
||||
else
|
||||
|
|
@ -862,7 +872,7 @@ CIFReadTechLine(sectionName, argc, argv)
|
|||
cifCurReadStyle->crs_labelLayer[i]
|
||||
= cifCurReadLayer->crl_magicType;
|
||||
if (argc == 3)
|
||||
cifCurReadStyle->crs_labelSticky[i] = TRUE;
|
||||
cifCurReadStyle->crs_labelSticky[i] = calmaLabelType;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
|
|
|
|||
Loading…
Reference in New Issue