157 lines
4.5 KiB
C
157 lines
4.5 KiB
C
/*
|
|
* nmInt.h --
|
|
*
|
|
* Defines things needed inside the netmenu module, but
|
|
* not needed outside the module.
|
|
*
|
|
* *********************************************************************
|
|
* * Copyright (C) 1985, 1990 Regents of the University of California. *
|
|
* * Permission to use, copy, modify, and distribute this *
|
|
* * software and its documentation for any purpose and without *
|
|
* * fee is hereby granted, provided that the above copyright *
|
|
* * notice appear in all copies. The University of California *
|
|
* * makes no representations about the suitability of this *
|
|
* * software for any purpose. It is provided "as is" without *
|
|
* * express or implied warranty. Export of this software outside *
|
|
* * of the United States of America may require an export license. *
|
|
* *********************************************************************
|
|
*
|
|
*
|
|
* rcsid "$Header: /usr/cvsroot/magic-8.0/netmenu/nmInt.h,v 1.1.1.1 2008/02/03 20:43:50 tim Exp $"
|
|
*/
|
|
|
|
#ifndef _MAGIC__NETMENU__NMINT_H
|
|
#define _MAGIC__NETMENU__NMINT_H
|
|
|
|
#include "windows/windows.h"
|
|
|
|
/* The declarations below define the elements displayed in the
|
|
* net-list menu. There are three kinds of things:
|
|
*
|
|
* 1. Buttons: these are boxes, drawn with a solid color fill
|
|
* and a black outline and (possibly) text centered in the
|
|
* middle. Each button corresponds to a command or commands.
|
|
*
|
|
* 2. Extra text: this is just extra text, displayed to make the
|
|
* menu more readable.
|
|
*
|
|
* 3. Extra boxes: more stuff, not necessarily corresponding to
|
|
* commands, that makes the menu more readable.
|
|
*
|
|
*/
|
|
|
|
typedef struct
|
|
{
|
|
char *nmb_text; /* Text to display in button. */
|
|
int nmb_style; /* Style for color fill. */
|
|
Rect nmb_area; /* Area of button. */
|
|
void (*nmb_leftDown)(); /* Procedure to call when left button
|
|
* goes down in button. NULL means don't
|
|
* call anything on this transition. The
|
|
* procedure gets passed four parameters:
|
|
* the window, the address of this NetButton,
|
|
* the TxCommand, and the cursor position in
|
|
* surface coords. See NMcommand's code for
|
|
* details.
|
|
*/
|
|
void (*nmb_leftUp)();
|
|
void (*nmb_middleDown)();
|
|
void (*nmb_middleUp)();
|
|
void (*nmb_rightDown)();
|
|
void (*nmb_rightUp)();
|
|
} NetButton;
|
|
|
|
typedef struct
|
|
{
|
|
char *nml_text; /* Text to display. */
|
|
int nml_style; /* Style for text. */
|
|
Rect nml_area; /* Bounding area for text. */
|
|
} NetLabel;
|
|
|
|
typedef struct
|
|
{
|
|
int nmr_style; /* Style for rectangle. */
|
|
Rect nmr_area; /* Rectangle's area. */
|
|
} NetRect;
|
|
|
|
/* Button action procedures: */
|
|
|
|
extern void NMGetLabels();
|
|
extern void NMNextLabel();
|
|
extern void NMPrevLabel();
|
|
extern void NMChangeNum();
|
|
extern void NMPutLabel();
|
|
extern void NMReOrientLabel();
|
|
extern void NMSwitchHandler();
|
|
extern void NMButtonNetList();
|
|
extern void NMButtonDisconnect();
|
|
extern void NMButtonPrint();
|
|
extern void NMFindLabel();
|
|
extern void NMButtonProc();
|
|
|
|
/* Command routines: */
|
|
|
|
extern void NMCmdAdd(), NMCmdCleanup(), NMCmdCull(), NMCmdDnet(),
|
|
NMCmdDterm(), NMCmdExtract(), NMCmdFindLabels(), NMCmdFlush(),
|
|
NMCmdJoinNets(),
|
|
#ifdef ROUTE_MODULE
|
|
NMCmdMeasure(),
|
|
#endif
|
|
NMCmdNetlist(), NMCmdPrint(), NMCmdPushButton(), NMCmdRipup(),
|
|
NMCmdSavenetlist(), NMCmdShownet(), NMCmdShowterms(),
|
|
NMCmdTrace(), NMCmdVerify(), NMCmdWriteall();
|
|
|
|
extern NetButton NMButtons[];
|
|
extern MagWindow *NMWindow;
|
|
|
|
extern void NMAddPoint();
|
|
extern void NMDeletePoint();
|
|
extern void NMClearPoints();
|
|
extern void NMUpdatePoints();
|
|
extern int NMRedrawPoints();
|
|
|
|
extern int NMRedrawCell();
|
|
extern void NMShowCell();
|
|
extern void NMUnsetCell();
|
|
extern void NMShowUnderBox();
|
|
extern int NMShowRoutedNet();
|
|
extern void NMShowLabel();
|
|
|
|
extern int NMRipup();
|
|
extern int NMRipupList();
|
|
extern int NMExtract();
|
|
extern void NMSelectNet();
|
|
|
|
extern bool NMCheckWritten();
|
|
extern void NMWriteAll();
|
|
|
|
extern void NMUndo();
|
|
extern void NMUndoInit();
|
|
|
|
/* C99 compat */
|
|
extern void NMMeasureNet();
|
|
extern int NMcommand();
|
|
extern int NMredisplay();
|
|
extern int NMCull();
|
|
extern bool CmdParseLayers();
|
|
extern int NMredisplay();
|
|
extern int NMEnumTerms();
|
|
|
|
/* Various global variables (within this module): */
|
|
|
|
extern char * NMCurNetName;
|
|
|
|
#define NMLabelButton (NMButtons[0])
|
|
#define NMNum1Button (NMButtons[2])
|
|
#define NMNum2Button (NMButtons[3])
|
|
#define NMNetListButton (NMButtons[5])
|
|
|
|
/* Arguments for the routine NMUndo: */
|
|
|
|
#define NMUE_ADD 1
|
|
#define NMUE_REMOVE 2
|
|
#define NMUE_SELECT 3
|
|
#define NMUE_NETLIST 4
|
|
|
|
#endif /* _MAGIC__NETMENU__NMINT_H */
|