/*
    ####             #    #     # #
    #   #            #    #       #          The FreeWare C library for 
    #   #  ##   ###  #  # #     # ###             RISC OS machines
    #   # #  # #     # #  #     # #  #   ___________________________________
    #   # ####  ###  ##   #     # #  #                                      
    #   # #        # # #  #     # #  #    Please refer to the accompanying
    ####   ### ####  #  # ##### # ###    documentation for conditions of use
    ________________________________________________________________________

    File:    Colourmenu.Colourmenu.c
    Author:  Copyright  1994 Craig Beech
    Version: 1.00 (27 Aug 1994)
    Purpose: Equivalent of the Desk_RISC_OSLib colourmenu function.
*/

#include "Desk.Menu.h"
#include "Desk.ColourMenu.h"


/****************************************************************************

> Desk_menu_ptr Desk_ColourMenu_Create(char *name);

  Inputs:   name - title of colour menu.
  Returns:  Desk_menu_ptr - colour menu.
  Purpose:  Creates a colour menu similar to the Desk_RISC_OSLib function.

****************************************************************************/

extern Desk_menu_ptr Desk_ColourMenu_Create(char *name)
{ Desk_menu_ptr menu;
  Desk_menu_item *item;

  menu = Desk_Menu_New(name, "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15");

  item = (Desk_menu_item *) (((int) menu) + sizeof(Desk_menu_block));
  item = &item[0];
  item->iconflags.data.foreground = Desk_colour_BLACK;
  item->iconflags.data.background = Desk_colour_WHITE;

  item = (Desk_menu_item *) (((int) menu) + sizeof(Desk_menu_block));
  item = &item[1];
  item->iconflags.data.foreground = Desk_colour_BLACK;
  item->iconflags.data.background = Desk_colour_GREY1;

  item = (Desk_menu_item *) (((int) menu) + sizeof(Desk_menu_block));
  item = &item[2];
  item->iconflags.data.foreground = Desk_colour_BLACK;
  item->iconflags.data.background = Desk_colour_GREY2;

  item = (Desk_menu_item *) (((int) menu) + sizeof(Desk_menu_block));
  item = &item[3];
  item->iconflags.data.foreground = Desk_colour_BLACK;
  item->iconflags.data.background = Desk_colour_GREY3;

  item = (Desk_menu_item *) (((int) menu) + sizeof(Desk_menu_block));
  item = &item[4];
  item->iconflags.data.foreground = Desk_colour_BLACK;
  item->iconflags.data.background = Desk_colour_GREY4;

  item = (Desk_menu_item *) (((int) menu) + sizeof(Desk_menu_block));
  item = &item[5];
  item->iconflags.data.foreground = Desk_colour_WHITE;
  item->iconflags.data.background = Desk_colour_GREY5;

  item = (Desk_menu_item *) (((int) menu) + sizeof(Desk_menu_block));
  item = &item[6];
  item->iconflags.data.foreground = Desk_colour_WHITE;
  item->iconflags.data.background = Desk_colour_GREY6;

  item = (Desk_menu_item *) (((int) menu) + sizeof(Desk_menu_block));
  item = &item[7];
  item->iconflags.data.foreground = Desk_colour_WHITE;
  item->iconflags.data.background = Desk_colour_BLACK;

  item = (Desk_menu_item *) (((int) menu) + sizeof(Desk_menu_block));
  item = &item[8];
  item->iconflags.data.foreground = Desk_colour_WHITE;
  item->iconflags.data.background = Desk_colour_DARK_BLUE;

  item = (Desk_menu_item *) (((int) menu) + sizeof(Desk_menu_block));
  item = &item[9];
  item->iconflags.data.foreground = Desk_colour_BLACK;
  item->iconflags.data.background = Desk_colour_YELLOW;

  item = (Desk_menu_item *) (((int) menu) + sizeof(Desk_menu_block));
  item = &item[10];
  item->iconflags.data.foreground = Desk_colour_WHITE;
  item->iconflags.data.background = Desk_colour_GREEN;

  item = (Desk_menu_item *) (((int) menu) + sizeof(Desk_menu_block));
  item = &item[11];
  item->iconflags.data.foreground = Desk_colour_WHITE;
  item->iconflags.data.background = Desk_colour_RED;

  item = (Desk_menu_item *) (((int) menu) + sizeof(Desk_menu_block));
  item = &item[12];
  item->iconflags.data.foreground = Desk_colour_BLACK;
  item->iconflags.data.background = Desk_colour_CREAM;

  item = (Desk_menu_item *) (((int) menu) + sizeof(Desk_menu_block));
  item = &item[13];
  item->iconflags.data.foreground = Desk_colour_WHITE;
  item->iconflags.data.background = Desk_colour_ARMY_GREEN;

  item = (Desk_menu_item *) (((int) menu) + sizeof(Desk_menu_block));
  item = &item[14];
  item->iconflags.data.foreground = Desk_colour_BLACK;
  item->iconflags.data.background = Desk_colour_ORANGE;

  item = (Desk_menu_item *) (((int) menu) + sizeof(Desk_menu_block));
  item = &item[15];
  item->iconflags.data.foreground = Desk_colour_BLACK;
  item->iconflags.data.background = Desk_colour_LIGHT_BLUE;

  return menu;
}
