/hpc_kernel_samples/sparse_linear_algebra/casestudies/pagerank-petsc/petsc-2.3.2-p10/src/sys/draw/impls/x/frame.c.html
https://gitlab.com/Bulut81/CodeVault · HTML · 123 lines · 109 code · 14 blank · 0 comment · 0 complexity · 0994685e752c14bf01a2b9359424d199 MD5 · raw file
- <center><a href="frame.c">Actual source code: frame.c</a></center><br>
- <html>
- <head>
- <title></title>
- <meta name="generator" content="c2html 0.9.5">
- <meta name="date" content="2007-03-29T00:17:41+00:00">
- </head>
- <body bgcolor="#FFFFFF">
- <pre width="80"><a name="line1"> 1: </a><strong><font color="#228B22">#define PETSC_DLL</font></strong>
- <a name="line2"> 2: </a><font color="#B22222">/*</font>
- <a name="line3"> 3: </a><font color="#B22222"> This file contains routines to draw a 3-d like frame about a given </font>
- <a name="line4"> 4: </a><font color="#B22222"> box with a given width. Note that we might like to use a high/low</font>
- <a name="line5"> 5: </a><font color="#B22222"> color for highlights.</font>
- <a name="line7"> 7: </a><font color="#B22222"> The region has 6 parameters. These are the dimensions of the actual frame.</font>
- <a name="line8"> 8: </a><font color="#B22222"> */</font>
- <a name="line10"> 10: </a> #include <A href="../../../../../src/sys/draw/impls/x/ximpl.h.html">src/sys/draw/impls/x/ximpl.h</A>
- <a name="line12"> 12: </a><strong><font color="#4169E1">EXTERN PixVal XiGetColor(PetscDraw_X *,char *,int)</font></strong>;
- <a name="line14"> 14: </a><font color="#B22222">/* 50% grey stipple pattern */</font>
- <a name="line15"> 15: </a>static Pixmap grey50 = (Pixmap)0;
- <a name="line16"> 16: </a><strong><font color="#228B22">#define cboard50_width 8</font></strong>
- <a name="line17"> 17: </a><strong><font color="#228B22">#define cboard50_height 8</font></strong>
- <a name="line18"> 18: </a>static unsigned char cboard50_bits[] = {
- <a name="line19"> 19: </a> 0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa};
- <a name="line21"> 21: </a>static PixVal HiPix=0,LoPix=0;
- <a name="line22"> 22: </a><font color="#B22222">/* </font>
- <a name="line23"> 23: </a><font color="#B22222"> Set the colors for the highlights by name </font>
- <a name="line24"> 24: </a><font color="#B22222"> */</font>
- <a name="line27"> 27: </a><strong><font color="#4169E1"><a name="XiFrameColors"></a><A href="../../../../../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> XiFrameColors(PetscDraw_X* XiWin,XiDecoration *Rgn,char *Hi,char *Lo)</font></strong>
- <a name="line28"> 28: </a>{
- <a name="line30"> 30: </a> Rgn->Hi = XiGetColor(XiWin,Hi,1);
- <a name="line31"> 31: </a> Rgn->Lo = XiGetColor(XiWin,Lo,1);
- <a name="line32"> 32: </a> Rgn->HasColor = Rgn->Hi != Rgn->Lo;
- <a name="line33"> 33: </a> <font color="#4169E1">return</font>(0);
- <a name="line34"> 34: </a>}
- <a name="line38"> 38: </a><strong><font color="#4169E1"><a name="XiDrawFrame"></a><A href="../../../../../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> XiDrawFrame(PetscDraw_X *XiWin,XiDecoration *Rgn)</font></strong>
- <a name="line39"> 39: </a>{
- <a name="line40"> 40: </a> int xl = Rgn->Box.x,yl = Rgn->Box.y,xh = Rgn->Box.xh,yh = Rgn->Box.yh,
- <a name="line41"> 41: </a> o = Rgn->width;
- <a name="line42"> 42: </a> XPoint high[7],low[7];
- <a name="line43"> 43: </a> PixVal Hi,Lo;
- <a name="line46"> 46: </a> <font color="#B22222">/* High polygon */</font>
- <a name="line47"> 47: </a> high[0].x = xl; high[0].y = yh;
- <a name="line48"> 48: </a> high[1].x = xl + o; high[1].y = yh - o;
- <a name="line49"> 49: </a> high[2].x = xh - o; high[2].y = yh - o;
- <a name="line50"> 50: </a> high[3].x = xh - o; high[3].y = yl + o;
- <a name="line51"> 51: </a> high[4].x = xh; high[4].y = yl;
- <a name="line52"> 52: </a> high[5].x = xh; high[5].y = yh;
- <a name="line53"> 53: </a> high[6].x = xl; high[6].y = yh; <font color="#B22222">/* close path */</font>
- <a name="line55"> 55: </a> low[0].x = xl; low[0].y = yh;
- <a name="line56"> 56: </a> low[1].x = xl; low[1].y = yl;
- <a name="line57"> 57: </a> low[2].x = xh; low[2].y = yl;
- <a name="line58"> 58: </a> low[3].x = xh - o; low[3].y = yl + o;
- <a name="line59"> 59: </a> low[4].x = xl + o; low[4].y = yl + o;
- <a name="line60"> 60: </a> low[5].x = xl + o; low[5].y = yh - o;
- <a name="line61"> 61: </a> low[6].x = xl; low[6].y = yh; <font color="#B22222">/* close path */</font>
- <a name="line63"> 63: </a> <font color="#4169E1">if</font> (Rgn->HasColor) {
- <a name="line64"> 64: </a> <font color="#4169E1">if</font> (Rgn->Hi) Hi = Rgn->Hi;
- <a name="line65"> 65: </a> <font color="#4169E1">else</font> Hi = HiPix;
- <a name="line66"> 66: </a> <font color="#4169E1">if</font> (Rgn->Lo) Lo = Rgn->Lo;
- <a name="line67"> 67: </a> <font color="#4169E1">else</font> Lo = LoPix;
- <a name="line68"> 68: </a> XiSetPixVal(XiWin,(Rgn->is_in !=0) ? Hi : Lo);
- <a name="line69"> 69: </a> <font color="#4169E1">if</font> (o <= 1)
- <a name="line70"> 70: </a> XDrawLines(XiWin->disp,XiDrawable(XiWin),XiWin->gc.set,
- <a name="line71"> 71: </a> high,7,CoordModeOrigin);
- <a name="line72"> 72: </a> <font color="#4169E1">else</font>
- <a name="line73"> 73: </a> XFillPolygon(XiWin->disp,XiDrawable(XiWin),XiWin->gc.set,
- <a name="line74"> 74: </a> high,7,Nonconvex,CoordModeOrigin);
- <a name="line75"> 75: </a> XiSetPixVal(XiWin,(Rgn->is_in !=0) ? Lo : Hi);
- <a name="line76"> 76: </a> <font color="#4169E1">if</font> (o <= 1)
- <a name="line77"> 77: </a> XDrawLines(XiWin->disp,XiDrawable(XiWin),XiWin->gc.set,
- <a name="line78"> 78: </a> low,7,CoordModeOrigin);
- <a name="line79"> 79: </a> <font color="#4169E1">else</font>
- <a name="line80"> 80: </a> XFillPolygon(XiWin->disp,XiDrawable(XiWin),XiWin->gc.set,
- <a name="line81"> 81: </a> low,7,Nonconvex,CoordModeOrigin);
- <a name="line82"> 82: </a> <font color="#B22222">/* We could use additional highlights here,such as lines drawn</font>
- <a name="line83"> 83: </a><font color="#B22222"> connecting the mitred edges. */</font>
- <a name="line84"> 84: </a> }
- <a name="line85"> 85: </a> <font color="#4169E1">else</font> {
- <a name="line86"> 86: </a> <font color="#4169E1">if</font> (!grey50)
- <a name="line87"> 87: </a> grey50 = XCreatePixmapFromBitmapData(XiWin->disp,XiWin->win,
- <a name="line88"> 88: </a> (char *)cboard50_bits,
- <a name="line89"> 89: </a> cboard50_width,
- <a name="line90"> 90: </a> cboard50_height,1,0,1);
- <a name="line91"> 91: </a> XiSetPixVal(XiWin,Rgn->Hi);
- <a name="line92"> 92: </a> XFillPolygon(XiWin->disp,XiDrawable(XiWin),XiWin->gc.set,
- <a name="line93"> 93: </a> high,7,Nonconvex,CoordModeOrigin);
- <a name="line94"> 94: </a> <font color="#B22222">/* This can actually be done by using a stipple effect */</font>
- <a name="line95"> 95: </a> XSetFillStyle(XiWin->disp,XiWin->gc.set,FillStippled);
- <a name="line96"> 96: </a> XSetStipple(XiWin->disp,XiWin->gc.set,grey50);
- <a name="line97"> 97: </a> XFillPolygon(XiWin->disp,XiDrawable(XiWin),XiWin->gc.set,
- <a name="line98"> 98: </a> low,7,Nonconvex,CoordModeOrigin);
- <a name="line99"> 99: </a> XSetFillStyle(XiWin->disp,XiWin->gc.set,FillSolid);
- <a name="line100">100: </a> }
- <a name="line101">101: </a> <font color="#4169E1">return</font>(0);
- <a name="line102">102: </a>}
- <a name="line105">105: </a><font color="#B22222">/*</font>
- <a name="line106">106: </a><font color="#B22222"> Set the colors for the highlights by name </font>
- <a name="line107">107: </a><font color="#B22222"> */</font>
- <a name="line110">110: </a><strong><font color="#4169E1"><a name="XiFrameColorsByName"></a><A href="../../../../../docs/manualpages/Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> XiFrameColorsByName(PetscDraw_X* XiWin,char *Hi,char *Lo)</font></strong>
- <a name="line111">111: </a>{
- <a name="line113">113: </a> <font color="#4169E1">if</font> (XiWin->numcolors > 2) {
- <a name="line114">114: </a> HiPix = XiGetColor(XiWin,Hi,1);
- <a name="line115">115: </a> LoPix = XiGetColor(XiWin,Lo,1);
- <a name="line116">116: </a> }
- <a name="line117">117: </a> <font color="#4169E1">return</font>(0);
- <a name="line118">118: </a>}
- </pre>
- </body>
- </html>