Example #1
0
void main()
{
    if ((scr = LockPubScreen("Workbench")))
    {
	wnd = OpenWindowTags(NULL,
			     WA_Title, "Textview",
			     WA_CloseGadget, TRUE,
			     WA_DragBar, TRUE,
			     WA_DepthGadget, TRUE,
			     WA_Activate, TRUE,
			     WA_InnerHeight, 400,
			     WA_IDCMP, IDCMP_CLOSEWINDOW | IDCMP_RAWKEY | IDCMP_MOUSEMOVE | IDCMP_MOUSEBUTTONS | IDCMP_VANILLAKEY,
			     WA_SizeGadget, TRUE,
			     WA_MinWidth, 100,
			     WA_MinHeight, 100,
			     WA_MaxWidth, -1,
			     WA_MaxHeight, -1,
			     WA_ReportMouse, TRUE,
			     TAG_DONE);

	if (wnd)
	{
	    if ((text = Text_Create()))
	    {
		Text_SetFrameBox(text, scr, wnd->RPort, (LONG) wnd->BorderLeft, (LONG) wnd->BorderTop, wnd->Width - wnd->BorderLeft - wnd->BorderRight - 1, wnd->Height - wnd->BorderTop - wnd->BorderBottom - 1);
		Text_Load(text, "DH0:");
		Text_Redraw(text);
		loop();
		Text_Free(text);
	    }
	    CloseWindow(wnd);
	}
	UnlockPubScreen(NULL, scr);
    }
}
Example #2
0
struct Box_s *GameInvitation_Create(struct Box_s *roster, char *fromjid, struct gamesearchinfo_s *info, int replace, int cascade)
{
	struct gameinvitationdata_s *data = malloc(sizeof(*data));
	struct Box_s *dialog, *pbox, *vertsize;
	char titlebartxt[512];

	memset(data, 0, sizeof(*data));

	dialog = Box_Create(0, 0, 440, 270, BOX_VISIBLE);
	dialog->boxtypeid = BOXTYPE_GAMEINVITATION;
	dialog->bgcol = DefaultBG;

	dialog->boxdata = data;

	data->jid = strdup(fromjid);
	data->info = Info_DupeGameSearchInfo(info);

	if (replace)
	{
		i18n_stringsub(titlebartxt, 512, _("Game Renegotiation From %1"), Model_GetFriendNick(fromjid));
	}
	else
	{
		i18n_stringsub(titlebartxt, 512, _("Game Invitation From %1"), Model_GetFriendNick(fromjid));
	}
	dialog->titlebar = TitleBarOnly_Add(dialog, titlebartxt);
	dialog->OnActive = TitleBarRoot_OnActive;
	dialog->OnInactive = TitleBarRoot_OnInactive;

