#include "spice.h"
#include "sced.h"
#include "scedmacs.h"
Go to the source code of this file.
|
static void | restore_color () |
|
static void | show_device () |
|
static void | free_path () |
|
static void | show_move () |
|
static int | copy_OK () |
|
static void | do_copy () |
|
static char | fix_xform () |
|
static void | do_copy_call () |
|
void | Copy (int *LookedAhead) |
|
void | Move (int *LookedAhead) |
|
void | ShowGhost (long NewX, long NewY, long RefX, long RefY) |
|
void | CopyPathWithXForm (struct p **Path) |
|
static void | show_device (struct s *CellDesc, struct ka *AOI) |
|
void | ShowTransformed (struct s *CellDesc, struct ka *AOI, long *TFold) |
|
static void | free_path (struct p *Path) |
|
static void | show_move (struct ka *OBB, struct ka *NBB) |
|
static int | copy_OK (long X, long Y) |
|
static void | do_copy (long RefX, long RefY, long NewX, long NewY, struct ka *NewBB, int MoveOrCopy) |
|
static char | fix_xform (char Xform) |
|
static void | do_copy_call (long RefX, long RefY, long NewX, long NewY, struct o *OPointer, struct o **NPointer) |
|
void | SetNewTransform (long RefX, long RefY, long NewX, long NewY) |
|
void | AddResultingTransform (struct o *Pointer, long *TF) |
|
void AddResultingTransform |
( |
struct o * |
Pointer, |
|
|
long * |
TF |
|
) |
| |
Definition at line 925 of file copy.c.
947 A =
TF[0]; B =
TF[3]; C =
TF[1]; D =
TF[4];
948 TX =
TF[6]; TY =
TF[7];
949 if (A == 0
And B == 1
And C == 1
And D == 0) {
void Copy |
( |
int * |
LookedAhead | ) |
|
Definition at line 46 of file copy.c.
51 long RefX,RefY,CopX,CopY;
102 ShowPrompt(
"Point to locations where the selected items will be copied.");
134 i =
copy_OK(CopX-RefX,CopY-RefY);
135 if (i == -1)
goto quit;
136 if (i == 0)
continue;
static void restore_color()
void FBSetRubberBanding()
void ShowPrompt(char *str)
static int copy_OK |
( |
long |
X, |
|
|
long |
Y |
|
) |
| |
|
static |
Definition at line 690 of file copy.c.
698 X == 0
And Y == 0 ) {
701 "This will copy objects directly over themselves. Continue(N)?");
703 if (TypeIn ==
NULL)
return (-1);
704 if ((TypeIn[0] !=
'Y' And TypeIn[0] !=
'y'))
void ShowPrompt(char *str)
void CopyPathWithXForm |
( |
struct p ** |
Path | ) |
|
Definition at line 434 of file copy.c.
438 struct p *OldPair,*NewPair;
446 NewPair->
pX = OldPair->
pX;
447 NewPair->
pY = OldPair->
pY;
450 OldPair = OldPair->
pSucc;
451 while(OldPair !=
NULL) {
454 NewPair = NewPair->
pSucc;
455 NewPair->
pX = OldPair->
pX;
456 NewPair->
pY = OldPair->
pY;
459 OldPair = OldPair->
pSucc;
static void do_copy |
( |
long |
RefX, |
|
|
long |
RefY, |
|
|
long |
NewX, |
|
|
long |
NewY, |
|
|
struct ka * |
NewBB, |
|
|
int |
MoveOrCopy |
|
) |
| |
|
static |
Definition at line 712 of file copy.c.
723 long X,
Y,Length,Width;
728 BB.kaLeft = BB.kaRight = NewX;
729 BB.kaTop = BB.kaBottom = NewY;
733 if (MoveOrCopy ==
COPY) {
750 if (MoveOrCopy ==
COPY) {
806 &BB.kaBottom,&BB.kaRight,&BB.kaTop);
807 if (MoveOrCopy ==
MOVE)
813 if (BB.kaLeft < NewBB->
kaLeft) NewBB->
kaLeft = BB.kaLeft;
816 if (BB.kaTop > NewBB->
kaTop) NewBB->
kaTop = BB.kaTop;
818 if (MoveOrCopy ==
MOVE) {
struct prpty * sPrptyList
static void do_copy_call()
struct ka * kvCoarseWindow
union prp_data * prpty_Data
void TransformReferences()
void SetNewTransform(long RefX, long RefY, long NewX, long NewY)
void CopyPathWithXForm(struct p **Path)
struct prpty * prpty_Succ
void AssignWireProperties()
static void do_copy_call |
( |
| ) |
|
|
static |
static void do_copy_call |
( |
long |
RefX, |
|
|
long |
RefY, |
|
|
long |
NewX, |
|
|
long |
NewY, |
|
|
struct o * |
OPointer, |
|
|
struct o ** |
NPointer |
|
) |
| |
|
static |
Definition at line 860 of file copy.c.
873 CDCall(OPointer,&SymbolName,&NumX,&DX,&NumY,&DY);
876 NumX,DX,NumY,DY,&Pointer))
void SetNewTransform(long RefX, long RefY, long NewX, long NewY)
struct prpty * prpty_Succ
void AddResultingTransform(struct o *Pointer, long *TF)
struct prpty * oPrptyList
static char fix_xform |
( |
| ) |
|
|
static |
static char fix_xform |
( |
char |
Xform | ) |
|
|
static |
static void free_path |
( |
| ) |
|
|
static |
static void free_path |
( |
struct p * |
Path | ) |
|
|
static |
Definition at line 633 of file copy.c.
639 for (; Path; Path = Next) {
void Move |
( |
int * |
LookedAhead | ) |
|
Definition at line 165 of file copy.c.
169 struct ka OldBB,NewBB;
170 long LastRefX,LastRefY;
171 long RefX,RefY,MovX,MovY;
172 int FirstTime =
True;
191 if (FirstTime)
goto quit;
286 ShowPrompt(
"Point to where the selected items will be moved.");
static void restore_color()
void FBSetRubberBanding()
void ClearReferenceUndoFlags()
void UndoReferenceTransform()
void ShowPrompt(char *str)
static void restore_color |
( |
| ) |
|
|
static |
Definition at line 465 of file copy.c.
472 struct s *MasterDesc;
474 int NumX,NumY,Int1,Int2;
489 if (
OpenCell(MasterName,&MasterDesc))
break;
494 for (Int1 = NumY-1; Int1 >= 0; --Int1) {
495 for (Int2 = 0; Int2 < NumX; ++Int2 ){
514 &BB.kaBottom,&BB.kaRight,&BB.kaTop);
struct ka * kvCoarseWindow
static void show_device()
void SetNewTransform |
( |
long |
RefX, |
|
|
long |
RefY, |
|
|
long |
NewX, |
|
|
long |
NewY |
|
) |
| |
static void show_device |
( |
| ) |
|
|
static |
static void show_device |
( |
struct s * |
CellDesc, |
|
|
struct ka * |
AOI |
|
) |
| |
|
static |
Definition at line 533 of file copy.c.
548 CDGen(CellDesc,GenDesc,&Pointer);
549 if (Pointer ==
NULL)
break;
552 switch (Pointer->
oType) {
562 CDWire(Pointer,&Layer,&Width,&Path);
static void show_move |
( |
| ) |
|
|
static |
static void show_move |
( |
struct ka * |
OBB, |
|
|
struct ka* |
NBB |
|
) |
| |
|
static |
Definition at line 647 of file copy.c.
651 long L1,R1,B1,T1,L2,R2,B2,T2;
666 if (L1 > R2
Or L2 > R1
Or B1 > T2
Or B2 > T1) {
680 BB.kaLeft =
Min(L1,L2);
681 BB.kaRight =
Max(R1,R2);
682 BB.kaBottom =
Min(B1,B2);
683 BB.kaTop =
Max(T1,T2);
#define Max(Dragon, Eagle)
#define Min(Dragon, Eagle)
#define SwapInts(Dragon, Eagle)
void ShowGhost |
( |
long |
NewX, |
|
|
long |
NewY, |
|
|
long |
RefX, |
|
|
long |
RefY |
|
) |
| |
Definition at line 337 of file copy.c.
345 struct s *MasterDesc;
347 int NumX,NumY,Int1,Int2;
349 long TFold[9], TFnew[9], TFtemp[9];
373 if (
OpenCell(MasterName,&MasterDesc))
break;
379 for (Int1 = NumY-1; Int1 >= 0; --Int1) {
380 for (Int2 = 0; Int2 < NumX; ++Int2 ){
400 &BB.kaBottom,&BB.kaRight,&BB.kaTop);
402 TPoint(&BB.kaLeft,&BB.kaBottom);
403 TPoint(&BB.kaRight,&BB.kaTop);
struct ka * kvCoarseWindow
void ShowTransformed(struct s *CellDesc, struct ka *AOI, long *TFold)
void SetNewTransform(long RefX, long RefY, long NewX, long NewY)
void CopyPathWithXForm(struct p **Path)
#define HighlightingColor
void ShowTransformed |
( |
struct s * |
CellDesc, |
|
|
struct ka * |
AOI, |
|
|
long * |
TFold |
|
) |
| |
Definition at line 576 of file copy.c.
595 CDGen(CellDesc,GenDesc,&Pointer);
596 if (Pointer ==
NULL)
break;
599 switch (Pointer->
oType) {
603 TPoint(&BB.kaLeft,&BB.kaBottom);
604 TPoint(&BB.kaRight,&BB.kaTop);
611 CDWire(Pointer,&Layer,&Width,&Path);
struct ka * kvCoarseWindow
void CopyPathWithXForm(struct p **Path)
#define HighlightingColor