unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (NetBSD-2.0)
Page:
Section:
Apropos / Subsearch:
optional field

cdk_display(3)             Library Functions Manual             cdk_display(3)



NAME
          Cdk - Curses Development Kit Display Capabilities.

SYNOPSIS
       Cdk  has  a  number of pre-defined display types which need explaining.
       This manual page will explain all of the display types and how  to  use
       them.  The following lists which display types will be outlined in this
       manual page.

       o How To Use Colors

       o How To Use Different Character Attributes

       o How To Justify Strings

       o How To Use Special Drawing Characters

DESCRIPTION
       Cdk has special formatting commands which can be included in any string
       which  add highlights, justification, or even colors to a basic string.
       This manual page outlines and demonstrates how they work.

       How To Use Colors
          Cdk has the capability to display colors in almost every string type
          displayed  in a Cdk widget. To turn on colors, the function initCDK-
          Color has to be called. When this function is called 64 color  pairs
          are   created.  Normally  the  color  pairs  are  accessed  via  the
          COLOR_PAIR macro. You can still do this, but creating a string  with
          multiple  colors gets terribly difficult. That is why the color com-
          mands were created. The color setting are  stored  directly  in  the
          string  and  when  the widget is created or activated, the string is
          converted to take advantage of any color commands in the string.  To
          turn  on  a  color  pair insert </XX> into the string; where XX is a
          numeric value from 0 to 64.  Color pair 0 is  the  standard  default
          color  pair  for the screen. To turn off a color pair use the format
          command <!XX> where XX is a numeric value from 0 to 64. The  follow-
          ing code segment demonstrates the use of the color commands.

                        ----------------------------------------
          #include <cdk.h>

          void main()
          {
             CDKSCREEN   *cdkscreen;
             CDKLABEL    *demo;
             WINDOW      *screen;
             char        *mesg[4];

             /* Initialize the Cdk screen.   */
             screen = initscr();
             cdkscreen = initCDKScreen (screen);

             /* Set the labels up.      */
             mesg[0] = "</1>This line should have a yellow foreground and a blue background.<!1>";
             mesg[1] = "</2>This line should have a white  foreground and a blue background.<!2>";
             mesg[2] = "</3>This line should have a yellow foreground and a red  background.<!3>";
             mesg[3] = "<C>This line should be set to whatever the screen default is.";

             /* Declare the labels.     */
             demo   = newCDKLabel (cdkscreen, CENTER, CENTER, mesg, 4, TRUE, TRUE);

             /* Draw the label          */
             drawCDKLabel (demo, TRUE);
             waitCDKLabel (demo, ' ');

             /* Clean up           */
             destroyCDKLabel (demo);
             destroyCDKScreen (cdkscreen);
             endCDK();
             exit (0);
          }
                        ----------------------------------------
          This  example uses the color pair 5 (which is white on blue) for the
          label to the entry widget.

       How To Use Different Character Attributes
          Cdk also provides attribute commands which allow different character
          attributes  to  be  displayed  in  a  Cdk widget. To use a character
          attribute the format command is </X> where X is one of several  com-
          mand  characters.  To turn a attribute off use the command <!X>. The
          following table outlines the command characters and what they mean.

             Command_Character      Character_Attribute
             B                      Bold
             U                      Underline
             K                      Blink
             R                      Reverse
             S                      Standout
             D                      Dim
             N                      Normal

          The following code segment demonstrates the use of character display
          attributes.
                        ----------------------------------------
          #include <cdk.h>

          void main()
          {
             CDKSCREEN   *cdkscreen;
             CDKLABEL    *demo;
             WINDOW *screen;
             char        *mesg[4];

             /* Initialize the Cdk screen.   */
             screen = initscr();
             cdkscreen = initCDKScreen (screen);

             /* Set the labels up.      */
             mesg[0] = "</B/1>This line should have a yellow foreground and a blue background.<!1>";
             mesg[1] = "</U/2>This line should have a white  foreground and a blue background.<!2>";
             mesg[2] = "</K/3>This line should have a yellow foreground and a red  background.<!3>";
             mesg[3] = "<C>This line should be set to whatever the screen default is.";

             /* Declare the labels.     */
             demo   = newCDKLabel (cdkscreen, CENTER, CENTER, mesg, 4, TRUE, TRUE);

             /* Draw the label          */
             drawCDKLabel (demo, TRUE);
             waitCDKLabel (demo, ' ');

             /* Clean up           */
             destroyCDKLabel (demo);
             destroyCDKScreen (cdkscreen);
             endCDK();
             exit (0);
          }
                        ----------------------------------------
          Notice  that  color commands and format commands can be mixed inside
          the same format marker.  The  above  example  underlines  the  label
          marker, which also sets color pair number 5.

       How To Justify Strings
          Justification  commands can left justify, right justify, or center a
          string of text. To use a justification format in a string  the  com-
          mand  <X>  is used. The following table lists all of the format com-
          mands available.

             Justification_Command    Action.
             <L>                      Left Justified. Default if not stated.
             <C>                      Centered text.
             <R>                      Right justified.
             <I=X>                    Indent the line X characters.
             <B=X>                    Bullet. X is the bullet string to use.
             <F=X>                    Links in a file where X is the filename.
                                      Currently only works with the viewer
                                      widget.

          The following code segment demonstrates how to use the justification
          commands in a Cdk widget.
                        ----------------------------------------
          #include <cdk.h>

          void main()
          {
             CDKSCREEN   *cdkscreen;
             CDKLABEL    *demo;
             WINDOW *screen;
             char        *mesg[4];

             /* Initialize the Cdk screen.   */
             screen = initscr();
             cdkscreen = initCDKScreen (screen);

             /* Set the labels up.      */
             mesg[0] = "<R></B/1>This line should have a yellow foreground and a blue background.<!1>";
             mesg[1] = "</U/2>This line should have a white  foreground and a blue background.<!2>";
             mesg[2] = "<B=+>This is a bullet.";
             mesg[3] = "<I=10>This is indented 10 characters.";
             mesg[4] = "<C>This line should be set to whatever the screen default is.";

             /* Declare the labels.     */
             demo   = newCDKLabel (cdkscreen, CENTER, CENTER, mesg, 5, TRUE, TRUE);

             /* Draw the label          */
             drawCDKLabel (demo, TRUE);
             waitCDKLabel (demo, ' ');

             /* Clean up           */
             destroyCDKLabel (demo);
             destroyCDKScreen (cdkscreen);
             endCDK();
             exit (0);
          }
                        ----------------------------------------
          The  bullet  format  command can take either a single character or a
          string.  The bullet in the the above example would look like
             + This is a bullet.
          but if we were to use the following command instead
                                <B=***>This is a bullet.
          it would look like
             *** This is a bullet.

          The only restriction that a format command has is that it must be at
          the beginning of the string.

       How To Use Special Drawing Characters
          Cdk  has  a  set of special drawing characters which can be inserted
          into any ASCII file. In order to use a special character the  format
          command <#XXX> is used. The following table lists all of the special
          character commands available.

             Special_Character   Character
             <#UL>               Upper Left Corner
             <#UR>               Upper Right Corner
             <#LL>               Lower Left Corner
             <#LR>               Lower Right Corner
             <#LT>               Left Tee
             <#RT>               Right Tee
             <#TT>               Top Tee
             <#BT>               Bottom Tee
             <#HL>               Horizontal Line
             <#VL>               Vertical Line
             <#PL>               Plus Sign
             <#PM>               Plus/Minus Sign
             <#DG>               Degree Sign
             <#CB>               Checker Board
             <#DI>               Diamond
             <#BU>               Bullet

          The character formats can be  repeated  using  an  optional  numeric
          repeat  value.   To  repeat  a character add (XXX) to the end of the
          character format. The following example, draws 10 horizontal lines.

          <#HL(10)>

          The following code segment draws a box within a label window.
                        ----------------------------------------
          #include "cdk.h"

          void main()
          {
             /* Declare variables. */
             CDKSCREEN   *cdkscreen;
             CDKLABEL    *demo;
             WINDOW      *cursesWin;
             char        *mesg[4];

             /* Set up CDK         */
             cursesWin = initscr();
             cdkscreen = initCDKScreen (cursesWin);

             /* Start CDK Colors        */
             initCDKColor();

             /* Set the labels up. */
             mesg[0] = "<C><#UL><#HL(25)><#UR>";
             mesg[1] = "<C><#VL></R>This text should be boxed.<!R><#VL>";
             mesg[2] = "<C><#LL><#HL(25)><#LR>";
             mesg[3] = "<C>While this is not.";

             /* Declare the labels.     */
             demo   = newCDKLabel (cdkscreen, CENTER, CENTER, mesg, 4, TRUE, TRUE);

             /* Is the label NULL???    */
             if (demo == (CDKLABEL *)NULL)
             {
                /* Clean up the memory. */
                destroyCDKScreen (cdkscreen);

                /* End curses...        */
                endCDK();

                /* Spit out a message.  */
                printf ("Oops. Can't seem to create the label. Is the window too small?0);
                exit (1);
             }

             /* Draw the CDK screen.    */
             refreshCDKScreen (cdkscreen);
             waitCDKLabel (demo, ' ');

             /* Clean up           */
             destroyCDKLabel (demo);
             destroyCDKScreen (cdkscreen);
             delwin (cursesWin);
             endCDK();
             exit (0);
          }
                        ----------------------------------------

          Notice that drawn text can also be justified.

SEE ALSO
       cdk(3), cdk_binding(3), cdk_screen(3)

NOTES
       The  header  file  &lt&lt;cdk.h&gt&gt;  automatically  includes  the  header  files
       &lt&lt;curses.h&gt&gt;,  &lt&lt;stdlib.h&gt&gt;, &lt&lt;string.h&gt&gt;, &lt&lt;ctype.h&gt&gt;, &lt&lt;unistd.h&gt&gt;, &lt&lt;dirent.h&gt&gt;,
       &lt&lt;time.h&gt&gt;, &lt&lt;errno.h&gt&gt;, &lt&lt;pwd.h&gt&gt;, &lt&lt;grp.h&gt&gt;, &lt&lt;sys/stat.h&gt&gt;, and &lt&lt;sys/types.h&gt&gt;.
       The &lt&lt;curses.h&gt&gt; header file includes &lt&lt;stdio.h&gt&gt; and &lt&lt;unctrl.h&gt&gt;.



                                  05 Dec 1995                   cdk_display(3)