	vertsize = AutoSize_Create(10, 43, 0, 0, 0, 0, AUTOSIZE_VERT);
	Box_AddChild(dialog, vertsize);
	data->sizeablecontent = vertsize;
	{
		struct Box_s *horizsize;
		struct Box_s *vertsize2;

		pbox = Text_Create(10, 2, 280, 60, BOX_TRANSPARENT, TX_WRAP);
		/*pbox->OnSizeWidth = Text_OnSizeWidth_Stretch;
		pbox->OnSizeHeight = Box_OnSizeHeight_Stretch;
		*/
		pbox->fgcol = RGB(222, 222, 222);
		Box_AddChild(vertsize, pbox);
		data->messagebox = pbox;

		vertsize2 = AutoSize_Create(0, 0, 0, 0, 0, 0, AUTOSIZE_VERT);
		vertsize2->OnSizeWidth = Box_OnSizeWidth_Stretch;
		data->infobox = vertsize2;
		Box_AddChild(vertsize, vertsize2);
		{
			struct Box_s *vertsize = AutoSize_Create(10, 0, 0, 0, 0, 0, AUTOSIZE_VERT);
			Box_AddChild(vertsize2, vertsize);
			{
				struct Box_s *horizsize = AutoSize_Create(0, 0, 0, 0, 0, 0, AUTOSIZE_HORIZ | AUTOSIZE_EVENSPACING);
				Box_AddChild(vertsize, horizsize);
				{
					struct Box_s *horizsize2 = AutoSize_Create(0, 0, 0, 0, 0, 0, AUTOSIZE_HORIZ);
					Box_AddChild(horizsize, horizsize2);
					{
						pbox = Text_Create(0, 0, 95, 20, BOX_VISIBLE | BOX_TRANSPARENT, TX_STRETCHHORIZ | TX_RIGHT);
						pbox->fgcol = UserInfoFG2;
						Text_SetText(pbox, _("Side"));
						Box_AddChild(horizsize2, pbox);

						AutoSize_AddSpacer(horizsize2, 10);

						pbox = Text_Create(10 /*115*/, 0, 90, 20, BOX_VISIBLE | BOX_TRANSPARENT, TX_STRETCHHORIZ);
						pbox->fgcol = RGB(222, 222, 222);

						if (info->colorpreference == 1)
						{
							Text_SetText(pbox, _("Black"));
						}
						else if (info->colorpreference == 2)
						{
							Text_SetText(pbox, _("White"));
						}
						else
						{
							Text_SetText(pbox, _("No Preference"));
						}

						Box_AddChild(horizsize2, pbox);
					}

					horizsize2 = AutoSize_Create(0, 0, 0, 0, 0, 0, AUTOSIZE_HORIZ);
					Box_AddChild(horizsize, horizsize2);
					{
						pbox = Text_Create(10 /*215*/, 0, 60, 20, BOX_VISIBLE | BOX_TRANSPARENT, TX_STRETCHHORIZ | TX_RIGHT);
						pbox->fgcol = UserInfoFG2;
						Text_SetText(pbox, _("Rated Game"));
						Box_AddChild(horizsize2, pbox);

						AutoSize_AddSpacer(horizsize2, 10);

						pbox = Text_Create(10, /*280*/ 0, 90, 20, BOX_VISIBLE | BOX_TRANSPARENT, TX_STRETCHHORIZ);
						pbox->fgcol =  RGB(222, 222, 222);
						Text_SetText(pbox, info->rated ? _("Yes") : _("No"));
						Box_AddChild(horizsize2, pbox);
					}
				}

				AutoSize_AddSpacer(vertsize, 2);

				horizsize = AutoSize_Create(0, 0, 0, 0, 0, 0, AUTOSIZE_HORIZ | AUTOSIZE_EVENSPACING);
				Box_AddChild(vertsize, horizsize);
				{
					struct Box_s *horizsize2 = AutoSize_Create(0, 0, 0, 0, 0, 0, AUTOSIZE_HORIZ);
					Box_AddChild(horizsize, horizsize2);
					{
						pbox = Text_Create(0, 0, 95, 20, BOX_VISIBLE | BOX_TRANSPARENT, TX_STRETCHHORIZ | TX_RIGHT);
						pbox->fgcol = UserInfoFG2;
						Text_SetText(pbox, _("Game Variant"));
						Box_AddChild(horizsize2, pbox);

						AutoSize_AddSpacer(horizsize2, 10);

						pbox = Text_Create(10 /*115*/, 0, 90, 20, BOX_VISIBLE | BOX_TRANSPARENT, TX_STRETCHHORIZ);
						pbox->fgcol = RGB(222, 222, 222);
						Text_SetText(pbox, Util_Capitalize(info->variant));
						Box_AddChild(horizsize2, pbox);
					}

					if (info->takebacks)
					{
						horizsize2 = AutoSize_Create(0, 0, 0, 0, 0, 0, AUTOSIZE_HORIZ);
						Box_AddChild(horizsize, horizsize2);
						{
							pbox = Text_Create(10 /*215*/, 0, 60, 20, BOX_VISIBLE | BOX_TRANSPARENT, TX_STRETCHHORIZ | TX_RIGHT);
							pbox->fgcol = UserInfoFG2;
							Text_SetText(pbox, _("Takebacks"));
							Box_AddChild(horizsize2, pbox);

							AutoSize_AddSpacer(horizsize2, 10);

							pbox = Text_Create(10, /*280*/ 0, 90, 20, BOX_VISIBLE | BOX_TRANSPARENT, TX_STRETCHHORIZ);
							pbox->fgcol =  RGB(222, 222, 222);
							Text_SetText(pbox, Util_Capitalize(info->takebacks));
							Box_AddChild(horizsize2, pbox);
						}
					}
				}

				AutoSize_AddSpacer(vertsize, 2);

				horizsize = AutoSize_Create(0, 0, 0, 0, 0, 0, AUTOSIZE_HORIZ);
				Box_AddChild(vertsize, horizsize);
				{
					char buffer[1024];

					pbox = Text_Create(10, 0, 95, 20, BOX_VISIBLE | BOX_TRANSPARENT, TX_STRETCHHORIZ | TX_RIGHT);
					pbox->fgcol = UserInfoFG2;
					Text_SetText(pbox, _("Time Settings"));
					Box_AddChild(horizsize, pbox);

					AutoSize_AddSpacer(horizsize, 10);

					pbox = Text_Create(10, 0, 265, 20, BOX_VISIBLE | BOX_TRANSPARENT, TX_STRETCHVERT);
					pbox->fgcol =  RGB(222, 222, 222);
					Text_SetLinkColor(pbox, CR_LtOrange);
					Text_SetText(pbox, Info_TimeControlsToMultilineText(info->timecontrol, info->blacktimecontrol, buffer, 1024));
					Box_AddChild(horizsize, pbox);
				}

				AutoSize_AddSpacer(vertsize, 2);

				horizsize = AutoSize_Create(0, 0, 0, 0, 0, 0, AUTOSIZE_HORIZ);
				Box_AddChild(vertsize, horizsize);
				{
					pbox = Text_Create(10, 0, 95, 20, BOX_VISIBLE | BOX_TRANSPARENT, TX_STRETCHHORIZ | TX_RIGHT);
					pbox->fgcol = UserInfoFG2;
					Text_SetText(pbox, _("Comment"));
					Box_AddChild(horizsize, pbox);

					AutoSize_AddSpacer(horizsize, 10);

					pbox = Text_Create(5, 0, 255, 40, BOX_VISIBLE | BOX_TRANSPARENT, TX_WRAP | TX_STRETCHVERT);
					pbox->fgcol =  RGB(222, 222, 222);
					Text_SetText(pbox, info->comment);
					Box_AddChild(horizsize, pbox);
				}
				
			}

			AutoSize_AddSpacer(vertsize2, 2);

			pbox = Box_Create(0, 0, vertsize2->w, 1, BOX_VISIBLE);
			pbox->bgcol = RGB(77, 77, 77);
			pbox->OnSizeWidth = Box_OnSizeWidth_Stretch;
			Box_AddChild(vertsize2, pbox);

			pbox = Box_Create(0, 0, vertsize2->w, 1, BOX_VISIBLE);
			pbox->bgcol = RGB(102, 102, 102);
			pbox->OnSizeWidth = Box_OnSizeWidth_Stretch;
			Box_AddChild(vertsize2, pbox);

			AutoSize_AddSpacer(vertsize2, 13);

			horizsize = AutoSize_Create(0, 0, 0, 0, 0, 0, AUTOSIZE_HORIZ);
			horizsize->OnSizeWidth = Box_OnSizeWidth_Stretch;
			Box_AddChild(vertsize2, horizsize);
			{
				AutoSize_AddSpacer(horizsize, 40);

				pbox = Text_Create(0, 5, 50, 20, BOX_VISIBLE | BOX_TRANSPARENT, TX_STRETCHHORIZ | TX_RIGHT);
				pbox->fgcol = UserInfoFG2;
				Text_SetText(pbox, _("Opponent"));
				Box_AddChild(horizsize, pbox);

				AutoSize_AddSpacer(horizsize, 20);

				pbox = MiniProfile_Create(0, 0, 225, 50, fromjid);
				pbox->OnSizeWidth = Box_OnSizeWidth_Stretch;
				data->opponentbox = pbox;
				Box_AddChild(horizsize, pbox);

				AutoSize_AddSpacer(horizsize, 40);
			}
			
		}

		AutoSize_AddSpacer(vertsize, 37);

		horizsize = AutoSize_Create(0, 0, 0, 0, 0, 0, AUTOSIZE_HORIZ);
		horizsize->OnSizeWidth = Box_OnSizeWidth_Stretch;
		Box_AddChild(vertsize, horizsize);
		{
			struct Box_s *horizsize2 = AutoSizeSpace_Create(0, 0, 0, 0, 0, 0, 10, AUTOSIZE_HORIZ);
			Box_AddChild(horizsize, horizsize2);
			{
				pbox = StdButton_Create(0, 0, 90, _("Change Game Terms"), 0);
				Button2_SetOnButtonHit(pbox, GameInvitation_OnChange);
				Box_AddChild(horizsize2, pbox);
				data->changebutton = pbox;

				pbox = StdButton_Create(0, 0, 90, _("Open Chat"), 0);
				Button2_SetOnButtonHit(pbox, GameInvitation_OnChat);
				Box_AddChild(horizsize2, pbox);
				data->openchatbutton = pbox;

				AutoSize_AddSpacer(horizsize2, 0);
			}

			horizsize2 = AutoSizeSpace_Create(0, 0, 0, 0, 0, 0, 10, AUTOSIZE_HORIZ);
			horizsize2->OnSizeWidth = Box_OnSizeWidth_StickRight;
			Box_AddChild(horizsize, horizsize2);
			{	
				pbox = StdButton_Create(0, 0, 90, _("Accept Game"), 0);
				Button2_SetOnButtonHit(pbox, GameInvitation_OnAccept);
				Box_AddChild(horizsize2, pbox);
				data->acceptbutton = pbox;

				pbox = StdButton_Create(0, 0, 90, _("Decline Game"), 0);
				Button2_SetOnButtonHit(pbox, GameInvitation_OnDecline);
				Box_AddChild(horizsize2, pbox);
				data->cancelbutton = pbox;
			}
		}
	}

