
!  This is just a demo script for text_functions.h, compile it for examples on
!  using text_functions.h.

Include "text_functions.h";

Constant def_fg white;
Constant def_bg blue;

[ main i;
   .loop;
   TextColour(def_fg,def_bg);
   @erase_window 0;
   new_line;
   print (TextStyle) bold, "TEXT FUNCTIONS", (TextStyle) roman;
   new_line;
   print "A collection of functions for dealing with text in Inform.^";
   print "Copyright (c) 1998, Patrick Kellum <pkellum@@64pagans.org>^^";
   print "Choose your path...^";
   print "   1. TextStyle Examples^";
   print "   2. TextColour, FGColour, and BGColour Examples^";
   print "   3. List styles^";
   print "   4. List colours^";
   print "   Q. Quit^";
   print "^> ";
   @read_char 1 ->i;
   switch(i) {
      '1': test_textstyle();
      '2': test_textcolour();
      '3': list_styles();
      '4': list_colours();
      'q',
      'Q': quit;
      default: jump loop;
   }
   jump loop;
];

[ test_textstyle i;
   @erase_window 0;
   new_line;
   print "   The following line of code...^^";
   print (TextStyle) fixed, "print ~This text will be in ~, (TextStyle) reverse, ~reversed~, (TextStyle) roman, ~ text.@@94~;", (TextStyle) roman, "^^";
   print "   Will produce the following output...^^";
   print "This text will be in ", (TextStyle) reverse, "reversed", (TextStyle) roman, " text.^^^";
   print "   The following line of code...^^";
   print (TextStyle) fixed, "print ~This text will be in ~, (TextStyle) bold, ~bold~, (TextStyle) roman, ~ text.@@94~;", (TextStyle) roman, "^^";
   print "   Will produce the following output...^^";
   print "This text will be in ", (TextStyle) bold, "bold", (TextStyle) roman, " text.^^^";
   print "   The following line of code...^^";
   print (TextStyle) fixed, "print ~This text will be in ~, (TextStyle) italic, ~italic~, (TextStyle) roman, ~ text.@@94~;", (TextStyle) roman, "^^";
   print "   Will produce the following output...^^";
   print "This text will be in ", (TextStyle) italic, "italic", (TextStyle) roman, " text.^^^";
   print "   The following line of code...^^";
   print (TextStyle) fixed, "print ~This text will be in ~, (TextStyle) fixed, ~fixed-width~, (TextStyle) roman, ~ text.@@94~;", (TextStyle) roman, "^^";
   print "   Will produce the following output...^^";
   print "This text will be in ", (TextStyle) fixed, "fixed-width", (TextStyle) roman, " text.^^^";
   print "[Hit any key to go back to the menu]";
   @read_char 1 ->i;
];

[ test_textcolour i;
   @erase_window 0;
   new_line;
   print "   The following line of code...^^";
   print (TextStyle) fixed, "print ~This text will be in ~, (FGColour) red, ~red~, (FGColour) default_colour, ~ and this will be in ~, (FGColour) magenta, ~magenta~, (FGColour) default_colour, ~.@@94~;", (TextStyle) roman, "^^";
   print "   Will produce the following output...^^";
   print "This text will be in ", (FGColour) red, "red", (FGColour) def_fg, " and this will be in ", (FGColour) magenta, "magenta", (FGColour) def_fg, ".^^^";
   print "   The following line of code...^^";
   print (TextStyle) fixed, "print ~The background of this text will be in ~, (BGColour) red, ~red~, (BGColour) default_colour, ~ and this will be in ~, (BGColour) magenta, ~magenta~, (BGColour) default_colour, ~.@@94~;", (TextStyle) roman, "^^";
   print "   Will produce the following output...^^";
   print "The background of this text will be in ", (BGColour) red, "red", (BGColour) def_bg, " and this will be in ", (BGColour) magenta, "magenta", (BGColour) def_bg, ".^^^";
   print "   The following line of code...^^";
   print (TextStyle) fixed, "print ~This text will be ~, (FGColour) green, ~green~, (FGColour) default_colour, ~ on a ~, (FGColour) black, (BGColour) white, ~white~, (FGColour) default_colour, (BGColour) default_colour, ~ background.  ~, (FGColour) green, (BGColour) white, ~See, I told you so :-)~, (FGColour) default_colour, (BGColour) default_colour, ~@@94~;", (TextStyle) roman, "^^";
   print "   Will produce the following output...^^";
   print "This text will be ", (FGColour) green, "green", (FGColour) def_fg, " on a ", (FGColour) black, (BGColour) white, "white", (FGColour) def_fg, (BGColour) def_bg, " background.  ", (FGColour) green, (BGColour) white, "See, I told you so :-)", (FGColour) def_fg, (BGColour) def_bg, "^^^";
   print "   The following line of code...^^";
   print (TextStyle) fixed, "TextColour(red,white); print ~This should be red text on a white background~; TextColour(default_colour,default_colour); print ~.@@94~;", (TextStyle) roman, "^^";
   print "   Will produce the following output...^^";
   TextColour(red,white); print "This should be red text on a white background"; TextColour(def_fg,def_bg); print ".^^^";
   print "[Hit any key to go back to the menu]";
   @read_char 1 ->i;
];

