/*
** Amster - About
** Copyright © 2000-2001 by Jacob Laursen
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

#include "amster.h"
#include "url.h"
#include "amster_Cat.h"

#include "pix/biglogo.h"

static ULONG about_new(struct IClass *cl, Object *obj, struct opSet *msg);


MUI_DISPATCH(about_dispatch)
{
	if (msg->MethodID==OM_NEW) return(about_new(cl, obj, (APTR)msg));
	return DoSuperMethodA(cl, obj, msg);
}


static ULONG about_new(struct IClass *cl, Object *obj, struct opSet *msg)
{
	u_long *okbut;

	if (obj = (Object *)DoSuperNew(cl,obj,
		MUIA_Window_Title, MSG_ABOUT_TITLE,
		MUIA_Window_ID, MAKE_ID('A','B','O','U'),
		MUIA_Window_UseBottomBorderScroller, FALSE,
		WindowContents, VGroup,
			MUIA_Background, MUII_RequesterBack,
			Child, ScrollgroupObject,
				MUIA_Background, MUII_ListBack,
				MUIA_Scrollgroup_FreeHoriz, FALSE,
				MUIA_Scrollgroup_Contents, VirtgroupObject, VirtualFrame,
					Child, VSpace(5),
					Child, HGroup,
						Child, HSpace(0),
						Child, BodychunkObject,
							MUIA_FixWidth, BIGLOGO_WIDTH,
							MUIA_FixHeight, BIGLOGO_HEIGHT,
							MUIA_Bitmap_Width, BIGLOGO_WIDTH,
							MUIA_Bitmap_Height, BIGLOGO_HEIGHT,
							MUIA_Bodychunk_Depth, BIGLOGO_DEPTH,
							MUIA_Bodychunk_Body, (ULONG *)biglogo_body,
							MUIA_Bodychunk_Compression, BIGLOGO_COMPRESSION,
							MUIA_Bodychunk_Masking, BIGLOGO_MASKING,
							MUIA_Bitmap_SourceColors, (ULONG *)biglogo_colors,
						End,
						Child, HSpace(0),
					End,
					Child, TextObject,
						MUIA_Font, MUIV_Font_Big,
#ifdef __MORPHOS__
#ifdef AMSTER_DEBUG
						MUIA_Text_Contents, "\33c\33bVersion "AMSTER_VERSION" ("AMSTER_DATE")\nMorphOS version (BETA; build #"AMSTER_BUILD")",
#else
						MUIA_Text_Contents, "\33c\33bVersion "AMSTER_VERSION" ("AMSTER_DATE")\nMorphOS version",
#endif
#else
#ifdef AMSTER_DEBUG
						MUIA_Text_Contents, "\33c\33bVersion "AMSTER_VERSION" ("AMSTER_DATE")\nAmigaOS version (BETA; build #"AMSTER_BUILD")",
#else
						MUIA_Text_Contents, "\33c\33bVersion "AMSTER_VERSION" ("AMSTER_DATE")\nAmigaOS version",
#endif
#endif
					End,
					Child, VSpace(5),
					Child, TextObject,
						MUIA_Text_Contents, MSG_ABOUT_LICENSE_TMP,
					End,
					Child, RectangleObject,
						MUIA_FixHeight, 8,
						MUIA_Rectangle_HBar, TRUE,
					End,
					Child, NewObject(gui->url_mcc->mcc_Class, NULL,
						URL_NAME, MSG_ABOUT_HOMEPAGE_TMP,
						URL_HREF, "http://www.amiga.dk/amster/",
					TAG_DONE),
					Child, NewObject(gui->url_mcc->mcc_Class, NULL,
						URL_NAME, MSG_ABOUT_MAILLIST_TMP,
						URL_HREF, "http://groups.yahoo.com/group/amster/",
					TAG_DONE),
					Child, NewObject(gui->url_mcc->mcc_Class, NULL,
						URL_NAME, MSG_ABOUT_FAQPAGE,
						URL_HREF, "http://www.napster.com/help/",
					TAG_DONE),
					Child, RectangleObject,
						MUIA_FixHeight, 8,
						MUIA_Rectangle_HBar, TRUE,
					End,
					Child, TextObject,
						MUIA_InnerLeft, 20,
						MUIA_InnerRight, 20,
						MUIA_Text_Contents, MSG_ABOUT_TEAM_TMP,
					End,
					Child, RectangleObject,
						MUIA_FixHeight, 8,
						MUIA_Rectangle_HBar, TRUE,
					End,
					Child, TextObject,
						MUIA_InnerLeft, 20,
						MUIA_InnerRight, 20,
						MUIA_Text_Contents, MSG_ABOUT_GREETS,
					End,
					Child, VSpace(5),
				End,
			End,
			Child, HGroup,
				Child, HSpace(0),
				Child, HSpace(0),
				Child, okbut = SimpleButton(MSG_OK_GAD),
			End,
		End,
		TAG_MORE, msg->ops_AttrList))
	{

		DoMethod(okbut, MUIM_Notify, MUIA_Pressed, FALSE, obj, 3, MUIM_Set, MUIA_Window_Open, FALSE);
		DoMethod(obj, MUIM_Notify, MUIA_Window_CloseRequest, TRUE, obj, 3, MUIM_Set, MUIA_Window_Open, FALSE);

		return((ULONG)obj);
	}

	return NULL;
}