	AutoSize_Fit(data->sizeablecontent);
	AutoSize_Fill(data->sizeablecontent);

	Box_OnSizeWidth_Stretch(dialog, data->sizeablecontent->w + 20 - dialog->w);
	Box_OnSizeHeight_Stretch(dialog, data->sizeablecontent->h + 50 - dialog->h);

	{
		RECT windowrect;
		HMONITOR hm;
		MONITORINFO mi;
		int remainw, remainh;

		windowrect.left = roster->x;
		windowrect.right = windowrect.left + roster->w - 1;
		windowrect.top = roster->y;
		windowrect.bottom = windowrect.top + roster->h - 1;

		hm = MonitorFromRect(&windowrect, MONITOR_DEFAULTTONEAREST);

		mi.cbSize = sizeof(mi);
		GetMonitorInfo(hm, &mi);

		remainw = mi.rcWork.right - mi.rcWork.left - dialog->w;
		remainh = mi.rcWork.bottom - mi.rcWork.top - dialog->h;

		dialog->x = remainw / 2;
		dialog->y = remainh / 2;

		dialog->x += 20 * cascade;
		dialog->x %= remainw;
		dialog->y += 20 * cascade;
		dialog->y %= remainh;

		dialog->x += mi.rcWork.left;
		dialog->y += mi.rcWork.top;
	}

#if 0
	pbox = Text_Create(20, 40, dialog->w - 40, dialog->h - 80, BOX_TRANSPARENT, TX_WRAP);
	pbox->fgcol = RGB(222, 222, 222);
	Box_AddChild(dialog, pbox);
	data->messagebox = pbox;

