xref: /haiku/src/apps/sudoku/Sudoku.cpp (revision 3a78bc6b6c5d21abc1e4f350ee8287ff4002104f)
1d578543aSAxel Dörfler /*
2d578543aSAxel Dörfler  * Copyright 2007, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
3d578543aSAxel Dörfler  * Distributed under the terms of the MIT License.
4d578543aSAxel Dörfler  */
5d578543aSAxel Dörfler 
6d578543aSAxel Dörfler 
7d578543aSAxel Dörfler #include "SudokuWindow.h"
8d578543aSAxel Dörfler 
9d578543aSAxel Dörfler #include <stdlib.h>
10d578543aSAxel Dörfler 
11d578543aSAxel Dörfler #include <Alert.h>
12d578543aSAxel Dörfler #include <Application.h>
13d578543aSAxel Dörfler #include <TextView.h>
14d578543aSAxel Dörfler 
15d578543aSAxel Dörfler 
16d578543aSAxel Dörfler class Sudoku : public BApplication {
17d578543aSAxel Dörfler public:
18d578543aSAxel Dörfler 	Sudoku();
19d578543aSAxel Dörfler 	virtual ~Sudoku();
20d578543aSAxel Dörfler 
21d578543aSAxel Dörfler 	virtual void ReadyToRun();
22d578543aSAxel Dörfler 
23d578543aSAxel Dörfler 	virtual void RefsReceived(BMessage *message);
24d578543aSAxel Dörfler 	virtual void MessageReceived(BMessage *message);
25d578543aSAxel Dörfler 
26d578543aSAxel Dörfler 	virtual void AboutRequested();
27d578543aSAxel Dörfler 
28d578543aSAxel Dörfler private:
29d578543aSAxel Dörfler 	SudokuWindow* fWindow;
30d578543aSAxel Dörfler };
31d578543aSAxel Dörfler 
32d578543aSAxel Dörfler 
33d578543aSAxel Dörfler const char* kSignature = "application/x-vnd.Haiku-Sudoku";
34d578543aSAxel Dörfler 
35d578543aSAxel Dörfler 
36d578543aSAxel Dörfler Sudoku::Sudoku()
37d578543aSAxel Dörfler 	: BApplication(kSignature)
38d578543aSAxel Dörfler {
39d578543aSAxel Dörfler }
40d578543aSAxel Dörfler 
41d578543aSAxel Dörfler 
42d578543aSAxel Dörfler Sudoku::~Sudoku()
43d578543aSAxel Dörfler {
44d578543aSAxel Dörfler }
45d578543aSAxel Dörfler 
46d578543aSAxel Dörfler 
47d578543aSAxel Dörfler void
48d578543aSAxel Dörfler Sudoku::ReadyToRun()
49d578543aSAxel Dörfler {
50d578543aSAxel Dörfler 	fWindow = new SudokuWindow();
51d578543aSAxel Dörfler 	fWindow->Show();
52d578543aSAxel Dörfler }
53d578543aSAxel Dörfler 
54d578543aSAxel Dörfler 
55d578543aSAxel Dörfler void
56d578543aSAxel Dörfler Sudoku::RefsReceived(BMessage* message)
57d578543aSAxel Dörfler {
58d578543aSAxel Dörfler 	fWindow->PostMessage(message);
59d578543aSAxel Dörfler }
60d578543aSAxel Dörfler 
61d578543aSAxel Dörfler 
62d578543aSAxel Dörfler void
63d578543aSAxel Dörfler Sudoku::MessageReceived(BMessage* message)
64d578543aSAxel Dörfler {
65d578543aSAxel Dörfler 	BApplication::MessageReceived(message);
66d578543aSAxel Dörfler }
67d578543aSAxel Dörfler 
68d578543aSAxel Dörfler 
69d578543aSAxel Dörfler void
70d578543aSAxel Dörfler Sudoku::AboutRequested()
71d578543aSAxel Dörfler {
72d578543aSAxel Dörfler 	BAlert *alert = new BAlert("about", "Sudoku\n"
73d578543aSAxel Dörfler 		"\twritten by Axel Dörfler\n"
747bd1d755SAxel Dörfler 		"\tCopyright 2007, Haiku Inc.\n", "Ok");
75d578543aSAxel Dörfler 	BTextView *view = alert->TextView();
76d578543aSAxel Dörfler 	BFont font;
77d578543aSAxel Dörfler 
78d578543aSAxel Dörfler 	view->SetStylable(true);
79d578543aSAxel Dörfler 
80d578543aSAxel Dörfler 	view->GetFont(&font);
81d578543aSAxel Dörfler 	font.SetSize(18);
82d578543aSAxel Dörfler 	font.SetFace(B_BOLD_FACE);
83d578543aSAxel Dörfler 	view->SetFontAndColor(0, 6, &font);
84d578543aSAxel Dörfler 
85d578543aSAxel Dörfler 	alert->Go();
86d578543aSAxel Dörfler }
87d578543aSAxel Dörfler 
88d578543aSAxel Dörfler 
89d578543aSAxel Dörfler //	#pragma mark -
90d578543aSAxel Dörfler 
91d578543aSAxel Dörfler 
92d578543aSAxel Dörfler int
93d578543aSAxel Dörfler main(int /*argc*/, char** /*argv*/)
94d578543aSAxel Dörfler {
95*3a78bc6bSFrançois Revol 	srand(system_time() % INT_MAX);
96d578543aSAxel Dörfler 
97d578543aSAxel Dörfler 	Sudoku sudoku;
98d578543aSAxel Dörfler 	sudoku.Run();
99d578543aSAxel Dörfler 
100d578543aSAxel Dörfler 	return 0;
101d578543aSAxel Dörfler }
102