mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-22 14:15:40 -06:00
1232 lines
No EOL
354 KiB
C++
1232 lines
No EOL
354 KiB
C++
topic "GUI Tutorial";
|
|
[2 $$0,0#00000000000000000000000000000000:Default]
|
|
[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param]
|
|
[a83;*R6 $$2,5#31310162474203024125188417583966:caption]
|
|
[H4;b83;*4 $$3,5#07864147445237544204411237157677:title]
|
|
[i288;O9;C2 $$4,6#40027414424643823182269349404212:item]
|
|
[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text]
|
|
[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc]
|
|
[l321;C@5;1 $$7,7#20902679421464641399138805415013:code]
|
|
[b2503;2 $$8,0#65142375456100023862071332075487:separator]
|
|
[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base]
|
|
[C2 $$10,0#37138531426314131251341829483380:class]
|
|
[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement]
|
|
[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam]
|
|
[b167;C2 $$13,13#92430459443460461911108080531343:item1]
|
|
[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2]
|
|
[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate]
|
|
[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result]
|
|
[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line]
|
|
[l160;*C+117 $$18,5#88603949442205825958800053222425:package`-title]
|
|
[2 $$19,0#53580023442335529039900623488521:gap]
|
|
[C2 $$20,20#70211524482531209251820423858195:class`-nested]
|
|
[b50;2 $$21,21#03324558446220344731010354752573:Par]
|
|
[{_}%EN-US
|
|
[s2; GUI Tutorial&]
|
|
[s5;~~~2240; Welcome in GUI Tutorial! Here you will learn how to
|
|
write GUI applications using U`+`+ library. All code mentions
|
|
in this tutorial is multi platform. It means it works exactly
|
|
the same on different operating system. Moreover, examples attached
|
|
in this tutorial are bundle with U`+`+ standard distribution
|
|
and they are localized in [* tutorial] assembly. So, you don`'t
|
|
need to rewrite it by yourself. Good luck!&]
|
|
[s5; &]
|
|
[s3;:Gui01: 1. GUI application main function&]
|
|
[s5; To hide platform specific differences, U`+`+ GUI application
|
|
main function is defined using [* GUI`_APP`_MAIN] macro:&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; [* GUI`_APP`_MAIN] `{&]
|
|
[s7; -|PromptOK(`"Hello world`");&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s0;=
|
|
@@rawimage:1068&818
|
|
(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)
|
|
&]
|
|
[s5; &]
|
|
[s5; Please notice that [* PromptOK] function display simply information
|
|
dialog with the given parameter in this case it is `"Hello world`".
|
|
Of course, in the [* CtrlLib ]package, there are more similar library
|
|
calls. For example `- if you want to display an error you can
|
|
use [* ErrorOK ]and for warnings it is corresponding [* Exclamation
|
|
]function.&]
|
|
[s5; To use U`+`+ GUI related code, all you need to do is include
|
|
[*/ <CtrlLib/CtrlLib.h>] header. Please also make sure that [* CtrlLib
|
|
]package is attached to your current project.&]
|
|
[s5; &]
|
|
[s3;:Gui02: 2. Application window&]
|
|
[s5; Application top`-level windows are of [* TopWindow] class. You
|
|
can run modal event loop for [* TopWindow] using the [* Run] or [* Execute]
|
|
methods. Both methods open the window if it is not yet open (you
|
|
can also open it using [* Open] or [* OpenMain]). Unlike [* Run], [* Execute]
|
|
also closes the window at the end of modal loop. [* TopWindow]
|
|
is also closed by destructor.&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN `{&]
|
|
[s7; -|[* TopWindow] w;&]
|
|
[s7; -|w.[* Run]();&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s0;=
|
|
@@rawimage:2692&1419
|
|
(iVBORw0KGgoAAAANSUhEUgAABZwAAAL1CAIAAADM6bbjAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAABQvSURBVHhe7dixTcNQGEZRNwjWSMlYrJBFGCJVdqHMIIzAixKleLhw93Slc/TJsn57grt93a5mZmZmZmZmZrndo8bnz7eZmZmZmZmZWWiihpmZmZmZmZklJ2qYmZmZmZmZWXKihpmZmZmZmZklJ2qYmZmZmZmZWXKihpmZmZmZmZklJ2qYmZmZmZmZWXKihpmZmZmZmZkt27Ztp8t5Oo6N4/g0HaeJGmZmZmZmZma2bKfL+e39Y+oau8f/EzXMzMzMzMzMbOWmhHGwaIyJGmZmZmZmZma2eK+QcbxojIkaZmZmZmZmZrZ+j5xxvGiMiRpmZmZmZmZmtn6ihpmZmZmZmZn19iga4/l6mX7YnahhZmZmZmZmZis3hYzjXUPUMDMzMzMzM7Nl200YB7uGqGFmZmZmZmZmy7Zt2268GMfxaTpOEzXMzMzMzMzMLDlRw8zMzMzMzMySEzXMzMzMzMzMLDlRw8zMzMzMzMySEzXMzMzMzMzMLDlRw8zMzMzMzMySEzXMzMzMzMzMLDlRw8zMzMzMzMySe0aNXwAAAIAUUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASHpGDTMzMzMzMzOz2G7XP5Xgc+rKo3uvAAAAAElFTkSuQmCC)
|
|
&]
|
|
[s5; &]
|
|
[s3;:Gui03: 3. Modifying TopWindow properties&]
|
|
[s5; You can modify properties and behaviour of [* TopWindow] using
|
|
`"modifier`" methods. Note that modifiers usually return `*this
|
|
as return value, which results in simplified syntax. You can
|
|
also setup the size of [* TopWindow] using [* SetRect] (note that
|
|
unless instructed otherwise, U`+`+ will center the position of
|
|
window).&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|TopWindow w;&]
|
|
[s7; -|w.[* Title](`"My application`").[* MinimizeBox]().[* Sizeable]();&]
|
|
[s7; -|w.[* SetRect](0, 0, 200, 300);&]
|
|
[s7; -|w.Run();&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s0;=
|
|
@@rawimage:2000&1085
|
|
(iVBORw0KGgoAAAANSUhEUgAAAbMAAADsCAIAAABxIN9GAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAAAfNSURBVHhe7dnbj1QHAcfxfTEannjjqclKUkNfeOdPMMQLUC+kaYw+NGqMiZL4YDUGTVPKCriljaWKCrRySWWzawy3clvSBykmpUK1NhqxSU1kF9ilFrAvnjNnZnb2t7Mz09nu2rqfT34hh7PnzGwf+uXM7sCXrxw2M7PWlWV84NIuMzOrpoxmZjllNDPLKaOZWU4ZzcxyymhmllNGM7NclzKuH9v5uUNDvWz96I4HLu6M283MPozrUsYjI2OXXrl66ZUrc3b1D5fLjZ0YHzt+vtivjxz9xOnH4nYzsw/jupTx5Lnxu/fu3bnbZcU1p86cv//41rjdzP5f9/ED3+6wuHhRNzAw0PYdi5PFl+Jkj+tSxjPjF/78lze37T3zxC9Pb9/34tBzp3YcPPnaa3+7MTnxj2vXik1OTjw7+nKxtmVcc+mRlcW3tvGROL96y+DAwOCqkVkn38fV3rd8/TUjG1b09UZ932i2TNYhf0tcxuLtPvLRj8Wbtj3Z+7qU8ez5C6+/8dZXd4597cnRbzxz9Jt7X/jW/iOXL79xY+JfrWXce+z385dxcMXaWYmp53JJyhjnO6+/u8yW5zpEp+8e9b3oYPy1j3Up48kXzxZl/P7+E19/5oWHd/9q89N7Nu95qlbG69dKfy/KuH/8wsGXz3Qo48qNgyu2PDpzcnjdwMZ1i9ogZTRb7HXozkKS1PeaNWwexAXvaT2VcdPQ3k9u2/2pXT/57NM/3vTstuqZschi9cz4mz8eG/3TWIcyrhop/lx3X/3Mo6vKR8jqfHE8sHK4cXFRzLUbVrfcft/G8tmyVPs8Xn+14eJzbqmqbaeTxafpltjV3rp20UD9TVtfv3ZlQ/2vjRvLT9Z11Y31r25ZV51s7b7ZMlmH9CywSn2vauLCs1ispzKuH3ry08M7N/x06MGfP/7F/T+snhmbn6av/vNqsY5lLBtUb0pRmTJ/9fO158f6TyGb18SaL1KPV62ezZ8Dzn8yDsostk3Y3IvnnGz55ltO1ntd/Cc0um+2BCv/NZ5fXLx4U8a3PvPUjk17nvj8Lx7bfGDrw4e+V5RxsuXnjPfu3inWuYyNINbzN7s7ZVbKg9kPjOXtZXQqzYvLg+qr8VJtT84clFHLfnV4/flunPumrcdmy2cftDJWWSz+bB7EBe9pPZXxwZ89/oV9P3ro+R986ch3v3L0O0UZJ643yjgx8fbbt2/dvNmljNWH6OIzb/Vw11KT1VvKn0JWf866t5GkxgfwWXdVz4BzIpUnZw7mlLHb67e/URnNqnVIzwKr1MeihvHXPtatjKfPvXrlr9tHjgyNHtrx2+d3/e7A8LF9Fy++2izjxPXr01O3JicnO5exPK49oMXPAcvjIj1r162c/fvr8nxxfbsPzvVXmOnafCebt1QHZTRb4zvP69e/jdmvUNaw7eu3Xlm9rNkyWYfuLCRJfaxtB9ue7H1dynj81Nl33/3P9NSN6Vvlbk9P356+dXvq5p13/n33zjvF0+LU1NTNmzeKdS9j2ab6w1fUpHgQa/60sbmqZaVGN6u7Vm4crJ1t1Gr+k81bGt9AcVxXe+7L1y+uKb+Twry/gWl9qTbHZstnRXQ6LC5e1BX/Z7Z9x+Jk8aU42eO6lHH48HNF8ubu9LkLZ8dfOn12vHlm98ED95/IMva46iNqnJy7tg0SJjN739eljGte2l70rngY7L4TW4uL4/ZeVj6RzfndS9spo5ktzbqUcVHX+Dzba9eU0cyWZv/LMpqZfTCnjGZmOWU0M8spo5lZThnNzHLKaGaWU0Yzs5wympnl6mW8BUCDMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkJQRICkjQFJGgKSMAEkZAZIyAiRlBEjKCJCUESApI0BSRoCkjABJGQGSMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkJQRICkjQFJGgKSMAEkZAZIyAiRlBEjKCJCUESApI0BSRoCkjABJGQGSMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkJQRICkjQFJGgKSMAEkZAZIyAiRlBEjKCJCUESApI0BSRoCkjABJGQGSMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkJQRICkjQFJGgKSMAEkZAZIyAiRlBEjKCJCUESApI0BSRoCkjABJGQGSMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkJQRICkjQFJGgKSMAEkZAZIyAiRlBEjKCJCUESApI0BSRoCkjABJGQGSMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkJQRICkjQFJGgKSMAEkZAZIyAiRlBEjKCJCUESApI0BSRoCkjABJGQGSMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkJQRICkjQFJGgKSMAEkZAZIyAiRlBEjKCJCUESApI0BSRoCkjABJGQGSMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkJQRICkjQFJGgKSMAEkZAZIyAiRlBEjKCJCUESApI0BSRoCkjABJGQGSMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkOplNDOzmV05/F+CD3V2c1fLHQAAAABJRU5ErkJggg==)
|
|
&]
|
|
[s5; &]
|
|
[s3;:Gui04: 4. Painting the view area&]
|
|
[s5; In order to display something inside [* TopWindow] view area,
|
|
you have to create derived class and override [* Paint] method:&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; struct MyAppWindow : TopWindow `{&]
|
|
[s7; [* -|virtual void Paint(Draw`& w) `{]&]
|
|
[s7; [* -|-|w.DrawRect(GetSize(), SWhite);]&]
|
|
[s7; [* -|-|w.DrawText(20, 20, `"Hello world!`", Arial(30), Magenta);]&]
|
|
[s7; [* -|`}]&]
|
|
[s7; -|&]
|
|
[s7; -|MyAppWindow() `{&]
|
|
[s7; -|-|Title(`"My application`").Zoomable().Sizeable();&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|MyAppWindow app;&]
|
|
[s7; -|app.SetRect(0, 0, 200, 100);&]
|
|
[s7; -|app.Run();&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s0;=
|
|
@@rawimage:1426&573
|
|
(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)
|
|
&]
|
|
[s0;= &]
|
|
[s0;=
|
|
@@rawimage:1675&695
|
|
(iVBORw0KGgoAAAANSUhEUgAAAX8AAACfCAYAAAARd9lRAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAdTklEQVR4nO3deXxU9b3/8deZSWaykEw2SNhECPsSVgHFrVZaqHoFra21dS1awartba+3t9ba9f5ab0tbURRFi+29t7Wty62t2kqLC4KsIRAgJOxbAoHs+yzn98fJZCbJZDIJCcTM+/l4fB9z5sw53/M9yeRzvudzvucERERERERERERERESkPzC6uXxX1xMRkd5jtnntVKRBPDjo6wAgItJ3BAf+iA8CMRFUHAukATYCwT/4ICASDSLuUfWzOtXGvlunCTQA7uZpH104AIQN/hkjRgyeN+8TjzoccTcDWefeVhER6RnmqabGxlfee/dvT1QUF5/G6qD7AG/wQh2tbQ9Tc+y1Cxf/2OFwPgAM6JnGiohIDxlgt8dcMnToCGfh7rz1dPHMoqOevwGkxTocN5tmb5z9iIhIT3A4nYuAp4ASrBSQn9nBNBA+7WMDU6keEZG+bTDgBBy0vxbrpYMzglDBv+WCbqhOf0yMnSGDMvB4PBiGtZ26+gbKq2rCti4xIR7XgATsMTEUnz6Dx+MNu7yIiEQsHusAAIGLvv6LwEbQ/Bbh0j4GIaK/3TCYOWUCFw0f1jLvZHEJb/3zA2rqGkJXZhhMGnMxM3KmcOz4CU6dPkOoukVEooVhGEwcN4ZZM6YyNnsUqSkpAJRXVFB44CBbt+exZ18REabenc3FR+CirxfrInDwCKAWHfX8AQwzxNlCQ1MTW3bsIjU1hcSEBAAGZqQzPnsEufn7MH1eTAx8zWcFhgED01xMGjeG0jOlbNyWS6Pb3a5eEZFokTVoIHd98fOMzR7V/rPMQWRlDuLKy+ZSeOAga/7nZUpOl3ZWpT/t42kudgKjf8CK660CeqjRPkbzSknjp0z/eqitVNfVYfi8pKW48HrdmGYDiQlO3CePM7T8CMk0YHqBRBiQEM/0SRMwfT42bNnOqbKqznZCRKTfGpudzSMPLyNr0KBOl01PS+XS2bMoOnCYs2VlHS5XsCv3j0ANgR6/v5htSouOgr9BmOBvmlBbW0tqQgwDkj34fLWYZgxej48ztZVUxcZiegzsyTYmjs5gyOAM1q/fzKmz1Zg9eG/YousWMH7MaAoK9/dYnSIivSUrcyCPfG0ZCfHxEa8TGxvLzGlT2L5jJzU1dSGXaQ7+1VijfdwEgr8/DdS14D9u8rSQwT/G9DG9dj+Dy/ZQnX4xdQ1x1Nf7MBxOytx2jpQ10WB3kOkaxODMYeTn52KrPEl8o5taHPh64ACw6LoFLLp+AePHjgYTHQAkYtkjL+aRh5ex9t0PMAyDn/3oMTZu2U5jY+M5133RsKE8dP+Xee/DjefeUOlXDMPgwa/cQ1am1eMvKCziZMlpMgcNDLl8Xv4eKioqyEhPJzY2louGDWH9xs0hrwHsy9/xe6AKaMIK/v70T4fB3xa+uW3PGEzseJnlPcqNjnzqi2spPFBKZUUNNTU1NDY2ku5KIjnBiSvByaB0F0WFh9l7oJwSbzJx8W4yvVUYpi9k3ZEWf+D3W3T9AhZdt+Cc6lTpmXLbLYtZ88wvGTlieLvPHnvka7z49PIL3karAJiYpo///eNr1NTUdKseu83gkhlTW96fLi3l9b++1Qf2T6Wny4ycyczImdzt9SeNH8PY0dn4NTa5+fmTT7M1dwdtbc3dwfIVK2lye1rmjR2dzaTxYzqov+vCBn/TbF8GeWu4KWsXpeYA/hk3ioMnz1B29gzV1VVUVVXh8XqYMHIYo4dlcba0lB35e7HFDqCmycFJM5lkl5d4mydk3R0Vm83WMr3ouoWtAn9n7VU5vwXgZMkpLps9q/X3JiODuLi4vvN7CmrH1tydeL2+btUzZnQ2c2bNaHlf39DIzvy9F37/+nkZk53NpPHjOl1u8oTxjMnOPuftTc+ZwkNLl/DQ0iVMz5nSrToumTm9VbyaOnkiD96/hBXPrm51ANiau4MVz67mwfuXkDNpQqt1Zs2YHrLu7gib9hk7aWqrtI/d9HG57RCXDz3MKyemUOjIoNHjxefz4LD5qG9opKmxEVdiLFU1tRTuK4R4Fza7tRm314Y93sRpM6hpskd0vLLb7Tz5xA8pLill7qwZLL5hYbtlXnvjLV77y1td33vpcVMmTeD4iWIumzuLt9e+i/8U9VPXXE1xSQnjxmTz+l/e5vFvfYO6+npOnCwGYOiQwTzxg+/w9tp1+Hy+lvpGjriIB79yD7csup5rr76CsvIKThSXAPDsL3+K1+vl1psXcd2Ca0lKTKSgcD+maXL9gvnMmzOLa666nM986pNcPnc2hfsPUl1TQ1pqCjOn5fDOuvcBePHp5bz7wUYaGhvJyhzEV++9mzu+cAufvGoee/cVUVFZxW23LOaeL93KDQvmM25MNtt27GJIViYP3HsXFw0bytWXX0ZsTAw+n49///pXW+qeOnkiDy1dwmdvvI6pkyey/9Bhqqute2Ke+cVPqKmt48u3f4GF869hxPBhbM/bhe6q79yQrEE8tHQJx0+UUFxyKuQyM6bm8MB9d7NlWy6nS890e1szpuawdMkdPLXq13y0ZTtLl9wRdrsdufWmRSQNSGy9H4OzGD5sCCueXc3wYUM4WVLSEvhnTZ/Wrg6nw9ny3QpWuDvvZbqY9unkqZ6tv4QxhpexKWdw++ycsCVhGtYyZVV1JMYaeDxeUpPiKS4p5XR5JYYBtqBtmkBlYyyDkn0Y9T5MX+e5f6/Xwwu/+R0P3Hs3sbHtm2sF/jc7rUfOn/KKCkpOnWbyhHHs3L0HwzCYO3smK55dzQ0LPwWYrN+4iUtnz2Tztu0AzJk5jc3bc/F4Wg8Drqyq5De/+yOHjx5jWs5kvnz7F9iyPRcAR2wsKa5kfvjEcuLinDz+rW9y+OgxtuftBEzmzJrBt3/wn5SVV3DlvLksW3Inj/3opwS+18HfbxObzeBrS5fw7voNLH/qWVJcLsorKwGTvF27efWNv+LxePj2Nx5m3txZrHv/Q177y5tMmzKZFateAGD0qItb6huYkc7999zBfz25kkNHjnLFpXP4+rL7+Nb3fozX68XpcDB86GAe+9FPiYmx873/+Dem50xie96u3vnF9CO79uzlmdUvsXTJnTyz+qXm33mAP2A/s/ol8vcWdHs7wfX4txFuu+GkpbpCzp81fRoP3r+EX618DoCHl90XMvAH6uiZzkEnaR+zVTFMH0kDGmiIG0AjMS3za6qr2PDBOvbt3sHe/DzeeucfbNu6jZMnjuOpK8Pn9bYs63YDNh+Yvnb1d1S27cjjqedebNUjBHjtjTd59Y2/RlyPSu8Xvw8/2sJlc2ZhmiajR42k9MwZyisqW75XGzZvYeL4sSTEx2OaJrNnTmfjpq3t6jtbVs6hI0cxTZOd+XtwJSdjt9tatvX+ho8wTZP6+gbWb9zE9KmTrc9M2F2wj7Nl5ZimyQcbNpE1aBBpqSmYJtCmzaZpMmzoYOLj43jrnX/S2NTEqdJSmpqaME2T/L0F1Nc34HZ72FNQSEZaWvP6bf9WAnXPnJZDXv5uDhw6jM/n470PN2KaJqMuHtGy3XUfbMA0TdxuD/sPHiJz4MAL/jv8uJRtO/JY+fwali65szkVY82fnjOFpUvuZOXza9i2I6/b9XdUT0fbjfRv41z1VN3he/5t6vRhUOOLY0C2k5R8H8Wmicfjo/b0UeLtJl4fVNa5cRhemrw+6us9JNWUE+scAA7rdCfGDl6vDdM0unwA8zYHf5vNxmt/fpNX31CPv6/avDWXz910I06Hg8vnzubDjZtbdbjrauvZmb+H2TOmU3TwEPHxcezdV9TuOzFx/FgWzL+G+DhnyzwDG9aNJFBXW9eyTnV1DeNGZ7e8r6urb5n2eX3U1NaSnJQUuuMPpLpSrANUm/kOh4ObbvgMo7NHYpo+MtLT+WjLttYn0iFeU1Pa11deUUlaiivQ5qqaVm202+091bGLCtt37GTl82tYdu9drHx+DUDL9PYdkffK25o8cXzYeoK3+6uVz7Frd+dnF2XlFQzOymw335/jf3jZfQBh0z5l5RU99v0IG/zNNltxY6Ogbgjzcur4xMlYDm/xUFF1GpdRi31AAp6UofhMg4Heak6fKcM0DWpqKhiQ6MQdMxzDbsOV5KWm3obXZ20hEjOn5bDs3rt4qvnU+qv3fZnDx461a5/0BSYmJjV1tRQUFjHnkhlMnTKJ//7Dn3DEOlqWAPhgw0csuPYaXCnJbNy8DZ/Z+swuISGebzy0lB/+dDmHjhwlzulk9VPLm7dg1eJyJXO2vBywboipqKpq+dTlSm7ZVmxsLMnJSVRUVpKWmtqqHWbzdEVVJakprnbfq8U3LCQ9PZWfLH8St8fDbbfcFNQG/9pmmzpNKiorGTF8WKv60lJTKCuvaFnDh6/VOmZQXRIZqyf+a77+wFcA+MXTq9h2DoEfoMnt5pcrn2PX7r1ht/vLp1fR5PZE9DsrKNrfLvgHX9z1B3v/ReBQB4CCov099v3oUtrHY8LOpnSKq9OYvWAgV6SdIM1TTEpiDKQMxYhxYnc4iUsbRobLid1wY5qNNNaWkkANSfEenDEm1XVGxKdKM6bmsOzeu3n6uV+zNTePrbl5rFj1Akvu/GLzKKALf/qpElwA0/rurN+4idtuuYk9BftoaGhsOT31L5uXv4eszEFcMmMaH360uV1dcU4nBnC2zArun/rk1a0+B1g4/xpiY2PISE/jqssvY1uudXqOCZMmjCN75MUYhsENC+Zz4kRxSxoouB3Nbzhy9DhNbjfzP3EVNpuNlBQXSQMSSRqQSHlFJU1uN2mpqcycntOyj5VVVQzOyrJ67M11+l83bd1OzuSJZI+8GIAr510KBhQdPNRqu63bEfq0XiV82Zqbx/KnVrH8qVVsze1+qsdfCgqL2Jm/p9Pldu7eS0FhUUR1btqyrVV83bl7b8gg778GsOLZ1eTl72m1zqYt20LW3R2dpH3aV3rW7eDP671cP6mUK4aXc7LY4KR9CF4zsWUdj30AgwYPx920G48JDe5GLnKcIt41jOKKWJqamr/lnbDb7dx71xd5etWLbNuR1zJ/W+4OduzchderJ4P2PYHxZzvydmFgsH7jptZj0ppffV4vH23ZxvSpUzh85Gi7ms6eLeNva9fxxA8eo7Gpkb++vZaTJada1VVYdICffO87xMU5+ed768nN29X8mclHm7ey6LoFjBk9ipJTp1n5/Ish2+Gf9no8/OKpVdz9pVv5/M03UlNTy8+eXMmbf1vLg/cv4ZlfPMGJk8X8/R/vkuJygWmSv3svZ68pY+Xyn/C3tevI27W7pb7S0jM8u3oNX7n7dlJcLo4eP87yJ5/B6/G02m6gPUE/P+mybSHGy/cl+XsK2Fe0n3FjRgPgiI3hXx9cxtTJE9stO2v6NL7x0AM4gga5FBQWkb+noMe+H6GG29iay+CFN9/W/i8SSIhrYnbKaaYOP0lMSjobj2Wx53gCNXWGNabIZxIf48PVtI+zlaVkZMSRkRZHg2cQ+8uzunSHr91uV5Dvx+65/QuUlVfwejeG6r60agUP/dujVFa1f17Uv3zm02Skp/Hib3/XE80U6RGDszL54aP/TkJC5I93AKitq+O7P36iw+Glb73yv4uB41jP96nF+t++/v/vGzzks0WXe/4AKWYDTuMUBcVxlJZnkORyM2NCBcWnkvGZJvWNBnFOLy7bcIbU1XGmupHiMw0kxZ8hPT6ZM3XxRPqMn1a9JOlXhgzOYu6smTzy2Pe73ZsxOuopm2BgqBctfUpxcQk/+9VKvvnwsogPALW1dfz8yWcobr6/paeEv+Ab4g/H21RHiu04J0u9kBJLg6+Ko6eS8Jl2fGY97kYHTqeH2noPBys9pPicmO5GbHao8zYS7zhGfW0Wsc7Elpu/JPo8/h/fJCszkzX/8/uWIaDd0XHOs/lCrIK/9DF7Cwv5zg//H/fdfTvjx44Ju2xBYRHP/fq3Xb6hLBJh0z6fXvT5dmkfj6cJT301TU1NuFLsTBjlBcNGVY2D0+Xx1DXGWL0xwOv14mlqxOdtwOvxYLPH4HA4scXGERPrbPlPYCIi0cYwDKZMHM+c2bOYMHYMaWnWKLSysnL2FhaxafNWdu0piKgD87fXX+7htE8IMTEOYpLSicPqWxUcNbHbrVEeXp+NmKAa7TGxOJxxQOg720REopV/tNDOMMNJe1OXg39bPtPA51EPXkTk46STRzqLiEh/pOAvIhKFFPxFRKJQ2Jx/3R1Pnq92iIhId73+cpdXCRv831/c+X+XFxGRC6s7Q26U9hERiUIK/iIiUUjBX0QkCin4i4hEIQV/EZEopOAvIhKFFPxFRKKQgr+ISBRS8BcRiUIK/iIiUUjBX0QkCin4i4hEIQV/EZEopOAvIhKFFPxFRKKQgr+ISBRS8BcRiUIK/iIiUUjBX0QkCin4i4hEIQV/EZEopOAvIhKFFPxFRKKQgr+ISBSKudAN6Mu+bwSmHze7/rn0nJ78Wev3JnIBg393/wD1hyvni75r0p8p7SMiEoUU/EVEopCCv4hIFFLwFxGJQgr+IiJRqF8P9fR5Yc8fYO+rcGIL1J4GwwZJQ2DElXDJUhg8s/fbUX8WtqyEoregrAgaKiHOBeljYfRCuGQZxKd1v/5fjYKKQ9b0Xe9Z+9bWlqfhza9a05952tpmW0fehzVXWdOpo+ChA723T6FG0uz5I+x4CU7thJpiME34rqfjOkI5uw82LoeDa6H6JDiTIWM8TLsLpt5p/f5FpB8H/7P74OWboXR3+8/KiqyS+wLM/RrM/xnY7L3Tjr2vwut3QVN16/l1Z6xybANs+Bks/g2M+5fubSN7Pmx7zpo+uDZ08D/wTmD64Duhg//BoGVGXdvx9np6n9x18KdbofCN1vO7Gqi3P28d4LxNgXmeBuugf+R9yP89fO6VrtUp0l/1y37Q2UJYPTd04G/ro1/C2kd6px2Fb8AfPts+SLbVWAkvL4b9b3VvO8GB+uDa9p/7PHB4XeD9oXXWvLaC1x01P/S2emOf/rqsfeAHMH2dr+u39xV4477Wgb+tA3+3tiUifaTnH5wCOFemD/74OWiosN4PmgxzHoKLr4akoeCphzMFsGkF7H7ZWmbjcsi5HbKm9Vw7mmrg9buB5pRGfBpc/T0YvwgSM6H2lNWDfvd7VltNH7x2Jzx8CByJXdvWyE9avWTTBye3QGOVle7wO7HZmjdwopVKObPXmjf8ssAyDZVWagysukZec/72Ke8lq64rHrXOFFwXgd0R+f431cBf7g+8T8iAq79v1ZWYCbUlsO/PsO5x2PnbyOsV6c/6Xc+/4DU4lWdNj7oW7tsGM+6FtDEQmwDx6TB8Hnz293DldwLrbX2mZ9uxY42VFwdwJMHdH8DsByF5uBXYkofDnIetHH1sgrVcXakVCLsqPg2yplvTPg8cfrf15/50zqj5VoooeJ7f4XVgeq3pwTNC5+t7a5/i02DJJrj0XyFtdNcCP0Deb6x0E4DTBV/eYKW1koeBPdZq1yUPwD3rrXZHKjax9atIf9Lvgv+eoJzuNT8OH0jmPByYPvJ+z7YjON0x7xGr1x1KZg5c9s3Q63VFdlCapm1gP/D3wDL+dI5/Xss6wSmfDvL9vbVPV3zbCvrdVfRm63aljQm9XMZ46/NIxbms1+CzKJH+ok+kfbr7bJ9QTmwKTL8QlNbwpypMs/V7v6rjkbchEiV5gekJN4VfduJn4b0fNK+3o3vbG3UtrP+JNR0cyBurrBSPLRZGNI/kscUGUkH+wNbqYm8H+f7e2qfuXuhuaVdQ/RMWh192wmJY91hk9Tpd1ogh/0FApD/pdz3/mlOBadMbVHzNFxBN2gV+sPLGPcmfHgFr2GQ4qUG93rqzHS8XzvDLISbemj5TANUnrOnDzRd3h18KjgFWGTa39UXgqmPWRXKw6hg+L/Q2emufXCPCf96Z4HaljAy/bEon7Q6mnr/0Z/0u+IcaxRINYpxw0eWB9/7e/4GgfL9fdpvUT/Aw0BFXWHWdT13N8Z8vTgV/6cf6RNqnJyUODKRwvnkKEgddmHbEpwd63+UHO86PA5QH3UyVkN79bWbPD6RvDrxj3dTkfx98TWDUfFj33UDQjyTfDxdmnyIR3K6KQ5AxoeNlKw5GXu+X3j63don0Zf2u5x98x+6+/7tw7QgeNlrwWvhl9wZdpPaP2umO4MB96B9QecRK58SlwOBZgc+GXGL1asuKrGB56B9BdXSQ74cLs0+RaNWu18Mv29nnItGi3wX/4AuR/3jUutM3nJpi66alnjZmYWD6wyc6bsfpfPjwv0Kv11WZ0yBhoDVdUwIbf2FNj7ym9R3MNntgHP+Gn1t3wIK1bubUjuu/EPsUiTGfCUyv/6l1UAvlTIH1uYj0w+A/5TZIH2dN15XCc7Pgn48GRrf4PFaw2/+2dUfor0a17qX2lKl3WjcbgbXdF+ZZz8KpPgFet5Wa2rwCfn0luGut5RIHWet1l2G0vjnLf+9CqN68Pw3kfywEwKhPWnX0pX2KRM7tVuoHrDuLX5hn7bu/XdUnrGcbvXh553cmB/u+ESgi/U2/y/nbYuDzr1gBoLHSGsXzwX9a5XxyDIAbX4Tf3QiY1oiUNx+wSiiGDRatCdwc1V3Z8wN3LvsfdZAdIvj7Dwg+d9C8MPl+uHD71BlnEtywKnAGV1dqPcYh1KMccm7XXb4i0A97/gADJ8GSj6ybjTqTcjHc2kt54LE3wOf+1PldpU4XfP5V62mY56ptAE8ZCanZ7ZdLG23te6t1w+T7/S7EPkViws1w/SrrHoaOjLoWrlt5ftoj0tf1u56/X8Z4+EqudYFvz5+sm79qT1tpgAGZMHQOTLzZChq2XvwpTLgJLr4q8Pjjs4XWGYnTBRnjeuaRzsFcI6w7XP1573C9+VHzrSdhgrWO66LItnG+9ylSM++znmi6cbk1yqm62DoryJgAU++AaXf33tNbRT5uQmUzbc0lyzTNY+e5PSIi0kWGYSwCTgA1QC3Q0FzcgAfwNZcW/TLtIyIi4Sn4i4hEIQV/EZEopOAvIhKFFPxFRKKQgr+ISBQKF/y78C9WRETkAupyvFbPX0QkCin4i4hEIQV/EZEopOAvIhKFFPxFRKKQgr+ISBRS8BcRiUIa5y8i8vFn0sWYrZ6/iEgUUvAXEYlCCv4iIlFIwV9EJAop+IuIRCEFfxGRKKShniIiH396pLOIiHROwV9EJAop+IuIRCEFfxGR/iPi3L+Cv4hIFFLwFxGJQgr+IiJRSOP8RUQ+/jTOX0REOqfgLyIShRT8RUSikIK/iEgUUvAXEYlCCv4iIlFIQz1FRD7+NNRTREQ6p+AvIhKFFPxFRKKQgr+ISBRS8BcRiUIK/iIiUUjBX0QkCmmcv4jIx5/G+YuISOcU/EVEopCCv4hIFFLwFxGJQgr+IiJRSMFfRCQKaainiMjHn4Z6iohI5xT8RUSikIK/iEj/02kaSMFfRCQKKfiLiEShmHAfVlRWna92iIjIuenSiJ/wPX/TPHVOTRERkV7l9XhOt5lltnkNKVzwry8rL3vlnFolIiK96uixo28B9VjBPuLevz3EPMM/sXXLlrxPL1jgTIhPGIZB0rk3U0REeoLX4zl95MjhPy1csOC12tracqCxuTQBnubiay7Q5sBg0J6BdUZgby4JQCbgBOKbX52Ao/lz3Qks0aA3vucfhzrVxr5bpwk0YPX6G4Kmgw8C3ubia7v9joK//wAQ01wczSU48McS+sxBRC4sdcj6n45+pybgxgr0wUG/be+/XUoo1Gif4IsFPqyjhpvAgcLXXGEMGioqIgE66Jx/JlY8drcpwb39kNcCwg31NJsraDvPH/zthD5zEBGR3tM2kPtTO/6DgCdoXocH5I6Cf/AKvjbzvViB34aCv4hITziXsyZ/hia4hO31Q+c9f3/FwakgL4HAr+AvInJ+tQ3m/oxMcKo+bOCHyIK30aYo8IuI9B3+IN+2tx/2bCLSAG4EvRpt5omIyIUTnJmJ6O5e6HoAV+AXEel7Ig76IiIiIiIiIiIiIiLSv/x/pwp1jDNQPicAAAAASUVORK5CYII=)
|
|
&]
|
|
[s5;=l288;r224; The same application running in different operating
|
|
systems. On the top MS Windows and on the bottom GNU/Linux with
|
|
KDE.&]
|
|
[s5; &]
|
|
[s3;:Gui05: 5. Reacting to input events&]
|
|
[s5; In order to react to user actions like mouse clicks or keyboard
|
|
events, you have to override appropriate virtual methods. To
|
|
issue the repainting of view area, use the [* Refresh] method.&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; struct MyAppWindow : TopWindow `{&]
|
|
[s7; -|Point p;&]
|
|
[s7; -|String text;&]
|
|
[s7; -|&]
|
|
[s7; [* -|virtual void LeftDown(Point pos, dword flags) `{]&]
|
|
[s7; [* -|-|p `= pos;]&]
|
|
[s7; [* -|-|Refresh();]&]
|
|
[s7; [* -|`}]&]
|
|
[s7;* &]
|
|
[s7; [* -|virtual void MouseMove(Point pos, dword flags) `{]&]
|
|
[s7; [* -|-|text `= Format(`"`[%d:%d`]`", pos.x, pos.y);]&]
|
|
[s7; [* -|-|Refresh();]&]
|
|
[s7; [* -|`}]&]
|
|
[s7; &]
|
|
[s7; -|virtual void Paint(Draw`& w) `{&]
|
|
[s7; -|-|w.DrawRect(GetSize(), SWhite);&]
|
|
[s7; -|-|w.DrawText(p.x, p.y, text, Arial(20), Magenta);&]
|
|
[s7; -|`}&]
|
|
[s7; &]
|
|
[s7; -|MyAppWindow() `{&]
|
|
[s7; -|-|Title(`"My application`").Zoomable().Sizeable();&]
|
|
[s7; -|-|p.x `= p.y `= 0;&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|MyAppWindow app;&]
|
|
[s7; -|app.Run();&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s0;=
|
|
@@image:1800&880
|
|
(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)
|
|
&]
|
|
[s5; &]
|
|
[s3;:Gui06: 6. Multiple main windows&]
|
|
[s5; If you application uses multiple top`-level peer windows, you
|
|
cannot use the [* Run] method as it runs the modal loop for the
|
|
window. Instead, you have to allocate top`-level windows on the
|
|
heap and use [* Ctrl`::EventLoop] `- this event loop runs as long
|
|
as there are any top`-level windows opened. Use `"[* delete this]`"
|
|
in overridden [* Close] method to close and deallocate the main
|
|
window.&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; struct MyAppWindow : TopWindow `{&]
|
|
[s7; -|virtual void Close() `{&]
|
|
[s7; -|-|delete this;&]
|
|
[s7; -|`}&]
|
|
[s7; &]
|
|
[s7; -|virtual void LeftDown(Point pos, dword flags) `{&]
|
|
[s7; [* -|-|(new MyAppWindow)`->OpenMain();]&]
|
|
[s7; -|`}&]
|
|
[s7; &]
|
|
[s7; -|virtual void Paint(Draw`& w) `{&]
|
|
[s7; -|-|w.DrawRect(GetSize(), SWhite);&]
|
|
[s7; -|-|w.DrawText(0, 0, `"Click the view area to open next window!`",
|
|
Arial(20));&]
|
|
[s7; -|`}&]
|
|
[s7; &]
|
|
[s7; -|MyAppWindow() `{&]
|
|
[s7; -|-|Title(`"My multiwindowed application`").Zoomable().Sizeable();&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; [* -|(new MyAppWindow)`->OpenMain();]&]
|
|
[s7; [* -|Ctrl`::EventLoop();]&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s0;=
|
|
@@image:2609&1714
|
|
(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)
|
|
&]
|
|
[s5; &]
|
|
[s3;:Gui07: 7. Menu&]
|
|
[s5; Content of menu in U`+`+ is represented by the function or method
|
|
adding required menu items to the [* Bar]. Items can contain [^topic`:`/`/Core`/src`/Callbacks`$en`-us^ C
|
|
allbacks] to actions invoked by choosing the menu item or [^topic`:`/`/Core`/src`/Callbacks`$en`-us^ C
|
|
allbacks] to sub`-menus. Menu itself is managed by [* MenuBar].
|
|
[* MenuBar] can act both as widget or as a [*/^topic`:`/`/CtrlCore`/srcdoc`/AboutFrames`$en`-us^ F
|
|
rame]. Frames are placed to the window border and reduce its
|
|
view area.&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; struct MyAppWindow : TopWindow `{&]
|
|
[s7; [* -|MenuBar menu;]&]
|
|
[s7; &]
|
|
[s7; -|void Exit() `{&]
|
|
[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&]
|
|
[s7; -|-|-|Break();&]
|
|
[s7; -|`}&]
|
|
[s7; -|&]
|
|
[s7; [* -|void SubMenu(Bar`& bar) `{]&]
|
|
[s7; [* -|-|bar.Add(`"Exit`", THISBACK(Exit));]&]
|
|
[s7; [* -|`}]&]
|
|
[s7; [* -|]&]
|
|
[s7; [* -|void MainMenu(Bar`& bar) `{]&]
|
|
[s7; [* -|-|bar.Add(`"Menu`", THISBACK(SubMenu));]&]
|
|
[s7; [* -|`}]&]
|
|
[s7;* &]
|
|
[s7; [* -|typedef MyAppWindow CLASSNAME;]&]
|
|
[s7; &]
|
|
[s7; -|MyAppWindow() `{&]
|
|
[s7; -|-|Title(`"My application with menu`").Sizeable();&]
|
|
[s7; [* -|-|AddFrame(menu);]&]
|
|
[s7; [* -|-|menu.Set(THISBACK(MainMenu));]&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|MyAppWindow app;&]
|
|
[s7; -|app.Run();&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s0;=
|
|
@@image:1240&949
|
|
(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)
|
|
|
|
@@image:1240&964
|
|
(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)
|
|
&]
|
|
[s5; &]
|
|
[s3;:Gui08: 8. Context menu&]
|
|
[s5; Context local menu (usually invoked by right mouse click) is
|
|
similar to the standard menu bar handling, just instead of adding
|
|
MenuBar to your application, you [/ execute] the callback to the
|
|
menu:&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; struct MyAppWindow : TopWindow `{&]
|
|
[s7; &]
|
|
[s7; -|void Exit() `{&]
|
|
[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&]
|
|
[s7; -|-|-|Break();&]
|
|
[s7; -|`}&]
|
|
[s7; -|&]
|
|
[s7; -|void LocalMenu(Bar`& bar) `{&]
|
|
[s7; -|-|bar.Add(`"Exit`", THISBACK(Exit));&]
|
|
[s7; -|`}&]
|
|
[s7; &]
|
|
[s7; -|void RightDown(Point, dword) `{&]
|
|
[s7; [* -|-|MenuBar`::Execute(THISBACK(LocalMenu));]&]
|
|
[s7; -|`}&]
|
|
[s7; &]
|
|
[s7; -|typedef MyAppWindow CLASSNAME;&]
|
|
[s7; &]
|
|
[s7; -|MyAppWindow() `{&]
|
|
[s7; -|-|Title(`"My application with local menu`").Sizeable();&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|MyAppWindow app;&]
|
|
[s7; -|app.Run();&]
|
|
[s7; `}&]
|
|
[s7; &]
|
|
[s0;=
|
|
@@image:1349&640
|
|
(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)
|
|
&]
|
|
[s5;= &]
|
|
[s3;:Gui09: 9. Context menu alternative and using CallbackArgTarget&]
|
|
[s5; It is also possible to create context menu by adding menu items
|
|
directly to MenuBar. Also, quite often the result of context
|
|
menu is some value `- in such case, [* CallbackArgTarget] can be
|
|
used to simplify the task `- CallbackArgTarget [* operator`[`]]
|
|
returns callback which, when invoked, stores the value of index
|
|
(which has to be of CalbackArgTarget`'s template parameter type)
|
|
for later retrieval. If none of operator`[`] callbacks is invoked,
|
|
the value of CallbackArgTarget remains Null:&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; struct MyAppWindow : TopWindow `{&]
|
|
[s7; -|void Exit() `{&]
|
|
[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&]
|
|
[s7; -|-|-|Break();&]
|
|
[s7; -|`}&]
|
|
[s7; -|&]
|
|
[s7; -|void RightDown(Point, dword) `{&]
|
|
[s7; [* -|-|CallbackArgTarget<int> result;]&]
|
|
[s7; [* -|-|MenuBar menu;]&]
|
|
[s7; [* -|-|for(int i `= 0; i < 10; i`+`+)]&]
|
|
[s7; [* -|-|-|menu.Add(AsString(i), result`[i`]);]&]
|
|
[s7; [* -|-|menu.Separator();]&]
|
|
[s7; [* -|-|menu.Add(`"Exit`", THISBACK(Exit));]&]
|
|
[s7; [* -|-|menu.Execute();]&]
|
|
[s7; [* -|-|if(!IsNull(result))]&]
|
|
[s7; [* -|-|-|PromptOK(`"You have selected `" `+ AsString((int)result));]&]
|
|
[s7; -|`}&]
|
|
[s7; &]
|
|
[s7; -|typedef MyAppWindow CLASSNAME;&]
|
|
[s7; &]
|
|
[s7; -|MyAppWindow() `{&]
|
|
[s7; -|-|Title(`"My application with context menu`").Sizeable();&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|MyAppWindow app;&]
|
|
[s7; -|app.Run();&]
|
|
[s7; `}&]
|
|
[s7; &]
|
|
[s5; &]
|
|
[s0;=
|
|
@@image:1329&1704
|
|
(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)
|
|
|
|
@@image:1324&1704
|
|
(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)
|
|
&]
|
|
[s5; &]
|
|
[s3;:Gui10: 10. Adding images&]
|
|
[s5; To add some eye`-candy to the menu, you can add small raster
|
|
images. In U`+`+, images are represented by Image values. You
|
|
can use image designer, part of TheIDE, to design Image constants&]
|
|
[s5;= &]
|
|
[s0;=
|
|
@@image:2818&2196
|
|
(A4YDvwIAAEH9AAAAAHic7J0JvOVEga/TILTO/PSpjI6OCIMKIqIDiBvQCrLKJvtOsyg7giwCKup1G/f33OaJy8zDcZbHiLs+n/t1XGfAYXFU5DVD03s3p6Hp7ntvg2Je5eae3DpZ6lQllaQq+b7f/3c7J6dSp1JJTn1dZ9u4acPGYR7a9FBwxC8XHHm7SHDob6McftdcjlkaHH9fcNqKYPHq+O+Cc9YFi9cGp60OzlgbLZwxzCn3E0Js5AFCSKWcuoYQUjXpgWl0qDo2zsro7xGrZxdWzi6Im7NrjlgeHLIiiliIbq6O1h+yLnjlnRvWL4nz4GwSHY1FdNsLNi+88tHt3hz+xTujPPs94XM/HO75oXDPT4T7fDTKor+J8spPFiYuQAipGMVVRgjRSetXMSHdSPbKioUw+VuUSCBHI8RSRHjmtpf+QUhpsOfPUkYqXHSrM9cKHd3q0ocWXv1HUTKR0p3eH0V46fM/Mh8hqHHklYQQQgghpEsRBhhHvhmLZTxvGYtiErFSvhnLZJLYMEUWXv6oSHDKpmDfOxMjDQ749+CYZcHxdy84736R4IL1cYSdbn3Z1NaXPyIcNbjq0a2vDEXiZfE3WRkvxCu3veKPC6+cK0kIIYS0mAWX/pEQUjHxpRQrX+x7cRZc/MhW5z289YWbtz7voQVnTwVnbQxOm/17+kZxc27N2Q/M5YxB9FesOXHd3Mv9Yo3ICcuDA38VLJKM9IhfBqfdO5/Fq4Nz18Z2Krw0TmSnBYnuFU1Kct5DhBBCCCGkg3ntIMo59y84Z91WZ64ViT5VdMqqKCeunItQzTjH3xflmKUiC45aEhy+JPp0UvJhJaGjL70leNoXhJEGe/0oulcY6fF3z0WS0sRL53LRxvkkKy9YH5WRNZgQYiFrCSGEkPYjhDOVWD4zwjl0zqF5JokVVPinyCvvDBbdOheho0JERZ5y49zCAf8efb6+wEiTpCw0WiMKxB+6Xyy1OfZkQgghhBBSOductvL8/3n/yvW/D80RG4rNLdTzifu3OXlu8nOb45ad/7E1Kwel6nnvvdvsO+uie/4sUtDdvhXscnNkpM/5pzwjXZFrpImFSiK6evb7oFaPuGgyZ0sIKZ3kJQ9CSLnEszeE+J/zP752ycpHr/r0lrM/NHPiu6ePetv0YW+eetU1UwddN/WKq+ay7xVRXnTpZpE9Lt686+s273jmg3tfsPTO/7dRbG6nnk+si+o5JtLRR+5bcv8Hr1r7lrNXX3HiqouPWnn+YSvOedWK1x604qxXxFl+xr4iy056UZTj91h61K5LDt7x9uP3fvCuO4WURjoaG+mzvh256BPeGjztC9HNRbdudXDaSCPnjM0z8dJz1s2vXDw6kZuYfOtPQYQQQsgJGCnpTsIwvOazWz7y5Yc/8bWH3/PPW9742S2XfXLLhR+bOf8jM+f+95mzPhRl8QdnTn3f9EnvmT7mndOvvn7qlW+c2uuSjc8+Y/keZ/x05eD31uo5ZllwzFJRz+DD1zz4+Y9s+KdPPPDp99z/4Teue+9l695x4dq3n7/2+nPXvOms2Sxe88ZTV1950qrLjll54atXnP3KpSfudfshz/4/R+yxct0jc3Oku/8ia6TR6/vyBOnitbF/xonfvxq/hXX+ZfrcV+pbn1kipBtpfTQnxPe0bRGE2IowwPM+MvPJbzz86W898v5/efjNN2658tNbXv83Qia3nPc/IpkUOefDM2d+YObU904f967pI982feC1Uy+9bOOuZy1/yiHfFptbq2dopGvfft6Gmz750M2ffuBv3z/46Jvv/+CV697z+rXvuHDN284TUhrlLeesufbMNVefuury41ZefOSK1x5436kvvfPwXf/lRU+J6hFGKiKM9C9/oW+kwSgYKSFNpPXRnBDf07ZFEGIrQuFO+etp4ZAf/uLDb//8lis+teXij2953X+fWSzU8a9nTnjntMixE9NHXD91+PXRS/CvfOPUPldu3vvSjbuds/xph31XNtKq9QyNdM3VpwgXffBzH17/N2+//wNXrHvXxWvf+ro11y1efdWpqy8/QWTV649deeERKy88PHop/+xXLj9jn6Un7X3nkbvd/JKnFRrpnj+LPvcU/1SouITjHwYdZXKWMLU2+6p964M4IYQQQki3IhTuuHdOv+l/bbn+c5FGXvDRLWd/cObU98wc/47po94yfci1UyIHXDW1z+WbX3aZEMjNe126ec9LNu9x0UO7n7vimUd+LzLAvHrGfgopp56jlouIhdWXHzf46JsGH79e6OjMrf8arbny1NWvP37lhUeteN0hUc46YPnp+4j1m777pWUn7rXsxD3vPX6PXx29+xf3eWZUz0vujBIb6S43R0b6F9+LHHXfO6PP6Qt/Fg0eGmnSnthIxT+x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l8jq03dfc/LOa0/Yce0xT197+JPWHPSnKxZt85sXbfXlXRZE9Ry5aW6aVBjpnj+LjPQvbkuMNJkgjY1028sfEToam6ew0IVX/1HOnJFeGc7lsvm0/ixEKkaesa+vfoy0vjz5qkc/8y+/m3thet0fP/3NddEU6K6fabIN8lmUPabPfuuj3/vxfabnWLtnTvwo3709+qTYY5/18YaPKSGkzxFPPk84Zv32pz+462s3/NWFG150yUN7X/rQnpdu3PP1G194+cbd3hBl5zds2vHyTU9//ebtLt78+PM3Lzx701anbQiOWhbs8+3kmbZ6PZHZzhrpXS99wv87cPt7jtz1v477q3tPfNHSk/deeuKeS0/a876TXrjsxN1EVhy/84pjdlx55NNXHrbdygMfv+IVC5e+bKs7/ir4l2cHc0YaS6kw0vhV+1EjjaU0foNoPEEa5cpHs0aqllLie+TX+uurX399D1P1Gex1U9u+7BtzL0w/6+NiufmnUPksyt679VnrH/uCzxfdq65Tf30deySaLRrffH8SQnqblQ88uuvie7d7zb3POPHenU5btvMZ9+1y5tLnnHHfsxcv22nxsh1m84yzVj518crtzlz1hNNXPu6UVY85YdWCo5cFB/9qx6P/b2Kk1euJ51pXrn/0l6/e9daXbXfrK55x20E73Xbozrcdustthzzn9kOffcchO9158A4ivz74Gb9+1VN/s/92v170hN+8/HG/fvFj7thjwb/uFnxhvx2jeo7dPGKk231QNtLg9Pn3kcYzpdte/HDaS6WX7HN1tPWjRgghhBDSpVzwd9O33/3Qrif9+PGv/D9POuj7Tz74u3928LeffNC3tzv4e9sd8v0nHvwDkccfPPknB//osQf9eNsDJrd+5eSCV/442PcHOx797dvuWi82t1LP+Z+Zio30/E9NPfCb27950K7/9PzH37zHk76w55Nv2uvPbtrjyTfvtd0X99ruS3s+UeSrezz+ay/8k2+84LFf3W3br+669Teeu+BLzwlu3m/Hdf952/kff6jASJcmRhr/jb/3fnaydPOcl8a59A9x4neZphLvbDy/SgipmNbftkQIIcSRbHP+74UNhuasXP+o2FBsbqGeT01tc85M/Jn9bRbPnP/JTeM3y9Yz+IPQ0W1es3HkfaQpIz1qeXDC8uin7aMMf7zprI1bn/fQXCI7TfJI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)
|
|
&]
|
|
[s5; &]
|
|
[s5; To get the image constants into your application you have to
|
|
use somewhat obfuscated but thankfully short sequence of preprocessor
|
|
commands:&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; [* #define IMAGECLASS TutorialImg]&]
|
|
[s7; [* #define IMAGEFILE <][*/ Tutorial][* /images.iml>]&]
|
|
[s7; [* #include <Draw/iml.h>]&]
|
|
[s7; &]
|
|
[s7; struct MyAppWindow : TopWindow `{&]
|
|
[s7; -|MenuBar menu;&]
|
|
[s7; &]
|
|
[s7; -|void Exit() `{&]
|
|
[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&]
|
|
[s7; -|-|-|Break();&]
|
|
[s7; -|`}&]
|
|
[s7; &]
|
|
[s7; -|void SubMenu(Bar`& bar) `{&]
|
|
[s7; -|-|bar.Add(`"Exit`", [* TutorialImg`::Exit()], THISBACK(Exit));&]
|
|
[s7; -|`}&]
|
|
[s7; -|&]
|
|
[s7; -|void MainMenu(Bar`& bar) `{&]
|
|
[s7; -|-|bar.Add(`"Menu`", THISBACK(SubMenu));&]
|
|
[s7; -|`}&]
|
|
[s7; &]
|
|
[s7; -|typedef MyAppWindow CLASSNAME;&]
|
|
[s7; &]
|
|
[s7; -|MyAppWindow() `{&]
|
|
[s7; -|-|Title(`"My application with menu and images`").Sizeable();&]
|
|
[s7; -|-|AddFrame(menu);&]
|
|
[s7; -|-|menu.Set(THISBACK(MainMenu));&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|MyAppWindow app;&]
|
|
[s7; -|app.Run();&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s5; Here [*/ Tutorial ]is the name of package where .iml file resides.&]
|
|
[s5; Image constants are represented by class methods of class defined
|
|
as [* IMAGECLASS] ([/ TutorialImg] in this case). Image constant
|
|
then can be added to menu as another parameter of Bar`::Add.&]
|
|
[s5; Note: [* #include <Draw/iml.h>] works only when images are to be
|
|
used in single .cpp file, otherwise you must put `"obsuscated`"
|
|
sequence with [* #include <Draw/iml`_header.h>] to you header and
|
|
[* #include <Draw/iml`_source.h>] to any .cpp file.&]
|
|
[s5; &]
|
|
[s0;=
|
|
@@image:1444&680
|
|
(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)
|
|
&]
|
|
[s5; &]
|
|
[s3;:Gui11: 11. Toolbar&]
|
|
[s5; Toolbars are in fact quite similar to menus `- they provide
|
|
set of operations with names and Images that can be invoked by
|
|
user. In U`+`+ you can take advantage of this similarity as toolbars
|
|
can share the definition with menus `- if [* Bar`::Add] command
|
|
contains the Image, it also adds toolbar button with that Image
|
|
when used with [* ToolBar]. The text of menu item then translates
|
|
to button tip. If you want one particular Bar item to be used
|
|
with menu or toolbar only, you can do that by using [* AddMenu]
|
|
or [* AddTool] instead of simple Add. Also, items without Image
|
|
are automatically added to menus only and vice versa, items without
|
|
text are added to toolbars only.&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; #define IMAGECLASS TutorialImg&]
|
|
[s7; #define IMAGEFILE <[/ Tutorial]/images.iml>&]
|
|
[s7; #include <Draw/iml.h>&]
|
|
[s7; &]
|
|
[s7; struct MyAppWindow : TopWindow `{&]
|
|
[s7; -|MenuBar menu;&]
|
|
[s7; [* -|ToolBar tool;]&]
|
|
[s7; &]
|
|
[s7; -|void MenuFn() `{&]
|
|
[s7; -|-|PromptOK(`"Fn activated!`");&]
|
|
[s7; -|`}&]
|
|
[s7; &]
|
|
[s7; -|void BarFn() `{&]
|
|
[s7; -|-|PromptOK(`"Fn2 activated!`");&]
|
|
[s7; -|`}&]
|
|
[s7; -|&]
|
|
[s7; -|void Exit() `{&]
|
|
[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&]
|
|
[s7; -|-|-|Break();&]
|
|
[s7; -|`}&]
|
|
[s7; &]
|
|
[s7; -|void SubBar(Bar`& bar) `{&]
|
|
[s7; -|-|bar.AddMenu(`"Function`", TutorialImg`::Fn(), THISBACK(MenuFn));&]
|
|
[s7; [* -|-|bar.Add(TutorialImg`::Fn2(), THISBACK(BarFn));]&]
|
|
[s7; [* -|-|bar.Add(`"Exit`", TutorialImg`::Exit(), THISBACK(Exit));]&]
|
|
[s7; -|`}&]
|
|
[s7; &]
|
|
[s7; -|void MainMenu(Bar`& bar) `{&]
|
|
[s7; -|-|bar.Add(`"Menu`", THISBACK(SubBar));&]
|
|
[s7; -|`}&]
|
|
[s7; &]
|
|
[s7; -|typedef MyAppWindow CLASSNAME;&]
|
|
[s7; &]
|
|
[s7; -|MyAppWindow() `{&]
|
|
[s7; -|-|Title(`"My application with bars`").Sizeable();&]
|
|
[s7; -|-|AddFrame(menu);&]
|
|
[s7; [* -|-|AddFrame(tool);]&]
|
|
[s7; -|-|menu.Set(THISBACK(MainMenu));&]
|
|
[s7; [* -|-|tool.Set(THISBACK(SubBar));]&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|MyAppWindow app;&]
|
|
[s7; -|app.Run();&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s0;=
|
|
@@image:1140&464
|
|
(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)
|
|
&]
|
|
[s5; &]
|
|
[s3;:Gui12: 12. StatusBar and decorative Frames&]
|
|
[s5; To improve the visual aspect of the application, we will add
|
|
some decorative Frames `- those are frames that do not represent
|
|
any action, just draw some kind of border at given frame level.
|
|
We will also add the [* StatusBar] and connect it to the menu and
|
|
toolbar `- this way it will start displaying descriptions placed
|
|
to Bar items using a Help method. Note that decorative frame
|
|
functions ([* TopSeparatorFrame] and [* InsetFrame] here) usually
|
|
return a reference to single global object, as there are no changing
|
|
properties required when using them with different windows and
|
|
widgets concurrently.&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; #define IMAGECLASS TutorialImg&]
|
|
[s7; #define IMAGEFILE <[/ Tutorial]/images.iml>&]
|
|
[s7; #include <Draw/iml.h>&]
|
|
[s7; &]
|
|
[s7; struct MyAppWindow : TopWindow `{&]
|
|
[s7; -|MenuBar menu;&]
|
|
[s7; -|ToolBar tool;&]
|
|
[s7; -|StatusBar status;&]
|
|
[s7; &]
|
|
[s7; -|void MenuFn() `{&]
|
|
[s7; -|-|PromptOK(`"Fn activated!`");&]
|
|
[s7; -|`}&]
|
|
[s7; &]
|
|
[s7; -|void BarFn() `{&]
|
|
[s7; -|-|PromptOK(`"Fn2 activated!`");&]
|
|
[s7; -|`}&]
|
|
[s7; -|&]
|
|
[s7; -|void Exit() `{&]
|
|
[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&]
|
|
[s7; -|-|-|Break();&]
|
|
[s7; -|`}&]
|
|
[s7; &]
|
|
[s7; -|void SubBar(Bar`& bar) `{&]
|
|
[s7; -|-|bar.AddMenu(`"Function`", TutorialImg`::Fn(), THISBACK(MenuFn))&]
|
|
[s7; [* -|-| .Help(`"This invokes MenuFn method of tutorial example`");]&]
|
|
[s7; -|-|bar.Add(TutorialImg`::Fn2(), THISBACK(BarFn))&]
|
|
[s7; [* -|-| .Help(`"This invokes BarFn method of tutorial example`");]&]
|
|
[s7; -|-|bar.Add(`"Exit`", TutorialImg`::Exit(), THISBACK(Exit));&]
|
|
[s7; -|`}&]
|
|
[s7; &]
|
|
[s7; -|void MainMenu(Bar`& bar) `{&]
|
|
[s7; -|-|bar.Add(`"Menu`", THISBACK(SubBar));&]
|
|
[s7; -|`}&]
|
|
[s7; &]
|
|
[s7; -|typedef MyAppWindow CLASSNAME;&]
|
|
[s7; &]
|
|
[s7; -|MyAppWindow() `{&]
|
|
[s7; -|-|Title(`"My application with bars`").Sizeable();&]
|
|
[s7; -|-|AddFrame(menu);&]
|
|
[s7; [* -|-|AddFrame(TopSeparatorFrame());]&]
|
|
[s7; -|-|AddFrame(tool);&]
|
|
[s7; [* -|-|AddFrame(status);]&]
|
|
[s7; [* -|-|AddFrame(InsetFrame());]&]
|
|
[s7; -|-|menu.Set(THISBACK(MainMenu));&]
|
|
[s7; [* -|-|menu.WhenHelp `= status;]&]
|
|
[s7; -|-|tool.Set(THISBACK(SubBar));&]
|
|
[s7; [* -|-|tool.WhenHelp `= status;]&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|MyAppWindow app;&]
|
|
[s7; -|app.Run();&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s0;=
|
|
@@image:1084&724
|
|
(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)
|
|
&]
|
|
[s5; &]
|
|
[s3;:Gui13: 13. Adding child Ctrls `- widgets, reacting to widget
|
|
events&]
|
|
[s5; If you need to use some predefined child Ctrl (widget), place
|
|
as variable somewhere, usually as member variable of your window
|
|
or dialog class and use [* Add] (or [* operator <<]) to put it to
|
|
your window.&]
|
|
[s7; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; struct MyAppWindow : TopWindow `{&]
|
|
[s7; -|[* Button button;]&]
|
|
[s7; -|&]
|
|
[s7; -|void Click() `{ PromptOK(`"You have clicked the button!`");
|
|
`}&]
|
|
[s7; &]
|
|
[s7; -|typedef MyAppWindow CLASSNAME;&]
|
|
[s7; &]
|
|
[s7; -|MyAppWindow() `{&]
|
|
[s7; -|-|Title(`"My application with button`");&]
|
|
[s7; -|-|[* Add(button.LeftPos(10, 100).TopPos(10, 30));]&]
|
|
[s7; -|-|button.SetLabel(`"Click me!`");&]
|
|
[s7; -|-|[* button <<`= THISBACK(Click);]&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|MyAppWindow app;&]
|
|
[s7; -|app.Run();&]
|
|
[s7; `}&]
|
|
[s7; &]
|
|
[s5; Position within parent view is given in logical coordinates
|
|
(e.g. [* LeftPos] or [* TopPos]) that allow no`-nonsense resizing
|
|
of dialog. Widget events (like `"button pushed`") are reflected
|
|
by its callbacks. There exists a `"default`" [* WhenAction] callback
|
|
in each widget that is usually invoked for `"user changed a value
|
|
or a state of widget`" situation. You can assign this callback
|
|
either as&]
|
|
[s7; &]
|
|
[s7; widget.[* WhenAction] `= ....&]
|
|
[s7; &]
|
|
[s5; or use equivalent operator version to save some typing&]
|
|
[s7; &]
|
|
[s7; widget [* <<`=] ....&]
|
|
[s7; &]
|
|
[s5; Note also that to make the code more clear and less verbose,
|
|
U`+`+ uses `"method chaining`" technique, where methods (usually
|
|
those that affect appearance, position or behaviour of widgets
|
|
`- `"modifiers`" in U`+`+ lingo) are designed to return a reference
|
|
to `*this `- that should explain the line&]
|
|
[s5; &]
|
|
[s7; Add(button.LeftPos(10, 100).TopPos(10, 30));&]
|
|
[s5; &]
|
|
[s0;=
|
|
@@image:2449&1489
|
|
(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)
|
|
&]
|
|
[s5; &]
|
|
[s3;:Gui14: 14. More about logical coordinates&]
|
|
[s5; Logical coordinates can align one or both sides of widget to
|
|
the side of parent view at specified distance(s) in both vertical
|
|
and horizontal direction. If only one side is aligned, logical
|
|
coordinate specifies the size. There is also specific kind of
|
|
logical coordinate the specifies the center position.&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; struct MyAppWindow : TopWindow `{&]
|
|
[s7; -|Button lt, rt, lb, rb, lv, ht, hv, cb, rc;&]
|
|
[s7; &]
|
|
[s7; -|typedef MyAppWindow CLASSNAME;&]
|
|
[s7; &]
|
|
[s7; -|MyAppWindow() `{&]
|
|
[s7; -|-|Title(`"My application with button`").Sizeable();&]
|
|
[s7; -|-|`*this&]
|
|
[s7; [* -|-|-|<< lt.SetLabel(`"left`-top`").LeftPos(10, 100).TopPos(10,
|
|
20)]&]
|
|
[s7; [* -|-|-|<< rt.SetLabel(`"right`-top`").RightPos(10, 100).TopPos(10,
|
|
20)]&]
|
|
[s7; [* -|-|-|<< lb.SetLabel(`"left`-bottom`").LeftPos(10, 100).BottomPos(10,
|
|
20)]&]
|
|
[s7; [* -|-|-|<< rb.SetLabel(`"right`-bottom`").RightPos(10, 100).BottomPos(10,
|
|
20)]&]
|
|
[s7; [* -|-|-|<< lv.SetLabel(`"left`-vsize`").LeftPos(10, 100).VSizePos(40,
|
|
40)]&]
|
|
[s7; [* -|-|-|<< ht.SetLabel(`"hsize`-pos`").HSizePos(120, 120).TopPos(10,
|
|
20)]&]
|
|
[s7; [* -|-|-|<< hv.SetLabel(`"hsize`-vsize`").HSizePos(120, 120).VSizePos(40,
|
|
40)]&]
|
|
[s7; [* -|-|-|<< cb.SetLabel(`"hcenter`-bottom`").HCenterPos(90).BottomPos(10,
|
|
20)]&]
|
|
[s7; [* -|-|-|<< rc.SetLabel(`"right`-vcenter`").RightPos(10, 100).VCenterPos(40)]&]
|
|
[s7; -|-|;&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|MyAppWindow app;&]
|
|
[s7; -|app.Run();&]
|
|
[s7; `}&]
|
|
[s7; &]
|
|
[s5; &]
|
|
[s0;=
|
|
@@image:2444&829
|
|
(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)
|
|
&]
|
|
[s0;= &]
|
|
[s0;=
|
|
@@image:1640&1460
|
|
(A0gBJAEAANz+AAAAAHic7Z0NeFTVnf8vbwm4j/13S+tDq6iIb6XqAqIgGARBUEM0vINiBAVlqUKl4m5Lrbpdn7ZaVpG3trsLortutfiCq1VbqS8UFwWEQCAJBjNJZjKTScgLeSPhJf/fmTO5ublz7sw9956552Tmd57PM8+9Z+4995xvzmfuncm8dHR0K1r2vl7TDgDa1ELC7UVRcn3azDLtLr+WF6S3vRaFtbwq7a6gtqCKLCzoZF410kktEmV+CCGYp0f3CTOdEiC32cHIQiCyAKuRmuwKbYqfAAtkNUjqp4S1mw7WVBUZ0Y2mOmc82JS58szAn3Z8718IQ5/uuGJNx4jfdIxY3zF2LSFrA+GmTZbQDZD4KaUb0v8W6hCbDNVKv7WCaNgd0BMAWzMeOg1qayM+M3kNRve+pwqk7v1QQ+ajZ2FLXe0hvyaA3T94vgvQnGKsRBAkPuARxbhK9aTnUKqbDlQaV6mSOtRTIHPFGUCb16iNO6h7rU38Qsst12Ye7bWkGtAePE4Bx/ssb+6zoh1M1358ps/KDoAuw61eSRdoZcYjZ+F0T7dEEJ1eD51FABoFFYdaQ+m1rL33krY+S5v6LGnotbBZu/eEdlfk9u4TsBqtWVgbZUENuYWa2eHoBTzUALMqtEmHtKySLq+z92l3lXYBT6Lvq6KOg90U4rgF5F7oks6SBgRBbHF/DWFRda9FYbhmBshrVvMqCbMDUUBYyswyQq4P6JVTot1eQl770l8KA6lH79EG/RG81kZ+Qu4Fr2cejWJQW7c7yj+e6EKvfPA42cb4YIJEqUIQM6CtCapwjLad5nb6q0NFBosBeFqdtTcKSA06A995Mbow8QvyGriF1zoml0kNbEBfGM8z9Jk+2iAIYkI/8xpPxLnl/Wb4HlgbDNSc6uAsD/yytN+4iNEjPiMiD3tPu3wb8frSV1he+5le6y4bdA5G/vMV7Ga0fv2Q5uh/RISeiRAdPZbccjg7g9TtZSXVz/64avXC4COzK5flBB641b/oZv/9k/33jgcqFowDyudcS5g53JdzZcktFx2YOaqu6CCoTaSmXl/yATH6G4/D1ThZzdrb+xaz18Rc6q9u96JwV2Ve94uK2EckBNGR7pE6kMvs8k6jy+lVN5x5a9Y8Vvfy8/WvrK/9/dPVa1aFf7k8/NTSqiceqPrZfaGf3Bv6SV5o1fzgyjmVy3MDS2/zL7zJN3vkgSlD/5Q9PBBuj56vr9od6zW5YjeerPOqqMUU+ryePrXvuvBmXntLP0uqg3Sb1EG6TYoQddmIT8smXlc9saT+1U0N235f+5+/rln70+pnV4affrjqqaWhny8BtatWLwr90z2hR+dXrpgRWDbNf/+ksvmjD95+5WvXfoe89A1eA+D1xbu7vAbT4dk3fVMZ/An0t5AZ1AavjS/ZkVftmOdr6SohiMpMD3STOqeCEPE69Og8MLpu65rjG56ofuaR8C+WVT2+OPTPecEfzw+umFX58PTA0uzA0tvJlfnCmyoWjPXNGXVw2rBt1w8iXl9/kEC9hufX6DWCeIm118EVM2rW/qRm3c9A6ta9n5KalfODD88MLM3xL57iv3dixd1jK+aPgfrGv7xePntE6czhh+646vWxg9lef+9DcgYfd5C8lg7XCXDoiNdg7keF7SOeqNWlHvlE3cdF7bCgqx39X1syvf7ocFtd0xm6vL+0HXDZoJBGHB/COBw7Q04dpiPdoUYbvK5cllP9y+XVz/wIztT6y90Rqaf6750AUpfPGaXXl8+4unTGNYdyWF7T63DwGmomRP5HNivy8vv8ED1fw/brXiroO7OIer32zy1Q03/Yfxq9Jmp3vaddvNp0FAMu+DX1Jf9Idf+hG7haeO7dptLwaX3VWSNcGA9hOrpxOHaG7GCAplVELay9DiyZAs+myeX3z5eE/ilPV9i/aJL/nqyKedd3SX3HFeW5w3zTrzqUM+z1Gy4gXo8pIhZ//0C387Xu9fTIoYnX5I1qsL2vvD7zhu197q/pd3+tr+YM1Jwz6BdE83tqjJDHgeSoTQcCB6WrIAuvklFNLn5Or3HQCC/6IUxHNw3HzpB5Bxg7XkQ5jF5nd3kd+unC0M/uI7eP3h1cPksXGZ5Nd0mdc2l59iXlOZf5cr9fMO37b9xwftTr64rYXsPVPihJT9YLaib86gRtZ3T2f4PUo55soKtTZ7wEXn9c2A7LI1fXg9RwC8v7fae6TtyzwwCcNeguHx1uH76qllbSGnoX1NPKhPUwyfVx0fonX2umG8Nt7jMNVkfsMBTjKt1+y0etdBUWjEd884uTdU1nTT2n7C8l7xyglXBrWqb3xh5OPyJd/nSXj/bc1LhxG3hEhdvn3m0x1ZuWrQboZoxI0tHP2tlBajf8ISruuTH06Hzyovdj98Az68oVMwM/vKOje/FPv8J/59CKaRdX5FxSdudlh2+/7M3R3+3Qvaan7GHvEa9BcKic4o+crMPR95AvrL35V810dq3//ed955a8sKPdFyaTFrzOyD004wVyL7krt2jt+2TmrHr8g/6XbjJ9nnTAxc+PmfR7uDe/8HjvaUVQo3u66l8+gYWX3jhKt0xYb1x+chs5+gt/8EH7b79X9K/P7+4zeU/CI5oaee5P5GnF/T//Yu7C10hr/9XtiNfPenfq7P+BhU8+D9J2KAs3NdKBQyVtwbj8wIq3IYSuPhsel4yr0MMp9/yJdPJwuPfthaY/uimKX/yuyFRvtRy7Cg8LZIyPG8ZoaOr6me90jTGmG0gSmV7dHXKVVTF/dPDh6aGVc0M/nh98ZG7l8hnk3SkPTtWlDsy9KjDz8kDuJYGcCwM5F5XfMeTIbUPevO484nVWiTa2OHrKhvP1wGe7ed0ptXbviSffaqeT1lfRkDnuHV/N2XWvfg01T//mk0x4xr2kwRdqI1fpY/7XV02uz79/3bq+N35k/Cj9lo/b6prP6r2KWF9r8JQs1ze0Zgz/o/16ulwajj4jyBj1NtRnXvVf/cZ8YOeIxlW6JSz0nfBZ9IiR1vQNek87Gm3nys3GcdU1nqIb0xb05boT7XprsX02Hb2r8UgnjZh2h5Dp6KyatToE6arTMSJJZHZDF51qw5+gfNbIwD9mB380K/jInNCPZgdXzKh8KKejewnOvjw4Y0jlHRdU5lxQMe2CI1MueOvabxGvx5Vr43zE66FHyPkavL7oIJEdvJ7d6fW95KNhT71Fzs703Ldk1V/IcvYr1Ov+Ez7MeLDpvv9oI3c9+me4/XS3HyZJrxlB7e4TlI+OkEvi+3++d8AFz3TNtLtPxC7DBlz1+jU5reQ6olUjCY9oPNCTr5OBv/zaIdPtv/7broQtJGycHcXFa+Psa/MQXGMUz7xGxEyX3eQ5V9mdP/DfP7nyh3eA0cEVMyuXT+/oLMElWXThbHNDaNaQUO75wZxB/tsHFd583tsj/l8H+UhmSJtQRtS+poR4/Z0XiNewSrwOU6mJ14vbPi6OPtT7Ik9afVVt1AV4bth/4l8zlrX1WdoOp2x6OHL9OexF+kFRij5b+t7yhb5srKfLcAbhqu/ofqrlPaJVIwmPaDzQkEdbaH195AQNt3QVrlgybvzQuJd2V7dl06rpLh2rbewsm1b1MdJ6Okab3UCSjsFuolj2ZRV5WYEHb6186I7Kh3M7Oktw6c3BJTeG7ut6Pbwq97uhaef5pw4suumb268+p4N6DcBZW/caTtzE68g1P5UaZq/B6+f/SpqCC/Jzhr7QEfF6wNVbMx46DTz1zpkum27dB3tpC6Ns2UnugtP9j16JvpYFy1Cvb0/rX/5D/oDBz8Spr2vunHWGbZ58i2wDVw5Q+ea+M899cDrOEY0tGBuBvToij0h0exigqSemZSMvftyq70LbgQ4T/eeGTXtZHT1O46Yo3n6viG5TWn2WDir3hVNxDmFcdTNGJCksMKDbPbsJ/gSlt1xYPu96/303Bx68TVe4cuktwQcnBhePC913XTjv6i61b//7ysnnFo77u+0/yCBeT60jClO1R37S5XV2kFyER6Tus6il95KuP/d1v4r6MmD8+7RywDUv0e9dGfpkR9eUXtauLTkDgN2Ul/63DO5d+27j1g/Iv8LnLnytz5wK2gJ9sRfqYcfM696Eja3qc9fDk9mTqx7/QN+GHGtx2y+2lNKNS2vOXj/3/Ywb3rM64sLNUQtor4yNvPSun66+8HolebYeacS4gXHZyMRno09SYJcRT5Hz9dQZL9EOm/aKc3SrxqnL9N7tfztOohj+B9oURAGVb33REucQplXHYxSLtvA0EoEKfrqb5vPJn/XrCYPKpl9TsWAsqN38ybtE6iWTKpdMrFycFbxvTGjhyKoFw8LzL4X61ve3Vt36jcCEAYXX93vrit5RrwHwekyYvDsleh1eTr7VcF4t9TryfSztfX54ir6mShReGISF/osqMx89SyszHiFfeTR5w1mqT+aY7b0eOtt7mZnM0dtJCzd+QBf65Rbps2jAJS+Qu0Zvp1ta1QOw1zmDn82YshuW6dFpfcbET+jGcNv37qDVEUkL2QeMOxqX6WZ0F/2IVhsb6TunlFylRI4Lt2R5TimzhThHt2qcpD3yVXovLHRFAU0NftZ4L/MQplXHYxQIfcxHuqHLvoA8uh678dtwKV42a0TF3Tf487L892b588YF8m4I5I2uvGdk8O6rQnMvq5p1EVyEw8k6NPnv/Fn9jlzb+83LexGvpzVGT9ng9YjPiNff2697rZ+sqdcZK9pBaqpw5srod5rpRM+w1UT/fnOK+izv0Inz99X9tVmPIKlHrN0w+YtGf+OrSRccm3bl1zP+oXT2tb65o3yzR/jmjCibc0357GH+mZf5cy8KTPtu4NaBgUnn+sdn+sb0zv8H7bWhWtRrqjZ4Ta/Du3tN1SZeL22HZ9D0eptIzfIaLhfJ9fnQddGvp1ueGN1fm/U9GunzB1EWk9qB42f23Xbl3jED944/f//kIfunXrZ/6uX7p1x6YOrQ/ClDDt5y4eFbzj9883lHJgw8nPWNIzcMOHxd3/zhvT4dpv3xxouI19Obunk98Fmj1/TLD+kpm561M5a1me1eGT2DA+SCcNRrfReFjFInHFGci088XyPpQOwF+QO/a649cuDdyVe+8oNztw3/+z+O+NarI7/96vBvbRs58PWRA98Y8c3tw899+5pz3rm6//ZhGduv7PPOFb3euFTbduNF4YL9D6xrsPDap3tNb/ssbCCQE3dT1G5K5GVwAK7SY6F9pud6BJD/DA5Rk26voZGXzvrltT6wsbGDswRqToPU/e480e35tcnrnMj3WkS/9qTrjWddX4hq/Cbhpe29lpnROl8Ml//fBFWQ/uqrOkj/W6jBgjb6Qpk2/2T0n1xzW7R5rQRYmN1Ezrz0li7oTK/XptWRW3qv/oTahMlroraPfBvSpP29Jh/ofQtB/15T+pWn5FtPc31Ef/1T4bHf62L89BmC6EzxIQSwLNsijUkl5ONXQFYn449GVyd0QmvgdmwxYUxR9G3h9HMfYDHT60n7idcRtXW7mdANCPr2hh0RCs0TiU4qJEISc6bvI6Wvh393f+aoo+ctq+0/+5jpJ/kQBOlBaLc2aOOOakNe1Qb+Br1GkNQAvUaQ1AO9RpDUA71GkNQDvUaQ1AO9RpDUA71GkNTD5PUA9BpBej7E66wSbfCL6DWCpAyOvS4s2Jm/b8fe3e8jTCAciMjOnyAdksQ0PE7SmdfQMpC34umx01cOGrUIMZE167HFq9YEA8WtLfWYJKbhfZLOvIYHDQgf2Pl5fpk/xPtZ0dQu5YGqXXsKIH/gVHtrmieJaYgqXEk68xquB+ARFcKXPVZ1y9oN6+HRFRYwyQ5MQ1yxmaRjr+GqAB5RT2OxKJs3b4SIEuafJkliGqKKzSTdeA2Nt7e1JQNN0+LcFededdj2h9/Zn8lcSfaI4XuWhih6Sqo2k3TpdWtrSzKAkBPW29lGIrwz2X04qiXgTRq82J82ak4wZ173H1HM5XVzU2MygOgS1tvZRiK8M9l9OCqTvDREEZuqmhPMG68bT9QnA4hOX6AldtV0l3Ffq12Mq7E7ioV3JnOFEzsEUzLMzeIMPGGbCVuQlYb96WS8jR2y/bjkTjBvvK6vO54MIBP9Nn6N1b5Wy3ZaEALvTOYNx2pQVqvxB24nKDdxJS8Nm4npnbc/tdScYN54XXs8nAwgEHprLHq9cRt92c42ce4VDu9M5g0nNqg4G1iFGSe0hEdRJA3HifHWKDLBvPG6JhxMBhCIfhtbH7tsZ5vYNq1aEALvTOYNh7lsGqP9wdoPSj+KImk4S4y3xmb+XJk7wxuvq0L+ZACB6Lfxa6z2tVq204IQeGcybzjMIRjHyLzLauBcQTnILXlpOEuMt8ZOkt5MMG+8DgbKkwEEoi/QYqo33svcPU4LppokwTuTHYSjLzNTih1pnIEzY7G/u8Q0nCUWO+Q421jFFT+lJE0wb7wOVJT2LCBtbw7EO5NTOxaV0xA7dkWSNHmdOaLIvtflgaqSoweThxZThLSZ1D7rbNnyW/szmSvJnhhL8tLgTSy2UvixVEgy6vWF3F5nzXps156CggN/Q5is27RpwtzVdmZyOiSJaXicpDOv8/ftoJ8XW7th/ebNG+HaANGBR1QIf9nqjYCdTyamdpKYhpQknXldWLCz0l8M+cOjq/QPmysIPKJC+K0t9Xa+SSDlk8Q0vE/SmdcAtAwPGm4+SZraBcJJGH76JIlpiCo2k3TsNYIgyoJeI0jqgV4jSOqBXiNI6oFeI0jqgV4jSOqBXiNI6oFeI0jqgV4jSOqBXiNI6uHYa/zdw/jgL0g6SwMRguPPfeDvHsYBf0HSWRqIKExe97f9OU383UOrgr8gaSxcaSCiIF6PL9EGb+Xyei/+7mGigr8gaSw200BE4djrQZHfPTyLxaLw/oKk7P4mt9hMAxGFG6/hzyR7vqhbtnF+U5/s/ia32EwDEQV6naSCXhsLeu0x6HWSCnptLOi1x7j2+gzChN9r+X2WngYiCpden8FiUXi9lt3f5Bb02mNMXnP9LkDKz0Y3Bb02FvTaYyLvSzmmXYheCy7otbGg1x6DXiepoNfGgl57jGuvTyNM+L2W32fpaSCicOn1aSwWhddr2f1NbkGvPQa9TlJBr40FvfYY9DpJBb02FvTaY1x7fQphwu+1/D5LTwMRhclr3velSJ8wyoJeO0gDEUX0exUG832vQtdsPHUKYcLttewOq5AGIgqXXp/CYlF4vZbd3+QW9NpjXHvdjjDh91p+n6WngYgCvZY7k9MkSfTaY9x63d6OMOH2WnaHVUgDEQV6LXcmp0mS6LXHuPS6HYtF4fVadn+TW9Brj3HtdRvChN9r+X2WngYiihivi9FrL2dymiSJXntMzO99cHrd1oYw4fZadodVSAMRBXotdyanSZLotce49Lqt7STChNdr6R1WIQ1EFOi13JmcJkmi1x6DXsudyWmSJHrtMW69PnkSYcLttewOq5AGIgrXXrciTPi9lt9n6WkgojB5nTkSvfZ0JqdJkui1x3R+X4pDr0+ebEWY8HotvcMqpIGIAr2WO5PTJEn02mPcet3agjDh9lp2h1VIAxEFei13JqdJkui1x6DXcmdymiSJXnuMS69bW1sQJrxeS++wCmkgokCv5c7kNEkSvfYYk9e836vQ2tKMMOH2WnaHVUgDEUXM+83Qa09ncpokiV57DHotdyanSZLotce49LqlpRlhwuu19A6rkAYiCtdeNyFM+L2W32fpaSCicOt1cxPChNtr2R1WIQ1EFOi13JmcJkmi1x6DXsudyWmSJHrtMS69bm5uRJjwei29wyqkgYjC5fcqSJ8wyoJeO0gDEYVbr5saESbcXsvusAppIKJAr+XO5DRJEr32GPRa7kxOkyTRa49x7fUJhAm/1/L7LD0NRBQuvW5qOoEw4fVaeodVSAMRhVuvG08gTLi9lt1hFdJARIFey53JaZIkeu0xLt+X0tTYgDDh91p+n6WngYiCeD0evN6KXkuZyWmSJHrtMS69bmxsQJjwei29wyqkgYjCrdcnGhAm3F7L7rAKaSCicO11PcKE32v5fZaeBiIK9FruTE6TJNFrj0Gv5c7kNEkSvfYYl16faKhHmPB6Lb3DKqSBiCLGa773pUifMMqCXjtIAxGFa6/rECb8Xsvvs/Q0gMKCnfn7dkAsCBMIByJCrxWfyWmSpM00YMYCeSueHjt9JWyPmMia9djiVWuCgeLWlnr0WuWZnCZJ2kwDTkYgNbDz8/wyf6gDi6GUB6p27SkAr4FT7a1J9bqhvhZhwuu19A4rkgacqUFquQapXNZuWA9n7Y5ESaLX0mdyOiTJlQacqc+ePYMw2bx5o50k0WsVZnLKJ8mbxpkzpxEmNpNErxWZydI7rFQap0+dQpig1z1rJkvvsFJpnGpvR5h443V93XGECe9Mlt5hpdJob2tDmKDXPWsmS++wUmm0nTyJMEGve9ZMlt5hpdI42dqCMEGve9ZMlt5hpdJobWlGmHjldQ3ChN9r+X1WJw3pP+yrLN54XVdbgzDhncnSO6xUGtJ/eEhZ0OueNZOld1ipNKR/4bmy9DivNU2Lc1ece9VEuNc9LgE3aQj/whZIT/qXxnj5zTOuva4WRWTeJqi32sZx48mD32u3Q0jGGEW16dmn26DDNuutthRC8hpHr+XivdcqI/3dd5BewpqkHs7jd+659fp4tSjIvO1ciF54x6ya7ord16od0+5WxxIIt9c28ontrcsxepZbUv/rB90w3dIFvcSuGmuYrZmW4++bsPHYVdOBhP/H0KXXtcerRQHD1G/j11jta7WX1aqdlh3DO5Nt5iN2jJ7lltRXEaOPMIZXIfRVmzVWr2Mwt+RtnHmv1dFFvVLh2uuwKCIzJKx1L3q9cRt9Wd/GuLvxXqsdTS2YNhYCv9e28onNineMUnITnkbCZHhr4mdiOlzCKcpsnLl9kuaVgl4n/KvZ3z02SZutuccDr4WM0ZvceNM4XlNlH+iPaZm3htmgvoFpy9gd7Rwufgv2SQGvrWrszHxmI7Gz181cFTuTbebD7K3LMXqQG28aNdUh+0AfTMu8NXbadHk4+4eOj0de14RFQWZI50L0fNG93nhv/BasGul2OcTaTCDcXtvOJ3Y4LsfoQW68aVSHg/aBbsQuG/scf5uEbRpbs1qN33ic7XnxxuvjNWGECf+Vp/w+q5NGuKpSFCCRwNak45XXDp8mOMP4IOzxoZP0PMhNklr3In3IAtOoCgVcosfieEfHLSSVlPS6B+GB1z0I3jRCwQqEiUdeV1chTLi9lt1hpdIIVpYjTNDrnjWTpXdYqTQqA2UIE6+8DiFM+L2W32d10qj0+xAm3njt+N9wKU9S/2Pb4+BNI1BRijBBr3vWTJbeYaXSKCstRph45HU4hDDh9lp2h5VK49hXBQgTr7wOIkz4vZbfZ3XSOFr4JcIEve5ZM1l6h5VK48ih3QgTb7x2/DbXlCep74jucXClUR6oOrR/J8Jky5bfotc9ZSanfJL208ia9diuPQX79+xAmKzbtGnC3NXotfozOR2StJlG/r4di1etAdZuWL9580bYC9GBMzVIvWz1RuBUe2tyva6qRJhwey27wyqkUViws9JfDF7DWRu2R0zAmRqkbm2pB9BrlWdymiRpMw0AZiycjDqwWBQIJ6HU7r2W/nFUZeH1WnqHVUgDEQV6LXcmp0mS6LXHRLw+pg126nUogDDh9lp2h1VIAxEFei13JqdJkui1x6DXcmdymiSJXnuMS6+lf92TsvB6Lb3DKqSBiMK1136ECb/X8vssPQ1EFG69DvoRJtxey+6wCmkgokCv5c7kNEkSvfYY9FruTE6TJNFrjyFeZzl/X4r0CaMs6LWDNBBRuPRa+tekKwuv19I7rEIaiCjcel1ZgTDh9lp2h1VIAxEFei13JqdJkui1x6DXcmdymiSJXnuMa6/LESb8Xsvvs/Q0EFG49Fr6z5ApC6/X0jusQhqIKExeZ/J6HShHmHB7LbvDKqSBiAK9ljuT0yRJ9NpjXHtdhjDh91p+n6WngYgCvZY7k9MkSfTaY1x6Lf1nvpWF12vpHVYhDUQUbr32lyFMuL2W3WEV0kBE4dprH8KE32v5fZaeBiIK9FruTE6TJNFrj0Gv5c7kNEkSvfYY9FruTE6TJNFrj4l4fUwb/KIzrwMVPoQJr9fSO6xCGogoXHtdijDh91p+n6WngYgCvZY7k9MkSfTaY9BruTM5TZJErz0GvZY7k9MkSfTaY1x67S8/hjDh9Vp6h1VIAxGFS68rykoQJrxeS++wCmkgonDpdbnvK4QJr9fSO6xCGogool5f6NTr0qMIE26vZXdYhTQQUbj0uqy0GGHC67X0DquQBiIKl177vi5CmPB6Lb3DKqSBiMKt18cKESbcXsvusAppIKJw6XVpyRGECa/X0jusQhqIKFx6/XXJYYQJr9fSO6xCGogoXHp97KsChAmv19I7rEIaiCjcen30IMKE22vZHVYhDUQUxOvxJY69LinOR5jwei29wyqkgYjCpddfFR9AmPB6Lb3DKqSBiMKt10X7ESbcXsvusAppIKJw6fXRwi8RJrxeS++wCmkgonDpdfGRfQgTXq+ld1iFNBBRuPS66MhehAmv19I7rEIaiCjcen34C4QJt9eyO6xCGogoXHpdWPA5woTXa+kdViENRBQuvT5yaDfChNdr6R1WIQ1EFBGvjzn+vY/DB/8PYcLrtfQOq5AGIgrXXn+GMOH3Wn6fpaeBiMKl1wX5uxAmvF5L77AKaSCicOn1oQN/Q5jwei29wyqkgYjCrdf7dyJMuL2W3WEV0kBE4dLrg19+ijDh9Vp6h1VIAxGFS6/zv/wYYcLrtfQOq5AGIgqT1/05vT6w7yOECa/X0jusQhqIKKJed/7eB7fXe/+KMOH2WnaHVUgDEYVLr/fv2YEw4fVaeodVSAMRhUuvv9zzIcKE12vpHVYhDUQUbr3+4i8IE26vZXdYhTQQUbjxujxQte/zPyNMtmz5rX2vUz5Jm2kgonDsddasx3btKdi7+wOEybpNmybMXW3H63RI0mYaiCiceZ2/b8fiVWuAtRvWb968Ea6yEB04N8E0XrZ6I3CqvTXNk+RKAxGFyevMEUV2vC4s2FnpL4bZCOcauL5CTMC5CaZxa0s9gEnaTwMRReT3PkoM7zez5TUAfyN4+O3AYlEgHJvTOB2StJ8GIgTHXiMIoizoNYKkHug1gqQe6DWCpB7oNYKkHug1gqQe6DWCpB4mr22+3wxBEJXp9JrvfaQIgqgMeo0gqYdjrwsLdubv27F39/sIEwgHIsLoMBzPonPvNbQM5K14euz0ldI/VqAgWbMeW7xqTTBQHPumaIwOw0lGdEK8hgcNCB/Y+Xl+mT8k+1MFapXyQNWuPQX005exn0xM8+gwHMclfnRCvIbrAXhEhfBlj1XdsnbDenh07Yj5JgGMrgPDcVGsohPlNVwVwCPqaSwWZfPmjYNY3/yD0Z3GcFwUq+jie505ku97C9vb2hyjaVqcu+LcG39fRdhm8U19zOgkDkfKobnCkTJYZSeYVXQMr8eXaIO3OvO6tbXFMRBdwno729hp3872Ykk4dXmH4zhP93sJT5IrHIGDiq3vcRPMG6+bmxodA1EkrLezjZ327WwvloRTl3c4jvN0v5fwJLnCEUhs53vcBPPG68YT9Y6BKPQFWmJXTXcZ9429y347Cbd0My5KwqnrZjjMXRKuGjOXmyRXOFzTyTRM0+gShqb+BPPG6/q6446B0em38Wus9nXWTpwtYxcck3Dq2h+OkPHS6aRIklzh2MQ4QPsD6XETzBuva4+HHQNDo7fGotcbt9GX42xjp8ZqWa+JXXBMwqkbG4VV522mxMzKanu5SXKFwzWdeAeiVCxu5pVYr2vCQcfA0PTb2PrY5fjb2KlJuG/sgmMSTl37w7GZUvzclEqSKxybOBuIUrHYwRuvq0J+x8DQ9Nv4NVb7OmsnzpaxC45JOHXtD0fIeJVKkiscmzgbiFKx2MGZ17y/uxcMlDsGhqYv0GKqN94bu69pr9h2TPvGLsce0aoPDkg4dZlRxI/FKiWuMaqQJFc4vNOJmSGtSRia+hOMw2un7zeDxgMVpQiThFNXeg/TKhzwSPqokxqdQK/LA1UlRw8Kx/hQmYz2vcHqFyRtRqd1L9KHo1Q4NtFiivSBJy86UV7TX4EsOPA3hInVL0hidBhOMqIT4nXK/wpk8n5BMs2jw3CSFJ0Qr9PhVyDdEOcXJDE6DCcZ0QnxuiY9fgXSTYnzC5IYHYbjuNj8ZVL83kIEST3QawRJPdBrBEk9ol4PRq8RJHVArxEk9UCvEST1QK8RJPVArxEk9UCvEST1QK8RJPWI9fpbMwJU7cw7w0zILgiCqAxIffVfjV6fO/XoN2eVnnNbcd+JRUy08cfYQFOiGG9B1jELeA9h1c4xy0OLGjVvO1bbxzu09eiSnZ5yf1AH049zYnAf2sEfgv8POvqAdtWH2oUvE6/Pe4O88YywtXOBi60W8Dc1mBPediy7upV/F6tDb2XDnV6crnLC3VUHyJoz4uYe91xN/h/ayV/hZbJw/r8Tr7/9O3KLIEgK8f8BhBK93Q==)
|
|
&]
|
|
[s5; &]
|
|
[s3;:Gui15: 15. Font`-zoomed logical coordinates&]
|
|
[s5; All distances in U`+`+ widgets are always in pixels. However,
|
|
to respond to platform setting of GUI font, there are `"font`-zoomed`"
|
|
logical coordinates. Such coordinates scale distances by the
|
|
ratio of current standard GUI font size to design font size (which
|
|
is fixed to the default Windows font):&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; struct MyAppWindow : TopWindow `{&]
|
|
[s7; -|Button button;&]
|
|
[s7; &]
|
|
[s7; -|typedef MyAppWindow CLASSNAME;&]
|
|
[s7; &]
|
|
[s7; -|MyAppWindow() `{&]
|
|
[s7; -|-|Title(`"My application with font`-zoomed button`").Sizeable();&]
|
|
[s7; -|-|`*this << button.SetLabel(`"Button`").[* LeftPos][*@6 Z](10, 64).[* TopPos][*@6 Z](10,
|
|
24);&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|MyAppWindow app;&]
|
|
[s7; -|app.Run();&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s0;=
|
|
@@image:1640&509
|
|
(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)
|
|
|
|
@@image:1749&524
|
|
(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)
|
|
&]
|
|
[s5; &]
|
|
[s3;:Gui16: 16. Layouts&]
|
|
[s5; Placing widgets by specifying their numeric logical coordinates
|
|
is time consuming, therefore TheIDE provides visual designer
|
|
to simplify this task.&]
|
|
[s5; &]
|
|
[s0;=
|
|
@@image:2249&2129
|
|
(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)
|
|
&]
|
|
[s5; &]
|
|
[s5; Visual design in U`+`+ is called `"layout`" and group of layouts
|
|
is stored in .lay file. Format of .lay files is such that it
|
|
can be directly included into C`+`+:&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; [* #define LAYOUTFILE <Gui16/dlg.lay>]&]
|
|
[s7; [* #include <CtrlCore/lay.h>]&]
|
|
[s7; &]
|
|
[s7; struct MyApp : public WithDlgLayout<TopWindow> `{&]
|
|
[s7; -|MyApp() `{&]
|
|
[s7; -|-|[* CtrlLayout(`*this, `"My dialog`");]&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|MyApp().Run();&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s0;=
|
|
@@image:1080&480
|
|
(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)
|
|
&]
|
|
[s5; &]
|
|
[s5; To understand how this works, let us examine content of .lay
|
|
file first:&]
|
|
[s5; &]
|
|
[s7; LAYOUT([* DlgLayout], [* 208], [* 64])&]
|
|
[s7; -|ITEM([* Label], [* dv`_`_`_0], [* SetLabel(t`_(`"Label`")).LeftPosZ(8,
|
|
36).TopPosZ(8, 19)])&]
|
|
[s7; -|ITEM([* EditString], [* text], [* LeftPosZ(48, 92).TopPosZ(8, 19)])&]
|
|
[s7; -|ITEM([* Option], [* option], [* SetLabel(t`_(`"Option`")).LeftPosZ(8,
|
|
108).TopPosZ(32, 15)])&]
|
|
[s7; END`_LAYOUT&]
|
|
[s5; &]
|
|
[s5; Header [* CtrlCore/lay.h] includes [* LAYOUTFILE] several times,
|
|
altering definition of LAYOUT, ITEM and END`_LAYOUT to produce
|
|
C`+`+ code which simplified form for this example looks like&]
|
|
[s5; &]
|
|
[s7; template <class T> struct With[* DlgLayout] `{&]
|
|
[s7; -|[* Label] [* dv`_`_`_0];&]
|
|
[s7; -|[* EditString] [* text];&]
|
|
[s7; -|[* Option] [* option];&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; template <class T>&]
|
|
[s7; CtrlLayout(With[* DlgLayout]<T>`& dlg, const char `*title)&]
|
|
[s7; `{&]
|
|
[s7; -|Size sz `= Ctrl`::LayoutZoom([* 208], [* 64])&]
|
|
[s7; -|dlg.SetMinSize(sz);&]
|
|
[s7; -|dlg.SetRect(sz);&]
|
|
[s7; -|dlg.Title(title);&]
|
|
[s7; -|[* dv`_`_`_0].[* SetLabel(t`_(`"Label`")).LeftPosZ(8, 36).TopPosZ(8,
|
|
19)];&]
|
|
[s7; -|[* text].[* LeftPosZ(48, 92).TopPosZ(8, 19)];&]
|
|
[s7; -|[* option].[* SetLabel(t`_(`"Option`")).LeftPosZ(8, 108).TopPosZ(32,
|
|
15)];&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s5; This way, U`+`+ keeps tight coupling between visual design and
|
|
C`+`+ code.&]
|
|
[s5; [/ Notes: ][*/ t`_][/ function with string literal argument provides
|
|
internationalization of texts. ][*/ dv`_`_`_0][/ is synthetic member
|
|
variable name used for unnamed layout members (0 is index of
|
|
member).]&]
|
|
[s5; &]
|
|
[s3;:Gui17: 17. Value of widget&]
|
|
[s5; Many widgets have some sort of natural value. E.g. the value
|
|
of [^`:`:EditString^ EditString] is String entered by user, whereas
|
|
the value of [^`:`:Option^ Option] is bool specifying the status
|
|
of the option.&]
|
|
[s5; U`+`+ provides unified interface to determine the main value
|
|
of widget via [* GetData] and [* SetData] methods. All types of values
|
|
are passed using polymorphic Value.&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|TopWindow app;&]
|
|
[s7; -|app.SetRect(0, 0, 200, 20);&]
|
|
[s7; -|EditString text;&]
|
|
[s7; -|app.Add(text.TopPosZ(0, 20).HSizePos());&]
|
|
[s7; &]
|
|
[s7; -|text.[* SetData](`"Some text`");&]
|
|
[s7; -|app.Run();&]
|
|
[s7; -|PromptOK((String)text.[* GetData]());&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s5; Because this feature is used very frequently, U`+`+ provides
|
|
operator overloads for this interface `- [* operator<<`=] for SetData
|
|
and [* operator`~] for GetData.&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|TopWindow app;&]
|
|
[s7; -|app.SetRect(0, 0, 200, 20);&]
|
|
[s7; -|EditString text;&]
|
|
[s7; -|app.Add(text.TopPosZ(0, 20).HSizePos());&]
|
|
[s7; &]
|
|
[s7; -|text [* <<`=] `"Some text `- operator version`";&]
|
|
[s7; -|app.Run();&]
|
|
[s7; -|PromptOK((String)[* `~]text);&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s3;:Gui18: 18. Accepting and rejecting widgets&]
|
|
[s5; Ctrl interface provides&]
|
|
[s5; &]
|
|
[s7; -|virtual bool [* Accept]();&]
|
|
[s7; -|virtual void [* Reject]();&]
|
|
[s5; &]
|
|
[s5; methods. [*/ Accepting] is usually a reaction to pressing OK button
|
|
or similar approve operation and usually involves testing for
|
|
correct content and finishing any pending operations for widget
|
|
(this may involve e.g. updating data to SQL database). Accept
|
|
must return [* true] if widget is accepted.&]
|
|
[s5; Default Ctrl implementation calls GetData for the widget. If
|
|
ErrorValue (special Value content) is returned by GetData, displays
|
|
error information contained and returns false, otherwise recursively
|
|
calls Accept for all children, anding the loop and returning
|
|
false when any child returns one. If no false was returned so
|
|
far, Accept returns true.&]
|
|
[s5; The opposite method to Accept is [*/ Reject]. This is used when
|
|
Cancel button is pressed or similar rejecting action. It simply
|
|
cancels all pending operations on widget. Default implementation
|
|
calls Reject for all children.&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|TopWindow app;&]
|
|
[s7; -|app.SetRect(0, 0, 200, 20);&]
|
|
[s7; -|EditDate date;&]
|
|
[s7; -|app.Add(date.TopPosZ(0, 20).HSizePos());&]
|
|
[s7; -|app.Run();&]
|
|
[s7; -|if(app.[* Accept]())&]
|
|
[s7; -|-|PromptOK(`"Correct date.`&`[`* `" `+ AsString(`~date));&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s0;=
|
|
@@image:1029&260
|
|
(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)
|
|
|
|
@@image:854&629
|
|
(A6sAfgAAAAAAAAAAAHic7Z0HWFTH2oBnQcASjYoajYJiwy4Qu2KJXVwFFQULYkGxRKNpN/3PNf5Go/k10ZRrmiZ6bWg05sYYr7maayygKAoqgmyvbIWlCcz/zZnl7MIuJsKyu7Bnn/c5z+ycs2Xme2fmO3uOgnGlB4q4zpt+E0CT7xKm3TMTKUCzhWi+BMXJ6Za3RIXilGi+HC1UksLCCmLUzkXrPGIVzqNqGyu3OooiJdsIOVOQMgV4ytREiNEkCQEK5Kmc1E9SoTFpuJoHjbvvyny/jWX+b+Bn/07othkH78Ch23HobjxiFyF8D2HMZ9VCD3Aaj/kmDse1TYMa2v/stjpIvCoDcQQgrL5rS8EBFPqHbfS9Fikh+l5rDX4vl8ORrANBWwmgQd+dFsAHinUlhwOBDqdYP6VxpKOSxoUFKq2f0tix0IACfuvLABSTh0ZapgI07hqKFKHZmbwENYBWaiggg/c6k/f6ElACvVTmvREDtAxbtpIWaKXvhnKYQOiRDQ/e2nKnQT+O9jDtXgpvdYlXQrF3Yr53goEXb0KLjWg+s11ghKfmmnitmYW5ZAs10Srz2gE1wBwxGn8bhWdZBIi4jubnWICFfqmSygAaUIgM1UD2wldiSTBwOJ5luYQlasi+YLoGSAIWIyNES81AZCmQsAGQuUUKePwsNC2LJHJsXgfRH5qM2h8l0Q+7QPaCALMzzVg5wGpgZpXRAlu5UkOOsbbOqSgbLBDfKjCx9pkrXvGJUpr7qLp0rrrHim0Cn7HXUXgKiT7EHWj7rbkw7hrJ/KsRgKVK0EkNHEBPB+KsvjPVkqM2sGPZemjDSh0pWLFLXiLMUn/4kvLNePmGaNlqvnTFFMmS5yXLJkgWjwbEC0cCornPEWaHCPi9siZ2vjl7kO5e2ootOZABkoj3+Rn1PEYE6H7QngASuwKwQbeKu5w5MZRXCj07IzkBtqOcAJ1XnQz70Uz0YT6HsZy741Xddzv1B3dr/7FZveMV1ZZ1qvcSle+uUL61VPH6YsXrcYpXYuUb58rWRUoTp0rixwiiw25O6vaviBCpqtgsQNdfSOhbvA0LAXkanuI1saoAJMQ00KwGS1SWyrjK05Stug0PJ4eerOCiitCL2AUdBFC+m6A//Jnh2D+0X23N3fWG+sONqs0vKN9LVLyTAA4o31yieG2R4uVY2fpZ0tXTJcvGC2OHpk3rdeS5tmTRBwH6XbEVgKQH1sM/TknDTaG5B00/LHO+3WnfmcO/Ac8A5qBbI0ARBAii4uUYCL1u3w7NnnfV2zaoNq1Wvr1c8bc4+Uux8vVzZC9ESRMjpInTyKIQP0a8cIRg7qC06X2ODWlPBIAEAATocsUiACgxJs38cx80k/1xz8oBEMA6/yQpqN0ZwMnRb8BESStFny8mVAggXz8rd9fruZ+8BdEvTLlIajbGyl+YLU3kS5ZPkiweJ14wQhw7DOrzfk0SRYfmzA65PaNf0ogAIsCQNLMAkAOAAM+eI0qMTCPnAiAefDQjQOuVys/PmzR5ZTSBPHK1cOI2HdWAdcB8JlIhQHJ2cXJWsXUrtpwwkk+0qglaIz98yUTfEwrw1PVd/URBcT409JUFgMRPvWWdetuLMPbZJJ+J/mTJ4rEQfdHcQWy9aFb/nFkDbvNtBKAzAAgANWOZU8U5TM4Zq2i5Qgmh1+SVxrx2uUmnrU3bb9r+8X/PXZY14t+oIgBxoOLnaxAgJU3p1/1TeJOwV5VnbxXSLwAvZ/sQDIGanpOSRkzcC4VskZHHv+v6yLohjxVAmjAJVnwy87+ToHgtjo21ZMl4yaJwccwQS/RnBIsi+wii+t3m90ka3sksQO+blWYAVoAoKRVgyykySOevPAHR95l6xXtZrs8yrd+I0437fk0nAe9FudaQtYBxwK/HpwC8CbxcY3xkKwBbA3Gn5cadd7q+t90WawEiKgmgeCNeATk/bF9eIF83h404rPiW6PO7iyK6ivg9BJG970zvfXx4RyLA4Hv2BYCFBhZxiONCZZaCxK5Dz20+k1Mg9FWgb05DT8toYS77oeQdolWHLxXCy60EUFE+P1sANTD8g9aQl3y5P8V6L0dV2HkgQs5qQKK8aBQk+STVf3URrP6y9bOla2ZU+dlHEhUsmdlNPL2LmN9VOLNH+rQeJ4Z2MAtAJ4E+PxMBwIRh98h1QzL8VfTnYjZw3ouV9HdI35X5FChb9sZbytavoj87+/b7vkoN0HKpGmqOnUw/fFGvMZbCLp/QY7W6HOzyGNWtAOrKkAmBCBA7VP5ClGLjPAWk/RvmydbNIj8HrZxsyQfm9ZPO7imN7CrlB0r5nUUzgjKmBp0Y3I4IMOK+eRKAGcD/w0oC0IsF8VpLiBPIj/zs21IH7AuwwGgVbvMFdNuaLT+QGaDPkE9iNpDc9c3Nvzn1gn79ItpgwUoDMrfPCZOuipC/OEe+Ya7ixWg4KZCt5VeZAeTRPeWzgmQzOsn4ncTTO2VM6vTDc62JACMFRIBuGWQGAAE6p6HwLCJAdIUAi41ZyjK6BHglFDPXnkrYUPquLrYIsKTAEuL5JmsZKLY19LSC5ACziMlaXUGjUf9m97o7MXmuwaKBHoB+E87sC+f4sjUzIPTy9bNl66IscU8Ip4Vyk0ExJ0gR2VHOby+Z1v7u8+1OhT5NBBgrJA4MyCICtP2YCABPiQAqGn3gtaMkB3hz0znvpTADlFQnALhhVwZ6XRJ4fA0tQ57J7q0B5GJog6eyBtBpgoge4rhw6copsrUzZC9EWqKf+Lw8YZRiqeUsQBnZQTG9nWSy/70xLU/2b0oEGKdAI0UWAWAqIAIwyw0TfdKxy4tT7hlheMa8l+61unzQB5Z83ndtabaqnE7jE//PIga8xDLe44sptjWHr5ZCzYLlR+fsJq+FZMB6L4eFhVawGkTnA9BvORMDRTFDJEufl66cysZaljhRvnKcfPlIxdLBqrj+FgemtZJNaH53ZLOTfX2JABBr6gC5GlghACSZMWoafRjLdNrfeygDHICXaPLLj142TYv+DoLlt74s9usyrY6c4x+5VmQRYHUlGSi2NcDRX4S0/shFHTEq5LD1XncGxZc6EWpCaSUfYotQDOn5h2PbC6MGwBkfOGC68BOJfsJ4WcI42fJw+dJhivgw5cI+qtjuUF94Zp9ySgvp2CZ3h/j8EOxFBJisIwIMU5Gfg8xLgIjcMRijpQLQ6HuveQT4Df+xScA2CFOTwG2NBx/xW5BF7gXaWOY36w7UEB8GHYUtCfHacpgraBkKLLY1gF+Y+VVQqLLLnUEJZa6BtYLRAIKYPaoNrALCOaHiBcMlceGSxeGSuJHSuOHSuKGyRWHyBf0U83oo53SG+R+Gv2JCM0m4T8ZzXid68swCwCQAAoT+QQR4NpUVwHr4Q/R915fAePfdYL7Ri94GxkLrLXdMrbPg8kg1GOxqAEG8N7TFg/Gdsqf3ejhrYE70c4J5gwTRoYK5ocK5A0TRfSSze0giO0und5BO8ZeOby4Z7ScY5nVrIDrSDREBpucRB0AAugRUFoA6QBM/WO7pPYQk+jYCPN4Bp+HyGDnfAamm7PrUXinD/FNGd0ydEJQ6uUfq5J6pk7rfnNzt1qSgtImB6RM7pj/fLmOsf3p4i4zhTdIHN7oVwrvYBx0d1bmqAHAaaCUAvbGQTgJ0HoCcv6oGG81zQnXRd3mPNSTsrgUrPsvTZtz8aUKvg32bHwtpdTS09eGwNodDWh8L808K8z8e2vJkSPNTA5qe7t/4ZB/fk728TwfzjndHx0Z1Vt1JXfGJwZ4AAlYAuvWONxDIVJBv1oCytpRCM4Qq0O9MZw+n4bJ12amrf6VTA58FBSs+NeInfEhzS1fsNPjMNFpygCoC8Jl7Hsz3dajZO4otd6Va3/ebWAJpfxXgC1dky87E+Zm5s04DadYHmT89B5xXAKcABCjA+WBUvnlLCyxRejRdR7Z0L4x3OuSrUEWAkczdJuEpaHwqb8JNr4kE9t+F8fhZFHLHCF9suUvB9sYV62uXDY9JAudBLvxV84njs8jFOyC8gtGZ5qdjK6A1sB1xnzDsnvkSABRgC+G2K8D4VCIA4wCrgV3oAQT2eKsXOhP6nZ0Dz7nUYVvoT8HMWYDfoMx2q7WNo7Nzlfc4PAc0MhMFHUb+2zkBPBNOAA+HFaAJJ4BHQjLGgG85ATwWTgAPhxWgceh9TgAPhBPAw+EE8HBYAfxC73ECeCBEgEBOAM+FE8DD4QTwcOpegOsG3RcubyZHddSpAFr1L+XlT2PsV1I8UiK87fLGctjCCtDY0QKoFXfy8lBRIcKYkJzc7bM9p1zeXo4qoNFwGrivLgQw6KJVKlRW4o1xP+pA1OyZH3xwzOVN5rCmzgRIVsmRWonKy57BOBGXNwcB/rjUtrX/G9evXXF5qzlYWAEcmwMYNPFSITJqYOC3xzgU46ASE5kEpk2bk7hqr8tbzcGCwrNRoOMFUIqRUoKK8xth3ArjJhj3Ki8iAvx2tn2zp19NT0txecM5KHUhgEG9WJ6DDAqIeAsm+lDohHE7nI9wOZo6Zc66dftd3nAOCiuAo3IAtSJdJfJSChA2QfrnX17o/fsZL4ybYtwNF/FAhtMnAtq2f+dO2jWXt50jt9LVQMcIYFCulmWifBkZ/v882AohHiKPxmJRN/ChVI/wIzR2bMwrr3KTgFvgcAGU2UiVjbCeDH+EfBFq0hSFIBS6kD8A40Cch3AJOnWoi3/bd7MyU13efA7H3g9gkK+S3UV6AV39mzHDv017NAGh8ZGj+mLclmQCuQg0GDcm9q23D7m8+aQHEHqi+sfvqndY/RLoAAHU95sp7qESBRn+GHu1bAozQEBbNBqhcS9Ed8UY6rtjODcsRAf29gzssqn2kwCqeNTmHezGtAYC/PWv4T4KOVAAvexv0jRkeIBwQQv6y8/8GU8hNDCw8bRnvSYf+MifOR0IxMVtH0kRNqKBIUv/d8thBzShdp3pwBmgXgvgF1ZbAVTpjRR3UJG0EX7kz+QA6PR3sAT0HxqUGB48U5ziBQMfFz6FcQ8sR9iAvtndu1PAZrEgrbZNqOhMZPWw7Wfbw6zrH/Mm1u9g+9q//tRdBch2iAA6yWuSG0iTjrC2OS5ojhUIl6Gb56ChXSPHfjwhdAbkfmTyVzKTgMkfi1CxEIWFxe/YUdtJ4DHhtiuA3WP+9Pi//lZ//Xh3wFECKG/7y26gvPs8bGqJVT5YRsY4aBD8TPdVC84ujwzDJib6EoTzIT8MLHmIsA7t2TqgZ/9NwpxaXSn+0/Fuu8t6bNZGALtvZburXghQm9NAvWSL5BpSpqJSaWNsbE6iLCXRh1UgZkIgQm8d2dWOzABghRhheSMQoFzRuOgBedo9OGHP7qNOE6C6WaIGAjzphOOuAjjgfgDNnRbyZGQk8z8M/8YwvZNAS8gPv9vfDEBo9Y3jvriYqREyFLbDxR2L75I54dOt/Xv136SUZdSRAH9adoIA7hPuuhBAL/5Adg3lXkelQj9saIWFPJyDCEKyCvxx9Ck/FJF7zQsmfFID9dkwFfiR80GRL5Tz0lHffku/+PxEjaNf3Qz8mFBWtwTY7n3MCx9TY/vdbN/K5aGvIkCNcwDtrQ6KqygvDXK8VljehMQXeMjEWoqK7noHtBxPygqmku7NgkmgAy4OKLlD6nf+T2jo0C0Kac0nAY4aU0sBdMJNistIcw2V5zyFta1xNg/Dyv6ACXE2M+Ql6LdvWpOUQMhUPmDq7yEy/HFvLGlWmkFqevVe/uXeky7vDQ+klgKoL/vIL6HCm144tw0WN8H3ESGTCTSM91zm1A/yfzUzA2RV7IJjIAEwdsBlPcpgEhChr7f2Dh64uTaZAEfNqE0OoBO8L/kN5f6Byh80xYpW5rDeZQY4BFqFrh7yRagVQn7BHbqUpjOTwH1mLxwDT7O8cWkPnNMU30amG6h//2U7Pz7i8g7xNMgtYTW9H0CTHCD7DzJchZy/Jc72JTGF4ZzBkEmGfPcOrZgkqANCYa8vCsJ6JvQZTPQpyjZY27E4hbjx/stDQgZtlknSXd4nHkWNBdCKDkn/jZQXUOktPyxuTsJ6mxGAAsNcAKFvhJB/6LNLAputf3vpIrIcZFQccJsh0wfrA0ozfEtvIONl1LbDuv3fHnd5n3gUVgI8WQ6gz1ggOoPU/4FoNsL3G+EMXiXu87Ac8Ue0R+iZZ3yWnT+Fz3w1k6SCZAaoOCad2Qqewul+pitkV8yMGaPHb3Z5n3gUNRZAdTn44U9IehYZ/ssruIxMl3mmqwxMofAaD98iK/6mVUGvLZn742fhOA0VJ6OCq4g9xnSFV3AFFV6Bd0C6C2RC2P7qc75Pb7h08XeXd4vnUGMBdHeWpSehzJPo4WmU86MdhIweJddQaTIyXECifyGBzZEPfySV4jNIBzNJKoqcHNXqmfW7dh1webd4DjUWAJBfGpH5A0o+4HX9e971g+j691YwT28cQKkHUeo/SQEglQcrHUCPyTiCsk95vbdmyFOtXwrosmrfN1wa4DxqIwBwPOnEqOFrQgfGh4XYZXFl7BwTGhI/OGzRwAFLWrTZ+GzA6rnz3peK77i8WzyHWgoA3Eq9/vVXp7755tT+fT8S9jOwhf2VK23L+8zAwE86+hN3Guhkai8AR72GE8DD4QTwcDgBPBxOAA+HE8DD4QTwcDgBPBxOAA+HE8DD4QTwcNDo7Ir/Jo4TwBPhBPBwOAE8HOa2cE4Az8WdBVDK0yU5N4TZ1wRZV+uarIyLdQH7/tAK0cNkaA40yuUda1cAP/cTALpLJrz5xp5DPeZtQqNerte047+z8oNvFZI0wOUdW18EgCED0Q/mb74hxw0AaMibew5zM8ATCQBj/9ydggYDNEejynR5x9YXAWDdhMnz7G3T2dsFpeTxqP5yNo20Apqj0+S4vGMrC5Bd8XcD3U4AmAGgx36+mX/mVn5JSXF9pujMLdOZmyZojl4rcHnH1i8BTl/P++lGXlFRQf2lsNB0+gZpBSdADQQ4mWwECgry6i8mE2nCyRSjmwoQ6NYCJF3RJ102FBQYHQv7H/hY19gt1x6TyZB0WX/ssp4ToAYCHL6kO/SHHvrQgUB8bcu2BUeRn6+HVgCcADUQ4MAFzfcXNdCHjgLia7fGeutY8vJ0B37XHriodUcBRme5uQDfns8FoA8dBYTYbg1dERz4QSxGo3bfec2+87mcAJwAnABPKsCXv6q+OqfOy9M6CibKdmqst47FaNR89av6y1/VbilAttv+EkgF+PyM6vMzSuhDBwJRti3bFhyFwZD7BdMKToAaCLD7tGL3jwqDQeNY2NNA6xq75dqj1+fuOa0A3FkAN7wfgAqw66R810kZDKL6i16vpq1wUwEc90ej6kKAj07IPjouhT6sv+h0SmjFjhNSToAaCPBhkgTQ61X1F51WQVphFkDo8o61K4Bj/3awAwXYmiQB1GppLkFW74BvrlQIaSugOQatyOUdW0kAy/0AbieA+GFKO/47tOsaBtCcPIPM5R1bXwSQClNXbPk2mL+Z//aFVX/X1negIas/3G/KV7u8Y+0K4IY5gFJG/r+4t7840jBuCl27/fv8fFVhgdblHWsjgJsmgRpVpk6Tk2eQF5g0hQW6ogJ9UWFdUVJSUBdYfYSxuMhYVGjQaR66vGPriwAcTsCBfzmUoz5CLgYx/zaQE8Az4QTwcFgBuBzAM+GSQA+HE8DD4QTwcIgA7no1kMMJcAJ4OKwAqEMqONB6lpRq4DdTxYKmGDgaJhD9/ufNArQ7TpIBwr6Kgl32WVH9YQHVUN0x1m9bXX2VT4SzV5Zqv6H121ZD1W9uvas6atc5f/Uwux37hK1+HPCq70ih414iQJsvyJbDU/l/tE+fUw==)
|
|
&]
|
|
[s5;= &]
|
|
[s0;=
|
|
@@image:1029&260
|
|
(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)
|
|
|
|
@@image:874&629
|
|
(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)
|
|
&]
|
|
[s5;= &]
|
|
[s3;:Gui19: 19. Widget edit status flags&]
|
|
[s5; Ctrl interface provides several edit status flags:&]
|
|
[s5;l160;i150;O0; [*/ Enabled]/[*/ Disabled] `- disabled widgets do not
|
|
receive any input. Disabled status is usually expressed by altered
|
|
visual appearance of widget.&]
|
|
[s5;l160;i150;O0; [*/ Editable]/[*/ ReadOnly] `- read only widgets receive
|
|
input messages but no changes to data are allowed. The difference
|
|
from disabled status is that ReadOnly status allows read operations,
|
|
like selecting and copying data to clipboard.&]
|
|
[s5;l160;i150;O0; [*/ Modified] `- modify flag is set to true whenever
|
|
data in widget change `- either by user action or by widget`'s
|
|
interface. Flag is cleared by [* ClearModify] method.&]
|
|
[s5; Note that with exception of suppressing input events for disabled
|
|
state, implementation of widgets is responsible for correct behaviour
|
|
with respect to listed flags.&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|TopWindow app;&]
|
|
[s7; -|app.SetRect(0, 0, 200, 60);&]
|
|
[s7; -|EditDate date1, date2, date3;&]
|
|
[s7; -|date1 <<`= date2 <<`= date3 <<`= GetSysDate();&]
|
|
[s7; -|date1.[* ClearModify]();&]
|
|
[s7; -|app.Add(date1.TopPosZ(0, 20).HSizePos());&]
|
|
[s7; -|date2.[* Disable]();&]
|
|
[s7; -|app.Add(date2.TopPosZ(20, 20).HSizePos());&]
|
|
[s7; -|date3.[* SetReadOnly]();&]
|
|
[s7; -|app.Add(date3.TopPosZ(40, 20).HSizePos());&]
|
|
[s7; -|app.Run();&]
|
|
[s7; -|if(date1.[* IsModified]())&]
|
|
[s7; -|-|PromptOK(`"Date was modified!`");&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s0;=
|
|
@@image:1029&460
|
|
(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)
|
|
|
|
@@image:994&629
|
|
(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)
|
|
&]
|
|
[s5; &]
|
|
[s3;:Gui20: 20. Breaking the modal loop&]
|
|
[s5; When you invoke [* Run] for your TopWindow, the new event loop
|
|
is entered. In order to exit it, e.g. by pressing the button,
|
|
you have to call TopWindow`'s [* Break] method. Argument passed
|
|
to Break is then returned from Run.&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; struct MyApp : TopWindow `{&]
|
|
[s7; -|Button exit;&]
|
|
[s7; &]
|
|
[s7; -|void Exit() `{&]
|
|
[s7; -|-|[* Break](999);&]
|
|
[s7; -|`}&]
|
|
[s7; -|&]
|
|
[s7; -|typedef MyApp CLASSNAME;&]
|
|
[s7; -|&]
|
|
[s7; -|MyApp() `{&]
|
|
[s7; -|-|SetRect(0, 0, 100, 100);&]
|
|
[s7; -|-|Add(exit.SetLabel(`"exit`").LeftPosZ(10, 64).TopPosZ(10, 24));&]
|
|
[s7; -|-|exit <<`= THISBACK(Exit);&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|MyApp().Run();&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s5; As this is very common situation, TopWindow provides another
|
|
method, [* Breaker], which returns a Callback which, when invoked,
|
|
performs the [* Break].&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; struct MyApp : TopWindow `{&]
|
|
[s7; -|Button exit;&]
|
|
[s7; &]
|
|
[s7; -|typedef MyApp CLASSNAME;&]
|
|
[s7; -|&]
|
|
[s7; -|MyApp() `{&]
|
|
[s7; -|-|SetRect(0, 0, 100, 100);&]
|
|
[s7; -|-|Add(exit.SetLabel(`"exit`").LeftPosZ(10, 64).TopPosZ(10, 24));&]
|
|
[s7; -|-|exit <<`= [* Breaker](999);&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|MyApp().Run();&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s5; Another common situation is handling OK and Cancel buttons.
|
|
OK button has to Accept the dialog before breaking the loop (if
|
|
accept is successful), Cancel has to Reject it. TopWindow therefore
|
|
provides [* Acceptor] and [* Rejector] methods providing Callbacks
|
|
that invoke [* Accept] and [* Reject] as needed before calling the
|
|
[* Break].&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; struct MyApp : TopWindow `{&]
|
|
[s7; -|Button ok, cancel;&]
|
|
[s7; -|EditDate date;&]
|
|
[s7; &]
|
|
[s7; -|typedef MyApp CLASSNAME;&]
|
|
[s7; -|&]
|
|
[s7; -|MyApp() `{&]
|
|
[s7; -|-|SetRect(0, 0, 200, 90);&]
|
|
[s7; -|-|Add(date.LeftPosZ(10, 80).TopPosZ(10, 20));&]
|
|
[s7; -|-|Add(ok.SetLabel(`"OK`").LeftPosZ(10, 64).TopPosZ(40, 24));&]
|
|
[s7; -|-|Add(cancel.SetLabel(`"Cancel`").LeftPosZ(100, 64).TopPosZ(40,
|
|
24));&]
|
|
[s7; &]
|
|
[s7; -|-|ok.[* Ok]() <<`= [* Acceptor]([*@(128.0.255) IDOK]);&]
|
|
[s7; -|-|cancel.[* Cancel]() <<`= [* Rejector]([*@(128.0.255) IDCANCEL]);&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|MyApp app;&]
|
|
[s7; -|switch(app.Run()) `{&]
|
|
[s7; -|case [*@(128.0.255) IDOK]:&]
|
|
[s7; -|-|PromptOK(String().Cat() << `"OK: `" << `~app.date);&]
|
|
[s7; -|-|break;&]
|
|
[s7; -|case [*@(128.0.255) IDCANCEL]:&]
|
|
[s7; -|-|Exclamation(`"Canceled`");&]
|
|
[s7; -|`}&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s5; Calls to [* Ok] and [* Cancel] methods of Button here make Button
|
|
react to Enter and Esc keys.&]
|
|
[s5; &]
|
|
[s5; To reduce tedious tasks even further, there are CtrlLayoutOK,
|
|
CtrlLayoutCancel, CtrlLayoutOKCancel etc. template functions
|
|
that both setup layout and assign Acceptors and Rejectors.&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; #define LAYOUTFILE <Gui20d/myapp.lay>&]
|
|
[s7; #include <CtrlCore/lay.h>&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|WithMyAppLayout<TopWindow> app;&]
|
|
[s7; -|[* CtrlLayoutOKCancel](app, `"MyApp`");&]
|
|
[s7; -|switch(app.Run()) `{&]
|
|
[s7; -|case IDOK:&]
|
|
[s7; -|-|PromptOK(String().Cat() << `"OK: `" << `~app.date);&]
|
|
[s7; -|-|break;&]
|
|
[s7; -|case IDCANCEL:&]
|
|
[s7; -|-|Exclamation(`"Canceled`");&]
|
|
[s7; -|`}&]
|
|
[s7; `}&]
|
|
[s5; &]
|
|
[s5; Note: IDOK, IDCANCEL are predefined constants.&]
|
|
[s3;:Gui21: 21. Creating and using custom widgets&]
|
|
[s5; There is really nothing special about creating your own widgets.
|
|
All that is to be done is to derive your own class from Ctrl
|
|
(or some other existing widget, if that fits better) and override
|
|
Ctrl`'s virtual methods to paint the widgets and do something
|
|
useful:&]
|
|
[s5; &]
|
|
[s7; struct MyCtrl : public Ctrl `{&]
|
|
[s7; -|int count;&]
|
|
[s7; -|&]
|
|
[s7; -|virtual void Paint(Draw`& w) `{&]
|
|
[s7; -|-|w.DrawRect(GetSize(), White());&]
|
|
[s7; -|-|w.DrawText(2, 2, AsString(count));&]
|
|
[s7; -|`}&]
|
|
[s7; -|&]
|
|
[s7; -|virtual void LeftDown(Point, dword) `{&]
|
|
[s7; -|-|count`+`+;&]
|
|
[s7; -|-|Refresh();&]
|
|
[s7; -|`}&]
|
|
[s7; -|&]
|
|
[s7; -|MyCtrl() `{ count `= 0; `}&]
|
|
[s7; `};&]
|
|
[s5; &]
|
|
[s5; To put your widget into your layout based dialog, the simple
|
|
way is to add it as `"User class`". In that case you just fill
|
|
in the name of class and layout designer shows the custom widget
|
|
as empty rectangle with class name sticked on it:&]
|
|
[s5; &]
|
|
[s0;=
|
|
@@image:2374&1454
|
|
(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)
|
|
&]
|
|
[s5; &]
|
|
[s5; Note that layout file has to be included [* after] declaration
|
|
of custom widget (so that the class is defined at that point).&]
|
|
[s5; While empty rectangle in layout designer is usually enough for
|
|
seldom used widgets, you can also teach TheIDE to show something
|
|
better using .usc script file:&]
|
|
[s5; &]
|
|
[s7; ctrl MyCtrl `{&]
|
|
[s7; -|group `"Example`";&]
|
|
[s7; &]
|
|
[s7; -|GetMinSize() `{ sz `= GetTextSize(`"X`"); sz.cy `+`= 2; return
|
|
sz; `}&]
|
|
[s7; -|GetStdSize() `{ sz `= GetMinSize(); sz.cx `*`= 7; return sz;
|
|
`}&]
|
|
[s7; &]
|
|
[s7; -|Paint(w) `{&]
|
|
[s7; -|-|r `= GetRect();&]
|
|
[s7; -|-|w.DrawRect(r, :White);&]
|
|
[s7; -|-|w.DrawText(2, 2, `"0`", StdFont(), :Black);&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s5; &]
|
|
[s5; [/ Note: This is not the C`+`+, but a piece of script in `"Esc`"
|
|
scripting language, interpreted by layout designer.]&]
|
|
[s5;/ &]
|
|
[s0;=
|
|
@@image:1120&600
|
|
(A+AAeAAAAAAAAAAAAHic7d0xTsMAEEXB3P9U3CykQUIRBWvLy8OaUQ4Q73+VGz+fAAAA/OwBFzvZ5wdcRp+U6ZMyfVKmT8r0SZk+KdMnZfqkTJ+U6ZMyfVKmT8r0SZk+KdMnZfqkTJ+U6ZMyfVKmT8r0SZk+KdMnZfqkTJ+U6ZMyfVKmT8r0SZk+KdMnZfqkTJ+U6ZMyfVJ2jz7PPAIjy8vqk5HlZfXJyPKy+mRkeVl9MrK87M36fHw5vQM/W172Tn1+fxaJXmR5WX0ysrysPhlZXlafjCwvq09GlpfVJyPLy75mfPuNpPp8er90veVlb9YnV1teVp+MLC+rT0aWl9UnI8vL6pOR5WXv9H6JBcvL6pOR5WX1ycjysvpkZHlZfTKyvKw+GVleVp+MLC+rT0aWl9UnI8vL6pOR5WXv0Sd3pU/K9EmZPinTJ2X6pEyflOmTMn1Spk/K9EmZPinTJ2X6pEyflOmTMn1Spk/K9EmZPinTJ2X6pEyflOmTMn1Spk/K9EmZPinTJ2X6pEyflOmTMn1Spk/K9EmZPik73ye/8/4d87/+P//Fqe+/80vufIy77XDnY9xthzsf42473PkYd9vhzse4GwAAAADAyydQulkb)
|
|
&]
|
|
[s5; &]
|
|
[s3;:Gui22: 22. Non`-modal dialogs&]
|
|
[s5; To have non`-modal dialog, just open [* Open] it passing its owner
|
|
window as parameter. Usually the best arrangement is to have
|
|
non`-modal dialog as member variable of its owner window. Non`-modal
|
|
dialog is dismissed using the [* Close] method just like any other
|
|
window.&]
|
|
[s5; &]
|
|
[s7; #include <CtrlLib/CtrlLib.h>&]
|
|
[s7; &]
|
|
[s7; using namespace Upp;&]
|
|
[s7; &]
|
|
[s7; struct NonModalDialog : public TopWindow `{&]
|
|
[s7; -|Button b;&]
|
|
[s7; -|&]
|
|
[s7; -|void DoClose() `{&]
|
|
[s7; -|-|[* Close]();&]
|
|
[s7; -|`}&]
|
|
[s7; -|&]
|
|
[s7; -|typedef NonModalDialog CLASSNAME;&]
|
|
[s7; -|&]
|
|
[s7; -|NonModalDialog() `{&]
|
|
[s7; -|-|SetRect(0, 0, 200, 50);&]
|
|
[s7; -|-|Add(b.SetLabel(`"Close non`-modal dialog`").SizePos());&]
|
|
[s7; -|-|b <<`= THISBACK(DoClose);&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; struct MainWindow : public TopWindow `{&]
|
|
[s7; -|[* NonModalDialog dlg];&]
|
|
[s7; -|Button b;&]
|
|
[s7; -|&]
|
|
[s7; -|void DoOpen() `{&]
|
|
[s7; -|-|if(dlg.IsOpen())&]
|
|
[s7; -|-|-|[* dlg.Close();]&]
|
|
[s7; -|-|else&]
|
|
[s7; -|-|-|[* dlg.Open(this);]&]
|
|
[s7; -|`}&]
|
|
[s7; -|&]
|
|
[s7; -|typedef MainWindow CLASSNAME;&]
|
|
[s7; -|&]
|
|
[s7; -|MainWindow() `{&]
|
|
[s7; -|-|SetRect(0, 0, 400, 100);&]
|
|
[s7; -|-|Add(b.SetLabel(`"Open/close non`-modal dialog`").SizePos());&]
|
|
[s7; -|-|b <<`= THISBACK(DoOpen);&]
|
|
[s7; -|`}&]
|
|
[s7; `};&]
|
|
[s7; &]
|
|
[s7; GUI`_APP`_MAIN&]
|
|
[s7; `{&]
|
|
[s7; -|MainWindow win;&]
|
|
[s7; -|win.Run();&]
|
|
[s7; `}&]
|
|
[s5;/ &]
|
|
[s0;=
|
|
@@image:2084&940
|
|
(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)
|
|
&]
|
|
[s5;/ &]
|
|
[s3; Recommended tutorials:&]
|
|
[s5; If you want to learn more, we have several tutorials that you
|
|
can find useful:&]
|
|
[s5;l192;i150;O0; [^topic`:`/`/Draw`/srcdoc`/DrawTutorial`$en`-us^ Draw
|
|
tutorial ]`- in this tutorial we show more advance techniques
|
|
of drawing inside window. This is the natural continue of things
|
|
mention on this page.&]
|
|
[s5;l192;i150;O0; [^topic`:`/`/Draw`/srcdoc`/ImgTutorial`$en`-us^ Image
|
|
tutorial] `- here we move things related to images. We show how
|
|
to create, use and embed icons directly in application.&]
|
|
[s5;l192;i150;O0; [^topic`:`/`/Core`/srcdoc`/CoreTutorial`$en`-us^ Core
|
|
value types tutorial] `- learn basics about non user U`+`+ related
|
|
code.]] |