	pbox = Box_Create(0, 0, dialog->w, dialog->h, BOX_VISIBLE | BOX_TRANSPARENT);
	data->infobox = pbox;
	Box_AddChild(dialog, pbox);

	pbox = Box_Create(20, 45, 95, 20, BOX_VISIBLE | BOX_TRANSPARENT | BOX_RIGHTTEXT);
	pbox->fgcol = UserInfoFG2;
	Box_SetText(pbox, _("Side"));
	Box_AddChild(data->infobox, pbox);

	pbox = Box_Create(125, 45, 90, 20, BOX_VISIBLE | BOX_TRANSPARENT);
	pbox->fgcol = RGB(222, 222, 222);
	/* Reversed here since it is the opponent's color preference */
	if (info->colorpreference == 1)
	{
		Box_SetText(pbox, _("Black"));
	}
	else if (info->colorpreference == 2)
	{
		Box_SetText(pbox, _("White"));
	}
	else
	{
		Box_SetText(pbox, _("No Preference"));
	}
	Box_AddChild(data->infobox, pbox);

	pbox = Box_Create(265, 45, 95, 20, BOX_VISIBLE | BOX_TRANSPARENT);
	pbox->fgcol = UserInfoFG2;
	Box_SetText(pbox, _("Rated Game"));
	Box_AddChild(data->infobox, pbox);

