/*
 * Copyright © 2008 Keith Packard
 *
 * This library is free software; you can redistribute it and/or
 * modify it either under the terms of the GNU Lesser General Public
 * License version 2.1 as published by the Free Software Foundation
 * (the "LGPL") or, at your option, under the terms of the Mozilla
 * Public License Version 1.1 (the "MPL"). If you do not alter this
 * notice, a recipient may use your version of this file under either
 * the MPL or the LGPL.
 *
 * You should have received a copy of the LGPL along with this library
 * in the file COPYING-LGPL-2.1; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 * You should have received a copy of the MPL along with this library
 * in the file COPYING-MPL-1.1
 *
 * The contents of this file are subject to the Mozilla Public License
 * Version 1.1 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
 * OF ANY KIND, either express or implied. See the LGPL or the MPL for
 * the specific language governing rights and limitations.
 *
 * The Original Code is the cairo graphics library.
 *
 * The Initial Developer of the Original Code is Keith Packard
 *
 * Contributor(s):
 *      Keith Packard <keithp@keithp.com>
 */

load "nichrome.5c"
load "nichrome-box.5c"
load "nichrome-label.5c"
load "nichrome-lozenge.5c"
load "nichrome-scrollbar.5c"
load "nichrome-border.5c"
load "nichrome-solid.5c"

import Cairo;
import Nichrome;
import Nichrome::Box;
import Nichrome::Label;
import Nichrome::Border;
import Nichrome::Solid;

void
main ()
{
    rgba_color_t    red = { .red = 1, .green = 0, .blue = 0, .alpha = 1 };
    int	solid_width = 10;

    &nichrome_t	    nichrome = Nichrome::new ("Box Test", 400, 400);

    &widget_t	    label1 = Label::new (&nichrome, "Label 1");
    &widget_t	    solid1 = Solid::new (&nichrome, 10, 1, red);
    &widget_t	    label2 = Label::new (&nichrome, "Label 2");
    &widget_t	    solid2 = Solid::new (&nichrome, 10, 1, red);
    &widget_t	    label3 = Label::new (&nichrome, "Label 3");

    &widget_t	    solid3 = Solid::new (&nichrome, 1, 10, red);

    &widget_t	    label4 = Label::new (&nichrome, "Label 4");
    &widget_t	    solid4 = Solid::new (&nichrome, 10, 1, red);
    &widget_t	    label5 = Label::new (&nichrome, "Label 5");
    &widget_t	    solid5 = Solid::new (&nichrome, 10, 1, red);

    &box_t	    box = Box::new_empty();

    Box::add_row(&box, 0, 0,
		 Box::widget_item(&label1, 1),
		 Box::widget_span_item(&solid1, 1, 2, 0, 1),
		 Box::widget_span_item(&label2, 3, 1, 1, 1),
		 Box::widget_span_item(&solid2, 1, 3, 0, 1),
		 Box::widget_span_item(&label3, 1, 3, 1, 1));
    Box::add_row(&box, 0, 1,
		 Box::widget_span_item(&solid3, 6, 1, 1, 0));
    Box::add_row(&box, 0, 2,
		 Box::widget_span_item(&label4, 3, 1, 1, 1),
		 Box::widget_item(&solid4, 0, 1),
		 Box::widget_span_item(&label5, 1, 1, 1, 1),
		 Box::widget_item(&solid5, 0, 1));
    Nichrome::set_box (&nichrome, &box);
    Nichrome::main_loop (&nichrome);
}

main ();
