/*
 * Copyright 2001-2009, Haiku, Inc. All rights reserved.
 * Distributed under the terms of the MIT License.
 *
 * Authors:
 *		Rafael Romo
 *		Stefano Ceccherini (burton666@libero.it)
 *		Andrew Bachmann
 *		Sergei Panteleev
 */
 
 
#include "ScreenApplication.h"
#include "ScreenWindow.h"
#include "ScreenSettings.h"
#include "Constants.h"
 
#include <Alert.h>
#include <Catalog.h>
 
 
#undef B_TRANSLATION_CONTEXT
#define B_TRANSLATION_CONTEXT "Screen"
 
 
static const char* kAppSignature = "application/x-vnd.Haiku-Screen";
 
 
ScreenApplication::ScreenApplication()
	:	BApplication(kAppSignature),
	fScreenWindow(new ScreenWindow(new ScreenSettings()))
{
	fScreenWindow->Show();
}
 
 
void
ScreenApplication::AboutRequested()
{
	BAlert *aboutAlert = new BAlert(B_TRANSLATE("About"),
		B_TRANSLATE("Screen preferences by the Haiku team"), B_TRANSLATE("OK"),
		NULL, NULL, B_WIDTH_AS_USUAL, B_OFFSET_SPACING, B_INFO_ALERT);
	aboutAlert->SetFlags(aboutAlert->Flags() | B_CLOSE_ON_ESCAPE);
	aboutAlert->Go();
}
 
 
void
ScreenApplication::MessageReceived(BMessage* message)
{
	switch (message->what) {
		case SET_CUSTOM_REFRESH_MSG:
		case MAKE_INITIAL_MSG:
		case UPDATE_DESKTOP_COLOR_MSG:
			fScreenWindow->PostMessage(message);
			break;
 
		default:
			BApplication::MessageReceived(message);
			break;
	}
}
 
 
//	#pragma mark -
 
 
int
main()
{
	ScreenApplication app;
	app.Run();
 
	return 0;
}

V773 Visibility scope of the 'aboutAlert' pointer was exited without releasing the memory. A memory leak is possible.