#include "bcg.h"Include dependency graph for periX11.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Functions | |
| void | XDroutine (int npts) |
| void C2F() | drawarc (char *str, integer *x, integer *y, integer *width, integer *height, integer *angle1, integer *angle2, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | fillarcs (char *str, integer *vects, integer *fillvect, integer *n, integer *v5, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | drawarcs (char *str, integer *vects, integer *style, integer *n, integer *v5, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | fillpolyline (char *str, integer *n, integer *vx, integer *vy, integer *closeflag, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | drawaxis (char *str, integer *alpha, integer *nsteps, integer *v2, integer *initpoint, integer *v6, integer *v7, double *size, double *dx2, double *dx3, double *dx4) |
| void C2F() | cleararea (char *str, integer *x, integer *y, integer *w, integer *h, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | clearwindow (char *v1, integer *v2, integer *v3, integer *v4, integer *v5, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | xclick (char *str, integer *ibutton, integer *x1, integer *yy1, integer *iflag, integer *istr, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | xclick_any (char *str, integer *ibutton, integer *x1, integer *yy1, integer *iwin, integer *iflag, integer *istr, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | xgetmouse (char *str, integer *ibutton, integer *x1, integer *yy1, integer *iflag, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | xend (char *v1, integer *v2, integer *v3, integer *v4, integer *v5, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | fillarc (char *str, integer *x, integer *y, integer *width, integer *height, integer *angle1, integer *angle2, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | viderbuff () |
| void C2F() | fillrectangle (char *str, integer *x, integer *y, integer *width, integer *height, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | MissileGCget (char *str, integer *verbose, integer *x1, integer *x2, integer *x3, integer *x4, integer *x5, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | initgraphic (char *string, integer *v2, integer *v3, integer *v4, integer *v5, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | drawpolyline (char *str, integer *n, integer *vx, integer *vy, integer *closeflag, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | drawClippedPolyline (char *str, integer *n, integer *vx, integer *vy, integer *closeflag, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | fillpolylines (char *str, integer *vectsx, integer *vectsy, integer *fillvect, integer *n, integer *p, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | drawpolylines (char *str, integer *vectsx, integer *vectsy, integer *drawvect, integer *n, integer *p, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | drawpolymark (char *str, integer *n, integer *vx, integer *vy, integer *v5, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | getFontMaxSize (char *str, integer *sizeMin, integer *sizeMax, integer *v1, integer *v2, integer *v3, integer *v4, double *dx1, double *dx2, double *dx3, double *dx4) |
| void C2F() | displaynumbers (char *str, integer *x, integer *y, integer *v1, integer *v2, integer *n, integer *flag, double *z, double *alpha, double *dx3, double *dx4) |
| void C2F() | drawrectangle (char *str, integer *x, integer *y, integer *width, integer *height, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | drawrectangles (char *str, integer *vects, integer *fillvect, integer *n, integer *v5, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | drawsegments (char *str, integer *vx, integer *vy, integer *n, integer *style, integer *iflag, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | xselgraphic (char *v1, integer *v2, integer *v3, integer *v4, integer *v5, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | MissileGCset (char *str, integer *x1, integer *x2, integer *x3, integer *x4, integer *x5, integer *x6, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | SetDriver () |
| void C2F() | displaystring (char *string, integer *x, integer *y, integer *v1, integer *flag, integer *v6, integer *v7, double *angle, double *dv2, double *dv3, double *dv4) |
| void C2F() | boundingbox (char *string, integer *x, integer *y, integer *rect, integer *v5, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | drawarrows (char *str, integer *vx, integer *vy, integer *n, integer *as, integer *style, integer *iflag, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | loadfamily (char *name, integer *j, integer *v3, integer *v4, integer *v5, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | queryfamily (char *name, integer *j, integer *v3, integer *v4, integer *v5, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | xinfo (char *message, integer *v2, integer *v3, integer *v4, integer *v5, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4) |
| void C2F() | setpopupname (char *x0, integer *v2, integer *v3, integer *v4, integer *v5, integer *v6, integer *v7, double *dv1, double *dv2, double *dv3, double *dv4, integer lx0) |
| void | deletePoints (void) |
| void | set_clip_box (integer xxleft, integer xxright, integer yybot, integer yytop) |
| void | clip_line (integer x1, integer yy1, integer x2, integer y2, integer *x1n, integer *yy1n, integer *x2n, integer *y2n, integer *flag) |
| int | CheckColormap (int *m) |
| void | getcolordef (integer *screenc) |
| void | setcolordef (int screenc) |
| void | get_r (int i, float *r) |
| void | get_g (int i, float *g) |
| void | get_b (int i, float *b) |
| void C2F() | getwindowdim (integer *verbose, integer *x, integer *narg, double *dummy) |
| int C2F() | sedeco (int *flag) |
| void | CPixmapResize1 (void) |
| void | SwitchWindow (integer *intnum) |
| int C2F() | store_points (integer n, integer *vx, integer *vy, integer onemore) |
| void C2F() boundingbox | ( | char * | string, | |
| integer * | x, | |||
| integer * | y, | |||
| integer * | rect, | |||
| integer * | v5, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
To get the bounding rectangle of a string
text mode is supposed to be bottom
Definition at line 2957 of file periWin.c.
References dir, BCG::FontXID, and ScilabXgc.
02961 { 02962 SIZE size ; 02964 GetTextExtentPoint32(hdc,(LPCTSTR)string,(int)strlen(string),&size); 02965 rect[0]= *x ; 02966 rect[1]= *y - size.cy ; 02967 rect[2]= size.cx; 02968 rect[3]= size.cy; 02969 }
Definition at line 2532 of file periWin.c.
References BCG::CmapFlag, BCG::Numcolors, and ScilabXgc.
02534 { 02535 if ( ScilabXgc != (struct BCG *) 0 ) 02536 { 02537 *m = ScilabXgc->Numcolors; 02538 if ( ScilabXgc->CmapFlag != 1) 02539 return 1; 02540 else 02541 return 0; 02542 } 02543 else { 02544 *m=0; 02545 return(0);} 02546 }
| void C2F() cleararea | ( | char * | str, | |
| integer * | x, | |||
| integer * | y, | |||
| integer * | w, | |||
| integer * | h, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
Definition at line 977 of file periWin.c.
References BCG::Cdrawable, PixmapClear(), and ScilabXgc.
00989 { 00990 HBRUSH hBrush; 00991 RECT rect; 00992 static COLORREF px; 00993 px = (ScilabXgc->Colors == NULL)? DefaultBackground 00994 : ScilabXgc->Colors[ScilabXgc->NumBackground]; 00995 SetRect(&rect,(int) *x,(int) *y,(int) *x+*w,(int) *y+*h); 00997 hBrush = CreateSolidBrush(px); 00998 FillRect(hdc, &rect,hBrush ); 00999 DeleteObject(hBrush); 01002 }
Here is the call graph for this function:

| void C2F() clearwindow | ( | char * | v1, | |
| integer * | v2, | |||
| integer * | v3, | |||
| integer * | v4, | |||
| integer * | v5, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
Clear the current graphic window
verifier ce qui se passe si on est en Xor ? XXXXXXXX
Definition at line 589 of file periWin.c.
References BCG::Cdrawable, BCG::CWindow, PI0, ScilabXgc, and xset_pixmapclear().
00593 { 00594 RECT rect; 00595 static COLORREF px; 00596 HBRUSH hBrush; 00597 if ( ScilabXgc->ClipRegionSet == 1) 00598 SelectClipRgn(hdc,NULL); 00599 if ( sciGetPixmapStatus() == 1) 00600 { 00601 C2F(pixmapclear)(PI0,PI0,PI0,PI0); 00602 C2F(show)(PI0,PI0,PI0,PI0); 00603 } 00604 else 00605 { 00606 px = (ScilabXgc->Colors == NULL)? DefaultBackground 00607 : ScilabXgc->Colors[ScilabXgc->NumBackground]; 00608 SetBkColor(hdc, px ); 00609 GetClientRect(ScilabXgc->CWindow, &rect); 00611 hBrush = CreateSolidBrush(px); 00612 /* on met a jour la couleur de fond */ 00613 rect.top = 0; 00614 rect.left = 0; 00615 rect.right = ScilabXgc->CWindowWidth; 00616 rect.bottom = ScilabXgc->CWindowHeight; 00617 FillRect(hdc, &rect,hBrush ); 00618 DeleteObject(hBrush); 00619 } 00620 /* reset the clip region using current data */ 00621 set_current_clip (); 00622 00623 RefreshGraphToolBar(ScilabXgc); 00624 00625 }
Here is the call graph for this function:

| void clip_line | ( | integer | x1, | |
| integer | yy1, | |||
| integer | x2, | |||
| integer | y2, | |||
| integer * | x1n, | |||
| integer * | yy1n, | |||
| integer * | x2n, | |||
| integer * | y2n, | |||
| integer * | flag | |||
| ) |
Definition at line 4728 of file periWin.c.
References clip_point(), count, dx, and dy.
04737 { 04738 integer x, y, dx, dy, x_intr[2], y_intr[2], count, pos1, pos2; 04739 04740 *x1n=x1; *yy1n=yy1; *x2n=x2; *y2n=y2; *flag=4; 04741 pos1 = clip_point(x1, yy1); 04742 pos2 = clip_point(x2, y2); 04743 if (pos1 || pos2) { 04744 if (pos1 & pos2) { *flag=0;return;} 04745 /* segment is totally out. */ 04746 04747 /* Here part of the segment MAy be inside. test the intersection 04748 * of this segment with the 4 boundaries for hopefully 2 intersections 04749 * in. If non found segment is totaly out. 04750 */ 04751 count = 0; 04752 dx = x2 - x1; 04753 dy = y2 - yy1; 04754 04755 /* Find intersections with the x parallel bbox lines: */ 04756 if (dy != 0) { 04757 x = (int) ((ybot - y2) * ((double) dx / (double) dy) + x2); 04758 /* Test for ybot boundary. */ 04759 if (x >= xleft && x <= xright) { 04760 x_intr[count] = x; 04761 y_intr[count++] = ybot; 04762 } 04763 x = (int) ((ytop - y2) * ((double) dx / (double) dy) + x2); 04764 /* Test for ytop boundary. */ 04765 if (x >= xleft && x <= xright) { 04766 x_intr[count] = x; 04767 y_intr[count++] = ytop; 04768 } 04769 } 04770 if ( count < 2 ) 04771 { 04772 /* Find intersections with the y parallel bbox lines: */ 04773 if (dx != 0) { 04774 y = (int) ((xleft - x2) * ((double) dy / (double) dx) + y2); 04775 /* Test for xleft boundary. */ 04776 if (y >= ybot && y <= ytop) { 04777 x_intr[count] = xleft; 04778 y_intr[count++] = y; 04779 } 04780 if ( count < 2 ) 04781 { 04782 y = (int) ((xright - x2) * ((double) dy / (double) dx) + y2); 04783 /* Test for xright boundary. */ 04784 if (y >= ybot && y <= ytop) { 04785 x_intr[count] = xright; 04786 y_intr[count++] = y; 04787 } 04788 } 04789 } 04790 } 04791 04792 if (count == 2) { 04793 if (pos1 && pos2) { /* Both were out - update both */ 04794 *x1n = x_intr[0]; 04795 *yy1n = y_intr[0]; 04796 *x2n = x_intr[1]; 04797 *y2n = y_intr[1]; 04798 *flag=3;return; 04799 } 04800 else if (pos1) { /* Only x1/yy1 was out - update only it */ 04801 if (dx * (x2 - x_intr[0]) + dy * (y2 - y_intr[0]) >= 0) { 04802 *x1n = x_intr[0]; 04803 *yy1n = y_intr[0]; 04804 *flag=1;return; 04805 } 04806 else { 04807 *x1n = x_intr[1]; 04808 *yy1n = y_intr[1]; 04809 *flag=1;return; 04810 } 04811 } 04812 else { /* Only x2/y2 was out - update only it */ 04813 if (dx * (x_intr[0] - x1) + dy * (y_intr[0] - yy1) >= 0) { 04814 *x2n = x_intr[0]; 04815 *y2n = y_intr[0]; 04816 *flag=2;return; 04817 } 04818 else { 04819 *x2n = x_intr[1]; 04820 *y2n = y_intr[1]; 04821 *flag=2;return; 04822 } 04823 } 04824 } 04825 else 04826 { 04827 /* count != 0 */ 04828 *flag=0;return; 04829 } 04830 } 04831 }
Here is the call graph for this function:

| void CPixmapResize1 | ( | void | ) |
Definition at line 531 of file periWin.c.
References BCG::Cdrawable, CPixmapResize(), BCG::CWindow, and ScilabXgc.
00532 { 00533 if ( sciGetPixmapStatus() == 1 ) 00534 sci_pixmap_resize(ScilabXgc,ScilabXgc->CWindowWidth,ScilabXgc->CWindowHeight); 00535 }
Here is the call graph for this function:

| void deletePoints | ( | void | ) |
| void C2F() displaynumbers | ( | char * | str, | |
| integer * | x, | |||
| integer * | y, | |||
| integer * | v1, | |||
| integer * | v2, | |||
| integer * | n, | |||
| integer * | flag, | |||
| double * | z, | |||
| double * | alpha, | |||
| double * | dx3, | |||
| double * | dx4 | |||
| ) |
Definition at line 4249 of file periWin.c.
References buf, C2F, BCG::CurNumberDispFormat, displaystring(), i, PD0, PI0, and ScilabXgc.
04261 { 04262 char buf[20]; 04263 integer i ; 04264 for (i=0 ; i< *n ; i++) 04265 { 04266 sprintf(buf,ScilabXgc->CurNumberDispFormat,z[i]); 04267 C2F(displaystring)(buf,&(x[i]),&(y[i]),PI0,flag,PI0,PI0,&(alpha[i]),PD0,PD0,PD0) ; 04268 } 04269 }
Here is the call graph for this function:

| void C2F() displaystring | ( | char * | string, | |
| integer * | x, | |||
| integer * | y, | |||
| integer * | v1, | |||
| integer * | flag, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | angle, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
Definition at line 2744 of file periWin.c.
References Abs, C2F, BCG::Cdrawable, BCG::CurPixmapStatus, BCG::CWindow, dir, DispStringAngle(), drawrectangle(), BCG::FontXID, PD0, PI0, and ScilabXgc.
02748 { 02749 if ( Abs(*angle) <= 0.1) 02750 { 02751 if ( ScilabXgc->CurDrawFunction == GXxor ) 02752 { 02753 SIZE size ; 02754 GetTextExtentPoint32(hdc,string,strlen(string),&size); 02755 XorString(*x,*y,string,size.cx,size.cy); 02756 } 02757 else 02758 { 02759 SetBkMode(hdc, TRANSPARENT); 02760 TextOut(hdc,(int) *x,(int) *y,string,strlen(string)); 02761 SetBkMode(hdc, OPAQUE); 02762 } 02763 if ( *flag == 1) 02764 { 02765 integer rect[4]; 02766 C2F(boundingbox)(string,x,y,rect,PI0,PI0,PI0,PD0,PD0,PD0,PD0); 02767 C2F(drawrectangle)(string,rect,rect+1,rect+2,rect+3,PI0,PI0,PD0,PD0,PD0,PD0); 02768 } 02769 } 02770 else 02771 { 02772 C2F(DispStringAngle)(x,y,string,angle); 02773 } 02774 }
Here is the call graph for this function:

| void C2F() drawarc | ( | char * | str, | |
| integer * | x, | |||
| integer * | y, | |||
| integer * | width, | |||
| integer * | height, | |||
| integer * | angle1, | |||
| integer * | angle2, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
Draw a single ellipsis or part of it
Ellipse(hdc,(int) *x,(int) *y,(int) *width + *x ,(int) *height + *y );
180*64
Definition at line 3357 of file periWin.c.
References BCG::Cdrawable, BCG::CurPixmapStatus, BCG::CWindow, and ScilabXgc.
03361 { 03362 int xmid= *x + *width/2; 03363 int ymid= *y + *height/2; 03364 int lg= Max(*width,*height); 03365 SelectObject(hdc,GetStockObject(NULL_BRUSH)); 03367 Arc(hdc,(int) *x,(int) *y,(int) *width + *x ,(int) *height + *y, 03368 xmid + (int) (lg*cos(*angle1*M_PI/11520.00)), 03369 ymid - (int) (lg*sin(*angle1*M_PI/11520.00)), 03370 xmid + (int) (lg*cos((*angle1+*angle2)*M_PI/11520.00)), 03371 ymid - (int)(lg*sin((*angle1+*angle2)*M_PI/11520.00))); 03372 if ( ScilabXgc->hBrush != (HBRUSH) 0) SelectObject(hdc,ScilabXgc->hBrush); 03373 }
| void C2F() drawarcs | ( | char * | str, | |
| integer * | vects, | |||
| integer * | style, | |||
| integer * | n, | |||
| integer * | v5, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
caution : angle=degreangle*64
Definition at line 3328 of file periWin.c.
References C2F, drawarc(), i, PD0, PI0, xget_dash_and_color(), xset_dash_and_color(), and xset_line_style().
03340 { 03341 integer verbose=0,Dnarg,Dvalue[10],NDvalue,i; 03342 /* store the current values */ 03343 C2F(get_dash_and_color)(&verbose,Dvalue,&Dnarg,vdouble); 03344 for (i=0 ; i< *n ; i++) 03345 { 03346 NDvalue = style[i]; 03347 C2F(set_line_style)(&NDvalue,PI0,PI0,PI0); 03348 C2F(drawarc)(str,vects+6*i,vects+6*i+1, 03349 vects+6*i+2,vects+6*i+3, 03350 vects+6*i+4,vects+6*i+5,PD0,PD0,PD0,PD0); 03351 } 03352 C2F(set_dash_and_color)( Dvalue,PI0,PI0,PI0); 03353 }
Here is the call graph for this function:

| void C2F() drawarrows | ( | char * | str, | |
| integer * | vx, | |||
| integer * | vy, | |||
| integer * | n, | |||
| integer * | as, | |||
| integer * | style, | |||
| integer * | iflag, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
as is 10*arsize (arsize) the size of the arrow head in pixels
Definition at line 3037 of file periWin.c.
References Abs, C2F, BCG::Cdrawable, BCG::CurPixmapStatus, BCG::CWindow, dx, dy, fillpolylines(), i, inint, M_PI, p, PD0, PI0, ScilabXgc, SMDOUBLE, xget_dash_and_color(), xset_dash_and_color(), and xset_line_style().
03049 { 03050 integer verbose=0,Dnarg,Dvalue[10],NDvalue,i; 03051 double cos20=cos(20.0*M_PI/180.0); 03052 double sin20=sin(20.0*M_PI/180.0); 03053 integer polyx[4],polyy[4]; 03054 C2F(get_dash_and_color)(&verbose,Dvalue,&Dnarg,vdouble); 03055 for (i=0 ; i < *n/2 ; i++) 03056 { 03057 double dx,dy,norm; 03058 if ( (int) *iflag == 1) 03059 NDvalue = style[i]; 03060 else 03061 NDvalue=(*style < 1) ? Dvalue[0] : *style; 03062 C2F(set_line_style)(&NDvalue,PI0,PI0,PI0); 03063 03064 dx=( vx[2*i+1]-vx[2*i]); 03065 dy=( vy[2*i+1]-vy[2*i]); 03066 norm = sqrt(dx*dx+dy*dy); 03067 if ( Abs(norm) > SMDOUBLE ) 03068 { integer nn=1,p=3; 03069 dx=(*as/10.0)*dx/norm;dy=(*as/10.0)*dy/norm; 03070 polyx[0]= polyx[3]=vx[2*i+1];/* correction bug 607 (bruno 18 nov 2004) */ 03071 polyx[1]= inint(polyx[0] - cos20*dx -sin20*dy ); 03072 polyx[2]= inint(polyx[0] - cos20*dx + sin20*dy); 03073 polyy[0]= polyy[3]=vy[2*i+1];/* correction bug 607 (bruno 18 nov 2004) */ 03074 polyy[1]= inint(polyy[0] + sin20*dx -cos20*dy) ; 03075 polyy[2]= inint(polyy[0] - sin20*dx - cos20*dy) ; 03076 C2F(fillpolylines)("v",polyx,polyy,&NDvalue, &nn,&p,PI0,PD0,PD0,PD0,PD0); 03077 } 03078 MoveToEx(hdc,(int) vx[2*i],(int) vy[2*i],NULL); 03079 LineTo(hdc,(int) (vx[2*i+1]-dx*cos20),(int) (vy[2*i+1]-dy*cos20)); 03080 03081 03082 } 03083 C2F(set_dash_and_color)( Dvalue,PI0,PI0,PI0); 03084 }
Here is the call graph for this function:

| void C2F() drawaxis | ( | char * | str, | |
| integer * | alpha, | |||
| integer * | nsteps, | |||
| integer * | v2, | |||
| integer * | initpoint, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | size, | |||
| double * | dx2, | |||
| double * | dx3, | |||
| double * | dx4 | |||
| ) |
Definition at line 4186 of file periWin.c.
References BCG::Cdrawable, BCG::CurPixmapStatus, BCG::CWindow, i, inint, M_PI, ScilabXgc, xi, and yi.
04198 { integer i; 04199 double xi,yi,xf,yf; 04200 double cosal,sinal; 04201 cosal= cos( (double)M_PI * (*alpha)/180.0); 04202 sinal= sin( (double)M_PI * (*alpha)/180.0); 04203 for (i=0; i <= nsteps[0]*nsteps[1]; i++) 04204 { 04205 if ( ( i % nsteps[0]) != 0) 04206 { 04207 xi = initpoint[0]+i*size[0]*cosal; 04208 yi = initpoint[1]+i*size[0]*sinal; 04209 xf = xi - ( size[1]*sinal); 04210 yf = yi + ( size[1]*cosal); 04211 MoveToEx(hdc,inint(xi),inint(yi),NULL); 04212 LineTo(hdc,inint(xf),inint(yf)); 04213 } 04214 } 04215 for (i=0; i <= nsteps[1]; i++) 04216 { xi = initpoint[0]+i*nsteps[0]*size[0]*cosal; 04217 yi = initpoint[1]+i*nsteps[0]*size[0]*sinal; 04218 xf = xi - ( size[1]*size[2]*sinal); 04219 yf = yi + ( size[1]*size[2]*cosal); 04220 MoveToEx(hdc,inint(xi),inint(yi),NULL); 04221 LineTo(hdc,inint(xf),inint(yf)); 04222 } 04230 }
| void C2F() drawClippedPolyline | ( | char * | str, | |
| integer * | n, | |||
| integer * | vx, | |||
| integer * | vy, | |||
| integer * | closeflag, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
ths routine also perform clipping to avoid overflow
Definition at line 3506 of file periWin.c.
References analyze_points(), C2F, and n1.
03518 { 03519 integer n1; 03520 if (*closeflag == 1) n1 = *n+1;else n1= *n; 03521 if (n1 >= 2) 03522 { 03523 C2F(analyze_points)( *n, vx, vy, *closeflag ); 03524 } 03525 }
Here is the call graph for this function:

| void C2F() drawpolyline | ( | char * | str, | |
| integer * | n, | |||
| integer * | vx, | |||
| integer * | vy, | |||
| integer * | closeflag, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
n is the number of points of the polyline
Definition at line 3531 of file periWin.c.
References C2F, n1, store_points(), and XDroutine().
03543 { 03544 integer n1; 03545 if (*closeflag == 1) n1 = *n+1;else n1= *n; 03546 if (n1 >= 2) 03547 { 03548 if (C2F(store_points)(*n, vx, vy,*closeflag)) 03549 { 03550 Polyline(hdc,C2F(ReturnPoints)(),(int) n1); 03551 } 03552 } 03553 }
Here is the call graph for this function:

| void C2F() drawpolylines | ( | char * | str, | |
| integer * | vectsx, | |||
| integer * | vectsy, | |||
| integer * | drawvect, | |||
| integer * | n, | |||
| integer * | p, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
drawvect[i] < 0 use a line style for i
we use the markid : drawvect[i] : with current dash
we use the line-style number abs(drawvect[i])
back to default values
Definition at line 3401 of file periWin.c.
References C2F, close(), drawClippedPolyline(), drawpolymark(), i, PD0, PI0, xget_dash_and_color(), xget_mark(), xset_dash_and_color(), xset_line_style(), xset_mark(), and xset_pattern().
03413 { integer verbose=0 ,symb[2],Mnarg,Dnarg,Dvalue[10],NDvalue,i,close; 03414 /* store the current values */ 03415 C2F(xgetmark)(&verbose,symb,&Mnarg,vdouble); 03416 C2F(get_dash_and_color)(&verbose,Dvalue,&Dnarg,vdouble); 03417 for (i=0 ; i< *n ; i++) 03418 { 03419 if (drawvect[i] <= 0) 03420 { 03421 NDvalue = - drawvect[i] ; 03422 C2F(xsetmark)(&NDvalue,symb+1,PI0,PI0); 03423 C2F(setpattern)(Dvalue+6,PI0,PI0,PI0); 03424 03425 C2F(drawpolymark)(str,p,vectsx+(*p)*i,vectsy+(*p)*i,PI0,PI0,PI0,PD0,PD0,PD0,PD0); 03426 } 03427 else 03428 { 03429 C2F(set_line_style)(drawvect+i,PI0,PI0,PI0); 03430 close = 0; 03431 C2F(drawpolyline)(str,p,vectsx+(*p)*i,vectsy+(*p)*i,&close, 03432 PI0,PI0,PD0,PD0,PD0,PD0); 03433 } 03434 } 03436 C2F(set_dash_and_color)( Dvalue,PI0,PI0,PI0); 03437 C2F(xsetmark)(symb,symb+1,PI0,PI0); 03438 }
Here is the call graph for this function:

| void C2F() drawpolymark | ( | char * | str, | |
| integer * | n, | |||
| integer * | vx, | |||
| integer * | vy, | |||
| integer * | v5, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
by vx and vy (vx[i],vy[i])
the symbol font
Definition at line 3580 of file periWin.c.
References C2F, BCG::Cdrawable, CoordModeOrigin, BCG::CurHardSymb, BCG::CurHardSymbSize, BCG::CurPixmapStatus, BCG::CWindow, DrawMark(), BCG::FontId, BCG::FontSize, get_xpoints(), i, L, PI0, ScilabXgc, store_points(), XDrawPoints(), and xset_font().
03592 { 03593 if ( ScilabXgc->CurHardSymb == 0 ) 03594 { 03595 if (C2F(store_points)(*n, vx, vy,0L)) 03596 { 03597 XDrawPoints (hdc,C2F(ReturnPoints)(), *n); 03598 } 03599 } 03600 else 03601 { 03602 integer i,keepid,keepsize,hds; 03603 i=1; 03604 keepid = ScilabXgc->FontId; 03605 keepsize= ScilabXgc->FontSize; 03606 hds= ScilabXgc->CurHardSymbSize; 03607 C2F(xsetfont)(&i,&hds,PI0,PI0); 03608 for ( i=0; i< *n ;i++) DrawMark(hdc,vx+i,vy+i); 03609 C2F(xsetfont)(&keepid,&keepsize,PI0,PI0); 03610 } 03611 }
Here is the call graph for this function:

| void C2F() drawrectangle | ( | char * | str, | |
| integer * | x, | |||
| integer * | y, | |||
| integer * | width, | |||
| integer * | height, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
Draw one rectangle with current line style
Definition at line 3140 of file periWin.c.
References BCG::Cdrawable, BCG::CurPixmapStatus, BCG::CWindow, and ScilabXgc.
03152 { 03153 SelectObject(hdc,GetStockObject(NULL_BRUSH)); 03154 /* +1 added for correct 2d axis necessary !! **/ 03155 Rectangle(hdc,(int) *x,(int) *y,(int) *width+*x+1 ,(int) *height+*y+1); 03156 if ( ScilabXgc->hBrush != (HBRUSH) 0) 03157 SelectObject(hdc,ScilabXgc->hBrush); 03158 }
| void C2F() drawrectangles | ( | char * | str, | |
| integer * | vects, | |||
| integer * | fillvect, | |||
| integer * | n, | |||
| integer * | v5, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
if fillvect[i] is < 0 then draw the rectangle with -fillvect[i]
Definition at line 3097 of file periWin.c.
References C2F, drawrectangle(), fillrectangle(), i, PD0, PI0, xget_dash_and_color(), xget_pattern(), xset_dash_and_color(), xset_line_style(), and xset_pattern().
03109 { 03110 integer i,cpat,verbose=0,num,cd[10]; 03111 C2F(getpattern)(&verbose,&cpat,&num,vdouble); 03112 03113 C2F(get_dash_and_color)(&verbose,cd,&num,vdouble); 03114 for (i=0 ; i< *n ; i++) 03115 { 03116 if (fillvect[i] < 0) 03117 { 03118 int dash = - fillvect[i]; 03119 C2F(set_line_style)(&dash,PI0,PI0,PI0); 03120 C2F(drawrectangle)(str,vects+4*i,vects+4*i+1,vects+4*i+2,vects+4*i+3 03121 ,PI0,PI0,PD0,PD0,PD0,PD0); 03122 } 03123 else if (fillvect[i] == 0) 03124 { 03125 /* C2F(set_line_style)(&cd,PI0,PI0,PI0);*/ 03126 C2F(drawrectangle)(str,vects+4*i,vects+4*i+1,vects+4*i+2,vects+4*i+3 03127 ,PI0,PI0,PD0,PD0,PD0,PD0); 03128 } 03129 else 03130 { 03131 C2F(setpattern)(&(fillvect[i]),PI0,PI0,PI0); 03132 C2F(fillrectangle)(str,vects+4*i,vects+4*i+1,vects+4*i+2,vects+4*i+3,PI0,PI0,PD0,PD0,PD0,PD0); 03133 } 03134 } 03135 C2F(set_dash_and_color)(&(cd[0]),PI0,PI0,PI0); 03136 }
Here is the call graph for this function:

| void C2F() drawsegments | ( | char * | str, | |
| integer * | vx, | |||
| integer * | vy, | |||
| integer * | n, | |||
| integer * | style, | |||
| integer * | iflag, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
n is the size of vx and vy
Definition at line 2992 of file periWin.c.
References BCG::Cdrawable, BCG::CurPixmapStatus, BCG::CWindow, i, PI0, ScilabXgc, xget_dash_and_color(), xset_dash_and_color(), and xset_line_style().
03004 { 03005 integer verbose=0,Dnarg,Dvalue[10],NDvalue; 03006 integer i ; 03007 03008 C2F(get_dash_and_color)(&verbose,Dvalue,&Dnarg,vdouble); 03009 03010 03011 if ( (int) *iflag == 1) { /* one style per segment */ 03012 for (i=0 ; i < *n/2 ; i++) { 03013 NDvalue = style[i]; 03014 C2F(set_line_style)(&NDvalue,PI0,PI0,PI0); 03015 MoveToEx(hdc,(int) vx[2*i],(int) vy[2*i],NULL); 03016 LineTo(hdc,(int) vx[2*i+1],(int) vy[2*i+1]); 03017 } 03018 } 03019 else { 03020 if (*style >= 1) /* set color */ 03021 C2F(set_line_style)(style,PI0,PI0,PI0); 03022 03023 for (i=0 ; i < *n/2 ; i++) { 03024 MoveToEx(hdc,(int) vx[2*i],(int) vy[2*i],NULL); 03025 LineTo(hdc,(int) vx[2*i+1],(int) vy[2*i+1]); 03026 } 03027 } 03028 C2F(set_dash_and_color)( Dvalue,PI0,PI0,PI0); 03029 }
Here is the call graph for this function:

| void C2F() fillarc | ( | char * | str, | |
| integer * | x, | |||
| integer * | y, | |||
| integer * | width, | |||
| integer * | height, | |||
| integer * | angle1, | |||
| integer * | angle2, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
Fill a single elipsis or part of it with current pattern
Ellipse(hdc,(int) *x,(int) *y,(int)*width+*x ,(int)*height+*y );
180*64
Definition at line 3376 of file periWin.c.
References BCG::Cdrawable, BCG::CurPixmapStatus, BCG::CWindow, and ScilabXgc.
03380 { 03381 int xmid= *x + *width/2; 03382 int ymid= *y + *height/2; 03383 int lg= Max(*width,*height); 03385 Pie(hdc,(int) *x,(int) *y,(int) *width + *x ,(int) *height + *y, 03386 xmid +(int) (lg*cos(*angle1*M_PI/11520.00)), 03387 ymid - (int) (lg*sin(*angle1*M_PI/11520.00)), 03388 xmid+(int) (lg*cos((*angle1+*angle2)*M_PI/11520.00)), 03389 ymid - (int) (lg*sin((*angle1+*angle2)*M_PI/11520.00))); 03390 }
| void C2F() fillarcs | ( | char * | str, | |
| integer * | vects, | |||
| integer * | fillvect, | |||
| integer * | n, | |||
| integer * | v5, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
The drawing style is the current drawing
Definition at line 3284 of file periWin.c.
References C2F, drawarc(), fillarc(), i, BCG::IDLastPattern, PD0, PI0, ScilabXgc, xget_pattern(), and xset_pattern().
03296 { 03297 integer i,cpat,verb,num; 03298 verb=0; 03299 C2F(getpattern)(&verb,&cpat,&num,vdouble); 03300 for (i=0 ; i< *n ; i++) 03301 { 03302 if (fillvect[i] > ScilabXgc->IDLastPattern + 1) 03303 { 03304 C2F(setpattern)(&(cpat),PI0,PI0,PI0); 03305 C2F(drawarc)(str,vects+6*i,vects+6*i+1, 03306 vects+6*i+2,vects+6*i+3, 03307 vects+6*i+4,vects+6*i+5,PD0,PD0,PD0,PD0); 03308 } 03309 else 03310 { 03311 C2F(setpattern)(&(fillvect[i]),PI0,PI0,PI0); 03312 C2F(fillarc)(str,vects+6*i,vects+6*i+1, 03313 vects+6*i+2,vects+6*i+3, 03314 vects+6*i+4,vects+6*i+5,PD0,PD0,PD0,PD0); 03315 } 03316 } 03317 C2F(setpattern)(&(cpat),PI0,PI0,PI0); 03318 }
Here is the call graph for this function:

| void C2F() fillpolyline | ( | char * | str, | |
| integer * | n, | |||
| integer * | vx, | |||
| integer * | vy, | |||
| integer * | closeflag, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
according to *closeflag : the given vector is a polyline or a polygon
Definition at line 3557 of file periWin.c.
References C2F, BCG::Cdrawable, BCG::CurPixmapStatus, BCG::CurVectorStyle, BCG::CWindow, get_xpoints(), n1, ScilabXgc, and store_points().
03569 { 03570 integer n1; 03571 if (*closeflag == 1) n1 = *n+1;else n1= *n; 03572 if (C2F(store_points)(*n, vx, vy,*closeflag)) 03573 { 03574 Polygon(hdc,C2F(ReturnPoints)(), n1); 03575 } 03576 }
Here is the call graph for this function:

| void C2F() fillpolylines | ( | char * | str, | |
| integer * | vectsx, | |||
| integer * | vectsy, | |||
| integer * | fillvect, | |||
| integer * | n, | |||
| integer * | p, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
fill a set of polygons each of which is defined by (*p) points (*n) is the number of polygons the polygon is closed by the routine fillvect[*n] : fillvect[*n] : if fillvect[i] == 0 draw the boundaries with current color if fillvect[i] > 0 draw the boundaries with current color then fill with pattern fillvect[i] if fillvect[i] < 0 fill with pattern - fillvect[i]
fill + boundaries
boundaries ONLY
fill ONLY
Definition at line 3451 of file periWin.c.
References C2F, close(), drawClippedPolyline(), fillpolyline(), i, PD0, PI0, xget_dash_and_color(), xget_pattern(), xset_dash_and_color(), xset_line_style(), and xset_pattern().
03463 { 03464 integer Dnarg,Dvalue[10]; 03465 integer i,cpat,verbose=0,num,close=1,pattern; 03466 C2F(getpattern)(&verbose,&cpat,&num,vdouble); 03467 C2F(get_dash_and_color)(&verbose,Dvalue,&Dnarg,vdouble); 03468 for (i=0 ; i< *n ; i++) 03469 { 03470 if (fillvect[i] > 0) 03471 { 03473 C2F(setpattern)(&fillvect[i],PI0,PI0,PI0); 03474 C2F(fillpolyline)(str,p,vectsx+(*p)*i,vectsy+(*p)*i,(close=1,&close), 03475 PI0,PI0,PD0,PD0,PD0,PD0); 03476 C2F(set_line_style)(Dvalue,PI0,PI0,PI0); 03477 C2F(setpattern)(&(cpat),PI0,PI0,PI0); 03478 C2F(drawpolyline)(str,p,vectsx+(*p)*i,vectsy+(*p)*i,(close=1,&close) 03479 ,PI0,PI0,PD0,PD0,PD0,PD0); 03480 } 03481 else if (fillvect[i] == 0 ) 03482 { 03483 C2F(set_line_style)(Dvalue,PI0,PI0,PI0); 03484 C2F(setpattern)(&cpat,PI0,PI0,PI0); 03485 C2F(drawpolyline)(str,p,vectsx+(*p)*i,vectsy+(*p)*i,(close=0,&close) 03486 ,PI0,PI0,PD0,PD0,PD0,PD0); 03487 } 03488 else 03489 { 03490 pattern = -fillvect[i] ; 03491 C2F(setpattern)(&pattern,PI0,PI0,PI0); 03492 C2F(fillpolyline)(str,p,vectsx+(*p)*i,vectsy+(*p)*i,(close=0,&close) 03493 ,PI0,PI0,PD0,PD0,PD0,PD0); 03494 } 03495 } 03496 C2F(set_dash_and_color)(Dvalue,PI0,PI0,PI0); 03497 }
Here is the call graph for this function:

| void C2F() fillrectangle | ( | char * | str, | |
| integer * | x, | |||
| integer * | y, | |||
| integer * | width, | |||
| integer * | height, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
fill one rectangle, with current pattern
Rectangle with current pen and brush
Definition at line 3162 of file periWin.c.
References BCG::Cdrawable, BCG::CurPixmapStatus, BCG::CWindow, and ScilabXgc.
| void get_b | ( | int | i, | |
| float * | b | |||
| ) |
| void get_g | ( | int | i, | |
| float * | g | |||
| ) |
| void get_r | ( | int | i, | |
| float * | r | |||
| ) |
| void getcolordef | ( | integer * | screenc | ) |
| void C2F() getFontMaxSize | ( | char * | str, | |
| integer * | sizeMin, | |||
| integer * | sizeMax, | |||
| integer * | v1, | |||
| integer * | v2, | |||
| integer * | v3, | |||
| integer * | v4, | |||
| double * | dx1, | |||
| double * | dx2, | |||
| double * | dx3, | |||
| double * | dx4 | |||
| ) |
get the minimal and maximal font size the driver can display
Definition at line 4235 of file periWin.c.
References FONTMAXSIZE.
04238 { 04239 *sizeMin = 0 ; 04240 *sizeMax = FONTMAXSIZE ; 04241 }
To get the drawbox window size : used by periGif
Definition at line 1037 of file periWin.c.
References xget_windowdim().
01038 { 01039 *narg = 2; 01040 /* on renvoie la taille de la fenetre virtuelle */ 01041 /* windows devrait s'occupper de tout afficher correctement */ 01042 x[0]= ScilabXgc->CWindowWidth; 01043 x[1]= ScilabXgc->CWindowHeight; 01044 if (*verbose == 1) 01045 sciprint("\n CWindow dim :%d,%d\r\n",(int) x[0],(int) x[1]); 01046 }
Here is the call graph for this function:

| void C2F() initgraphic | ( | char * | string, | |
| integer * | v2, | |||
| integer * | v3, | |||
| integer * | v4, | |||
| integer * | v5, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
EntryCounter is used to check for first Entry + to now an available number
This is done only at the first entry
Initialize default Scilab Xgc
Default value is without Pixmap
Definition at line 3749 of file periWin.c.
References AddMenu(), AddNewWindowToList(), C2F, BCG::CBGWindow, CreatePatterns(), CreatePopupWindow(), BCG::CurPixmapStatus, BCG::CurResizeStatus, BCG::CurWindow, BCG::CWindow, BCG::CWindowHeight, BCG::CWindowWidth, DisplayInit(), GXcopy, ierr, InitMissileXgc(), LoadFonts(), Max, ne, NULL, PI0, BCG::popup, refreshMenus(), ScilabXgc, sciprint(), TCLinterp, TKmainWindow, and X_error_handler().
03761 { 03762 static char popupname[sizeof("ScilabGraphic")+4]; 03763 static char winname[sizeof("BG")+4]; 03764 struct BCG *NewXgc ; 03765 RECT rect,rect1; 03766 static integer EntryCounter = 0; 03767 integer WinNum; 03768 static HMENU sysmenu; 03769 SCROLLINFO vertsi; 03770 SCROLLINFO horzsi; 03771 03772 if ( v2 != (integer *) NULL && *v2 != -1 ) 03773 { 03774 WinNum= *v2; 03775 } 03776 else 03777 { 03778 WinNum= EntryCounter; 03779 } 03780 03781 if (EntryCounter == 0) 03782 { 03784 screencolor = 1; 03785 if (C2F(AllocVectorStorage)()==0) return; 03786 graphwin.xmax = WIN_XMAX; 03787 graphwin.ymax = WIN_YMAX; 03788 if (! graphwin.hPrevInstance) 03789 { 03790 CreateGraphClass(); 03791 } 03793 } 03794 03795 if (( NewXgc = AddNewWindowToList()) == (struct BCG *) 0) 03796 { 03797 Scistring("initgraphics: unable to alloc\n"); 03798 return; 03799 } 03800 else 03801 { 03802 ScilabXgc= NewXgc; 03803 } 03808 /* Probleme graphwin peut etre locké par une autre fonction */ 03809 /* Faire une copie serait preferable */ 03810 ScilabXgc->lpgw = &graphwin; 03811 03812 sprintf(popupname,"ScilabGraphic%d", (int)WinNum); 03813 if (EntryCounter == 0) 03814 { 03815 ReadRegistryGraph(ScilabXgc); 03816 } 03817 ScilabXgc->Inside_init=1; 03819 ScilabXgc->hWndParent = CreateWindow(szParentGraphClass, popupname, 03820 WS_OVERLAPPEDWINDOW, 03821 graphwin.Origin.x, graphwin.Origin.y, 03822 graphwin.Size.x, graphwin.Size.y, 03823 NULL, NULL, graphwin.hInstance, 03824 NewXgc); 03825 03826 if (ScilabXgc->hWndParent == (HWND)NULL) 03827 { 03828 MessageBox((HWND)NULL,"Couldn't open parent graph window",(LPSTR)NULL, MB_ICONHAND | MB_SYSTEMMODAL); 03829 return; 03830 } 03831 ShowWindow(ScilabXgc->hWndParent, SW_SHOWNORMAL); 03832 ScilabXgc->Statusbar = InitStatusBar (ScilabXgc->hWndParent); 03833 ShowWindow(ScilabXgc->Statusbar, SW_SHOWNORMAL); 03834 GetWindowRect (ScilabXgc->Statusbar, &rect1) ; 03835 GetClientRect(ScilabXgc->hWndParent, &rect); 03836 03837 MoveWindow(ScilabXgc->Statusbar, 0, rect.bottom -( rect1.bottom - rect1.top), 03838 rect.right, ( rect1.bottom - rect1.top), TRUE) ; 03839 03840 sprintf((char *)winname,"BG%d", (int)WinNum); 03841 03842 ScilabXgc->CWindowWidth = rect.right; 03843 ScilabXgc->CWindowHeight = rect.bottom - ( rect1.bottom - rect1.top); 03844 03845 ScilabXgc->CWindow = CreateWindow(szGraphClass, winname, 03846 WS_CHILD | WS_VSCROLL | WS_HSCROLL, 03847 0, graphwin.ButtonHeight, 03848 ScilabXgc->CWindowWidth, 03849 ScilabXgc->CWindowHeight, 03850 ScilabXgc->hWndParent, 03851 NULL, graphwin.hInstance, 03852 NewXgc); 03853 03854 ScilabXgc->CurResizeStatus = 1; 03855 ScilabXgc->CWindowWidthView = ScilabXgc->CWindowWidth; 03856 ScilabXgc->CWindowHeightView = ScilabXgc->CWindowHeight; 03857 03858 /* definition des scroll bars verticalles */ 03859 vertsi.cbSize = sizeof(SCROLLINFO); 03860 vertsi.fMask = SIF_RANGE | SIF_PAGE | SIF_POS; 03861 vertsi.nMin = 0; 03862 vertsi.nMax = ScilabXgc->CWindowHeight; 03863 vertsi.nPage = ScilabXgc->CWindowHeightView; 03864 vertsi.nPos = 0; 03865 sciSetScrollInfo(ScilabXgc,SB_VERT, &(vertsi), TRUE); 03866 sciGetScrollInfo(ScilabXgc,SB_VERT, &vertsi); 03867 03868 /* definition des scroll bars horizontalle */ 03869 horzsi.cbSize = sizeof(SCROLLINFO); 03870 horzsi.fMask = SIF_RANGE | SIF_PAGE | SIF_POS; 03871 horzsi.nMin = 0; 03872 horzsi.nMax = ScilabXgc->CWindowWidth; 03873 horzsi.nPage = ScilabXgc->CWindowWidthView; 03874 horzsi.nPos = 0; 03875 sciSetScrollInfo(ScilabXgc,SB_HORZ, &horzsi, TRUE); 03876 sciGetScrollInfo(ScilabXgc,SB_HORZ, &horzsi); 03877 03878 if (ScilabXgc->CWindow == (HWND)NULL) 03879 { 03880 MessageBox((HWND)NULL,"Couldn't open graphic window",(LPSTR)NULL, MB_ICONHAND | MB_SYSTEMMODAL); 03881 return; 03882 } 03883 03884 ShowWindow(ScilabXgc->CWindow, SW_SHOWNORMAL); 03885 ShowWindow(ScilabXgc->hWndParent, SW_SHOWNORMAL); 03886 graphwin.resized = FALSE; 03887 /*UpdateFileGraphNameMenu( ScilabXgc); 03888 LoadGraphMacros( ScilabXgc);*/ 03890 ScilabXgc->CurPixmapStatus = 0; 03891 ScilabXgc->CurResizeStatus = 1; 03892 ScilabXgc->CurWindow = WinNum; 03893 /* on fait un SetWinhdc car on vient de creer la fenetre */ 03894 /* le release est fait par Xcall.c */ 03895 SetWinhdc(); 03896 SetMapMode(hdc, MM_TEXT); 03897 SetBkMode(hdc,TRANSPARENT); 03898 GetClientRect(ScilabXgc->CWindow, &rect); 03899 SetViewportExtEx(hdc, rect.right, rect.bottom,NULL); 03900 SetTextAlign(hdc, TA_LEFT|TA_BOTTOM); 03901 SetFocus( ScilabXgc->CWindow); 03902 if (EntryCounter == 0) 03903 { 03904 C2F(CreatePatterns)(); 03905 LoadFonts(); 03906 } 03907 InitMissileXgc(PI0,PI0,PI0,PI0);/* a laisser ici */ 03908 /* to be sure that current values are recorded */ 03909 /*StoreXgc(WinNum);*/ 03910 EntryCounter=Max(EntryCounter,WinNum); 03911 EntryCounter++; 03912 03913 /* see ../wsci/wgmenu.c */ 03914 CreateGedMenus(ScilabXgc); 03915 CreateGraphToolBar(ScilabXgc); 03916 03917 ScilabXgc->Inside_init=0; 03918 }
Here is the call graph for this function:

| void C2F() loadfamily | ( | char * | name, | |
| integer * | j, | |||
| integer * | v3, | |||
| integer * | v4, | |||
| integer * | v5, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
Definition at line 4377 of file periWin.c.
References C2F, fname, FontInfoTab_, FONTMAXSIZE, fonttab, i, loadfamily_n(), FontAlias::name, NULL, FontInfo::ok, sciprint(), and strchr().
04381 { 04382 integer i; 04384 i=0; 04385 while ( fonttab[i].alias != (char *) NULL) 04386 { 04387 if (strcmp(fonttab[i].alias,name)==0) 04388 { 04389 C2F(loadfamily_n)(fonttab[i].Winname,j); 04390 return ; 04391 } 04392 i++; 04393 } 04394 C2F(loadfamily_n)(name,j); 04395 }
Here is the call graph for this function:

| void C2F() MissileGCget | ( | char * | str, | |
| integer * | verbose, | |||
| integer * | x1, | |||
| integer * | x2, | |||
| integer * | x3, | |||
| integer * | x4, | |||
| integer * | x5, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
Definition at line 2703 of file periWin.c.
References C2F, L, and MissileGCGetorSet().
02708 { 02709 int x6=0; 02710 C2F(MissileGCGetorSet)(str,1L,verbose,x1,x2,x3,x4,x5,&x6,dv1); 02711 }
Here is the call graph for this function:

| void C2F() MissileGCset | ( | char * | str, | |
| integer * | x1, | |||
| integer * | x2, | |||
| integer * | x3, | |||
| integer * | x4, | |||
| integer * | x5, | |||
| integer * | x6, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
Definition at line 2713 of file periWin.c.
References C2F, L, and MissileGCGetorSet().
02725 { 02726 integer verbose=0 ; 02727 C2F(MissileGCGetorSet)(str,0L,&verbose,x1,x2,x3,x4,x5,x6,dv1); 02728 }
Here is the call graph for this function:

| void C2F() queryfamily | ( | char * | name, | |
| integer * | j, | |||
| integer * | v3, | |||
| integer * | v4, | |||
| integer * | v5, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
Definition at line 4397 of file periWin.c.
References fname, FontInfoTab_, FONTNUMBER, and fonttab.
04409 { 04410 integer i ; 04411 name[0]='\0'; 04412 // for (i=0;i<FONTNUMBER;i++) { //Pb here: fonttab size is 10 and i goes from 0 to 10 included 04413 // fonttab[10] is "{(char *) NULL,( char *) NULL}" F.Leray 24.02.04 04414 // Pb fixed by setting FONTNUMBER to 10 04415 04416 for (i=0;i<FONTNUMBER;i++) { 04417 v3[i]=strlen((*FontTab)[i].fname); 04418 if (v3[i] > 0) 04419 strcat(name,(*FontTab)[i].fname); 04420 else { 04421 v3[i]=strlen(fonttab[i].Winname); 04422 strcat(name,fonttab[i].Winname); 04423 } 04424 } 04425 *j=FONTNUMBER; 04426 }
Definition at line 2024 of file periWin.c.
02025 { 02026 set_default_colormap_flag = *flag; 02027 return(0); 02028 }
| void setcolordef | ( | int | screenc | ) |
| void C2F() SetDriver | ( | ) |
| void C2F() setpopupname | ( | char * | x0, | |
| integer * | v2, | |||
| integer * | v3, | |||
| integer * | v4, | |||
| integer * | v5, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4, | |||
| integer | lx0 | |||
| ) |
Definition at line 429 of file periX11.c.
References Setpopupname().
00430 { 00431 Setpopupname(x0); 00432 }
Here is the call graph for this function:

Definition at line 4616 of file periWin.c.
References INT_2_16B, n1, and ReallocVector().
04617 { 04618 integer i,n1; 04619 if ( onemore == 1) n1=n+1; 04620 else n1=n; 04621 if (ReallocVector(n1) == 1) 04622 { 04623 for (i = 0; i < n; i++){ 04624 points[i].x = INT_2_16B( vx[i] ) ; 04625 points[i].y = INT_2_16B( vy[i] ) ; 04626 } 04627 if (onemore == 1) { 04628 points[n].x=(short) points[0].x; 04629 points[n].y=(short) points[0].y; 04630 } 04631 return(1); 04632 } 04633 else return(0); 04634 }
Here is the call graph for this function:

| void SwitchWindow | ( | integer * | intnum | ) |
Definition at line 784 of file periX11.c.
00785 { 00787 struct BCG *SXgc; 00788 integer ierr; 00789 SXgc = getWindowXgcNumber(*intnum); 00790 if ( SXgc != (struct BCG *) 0 ) 00791 { 00793 ScilabXgc = SXgc ; 00794 ResetScilabXgc (); 00795 get_window_scale(*intnum,NULL); 00796 } 00797 else 00798 { 00800 C2F(initgraphic)("",intnum,&ierr,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0); 00801 } 00802 }
| void C2F() viderbuff | ( | ) |
| void C2F() xclick | ( | char * | str, | |
| integer * | ibutton, | |||
| integer * | x1, | |||
| integer * | yy1, | |||
| integer * | iflag, | |||
| integer * | istr, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
Definition at line 865 of file periWin.c.
References lstr, and SciClick().
00872 { 00873 integer lstr ; 00874 SciClick(ibutton,x1, yy1,iflag,0,0,*istr,str,&lstr); 00875 if ( *istr == 1) 00876 { 00877 if (*ibutton == -2) 00878 { 00879 /*sciprint("Menu activated %s %d",str,lstr);*/ 00880 *istr = lstr; 00881 } 00882 else 00883 *istr = 0; 00884 } 00885 }
Here is the call graph for this function:

| void C2F() xclick_any | ( | char * | str, | |
| integer * | ibutton, | |||
| integer * | x1, | |||
| integer * | yy1, | |||
| integer * | iwin, | |||
| integer * | iflag, | |||
| integer * | istr, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
returns the graphic window number which owns the event
if we already have something on the queue
first check if an event has been store in the queue while wait_for_click was 0
Check menu activation
Cleanup
Definition at line 708 of file periWin.c.
References C2F, CheckClickQueue(), ClearClickQueue(), getmen(), GetWindowNumber(), getWinsMaxId(), i, ismenu(), lstr, NULL, ok, set_client_message_off(), set_client_message_on(), set_event_select(), and set_wait_click().
00709 { 00710 integer win; 00711 integer wincount; 00712 integer lstr ; 00713 int motion,release,ok; 00714 // reinitialisation à -1 00715 // correction bg 00716 // plot2d(); => fermer la fenêtre du plot avec la croix. 00717 // plot2d(); 00718 // [c_i,c_x,c_y,c_w,c_m]=xclick() 00719 // ==> xclick renvoie le code -100 pour le bouton ce qui correspond à une fermeture de fenêtre 00720 deleted_win = -1; 00721 00722 wincount = getWinsMaxId() + 1 ; 00723 if (wincount == 0) 00724 { 00725 *x1=0; 00726 *yy1=0; 00727 *iwin=0; 00728 *ibutton = -100; 00729 *istr = 0; 00730 return; 00731 } 00732 00733 00734 if ( *iflag ==0 ) ClearClickQueue(-1); /*clear the queue if required*/ 00735 00737 set_wait_click(1); /*disable event handler if any */ 00738 set_event_select(1+4); /* select press and release events*/ 00739 while (1) 00740 { 00741 win=-1; 00742 ok=0; 00743 while (CheckClickQueue(&win,x1,yy1,ibutton,&motion,&release) == 1) { 00744 if ((motion==0) && (release==0)) { 00745 *iwin = win ; 00746 ok=1; 00747 break; 00748 } 00749 00750 win=-1; 00751 } 00752 if(ok) {*istr = 0;break;}; 00753 /* get next event */ 00754 C2F(sxevents)(); 00755 Sleep(1); 00756 00757 if ( deleted_win != -1 ) 00758 { 00759 /* a graphic window was deleted we quit */ 00760 *iwin = deleted_win; 00761 deleted_win = -1; 00762 *x1= 0; 00763 *yy1 = 0; 00764 *ibutton = -100; 00765 set_wait_click(0); 00766 return ; 00767 } 00768 00770 if ( *istr==1 && C2F(ismenu)()==1 ) 00771 { 00772 int entry; 00773 C2F(getmen)(str,&lstr,&entry); 00774 *ibutton = -2; 00775 *istr=lstr; 00776 *x1=0; 00777 *yy1=0; 00778 *iwin=-1; 00779 break; 00780 } 00781 00782 } 00783 set_wait_click(0); 00784 }
Here is the call graph for this function:

| void XDroutine | ( | int | npts | ) |
Definition at line 4428 of file periX11.c.
References BCG::Cdrawable, BCG::CurPixmapStatus, BCG::CurVectorStyle, BCG::CWindow, get_xpoints(), and ScilabXgc.
Referenced by drawpolyline().
04429 { 04430 if (ScilabXgc->Cdrawable != (Drawable) 0) 04431 XDrawLines (dpy, ScilabXgc->Cdrawable, gc, get_xpoints(),(int) npts, 04432 ScilabXgc->CurVectorStyle); 04433 if (ScilabXgc->CurPixmapStatus != 1) 04434 XDrawLines (dpy, (Drawable) ScilabXgc->CWindow, gc, get_xpoints(),(int) npts, 04435 ScilabXgc->CurVectorStyle); 04436 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void C2F() xinfo | ( | char * | message, | |
| integer * | v2, | |||
| integer * | v3, | |||
| integer * | v4, | |||
| integer * | v5, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
Definition at line 3993 of file periWin.c.
References args, BCG::CinfoW, NULL, ScilabXgc, and XtNlabel.
03997 { 03998 if ( ScilabXgc != (struct BCG *) 0 && ScilabXgc->Statusbar != (HWND) 0) 03999 { 04000 (BOOL)SendMessage(ScilabXgc->Statusbar, SB_SETTEXT, (WPARAM) 0, 04001 (LPARAM) (LPSTR) message ); 04002 } 04003 }
| void C2F() xselgraphic | ( | char * | v1, | |
| integer * | v2, | |||
| integer * | v3, | |||
| integer * | v4, | |||
| integer * | v5, | |||
| integer * | v6, | |||
| integer * | v7, | |||
| double * | dv1, | |||
| double * | dv2, | |||
| double * | dv3, | |||
| double * | dv4 | |||
| ) |
If there's no graphic window then select creates one
Test not really usefull: see sciwin in matdes.f
Definition at line 545 of file periWin.c.
References C2F, BCG::CBGWindow, ierr, initgraphic(), NULL, PD0, PI0, and ScilabXgc.
00557 { 00558 integer ierr; 00559 if (ScilabXgc == (struct BCG *)0 || ScilabXgc->CWindow == (HWND) NULL) 00560 C2F(initgraphic)("",PI0,&ierr,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0); 00561 if (IsIconic(ScilabXgc->hWndParent)) 00562 ShowWindow(ScilabXgc->hWndParent, SW_SHOWNORMAL); 00563 BringWindowToTop(ScilabXgc->hWndParent); 00564 }
Here is the call graph for this function:

1.5.1