#include <stdio.h>#include "core_math.h"Include dependency graph for slider.c:

Go to the source code of this file.
Defines | |
| #define | REMOVE_REC_DRIVER() char old_rec[4]; int rem_flag ; rem_flag = scig_driverX11(old_rec); |
| #define | RESTORE_DRIVER() if (rem_flag == 1) C2F(SetDriver)(old_rec,PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0); |
Functions | |
| int C2F() | getgeom (double *) |
| int C2F() | dr1 (char x0[], char x1[], integer *x2, integer *x3, integer *x4, integer *x5, integer *x6, integer *x7, double *dx1, double *dx2, double *dx3, double *dx4, integer lx0, integer lx1) |
| int C2F() | dr (char x0[], char x1[], integer *x2, integer *x3, integer *x4, integer *x5, integer *x6, integer *x7, double *dx1, double *dx2, double *dx3, double *dx4, integer lx0, integer lx1) |
| static void | block_draw_rect_1 (double r[], double percent) |
| static void | block_draw_rect_2 (double r[], double percent) |
| static void | block_draw_rect_3 (double r[], double percent) |
| static int | scig_driverX11 (char *old) |
| static int | set_block_win (int win) |
| static int | set_slider_color (int color) |
| void | slider (integer *flag, integer *nevprt, double *t, double *xd, double *x, integer *nx, double *z, integer *nz, double *tvec, integer *ntvec, double *rpar, integer *nrpar, integer *ipar, integer *nipar, double *u, integer *nu, double *y, integer *ny) |
| #define REMOVE_REC_DRIVER | ( | ) | char old_rec[4]; int rem_flag ; rem_flag = scig_driverX11(old_rec); |
| #define RESTORE_DRIVER | ( | ) | if (rem_flag == 1) C2F(SetDriver)(old_rec,PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0); |
| static void block_draw_rect_1 | ( | double | r[], | |
| double | percent | |||
| ) | [static] |
Definition at line 20 of file slider.c.
References C2F, dr(), dr1(), L, PD0, PI0, w, and x.
Referenced by slider().
00021 { 00022 integer alumode,verbose=0,narg; 00023 static integer in=6; 00024 double w = r[2]*percent; 00025 double x = r[0]; 00026 C2F(dr)("xget","alufunction",&verbose,&alumode,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); 00027 if ( alumode != in ) C2F(dr1)("xset","alufunction",&in,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); 00028 C2F(dr1)("xfrect","v",PI0,PI0,PI0,PI0,PI0,PI0,&x,r+1,&w,r+3,0L,0L); 00029 if ( alumode != in ) C2F(dr1)("xset","alufunction",&alumode,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); 00030 }
Here is the call graph for this function:

Here is the caller graph for this function:

| static void block_draw_rect_2 | ( | double | r[], | |
| double | percent | |||
| ) | [static] |
Definition at line 32 of file slider.c.
References C2F, dr(), dr1(), L, PD0, PI0, w, and x.
Referenced by slider().
00033 { 00034 integer alumode,verbose=0,narg; 00035 /* integer flag =0; double ang=0.0; char foo[24]; */ 00036 static integer in=6; 00037 double x = r[0]+ r[2]*percent-2; 00038 double w = 4; 00039 C2F(dr)("xget","alufunction",&verbose,&alumode,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); 00040 if ( alumode != in ) C2F(dr1)("xset","alufunction",&in,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); 00041 C2F(dr1)("xfrect","v",PI0,PI0,PI0,PI0,PI0,PI0,&x,r+1,&w,r+3,0L,0L); 00042 /* sprintf(foo,"%5.3f",percent); 00043 C2F(dr1)("xstring",foo,PI0,PI0,PI0,&flag,PI0,PI0,r,r+1,&ang,PD0,0L,0L); 00044 */ 00045 00046 if ( alumode != in ) C2F(dr1)("xset","alufunction",&alumode,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); 00047 }
Here is the call graph for this function:

Here is the caller graph for this function:

