/* -*- tab-width: 4 -*- * * Electric(tm) VLSI Design System * * File: usr.h * User interface tool: header file * Written by: Steven M. Rubin, Static Free Software * * Copyright (c) 2000 Static Free Software. * * Electric(tm) is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * Electric(tm) is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Electric(tm); see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, Mass 02111-1307, USA. * * Static Free Software * 4119 Alpine Road * Portola Valley, California 94028 * info@staticfreesoft.com */ #if defined(__cplusplus) && !defined(ALLCPLUSPLUS) extern "C" { #endif /******************** CONSTANTS ********************/ /* the meaning of NODEINST->userbits: (other bit (0137400177) used globally) */ #define KILLN 0200 /* if on, this nodeinst is marked for death */ #define REWANTN 0400 /* nodeinst re-drawing is scheduled */ #define RELOCLN 01000 /* only local nodeinst re-drawing desired */ #define RETDONN 02000 /* transparent nodeinst re-draw is done */ #define REODONN 04000 /* opaque nodeinst re-draw is done */ #define NODEFLAGBIT 010000 /* general flag used in spreading and highlighting */ #define WANTEXP 020000 /* if on, nodeinst wants to be (un)expanded */ #define TEMPFLG 040000 /* temporary flag for nodeinst display */ #define HARDSELECTN 0100000 /* set if hard to select */ #define NVISIBLEINSIDE 040000000 /* set if node only visible inside cell */ /* the meaning of ARCINST->userbits: (bits 0-1, 4-24 (0177777763) used globally) */ #define KILLA 0200000000 /* if on, this arcinst is marked for death */ #define REWANTA 0400000000 /* arcinst re-drawing is scheduled */ #define RELOCLA 01000000000 /* only local arcinst re-drawing desired */ #define RETDONA 02000000000 /* transparent arcinst re-draw is done */ #define REODONA 04000000000 /* opaque arcinst re-draw is done */ #define ARCFLAGBIT 010000000000 /* general flag used in spreading and highlighting */ #define HARDSELECTA 020000000000 /* set if hard to select */ /* the meaning of NODEPROTO->userbits: (bits 0-23 (077777777) used globally) */ #define NHASOPA 0100000000 /* set if prototype has opaque graphics */ #define NFIRSTOPA 017600000000 /* index of first opaque layer (if any) */ #define NFIRSTOPASH 25 /* right shift of NFIRSTOPA */ #define NINVISIBLE 020000000000 /* set if primitive is invisible */ /* the meaning of ARCPROTO->userbits: (bits 0-22,31 (020037777777) used globally) */ #define CANCONNECT 040000000 /* temporary for finding port connections */ #define AHASOPA 0100000000 /* set if prototype has opaque graphics */ #define AFIRSTOPA 07600000000 /* index of first opaque layer (if any) */ #define AINVISIBLE 010000000000 /* set if arc is invisible */ #define AFIRSTOPASH 25 /* right shift of AFIRSTOPA */ /* the meaning of PORTPROTO->userbits: (bits 0-31 used globally) */ /* the meaning of "us_tool->toolstate" (bits 0-6 (0177) used globally) */ #define NOKEYLOCK 0200000 /* set to ignore key lockout after errors */ #define JUSTTHEFACTS 0400000 /* set to print only informative messages */ #define NODETAILS 01000000 /* set to make no mention of specific commands */ #define USEDIALOGS 02000000 /* set to use dialogs where appropriate */ #define ONESHOTMENU 04000000 /* set to have fixed menus highlight in one-shot mode */ #define INTERACTIVE 010000000 /* set if cursor commands drag */ #define INTEGRAL 020000000 /* set if windows must be integral pixels */ #define ECHOBIND 040000000 /* set to echo bound commands in full */ #define MENUON 0100000000 /* set if menu is on */ #define SHOWXY 0200000000 /* set to display cursor rather than TECH/LAMBDA */ #define TTYAUDIT 0400000000 /* set to log messages window */ #define TERMBEEP 01000000000 /* set to enable terminal beep */ #define TERMNOINTERRUPT 02000000000 /* set to disable interrupts */ /* the meaning of "tool:user.USER_optionflags" */ #define NOTEXTSELECT 01 /* set to disable selection of ALL text unless "special" option used */ #define DRAWTINYCELLS 02 /* clear to "hash-out" tiny cells */ #define CHECKDATE 04 /* set to check cell dates */ #define NOEXTRASOUND 010 /* set to disable extra sounds (like arc-creation clicks) */ #define NOPRIMCHANGES 020 /* set to lock lockable primitives */ #define PORTLABELS 0700 /* bits for port labels */ #define PORTLABELSSH 6 /* right shift for port labels */ #define PORTSFULL 0 /* ports as complete text */ #define PORTSCROSS 0100 /* ports drawn as crosses */ #define PORTSSHORT 0300 /* ports drawn as shortened text */ #define NOINSTANCESELECT 02000 /* set to disable selection of instances unless "special" option used */ #define NOMOVEAFTERDUP 04000 /* set to disable moving of objects after duplication */ #define DUPCOPIESPORTS 010000 /* set to have duplication/array/extract copy ports */ #define NO3DPERSPECTIVE 020000 /* set to turn off perspective in 3D view */ #define EXPANDEDDIALOGSDEF 040000 /* set to have expanded dialogs default to expanded */ #define CENTEREDPRIMITIVES 0100000 /* set to place primitives by centers */ #define AUTOSWITCHTECHNOLOGY 0200000 /* set to switch technology when cell changes */ #define EXPORTLABELS 01400000 /* bits for export labels */ #define EXPORTLABELSSH 17 /* right shift for export labels */ #define EXPORTSFULL 0 /* exports drawn as complete text */ #define EXPORTSCROSS 0400000 /* exports drawn as crosses */ #define EXPORTSSHORT 01400000 /* exports drawn as shortened text */ #define MOVENODEWITHEXPORT 02000000 /* move node when export text is moved */ #define NODATEORVERSION 04000000 /* set to supress date/version in output files */ #define BEEPAFTERLONGJOB 010000000 /* set to beep after a long job */ #define CELLCENTERALWAYS 020000000 /* set to place cell-center in new cells */ #define MUSTENCLOSEALL 040000000 /* set to force area-selection to completely enclose objects */ #define HIDETXTNODE 0100000000 /* set to supress node text */ #define HIDETXTARC 0200000000 /* set to supress arc text */ #define HIDETXTPORT 0400000000 /* set to supress port text */ #define HIDETXTEXPORT 01000000000 /* set to supress export text */ #define HIDETXTNONLAY 02000000000 /* set to supress nonlayout text */ #define HIDETXTINSTNAME 04000000000 /* set to supress instance name text */ #define HIDETXTCELL 010000000000 /* set to supress cell text */ #define NOPROMPTBEFOREWRITE 020000000000 /* set to disable file name dialog before writing output files */ /* the meaning of "JAVA_flags" on the user tool object */ #define JAVANOCOMPILER 1 /* disable compiler */ #define JAVANOEVALUATE 2 /* do not evaluate code */ #define JAVAUSEJOSE 4 /* Use Jose */ /* special keys */ #define CTRLCKEY 03 /* the Control-C key */ #define CTRLDKEY 04 /* the Control-D key */ #define BACKSPACEKEY 010 /* the BACKSPACE key */ #define TABKEY 011 /* the TAB key */ #define ESCKEY 033 /* the Escape key */ #define DELETEKEY 0177 /* the DELETE key */ /* the O/S capabilities */ #define CANLOGINPUT 01 /* can log input for playback */ #define CANUSEFRAMES 02 /* can display multiple window frames */ #define CANSHOWPOPUP 04 /* can display popup menus */ #define CANRUNPROCESS 010 /* can run subprocesses (fork and exec) */ #define CANHAVENOWINDOWS 020 /* can exist with no edit windows */ #define CANSTATUSPERFRAME 040 /* can put separate status info in each frame */ #define CANCHOOSEFACES 0100 /* can choose alternate type faces */ #define CANMODIFYFONTS 0200 /* can modify fonts with italic, bold, etc. */ #define CANSCALEFONTS 0400 /* can scale fonts smoothly */ #define CANDOTHREADS 01000 /* can handle threads */ #define CANHAVEQUITCOMMAND 02000 /* can have quit command in menu */ /* the icon styles (in tool:user.USER_icon_style) */ #define ICONSTYLESIDEIN 03 /* side number for input ports ( */ #define ICONSTYLESIDEINSH 0 /* shift for ICONSTYLESIDEIN */ #define ICONSTYLESIDEOUT 014 /* side number for input ports 0=left */ #define ICONSTYLESIDEOUTSH 2 /* shift for ICONSTYLESIDEOUT */ #define ICONSTYLESIDEBIDIR 060 /* side number for input ports 1=right */ #define ICONSTYLESIDEBIDIRSH 4 /* shift for ICONSTYLESIDEBIDIR */ #define ICONSTYLESIDEPOWER 0300 /* side number for input ports 2=top */ #define ICONSTYLESIDEPOWERSH 6 /* shift for ICONSTYLESIDEPOWER */ #define ICONSTYLESIDEGROUND 01400 /* side number for input ports 3=bottom */ #define ICONSTYLESIDEGROUNDSH 8 /* shift for ICONSTYLESIDEGROUND */ #define ICONSTYLESIDECLOCK 06000 /* side number for input ports ) */ #define ICONSTYLESIDECLOCKSH 10 /* shift for ICONSTYLESIDECLOCK */ #define ICONSTYLEPORTLOC 0140000 /* location of ports */ #define ICONSTYLEPORTLOCSH 14 /* shift for ICONSTYLEPORTLOC */ #define ICONSTYLEPORTSTYLE 0600000 /* style of port text */ #define ICONSTYLEPORTSTYLESH 16 /* shift for ICONSTYLEPORTSTYLE */ #define ICONSTYLEDRAWNOLEADS 01000000 /* nonzero to remove leads */ #define ICONSTYLEDRAWNOBODY 02000000 /* nonzero to remove body */ #define ICONSTYLETECH 014000000 /* technology of ports 0=generic, 1=schematic */ #define ICONSTYLETECHSH 20 /* shift for ICONSTYLETECH */ #define ICONINSTLOC 060000000 /* instance location */ #define ICONINSTLOCSH 22 /* shift for ICONINSTLOC */ #define ICONSTYLEREVEXPORT 0100000000 /* nonzero to reverse export order */ #define ICONSTYLEDEFAULT (0<