Modified the "label" and "setlabel" commands, giving "setlabel" an
extra option "-default" that allows defaults to be set for any label property other than text or port-related properties. Subsequently, the command "label <text>" will apply the given defaults to the label. This allows a simpler way to create rendered labels from the command line without remembering all of the arguments to the extended "label" command.
This commit is contained in:
parent
f790ea7589
commit
7757384355
|
|
@ -50,6 +50,9 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/
|
||||||
|
|
||||||
void CmdPaintEraseButton();
|
void CmdPaintEraseButton();
|
||||||
|
|
||||||
|
/* See the SetLabel command */
|
||||||
|
|
||||||
|
extern Label *DefaultLabel;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ----------------------------------------------------------------------------
|
* ----------------------------------------------------------------------------
|
||||||
|
|
@ -169,8 +172,8 @@ CmdLabel(w, cmd)
|
||||||
MagWindow *w;
|
MagWindow *w;
|
||||||
TxCommand *cmd;
|
TxCommand *cmd;
|
||||||
{
|
{
|
||||||
TileType type;
|
TileType type = (TileType)(-1);
|
||||||
int pos, font = -1, size = 0, rotate = 0, offx = 0, offy = 0;
|
int pos = -1, font = -1, size = 0, rotate = 0, offx = 0, offy = 0;
|
||||||
bool sticky = FALSE;
|
bool sticky = FALSE;
|
||||||
int option;
|
int option;
|
||||||
char *p;
|
char *p;
|
||||||
|
|
@ -185,6 +188,22 @@ CmdLabel(w, cmd)
|
||||||
|
|
||||||
p = cmd->tx_argv[1];
|
p = cmd->tx_argv[1];
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If the "setlabel" command has been used to set defaults, pick up
|
||||||
|
* the default values from DefaultLabel.
|
||||||
|
*/
|
||||||
|
if (DefaultLabel != NULL)
|
||||||
|
{
|
||||||
|
pos = DefaultLabel->lab_just;
|
||||||
|
font = DefaultLabel->lab_font;
|
||||||
|
size = DefaultLabel->lab_size;
|
||||||
|
rotate = DefaultLabel->lab_rotate;
|
||||||
|
offx = DefaultLabel->lab_offset.p_x;
|
||||||
|
offy = DefaultLabel->lab_offset.p_y;
|
||||||
|
sticky = (DefaultLabel->lab_flags & LABEL_STICKY) ? 1 : 0;
|
||||||
|
type = DefaultLabel->lab_type;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Find and check validity of position.
|
* Find and check validity of position.
|
||||||
*/
|
*/
|
||||||
|
|
@ -220,13 +239,14 @@ CmdLabel(w, cmd)
|
||||||
else
|
else
|
||||||
pos = GeoTransPos(&RootToEditTransform, pos);
|
pos = GeoTransPos(&RootToEditTransform, pos);
|
||||||
}
|
}
|
||||||
else pos = -1;
|
|
||||||
|
|
||||||
if (font >= 0)
|
if (font >= 0)
|
||||||
{
|
{
|
||||||
char *yp = NULL;
|
char *yp = NULL;
|
||||||
|
|
||||||
size = DBLambda[1];
|
if (DefaultLabel == NULL)
|
||||||
|
size = DBLambda[1];
|
||||||
|
|
||||||
if (cmd->tx_argc > 3)
|
if (cmd->tx_argc > 3)
|
||||||
if (StrIsNumeric(cmd->tx_argv[3]))
|
if (StrIsNumeric(cmd->tx_argv[3]))
|
||||||
size = cmdScaleCoord(w, cmd->tx_argv[3], TRUE, TRUE, 8);
|
size = cmdScaleCoord(w, cmd->tx_argv[3], TRUE, TRUE, 8);
|
||||||
|
|
@ -304,7 +324,7 @@ CmdLabel(w, cmd)
|
||||||
TxError("Unknown layer: %s\n", cmd->tx_argv[cmd->tx_argc - 1]);
|
TxError("Unknown layer: %s\n", cmd->tx_argv[cmd->tx_argc - 1]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else type = -1;
|
}
|
||||||
|
|
||||||
CmdLabelProc(p, font, size, rotate, offx, offy, pos, sticky, type);
|
CmdLabelProc(p, font, size, rotate, offx, offy, pos, sticky, type);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
268
commands/CmdRS.c
268
commands/CmdRS.c
|
|
@ -54,6 +54,9 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/
|
||||||
|
|
||||||
extern void DisplayWindow();
|
extern void DisplayWindow();
|
||||||
|
|
||||||
|
/* Used by CmdSetLabel() */
|
||||||
|
Label *DefaultLabel;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ----------------------------------------------------------------------------
|
* ----------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
|
|
@ -1892,8 +1895,7 @@ cmdLabelFontFunc(label, cellUse, transform, font)
|
||||||
* Query or change properties of a (selected) label in the edit cell
|
* Query or change properties of a (selected) label in the edit cell
|
||||||
*
|
*
|
||||||
* Usage:
|
* Usage:
|
||||||
* setlabel option [name]
|
* setlabel [-default] option [name]
|
||||||
*
|
|
||||||
*
|
*
|
||||||
* Option may be one of:
|
* Option may be one of:
|
||||||
* text
|
* text
|
||||||
|
|
@ -1913,6 +1915,11 @@ cmdLabelFontFunc(label, cellUse, transform, font)
|
||||||
* "setlabel font <name>" can be used without any select to load fonts
|
* "setlabel font <name>" can be used without any select to load fonts
|
||||||
* from a startup script.
|
* from a startup script.
|
||||||
*
|
*
|
||||||
|
* Use with "-default" causes the DefaultLabel structure to be created
|
||||||
|
* (if not existing already) and set with the given value. Subsequent
|
||||||
|
* use of the "label" command will start with the given defaults, then
|
||||||
|
* apply whatever non-default values are specified in the command.
|
||||||
|
*
|
||||||
* ----------------------------------------------------------------------------
|
* ----------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -1933,10 +1940,12 @@ CmdSetLabel(w, cmd)
|
||||||
TxCommand *cmd;
|
TxCommand *cmd;
|
||||||
{
|
{
|
||||||
int pos = -1, font = -1, size = 0, rotate = 0, flags = 0;
|
int pos = -1, font = -1, size = 0, rotate = 0, flags = 0;
|
||||||
|
int locargc, argstart = 1;
|
||||||
char **msg;
|
char **msg;
|
||||||
Point offset;
|
Point offset;
|
||||||
TileType ttype;
|
TileType ttype;
|
||||||
int option;
|
int option;
|
||||||
|
bool doDefault = FALSE;
|
||||||
#ifdef MAGIC_WRAPPER
|
#ifdef MAGIC_WRAPPER
|
||||||
Tcl_Obj *lobj;
|
Tcl_Obj *lobj;
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -1959,10 +1968,34 @@ CmdSetLabel(w, cmd)
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
if (cmd->tx_argc < 2 || cmd->tx_argc > 4)
|
locargc = cmd->tx_argc;
|
||||||
|
if (locargc > 2)
|
||||||
|
{
|
||||||
|
if (!strncmp(cmd->tx_argv[1], "-def", 4))
|
||||||
|
{
|
||||||
|
if (DefaultLabel == NULL)
|
||||||
|
{
|
||||||
|
DefaultLabel = (Label *)mallocMagic(sizeof(Label));
|
||||||
|
/* Set default defaults (lab_text is ignored) */
|
||||||
|
DefaultLabel->lab_just = -1;
|
||||||
|
DefaultLabel->lab_size = 0;
|
||||||
|
DefaultLabel->lab_font = -1;
|
||||||
|
DefaultLabel->lab_rotate = 0;
|
||||||
|
DefaultLabel->lab_flags = 0;
|
||||||
|
DefaultLabel->lab_offset.p_x = 0;
|
||||||
|
DefaultLabel->lab_offset.p_y = 0;
|
||||||
|
DefaultLabel->lab_type = (TileType)(-1);
|
||||||
|
}
|
||||||
|
doDefault = TRUE;
|
||||||
|
locargc--;
|
||||||
|
argstart++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (locargc < 2 || locargc > 4)
|
||||||
option = SETLABEL_HELP;
|
option = SETLABEL_HELP;
|
||||||
else
|
else
|
||||||
option = Lookup(cmd->tx_argv[1], cmdLabelSetOption);
|
option = Lookup(cmd->tx_argv[argstart], cmdLabelSetOption);
|
||||||
|
|
||||||
switch (option)
|
switch (option)
|
||||||
{
|
{
|
||||||
|
|
@ -1981,20 +2014,27 @@ CmdSetLabel(w, cmd)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SETLABEL_TEXT:
|
case SETLABEL_TEXT:
|
||||||
if (EditCellUse)
|
if (doDefault)
|
||||||
|
{
|
||||||
|
TxError("Cannot set a default label text.\n");
|
||||||
|
}
|
||||||
|
else if (EditCellUse)
|
||||||
{
|
{
|
||||||
SelEnumLabels(&DBAllTypeBits, TRUE, (bool *)NULL,
|
SelEnumLabels(&DBAllTypeBits, TRUE, (bool *)NULL,
|
||||||
cmdLabelTextFunc, (cmd->tx_argc == 3) ?
|
cmdLabelTextFunc, (locargc == 3) ?
|
||||||
(ClientData)cmd->tx_argv[2] : (ClientData)NULL);
|
(ClientData)cmd->tx_argv[argstart + 1] : (ClientData)NULL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SETLABEL_FONT:
|
case SETLABEL_FONT:
|
||||||
if (cmd->tx_argc >= 2 && cmd->tx_argc <= 4)
|
if (locargc >= 2 && locargc <= 4)
|
||||||
{
|
{
|
||||||
if ((cmd->tx_argc == 3) && StrIsInt(cmd->tx_argv[2]))
|
/* This option is used to see the font name corresponding
|
||||||
|
* to a font number.
|
||||||
|
*/
|
||||||
|
if ((locargc == 3) && StrIsInt(cmd->tx_argv[argstart + 1]))
|
||||||
{
|
{
|
||||||
int font = atoi(cmd->tx_argv[2]);
|
int font = atoi(cmd->tx_argv[argstart + 1]);
|
||||||
if (font < -1 || font >= DBNumFonts)
|
if (font < -1 || font >= DBNumFonts)
|
||||||
{
|
{
|
||||||
if (DBNumFonts == 0)
|
if (DBNumFonts == 0)
|
||||||
|
|
@ -2008,67 +2048,118 @@ CmdSetLabel(w, cmd)
|
||||||
else
|
else
|
||||||
TxPrintf("%s\n", DBFontList[font]->mf_name);
|
TxPrintf("%s\n", DBFontList[font]->mf_name);
|
||||||
}
|
}
|
||||||
else if ((cmd->tx_argc == 3 || cmd->tx_argc == 4) &&
|
else if ((locargc == 3 || locargc == 4) &&
|
||||||
!StrIsInt(cmd->tx_argv[2]))
|
!StrIsInt(cmd->tx_argv[argstart + 1]))
|
||||||
{
|
{
|
||||||
font = DBNameToFont(cmd->tx_argv[2]);
|
font = DBNameToFont(cmd->tx_argv[argstart + 1]);
|
||||||
if (font < -1)
|
if (font < -1)
|
||||||
{
|
{
|
||||||
float scale = 1.0;
|
float scale = 1.0;
|
||||||
if ((cmd->tx_argc == 4) && StrIsNumeric(cmd->tx_argv[3]))
|
if ((locargc == 4) && StrIsNumeric(cmd->tx_argv[argstart + 2]))
|
||||||
scale = (float)atof(cmd->tx_argv[3]);
|
scale = (float)atof(cmd->tx_argv[argstart + 2]);
|
||||||
if (DBLoadFont(cmd->tx_argv[2], scale) != 0)
|
if (DBLoadFont(cmd->tx_argv[argstart + 1], scale) != 0)
|
||||||
TxError("Error loading font \"%s\"\n", cmd->tx_argv[2]);
|
TxError("Error loading font \"%s\"\n", cmd->tx_argv[argstart + 1]);
|
||||||
font = DBNameToFont(cmd->tx_argv[2]);
|
font = DBNameToFont(cmd->tx_argv[argstart + 1]);
|
||||||
if (font < -1) break;
|
if (font < -1) break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (EditCellUse)
|
if (doDefault)
|
||||||
|
{
|
||||||
|
if (locargc == 2)
|
||||||
|
{
|
||||||
|
font = DefaultLabel->lab_font;
|
||||||
|
if (font == -1)
|
||||||
|
#ifdef MAGIC_WRAPPER
|
||||||
|
Tcl_SetResult(magicinterp, "default", TCL_VOLATILE);
|
||||||
|
#else
|
||||||
|
TxPrintf("default\n");
|
||||||
|
#endif
|
||||||
|
else
|
||||||
|
#ifdef MAGIC_WRAPPER
|
||||||
|
Tcl_SetObjResult(magicinterp,
|
||||||
|
Tcl_NewStringObj(DBFontList[font]->mf_name, -1));
|
||||||
|
#else
|
||||||
|
TxPrintf("%s\n", DBFontList[font]->mf_name);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else
|
||||||
|
DefaultLabel->lab_font = font;
|
||||||
|
}
|
||||||
|
else if (EditCellUse)
|
||||||
{
|
{
|
||||||
SelEnumLabels(&DBAllTypeBits, TRUE, (bool *)NULL,
|
SelEnumLabels(&DBAllTypeBits, TRUE, (bool *)NULL,
|
||||||
cmdLabelFontFunc, (cmd->tx_argc == 3) ?
|
cmdLabelFontFunc, (locargc == 3) ?
|
||||||
(ClientData)&font : (ClientData)NULL);
|
(ClientData)&font : (ClientData)NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SETLABEL_JUSTIFY:
|
case SETLABEL_JUSTIFY:
|
||||||
if (cmd->tx_argc == 3)
|
if (locargc == 3)
|
||||||
{
|
{
|
||||||
pos = GeoNameToPos(cmd->tx_argv[2], FALSE, TRUE);
|
pos = GeoNameToPos(cmd->tx_argv[argstart + 1], FALSE, TRUE);
|
||||||
if (pos < 0) break;
|
if (pos < 0) break;
|
||||||
}
|
}
|
||||||
if (EditCellUse)
|
if (doDefault)
|
||||||
|
{
|
||||||
|
if (locargc == 2)
|
||||||
|
{
|
||||||
|
#ifdef MAGIC_WRAPPER
|
||||||
|
Tcl_SetObjResult(magicinterp,
|
||||||
|
Tcl_NewStringObj(GeoPosToName(DefaultLabel->lab_just),
|
||||||
|
-1));
|
||||||
|
#else
|
||||||
|
TxPrintf("%s\n", GeoPosToName(DefaultLabel->lab_just));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else
|
||||||
|
DefaultLabel->lab_just = pos;
|
||||||
|
}
|
||||||
|
else if (EditCellUse)
|
||||||
{
|
{
|
||||||
SelEnumLabels(&DBAllTypeBits, TRUE, (bool *)NULL,
|
SelEnumLabels(&DBAllTypeBits, TRUE, (bool *)NULL,
|
||||||
cmdLabelJustFunc, (cmd->tx_argc == 3) ?
|
cmdLabelJustFunc, (locargc == 3) ?
|
||||||
(ClientData)&pos : (ClientData)NULL);
|
(ClientData)&pos : (ClientData)NULL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SETLABEL_SIZE:
|
case SETLABEL_SIZE:
|
||||||
if (cmd->tx_argc == 3)
|
if (locargc == 3)
|
||||||
{
|
{
|
||||||
if (StrIsNumeric(cmd->tx_argv[2]))
|
if (StrIsNumeric(cmd->tx_argv[argstart + 1]))
|
||||||
size = cmdScaleCoord(w, cmd->tx_argv[2], TRUE, TRUE, 8);
|
size = cmdScaleCoord(w, cmd->tx_argv[argstart + 1], TRUE, TRUE, 8);
|
||||||
if (size <= 0) break;
|
if (size <= 0) break;
|
||||||
}
|
}
|
||||||
if (EditCellUse)
|
if (doDefault)
|
||||||
|
{
|
||||||
|
if (locargc == 2)
|
||||||
|
{
|
||||||
|
#ifdef MAGIC_WRAPPER
|
||||||
|
Tcl_SetObjResult(magicinterp,
|
||||||
|
Tcl_NewIntObj(DefaultLabel->lab_size));
|
||||||
|
#else
|
||||||
|
TxPrintf("%d\n", DefaultLabel->lab_size);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else
|
||||||
|
DefaultLabel->lab_size = size;
|
||||||
|
}
|
||||||
|
else if (EditCellUse)
|
||||||
{
|
{
|
||||||
SelEnumLabels(&DBAllTypeBits, TRUE, (bool *)NULL,
|
SelEnumLabels(&DBAllTypeBits, TRUE, (bool *)NULL,
|
||||||
cmdLabelSizeFunc, (cmd->tx_argc == 3) ?
|
cmdLabelSizeFunc, (locargc == 3) ?
|
||||||
(ClientData)&size : (ClientData)NULL);
|
(ClientData)&size : (ClientData)NULL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SETLABEL_OFFSET:
|
case SETLABEL_OFFSET:
|
||||||
if (cmd->tx_argc == 3)
|
if (locargc == 3)
|
||||||
{
|
{
|
||||||
char *yp;
|
char *yp;
|
||||||
if ((yp = strchr(cmd->tx_argv[2], ' ')) != NULL)
|
if ((yp = strchr(cmd->tx_argv[argstart + 1], ' ')) != NULL)
|
||||||
{
|
{
|
||||||
offset.p_x = cmdScaleCoord(w, cmd->tx_argv[2], TRUE, TRUE, 8);
|
offset.p_x = cmdScaleCoord(w, cmd->tx_argv[argstart + 1], TRUE, TRUE, 8);
|
||||||
offset.p_y = cmdScaleCoord(w, yp, TRUE, FALSE, 8);
|
offset.p_y = cmdScaleCoord(w, yp, TRUE, FALSE, 8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -2077,67 +2168,138 @@ CmdSetLabel(w, cmd)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (cmd->tx_argc == 4)
|
else if (locargc == 4)
|
||||||
{
|
{
|
||||||
offset.p_x = cmdScaleCoord(w, cmd->tx_argv[2], TRUE, TRUE, 8);
|
offset.p_x = cmdScaleCoord(w, cmd->tx_argv[argstart + 1], TRUE, TRUE, 8);
|
||||||
offset.p_y = cmdScaleCoord(w, cmd->tx_argv[3], TRUE, FALSE, 8);
|
offset.p_y = cmdScaleCoord(w, cmd->tx_argv[argstart + 2], TRUE, FALSE, 8);
|
||||||
}
|
}
|
||||||
if (EditCellUse)
|
if (doDefault)
|
||||||
|
{
|
||||||
|
if (locargc == 2)
|
||||||
|
{
|
||||||
|
#ifdef MAGIC_WRAPPER
|
||||||
|
Tcl_Obj *lobj;
|
||||||
|
Tcl_NewListObj(0, NULL);
|
||||||
|
Tcl_ListObjAppendElement(magicinterp, lobj,
|
||||||
|
Tcl_NewIntObj(DefaultLabel->lab_offset.p_x));
|
||||||
|
Tcl_ListObjAppendElement(magicinterp, lobj,
|
||||||
|
Tcl_NewIntObj(DefaultLabel->lab_offset.p_y));
|
||||||
|
Tcl_SetObjResult(magicinterp, lobj);
|
||||||
|
#else
|
||||||
|
TxPrintf("%d %d\n", DefaultLabel->lab_offset.p_x,
|
||||||
|
DefaultLabel->lab_offset.p_y);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else
|
||||||
|
DefaultLabel->lab_offset = offset;
|
||||||
|
}
|
||||||
|
else if (EditCellUse)
|
||||||
{
|
{
|
||||||
SelEnumLabels(&DBAllTypeBits, TRUE, (bool *)NULL,
|
SelEnumLabels(&DBAllTypeBits, TRUE, (bool *)NULL,
|
||||||
cmdLabelOffsetFunc, (cmd->tx_argc != 2) ?
|
cmdLabelOffsetFunc, (locargc != 2) ?
|
||||||
(ClientData)&offset : (ClientData)NULL);
|
(ClientData)&offset : (ClientData)NULL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SETLABEL_ROTATE:
|
case SETLABEL_ROTATE:
|
||||||
if (cmd->tx_argc == 3)
|
if (locargc == 3)
|
||||||
{
|
{
|
||||||
if (StrIsInt(cmd->tx_argv[2]))
|
if (StrIsInt(cmd->tx_argv[argstart + 1]))
|
||||||
rotate = atoi(cmd->tx_argv[2]);
|
rotate = atoi(cmd->tx_argv[argstart + 1]);
|
||||||
}
|
}
|
||||||
if (EditCellUse)
|
if (doDefault)
|
||||||
|
{
|
||||||
|
if (locargc == 2)
|
||||||
|
{
|
||||||
|
#ifdef MAGIC_WRAPPER
|
||||||
|
Tcl_SetObjResult(magicinterp,
|
||||||
|
Tcl_NewIntObj(DefaultLabel->lab_rotate));
|
||||||
|
#else
|
||||||
|
TxPrintf("%d\n", DefaultLabel->lab_rotate);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else
|
||||||
|
DefaultLabel->lab_rotate = rotate;
|
||||||
|
}
|
||||||
|
else if (EditCellUse)
|
||||||
{
|
{
|
||||||
SelEnumLabels(&DBAllTypeBits, TRUE, (bool *)NULL,
|
SelEnumLabels(&DBAllTypeBits, TRUE, (bool *)NULL,
|
||||||
cmdLabelRotateFunc, (cmd->tx_argc == 3) ?
|
cmdLabelRotateFunc, (locargc == 3) ?
|
||||||
(ClientData)&rotate : (ClientData)NULL);
|
(ClientData)&rotate : (ClientData)NULL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SETLABEL_STICKY:
|
case SETLABEL_STICKY:
|
||||||
if (cmd->tx_argc == 3)
|
if (locargc == 3)
|
||||||
{
|
{
|
||||||
option = Lookup(cmd->tx_argv[2], cmdLabelYesNo);
|
option = Lookup(cmd->tx_argv[argstart + 1], cmdLabelYesNo);
|
||||||
if (option < 0)
|
if (option < 0)
|
||||||
{
|
{
|
||||||
TxError("Unknown sticky option \"%s\"\n", cmd->tx_argv[2]);
|
TxError("Unknown sticky option \"%s\"\n", cmd->tx_argv[argstart + 1]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
flags = (option <= 3) ? 0 : LABEL_STICKY;
|
flags = (option <= 3) ? 0 : LABEL_STICKY;
|
||||||
}
|
}
|
||||||
if (EditCellUse)
|
if (doDefault)
|
||||||
|
{
|
||||||
|
if (locargc == 2)
|
||||||
|
{
|
||||||
|
#ifdef MAGIC_WRAPPER
|
||||||
|
Tcl_SetObjResult(magicinterp,
|
||||||
|
Tcl_NewBooleanObj((DefaultLabel->lab_flags &
|
||||||
|
LABEL_STICKY) ? TRUE : FALSE));
|
||||||
|
#else
|
||||||
|
TxPrintf("%d\n", (DefaultLabel->lab_flags & LABEL_STICKY) ? 1 : 0);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else
|
||||||
|
DefaultLabel->lab_flags = flags;
|
||||||
|
}
|
||||||
|
else if (EditCellUse)
|
||||||
{
|
{
|
||||||
SelEnumLabels(&DBAllTypeBits, TRUE, (bool *)NULL,
|
SelEnumLabels(&DBAllTypeBits, TRUE, (bool *)NULL,
|
||||||
cmdLabelStickyFunc, (cmd->tx_argc == 3) ?
|
cmdLabelStickyFunc, (locargc == 3) ?
|
||||||
(ClientData)&flags : (ClientData)NULL);
|
(ClientData)&flags : (ClientData)NULL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SETLABEL_LAYER:
|
case SETLABEL_LAYER:
|
||||||
if (cmd->tx_argc == 3)
|
if (locargc == 3)
|
||||||
{
|
{
|
||||||
if (!strcasecmp(cmd->tx_argv[2], "default"))
|
if (!strcasecmp(cmd->tx_argv[argstart + 1], "default"))
|
||||||
ttype = -1;
|
ttype = -1;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ttype = DBTechNoisyNameType(cmd->tx_argv[2]);
|
ttype = DBTechNoisyNameType(cmd->tx_argv[argstart + 1]);
|
||||||
if (ttype < 0) break;
|
if (ttype < 0) break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (EditCellUse)
|
if (doDefault)
|
||||||
|
{
|
||||||
|
if (locargc == 2)
|
||||||
|
{
|
||||||
|
if (DefaultLabel->lab_type == (TileType)(-1))
|
||||||
|
#ifdef MAGIC_WRAPPER
|
||||||
|
Tcl_SetResult(magicinterp, "default", TCL_VOLATILE);
|
||||||
|
#else
|
||||||
|
TxPrintf("default\n");
|
||||||
|
#endif
|
||||||
|
else
|
||||||
|
#ifdef MAGIC_WRAPPER
|
||||||
|
Tcl_SetResult(magicinterp,
|
||||||
|
DBTypeLongNameTbl[DefaultLabel->lab_type],
|
||||||
|
TCL_VOLATILE);
|
||||||
|
#else
|
||||||
|
TxPrintf("%s\n", DBTypeLongNameTbl[DefaultLabel->lab_type]);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else
|
||||||
|
DefaultLabel->lab_type = ttype;
|
||||||
|
}
|
||||||
|
else if (EditCellUse)
|
||||||
{
|
{
|
||||||
SelEnumLabels(&DBAllTypeBits, TRUE, (bool *)NULL,
|
SelEnumLabels(&DBAllTypeBits, TRUE, (bool *)NULL,
|
||||||
cmdLabelLayerFunc, (cmd->tx_argc == 3) ?
|
cmdLabelLayerFunc, (locargc == 3) ?
|
||||||
(ClientData)&ttype : (ClientData)NULL);
|
(ClientData)&ttype : (ClientData)NULL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -2151,7 +2313,7 @@ CmdSetLabel(w, cmd)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
TxError("Unknown setlabel option \"%s\"\n", cmd->tx_argv[1]);
|
TxError("Unknown setlabel option \"%s\"\n", cmd->tx_argv[argstart]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue