SIMPLE SOLUTIONS

ADDRDSRECWINDOW(3) - Linux man page online | Library functions

Adds a rectangle in the windowing of rds structure.

Chapter
October 1, 1997
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 win‐ dows which contains the rectangle. So, the field ´USER´ has to be saved in an added struc‐ ture 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)
Download raw manual
Main page RDS PHYSICAL FUNCTIONS (+54) ASIM/LIP6 (+480) № 3 (+68044)
Go top