home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / prog2 / boss_ng.lzh / BOSSWIN.TXT < prev    next >
Encoding:
Text File  |  1988-05-22  |  23.0 KB  |  784 lines

  1. !short: wn_init
  2.          ^bwn_init -- init window system^b
  3.  
  4.         ^UUSAGE^U
  5.  
  6.           wn_init()
  7.  
  8.           wn_init() and wn_exit(), if used, should be the first and last 
  9.           functions called. wn_init() saves the video state and 
  10.           application entry screen.  wn_init() is typically the very 
  11.           first function called in the main program. wn_exit() restores 
  12.           the saved video state and screen image.  wn_exit() is typically 
  13.           called just prior to calling exit().
  14.           
  15.         ^URETURNS^U
  16.  
  17.           TRUE if successful, FALSE if error.
  18.  
  19.         ^UCAUTIONS^U
  20.  
  21.           NONE.
  22. !short: wn_exit
  23.          ^bwn_exit -- exit window system^b
  24.          
  25.         ^UUSAGE^U
  26.  
  27.           wn_exit()
  28.           wn_init() and wn_exit(), if used, should be the first and last 
  29.           functions called. wn_init() saves the video state and 
  30.           application entry screen.  wn_init() is typically the very 
  31.           first function called in the main program. wn_exit() restores 
  32.           the saved video state and screen image.  wn_exit() is typically 
  33.           called just prior to calling exit().
  34.           
  35.         ^URETURNS^U
  36.  
  37.           TRUE if successful, FALSE if error.
  38.  
  39.         ^UCAUTIONS^U
  40.  
  41.           NONE.
  42. !short: wn_dmode
  43.          ^bwn_dmode -- set window display mode^b
  44.  
  45.         ^UUSAGE^U
  46.  
  47.           wn_dmode(mode)
  48.           int mode
  49.  
  50.                   mode = PAINT for painted windows
  51.                   mode = FLASH for instant windows
  52.  
  53.           wn_dmode sets the windows display mode as per mode, PAINT style 
  54.           windows appear to be painted (top to bottom) where FLASH style 
  55.           windows instantly appear.
  56.  
  57.         ^URETURNS^U
  58.  
  59.           Nothing.
  60.  
  61.         ^UCAUTIONS^U
  62.  
  63.           CGA only. Updates are made directly to video memory.
  64. !short: wn_open
  65.          ^bwn_open -- open window ^b
  66.  
  67.         ^UUSAGE^U
  68.  
  69.           wn = (WINDOWPTR)wn_open(page, row, col, width, height, atrib, batrib)
  70.           int page, row, col, width, height, atrib, batrib;
  71.  
  72.                 page -  0 ,1000, or 800. 
  73.                         1000 opens a borderless page
  74.                          800 opens an exploding window
  75.                 row  -  row of upper left hand corner of the window
  76.                 col  -  column of upper left hand corner of the window
  77.                 width - INSIDE dimension (max value is 78, 80 if page = 1000)
  78.                 height- INSIDE dimension (max value is 23, 25 if page = 1000)
  79.                 atrib - attribute to be used IN the window
  80.                 batrib- attribute to be used for the border
  81.  
  82.           wn_open is usually the first function called to create and use 
  83.           a window.  wn_open dynamically allocates memory to save the 
  84.           area defined by row, col, width, and height - saves the image, 
  85.           opens the window and homes the logical cursor to row 0, col 0 
  86.           of the window.  The window is now ready to be used by the 
  87.           various window management routines.  
  88.  
  89.           Attributes are defined in windows.h.
  90.  
  91.         ^URETURNS^U
  92.  
  93.           wn = window handle or NULL if error
  94.  
  95.         ^UCAUTIONS^U
  96.  
  97.           Width and height are inside dimensions. If you want a window 
  98.           with a work area of 10 rows and 5 columns, the width is 7 and 
  99.           the height is 12.  
  100.           
  101.           The flashing cursor will not be displayed unless wn_sync() has 
  102.           been called with a value of TRUE.  
  103.  
  104.           The window "wn" automatically becomes the top window tile upon 
  105.           return.
  106. !short: wn_title
  107.          ^bwn_title -- title window^b
  108.  
  109.         ^UUSAGE^U
  110.  
  111.           wn_title(wn,title)
  112.           WINDOWPTR wn;
  113.           char *title;
  114.  
  115.                 wn    - window handle
  116.                 title - string pointer to title
  117.  
  118.           The title is displayed on the top border of the window using 
  119.           the currently defined border attribute.  The cursor is 
  120.           positioned off the screen after the title is written.  
  121.  
  122.         ^URETURNS^U
  123.  
  124.           TRUE if all is well, NULL if the title is to large to fit on 
  125.           the top border or errror.
  126.  
  127.         ^UCAUTIONS^U
  128.  
  129.           The window "wn" automatically becomes the top window tile upon 
  130.           return.
  131. !short: wn_titla
  132.          ^bwn_titla -- title window with attribute^b
  133.  
  134.         ^UUSAGE^U
  135.  
  136.           wn_titla(wn,title,atrib)
  137.           WINDOWPTR wn;
  138.           char *title;
  139.           int atrib;
  140.  
  141.                 wn    - window handle
  142.                 title - string pointer to title
  143.                 atrib - attribute to use for text
  144.  
  145.           The title is displayed on the top border of the window using 
  146.           the attribute specified by atrib.  The cursor is positioned off 
  147.           the screen after the title is written.  
  148.  
  149.         ^URETURNS^U
  150.  
  151.           TRUE if all is well, NULL if the title is to large to fit on 
  152.           the top border or error.
  153.  
  154.         ^UCAUTIONS^U
  155.  
  156.           The window "wn" automatically becomes the top window tile upon 
  157.           return.
  158. !short: wn_close
  159.          ^bwn_close -- close window^b
  160.  
  161.         ^UUSAGE^U
  162.  
  163.           wn_close(wn) 
  164.           WINDOWPTR wn; 
  165.  
  166.                 wn - handle of a previously opened window.
  167.  
  168.           wn_close removes the window specified by wn and restores the 
  169.           screen area under the window to its previous contents.  The 
  170.           memory allocated by wn_open is returned to the free list.  The 
  171.           cursor is positioned to where it was located prior to the 
  172.           wn_open call.  
  173.  
  174.         ^URETURNS^U 
  175.  
  176.           TRUE or NULL if error
  177.  
  178.         ^UCAUTIONS^U 
  179.  
  180.           None.
  181. !short: wn_save
  182.          ^bwn_save -- save screen image ^b
  183.  
  184.         ^UUSAGE^U
  185.  
  186.           wn = (WINDOWPTR)wn_save(page, row, col, width, height)
  187.           int page, row, col, width, height;
  188.  
  189.                 page -  always 0.
  190.                 row  -  row of upper left hand corner of the window
  191.                 col  -  column of upper left hand corner of the window
  192.                 width - INSIDE dimension (max value is 78)
  193.                 height- INSIDE dimension (max value is 23)
  194.  
  195.           wn_save can be used to save areas of the screen for purposes 
  196.           other than windows.  
  197.  
  198.           Memory for the screen image is dynamically allocated.
  199.  
  200.         ^URETURNS^U
  201.  
  202.           wn = window handle or NULL if error
  203.  
  204.         ^UCAUTIONS^U
  205.  
  206.           The window handle returned by wn_save should only be used with 
  207.           wn_restore, use with other routines could produce unpredictable 
  208.           results.
  209. !short: wn_restore
  210.          ^bwn_restore -- restore saved screen image^b
  211.  
  212.         ^UUSAGE^U
  213.  
  214.           wn_restore(wn)
  215.           WINDOWPTR wn;
  216.  
  217.                 wn - handle of previously wn_save(ed) window.
  218.  
  219.           Restores the screen image corresponding to the window handle 
  220.           wn, allocated memory is returned to the free list.
  221.  
  222.         ^URETURNS^U
  223.  
  224.           TRUE or NULL if error
  225.  
  226.         ^UCAUTIONS^U
  227.  
  228.           This function should only be used with window handles obtained 
  229.           from wn_save.
  230. !short: wn_move
  231.          ^bwn_move -- move window^b
  232.  
  233.         ^UUSAGE^U
  234.  
  235.           wn = (WINDOWPTR)wn_move(wn,row,col)
  236.  
  237.                 wn -  handle of window to be moved
  238.                 row - destination row
  239.                 col - destination column
  240.  
  241.           Moves the window corresponding to wn to a new location.  The 
  242.           cursor is positioned off the screen after the call.  
  243.  
  244.         ^URETURNS^U
  245.  
  246.           Window handle of the window moved or NULL if error.
  247.  
  248.         ^UCAUTIONS^U
  249.  
  250.           The window "wn" automatically becomes the top window tile upon 
  251.           return.
  252. !short: wn_locate
  253.          ^bwn_locate -- locate cursor in window^b
  254.  
  255.         ^UUSAGE^U
  256.  
  257.           wn_locate(wn, row, col)
  258.           WINDOWPTR wn;
  259.           int row, col;
  260.  
  261.                 wn  - window handle
  262.                 row - row to position to (relative to window origin)
  263.                 col - column to position to (relative to window origin)
  264.  
  265.           Position the cursor to the row and column specified.  Row and  
  266.           Column values are relative to the origin of the window (0,0 
  267.           locates the cursor in the upper left hand corner of the window 
  268.           referenced by wn).
  269.  
  270.         ^URETURNS^U
  271.  
  272.           TRUE or NULL if error
  273.  
  274.         ^UCAUTIONS^U
  275.  
  276.           Values of row & col are not checked.
  277.  
  278.           The window "wn" automatically becomes the top window tile upon 
  279.           return.
  280. !short: wn_printf
  281.          ^bwn_printf -- window printf^b
  282.  
  283.         ^UUSAGE^U
  284.  
  285.           wn_printf(wn, cs, args)
  286.           WINDOWPTR wn;
  287.           char *cs;
  288.           ?? arg1 ... argn;
  289.  
  290.                 wn   - window handle
  291.                 cs   - format control string
  292.                 args - argument list
  293.  
  294.           printf function for windows!
  295.  
  296.         ^URETURNS^U
  297.  
  298.           TRUE or NULL if error
  299.  
  300.         ^UCAUTIONS^U
  301.  
  302.           Output string length is limited to 254 bytes.
  303.           Registered users can, of course, edit the wn_printf function 
  304.           set the limit to whatever they wish.
  305.  
  306.           Integer only for Microsoft 3.0.  This limitation 
  307.           be overcome by using sprintf in conjunction with wn_printf.  
  308.           For example:
  309.  
  310.                   char buf[256];
  311.                        ..
  312.                        ..
  313.                   sprintf(buf,"%d %l %x\n", intval, longval, hexval);
  314.                   wn_printf(wn, buf);
  315.  
  316.           Full support in Microsoft 4.0, Lattice, CI86, and Datalight.  
  317.  
  318.           The window "wn" automatically becomes the top window tile upon 
  319.           return.
  320. !short: wn_puts
  321.          ^bwn_puts -- put string (high speed)^b
  322.  
  323.         ^UUSAGE^U
  324.  
  325.           wn_puts(wn, row, col, string)
  326.           WINDOWPTR wn;
  327.           int row, col;
  328.           char *string;
  329.  
  330.                 wn -    window handle
  331.                 row -   row to print the string at
  332.                 col -   column to print the string at
  333.                 string- the string to print
  334.  
  335.           Row and Col are relative to the origin of the window.
  336.  
  337.           The cursor is displayed only if wn_synflg has been called with 
  338.           a value of TRUE.
  339.  
  340.         ^URETURNS^U
  341.  
  342.           TRUE or NULL if error
  343.  
  344.         ^UCAUTIONS^U
  345.  
  346.           wn_puts writes the string directly to the video ram. Tabs, line 
  347.           feeds, carriage returns and other control characters are not 
  348.           filtered or processed in any way.
  349.  
  350.           Range checks are not performed to insure the specified string 
  351.           can be contained in the window.  
  352.  
  353.           The window "wn" automatically becomes the top window tile upon 
  354.           return.
  355. !short: wn_gets
  356.          ^bwn_gets -- get string with validation^b
  357.  
  358.         ^UUSAGE^U
  359.  
  360.           (char *) wn_gets(wn, buf, va, uva)
  361.           WINDOWPTR wn;
  362.           char *buf;
  363.           int va;
  364.           char *uva;
  365.  
  366.                 wn -    window handle
  367.                 buf -   user buffer for string
  368.                 va -    input validation to be used
  369.                 uva -   user validation list [optional]
  370.  
  371.           va specifies the type of input validation to be performed as 
  372.           data is being entered. Options are:
  373.  
  374.                 (1) none                no restrictions - accept everything
  375.                 (2) integer             accept: 0 thru 9 + -
  376.                 (3) floating point      accept: 0 thru 9 + - .
  377.                 (4) alpha only          accept: a thru z (upper & lower case)
  378.                 (5) upper case only     accept: A thru Z 
  379.                 (6) validation list     accept: only those characters
  380.                     (optional)                  specified in the uva string.
  381.  
  382.                 ORing va with 0x8000 disables data entry character echo.
  383.  
  384.           The following editing functions are supported:
  385.  
  386.                 . backspace & rubout do the logical things
  387.                 . ^U, ^X, and ^C wipe the field clean
  388.                 . Return and Esc end the input function 
  389.  
  390.           Data entry takes place at the current logical cursor location. 
  391.           You  can, of course, position the cursor to where you wish 
  392.           prior to calling wn_gets.
  393.  
  394.           Example:
  395.  
  396.                 wn_printf(wn,"Enter your name > ");
  397.                 wn_get(wn,buf,4,0);
  398.  
  399.         ^URETURNS^U
  400.  
  401.           Pointer to buf or NULL if error
  402.  
  403.         ^UCAUTIONS^U
  404.  
  405.           The window "wn" automatically becomes the top window tile upon 
  406.           return.
  407. !short: wn_putsa
  408.          ^bwn_putsa -- put string and attribute (high speed)^b
  409.  
  410.         ^UUSAGE^U
  411.  
  412.           wn_putsa(wn, row, col, string, atrib)
  413.           WINDOWPTR wn;
  414.           int row, col;
  415.           char *string;
  416.           int atrib;
  417.  
  418.                 wn -    window handle
  419.                 row -   row to print the string at
  420.                 col -   column to print the string at
  421.                 string- the string to print
  422.                 atrib - attribute to be used with string
  423.  
  424.           Row and Col are relative to the origin of the window.
  425.  
  426.           The cursor is displayed only if wn_synflg has been called with 
  427.           a value of TRUE.
  428.  
  429.         ^URETURNS^U
  430.  
  431.           TRUE or NULL if error
  432.  
  433.         ^UCAUTIONS^U
  434.  
  435.           wn_puts writes the string directly to the video ram. Tabs, line 
  436.           feeds, carriage returns and other control characters are not 
  437.           filtered or processed in any way.
  438.  
  439.           Range checks are not performed to insure the specified string 
  440.           can be contained in the window.  
  441.  
  442.           The window "wn" automatically becomes the top window tile upon 
  443.           return.
  444. !short: wn_insrow 
  445.          ^bwn_insrow -- insert row in window^b
  446.  
  447.         ^UUSAGE^U
  448.  
  449.           wn_insrow(wn, row)
  450.           WINDOWPTR wn;
  451.           int row;
  452.  
  453.                 wn -  window handle
  454.                 row - row at which a line is to be inserted
  455.  
  456.           Row is relative to the origin of the window.  All lines below 
  457.           the row specified are scrolled down.  The currently defined 
  458.           window attribute is used to clear the lines inserted.  
  459.  
  460.         ^URETURNS^U
  461.  
  462.           TRUE or NULL if error
  463.  
  464.         ^UCAUTIONS^U
  465.  
  466.           The window "wn" automatically becomes the top window tile upon 
  467.           return.
  468. !short: wn_delrow
  469.          ^bwn_delrow -- delete row from window^b
  470.  
  471.         ^UUSAGE^U
  472.  
  473.           wn_delrow(wn, row)
  474.           WINDOWPTR wn;
  475.           int row;
  476.  
  477.                 wn -  window handle
  478.                 row - row at which a line is to be deleted
  479.  
  480.           Row is relative to the origin of the window.  All lines below 
  481.           the row specified are scrolled up. The currently defined window 
  482.           attribute is used to clear the lines inserted.  
  483.  
  484.         ^URETURNS^U
  485.  
  486.           TRUE or NULL if error
  487.  
  488.         ^UCAUTIONS^U
  489.           The window "wn" automatically becomes the top window tile upon 
  490.           return.
  491. !short: wn_clr
  492.          ^bwn_clr -- clear window^b
  493.  
  494.         ^UUSAGE^U
  495.  
  496.           wn_clr(wn)
  497.           WINDOWPTR wn;
  498.  
  499.                 wn - window handle
  500.  
  501.           The window corresponding to wn is cleared (mini clear screen).  
  502.           The currently defined window attribute is used to clear the 
  503.           interior of the window.  
  504.  
  505.           The windows virtual cursor is homed.
  506.  
  507.         ^URETURNS^U
  508.  
  509.           TRUE or NULL if error
  510.  
  511.         ^UCAUTIONS^U
  512.  
  513.           The window "wn" automatically becomes the top window tile upon 
  514.           return.
  515. !short: wn_activate
  516.          ^bwn_activate -- activate window^b
  517.  
  518.         ^UUSAGE^U
  519.  
  520.           wn_activate(wn)
  521.           WINDOWPTR wn;
  522.  
  523.              wn - window handle
  524.  
  525.           Activate a previously opened window.  The window specified by 
  526.           "wn" becomes the top window tile.
  527.  
  528.         ^URETURNS^U
  529.  
  530.           TRUE or NULL if error
  531.  
  532.         ^UCAUTIONS^U
  533.  
  534.           None.
  535. !short: wn_color
  536.          ^bwn_color -- set window & border attribute^b
  537.  
  538.         ^UUSAGE^U
  539.  
  540.           wn_color(wn, atrib, batrib)
  541.           WINDOWPTR wn;
  542.           unsigned int atrib, batrib;
  543.  
  544.                 wn -    window handle
  545.                 atrib - attribute to be used for the window
  546.                 batrib- attribute to be used for the border
  547.  
  548.           wn_color sets the attribute to be used for all subsequent 
  549.           operations in the window.  The attribute byte contains the 
  550.           background specific data in the upper 4 bits and the foreground 
  551.           specific data in the lower 4 bits.  Color and bit definitions 
  552.           can be found in windows.h. You can use a statement of the form:
  553.  
  554.                          atrib = (bground << 4 | fground);
  555.  
  556.           to set the attribute to the correct format.  
  557.  
  558.           Attributes are defined in windows.h.
  559.  
  560.         ^URETURNS^U
  561.  
  562.           Nothing.
  563.  
  564.         ^UCAUTIONS^U
  565.  
  566.           None.
  567. !short: wn_wrap
  568.          ^bwn_wrap -- set/clear line wrap flag^b
  569.  
  570.         ^UUSAGE^U
  571.  
  572.           wn_wrap(wn, flag) 
  573.           WINDOWPTR wn;     
  574.           int flag;
  575.  
  576.                 wn -   window handle
  577.                 flag - wrap flag (TRUE or FALSE)
  578.  
  579.           Sets the line wrap flag for window functions.  If line wrap is 
  580.           true, output that exceeds the width of a window is 
  581.           automatically placed on the next line.  When the line wrap flag 
  582.           is false, output that exceeds the width of the window is lost.  
  583.  
  584.         ^URETURNS^U
  585.  
  586.           Nothing.
  587.  
  588.         ^UCAUTIONS^U
  589.  
  590.           None.
  591. !short: wn_sync
  592.          ^bwn_sync -- set/clear cursor synchronization flag^b
  593.  
  594.         ^UUSAGE^U
  595.  
  596.           wn_sync(wn, flag) 
  597.           WINDOWPTR wn;     
  598.           int flag;
  599.  
  600.                 wn -   window handle
  601.                 flag - synchronization flag (TRUE or FALSE)
  602.  
  603.           When wn_sync is called with a value of TRUE all subsequent text 
  604.           output to the window will have a flashing (normal) cursor 
  605.           displayed following the last character output. Calling wn_sync 
  606.           with a value of false inhibits the cursor from physically 
  607.           advancing (it is always logically advanced).  
  608.  
  609.         ^URETURNS^U
  610.  
  611.           Nothing.
  612.  
  613.         ^UCAUTIONS^U
  614.  
  615.           None.
  616. !short: wn_scroll
  617.          ^bwn_scroll -- set scrolling method for window^b
  618.  
  619.         ^UUSAGE^U
  620.  
  621.           wn_scroll(wn,method)
  622.           WINDOWPTR wn;
  623.           int method;
  624.  
  625.                   wn -      window handle.
  626.                   method -  BIOS or DMAS
  627.  
  628.            Set the method to be used to scroll the contents of the window 
  629.            to use either the rom bios (BIOS), or the flicker free DMA 
  630.            logic.  BIOS and DMAS are defined in "windows.h".  
  631.  
  632.            The default scrolling mode is DMAS.
  633.  
  634.            The Window BOSS incorporates machine independent logic that 
  635.            ensures that scrolling on color systems is performed in such a 
  636.            way as to totally eliminate snow and flicker.  This logic, 
  637.            although bulletproof, can slow scrolling down.  Setting the 
  638.            scrolling method to BIOS provides a machine independent way to 
  639.            improve the scrolling speed with a (perhaps) proportional 
  640.            increase in flicker.  Keep in mind that recent developments in 
  641.            CGA and EGA technology have, for the most part, eliminated 
  642.            scrolling flicker at the hardware level.  If your system is 
  643.            equipped with one of these boards, you may achieve a 
  644.            noticeable improvement in scrolling speed by using wn_scroll() 
  645.            to set the scrolling method to BIOS.  Additionally, there are 
  646.            several console device drivers (FANSI and NANSI to mention 
  647.            two) that "patch" the bios routines to achieve the same 
  648.            result.  
  649.  
  650.            Setting the scrolling method to BIOS when wn_dmaflg=FALSE has 
  651.            no effect.
  652.  
  653.         ^URETURNS^U
  654.  
  655.            Nothing.
  656.  
  657.         ^UCAUTIONS^U
  658.  
  659.            Color systems only.
  660. !short: wn_dma
  661.          ^bwn_dma -- set/clear write ram directly flag^b
  662.  
  663.         ^UUSAGE^U
  664.  
  665.           wn_dma(flag)      
  666.           int flag;         
  667.  
  668.                 flag - write to video ram flag (TRUE or FALSE).
  669.  
  670.           The windowing routines assume that your video card supports 
  671.           direct access to the video ram (normal for monochrome 
  672.           monitors).  
  673.  
  674.         ^URETURNS^U
  675.  
  676.           Nothing.
  677.  
  678.         ^UCAUTIONS^U
  679.  
  680.           None.
  681. !short: wn_fixcsr
  682.          ^bwn_fixcsr -- update window cursor position^b
  683.  
  684.         ^UUSAGE^U
  685.  
  686.           wn_fixcsr(wn)     
  687.           WINDOWPTR wn;     
  688.  
  689.                 wn - window handle
  690.  
  691.           wn_fixcsr is a companion routine to wn_sync.  Causes the 
  692.           physical cursor to be placed at the logical cursor location.  
  693.           It is typically called after wn_sync has been called to disable 
  694.           cursor synchronization.  wn_fixcsr does not alter the state of 
  695.           the windows cursor synchronization flag.  
  696.  
  697.         ^URETURNS^U
  698.  
  699.           TRUE or NULL if error
  700.  
  701.         ^UCAUTIONS^U
  702.  
  703.           The window "wn" automatically becomes the top window tile upon 
  704.           return.
  705. !short: wn_boxset
  706.          ^bwn_boxset -- set box drawing character set^b
  707.  
  708.         ^UUSAGE^U
  709.  
  710.           wn_boxset(ul, ur, tb, sd, ll, lr);
  711.           int ul, ur, tb, sd, ll, lr;
  712.  
  713.             ul - upper left corner character
  714.             ur - upper right corner character
  715.             tb - top/bottom line character
  716.             sd - left/right side character
  717.             ll - lower left corner character
  718.             lr - lower right corner character
  719.  
  720.           wn_boxset set the characters to be used to frame all future 
  721.           windows.
  722.  
  723.         ^URETURNS^U
  724.  
  725.           Nothing.
  726.  
  727.         ^UCAUTIONS^U
  728.  
  729.           None.
  730. !short: wn_natrib
  731.          ^bwn_natrib -- set new attribute in window NOW!^b
  732.  
  733.         ^UUSAGE^U
  734.  
  735.           wn_natrib(wn,atrib)
  736.           WINDOWPTR wn;
  737.           int atrib;
  738.  
  739.             wn    - window handle
  740.             atrib - attribute to set the window specified by wn to.  
  741.  
  742.           The attributes of the window are changed immediately.
  743.  
  744.           Attributes are defined in window.h
  745.  
  746.           The border is not altered.
  747.  
  748.         ^URETURNS^U
  749.  
  750.           TRUE or NULL if error
  751.  
  752.         ^UCAUTIONS^U
  753.  
  754.           The window "wn" automatically becomes the top window tile upon 
  755.           return.
  756. !short: wn_dborder
  757.          ^bwn_dborder -- draw (replace) border on window^b
  758.  
  759.         ^UUSAGE^U
  760.  
  761.           wn_dborder(wn, ul, ur, tb, sd, ll, lr);
  762.           WINDOWPTR wn;
  763.           int ul, ur, tb, sd, ll, lr;
  764.  
  765.             wn - window handle
  766.             ul - upper left corner character
  767.             ur - upper right corner character
  768.             tb - top/bottom line character
  769.             sd - left/right side character
  770.             ll - lower left corner character
  771.             lr - lower right corner character
  772.  
  773.           The currently defined border attribute is used when drawing the 
  774.           border.
  775.  
  776.         ^URETURNS^U
  777.  
  778.           TRUE or NULL if error
  779.  
  780.         ^UCAUTIONS^U
  781.  
  782.           The window "wn" automatically becomes the top window tile upon 
  783.           return.
  784.