| static void block_draw_rect_3 | ( | double | r[], | |
| double | percent | |||
| ) | [static] |
Definition at line 50 of file slider.c.
References C2F, dr(), dr1(), foo(), L, PD0, PI0, x, and y.
Referenced by slider().
00051 { 00052 integer alumode,verbose=0,narg; 00053 integer flag =0; double ang=0.0; char foo[24]; 00054 static integer in=6; 00055 double x = r[0] + (1.0/10)*r[2]; 00056 double y = r[1] - r[3] + 2 ; 00057 C2F(dr)("xget","alufunction",&verbose,&alumode,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); 00058 if ( alumode != in ) C2F(dr1)("xset","alufunction",&in,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); 00059 sprintf(foo,"%5.3f",percent); 00060 C2F(dr1)("xstring",foo,PI0,PI0,PI0,&flag,PI0,PI0,&x,&y,&ang,PD0,0L,0L); 00061 if ( alumode != in ) C2F(dr1)("xset","alufunction",&alumode,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); 00062 }
Here is the call graph for this function:

Here is the caller graph for this function:

| int C2F() dr | ( | char | x0[], | |
| char | x1[], | |||
| integer * | x2, | |||
| integer * | x3, | |||
| integer * | x4, | |||
| integer * | x5, | |||
| integer * | x6, | |||
| integer * | x7, | |||
| double * | dx1, | |||
| double * | dx2, | |||
| double * | dx3, | |||
| double * | dx4, | |||
| integer | lx0, | |||
| integer | lx1 | |||
| ) |
Definition at line 332 of file Xcall.c.
References all(), C2F, ReleaseWinHdc(), and SetWinhdc().
00334 { 00335 #ifdef _MSC_VER 00336 if ( DriverId == 0 && DriverName[0] != 'I' ) 00337 { 00338 SetWinhdc(); 00339 C2F(all)(x0,x1,x2,x3,x4,x5,x6,x7,dx1,dx2,dx3,dx4,lx0,lx1); 00340 ReleaseWinHdc(); 00341 } 00342 else 00343 { 00344 C2F(all)(x0,x1,x2,x3,x4,x5,x6,x7,dx1,dx2,dx3,dx4,lx0,lx1); 00345 } 00346 #else 00347 C2F(all)(x0,x1,x2,x3,x4,x5,x6,x7,dx1,dx2,dx3,dx4,lx0,lx1); 00348 #endif 00349 return 0; 00350 }
Here is the call graph for this function:

| int C2F() dr1 | ( | char | x0[], | |
| char | x1[], | |||
| integer * | x2, | |||
| integer * | x3, | |||
| integer * | x4, | |||
| integer * | x5, | |||
| integer * | x6, | |||
| integer * | x7, | |||
| double * | dx1, | |||
| double * | dx2, | |||
| double * | dx3, | |||
| double * | dx4, | |||
| integer | lx0, | |||
| integer | lx1 | |||
| ) |
Definition at line 196 of file Xcall1.c.
References in_word_set(), NULL, and sciprint().
00199 { 00200 const struct funreplace *fr; 00201 fr=in_word_set(x0,strlen(x0)); 00202 if ( fr != NULL ) 00203 { 00204 (*(fr->action))(x0,x1,x2,x3,x4,x5,x6,x7,dx1,dx2,dx3,dx4,lx0,lx1); 00205 } 00206 else 00207 { 00208 sciprint("\n Unknow X operator <%s>\r\n",x0); 00209 } 00210 return(0); 00211 }
Here is the call graph for this function:

| static int scig_driverX11 | ( | char * | old | ) | [static] |
Definition at line 74 of file slider.c.
References C2F, GetDriver1(), PD0, PI0, and SetDriver().
00075 { 00076 GetDriver1(old,PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0); 00077 if ( old[0] == 'R' ) 00078 { 00079 C2F(SetDriver)("X11",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0); 00080 return 1; 00081 } 00082 return 0; 00083 }
Here is the call graph for this function:

Definition at line 90 of file slider.c.
References C2F, cur, dr(), L, PD0, and PI0.
Referenced by slider().
00091 { 00092 static int verbose = 0, cur,narg; 00093 C2F(dr)("xget","window",&verbose,&cur,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); 00094 if ( cur != win ) 00095 C2F(dr)("xset","window",&win,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); 00096 return cur ; 00097 }
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 105 of file slider.c.
References C2F, cur, dr(), L, PD0, and PI0.
Referenced by slider().
00106 { 00107 static int verbose = 0, cur,narg; 00108 C2F(dr)("xget","color",&verbose,&cur,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); 00109 if ( cur != color ) 00110 C2F(dr)("xset","color",&color,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); 00111 return cur ; 00112 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void slider | ( | integer * | flag, | |
| integer * | nevprt, | |||
| double * | t, | |||
| double * | xd, | |||
| double * | x, | |||
| integer * | nx, | |||
| double * | z, | |||
| integer * | nz, | |||
| double * | tvec, | |||
| integer * | ntvec, | |||
| double * | rpar, | |||
| integer * | nrpar, | |||
| integer * | ipar, | |||
| integer * | nipar, | |||
| double * | u, | |||
| integer * | nu, | |||
| double * | y, | |||
| integer * | ny | |||
| ) |
Definition at line 122 of file slider.c.
References Abs, block_draw_rect_1(), block_draw_rect_2(), block_draw_rect_3(), C2F, cur, dr1(), getgeom(), int, L, Max, Min, PI0, REMOVE_REC_DRIVER, RESTORE_DRIVER, sciprint(), set_block_win(), set_slider_color(), and val.
00127 { 00128 00129 int wid, idb = 0 ; /* XXX remettre idb avec son common */ 00130 int cur; 00131 static double th=2 ; /* border thickness */ 00132 static double t3d = 4.0 ; /* 3d look thickness */ 00133 int curcolor; 00134 if ( idb == 1 ) 00135 sciprint("Slider t=%10.3f, flag=%d \r\n",*t,*flag); 00136 00137 switch ( *flag ) { 00138 case 2 : 00139 /* standard case */ 00140 wid= (int) z[1]; 00141 if( wid < 0) return; 00142 cur = set_block_win(wid) ; 00143 { 00144 double val = Min(rpar[1],Max(rpar[0],u[0])); 00145 double percent = (val - rpar[0])/(rpar[1]-rpar[0]); 00146 if ( Abs(z[0] - percent) > 0.01 ) /* a mettre en parametre XXXXX */ 00147 { 00148 REMOVE_REC_DRIVER(); 00149 curcolor=set_slider_color(ipar[1]); 00150 switch (ipar[0]) 00151 { 00152 case 1 : 00153 block_draw_rect_1(z+2,z[0]); 00154 block_draw_rect_1(z+2,percent); 00155 break; 00156 case 2 : 00157 block_draw_rect_2(z+2,z[0]); 00158 block_draw_rect_2(z+2,percent); 00159 break; 00160 case 3 : 00161 block_draw_rect_3(z+2,z[0]); 00162 block_draw_rect_3(z+2,percent); 00163 break; 00164 } 00165 curcolor=set_slider_color(curcolor); 00166 z[0] = percent; 00167 RESTORE_DRIVER(); 00168 } 00169 } 00170 set_block_win(cur); 00171 break; 00172 case 4 : 00173 /* initial case */ 00174 z[0]= 0.0; 00175 C2F(getgeom)(z+1); 00176 z[2] = z[2]+ t3d +th ; 00177 z[4] -= t3d + 2*th ; 00178 z[3] = z[3] + z[5] ; 00179 z[5] -= t3d ; 00180 wid= (int) z[1]; 00181 if( wid < 0) return; 00182 cur = set_block_win(wid) ; 00183 { 00184 REMOVE_REC_DRIVER(); 00185 curcolor=set_slider_color(ipar[1]); 00186 C2F(dr1)("xclea","v",PI0,PI0,PI0,PI0,PI0,PI0,z+2,z+3,z+4,z+5,0L,0L); 00187 switch (ipar[0]) 00188 { 00189 case 1 : 00190 block_draw_rect_1(z+2,z[0]); 00191 break; 00192 case 2 : 00193 block_draw_rect_2(z+2,z[0]); 00194 break; 00195 case 3 : 00196 block_draw_rect_3(z+2,z[0]); 00197 break; 00198 00199 } 00200 curcolor=set_slider_color(curcolor); 00201 RESTORE_DRIVER(); 00202 } 00203 set_block_win(cur); 00204 break; 00205 } 00206 }
Here is the call graph for this function:

1.5.1