[ list_styles i;
   @erase_window 0;
   new_line;
   print "Style Values Available In The Z-Machine^^";
   TextStyle(fixed);
   print (TextStyle) reverse, "number    value           description", (TextStyle) roman, (TextStyle) fixed, "^";
   print "   0      roman           The default style.^";
   print "   1      reverse         Reversed text.^";
   print "   2      bold            Bold text.^";
   print "   4      italic          Italics, underlined, emphasied.^";
   print "   8      fixed           Fixed-width text.^";
   TextStyle(roman);
   new_line;
   print (TextStyle) bold, "Examples:", (TextStyle) roman, ".^";
   print "This should appear in ", (TextStyle) reverse, "reversed", (TextStyle) roman, " text.^";
   print "This should appear in ", (TextStyle) bold, "bold", (TextStyle) roman, " text.^";
   print "This should appear in ", (TextStyle) italic, "emphasied ", (TextStyle) roman, " text.^";
   print "This should appear in ", (TextStyle) fixed, "fixed_width", (TextStyle) roman, " text.^";
   new_line;
   print "[Hit any key to go back to the menu]";
   @read_char 1 ->i;
];

[ list_colours i;
   @erase_window 0;
   new_line;
   print "Colour Values Available In The Z-Machine^^";
   TextStyle(fixed);
   print (TextStyle) reverse, "number    value           colour  description", (TextStyle) roman, (TextStyle) fixed, "^";
   print "   0      current_colour          The current setting of this colour.^";
   print "   1      default_colour          The default setting of this colour^";
   print "   2      black           ", (FGColour) black, (BGColour) black,             "      ", (FGColour) white, (BGColour) blue, "^";
   print "   3      red             ", (FGColour) red, (BGColour) red,                 "      ", (FGColour) def_fg, (BGColour) def_bg, "^";
   print "   4      green           ", (FGColour) green, (BGColour) green,             "      ", (FGColour) def_fg, (BGColour) def_bg, "^";
   print "   5      yellow          ", (FGColour) yellow, (BGColour) yellow,           "      ", (FGColour) def_fg, (BGColour) def_bg, "^";
   print "   6      blue            ", (FGColour) blue, (BGColour) blue,               "      ", (FGColour) def_fg, (BGColour) def_bg, "^";
   print "   7      magenta         ", (FGColour) magenta, (BGColour) magenta,         "      ", (FGColour) def_fg, (BGColour) def_bg, "^";
   print "   8      cyan            ", (FGColour) cyan, (BGColour) cyan,               "      ", (FGColour) def_fg, (BGColour) def_bg, "^";
   print "   9      white           ", (FGColour) white, (BGColour) white,             "      ", (FGColour) def_fg, (BGColour) def_bg, "^";
   print "  10      light_grey      ", (FGColour) light_grey, (BGColour) light_grey,   "      ", (FGColour) def_fg, (BGColour) def_bg, "  Version 6, Amiga and PC interpreters only.^";
   print "  11      medium_grey     ", (FGColour) medium_grey, (BGColour) medium_grey, "      ", (FGColour) def_fg, (BGColour) def_bg, "  Version 6, Amiga interpreters only.^";
   print "  12      dark_grey       ", (FGColour) dark_grey, (BGColour) dark_grey,     "      ", (FGColour) def_fg, (BGColour) def_bg, "  Version 6, Amiga interpreters only.^";
   TextStyle(roman);
   new_line;
   print "[Hit any key to go back to the menu]";
   @read_char 1 ->i;
];