	pbox = Box_Create(330, 45, 90, 20, BOX_VISIBLE | BOX_TRANSPARENT);
	pbox->fgcol = RGB(222, 222, 222);
	if (info->rated)
	{
		Box_SetText(pbox, _("Yes"));
	}
	else
	{
		Box_SetText(pbox, _("No"));
	}
	Box_AddChild(data->infobox, pbox);

	pbox = Box_Create(20, 65, 95, 20, BOX_VISIBLE | BOX_TRANSPARENT | BOX_RIGHTTEXT);
	pbox->fgcol = UserInfoFG2;
	Box_SetText(pbox, _("Game Variant"));
	Box_AddChild(data->infobox, pbox);

	pbox = Box_Create(125, 65, 90, 20, BOX_VISIBLE | BOX_TRANSPARENT);
	pbox->fgcol = RGB(222, 222, 222);
	Box_SetText(pbox, Util_Capitalize(info->variant));
	Box_AddChild(data->infobox, pbox);

	pbox = Box_Create(20, 85, 95, 20, BOX_VISIBLE | BOX_TRANSPARENT | BOX_RIGHTTEXT);
	pbox->fgcol = UserInfoFG2;
	Box_SetText(pbox, _("Time Settings"));
	Box_AddChild(data->infobox, pbox);

	pbox = Text_Create(125, 85, 315, 20, BOX_VISIBLE | BOX_TRANSPARENT, 0);
	pbox->fgcol = RGB(222, 222, 222);
	Text_SetText(pbox, Info_TimeControlToLongText(info->timecontrol));
	Box_AddChild(data->infobox, pbox);

	pbox = Box_Create(20, 105, 95, 20, BOX_VISIBLE | BOX_TRANSPARENT | BOX_RIGHTTEXT);
	pbox->fgcol = UserInfoFG2;
	Box_SetText(pbox, _("Comment"));
	Box_AddChild(data->infobox, pbox);

	pbox = Text_Create(125, 105, 290, 40, BOX_VISIBLE | BOX_TRANSPARENT, TX_WRAP);
	pbox->fgcol = RGB(222, 222, 222);
	Text_SetText(pbox, info->comment);
	Box_AddChild(data->infobox, pbox);

	pbox = Box_Create(10, 139, 420, 1, BOX_VISIBLE);
	pbox->bgcol = RGB(77, 77, 77);
	pbox->OnSizeWidth = Box_OnSizeWidth_Stretch;
	Box_AddChild(data->infobox, pbox);

	pbox = Box_Create(10, 140, 420, 1, BOX_VISIBLE);
	pbox->bgcol = RGB(102, 102, 102);
	pbox->OnSizeWidth = Box_OnSizeWidth_Stretch;
	Box_AddChild(data->infobox, pbox);

	pbox = Box_Create(65, 165, 90, 20, BOX_VISIBLE | BOX_TRANSPARENT);
	pbox->fgcol = UserInfoFG2;
	Box_SetText(pbox, _("Opponent"));
	Box_AddChild(data->infobox, pbox);

	pbox = Box_Create(120, 155, 265, 50, BOX_VISIBLE | BOX_BORDER);
	pbox->brcol = RGB(90, 97, 108);
	pbox->bgcol = DrawerBG;
	data->opponentbox = pbox;
	Box_AddChild(data->infobox, pbox);

	pbox = StdButton_Create(10, 270 - 30, 130, _("Change Game Terms"), 0);
	Button2_SetOnButtonHit(pbox, GameInvitation_OnChange);
	Box_AddChild(dialog, pbox);
	data->changebutton = pbox;

