#include "DRW/drwwh.h"
#include "DRW/drwWwinit.h"
#include "DRW/drwWxdata.h"
#include "DRW/drwWredraw.h"
#include "DRW/drwUredraw.h"

#include "DRW/drwDFOShI.h"
#include "DRW/drwRender.h"
#include "DRW/drwWfontfn.h"
#include "DRW/drwSetCols.h"
#include "DRW/drwDeskplt.h"
#include "DRW/drwWplot.h"
#include "DRW/drwSprRend.h"


extern drawfile_diagram *drawfile;
extern osspriteop_area *sprites;
extern font_f trinity20, trinity20b, trinity30bi, trinity70bi, hom18, hom12;


void drw_u_redraw(wimp_draw *r,
                  int printing,
                  int page)

{

int len;
char *b, *s, wkbuff[128];

if (r->w == pwd->uwd->barwin)
 {
  strcpy(wkbuff, "This is a ");
  len = strlen(wkbuff);
  b = wkbuff + len;
  drw_wimp_fontchangeh(trinity20b, b);
  s = wkbuff + len + 2;
  strcpy(s, "DrWimp");
  len = strlen(s);
  b = s + len;
  drw_wimp_fontchangeh(trinity20, b);
  s += (len + 2);
  strcpy(s, " test.");

  drw_wimp_plotwindowtexth(pwd->uwd->barwin,
                           wkbuff,
                           trinity20,
                           FALSE,
                           30,
                           -70,
                           0,
                           0,
                           0,
                           255,
                           255,
                           255,
                           r->clip.x0,
                           r->clip.y0,
                           r->clip.x1,
                           r->clip.y1,
                           (double) 1,
                           (double) 1,
                           FALSE);

  strcpy(wkbuff, "Text can change ");
  len = strlen(wkbuff);
  b = wkbuff + len;
  drw_wimp_fontcolour(255, 0, 0, 255, 255, 255, b);
  s = wkbuff + len + 8;
  strcpy(s, "colour");
  len = strlen(s);
  b = s + len;
  drw_wimp_fontcolour(0, 0, 0, 255, 255, 255, b);
  s += (len + 8);
  strcpy(s, " in the middle of lines!");

  drw_wimp_plotwindowtexth(pwd->uwd->barwin,
                           wkbuff,
                           hom18,
                           FALSE,
                           30,
                           -140,
                           0,
                           0,
                           0,
                           255,
                           255,
                           255,
                           r->clip.x0,
                           r->clip.y0,
                           r->clip.x1,
                           r->clip.y1,
                           (double) 1,
                           (double) 1,
                           FALSE);

  strcpy(wkbuff, "Become ");
  len = strlen(wkbuff);
  b = wkbuff + len;
  drw_wimp_fontunderline(1, b);
  s = wkbuff + len + 3;
  strcpy(s, "underlined");
  len = strlen(s);
  b = s + len;
  drw_wimp_fontunderline(0, b);
  s += (len + 3);
  strcpy(s, " and change ");
  len = strlen(s);
  b = s + len;
  drw_wimp_fontchangeh(trinity30bi, b);
  s += (len + 2);
  strcpy(s, "font.");

  drw_wimp_plotwindowtexth(pwd->uwd->barwin,
                           wkbuff,
                           hom18,
                           FALSE,
                           30,
                           -210,
                           0,
                           0,
                           0,
                           255,
                           255,
                           255,
                           r->clip.x0,
                           r->clip.y0,
                           r->clip.x1,
                           r->clip.y1,
                           (double) 1,
                           (double) 1,
                           FALSE);

  strcpy(wkbuff,
         "Using the normal BASIC graphics commands, shapes can be drawn...");

  drw_wimp_plotwindowtexth(pwd->uwd->barwin,
                           wkbuff,
                           hom12,
                           FALSE,
                           30,
                           -280,
                           0,
                           0,
                           0,
                           255,
                           255,
                           255,
                           r->clip.x0,
                           r->clip.y0,
                           r->clip.x1,
                           r->clip.y1,
                           (double) 1,
                           (double) 1,
                           FALSE);

  drw_wimp_setforegroundcolour((os_colour) 0,
                               (os_colour) 0,
                               (os_colour) 200);

  drw_wimp_plotwindowcircle(pwd->uwd->barwin,
                            200,
                            -430,
                            80,
                            TRUE,
                            TRUE);

  drw_wimp_setforegroundcolour((os_colour) 200,
                               (os_colour) 0,
                               (os_colour) 0);

  drw_wimp_plotwindowrectangle(pwd->uwd->barwin,
                               200,
                               -490,
                               200,
                               70,
                               TRUE,
                               TRUE);

  drw_wimp_setforegroundcolour((os_colour) 200,
                               (os_colour) 160,
                               (os_colour) 0);

  drw_wimp_plotwindowline(pwd->uwd->barwin,
                          100,
                          -480,
                          300,
                          -330,
                          0,
                          TRUE);

  strcpy(wkbuff, "Text can be plotted in the desktop font.");
  drw_wimp_deskplotwindowtext(pwd->uwd->barwin,
                              wkbuff,
                              FALSE,
                              30,
                              -600,
                              (os_colour) 255,
                              (os_colour) 100,
                              (os_colour) 100,
                              (os_colour) 255,
                              (os_colour) 255,
                              (os_colour) 255,
                              r->clip.x0,
                              r->clip.y0,
                              r->clip.x1,
                              r->clip.y1);

  strcpy(wkbuff, "(thats the system font on pre RISC OS 3.50)");
  drw_wimp_deskplotwindowtext(pwd->uwd->barwin,
                              wkbuff,
                              FALSE,
                              30,
                              -635,
                              (os_colour) 255,
                              (os_colour) 100,
                              (os_colour) 100,
                              (os_colour) 255,
                              (os_colour) 255,
                              (os_colour) 255,
                              r->clip.x0, r->clip.y0, r->clip.x1, r->clip.y1);

   strcpy(wkbuff, "Sprites are easy to plot...");

   drw_wimp_plotwindowtexth(pwd->uwd->barwin,
                            wkbuff,
                            hom12,
                            FALSE,
                            30,
                            -700,
                            0,
                            0,
                            0,
                            255,
                            255,
                            255,
                            r->clip.x0,
                            r->clip.y0,
                            r->clip.x1,
                            r->clip.y1,
                           (double) 1,
                           (double) 1,
                           FALSE);

   drw_wimp_renderwindowsprite(pwd->uwd->barwin,
                               "dwlogo",
                               sprites,
                               30,
                               -950,
                               r->clip.x0,
                               r->clip.y0,
                               r->clip.x1,
                               r->clip.y1,
                               (double) 1,
                               (double) 1);

   drw_wimp_renderwindow(pwd->uwd->barwin,
                         drawfile,
                         630,
                         -980,
                         r->clip.x0,
                         r->clip.y0,
                         r->clip.x1,
                         r->clip.y1,
                         (double) 1,
                         (double) 1, 1);
 }

}


