home *** CD-ROM | disk | FTP | other *** search
- /*
- * Vdi attribute funcs library interface
- *
- * vswr_mode set writing mode
- * vs_color set color index to rgb
- * vsl_type set polyline type
- * vsl_udsty set user defined line style
- * vsl_width set polyline width
- * vsl_color set polyline color index
- * vsl_ends set polyline end styles
- * vsm_type set polymarker type
- * vsm_height set polymarker height (in y coord units)
- * vsm_color set polymarker color index
- * vst_height set text height (baseline to top of char cell)
- * vst_point set char cell point size
- * vst_rotation set char baseline rot
- * vst_font set text face
- * vst_color set text color
- * vst_effects set text atribs
- * vst_alignment set text alignment
- * vsf_interior set fill interior style
- * vsf_fill set fill style (alias vsf_style)
- * vsf_color set fill color
- * vsf_perimeter set fill perimeter visibility
- * vsf_udpat set user defied fill pattern
- *
- * ++jrb bammi@cadence.com
- * modified: mj -- ntomczak@vm.ucs.ualberta.ca
- *
- * 92/03/10 mmn -- Markus_Nick@mz.maus.de
- * changed return type of vst_height from void to int
- * because vst_height returns the selected height
- */
- #include "common.h"
-
- #ifdef __DEF_ALL__
-
- #define L_vswr_mod
- #define L_vs_color
- #define L_vsl_type
- #define L_vsl_udst
- #define L_vsl_widt
- #define L_vsl_colo
- #define L_vsl_ends
- #define L_vsm_type
- #define L_vsm_heig
- #define L_vsm_colo
- #define L_vst_heig
- #define L_vst_poin
- #define L_vst_rota
- #define L_vst_font
- #define L_vst_colo
- #define L_vst_effe
- #define L_vst_alig
- #define L_vsf_inte
- #define L_vsf_fill /* synonymous to vsf_style */
- #define L_vsf_colo
- #define L_vsf_peri
- #define L_vsf_udpa
-
- #endif /* __DEF_ALL__ */
-
-
- #ifdef L_vswr_mod
-
- /* vswr_mode set writing mode
- * returns writing mode
- */
- int vswr_mode(int handle, int mode)
- {
- _intin[0] = mode;
- __vdi__(VDI_CONTRL_ENCODE(32, 0, 1, 0), handle);
- return (int)_intout[0];
- }
- #endif /* L_vswr_mod */
-
- #ifdef L_vs_color
-
- /* vs_color set color index to rgb
- * returns void
- */
- void vs_color(int handle, int index, int rgb[])
- {
- _intin[0] = index;
- _intin[1] = rgb[0];
- _intin[2] = rgb[1];
- _intin[3] = rgb[2];
-
- __vdi__(VDI_CONTRL_ENCODE(14, 0, 4, 0), handle);
- }
- #endif /* L_vs_color */
-
- #ifdef L_vsl_type
-
- /* vsl_type set polyline type
- * returns type selected
- */
- int vsl_type(int handle, int style)
- {
- _intin[0] = style;
- __vdi__(VDI_CONTRL_ENCODE(15, 0, 1, 0), handle);
- return (int)_intout[0];
- }
- #endif /* L_vsl_type */
-
- #ifdef L_vsl_udst
-
- /* vsl_udsty set user defined line style
- * returns void
- */
- void vsl_udsty(int handle, int pat)
- {
- _intin[0] = pat;
- __vdi__(VDI_CONTRL_ENCODE(113, 0, 1, 0), handle);
- }
- #endif /* L_vsl_udst */
-
- #ifdef L_vsl_widt
-
- /* vsl_width set polyline width
- * returns selected width in x-axis units
- */
- int vsl_width(int handle, int width)
- {
- _ptsin[0] = width;
- _ptsin[1] = 0;
- __vdi__(VDI_CONTRL_ENCODE(16, 1, 0, 0), handle);
- return (int)_ptsout[0];
- }
- #endif /* L_vsl_widt */
-
- #ifdef L_vsl_colo
-
- /* vsl_color set polyline color index
- * returns setting
- */
- int vsl_color(int handle, int index)
- {
- _intin[0] = index;
- __vdi__(VDI_CONTRL_ENCODE(17, 0, 1, 0), handle);
- return (int)_intout[0];
- }
- #endif /* L_vsl_colo */
-
- #ifdef L_vsl_ends
-
- /* vsl_ends set polyline end styles
- * returns void
- */
- void vsl_ends(int handle, int begstyle, int endstyle)
- {
- _intin[0] = begstyle;
- _intin[1] = endstyle;
- __vdi__(VDI_CONTRL_ENCODE(108, 0, 2, 0), handle);
- }
- #endif /* L_vsl_ends */
-
- #ifdef L_vsm_type
-
- /* vsm_type set polymarker type
- * returns type selected
- */
- int vsm_type(int handle, int symbol)
- {
- _intin[0] = symbol;
- __vdi__(VDI_CONTRL_ENCODE(18, 0, 1, 0), handle);
- return (int)_intout[0];
- }
- #endif /* L_vsm_type */
-
- #ifdef L_vsm_heig
-
- /* vsm_height set polymarker height (in y coord units)
- * returns void (height in _ptsout [0][1])
- */
- void vsm_height(int handle, int height)
- {
- _ptsin[0] = 0;
- _ptsin[1] = height;
- __vdi__(VDI_CONTRL_ENCODE(19, 1, 0, 0), handle);
- }
- #endif /* L_vsm_heig */
-
- #ifdef L_vsm_colo
-
- /* vsm_color set polymarker color index
- * returns selected color
- */
- int vsm_color(int handle, int index)
- {
- _intin[0] = index;
- __vdi__(VDI_CONTRL_ENCODE(20, 0, 1, 0), handle);
- return (int)_intout[0];
- }
- #endif /* L_vsm_colo */
-
- #ifdef L_vst_heig
-
- /* vst_height set text height (baseline to top of char cell)
- * returns void (char info args)
- */
- int vst_height(int handle, int height,
- int *charw, int *charh, int *cellw, int *cellh)
- {
- _ptsin[0] = 0;
- _ptsin[1] = height;
- __vdi__(VDI_CONTRL_ENCODE(12, 1, 0, 0), handle);
-
- *charw = _ptsout[0];
- *charh = _ptsout[1];
- *cellw = _ptsout[2];
- *cellh = _ptsout[3];
-
- return (int)_intout[0]; /* mmn */
- }
- #endif /* L_vst_heig */
-
- #ifdef L_vst_poin
-
- /* vst_point set char cell point size
- * returns selected cell height in points (and info in args)
- */
- int vst_point(int handle, int point,
- int *charw, int *charh, int *cellw, int *cellh)
- {
- _intin[0] = point;
- __vdi__(VDI_CONTRL_ENCODE(107, 0, 1, 0), handle);
-
- *charw = _ptsout[0];
- *charh = _ptsout[1];
- *cellw = _ptsout[2];
- *cellh = _ptsout[3];
-
- return (int)_intout[0];
- }
- #endif /* L_vst_poin */
-
- #ifdef L_vst_rota
-
- /* vst_rotation set char baseline rot
- * returns angle selected
- */
- int vst_rotation(int handle, int ang)
- {
- _intin[0] = ang;
- __vdi__(VDI_CONTRL_ENCODE(13, 0, 1, 0), handle);
- return (int)_intout[0];
- }
- #endif /* L_vst_rota */
-
- #ifdef L_vst_font
-
- /* vst_font set text face
- * returns face selected
- */
- int vst_font(int handle, int font)
- {
- _intin[0] = font;
- __vdi__(VDI_CONTRL_ENCODE(21, 0, 1, 0), handle);
- return (int)_intout[0];
- }
- #endif /* L_vst_font */
-
- #ifdef L_vst_colo
-
- /* vst_color set text color
- * returns selected color
- */
- int vst_color(int handle, int index)
- {
- _intin[0] = index;
- __vdi__(VDI_CONTRL_ENCODE(22, 0, 1, 0), handle);
- return (int)_intout[0];
- }
- #endif /* L_vst_colo */
-
- #ifdef L_vst_effe
-
- /* vst_effects set text atribs
- * returns style actually selected
- */
- int vst_effects(int handle, int effects)
- {
- _intin[0] = effects;
- __vdi__(VDI_CONTRL_ENCODE(106, 0, 1, 0), handle);
- return (int)_intout[0];
- }
- #endif /* L_vst_effe */
-
-
- #ifdef L_vst_alig
-
- /* vst_alignment set text alignment
- * returns void (results in args)
- */
- void vst_alignment(int handle, int hin, int vin,
- int *hout, int *vout)
- {
- _intin[0] = hin;
- _intin[1] = vin;
- __vdi__(VDI_CONTRL_ENCODE(39, 0, 2, 0), handle);
-
- *hout = _intout[0];
- *vout = _intout[1];
- }
- #endif /* L_vst_alig */
-
- #ifdef L_vsf_inte
-
- /* vsf_interior set fill interior style
- * returns style selected
- */
- int vsf_interior(int handle, int style)
- {
- _intin[0] = style;
- __vdi__(VDI_CONTRL_ENCODE(23, 0, 1, 0), handle);
- return (int)_intout[0];
- }
- #endif /* L_vsf_inte */
-
- #ifdef L_vsf_fill
-
- /* vsf_fill set fill style
- * returns style selected
- */
- __asm__(".stabs \"_vsf_style\",5,0,0,_vsf_fill"); /* dept of clean tricks */
- int vsf_fill(int handle, int style)
- {
- _intin[0] = style;
- __vdi__(VDI_CONTRL_ENCODE(24, 0, 1, 0), handle);
- return (int)_intout[0];
- }
- #endif /* L_vsf_fill */
-
- #ifdef L_vsf_colo
-
- /* vsf_color set fill color
- * returns color index selected
- */
- int vsf_color(int handle, int index)
- {
- _intin[0] = index;
- __vdi__(VDI_CONTRL_ENCODE(25, 0, 1, 0), handle);
- return (int)_intout[0];
- }
- #endif /* L_vsf_colo */
-
- #ifdef L_vsf_peri
-
- /* vsf_perimeter set fill perimeter visibility
- * returns visibility
- */
- int vsf_perimeter(int handle, int vis)
- {
- _intin[0] = vis;
- __vdi__(VDI_CONTRL_ENCODE(104, 0, 1, 0), handle);
- return (int)_intout[0];
- }
- #endif /* L_vsf_peri */
-
- #ifdef L_vsf_udpa
-
- /* vsf_udpat set user defined fill pattern
- * returns void
- */
- void vsf_udpat(int handle, int pat[], int planes)
- {
- #ifndef __MSHORT__
-
- register int i, j;
-
- j = planes << 4;
- for(i = 0; i < j; i++)
- _intin[i] = pat[i];
- __vdi__(VDI_CONTRL_ENCODE(112, 0, j, 0), handle);
- #else
- _vdiparams[1] = &pat[0];
- __vdi__(VDI_CONTRL_ENCODE(112, 0, (planes << 4), 0), handle);
- _vdiparams[1] = (void *)&_intin[0];
- #endif
- }
- #endif /* L_vsf_udpa */
-
- /* -eof- */
-