	pbox = StdButton_Create(10 + 135, 270 - 30, 80, _("Open Chat"), 0);
	Button2_SetOnButtonHit(pbox, GameInvitation_OnChat);
	Box_AddChild(dialog, pbox);

	pbox = StdButton_Create(440 - 100 - 95, 270 - 30, 90, _("Accept Game"), 0);
	Button2_SetOnButtonHit(pbox, GameInvitation_OnAccept);
	Box_AddChild(dialog, pbox);
	data->acceptbutton = pbox;
	
	pbox = StdButton_Create(440 - 100, 270 - 30, 90, _("Decline Game"), 0);
	Button2_SetOnButtonHit(pbox, GameInvitation_OnDecline);
	Box_AddChild(dialog, pbox);
	data->cancelbutton = pbox;
#endif
	Box_CreateWndCustom(dialog, titlebartxt, roster->hwnd);

	MiniProfile_SetProfile(data->opponentbox, data->jid, NULL);

	Model_SubscribeProfile(data->jid, GameInvitation_SetProfile, dialog);
	dialog->OnDestroy = GameInvitation_OnDestroy;

	if (!Model_GetOption(OPTION_NOGAMENOTIFY))
	{
		FlashWindow(dialog->hwnd, 1);
	}

	return dialog;
}
Example #3
0
struct Box_s *About_Create(struct Box_s *roster)
{
	struct Box_s *dialog, *subbox;
	char txt[120];
	int x, y;

	{
		RECT windowrect;
		HMONITOR hm;
		MONITORINFO mi;

		windowrect.left = roster->x;
		windowrect.right = windowrect.left + roster->w - 1;
		windowrect.top = roster->y;
		windowrect.bottom = windowrect.top + roster->h - 1;

		hm = MonitorFromRect(&windowrect, MONITOR_DEFAULTTONEAREST);

		mi.cbSize = sizeof(mi);
		GetMonitorInfo(hm, &mi);

		x = mi.rcWork.left + (mi.rcWork.right - mi.rcWork.left - 360) / 2;
		y = mi.rcWork.top  + (mi.rcWork.bottom - mi.rcWork.top - 270/*490*/) / 2;
	}

	dialog = Box_Create(x, y, 360, 270 + 80/*490*/, BOX_VISIBLE);
	dialog->bgcol = DefaultBG;
	dialog->fgcol = UserInfoFG2;

	dialog->titlebar = TitleBarCloseOnly_Add(dialog, _("About Chesspark"), About_OnClose);
	dialog->OnActive = TitleBarRoot_OnActive;
	dialog->OnInactive = TitleBarRoot_OnInactive;

	subbox = Box_Create((dialog->w - 300) / 2, 40, 300, 180, BOX_VISIBLE | BOX_TRANSPARENT);
	subbox->img = ImageMgr_GetImage("bigLogo.gif");
	Box_AddChild(dialog, subbox);

	subbox = Box_Create(20, 230, 320, 20, BOX_VISIBLE | BOX_TRANSPARENT | BOX_CENTERTEXT);
	subbox->fgcol = UserInfoFG2;
	subbox->font = tahoma11b_f;
	i18n_stringsub(txt, 120, _("Version %1, Build %2"), CHESSPARK_VERSION, CHESSPARK_BUILD);
	Box_SetText(subbox, txt);
	Box_AddChild(dialog, subbox);

	subbox = Text_Create(20, 250, 320, 100/*240*/, BOX_VISIBLE | BOX_TRANSPARENT, TX_CENTERED | TX_WRAP);
	subbox->fgcol = UserInfoFG2;
	Text_SetText(subbox, 
		_("Copyright 2005, 2006 Chesspark.  All rights reserved.\n\n")
		/*
		"THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT "
		"HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRAN"
		"TIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCH"
		"ANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN N"
		"O EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY "
		"DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL D"
		"AMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOO"
		"DS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPT"
		"ION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTR"
		"ACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) A"
		"RISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O"
		"F THE POSSIBILITY OF SUCH DAMAGE.");
		*/
		);
	Box_AddChild(dialog, subbox);
 
	Box_CreateWndCustom(dialog, _("About Chesspark"), NULL);

	BringWindowToTop(dialog->hwnd);

	return dialog;
}