setlinestyle


Syntax

#include <graphics.h>

void setlinestyle(int linestyle, unsigned upattern, int thickness);

Description
setlinestyle sets the style for all lines drawn by line, lineto, rectangle, drawpoly, and so on.

The linesettingstype structure is defined in graphics.h as follows:


struct linesettingstype {

   int linestyle;

   unsigned upattern;

   int thickness;

};

linestyle specifies in which of several styles subsequent lines will be drawn (such as solid, dotted, centered, dashed). The enumeration line_styles, which is defined in graphics.h, gives names to these operators:
NameValue   Description
SOLID_LINE 0 Solid line
DOTTED_LINE 1 Dotted line
CENTER_LINE 2 Centered line
DASHED_LINE 3 Dashed line
USERBIT_LINE    4 User-defined line style
thickness specifies whether the width of subsequent lines drawn will be normal or thick.
NameValue   Description
NORM_WIDTH 1 1 pixel wide
THICK_WIDTH    3 3 pixels wide
upattern is a 16-bit pattern that applies only if linestyle is USERBIT_LINE (4). In that case, whenever a bit in the pattern word is 1, the corresponding pixel in the line is drawn in the current drawing color. For example, a solid line corresponds to a upattern of 0xFFFF (all pixels drawn), and a dashed line can correspond to a upattern of 0x3333 or 0x0F0F. If the linestyle parameter to setlinestyle is not USERBIT_LINE (in other words, if it is not equal to 4), you must still provide the upattern parameter, but it will be ignored.

Note: The linestyle parameter does not affect arcs, circles, ellipses, or pie slices. Only the thickness parameter is used.

Return Value
If invalid input is passed to setlinestyle, graphresult returns -11, and the current line style remains unchanged.

See also
arc
bar3d
bar
circle
drawpoly
ellipse
getlinesettings
graphresult
line
linerel
lineto
pieslice
rectangle

Example

/* setlinestyle example */ 



#include <graphics.h>

#include <stdlib.h>

#include <string.h>

#include <stdio.h>

#include <conio.h>



/* the names of the line styles supported */

char *lname[] = { "SOLID_LINE", "DOTTED_LINE", "CENTER_LINE", "DASHED_LINE", "USERBIT_LINE" };



int main(void)

{

   /* request autodetection */

   int gdriver = DETECT, gmode, errorcode;

   int style, midx, midy, userpat;

   char stylestr[40];



   /* initialize graphics and local variables */

   initgraph(&gdriver, &gmode, "");





   /* read result of initialization */

   errorcode = graphresult();

   if (errorcode != grOk) {  /* an error occurred */

      printf("Graphics error: %s\n", grapherrormsg(errorcode));

      printf("Press any key to halt:");

      getch();

      exit(1);               /* terminate with an error code */

   }



   midx = getmaxx() / 2;

   midy = getmaxy() / 2;



   /* a user-defined line pattern */

   /* binary: "0000000000000001" */

   userpat = 1;

   for (style=SOLID_LINE; style<=USERBIT_LINE; style++)



   {

      /* select the line style */

      setlinestyle(style, userpat, 1);



      /* convert style into a string */

      strcpy(stylestr, lname[style]);



      /* draw a line */

      line(0, 0, midx-10, midy);





      /* draw a rectangle */

      rectangle(0, 0, getmaxx(), getmaxy());



      /* output a message */

      outtextxy(midx, midy, stylestr);



      /* wait for a key */

      getch();

      cleardevice();

   }



   /* clean up */

   closegraph();



   return 0;

}


Back to index