#include <CtrlLib/CtrlLib.h>
#pragma hdrstop

#ifndef UPP605
using namespace Upp;
#endif

class DlgVodniToky : public TopWindow {
public:
	typedef DlgVodniToky CLASSNAME;
	DlgVodniToky();

	virtual bool       Key(dword key, int repcnt) {
		if(key == K_ENTER)
			PromptOK("Subdialog2!");
		return false;
	}
};

DlgVodniToky::DlgVodniToky()
{
	Title("Vodní toky");
	Sizeable()
		.Zoomable()
//		.MaximizeBox()
	;
//	Add(list.SizePos());
}

class AppWindow : public TopWindow {
public:
	typedef AppWindow CLASSNAME;
	AppWindow();

	void Paint(Draw& draw);
	bool Key(dword key, int);

private:
	RichText window_text;
};

bool AppWindow::Key(dword key, int)
{
	if(key == K_ENTER) {
		DlgVodniToky().Run();
		return true;
	}
	return false;
}

AppWindow::AppWindow()
{
	Title("Vodohospodářská bilance povrchových vod");
	Sizeable().Zoomable();

	AddFrame(InsetFrame());

	String qtf;
	qtf << "[A3 [7*/ Demonstrace chyby s focusem]&&"
	"Pomocí menu otevři okno [* Vodní toky].&"
	"Pak stiskni Enter.&"
	"Objeví se Prompt, ten "
	"odklepni a okno [* Vodní toky] opět zavři (myší nebo pomocí Alt+F4).&"
	"Správně by se mělo "
	"objevit opět toto hlavní okno aplikace, ale to místo toho zaleze úplně dolů "
	"pod okna ostatních aplikací."
	;

	window_text = ParseQTF(qtf);
	window_text.ApplyZoom(GetRichTextStdScreenZoom());
}

void AppWindow::Paint(Draw& draw)
{
	Size client = GetSize();
	draw.DrawRect(client, Yellow());
	window_text.Paint(draw, 2, 2, client.cx - 4);
}

GUI_APP_MAIN
{
	SetLanguage(LNGC_('C', 'S', 'C', 'Z', CHARSET_WIN1250));
	AppWindow().Run();
}
