Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ADDRDSRECWINDOW(3)	    RDS	PHYSICAL FUNCTIONS	    ADDRDSRECWINDOW(3)

NAME
       addrdsrecwindow - adds a	rectangle in the windowing of rds structure.

SYNOPSYS
       #include	"rwinnn.h"
	void addrdsrecwindow( Rectangle, RdsWindow )
	   rdsrec_list *Rectangle;
	   rdswindow   *RdsWindow;

PARAMETER
       Rectangle	   The rectangle to add	to the windowing.

       RdsWindow	   The	head of	the windowing which has	to contain the
			   rectangle.

DESCRIPTION
       The addrdsrecwindow function inserts a rdsrec_list rectangle  structure
       in the windowing	of the rds structure. The rectangle is added in	one or
       many windows of the table (it depends on	 his  dimensions).  The	 field
       'USER'  of  the rectangle is used to point to the list of windows which
       contains	the rectangle. So, the field 'USER' has	 to  be	 saved	in  an
       added  structure	 to  the rdsrec_list structure if librfm functions are
       used because somes use the field	'USER' to link rectangles (see	librds
       about field 'USER').

       Note   If the rectangle is contained in only one	window,	then the field
	      'USER' points to a "rdswin_list" window structure.
	      If the rectangle is contained in many windows, the field	'USER'
	      points  to  a  "rdsrecwin_list"  structure which is a list which
	      contains windows.

       To know if a rectangle belongs to one or	many windows,  use  the	 macro
       IsRdsOneWindow defined in librwi.

RETURN VALUE
       none

ERRORS
       "Rds202:	rdsalloc error,	can't continue !"
	      it's impossible to allocate the memory size desired

EXAMPLE
	       #include	"mutnnn.h"
	       #include	"rdsnnn.h"
	       #include	"rwinnn.h"
	       #include	"rtlnnn.h"
	       # define	POINTER_LINKREC(R)				 \
									 \
		 (((UserStruct *)((char	*)(R)+sizeof(rdsrec_list)))->LINKREC )
	       typedef struct UserStruct
		 {
		   void	*LINKREC;
		 } UserStruct;
	       main()
		 {
		   rdsfig_list *Figure;
		   rdsrec_list *Rectangle;
		   rdswindow *RdsWindow;
		   rdswin_list *ScanWin;
		   rdsrecwin_list *ScanRecWin;
		    mbkenv();
		    rdsenv();
		    loadrdsparam();
		    Figure = addrdsfig(	"core",sizeof (	UserStruct ) );
		    Rectangle =
		      addrdsfigrec(Figure,"Alu1",RDS_ALU1,2,4,5,1);
		    /* Using the field 'USER' */
		    Rectangle->USER = Rectangle;
		   . . . .
		   RdsWindow = allocrdswindow();
		   RdsWindow->XMIN = -200;
		   RdsWindow->YMIN = -200;
		   RdsWindow->XMAX =  200;
		   RdsWindow->YMAX =  200;
		   RdsWindow->DX   =  4;
		   RdsWindow->DY   =  4;
		   RdsWindow->SIDE =  100;
		   RdsWindow->SIZE =  RdsWindow->DX * RdsWindow->DY ;
		   RdsWindow->WINTAB = allocrdswin( RdsWindow->SIZE );
		   /* Save the field 'USER' of the rectangle */
		   POINTER_LINKREC(Rectangle) =	Rectangle->USER;
		   /* */ addrdsrecwindow( Rectangle, RdsWindow );
		   /* windows associated to a rectangle	are pointed by the
		      field 'USER' of the rectangle */
		   /* getting windows (pointer *ScanWin) of a rectangle	*/
		   if (	IsRdsOneWindow(Rectangle) )
		    {
		      ScanWin =	(rdswin_list *)	Rectangle->USER;
		    }
		   else
		    {
		      ScanRecWin = Rectangle->USER;
		      while ( ScanRecWin != NULL )
		       {
			 ScanWin = (rdswin_list	*) (ScanRecWin)->WINDOW;
			 ScanRecWin = ScanRecWin->NEXT;
		       }
		    }
		   . . .
		 }

SEE ALSO
       librwi, delrdsrecwindow

ASIM/LIP6			October	1, 1997		    ADDRDSRECWINDOW(3)

NAME | SYNOPSYS | PARAMETER | DESCRIPTION | RETURN VALUE | ERRORS | EXAMPLE | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=addrdsrecwindow&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help