diff --git a/uppdev/AccessKey/bak.tpp/tutorial$en-us.tpp b/uppdev/AccessKey/bak.tpp/tutorial$en-us.tpp index 399ac5bf5..7f7e4ddd5 100644 --- a/uppdev/AccessKey/bak.tpp/tutorial$en-us.tpp +++ b/uppdev/AccessKey/bak.tpp/tutorial$en-us.tpp @@ -1,3 +1,3949 @@ +<<<<<<< .mine +topic "GUI Tutorial"; +[ $$0,0#00000000000000000000000000000000:Default] +[a83;*R6 $$1,3#31310162474203024125188417583966:caption] +[b83;*4 $$2,3#07864147445237544204411237157677:title] +[b42;a42;2 $$3,3#45413000475342174754091244180557:text] +[l321;t246;C@5;1 $$4,4#20902679421464641399138805415013:code] +[{_}%EN-US +[s1; GUI Tutorial&] +[s2;:`_AccessKey`_AccessKey`_h: 1.GUI application main function&] +[s3; To hide platform specific differences, U`+`+ GUI application +main function is defined using [* GUI`_APP`_MAIN] macro:&] +[s3; &] +[s4; #include &] +[s4; &] +[s4; GUI`_APP`_MAIN `{&] +[s4; -|PromptOK(`"Hello world`");&] +[s4; `}&] +[s4; &] +[s3;= +@@image:880&643 +흋ДؚՐ᠒ѣ憒̼㢗 +Ǩѓċҁєďޟƽϗ⯂ +酼񊾮ҭܭߏͤəۯ㴦ڔΌ֡ +ذ˫ַޛτӓ鍤獴 +朸쾨ꯃ࿬͸ɔ蹉؁֌ЂӁ͊̄ȤӒٍ +ٮ˸ՁಈƂϲ熮ۗ +օόɫɲ䒀ʮ겧櫲˂顱Ή +ݥ؎ܲ߁؏Āͯ²؄ɐ硔ǂ +ցߩ郓˪ꚄƆΏਖ윒΀ͧ󊁟Թ˙ +߄􍏽ҭץꗦҧ֭ǀꒆ䃊Ƙ̢ +¿޾ȇßӌ傉ރԗהȉӀ򯾬ط׆ҭט +߿źחխѮّѕرáںҚګҍ +Ƞﲏ†όԞضﱔذܝв¿ڂݚ֬ +ר郾茚Ώċغã܌Է̾߳ʷ +Ӵى̘ԃΟëȇϝ͆Œǎԃţه +ֲȕ䨽ٝݿΔѫΛ̙ؒ噃 +ȐɈˀƤҊûާʫČ֑ӂݫʈ +̲խ揧ߚ·ȉ̓הܯއƇԉ +޻ҊǾᴀ󉷳զץǩɣߒٞӇŇ +ü샑̠܆Ղ҇ĊоدݑȄтņ +򾊸ľ̗ÈǾ銎໎蓒Ň͐̋警ס̯ +͌ɇؒĊԝͺ֭ʌޕߵڲ̾Ūߣх +ДʙҪɡߥٹ⩣ϻ群ͅ +ȹꍊȇصdz琺ݭڲ +ёП浤ЍĿֆٍ̾瓛 +ɕ⫠ʒՂצ֭̂ܦ蓪Ͱ̔ +ߒº鵤͛冹ݮ扛ɹߔɡ돒ĐŅӼͫ +żŃԥʻ㑰Ê䃁矁潐 +ϠؖκԌšLJ뫠ە隘峴㬲ӭ̯Ê +ᷢ꛰æޅʹ۱ø徔߱ +͞ևҀ󩈕Հϭ݊˒ǪҔ품ݢ +㇇鱒䭾؆Ѿ൴ȼՏۑ܂Ï +ѻ٫Ń܃ֱ،Υָ٩̭Ǒњ +猉Ѻиʟȯڇ仵ߟڛʼnݙ̏耧ޖն +췰鐓署ƝƇᜀן߂ܡ¾ۖą萓ӉɊӛ +̤զԨӥƨǡ閄쁝ղÿС +虈߲셅腴ᨎٯʚӦּܑҨ͇ڈ +◴ȇػȉ־܉ˉɽ͝ +گữҘʗɝ坊ƴ˟إɡߍ̷̜󊛫֡Ȇ +̇ɨɀ۟Ч폌áЮ +˝Ȋռ䬃筌㋗ïґċƏͫ +ڭӁ؀ޝ⁤̩΍̮〉ێՈÄ +윗DŽڰدۡڕކތ΁хϖ +ß򑑏ޑ߄ޱ뫬ҍϐ¾ְ̇ +̇蜛İ蘏ءѶĿɇΝ +ܾ׃ٟׅџͅǚ㚉Ȇۢܒ졲 +Ëʈʈœ𑲛áԿ޲ +̇񠾸ᚏ̉࿊䮥ۼͺᾸ޿杧 +Ѣ™ؗĴȇߜ䃓Ü݇ +σ͟ڭ˹Ф΂颛ٟ羸߻׹ +əʎ괐ͱŒ͙ߞդ +ѫ‘흊ᯁǭѦȖҍ԰ +埌攉оȥɢƳ߾Æȓ惃ᾰј惃ᾰ蘏 +İ蘏惃̇̇а惃ܽ˥Ν +˃㽒׬Ȓ׭ٻիӡʾܰȀ +ůꇍ‡ϾʴՂסٺ® +񴏐̇ྸニӚΦӾ߿ +LJЎϡ՟Ýʢς荘¹܇ +¹팇ܻ惻鏃܇ +߭џ럤㰟Ƈᡘϖ㰜蜵ޅӾ +Ϲ̇ޓɆٯ凉޲ןȐݎۂ +ܽ䨏啮ؤ탄Ǵ臆 +炒㫂欚ܴƣȰއ率ќ⏅ˆت¯˅ҟ +Чɭā +&] +[s3;= &] +[s2; 2. Application window&] +[s3; Application top`-level windows are of [* TopWindow] class. You +can run modal 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.&] +[s4; #include &] +[s4; &] +[s4; GUI`_APP`_MAIN `{&] +[s4; -|TopWindow w;&] +[s4; -|w.Run();&] +[s4; `}&] +[s3; &] +[s3;= +@@image:1920&1324 +לםᳰѪ؆˝є֚ +ɓڴجЇԅՊހܳ󎞜 +޳Բ̬ɭ˹֬Ҟ顋އݰܩ۶ +þɌ̣ƭݻϜۺ +鼿乲͚ݯ֏ҹƏϬ׳酝 +̳ɧϗ޳ɢҩɵ͚ړǬܕֿ +ؘ孙΃ڷƬɭ +ĥۖغۦۚҲμ䶞Ҋӗعݙ +ٻ枯ҰͣߙմնڳŔٴ氿۱ +ϫϞ끠ҥر۽ݴӞÞԇ֮է +ʓچʀՃϮʕӝ˧ڗޜ +㹭ןؾמߤ笟ؿ֌Ȟߙӌܕ +׾̦ۯËͧǫۚ +븨Ïܿݴɻۀҝϼ닎Ѷν +Ňֿݽӧٝ߹źȦ +æ¦ +ޯҾ̷ִʎ䶅Ľ֮ +ť促糯ܖ𵷴ͼٰ۟ҚȻ +ےɝȷ׿콷眯Ƕҿчߺ¨韀 +ᝡӵ޺ܼҭΑз +Ҿ޸ق߳匞ɎڊܱǢ˫ιޓćҿ +؟Ѭֿםʅ۽˒ؿލ˱۶݂Ƴ +ڛמϥۏܿٷ䃿܋𖕣叢 +繬͙ι͚ϩȾΧ +̙哹ѫϦLJà޾ܾ󲫠ܿ +Ϯ꼽񥧺ʐٛŕͬߛɔڃ +̚Юفݟﮯݟ㟻Ӷ͸ϔܖ +֤ݾӗ׼־ަշƭߞޭݽϞ€ˢΝ̥ +翮򞩯ߵ׎ͦˍΦ́ +ܠ酓恨Äꞛ麥 +ݏΦϿظ۞鯀ηƏȿɥˁ㪥Լꯕ׏ +Ֆؤߚ˫ߎϠΞסȣ +ǩЕᚸů˟ +娯ɽ˧ޫڿꟹҴֿ쪈îջ +邥ۈ֪Ƣܝ׽΅ˮUʩ˦ +󄞅ҳ׽헏ٵћݯڻƑʱرߡ +Ⅵǟ⶛Ѯطᧅ͓캽ҍӏňљ +ʿΒړ繸􀜞㹏ݱ汩̼ˌ +ڶݽ׎ +Ƙ֎޳퉟ϻļܼÓƌǯٌφꞹ +ز݅꛸ӝᘪͅɫ饃 +ݛ෰✖տѩ߬ +ɢڲʲߩ¶̿ʀϐˠមؚܽ˚ڲꯘ +ӳڡ۫̕ڻ۲ˠ +¦ھރ㎒˞щͻ쇀˦􏀐 +ѿ蟀ģŀ􏀐ѿєĐԑꟀ +Ġģ損ѐ萟ģâѿ +蟀ģŀ􏀐ѿƙ蟀Ġģ損ѐ +є۷Ȁ蟀ģ􏀐ѿȀ蟈 +̀ѿʀѡ蟀ģ􏀐ѿ蟀 +ģŀ􏀐ѿֿġ損ѐ +ģâѿєӫɸŀ􏀐ѿ +ƙ蟀Ġģ損ѐє؍ +蟀ȃģ􏀐ѿҴ蟀ģ􏀐ѿ +ĐϢ􏀐ѿȀ蟈ĩ̀ѿ +ʀѢӻ̀ѿʀѡ蟀ģ􏀐ѿ +蟀տҨ蟀ģ􏀐ѿ +Ȁ蟈ĩ耐ѿÞѿ蟀ȃģ􏀐 +ѿҴ蟀ģ􏀐ӍĐ瓙п +蟀Ġģ損ѐ萟ģϳ +ĩ̀ѿʀѡ蟀ģ􏀐ѿ +蟀ģŀ􏀐ѿƙ蟀Ġģ損ѐ +萟ģâѿ蟀ȃģ􏀐ѿ +Ҵ蟀ģ􏀐ѿȀ蟈ĩ̀ +ѿʀѡ蟀ģ􏀐ѿ蟀ģŀ􏀐 +ѿŀ􏀐ѿƙ蟀Ġģ損 +萟ēԷâѿ蟀ȃģ􏀐 +ѿҴ蟀šϭА萟ģ +âѿ蟀ȃģ􏀐Ꟁģŀ􏀐ѿ +ƙ蟀Ġģ損ѐ蟀ģ +􏀐ѿ蟀ģŀ􏀐ѿڪб􏀐 +ѿ蟀ģŀ􏀐ѿƙ蟀Ġģ蒩 +􏀐ѿȀ蟈ĩ̀ѿʀѡ蟀 +؀ĐӍ蟀ģ􏀐ѿȀ蟈 +̀Ёۓ􏀐ѿƙ蟀Ġģ +損ѐ萟􏀐Կ蟀ȃģ +􏀐ѿҴ蟀ģ􏀐ѿ􏐀²Ż萟 +ģâѿ蟀ȃģ􏀐ѿӿ +А萟ģâѿ蟀ȃģ +􏀐Ŀѿƙ蟀Ġģ損ѐ +ʖΜʫߨ޷ᯀ߮ȲުڱЕ +Нєۭξ֥ݦ법럋󶄀ի +&] +[s3; &] +[s2; 3. Modifying TopWindow properties&] +[s3; 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).&] +[s3; &] +[s4; #include &] +[s4; &] +[s4; GUI`_APP`_MAIN&] +[s4; `{&] +[s4; -|TopWindow w;&] +[s4; -|w.[* Title](`"My application`").[* MinimizeBox]().[* Sizeable]();&] +[s4; -|w.[* SetRect](0, 0, 200, 300);&] +[s4; -|w.Run();&] +[s4; `}&] +[s3; &] +[s3;= +@@image:1040&1669 +Ѐ΁݉ؔ񂔄䓵⧈ДРᕣͳ䒓 +ˉƙζɖ͍ޗ㪢ĥ֖ +Ո穐ҕ²ʈ׈ىءЉӸܬϪƯݵ̉ʹ +쳵뽒ėٓ +䬛جԬ͍ﰥɹ˱꟦ԉ姲ߕǜ𱃓؏ +⛅֩޵ʪڑϱƊܶψҴӜԐږۣӯ +֛֣͊ժʒ⍗쑪ƌՉˮ坽ė┇骱 +׃ɦٍåճ﬜؞֡ڄﺅ࿱׏ +գՙ̮˘ΖĴʩވƲƽЛ +Ͷ߁봺۽۱ٟΘǛǘɇ͒ +Ԉ䃙պ՜򚇥ҼɻԘȔʳӰnj +צ卖ԃҮݮݾûӰܒųըΝ깅 +ճӷ༲ɖٯٵܹ˕ݩ +әӋݑٶҩڐٺޕHΙ +݇ӿϟ起Γ˶ۊ޲ſӎ꿓Ӻ˶ +ҶĕȾۼݝϪߵ֥ߑަƍϞ§׾۾敖 +Պɶ–Ԇ՞ΔƸ獴ŏٕ +ͷĜߦ뛈ޛȞЎ©; +ҿӟ컭ԵˮŞڋāݲϔѫ򱷣 +Ցϫ҅ӮȽ䳲Ҫ޼ǖ鑰;⽩ +ڸ˻ǟ߬ߵԿǹڝ󍓗򂵥Ϳ﷝ +Ψ䟳䗿’沫ºʼߦ±֧ +ޫݍОڽˆ͚Ϋجݫʟ +嬬ԙʒ̥Ŀެªޔ݇ިϕ䩞 +Ӕ圹ѯׇ̻ω߽篜簫翯 +׾߯η⽱ܒ֖냷暟͚ٹӥ +ϛַە͵DŽЀͽ +Ղ܂ֶǪýˣ߈Ǽɹힴ箶ަ쳚͡ؽ +ӥܥ݄윁֘ҏퟞŶؗŦި۴ +Ͱɑ멙꿢՟Ȝ«Ћ𿒞عߵĶʚ⫌ͯ +Ğ֛يۙ뵰̴ǘۇٞώЏ믈Ϸ싟؜ޤ +ϊԽކ彽ܩ󶬗ےյ۫ӷֿȻ료ڮֳۻ +֫ǻ޹޽͵΃ԛ륻ѽҴ +Ω˖򺷦جۣͦÏԻ󫪛 +؜ٔ򿩘ם΃ПߓұԎ֭ߑַր׻ۻ +Ãֽۻܐ޽稦ܒՓ╮瘅ӔԤұƨƇީ +ç٨ܚƎֺ㋙ܙĽܢӏҙ޼ +ۍΙμīﳨݕ梯ʹ竤ˌا⋋˲ަφ +˭ٿ͘ڬ᧟줴҆ +ί٤Ѻ綹DŽֻĤ۪ʠٵ咥Ӿ蹪ᶣ +ӡ۪񛨒꒺ۻç׹ՅϬŵ͜㽱 +̕ߌśٖ䂞Ƿԕ֟Ȧ۞떟 +҂˖ؤ϶閛叕ڬŚɓΫʷ +֧񽏧ݿڟ߭ +׼潺ϬՄȫچڣŽ탒пŧ޽âã•ë +ʿ섴軽Է鑲ȏؤȄو륵接ߦ݀ +�ߜ֦టݨٮʏٜ۠羺 +󏢾鱘ꬳϷ´لܒ͌ʖ܏ +Ә澛壎ھ秫ԭݣ۴÷޵ܨ׺䣞᯲֟ +Ǯ˨ȫ˫۞㑔س✯Жޮ֙ +ЍҼѾºńԤٞܕة۽式 +ּ㡶ֿًߗ셲ڲ +竞Ǟ罚ߑްپÛÎζۯӺ齊 +΅膔ߚ㫑Ԭڣ֭ڍȤᾉ׎ +оՍӤÌĔՙȶΑó +強ޛħֺؘٸԭٱʖߪ좗潊 +ęӫԵⴛסﱘʺ豼̟ +جҟſؾʆЏ혘ٰÃ皖ѷȔ +컏ջ׎ڧﭥԄ׮˲˷υú٪ڤՅцݲ㙎ޘ +ʙポϔįݺڙ⩾톁ކݲ +Ѯ㌲ͷοǬѤ辆󕈏珰 +̿˷œݭ۞Ҳܿ摸ƷƩ٧ +Ķ٧Ѱ؊ܣҦÈվ’ٝӽҨ +ɳۻܾ峅͖ɪڜύ߮ݱ +ㄬۦڼپдÎ⓮Щ嶱صٍ +쵛Ĵ‡ޮض􏩿Ó̃Ώްŵ +閖ߛמƗҲӋə㭽㚝қܲƛе +֡բէԢǕ襎ȵ򼁟ͽưޖ +Ӗ۴֩񛌥㛩ْܹĀ +ۙŹ΢ċӫʴ݂۷א +ȘŚ۴ίַߡֻ׏٬Ȏƺ +︿ۣ׉隉͓˖毱Dzòҵ۸ȵﵼ +ʻ鲿ߚЖԬǑ̰ݹݕӮҜ듞˂Ü +ؒଶƛ틌΂ָ彗Ъꝓ +賚ٟ軩ӹ¦ܟة잓ӰҩχˮӨ䦱 +қӛѦͣӛƦ汹숒ַŔޏ翣ϥۑ +˴ݚ栢۶غخ◁ѷ؛ܟ̎閳뽹 +۟ޏң⍷ʉɳ䣓Ŏ򡉲 +殺蟒̽ڡ՝֏ܭڝе +㈡ȦÚȗגξʛܱїŹͶ +۸ϛҍĉޫϱɲܿćѳ +ƣڎŗӴ೅˫ߋޠۅ +飡ƾԮՁ삮دłΞǁ +̞ޟþ̇枌ϥϦ؝ɗͼ֧ڜ +캽닍춻䭵ܳڸ풜֋ɭ +ա˒ѐ޿͢΍ӭҶ篈ΛꎽƎ遼ד骱ռ +Ĵ⥸ޠûʗح뽂ª +߶Šٙ՗Հ܀Ç +֏阒߫ǣ߯ѕˉׅף齁Л +ɢߦЛАЛɢުЛ􆃔Л҉ +Л􆔬Іҁ􆔁Л齁Л +ЛАކϷ荈ހ􍨡ޡߙϺ +Л􆆔ЛɢꮿޡހВ +ЛЛЧ荭ﯠހ荨ހ +荨ћ߆҉􆔁Л齁ހ荨ހ荨 +ހ܂ʼЛ􆆔ЛЛЛ +Л􆆔Л􆃔Л҉􆔁Л齁 +ЛЛАЛ􆆔Л􆃔Л‰ +荨ހ荨ހ荨Ď齁Лɢ +ЛАЛˆþׅހ荨ހ荨 +ހ􍨠ޡހ荨ћ齁Л +в􆆔Л􆃔Лɢ޺Л +Лɢ箿׌ޠހ荨ހʖםޡ +ހ荨ћʋ㏡ހ􍨡ޡ荪ћς +ހ荨ހͱހ􍨡ޡ荊 +Ɨ潍Թᚫޞׅߛ +矕ʝꟘš⽾媎ǣ󰭖ݿ齿 +Ӟ߂ +&] +[s3; &] +[s2; 4. Painting the view area&] +[s3; In order to display something inside [* TopWindow] view area, +you have to create derived class and override [* Paint] method:&] +[s3; &] +[s4; #include &] +[s4; &] +[s4; struct MyAppWindow : TopWindow `{&] +[s4; [* -|virtual void Paint(Draw`& w) `{]&] +[s4; [* -|-|w.DrawRect(GetSize(), SWhite);]&] +[s4; [* -|-|w.DrawText(20, 20, `"Hello world!`", Arial(30), Magenta);]&] +[s4; [* -|`}]&] +[s4; -|&] +[s4; -|MyAppWindow() `{&] +[s4; -|-|Title(`"My application`").Zoomable().Sizeable();&] +[s4; -|`}&] +[s4; `};&] +[s4; &] +[s4; GUI`_APP`_MAIN&] +[s4; `{&] +[s4; -|MyAppWindow app;&] +[s4; -|app.SetRect(0, 0, 200, 100);&] +[s4; -|app.Run();&] +[s4; `}&] +[s3; &] +[s3;= +@@image:1040&669 +Ѐ흉Ԕ׫Nj₊ăʦ윧䥱 +ߒ֦᠘܀ѽХշ߽䴨ą̅ +Ďһ˭Щ⼵ĥҫңѡ´曄렂Ȱ +¾ГŰҩØ̩Şڛȋ鴮ˈ +ӏޓѓƀͲӛɠ縇ۀֶԯƆ炜Ĩ +ċӝԽފօŽ͐鴪ւ̙¼̋튞آဲ +ئɭۘԪͥ؊ꥩκВۤߍЧֈك +ؑ“ƘϹؽԛ£рʚ󳗀ߩџ؜ +ڬԥӘþܦܻښЕ㌘Ѕ嵁һꙍԇ팹 +ЂҘǺւȪۯ˸޳־Āļ +؛ہ폜㌡Ùǚ넝Ǖ䱓С䋶ʂʖʓ +륓飐숝߯ܚĈ„ք֭ΡǸŸθ +ժð޺ä؎ٲÐ˛з澞ԎƷϷӾЍ琢 +˳ߵϞ򺒼ɶ¼ЍȿԽ㻛 +㶶Ւͩђ뉠ݬǕ߆ +͈ߞӵڢ͕Զƕ߳ଧَܑТȿ +ߞמ⚽엝ܪйŷሏƲǟņͻɒ +ʓķ˄ႵՆ륔󌆄莿̀Ñʿ݄ +Ļޑ߇Ϻ״ǔρ·퓅Ý +ѡ߇ܯܰÓǼͩĄ̘ԅᮧ +Ԣ֜뾅쯫޽Ǖ۲ͭ喝 +Ҥ߷۞ʇޅҹԣꞫ͓͛ȯą˵ȶ +ΏŢֆ̅ǺƸ݋尽λ弟Υޯ +̡ʻ퇸ȏ볘ۘ뙝Ӥƪӥ̗߱ݳ峲 +ҳ׈ɨҫ̠ݼ㪫㼙ܟ⧺ނ +ҹӴֲ뙯Žʏٲ¿ݴЇԄӓж濾 +ՃࠅФ쑯إ٦ɱɕͳϖʦܲ٭خ邇𿳱ȯŃ̏ +њӘՋօɾዜ֟嫽è۴󲀭ѿ٥ +ūΚޘΧƢ΁Ąĭɓ߃ᖼ򛝼ߊ +ʜIJ哲Ιޣ卉ܠݼɶꔦ˙ּĔѯ +ƪݥݼͮ剒ݏֽ۠쪽ŕ +ճބDzܙē߹ǟំӗϹ͐ +áȭ򇝼٬͓Ρӳ٭颱߲䄁 +·Ԙ̍锠Ԯ̷ŹżИХś +߫Շ뛻֡ף޽Ջާո +涎⟹§ǖﲉեՏ޳ҊԏдԿԳ»ĸɼ +ȣҫʣ짺᛼̷ʼܿ驅̓҃ȧѽ +ˊʹ腨뛙᪌٣Аߚ慎߆ +֩ԢညҎв߅ӫС҉բϳ̾ +Ϳ۸ۄغۺö•̐؆׫㸿ۘ˰Ǯ +ҌöӋѿО虦驥Ǣáϻȝ֋Ɔېאʍǒ +Ք씩ǶѤ¡ƐçƢˀͭފ +մչ߱Џ߃ʍՀȢƠƵԵټǞت +Īߦǰ䙍좽Ͻž޾ȂǺ +ߩӒĂ˹ۨݺɰቋą♧蛕Ɲ +⯡֠޺ާ‡ةʎ޴ށ琺΢ +Ņ̙Ȫƕޢ̖ݩͷĚՖꫵƶ +͊хɒт֑·ыʛӗː̌Ŋ +ڤΟ뉾팚؟糆ÖćЗ؝ħ˝է +ة儕ڎَ•㺏ʙݝ򇲮Ϊ +ԉԳю޴㇓ȗ٪۶Ӗȗ֏ϐץ +ЁɴϞ޺Ȓ̥فڟ즔ȅϦ +۠ڄҗԙ¯躟όꑭӁһ +Ҏ̆ʿ۹уߴ׈˷ӨʺʣԢ֮ +ڦ닩﫿쒠ѠޗԘ諛ުΛ˶񥊗ʔ +ȭĖԂ䗾ʨҽܚݦġ +𶷉״Ͷș›̑кÄԪ +ьӢ݈𲔟ۯЎșձְۄܶđ +拺ȵŸޑ̫̌汉ݤبӬܖܺ +ꙣݒːԻݛ琉””Ѳײ©̡ɂߘ +ަְ܌ӽئöӦƸ +蕬ѳۼ܍Ƕ涡̾ԘNJꇛĽ藠̒ +Ý݊Ϻ݄΂łѾˆՓ⭫ +æ̓鮲٪灇ξ枭̕圿ʭڱ띒ͮʽ +҄ɢ¡Ŷ൉߱ʒτ㫂ք͹ +񯯚䪛󧠠Ҟٿέ膧ڹԪLJ +л܃љתۜΘ˗̼뗃ፌПÂ٬ +乊߃ƕξۋߏŏݮƞ󟹍ؿ +閟̡ΟّձꋲʐҵϯմٜÙϑ䢬؋됷 +۬һƇީ淄ؿ⯫ߓغЬ +Ǘ͝ŷѫގҔϰą뼔ᘍׇުߐŲԝ’ +ֽݝՓƥؔ򶸂‹Ϋ +٦Ł漤߃ʖߟߎݔڨʼܢè +ƽ፩›鄷›ʑ›› +ꁨļۈħ٥ݡƓވፈϑވ鼏 +ۖ壂תϳՄ›ކ䭟 +ƄџߏԿڛիҽۄİȰ姩ʼ +Ԉ޷ޘ؆֌ȩݎ𖵶ֵݭ̼뼮ǜ +—ݰ󄩂׆ᴃÍƙ쳭Ӏ͜㷣̖ +ẠÜّᆽȂ酋ҩܟΗǙ³ʳպۨ⾗˛׺ +Έțךĥ٨͙쾃˷֑ +͢εދ̜첝ń˞׮ޘ¼ +œԄ迤⯙ބƍ녓Ңڰ؃ӂΑͰ +͢߁怄Ӂɵӆӯ΁śݬ흩ͰГ +ꖚ䱜ؽΌꆱʃ +Ę싚΅ɷڄهڻțʎ +ό卽͐ޘՉϪḁȁݶր• +ּݰáƭ⿏甾ﵲ錊Ɍ +磖 چȃ෢͑ވፈϑވፈϑވϑވΔፈϑ޻ፈ +ħӄ͖ΑވΔፈϑޟ› +ӄ̢طᧈ››ҿɞʐ›ˢ +ވፈčፈӑ߃Ј翞ú +Ȭ›ƍ̪ħħԼϑᓍ񙐣维ԓ +뇭ݹĿڦ۰ާӾʜƵѻܡѵڪ +ۨЅ㉮ԅ寸뭻ɩߣް͉ +ͬ +&] +[s3;= &] +[s2; 5. Reacting to input events&] +[s3; 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.&] +[s4; #include &] +[s4; &] +[s4; struct MyAppWindow : TopWindow `{&] +[s4; -|Point p;&] +[s4; -|String text;&] +[s4; -|&] +[s4; [* -|virtual void LeftDown(Point pos, dword flags) `{]&] +[s4; [* -|-|p `= pos;]&] +[s4; [* -|-|Refresh();]&] +[s4; [* -|`}]&] +[s4;* &] +[s4; [* -|virtual void MouseMove(Point pos, dword flags) `{]&] +[s4; [* -|-|text `= Format(`"`[%d:%d`]`", pos.x, pos.y);]&] +[s4; [* -|-|Refresh();]&] +[s4; [* -|`}]&] +[s4; &] +[s4; -|virtual void Paint(Draw`& w) `{&] +[s4; -|-|w.DrawRect(GetSize(), SWhite);&] +[s4; -|-|w.DrawText(p.x, p.y, text, Arial(20), Magenta);&] +[s4; -|`}&] +[s4; &] +[s4; -|MyAppWindow() `{&] +[s4; -|-|Title(`"My application`").Zoomable().Sizeable();&] +[s4; -|-|p.x `= p.y `= 0;&] +[s4; -|`}&] +[s4; `};&] +[s4; &] +[s4; GUI`_APP`_MAIN&] +[s4; `{&] +[s4; -|MyAppWindow app;&] +[s4; -|app.Run();&] +[s4; `}&] +[s3; &] +[s3;= +@@image:1800&880 +Ђǜ݋ߝ񓄐܅בРĂۀܕѵؖ +֞ުېŃ̒撶晜̏׼̙榢̢ +٨ԙס촗˭ʮįת̌䜧Ɣƺ߂ +úۓыӡ;ڒ˚ܫȃˣђԉΏЭ +ɍ‚⨧ڠŧߨͨ都ĕŧڕӦպ +ꥃꀝ𪩊ЉΫŚʚ߭ꁰԣ㦪 +亣ŬٰߒՄ²΄㞎Ťʬ +տ̺ݪ՚ȋ򳫦߈ԺɅᢻѷݲˆ +ԗƝܱןƀʇ +مثۄšʈԛէ⪒ŕ٨ӰԻЙǕճԮߘ +ר̛ՒٴˆԡťԔ񞹒Ŏܚݰ +ߡƯ߆ꛅݱꆓþ܏Ɛ濌ǹϕϥ܃ܣ +ָǭٯϠ󲿪ǖͬʈ󤍺 +󆘔̚뤒֝ɸ꿓٭睺ྡŇ +Ťŋ޿̛ڞ޿缮ϴǼ +ߟ²نߊŵݎȑ֫ݘٺɺŏ +”ؾҳڛڷ̻獘Ǯ굔ϯ +ۼκ綽ͶʗՅԟꪠޤ晹ҽǜԤ +ԯѧלťҋȟՕ╳ȘɃ﨨 +ͣϪ׭櫿궣޿ڎ٪֖ӕڧ߁驍 +¨ϼү՛ϼԦʞο׿疴 +ӎۼ҇ղْɂʟɎكӞշ +͇؋Żöݣ͗ˆߦꂞ +ܥ婏뙳ҭԲ׷홪ů߲׼ދ꽅ĸ񅪶ѧ +ן䥰Ǖ޳홃ǖطԾߡƏӍ +ɶljݙ柛З缕ۻή֝ςƻ󽝖ퟡ +㖓ێؠˆ‚􇼙ؖŮݽ +ٯԐƈܧǶ۽匭Ŕ͹峸Üߨ +Ӈԩ뷿Njټ힁ɖן҈ +ټֻӟҥɛӟƿ˿ڳ̞ҝ߼㾓ƴѯ當߈ +־ʣȝӲݿǖΎѹжȟϼɽ픛Ͱ +ȯڨ׫§໕돞毖槬࿨ꉗʕ̈ͺˆ +G登ʳҝދݽᄅ즻з㨫 +ߨ޵Ҽξәɂٗ씨׵ܷܠǹǷݷΦ׭ +󩨸ӯپ׎͎ژ厵ܶ +߰򗿶ˑޯյԷΈԐ읽ɟ۹ +⃞׹闯㢚Ϗκֶ쇁ԭك닗 +ʪڲձŊξҗҷ㻻ܖ냔ŕ̨Üㅯ +嬪מּݕ폛Şݪޥͺǝ +䕯ҋ̟߻󭏘葻ԡ +ˆ͜ȃݓˆص᫽ֺչۡㆧƭƈ՚ +ѷւ𪮞ܜْӿ揵ˆގݝܧί߰ +ƍݪؕΙϭʾڇߋڠկ +Ԝɧ睳Է돾㧼ѻꋾެԋ򈍁͖ +ħʅˆԪ뛕ͩڃᵎ좾 +Қ֚˞ՆLJȭ篾˾ +ۯϗՍ렣ԬÞػ܃Ƭ޻ +˽ڭܟ꜖㫛ݚʾױړ˦ص +ҩ⻢Ǚﶍ˗ꛝᓎ +鼓φԧ꺼Ƀ͆潯ݴѻځ“񳡉 +񊐠ר뽪ԄۺС +ԭɼϺŜܲލ΁Ԙ—ΊǷַɏ +ؚ׎߸ʷݷٳ㆏ͺԆ +ߺݬžگ꽽﷩ƼҶΪᑐLjļ +Քꉆв錱嘐šԻީ剮ݓݷޟǫŽۯͶգ +ƙψیȎܟ״΅飜Պחķ쫜 +ʙ׷Թøѝ˶ӞϫݣϏ䝻ʨ۩ծ +̦Ͻ׳׆箎ډҭӛΜٸث񶞴疜 +ߪĄΘ󚽊蛤ˆ֨٣ݣָ܎ަʻ +׮ɽㄊꖭ㤇ȟѿވݟ֔הڹƪ +ۭѱߎܷ㌽ǫзŔۏͭ֗ꨭ +❞żۂʕ۟وߞ֫ +迄䰏ԫߛNj˭ڤݵƵ뼣 +ݗﺦ뗕߽ݮȆ镵ڜ򤍎񤍮ʝ +ٔ螘ՊٚԵ߸߸ԾתӎƤ +ώ͗љ躠Ȳ羣Ȥ¢ثԚӐ佡֓Žȣ߳ +릝ɝݱݱ߱ܽॻ摒ʯȝͬŕ +˷Éх̎ӭȑ쾪Ώؒ߶ţИŭ̸ +ۡ免ד³痜˖ׇٟǛ +ߠ򏜵ݜ̓˺ŧůݎڤ΅ +Ը΀LJ͛ڭǸ֎鑭 +Ԭ߰ڍôԎݷϴ꛺ٟǴ߫杯Ε +ɇͺ켮ڨͮџ +DZɜݷڵݣݳޱٷվ߽ۗ +׆̄Էڽط֑ѾٸՈҳɞ׎ +娝׌華ѳџڝЏĝ󎩻ȸϻ +ϵͷ鹣썞֍ӎᮣ +胝³㞬ɕ喐ٵΩֻϵƢ +眣ߨ޹󷂙܁Ι󏞔‚Ȭ +ݦӽ֌飕ҬؙᄾЧ섥ʑǤĊӵ +ߟǖŠȵȣեÎ˫٣׹Ի٬ +֑̝҉餬ΊެޡɚҚ +߀蛀ȣ􍀌ѷԆӷǿ +з߀蛀雀ѷ +蛀ȣ􍀀ѷԷ蛀ƇŐ߀ +蛀ȣ􍀀Ơѷ߀蛀 +ѷŀ߀߄߀􍀀ѷ߀ +蛀ȣ􍀨怀Ձзŀ߀耛 +ȣ􍀀㍾뛹􍀀ѷŐ߀ +蛀ȣ􍀀ڠ߰߷зߘ蛀ȣ +􍀀ѷހ×􍀀㍾Ѩ߀蛀 +ȣߟ߀ѷŐ߀ҁ蛀ȣ +􍀀Ԡ最ѷŐ߀ҁ蛀ȣ􍀀Ơѷ +􍀀ѷ߀蛀ȫ +·Ѓ蛀ȣ􍀌ѷߘ蛀ȣ +􍀀ѷŐ߀ҁ蛀ȣ􍀀Ơѷ߀ +蛀ѷŀ߀耛ȣ􍀀 +㍾Ѩ߀ƀ蛀μ֪ǮқۼҶҭ +΄ݴㆾςʠȈՍԚٕǕþ߀ +߳їιڷѩ氈٘Лԝ͌ȃ +ǡꏾ׮쫯԰ͭلܫվԺ +׆ľ䡟׾Ť˕ܵٶϗ􍀼ف˛էդψ +؇ݠɦ蛀Π꒷󄣰ނ +蛨կ۪ؓ҃գԸۺӷ􍀐擷 +׺ܥմ꽔οۼ谐ѐЃ߸õ +נ𳩻Őȉ灪ܼþ쐛ٞ +԰зȿ귟݃ߟ׵親зȾ +茠ԍ׶зͿ߷˂߀ߘ +Ũߟ犂􍀀Ϝ􍀀ѷŐ߀ +蛀ȣȣ􍀀Ơѷ߀蛀 +꿍зŐ߀ҁ蛀ȣ􍀀Ơ +ѷ߀蛀ȣ􍀌ѷߘ蛀 +雀ȣ􍀀Ơѷ߀蛀և􍀀 +ѷŐ߀ҁ蛀ȣ􍀀Ơ +߀蛀ȣ􍀀ѷꀐԷ蛀龑􍀀 +蛀ȣ􍀀Ơѷ߀܀҂玀Ӏ +߀蛀ȣ􍀀ѷ՗雀ȣ +􍀌ѷߘ蛀ȋߛ߀蛀 +ȣ􍘀ƀѷƱ߀ѷ +ŀ߀耛ȫڷʑуˆ򡄄ƕތܓ誻ӏ +֧귚ԫ굓îߍ;䀽 +֯ꗾŪº۫۶׷߽杬ߏݏ龃 +˘îڋᆝ߸Ɉ☴ +&] +[s3; &] +[s2; 6. Multiple main windows&] +[s3; 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.&] +[s3; &] +[s4; #include &] +[s4; &] +[s4; struct MyAppWindow : TopWindow `{&] +[s4; -|virtual void Close() `{&] +[s4; -|-|delete this;&] +[s4; -|`}&] +[s4; &] +[s4; -|virtual void LeftDown(Point pos, dword flags) `{&] +[s4; [* -|-|(new MyAppWindow)`->OpenMain();]&] +[s4; -|`}&] +[s4; &] +[s4; -|virtual void Paint(Draw`& w) `{&] +[s4; -|-|w.DrawRect(GetSize(), SWhite);&] +[s4; -|-|w.DrawText(0, 0, `"Click the view area to open next window!`", +Arial(20));&] +[s4; -|`}&] +[s4; &] +[s4; -|MyAppWindow() `{&] +[s4; -|-|Title(`"My multiwindowed application`").Zoomable().Sizeable();&] +[s4; -|`}&] +[s4; `};&] +[s4; &] +[s4; GUI`_APP`_MAIN&] +[s4; `{&] +[s4; [* -|(new MyAppWindow)`->OpenMain();]&] +[s4; [* -|Ctrl`::EventLoop();]&] +[s4; `}&] +[s3; &] +[s3;= +@@image:2609&1714 +ׁ־ˆϙ񯳲긺ꨈȾ·¾ȏɺ +Бࢺܪݝݺթ뗞ݺڥĢȤĢ +Ģ䤒Ģ☟ӳϺݐҳݵ赬能Ҿɤۉ䓐ܗ᳏ +³ҫȱɾվꜰʤŐȤ㒥ӫĈ㴦̸ޥݞ +ۣ܌цҐʀ˶ې𷝰̐׸ʆʻƀĭާ +ص¡۩ՔЩלȤ귗ߊĩᓏΜ +ꐱ悥Ȣԩ؀҈ȕޅ߮ށǢÝ՚ĂƒחҽȌˆ +ݰ䅗ِ脥ӈ؊͐ţвҮ܊ž՛˨ +쨁ڋ٢ȉʺº҆Ş֗ݓ⫖҇ɤͭ +ݶÑčΣǺ伎б܊Ɩýَւێ +ѣ۳›߭Ҝ±܋םԎЗ硰ٙܶߡ̾ڴѭ +ް˸ƿօԶ±ڇيƼꏜԔʬ +ّˁ陡˲烒ǣꭟܬҷ溄ځ将 +ۄˆ⡄ɚſ˃ӑݡ쭩ɛ擱ذ옗 +׹־ʿߓɜ兠ݾٮԝ۲ꓷۤ۠ޗޝ +•񟜶ĝڗ߱Թߡܟ +ѿƤЈН̺ټڼݤ䑊ܔጠےͳЬؐό +î޾ܣ˵Π髮̦䚬 +ꨘ勽ÁԾߩΫϩҧ䳬Ӿ +Нțʐǿ˴ʘȴ̋ѝʉクæ +⢐ݱնЅ훺荺ѼхЮ +ߑ珜ٽ寖֧ҙѻƈ͐ڧ͒ғ +ٱԵʤ҄޵ܿ¥∏썶ўƧԡƗзސφɋ͊؝ +ȿܱ߯̀ԅ¬ǎժՇû +߻ǿʅ鷻юߣ蔗ܓ̡̬讀۷ +ǛĚЀ̶ՊĒ鸻Ҷ Ȋزϯ +𶃨ì˞𮼵Сب䍗ŠΧ +˴šϜïуׇ֒Ԃ̾ΈЗ󒌁ɠӂӼָư +㘬Ơј҅޾ʦ꠲Շ۳֟̀Ŭܦ +ĭ饆ܕȼɐᳺ䍆LJ쎤 +뜙̚嘤̈춍ѰŚԫ⧼ +ط뛡ګ̦΅񙰂áӇIJ֡Շ۸ +ƌѦᒣɫȄíڅچĤȴȿۢŽ֢ +ۓ̕䛄ʝ¯ޮنӛա +תɻ䑨ϰث㤍ڸ¸̸ܸİϓˆ +킦Ҷݖݛ哗Ӌԡ؝Š˄ٟ +ՙîܵɊݘܥ +ϏغЪڴ兡Рᚤѥ嗢ڸŴ҄ò +ѽѸ޸θ뜜㜐횗倚霕 騉նۡƲ١˲̎ݔ +ޭɃ痧խ殌噓ጐȬ򁔙Ѥ +˹Їߙ˧š򠟾Ꜷ﨧ځ͓ݩ֑ +ޡҊҴɽ乘쥙ȱܒͳ͓Ӹ +ڴҴҲׇܸشވ앀׎ؗ頔ퟟ훫겼 +黼焃Ȕ⦆чٸƪч +઺䤑¯ɺꡆ檷Ǣ݁Ђᨏفܵо態Ȟ +㿼㞓螟ؼ욝䚑蚒򍳿ӚĘǾããˍʆޟƦ +ӯʎޥԡIJǿǷۧ鷰ؾճ +؂ך杒ҍʭîὤĈ·͋邒 +󛤵߹ᕡҍԢ﨣㋫䚬 +힠隒ޖռɊƲʒ҈чफٝ +ӹߵΫ笂˯譇ԠѲïܸȅ +갽Ӳ䑑͇ֈɋꪪԁލ +ѵѿԁɋ۴¯אʮŹΥȞݝ +ពߵƽŶ̪ɬ߽۽Ѥӟț毮ҵѭ +ϫ嚝łҎ׳ǽč판Ձ֐ѝ쪃ű۫ +֙ڪ̳ˏ̤ˤךΎ۾ƒ +ԁӬĿ枻ʪѰċҤܾ +†״ð׶ѳ器ĵՓճȨʵâߏ +˷ƗޞɷĂ䪗Ʈٟ΂ҽ맇ƑԠ +ѝ쪃Ѹەχ͕̈߰ﲲĜ׽ο +룎ǨԵ̔왩ӪѤ̩ܳͰꉁ࿚ +̡ɺ𥖁¼폎ޭў൳ч䠢ԇ +ȣ̤ͧ嘙ƨԷȤˉ̴՚Ǜ֦̬ +صᇠᯗՙڕᩲɹ +󃴹˻憯ՇՅꐷĚƮ՗ϯȎ +޺ꅢ݆ݶ΀ӶӶӠӱŠʁɝ +ܔdz߻מҮɻ쎈ۓ㟽׳ԻώŻ㕏Ƣԁ׎ +׎싀ӇĶ׃ÃϏࢨ၅À +‰쳵ȪƪՆʵگׯЬԾ÷̋ +цǿޯޭ瞊ՁޕʣҐӢ߳ʃƹ +ʓͼն֊حퟨǯήθ˫ۭ +⁋Ģ۝򶴑ǫ݊ʸϜմĒˋɿě߆ +݉ꬷ؄仒͌юˮߊ +ҋˋ쇾Ү栺ëա +֩Ԑز始ȷ䐵䊋݈ͭ崗ڸ޴ßͥÏ +Ǣ򨎝ϑНڡ·٦͒ߴӳۂ쨺Н +਺ʶĿܬԤ̈́Āڭ땻ʵ +ꉑڑڑօŐ坶劙֙ŽٓӉ֊ސ͕쏔퀔 +䜯ّԊ畳쯘Ш炣嚃짫ғ׹ +ԝѐ͒ĉǝͳǡ꼐ś쳽蠕虞҈ +؏޻ݴ͊獒՞ԽݑќȽ +ԝԑٚ兹̾ؾܣ +غڋҶŃʜݳϛɓƕŰۅǮܸڰ +ۮ˝҃ˮĖś؞ׇɻ˜҄ϟ +ۖ촊ۈפݺˋք⩜҂Ֆȏ +ҷۻ׍낮䧇͕Ŏдҥ +Ŋ矯٩߅ﳀиɰҝ͊DžНՇЈ +ػŗׁ䬵Ѣぞ̳ɨ̝ÖڒˡᮼނҨع㓿灅 +ܼ욡¡̶˳؞ԇՁΆב̞ߺ +ÝŃᅋ蒁҂͵ٙ̇ڜݟѫٞݨ +ݟ좫蚔⢀؀ڞĦ +᷊ѡ̍ϳ陰ȝܼݖ˳ڲНƦ +筙否ײ캅艍֟ЍDzՒǴ׬ +턾疘NjЙŽֿΒ +ॗӭɬ춤܊읣ѭ̥ң۩ܫܡƇ֟҇ȹó +͏لԐů鰗ƥԽӇ˩Ϥʓ +҃ڦÑ޵ȁб٬ҟ鳄只 +輳Ϸ阕಄ڝ͓䐄ȝ +邐ˢǑƥȬƱ춐ߺĈҼΊӼӯα +ƀבڌĢѲʒĄƣȫ䆋ѻƠ +ɏۊɐӈįߣԁŔ֍Ű֐ʵǯ +ԊҕӚؤȀ匚͗܊蓌ݞ̈Ȑ󑁒Ԭ +ͤ҂ŗ’ܢˊ٩̆ʋˋЌ˽呿 +ɀ֓ш쯫붗ɓ𘠻ƒʖʠ˖ς +ij፱Յ˃ׇˁ⤔릖ۭ瑄 +׬򋞇ր蘰廮箿ƣߓ󑬇ޣ雮ߤÄ +ӝЗ粓ܶǿա̾馵ϴѭɰް˸ƿ +֏ԄږيƬʸԔʬّ˷陡β +ꭟܬӳߝ΃퀁߬򃂭տФҟé +̹֔Ŕۼ͔ɘƘʘγ̶Կωȍߴ· +򂐌䮫߽ڗꎜى۲ůүΊߑק͚샆 +ؖхחީݻџ뮓Έԡժ +ǫӍ̋̑덋ˍˍ醟ѕdžՇ +ݷݓ瓛Ɏۜݬ٤Ȋܓ޿䷇Ǥύ +זӪӪӽ˂߾ڌȟѝߔԇ斣䅩ƈ֙ +ȠڽִاŸ睯݌󮸈ق +ᰭŀھԽɻуЇ腺ΟϾϑ +Ο잂᪃󣕣ӌΛٕϚ㌳㍳ +˃őӈФҤЕ˲ȃӳϷ +⎅Ӓمφٲۥǐ㈭씷ڠ +ׁ팡ٍԹÔͳ܌أŚ +LJ٦䄪ŭɅÿΜȃʍˍ¶Ρ +썋م‘ߚžۋѬյݧ֐ݧю +ÞԸ֖訅Ɛݟ̔朥ݴٱ¸ȗ +ѧն؍͢Ɨאۻڔ౳ܘ靛׻ͫ¤ +ܴ䃐蒈숸ȌζׇǶٵٲ +ɜ휚嘩̈⊍춍Ѡԫ䧼طګ +̦܁΅á߅Ƭ‚Вłܵϣݕɿ¾ +蓹߲韨âߡ뢞ъúʿ +극²Žќ潡ו殢܋鍻홫ٴѫȲ +؂괆Ƹ휀ᜓ朝昛鄢傑تĨ١˳ +޵哗Ӌԡ؝ŏ˄̟×ՙф +îŎ͢Ɋ蚚𪃨ݘܥؘЪڴ +兡Рᚃꍊ嗢ɽڸŕՄòѽѸ޸θ͒뜜㜐 +嚓需ᚕ騉նƲ١ײ׎ݔޝŴί +睫ۘܘ˳愘⚱䢂ȃĬʫˠΡϖ +ľ䒯ߴؚئҺ̑‹ʃ +ȃٳ϶楘Ǜͮѫњȵϯ +鄨تफ豐솢ڡۿܷѭԀ֑ψ̘ +҇ٸƪׇ쮥ġ¯ +ɏǢ݁ЂߨفаȞΏ㞓螟ؼ +욝䚑蚒򍳏ӚĘããƕȆڰӯʎޛ +ԡIJǿǷۧʷؾ䲋񒬁ީ +۫邷⻤ΖÂ̈́ڦ٦ߴ݆˯ɿ¾˔ʤ֑ +Ӧɟíݞ̻垙잿ͰՍњ֍ +ꞷؤżټټ֑̌۳ȝʜʷ +؄Ƣ߂ۏʀŠ𠒿ܰˢŽᒼϿÏʜנ +ײʓ䨙ң㴓ЇǏՐ쫷DžЅ +Ѵ勽ʰګ獹՜갱ʥ +誷僘ŕҫݗ׽Ԕބ쪦Ԫʹ +ʜ܈˴ɬ״ǫ焀Ǝϸԝԫ㊉祐Е +Ļևܓڦ۹ĵè +觡ǡҝҹߡӴȡА٧魡򅞓Ǣ +ߥçصƝܚӪݒǧ֏݅Ӈ¨Ĉ胣پͪ +ьѫԏޟߧӃ奼ቅՁ܇ +Ǜ÷ȷطٙې㎑ާӘϚØꩉճ +ժʮҽꉬƦՌʨݽǯ؀ՃɗþĢ +ˍؼ󬖬㞼ưݎ܄ࡘᯑɘ咑 +Ӳ̣閽ׇٞә̮Ԅת㓫ƦԍӮ +ͯ̿—䟷Л⩮򩮢׷γ +ՠޣᎂްۖٙ˯ʄϴׄ˧ԇ񃯟Ɣє +הɏ쩛չƆ雯ݕ +򮠤ǫ¶񊇣뇇ՁؗѦ̠ +򅰒εЀĞÂȖdž +껑ԝ盎ԸôԚѫڸγㅭ +ʝƦᩦ銂ՈהТһ鶌љ˿ז޳ijվ +ە昻ʌǍʷљʒ⺨ޅ֚ݪװ㋧ߪ߹ +Óեːϩቱ磖܈ۼ㽅ڿâ +ӽБĢۉلӐ܄ͥѝȺǩøݞӈ +ȹ෈ȝӁŁԇĄʏĖՖ +ɠ꺕ڍ˺ߏ輽ԇͥÏ򨎝ϲ +НкѺ󠇝󘪃НꚂȠ՚ +غՁ鵥ةȲŠڭվ轋ݏԵȂʈ§⟶ۜ +̔ҭڴ鄺Ɂ䫯Ȕݎ٬ꅾź +Ԃ论톸ӕԞ҉џ۹Դִ +엖ʫ蚅ၬڤɟըī鳧ڝꢁ +ԡ쪏ϳݍͱꈱӊ򳛅ώż՘ρ +鄦ˋЅɏǺ״˴ؓӘϤ +Ŭ±҆ι޻්ށΡ̈́ݗԺܷ +܊݊ϣ񳿴ǸƗݶ•Ҧ룱Ϋ +㱴Ũ֬ʙۅʳ̷ǧ܎ż +ԇδ쩫櫼ȵ׷ӃǮ庨ިʝ•梅 +䜗ՏΤоӃݜ퐁ͻ縣ֽẀ +УÖ驙؂ׇݼָ̕ǫ֊叫ᬠǓͳ惃 +Ҹ́ؼΣ爅ĀꨀᏚ +܈釪ΨϛهǦ⟟ +«蔼н̑偽誖艨ꇆϒޕѸ욵⫢ح +ۑްچΓ៞ȇϷŏ컶۞ԇț٠ +ƦԾϓ戞ш㍪ωΓӥٴђΔҞˮ +󴀝˭怪ʵ宯ڹ˕â +ƭ޹’ޢ榈ΐʽβ˫Ә˷Ώ +ǿܣԂͺҳč̂ξػ򚖤ڦÏ󐩽 +Ų楘֊٫قӻδ۴ +̊ټ筃Н߁ÁԇėՁꄪˀꋀ誠 +ՁѥНꩀ΀ԇЍհǞҥɂܵϿͶ +ճ̀쒼鿷䒕ӍŸ +񓄏˛݋䴪ΚاȠɈ +ʗˈɁ⅟ĢĜך٫͌ʩ×ۂ +׽‰ʥе產ԡȎҴ̚Ӆ +džŭεƵΕɦ넥ȁάڍկՠĝƝ +ͯȕɌבȤ흹޳ᤨӺТ޲ȵܿ +ԇ鞻ʁդЬʣǂԈЂ +տւ񫪃ŨЀ۰țί뮨̈ۍߺٲ +‰ŕيŢϜޓЀùѫ䧐 +̰҆ꇫޏڈóퟣҀґ +Ę妏齦֮枫۲扢ـԝĿѝ +ϣĬӕԜҏİքչƍֵް +촆맧ջׯڣǣ庒ڌ٘ޖ㽍 +账˦Ѻꘪݰۈᝑǖޙ +хȼپաٛד՚úԽʈ +餶ְôꇅ׽퉹ǐęʻڜ +᳌Ն̨݌Х鯖Ͽȃꠌá翴 +ۃϾ򦇬յر̟ߺᆞƍ˛ð +ۿӷîÿ݌ش˂̉ +Ѽߚ󅣟ܛȋԝ߇ꅠϾ呜Ο +잂Ձ鉱¬䖛í҃ܿގɟ󾟵 +ǟꔨЈ褶Ҥի班ڳނ喼ص +ƸԇǠӡ˞ա̏«ǚ +ǚޮ$̷ًԾϯᵧ +؃ȓªȇðʧ˧ؼݼƹ҇ુ +Ã๿ԴĠ÷ÏǿǮάƋ̭ +у㎎մ䏣̕ޫȿƒ̯߽ +ᵧ˟ⷺ뉍ÅǴ㜗ሟʗϝԾԗؿ㗺ٲƼ +ΒӸ޺©뢇公ҫďô +쫄ΨǏǪٳ˛܃ʳҚƷԏߖ +ճև沄⾣碙Ǽ֧ +ﳨ҇ɝȏ̳Ȩߜ꒩밉ڙɶ +Džަՠ֢ȷҐڌԓƃ؇进ִ +ۜɲ٦ǼЫչۜˑݜ˜ލҿìٵ +սѮ߽ǝӔ£켕ØȔհ蠚얾 +Ɩ񏖍߯ߧԁꠀ߮喅ɡ˶ݰ +ʣ㗽ƟǿȂݖۄ烷͆ڥը +ʐɑȕȄߛڤ؁ّʾ⪤ǧĝȄ +פӪڗÝкޒ׉뼻鐆ݥĕ +걃øĚœ“ +Ľޑ脙閿ٴӌӪ▌ӕ׸ߪƼԺ +ƼȿՏˇػܓꠇ˶嗺˹﷫䇒ȞŦ +ˋٶؿЮ̀ϺѤ؆׮ +߾ឭց۟ռˬٱتǶݫ۾؃̠ +Ԏߺ⋿ˑݟ󩝕ݷä톉ãԿ釰Ú +럘ۧ۴Έ앛㏠ʧױɔġ¥ƖܿʱԎ +ߍީսڲLj̒ϖԬσ⺡䥑 +чÃ܈ŊƵڥگʻ֞ğˎづȚ徰 +Ǯ̋КíѮݹӄֿԍп +޵៴ᄾ昁⣓Ɠʟ뮚 +ؾȊϔ㪀ԇǘךѨħ +ϼĻƊܿɛʳξˋد힏̗ٲ +ؕњߴͭˈݖЭ𨺱Ė͇㑷 +ހ޽ȷظ῱ֿ샳˫ӥݯߓ +ׯܳٲؘλ߶Š򊨃Ғޓ +ѢꎷЛȷʖد +ɷۀ٘́ޅЅڗжؘô¯ +א܋ˑݟՍ᷷ӳ +阞ӿӁ⣰Ğҩޱ뵈֌ +߿ƆݦᅎНՇ·ëͩįŝǠ +Đ綪֠ۛݹ꒏懦ƻ +񓭂׾ՙ˱ӯʫٗ򓵫߻ǾƋ +íڐܾˆ״ʲ拊鍶κߎܶ۹ +ݾ𠛑ݪ䠸㟩ݑХܞҴ +𻪆װՇ˲Μזգ䶑ŝ硙 +뿪̢镒熞腿䟳МҷۇϽӢ +Ʀ聯ٻء㯫΢׏ϒɎѲô㧻 +˗ؐ􊖖Ǣݟ㴽ތ› +븿ٞꗣŅ׫㗦۶׾ +̸񡏣ۿׯ㷐ۗꠀן򙺀֟ԧۂ +Ҍ̿DZܾɒϘԿו곾מ +⃯Ϳݪؘዐո聋ݸ󥓞 +򗇪α˽λϣԠʒ׏Ņʂ +ǣѝÊߞϸϐ㳘ٵ繞ή +ݳڿՍ桱䴶Ûϕտĉڟݒ۩ +휙糯݀ݿϟڱԇՌאİС +쯭ݫݍެꓓ񚟆Î탿 +׎꨺߃ϻ߿ +ƽɾՇŝʘ׉ɢ֪Ӈʺ躃 +୞Ԃϲȑϳσ뎛ׂ +򟺷ҫҰȟӒӣ֝׿Эʽꃡ̤ՒՀͤԣ +Ϻ쐑賠ۆܢײ䲡껏 +Бൿ֟Ǣ‡չڨàÓҽ΄ނ +ޤϬЩϿ׻ėф¨սȻȁՁН +Άԇޞ߭ҩ˖ҋ䐵݊խ݈崯ڲޜć +ʂ⧨ѐìǃՁԇ×Ŭ릉 +ٝ㨎ԡߑȃ︸Ы֊񨎷ÎН͉҇֊Ғ +т֫Լ轋ʒݏ׵Ȃ§붲ۜ̔ڴӇ鄺Ɂ +Ȕݎ٬ꅾʄź̔Ԃ̮ +ӕԞ҉џ׻۹˳ߝĦƘْ̳ƆЄӸ +ڇ蓂աՓꭂĊӃʚ១͞ζ׮ّѲϕӅ戺ý +Ϡ˫ԬӈDŽ퇶씼ᘽϧӏ貉˪˃ +هݼЉ陏ۊА礄ˋ׶끵ѿږЂড়֮ү +Ҩȕ̐玭ϢϭӘׇۣ +ɻ˜҄ϓۖϛ촊ۈשݺ֏˪ք⋩ +҂Ֆȏҷ݊̎ۻϞٴ +ݮ䧇͕кҥހŊ矯٩ɾ߅иɹ +ȡ͊뇦ເН҇郈ު܇܄ďȲ +뉯ۊ۹ʡ܅醑݊뇦 +Н҇ޛѫ㄂˴΂Ġ˘Ȭ +申鶎ǭߞۖãù٣Ω餎ﻰǮ֊ +㈀œ֞۱Ħԇ᷊ϳ +険񓱅ȝݖ˳ڲ҇Ʀ狭숯ڼ׈œ +ē񬛱幡яત牁ͮٹރϬ펖؈Δ +әюݴԝΒܥǭɬꤺ܊쑝ѭ +۩ܫܡ󇽑֟҇ȹ鋎͛لů鰪ƥ +ɽ٨іӎϒ̟ɝÐِ˛ތäڵ̇ +͑ٲ筰箉áΦɝӰ籩޸ +㟷֎ǐЖᯨʀН݈ԇԺН +݂ԇėՁـԇ𶠺ՂНΆԇ +烁НۄՁ΄܆ꠀԈ𪶠ՁН +ΆԇಓꯨΆԇ烪НՁ +ـԇ𶠺Ά﴾Ѫԇ𶠺Ձ +ΆԇᜪʕՁНꀔΆԇ +烪؝յ΄Ђ𶠺ՁНꀔΆ +ԇȈ烪偪𶠺ՁМΆԇ +ĄՠՁНΆԇ烪Н +ՁᛪНՁـԈ𪶠ՁН +чНΆԇ烪НՁـԇ +ɝүҨĐա§Ձևðԇٴڝƹꂒ +ЅĐ΀НՁ˨ɏԇĄ򒪃²ՂН +€ΆԈ舧НՁ˨ɀ堥ԇ򒪃 +𲠺ՁНꩀΆԇНՁ񨎈ɀ +ԇ䰨ÅՃ€ΆԈ舧НՁ˨ɀ堥ԇ +򒪃‚݇ϴ󒪤𲠺ՁНΆԇ +НՁ߆ꀔ܀Πԇ×НݓՁ˨ɀ +ԇ򒉪ΆԇНՁ˨ +ԇꅐՁޛ𗞨܈ГաՁ +ΆԇНŠȁ +ҠŝʀȁҠк +ʅȁ籂՝ʁħՁՁНЀŠԇ +ՁӝԞ׺ННŠԇԇՁՁЩНՁ +Š΅ѝԈȟҠԐ󨎈ք‰ +΢ՃīăʁՁННŠԇ؇ʁՁԇߢ +ԇՁՁНЀŠԇՁՁÎрԇԇ +ՁՁЀНԇñĢߎ +畩킒הͱс힃ϱۇح +ˆٷ榞𛝶þҞց̀ +ϛНȚҹĢȤĢȤĢȤĢȤĢș +&] +[s3; &] +[s2; 7. Menu&] +[s3; 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.&] +[s3; &] +[s4; #include &] +[s4; &] +[s4; struct MyAppWindow : TopWindow `{&] +[s4; [* -|MenuBar menu;]&] +[s4; &] +[s4; -|void Exit() `{&] +[s4; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] +[s4; -|-|-|Break();&] +[s4; -|`}&] +[s4; -|&] +[s4; [* -|void SubMenu(Bar`& bar) `{]&] +[s4; [* -|-|bar.Add(`"Exit`", THISBACK(Exit));]&] +[s4; [* -|`}]&] +[s4; [* -|]&] +[s4; [* -|void MainMenu(Bar`& bar) `{]&] +[s4; [* -|-|bar.Add(`"Menu`", THISBACK(SubMenu));]&] +[s4; [* -|`}]&] +[s4;* &] +[s4; [* -|typedef MyAppWindow CLASSNAME;]&] +[s4; &] +[s4; -|MyAppWindow() `{&] +[s4; -|-|Title(`"My application with menu`").Sizeable();&] +[s4; [* -|-|AddFrame(menu);]&] +[s4; [* -|-|menu.Set(THISBACK(MainMenu));]&] +[s4; -|`}&] +[s4; `};&] +[s4; &] +[s4; GUI`_APP`_MAIN&] +[s4; `{&] +[s4; -|MyAppWindow app;&] +[s4; -|app.Run();&] +[s4; `}&] +[s3; &] +[s3;= +@@image:1240&949 +흉Ԕdz쳠߶ŎԂùżΏᬯ׫ +ݥǒ္칔π߿ꢻӭʼn±駮 +ݥīйˬ㦦麒ʩФ靏⨪ИÀܨ +쀁ی̿㹴֋ڿψ֡냒ԭ +іԯÇĀ΂ժĭ +͹ͅع梋殩λոԤȏӢǎ +Ǖɯͭ˻ϻ…ʅϙၘ֋ȅ⼷Є +ډΙ֩ܥԄ́Āޥ +ԗɣ倍ХʹـփЭυ֌ +ɖ՟Ģժʞز梙菰竮󞇬 +߱Ӵ֒Ѫ㷕ƪӍΌ̏č͉ԧ +͒ϻͬͺօ湆нӟۚ͑ք閔ÍŲ恏ݲ¿ +ߛٻɳѴłܘΧՔ̝ +؞ֿ֦ϦהԿߟЮүեǪ藥ˍ +ʀӞ۟뗴ρ絥ץޜݛٖٜ߉ѥǨ姥飕 +ɜޞϡŸŪᴟݑՆɣʀĬҼ +ʋ΍̜Ӳ߾ٙ伴Љ篜Âܲε߻ +ﱢԥɋ¦󫏀̰ɲ缜ٺס枦 +ө؁ޞޝ㚘Ͻćή٦Ϟ֮γߚÆ÷Ē +ݼɂʶʙɍɾœ糑֎ +닊˽؝׉Ǫ饡књȤʗ쎕ܻŃ߾ +鳨ްⱦȞգ٢񔏢އȤϣαԃۜշȐ +Ր¨ƙ̡謦ޠ躊̕įۥʬ׳Śǡɻ +ޅޅ諡ܒ͋ʤۘɜߩރ염ݏ̘ݞ +ں͟ߕ𝰎̍ށ +Ȇֵҟٰ츧݁뢞٪X׀ +֞Ù׎ɦے䶧ΉÏÉ︚ҜŨ +֜Ѻˠ񃢒ؠ틕跄ֽï˓˒ +ش˒Ջߋ應Ѧ֥Ł̛ӦҡȐۊՙɄ +Ł䙰כםˉÎ淠Аሴøƽ +阖Ǡޣߧˉ˜Ԭʫ⚃ږɾ +۾􁙲ں灧׻ֽͼ܂ۘ˽ +ȳ΢֝Ď޹䅭⊟ڤ¼ʴɽҥϖߚ +ѾԚޜ굼ű¾翏ꉋѝʢ݉ +ᕗ̅ݯܕÀϓϤ͏ڭ݃Ț˞ҷ +٦ë莚۷뻙ۢڀܕըܔۂ튿퇊 +νٜ࢘ɍձϭͼˍȧִϥϭ +㉒̛ի߂υ떴镧 +ךưϏќتɎøՔΖԍǪ腍Ձ֦ߓڈ +ߡ퍽۝⹴Ɏ͟Լɛɝ珕ѝدӼ +瀴ꖽƞѯ±ڇ睢钔æ煰€ܦб +͇ēӪŇڢɕҗӔҵ͜険ʟÏę̐Бۙ +칉䫙ҭᘐ۬ѐ̗ᴝ֘ҥ챪 +Ӟԯק̍蛓ލ둾䈇ΩÇ +ҵΙؚśӗꮵ܇̓މֲњڼ۵鼹 +ϐԝՍƵܒИŖʤ˹ +͇߇مӉ¿ϗ↔̟ύթ͋ѧӇǨ揺ɽ +׍ڵա彇ע倩ԜۂȎߏ€们 +ֿ϶ƣжŁϿ棞Ѽɴʍɀߛ裋ܖ̵ +ϗɇɽܘɗېԈݐ䂽λ﯁Ҥ +Ȏ֤͞МЇ좻۪ڝՉմ͡ +ͫ߿Πʊ꥘λ̧⻬菜½Åúޞˁ +ߙ֗߇ĻΝϥ㊢釄Ƅɇλվ +́󙃟߳폴ރЏԮ۪ܡҰ +ـϯ셎瞴ʽ뛾ʞǶɫɗ +™컄㗎ѝү榗ڡî󢺂ǵ +Ƒ҇͐ڢӢԄ҈ί؋̮ +ЄDŽ՘㱡։ۘݞʮΊ +٠ڇڢ爋񌤟ϑ +佼֝䉡ɽވފ빸⥭͍ݏ闇 +󩄅ʻŰڧϑϑϑ񼵳鮨Ĩʵ +翝ុԯ󁴟ա񇎌ܴ +ښֳŧ󁴟߶ч湸 +ߒ˷򞛋騴ؿ燻蹋֢߂촟ģǝÍ +֦Αϟߓ笀瞣ΉΎ˶܉ܷ +߳๲ۓ怤ي͢ͱãר +І垤Ј܀䬼ɄЪ󄅚 +Є󄪅󅄅ߩψϑϑǀې؀؀ǀ؀؀ +؀؀؀؀؀ǀ؀؀؀؀؀؀؀ǀ؀؀؀؀؀ +؀؀יǜϑ熽ؠՄ +󄅥󄅌爓欀ޅǜၑᢁۊę +ϑϑϑӄϟ΍󎰀阰ª‚‚ +ՄКǕ熽؀àۚϑ災؀ +؀؀ǀ؀؀؀؀߃Ɯϓս饐 +ןµ򤳐ɀؗ湷Ǯζڒǵ΅͹ +ˈό샶޺䅼ϊޕԺֶζ +Œᄓθ޹΁ + +@@image:1240&964 +흉Ԕף۝̤㒓٦▨ĕčŨߑ͢ +ƸģӠ߻襺ުԹ׭ϪɁЁ +̞ĕΨʅɫӂ̓Ҩ݆τѐԵÌˑҊŦĉ +Ƭώơ􍬛ƕȾމ򫢾ɓԈ񽀫Ձ +иɦ׳؎ԯ᳛ڦŶΛШݠᐛ +䦚ܚ՗όٕༀڃ١엌唻ۦكݏŬ +Ͼˮފޙ˩ʢ쇌ϏÖ󩃒 +㘺ҟՈċʱϺޚɝ +될썐˾͉뚅肖ꆪ؋ِϛ +Ƨ؛龃ūʒ։°Ԣ˒ +噱¯؀硂ǽꭌǙDŽ +뛊φřھ呛䊢ǙŁϋ̹ܮޫޮ +񜫍甓肼՛φڶΒޥҒÜՔŒɔɽ +˫ؔͼα˲˲ˊהʄⰼהޫ +ƂӞʾɃ繋ܱՁ͢ջחէó됁 +˒„ϪڀԏԧȪϓ֖Ѽܤ +󼶔ÿ㋻֯ϏٗŐɇۉᲴɊ +퉗Ɨʊ׼ݣƈأ𿞗꼔ޞꀵ +ɔ܎䫶ܥdz瓞ߐ +ϵϭЮư͙ꇬűőͥ頹̑܆ˀ +؝ܓΔ΋ӸЎ×ыʇϵȎςҦ촖 +㌂Ǧ̵܎Ў֩뤛Ḃٵӯܩ͍߻ +Βʎ㔠ܴ藧ܐ䃞ᘙƼ߇񜦅ɤ +ËڦϥȒςԹПƙ弔˔֌ +٣ǘ٢ǠХӪ𲁑ƽؚۤ +󅇽ڞу򇏴ıűѲќȷƴڐ +Ӟֶͳߠޮ᫐ɘǂ񈀗Ԇ҇ǒǝ螳 +ƙ̵ނ۫ɵ煨ڴΑ󓞯膿 +Ӎ԰̔ٝߗǼӊ芷ʸܢ봶ʄ +ݬɥܸΤȅѹ۷ŷƈУŋ +˪􏍻膽񀹼ˎєꡫտЉ՞̖ +ƂúԜ㮃̵ۈ룙ᆸʰϷܒ߫ʖĬ +ġ选ȖȌƉċΏ򏢾ÓۥܖɊƱʵס +Ӭĸշگяͬ䮁ވ +㳂Ь悲㋷߷򯢍Ϋ˞򜁩ۭ̔볹 +ۅ־ޔ٘۵۽͑Нƭ풫ܩ +ɉصޣɃń٥⒥񘋎AĮĝϳ +Ŀ̤ݦČ톗؀ܦɖ붪Ѭ䥸⹭ +ޜ߅㦖¼駓¤慺绯壮򸼺И +ĜߞǟոڔʢȢʢה’Â˂ +¥ۻ蟘ߕߠǯħǙقܦ̌Ӝ +ŊԪĬӮ٤◢ܽ۽Ԧ֘ +ʇլݜ߯􍀯ڒ̔熤׊֊ӑɣ޼ +񘌾ɼܿǮ֦歎ߚ +ΟҕҜ߳ݾ۶ܼ촘ΉŜȾ +ϐȾóۤ˻ӧªӻ͎ׄγ斆ٶϫ +МՁ҅ʎ؇缤èދԜĴ긡紐ߪ +ܙ̹݆Ղɵ傏ԋՈ֣𛦎IJ +٬ݐѝ۫ԠݦȨ̌Ӟҙ׌״ +ῗދ޽קˑϤֶ۠ն鈗ĉ˖ۗ̃ڍ؆ +ր՘ڥލ˄؞ԁշݗѽ񍖥ОÌҜ +Ǭ΄ؒŸȄГݶφʠ嬈񘠕̾᳁ŀ +̗ף嘓௥ˁ̷ݽóڅ +ѓ棚ͥҫ˄寢ɋ״Ǡ獀Βۨμ +Ĝ̓Ԧסفś̅㣷Dž˚赬‚ +ѝ݁̿Ώީսۭň焢ф +頙Ƚ֪ԴȶΜȧ닕򣟺򲯤 +ϐ粃Ϛ׮Žȶԃͻڟ吖ڬ +񪏜̍膢ߡԳǿωȹ +ã҆å޷ەҸဪ²ړц҆Ψ +ڣܽ𝇾Ԍ잱龷ҽ󶴫 +ٱ󕡞ъ峔Ӏɺœŵ·ϡ騭͗ +ܫΆߛט⍦ʔڋ߮Ԙ٘߾ʽЬڬ͟ +ѐ˴ܺ䓹˼ׯʃɞɋҖ +ҭ였ǕɯߙʯѵרةՉꚧ귒ĭ߻ۀ +曫˶܇ۨ挗͜򁴒҉ +膒۠֜Շ׆Æعþ깲򮚇ϡ +ۆݟӕ꺠¿΍ǵ뿌瓥ջ•ȏٍ׋ +ĪԈЮ²ꞼЦ퍸ֺݳ +꽆嶕ݠΣ榼Ǚ݄Ȍɧ㶃ɛךׇܴੵ֘ +Հ◕ؽŞցǞ˱袲ٌ˧ݽµק +ɿJ빜ޮӛ +ãǟƠѩ㲱ԤҭϦ풋ټ +ֆ凍։ٻ蒐۔ŞםӔ˧澋Ͷܞ +ɓϛԎܚ̯ʄԻഷϹ̳ +ŋΘľڦ߃ӳټኳĿ𣅧ʩ׸ +빬’҅Γٚ +ެ󱖁áܞχܷռ +؊ɽې֬򴕅󌼹 +ǧ芔ឲ뇧ߟˁ߲ɀ؋ƾ +ۈ߾Տ݈釮ɋ姷߹ +ʼ࿔ϷǞȟ󹟂䘬 +搤稹ȺОܿƫԟÞݿ磛 +з﷞ﯧ܎܆ǀ迓ݎлꦌ +ߎ㭺ك郓ꧼʑβ׀輧 +ܬξЬתꠚ˩݆Ƀ䓞џ݇ +ԇϭ֝׉ﹻ޺˯޻⛽Ϗӣ +ٳȧ᣿ڎ寿ߏ̛ѳۙ +Ьƫӯ羚ދڏݯܸ¾ʟɋ +ݧμ⹞ωӗׁ↾ִ흟鹾 +ۿߵބс皥ⴎۂ鷑Żó +օͶ茧Ɖ܇ԯƿۥǢȟځվα +ܒ鵖ܳϣՕۍƌ܆죇 +Ԟáؕ˂ֲԡўӜ깅礔Ӝ깝ݤ‡甾 +ς㍌Ҋωߚހ઼ş´ਞǸ +ʚΜߴՂ۝ޫ٥թق󖾹ڿŢ +ۮʧҩѱӧøѨߙ糶 +Ɂ盶ק׼Ե˻ָߤީ +󳫖ϻ‹ڐߍ΄ƃ؞󿜏΢¾ɭ +Է󚌚⽮ݟܤۺ짏ﱵŎ +Դ酪孥Ӟƽ”ܲ۬禱͒穳 +ﻟյߓݧ٠ɲłŜɳ» +ϭؘژǔܾ؇㘎ҝǬΰ曹ݛ© +辔ՓӌNjԪϩϛߨοɼ +甾깅ϩ󊟠†甾깅ϩ甾 +甧󊟰罩ý܏Ή잚ݏۅ +Ά˔﷮ҪЧ +ޚ͉ϼڃ߼򤭝砭쮹βʴə +𼵭ۖɀϳ̲κɷ +ʜؼϯȼ߾ȿӉ׳ι۷̮Ƈ떇 +Η߿٠Řيֲ΅Ҏ߇ +н鶬ƢϭҘܱՉΆ +Ֆː؄盃ЪԍŶ榦ިږꖂ +Ƣ懍Ō˭ɲϛԊƹৰ罍ܦŭ +ĝ׫͖̓ؿ⧯Dz֩ϫלާ +Ά罷Ά璽Ȍӂ껧ەϵϥ瀫˺ +àӷش⹻瀫㬵쿃ƿݞ΃ܷΓ +ޜڱūܺϯڞݽŁ܂ֵ݋޶ҁ +ВŶϩˡ؆깅ɱǫЬս +Ԉ눩رߞ׷洹ﹰ +ڊš‡簔깅ϩ󊟠‡簔깅ϩ +󊟠‡簔깅ϩღϮªꮔԹŶϓܔ琤 +Мϡ¡Ё +&] +[s0; &] +[s2; 8. Context menu&] +[s3; 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:&] +[s3; &] +[s4; #include &] +[s4; &] +[s4; struct MyAppWindow : TopWindow `{&] +[s4; -|MenuBar menu;&] +[s4; &] +[s4; -|void Exit() `{&] +[s4; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] +[s4; -|-|-|Break();&] +[s4; -|`}&] +[s4; -|&] +[s4; -|void LocalMenu(Bar`& bar) `{&] +[s4; -|-|bar.Add(`"Exit`", THISBACK(Exit));&] +[s4; -|`}&] +[s4; &] +[s4; -|void RightDown(Point, dword) `{&] +[s4; [* -|-|MenuBar`::Execute(THISBACK(LocalMenu));]&] +[s4; -|`}&] +[s4; &] +[s4; -|typedef MyAppWindow CLASSNAME;&] +[s4; &] +[s4; -|MyAppWindow() `{&] +[s4; -|-|Title(`"My application with local menu`").Sizeable();&] +[s4; -|`}&] +[s4; `};&] +[s4; &] +[s4; GUI`_APP`_MAIN&] +[s4; `{&] +[s4; -|MyAppWindow app;&] +[s4; -|app.Run();&] +[s4; `}&] +[s4; &] +[s3;= +@@image:1349&640 +흉ԔǷ۲ِ鼖ż˹ļΏᬯʼn׫ +ˤ͛ɶ˜ގŋ߁ǗƦ +ܥĖʙ溂ӭӜ妫ڒڅФ뜂鲿񔔥Ʃ̸ +˺߸㱴БۤՏ狞ݔڃ +󠫃ݗִ٘񞥅͜ټҨȄ̫˻ +рփ̻̈́翙زڅՃ̲ťҀ򐅆͡ +橽ڝƝԻܭƤֳ̬ۈĀŦ، +Ɗᨘڍ󤀬ع̑ٞ򜴺ɇȚ +ẋϖΗࢗԑɝƭ䂢؈萄Ճ˂́↊ +ͰͩňҢߩ߽ÉۋĊӃ엳šϐϾ̑ +ΫΞꥲ挲΄żᠷ +浥׉ӆﲦÄȔҚ䉤¦ԑҕֿ߱ +ۙڗڷޑų٥񬲪㒢Ô̙썿ˠ詗ʢ +ꣀĔ֎ĔڴֿͪٚɣȂ +φόӀ芣Ŕȍ۪ݺ˒՞ىꕸƔɈߪƾ +Έ΍㍬ɂム̹ڝހ󿧱˓ +ÉǗϘƃϝ΅˒ܜݡԔЁɋ +թˤףÿց𛣥̽참™ˠ +°⇋ď戊̱ґܵ㱻Ӫ֗ҳڃ򋴞Ҥ蜶դ +ƏӶነﳎ뚿¦ݿӬ̉̊̚񮭛ܯ㣻ď +Ŧ렺ɕԩӈШݯС̣ԸԢ +֤ޘ˶稗ĔĈхĈΔÅň +ֻ̫̪ȂҺ玌ʞε͚ +ثɡݘ΋쌅ܭͅш컵Ӡˁ +ПˆۗΔف奨֛늸˱מӫȟã詩Ë +ʻܲŚ؆ƣֶٱ݁߈ŝ +ǝէƠʾȿ嵛θχђĺ򈟢 +负▶ֿؐǀ㿢޳ͦԃ +ΥȈШ٢̩ϞγɳٽɵǞư̏ϲ +צ䊝ڶᮊÀ˵ڽߖǾڮŪѢ +ܺ٥ƻ﫺øĚ㞛шǩ똓ӿǶ܂ +쾾֑ף瘲ῡٳԌÞ㐶ݔꄄݐ +ӄꃗʝʛŔߡ̉㇕ӼԄնș¯ +ۿ߸ə䳣ɼ֝ͼ홆͊ɥˤњ +ߣ۷՘Җֺͫאܱ +ﭚ͕ӭەߌƂ˘Ȭݖۡǐ +̺̈́ž읱Ӱܯڔɬڦȯ虴Ԕ۹ +Γׄ苔ޤިĝԋ։ӑѓд +Ң⊀ĒԓӗӰֹϯʹϝʎȢ +ٛ壞эݳ؝Ս˽Ҿ腍 +䭨԰퇔ٿ܇ٶӱٺᮈȍݠرˌ +ѭїݪӞܼѵȴ׽Θ⳵ݴѝޅӬԓ +븦Ԏꤰҝǵπԭ͘签ٔ +Ŵ񑶡ѷѧҞíԚܯ姦򒞓ذҭ +荥Ȋߠ䟟Ƿ²͛ݳÌ剪 +ʠ눯ݔ֕څсʒДϕ줒 +ޥփϚҔǜ닙寧ڋ +ش읧ݕʴٚ˯‰ب֌ٙ叀 +冢ͭ˝إ󀯎܈󌑥řʋѥ͏ϝЅ҃ +ڹꈷʨ쫛˴ꖊܗ础Ş +Ȍǚ֚߾ȱȑ̙̙Ԥ¡ԋ׆ +Č؎ֽߜ×ɗ놅ظ芓ҼԞŒ +Ұ߾տલу΅҆ԄǹÚӨάĔҐؚ +˂ۗȣ޵䛻ʤިބ߼ӕ +ޗ׋Ü㎌ɇ޺БŽјԚ +粵úԱݥ͑ǦЭꍁ +ߨހňĶ썟־ܦܲۇӏѫ +ãީӈ叻êɫϪ鵄с逢ĀĖƸ +Ҥϩ߹ع〽ʋŠȗٷ㌝И؎Ƙ݋ +ȞŠ狨яԬﳳ񥶐řÄ缕є +Ґœ󽈩ӐĊ𿃆ӂʏ؅쁦 +ҔДӐĆӐĜӌӐĊ࠺֩̏싁 +ⴅӐĊ蛗‹뚢䀚Ңڭӻĭه +芢ӻ宱׫ת偞ےܐ鿠͵նҮ +χϠռ򧿡Ƙ蓦ԔϜؠڊ +ꏾ߭틶Η̄ß쏻ȹχ䭴ƭŭєا +軦싱Ŕ׍ȳӦڹ芃ȁӄ芢Ӝ酦ДД +ˋ␠Ω퓖ŀӝ؃늢ۡ÷ָ +􅺘܍Ϟٗ嗺Ԗ܇҂ݯ킿Ծ˛ߔԀȮƄڜֿ +ݰҦӐĊߑӐĖ蒊ԔӐĊ节ȁ죩𩈢 +芁ȁ˜ӐĈ节ȁϧĦ芉ԔЅӼ +죈ӐĊЬǐ۠Ӽ딄 +ӐĊℱӚҰʳʪǔ䯄݀˞䑖ϣ +Гб״ǖўƼ͊όͳ粥˲쵆Ѱ׌ +뢱Ő뢙˟ڈבɔ˜뀦 +&] +[s3;= &] +[s2; 9. Context menu alternative and using CallbackArgTarget&] +[s3; 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, [* CallbackArgTaget] 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:&] +[s4; &] +[s4; #include &] +[s4; &] +[s4; struct MyAppWindow : TopWindow `{&] +[s4; -|MenuBar menu;&] +[s4; &] +[s4; -|void Exit() `{&] +[s4; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] +[s4; -|-|-|Break();&] +[s4; -|`}&] +[s4; -|&] +[s4; -|void RightDown(Point, dword) `{&] +[s4; [* -|-|CallbackArgTarget result;]&] +[s4; [* -|-|MenuBar menu;]&] +[s4; [* -|-|for(int i `= 0; i < 10; i`+`+)]&] +[s4; [* -|-|-|menu.Add(AsString(i), result`[i`]);]&] +[s4; [* -|-|menu.Separator();]&] +[s4; [* -|-|menu.Add(`"Exit`", THISBACK(Exit));]&] +[s4; [* -|-|menu.Execute();]&] +[s4; [* -|-|if(!IsNull(result))]&] +[s4; [* -|-|-|PromptOK(`"You have selected `" `+ AsString((int)result));]&] +[s4; -|`}&] +[s4; &] +[s4; -|typedef MyAppWindow CLASSNAME;&] +[s4; &] +[s4; -|MyAppWindow() `{&] +[s4; -|-|Title(`"My application with context menu`").Sizeable();&] +[s4; -|`}&] +[s4; `};&] +[s4; &] +[s4; GUI`_APP`_MAIN&] +[s4; `{&] +[s4; -|MyAppWindow app;&] +[s4; -|app.Run();&] +[s4; `}&] +[s4; &] +[s4; &] +[s3;= +@@image:1329&1704 +Ձǜ݉ǹ’ޫՋ嬢كؤԨ赭ֶ +ڕۼܤ䦘ـ٤ӝϦ㖌朳撚 +ڧﵡؚȻ슫ܺͨףͫȟ˷ͩݞ +ɯດߺ֍Ǒϕ֌ŭИȳ +ߍД룽ΞيӨ̬Ĵٱ״ፅ; +뽔̦ɋϑ̉‰ޥ֨ŧ֗ެϥůѓ +͇޶똠ķӕ▞םޱ֬ߞܣ޳ɪє +ҋӮˡƴՊіߺ𴲶ŻƢϙВ荩 +ϥۍݙ˖ہӹЋ +ɨꔠӽרԔǶᣀ׍瘷 ϗɟ߭ +آ둂эͿƌީגΚƙī +ֱ̹Ιܻ펅ݿ躺¸觲鴘ѷη +ԉӉ£ުǗӫ墊߿ܾ㾫۵٢΅ʩ +Ίǯ؇՝ؿƧղ־ +ŝ召򬏂ž΅㝷īÝӨ뜟 +ݙڜܐܰƍк񔾻ط뷋߽ӯ +ݤ罴ʉūՓٚ㲔֍Ӈ߭ʩʾ +ޙڥ濫Ȣç +֓邛╫ծʱ뚨⫯ל +Ϧǚєך֡߮򤮿ʾ놰Ƨǽ +ބÙ娓忹ڱͱԥɸ˚׆ϯ䲽 +āھѯÅʥ來Ԅɻ죽֝ķĈƈݾ +עӱݸѵɆƷׇܡ疨ߡǐ +Щץѥڄۛͧݓߧݦ㽭 +歓˚ÍϤ˱뻺ޣۻشץ˽Ѿ +մ׺ꏎގ׺Ҍ۳ +ݦ躮ߟԝਭهˢǤ֪ҷꎧ罈 +ԳƱԼ겏 +ޚ经ܴ۟ǽΓɷȧ؛隷 +ߡÑ㑣޲īߔ׎߯ˣښ⼁ +ם˧ڶљݹɸЇӇ +י𜸒̽ϛ赢㏬Ƚ۽ٳ +֟ĺ³ξϫ֚喃ߌ¯꿼 +ݹϖŵݏڴ㞛ݼ +Ɲ۷ʗ̭֒ߝ醺ꏁȭбͣԦ +ݯ򧺒ˆʟꐑ폎Ɵ맥ݟ˩ғ¤ܣ +қ˿ּյڂթǙ +ܿ򭫞ķפڥ崫Ěԏם˕ֱ˽ +욏ӝꅍӭ͎֟Ӊȴݐ봭 +Х𒚦ܸ﵏ִէߝ˃ة +ס׻۸‘ܙٖџÏ +ԝДαҝ相śȺ‡ο運 +ܣͦ׫أܵՆֿۧ⮺۳ニ +į޳兣ҼݯϝǸ玾㦵ڊ +ݦ٨ūΪ랓ڰ̕哮̱ʮͅǐӝ +ͭۏލ鵾仞ڿЬʭό횞 +ɧ߳߹ܡۓյװߏۥٺ +ӛ雬抰ةõ髆ǽ֩ޣ廣ڂ՗뿺 +æΧԇ巎۰ڵĞՌ߭ +՞˝ҠӦϧ㣊ҕ۞ձ迥ᙫѱ +堷Ӊպ‡ᗭӾ۽ᖵע +˵͞ݴڹɥˡӈ٪ѻ霮ߵ +߹ǻЎͼ缑܅߱ї +׷׶Ϭԟןӈ¨Ѕ˼Ҙןԝ՘׭ +ڴȊЎӴΪɪ琳ڳ̔◚˽Ǻ뱩 +Ǟ𞾨锬㧍ڴԙ՗ԇҽڕ俼 +ھӒ͹ڹ񴋝ÒËη +ଊٌ΀쁸ϟٱӝ˟՘ׂݎćĕ +蛽ǵϼٯ󢏟ڶ͊ +׎߸߲߲ͫ;ͫͽܫǭ +݊ުىԴ֝饴Ɵἣ𝙞 +󺿠Ջĭڗ͂ŚΫ´ҝᓿƼ՗ +È܇؀ǦΔھܟ鴽ƖǂڹӍے֨덹譽 +ԑƆĻؑɿ֗£ +Ǭ녭ĝŨԁЇꀰ֦荺漦ȭڣԁЇ +ꀰڀ稃ۨԁЀЇƒɹч +ꀠԁЀЇȎԁЇꀰ +腺༣ߑԁЇꀰ՘֒ԁԁ +Їꀠڃ更׎ҵЇ̍ģЇ +ݬЗم﹥߳Ѩǧ݃ԑԡ͛ʋ +討njѿՃ蔋ةØ֛Їƺ +ѴޏǝԁЇʰԡਨЇ߫袎 +ԻՅᅺÔꀆԁ˜ЇԒׁϕƀРӇ +ՍꈕꐢİÝʂꀆԐЇԡЇ߆ç煡ԁ +˜ЇԒڝЇÝʂꀆԐɢԝè١ +ԁūˋ„ƒµؐԑޡශЇŀԇ +ɒꈍЇԡЇÝꀆԁȌꦐÙ灡 +ъÝꀆ䫇ʰԡЇÝꀆ„ԁ +ЇԡЇጆԡףĩԡ࿣ÌÝʂꀆ +ʰԡЇÝꀆ„ԁЇԡôЇᰃ݄ +󎨣Ý„άµІԑԡ࿠ÝꀙݨĺАЇԡ +ĎԝɝԁǣʊԡЇÝꀆѼÎ +芙Ѓۇǎ抐ДԡÈޑЇߠÝ +ԁϝЇϕÝꀆ„ԁЇԡ×È +ĝʸLJᅺԨЇƥРÝЇԡ +°ԁЇԡôЇ󀡎֠С͏ +УؙЇÝݘЇԒъ +Ā㭃쒌ڝЇÝʂꀆϊב턼 +Ɏ⛻Р莡¯١脺ԁ׬ꐢƅϠРԁȌ +АЇԡ΃ЇƩԵ˜ЇԒڝЇ +ܸҊꈅۊ煺ꒀԁ֍Şҟǝ·۸ +ڀƒ߈בʲϬ傳ԡցЀƒԁӆά +ۈԡôЇÔꀆԁ෌ۇ +şћͯ˝ؔڃӮ +܀󹾣ӑکÏљɔۈԏì˧ů +юŏЛ꡴ڀ䒔Ӈİ㚴ᨃ瞼 +޸߰͐ҋ۟䶇Ӯ֯٫ +ڑޑ܌탓󌾷ȫݱ愧؛운񽁧袀ؾ +́ + +@@image:1324&1704 +Ձ흉ճǃƳ׸㺌󻈛ЅʘҨ메Ė +ź񐁻ɚДқ䫩ܷ𹹹ﹷի٘„̓ +ޙڹ˼Ա䓞‚Ƒ뒍ص +ƾ׍ܗׂۜɛݸȋ܆šѾ˭ѱ +ع㹯ȎӋלޤℤ׀䈡ʢ +ɓ㷡Îͤ򲎥҄ȓٰηߠ؄ɯ +ᢺȭ呋ȉϹȧބLj’奒⭶ͥϐç܇ +į紋ɪݟ趇ÍㄧȁݖнҎ܈ۭ +騼Հ邃Үհٓز蠶Ӱ׌φ񟚶ؖԡ +ӪѢȒ܊׺《ՐҢ̛ӧ㖖Įܐ +͍ŊɯԠݥУȚӇijǃ曃ʷ +٢śѼцړܵר޵ڝǐѐѐ乛Ǯݸ +ØУٯ̓܂ɍᏪ閰ݜ۷˿ѣ⏴Ԥѿ߸η¤ĵ +جΝöцكÖ疼ӤɊꘕ +ƩϚؐއފĥ컲؊ҍ؃駬׍ŋΥʏ +ʑِ푟垱篝ɝᲶ؍㑋ηɍ +ɍեͷɁ׷ĵۦɁǚב㻩ł +򆩤ɋӈ𜼍๹󾤰̟֩륵򾨧묌푸ީ +֥ٲߵ㋹₟Ѕًɿٹ眘Ꝫ +Ǥ٬֭ɯӍƴڋ؍¹ɽט +ҍэ햜ƣߪͤΨޛ⯗ȍ뱷ޯ +ߵ򟾈ʃުȆ̛ܝʐˉɅܼʺ +ڽƭإ߹җګڜڶ˻ +ԡՖӷԹԦ䇑â֦̽ՠ̑ʚ +ԣí޿̝쮪ӾȪǺ襤۴ɋϫ +֦ᰳʟԘ٦ʈݕ캁܁ޭᴕھϯ +իȅɯȎߟژդݨ檧ԓ +ޅ˩䙳筪ޟ͵Ͻ票Թʮ +߾ɭʧ߃Ԁ捎׮޶Ƭ廻̆Ԃ +ߡ厐԰ȚԘ퐸唡ؖ田ҶԻإ졝㝰븖ɡ +ڄԐȺ꨿̏׻ٯ鋶٢绻Ȕ厫זʫϲ +Ď爊䔦䱻ȓᦱ呟Λݸېɧ؍ +ߔҖы٤е⇬ȓ狹ﵰ̗ߣ֢ܢ +κ襔ө֠򢵪Ԉꝡ㛳ӯ竣ⳤ +ŨҘȵ鉚ԓΈ޾ܸʜԈһƳԋꐎ߉͓Ƶс +ܔԋѿ뽨媷ߎ멙ﯫɋۮͣ߃ +۟߄ʿʷ؍ç׀ُɮ뎳۱ +ʩյ׮鬈㣎ܘʼn캄橦ꑣʴĉ̢ +Í譲҃҆ڦʱޚ˚쐱 +ϥƶ쫗狼꼧ʲՈМܮՋҊ +Ҋڨԋ󋅝Й䵮˜嚸◓˵ы +ȅ⋈邢򟞹掯Пʖߪًܱ +؟ݵؐʡِ̓Ϲݲ̓ڜİ +إ܎ʠ͙ؤή줽ĐɎȲԣ˘ +튅ʪݼ֦˾˹В̍੣󺂷ւϑ +Ӣک̽Ԧł呋ыՑ鄦졢šӢՁ +Ɔ搚ߴՠNjɎڍɍ칛Ĝϙ +ݹܴ٘Ӕ㛂溱ˍف˚ޔõ卌 +冕Ŭ񗱱Ȋ؉׎۹֘˃ǥٵƚ +Бݰˍ™뒵ԭ䀑ҏکǍ襦ǧط +㷘̡݅Ć،ʢɂߎǕǢ—Ӕ +ةڎԺɩ̫ꀎԘ˻斖 +ๆԄȮЂըՀը +ՀըՀըՀ +ըՀըՀը +ՀըՀըՀ +ըտğܵ֏ѵƒ +؞ҖƂؠƛժچ˽ۍ׺ޟߵ«ݳ +ξ፼ƻࡨljܵȊӚݩ +䌒̐몏ӿ䱦Ѝק𯚚惘ءͼ͡ͺ +ͻЩɫգ˯势Ϟ֌ԩƎ㮨޴ҽ圏 +ճÌ˅޺円긦ŀǣ +ᱧϡ坆ޭ޼ˮ꨼Ԙɞ׀ +ӗѫؒاąݩꨁſ寻ڃ +׆ܮ۰ڱܯǿܹը力ҾҾؙǂј +ޭ㥞쑚ڡ񒎲ùӳӏҶܞ疴ח֥ +ҡзօûꯙَ֖ױ +͕儴ȋيʾŠɈъƼՍ׭˭ƛ捨ݗ +ň簁נŇ枔ָѮԢ̚Ҝ +ڹތÈޏ֘ƽdžˊ▦ȍҍ铑 +ﹰ¬̐݋ֱޑߚ՟ˌ֓¿豠ۯ֍ +Ǿ꼖Ĥƍ۷ܮ˄ܯʇݗ勩Ӿ +吇쩿겇鿖¦үϮߑ +ސѾˡ×ЉƖԻ㶷Š߻ӷé +ۖ𣌼Ź҃򵘝˛ġՀհďĎ٣ӆɁÊ +ἘԎׂ߽Ê納ɍƃȝ켾뺛˪ȧѪ +䋘ߥѬ˗܍Ѫƿ똵݃ͣꐡɯݨԎ߻ +Ϫуռ҃܎ǿ哠ˤ +䳆퉎Фυꡌҿ̑Ǐз޾ +ԏߔۭ҃уӡ㚺鮤ȼٍٻܕ˻ +Ώӽ˻ϯޕ܌˺ΖÞϜʚݗꨬƳ͏Ǻ +䓬ݖϑ꾽Ձů̳Վ롛߿וܹФ +կ֮𶪁Ըʣޥ̍浌Ӈ՘ԖĚ +уҟ͜Ƽϗޤꕃ׈ȊЩʉҍ݆۷ޢ +޺ިòԠԄ򯘚Ȍث˃žƄߩҘٗ +򙯖܋̐˷ѷҴø +߯ЯԔԃЍ™ߊ՘ˡĪ +ʃѕ鈥ӐÛӮҙ󳴲ɐ˿Ŗ +Жėػ톖Ȕ܎͵ո +Τ͢埨⯻ܡݾ΃Ɏӥ +̯ހ헖䋷ԌԳ̎Ձެ˿°͵巺 +΅؇ѷ܋č̭ѯͻĜː +ԕú׍ϝӪͰũюԠʙ +âܐų߲ϳρ댵Ǟ޷śՎ +׺ܗ٧ݪƀ̈é򵸝̍ˉ뵏ζ׏ +ܭ߾߻֣ݏߝÿ +큧ݩʩݳ̺ڠߣ +͡У҃ޤڟϒώ߿ŐĻ +ߌ̼΃՘􂦮ʵ񊔿͟ԥ֍ +߷훿:Ӝ㆜Սʑ۠̎އ㟆︻ߺꍬ +ҷ܋։ͼܿԱԠχ臤ހ֡ +ݟ؏ڀЃЃ +ȀЃЃЃѥƝЃύě⧚ʸ‡԰ +ǔùҐϾڍۑݕʭň췹ҏ΍ +޸쀶ƵɚÎૉᄿ⢵誇˧ēэǩЃ +ڷ֊պڇϸܿʶ†ګӆŇퟫƫŜϼ +ʄҵڶ֪̝Ԑе葴닩ҸჇήدҶ +Ի؊뷥ΜNjލ䩣 +߉ɆƸᡸҖۯӣŤޗݍԲ߯΅ֶ +ݶ듊ӽ̵ڕ؇ۜУÏݺ֭ +広ർҙݯ六ӯؽډ΃ћŜߍĺޡހś +ݤőƽ쏉툝ގثાص݁ḽ +῍ƻף쀮ܥ띨␧Ǎ܂ꀠꀠꀠ +ꀠꀀꀠꀀꀠꀠꀠꀠꀠܙꂀυꀠꀠʼn +фƗځݗ۷†̐۞ȡͯ +ߧ궂ە龭܋պƒ߾ƛڎʗӾ +ǝNJ궂괂Р͇ؐϴ܏σ +԰܍˗㴋׭ť؃Įƅ܎ò΢ +ܹѾԨ÷܍ֳ֍ݽ֍܋԰𒹚 +ʍ݋žōךܮ۷܅԰급܍ښϝۡض鮠 +ťݨڍպ؃Įꔏ꩜㴛򵍎 +렆ڋ⎜ǠҖݰȧ +ߐۄʕ闾ƏѡЭ㸝ʗşƟہ톅ԯׇԫ +Ḁ  ˜”ǭʣ޼Ԣ +펎Ɲ˜ӗƝЧ𲝻ݎ + + + + + +܎⌀̟܆Ėԉ +փꀀڪ̘ +&] +[s0; &] +[s2; 10. Adding images&] +[s3; 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&] +[s3;= &] +[s3;= +@@image:2818&2196 +읉ӠԊ֊ʦγĨLj +擞ܺԥҧ۸į +܎ٚڊօۋ׆Ψ؛̩žȥҦ޶ +ήų؞ꢊ؈֟坺֯줒ۋ֜Żτ +ʢϖƈױʊ۔ȠǣĞ涗Ȏƪ׊҇ +Ѳҝޘ䕄ˆˑǾȼ⒱ҾذŖȖʦ߻ +֗𿢜ӭзٙī⏋ɈǗұ񑥔 +߼υΛُ̫׬⍍ȉ˃߆ݻū +䧅Ĉ튠ʹ箕ʪ뜋͸Η嘥ڒ +ᥡ齥ڗטŒफ؟뉮ؾ¹Ρ +ȫݺ媁ȃڣğ߬ˆҹۜ͑ͭ +㖝ݾϣݑ매ʢ֏ˈ +ȹij޷ǯ㖳⻛յӇЕ摼޼߰ +Ϭ깖⪋Պמ⬲ƾєԮˎ +𮆻ƺ鳾ޚ͢ŷͳҎܼͯȉ° +۾凿ߵ٭˕杷ӯᅵ뒍Ͼ +׼ϼܫᷮڷ׼鳬٬Ҫˎל +ʥݣބ⵱Ʒ߿ۉ٢푷؊ +ͷ¦óԹΟ飙߶ӯʡߖ۫ +͟߿ͣΓҚ孟笹̵ןמݩ +ω̪ͤќ߃ӶŐ⏔٬ +ȱܿԾҍ׶Ց׬ߋ׭ +թ׮㟥瑻鞪ԏ㟆򖰵ͪ냸 +Ȑȷο˹ѭ̜飙޲ȵӢܵ围ݺ˶û +՗蛆̭կǭݡκ +ߝЮ鋜߻ρҞſӘȋ +â߹ijͮ⫸ͷܟԮСζʜۊ٫ܣ +Ӎڬٌ㒝ΗʧǴ´򬡝ӗ˛絿Ж +愉޻ӢܾܴѹԋڸΙ޽ŀνã۲ +񺸩㖝ƚϑȃ؎ڢč㔽 +ьϢ񜃞ƫտɉпΧޓ슺Ȩ +˟ؿ˶أФˮٜӪ܆۸ԦԘӝӬ +љ٥Μզ羇֏ڑϼŚز昷͟߸ +߼ݲݽܕ۟вҹꙚޚ엧 +箒֬ͮˎ귯Śь󌴒Ѿ½̥̟ +Ǖە􁔭ۢʿˊ֯ +颣ٚǿޭѰиٓóΜΙ +ݟ郮犨߫ӻ߰؋ﵫĬգ죙隷ן +ѣǽّϬˏѽݾˌܣ +ǥȷˡ׍ٜߔ߀ԩͷɖմѧ黼ԣߔܻ +훽ۂٗݲĵͮƈ׉ު٪ +뚵פ֞ۿ鏢čŭǝטѓޝ +ǟºǿаϝԾʩگϥօӻߴ׽Ϣν +ȏӿלˎ׼ذ׾ +ݳ鹤ãܿ⺁ݜ͗ +߬պ趗я—իŬᎵؾܓ +ީ񳬮ӏ˒ܬȼ􋯋퉙㿑ݗƴհӣ +½˟흻ĉϴɲǼ۵ӣ +鴦̈ޠݻˆ祗ӧߔۦΉ +޿åӻ޼śՀߝν⦢ܽǬȗկ͕ל㿢ɿ +Ԏѻջύ̓ΐ劷 +ɴ¬Ɵޖ܆洯Իߧ +ܟ婶ͽկ͐ߪݩǎϛÜ +ˋގר׿Јܕ̨ߘ֮ +ˁގٶŶҟ؅ƚ҄˂ +ͺÜɷ +ןˇԟƶ𮧥腆ἲհ +ܮی񩻑✹ڿ˼܋ׇחխ +ͽז؍Ǽꄼ͟ߵܻӯɺܳճݱۿ +Ϊ̧ӧ翌νÈޫˏ˞ם߼է +֝ѽݚ͑ΣӅҳǭϙ⵽ +蹙׋ѹۦ۲˰՛ҺխҴݔܞ +ݶڛݨЋޟŽ趦Ƿܼ鍛 +ӻ┨걅ǭ軪آ恕ۭ󄧞Ь˽ѬŜȩ +ߢǿڸNj͟槫ӮśѽNJӋ +ޖܛωեNj݆ɳ߮󖉤֜Ӛ㿞ӿ +Ͱ޽îޚ֬ +鯏ß㶰ɚ缜ֳ֖߉嗽ٿ +Ѣ۴ةΉʕΖ׷޵ɬחϽןձГ帰 +ී볍󬕚ۘ˷͑ƺ +󝰻͌ڄԦ߸〬ٳŻ +߫퇰̉ܟ۶܂󔷭ܿ˛嵳Ͽ橗 +槞ώϨ߱ۧҏ帷ᶳƺ􈝗޴ݞ՗׭ +群߿򹩫׶ґ͛༸뤓×ꓕ +ӳ粿ׇǞ鯯ןיٷ󧾾Ƭ +痜ۢ⫰޾ۛ폯ܶƽ +󟼧ՒᒜڮʽľǞպǟ +ʈŇﯩψ橆ح̝١񡔆Ο +ϥˉ˶ꚩ׿¤ߺ۷햿˓޿驫нಙ +ɩǘ뽇엔իԏ֬՗Ξֿߑ◈釿 +ﺛ胑Һ׏°Ͽ𫋝ij󞕉Ԧ +̏دߋ╵巑㫅čθ߸ +֧ܧԻ֧ي趬۹ķܼГ +ğއ蹽ѐة蜽˥祜ϩ߈؅ܞǤӇեΕ +ՇǤĝļͯյӇϟ郮毷ז˳ +򔫶ҭڽի뤖֑߸Ο꼃ם׭֜ +ڳ֝ǿعܭĘߓϣΚɝŶ +د妋۫ǮȩȂ۩仿現ˡ׊뾥ɺ +ښԙܻԋڴѯ̿͋ӯɦ +μ鲭̶ޣՋֽó翿οߍ筺ڱߕם +Ɯ󙛗ݖԘ鞿ˌ˟ +ΜޙĪƞǿ󯿑ݟє՟鲍ٔػ +߽񳆏ϑϾϸͧՅüОސ緎 +󷯼ɧ툎ږ䙶Κݯғ޸ +֜Ξʃ╋쫚ƚ˩ѣdzƪ +۾̿޻ϗݫͽ +θޝ۶қ߳㌳־ʻזՏՂǣ׮ +֩뫞έ퇼ßǡʻ߼ +῝ݼжƳ˥ƈڡҥӷЮϺϾ +зۦǟ豇􃦷䂚گͽ +ۿЮ߼ߓڻɷݗ׼ω +ȗƞƹ켿ʈ߶Ĉđ݅ +Ϝֳ޳鬝۟ܢ +ɂʓӷߥؓŬƋɎݐ誩棍 +ۖևlj΂ĉَٚ˵Ľˆй䩡𵝸 +ޣūȒ٩ͼף봽Ϳ +⇞⽃ˆÞᤄ̈͞߼ϭ݋ +ԛӣ°שɚ鉯ꣲ +ͫݛ沝둚⫭ÉĔӥ +ѮܲަꥊﹿېƩߝВڵۭڝ +׃Ѣѥ˟䖫ēؚʼn +̙џϚდ駖ڮ߽˽Վ +̮ԜҹӶ鎴°̅Ý˭ȓѽ۝ݣؽȭϑ껱ӡ +щ䴟ũ޵ٳʑ̊Ἷћѥۓȷǭܬƣ +ƻƉ՜٫̾֓ωԟƌЦت뇶줓 +뱧Ɛڲَ۩穚ƧΝʄ¶ +չ꺫ܣ۱꣍ؙΑۋ͖줳ﮨ +ӠʟѫԹnj鹭Ӥ㞯Ļ +ȫ褨旍Ⱥʛܙëၔä׿׫ڏ⡨ +ϕƴȒݫ̓ﭵĦ肧ڣĨƕ҄ߙѩ +ДןŭȘ頿޿䧐͚蓱ˉ責ћ鬶ͧ򉐪օݜ +眜̾ݙ̢ۨάÍ̊̈́̑ϑ +ސҮŁڢ߶믩ӵԾߪȫ +ˎȍɢϊزƦ˭귝צޢܪ՟տ͚͝ +矌ÓٷҔʻŒ̚ǩԆ +΍ե—ؘٯؕ۱ƪő›ѥ +˖Яɮ̵٣縐ﯝ͹᷑ݴʕբ뎋ۼ +ԛŢ͐˝ƪъԭŷ쟏Ϊ脑˶褊ͭ秪˥ڒÔ +ٌڽć٢֌逑ɥԨƳͶњԹ +䚃ʙזǫ̲ǷڜʊԛՔȃֳ֩ۊ +ئʱڜ—ٔ˝콹ʹϤԝډιǬ깺ԭ +ͭ۽҂Ԩƕ֙۔ʟ⤥ʮ뗒֮ +ښɓ޶ԧյܴƪӦͨ˧䷛˓о鷿 +הߑۗĺƕʙܣಚʱ׊¦ζöզŮ +򿰈夺ܘΕںˤ׹깃ޥ᩶͞Ս̭ۧ +Ə󤥖ŽƧא˧޵˩ϊ꒫ +ͼٛ͑ě毻ΤѣӀڙǘ߃֧ɱ렒Õ +φǚƚџռ̷朗鷦ݣրLJڝޠǧ +޼ƙ󧲵ܗ͍ԟǤ䚩ԊΚՑƶމ껐 +ɚޮΓȟ҃ϊȝؼ݈Ȣݴ +ڌʈ½͑ˈ礌怰۟ +͔̈̈́ҋЁऄˆբĞ͵ݍݷ޻ +ʷꏦﳔ䟤Ϛ⍸雎ǘݷįܛ޻ª +֬Ӧ؟Ŧ񇶭ͱȇʂگʰ޻嶹 +ñӪ騲҆䫱ݠرϱ뾕۪ޔͦ +٣㜮޻Đ򎘆ޓ틫ڋԶƽͱ治Δ؟Ԡ +謺ò뒓ɳŋм߳؋㺧֏ +·Ŧ݊אȺò片םѯݕКނΎ轳 +ܨɓ쯿љ̫֢ݲƱǧޯ +ѤΌ׭֧۟㓹Ϝߣɤڿ +ʕӻ₩ҿ擏͒Ŝਓáռܾˢ +Ǜʻޥض珼׫՜¥β͡٣ +ژʣծҒǜșҋ΀Ҍ˼ލ޿ұ͓ƪ +؞ꘫԵ޿ޛԧϢʓ۠ͳ +ޚ֩˫ǚ٣ܟְҋċթǪţթ݌ +ʷƂ򔓍ְ݅݃ސ­ǝ +ɖ۳ŹҬה󤊣ԮӨ楤紉٫䥖 +󧮑Қ훥Ȫ湃љ̀ݮ +ܯɽϞًǚǡإڻ« +﩯ͮΠһƺʩԑǺġᥦʺ +ȕ殷ּݦԄ줵Ԛ걳񷻜ס +娺ɮɣһè󎥞Ӑŵ̑Ӹ +󤹷ҬÍܸ˹ջȳ᳖夊֍߭Ԍӡ +ɋƤ͊ݪҠ˔ƣ둗ԥʲ߱ +ԩŞٝ޾ͻҒȌإ腌ś́ᜩ +Źݟϭݲ˝Ǿƚبٕ͛ǩӼ +Ơ훔嶁пќΞƪ߶Ӟ֗Ͽܓȷȕڹ +ϧɔءլ뼹֐׋ԐǺËѠϘՠֳ +ћȓٝȃѤǪ̓ͩͭʹ註ǚă +؎ˬĠɵمͳȵ˃ۋܳ͘ŒƽѦͽ +Ƨ͑ةϳꯑ炩ʞ̫ȩץ +ܓ枰ϿȻӹشԔҢ˯Ź٤㤩 +ӕȓ̻󿏴ʾ۪ԄڍÃ󛤤֍뿏ʐȇ +Ȯƣ˦ۿىŵұջ島米ǪΙ֞޾ +ݞ̋Զؖє֦墭댌 +֗Խ׺ʜ줠٦ͧƫ어Ǭԭ +솙շܪœٛƧŌԽĚʩѵՁȟ +ȫܚ͎̕ƚ߶ѲӽՌ蹨˵̵ +ڴȳƄԧťǺАґ٤Ꝍ՜偧ڗ׽ڴÌ +醙լ݌Կ抵ץ񷵶ʛǩ׵Ϡ񴏓܌ЛڢꝻѱ +䩨󉫪ѦѹҘĉः꿤ߵʺۉ +җŶΑڙ̴鳬Άٷ燱ۥ +􆕦ӢӚͪȫΊݹ흣۴˜ःᅯˆ뢜 +ƕʃȫ׶槛Ʈӌㅄԡɓ +܁楞ӘְҦλ󖧥ƨΖʘ߭Ӧ +ƪ̱ƪޟ蟗ȜÚؼ +뾪ƚྣȻοϟޥĄڴߴ +żҢ˦Ւܶ۳ͺ +ǬƪˆՌȆ̈ʿ؟ˆ +ȿ‚󇌴ƁΆߡ˶ߩֶ뤄ˆijŴѹٷ +ĩȕ蛩⽣򽤱߷œ֔Ȼˆ·ᄐꍯږ㞫 +㭚ݢ됺ݕˆҟ슿֔ƚ蹩صέڋ +㆛΃ѱˆ֘ܞïӿ׶餲“ֶڗݘ +նƇˆ˿拙ݿͽ̥̦݂㍴ݽδ +ȥǘΚ߬㪶뎋Įޝ礁㤄 +٭ə½­Ϩ־҅ǹȉѐڳ礻 +ɉՠȲĆԷ፹յՓ鹚波ŏ +ˆ틍ɹֲ澥ޝ̚¬ +ϤבȦԌ봊Ƶ䤃⤄ˆѷҬ呴Ԟƪʚ̔ +ҫݽϊˇҫВˆӶ巫ӲԊ֥ȸ婵Ԧ +Ζ俒ꌪᏒþňȧ扵ɤه﹏ͣɥќ +ێеմۭꌶऄ魱ٮײ❝ӳͱڪ +ԦƲɜ㳜ҸϼҖުÝÈ礠 +ܼ٫ܚ⫆ڮٹ͊ܔď”Դ +Řҟ슿֔¼ȃ㝝ٌ̈ +΅ߐٕޕЖٶ椄ˆ̥ǘ򃖢͍ˆݥ׾ޮߴڴ +͵ұᒐˆȧ׏ӵǁˀ祿Ңƪ۰ +ʈõ󤺁۶ʈҥ޵ߜҼ֏ +ˆϟȺួޢ˻餦خҶϸɉق +֞۸喻嚑Ìȉ쉇†ŴѹӲƔ⥤ +ǖʭᜐ勊޻ϰҚӄݏӗЧś՜ٮ +ƒؓҌʚݦצٶȓߊ쉇†☩ٗҳ² +㴢ǚ猴׿ڟ쉇†ؐ鞓ܗ +צ˹۹æҕճƪ䬾询¡͇ǚ˫ϑ՜ +²¾ķטϑʃȇ򍠘擎لێդꇛ +Լ۲ȕȇܝۤҟҶꆼ +Γ߱˅ߐ葹Ԣ͑ۙʤƑǚ +ߌȶӯ׹󫒏¡ñƪާӰǷӓݷ +ıǨ츱ұ׊¡Ͳǎ΢ґ +ݩŶȮǦįЧˆƺﲏϗĠťö +țҕӬˈᖯ̥һٜ϶֐š񴥍ޣ +ܡ͔ʾ߇ԵΪ朗Ѯϸ +骙dz˝ҟӫڀȋȠȋȪݮӄ䖻 +1ґۦىؓԌ褕ӷƢϸ +𐲰ɻɉقҟぜ퀃զ峕Վ맛ƩϸАٍΚɚ +ͬᤤǞ𠈡⤲ݳҷǃډ᠏ϸƁҫқ绂،ڝ +̈޵Έ߱ƚ㏵џˆƪǺ +Ұͽ捣˻Л﵂ڋþߐْڱ墾 +Է¬ɷҀĊȳӬ¿ӥ㦅ԧƀ՘İ +Ͳ횭ȳȭԚ鍑ՌţӪƃӛ +݆ȭشǥ֨ьҢʽޮԔɍџޘ +ɍ彭Γګ棾Ҽ扆ǯԧ؏ɋҀ +ϿÍ͋صޅ񤀀Ѕʨ޻ܬӛ옩 +џޘ劑Lj㤀З翱ߧ⛄ƊҔƟ +ȥֺ͔Α֖ܜ輘Ը٣ +‚頣տ󤀇ߵʯ͘ƺͰƊʷ +ɉזԿ£ȁ̪ҌڴȡठГÌƊ +ȪȁҰ⢵ފDzŠᤓ +Ɠҟ̕ު꫙ҀњƃўֽЃĀӣ +ɻȡऀГՌ༘ԄţŠǻȡГ +ٔҌƊ†厔͔ҹȗ̾Ӧ‚ +ܣؤҀɾϷРҀӣ־ݿ؅ᔚ +񍌔Ɗ巒ֱԌ讑͡ƊᱤţՙȡऀГ +ӣȡऀГ놯Ԭ輘詀Į餓× +ꓕ˰ȁݒƝͽҽψȡऀȀГƪȡऀГ +Ռ༘ԄţŠǫ񚤋Ҁ슿֔ƁʜƊ݅ +򬣲ˎ칚ҀڏΑʥݜ༘Ԅƪ +ȁ̅һ됻ɲ̼۸۴큑£ȁ̍Ң墣կ +͓⃤Ҁ稉ƪţĖȡऀГȝ蠼ķޤ +輘詀ϣ洛ܓӚרԾȁ†ʘĬ +ڷȄʘ՚Ƴž޻ڈϰ輘ĕ +Ɗڂ΃͔ﰐӰ輘Ĉ΃शȡऀГ +ƚ̷߆ƊÕͼƊᝇᤓʿɘᢇף +ފȁ̖͊ޥŰ輘ă줨Ʊ +کȡГ͑ȉƊԄ셀şʕ˄ +ߔǺ֒ƀȁ̍Ԗְ輐ۢڽ輐ԄƄꋌ +ڼ΃शȡऀГ輘輘Ԅ +ऀГƚߟƊ̅ޓʿťԣׁƊ܅ȵ +ٞڒڄ⋌邽ںၑ͋Έªʱ蠼 +Љ쎴խƊ̅ʭƊ̜ʗН +ጔȨڽ輘Ԅ‘ꂣŠ큑£ȁ +аҀԖ۴Ԗ݃Оݪ߁ߢА +˷ܣχҙ輘۹㏸λ׷ࣤА +⊩ӏҎ껨̌ɭ +啓΃ʌپːдȋΈ§߂ +µԚңᡎ껨ڥǘӾ߂ +ڇ蔻ɦ舔۾󮑾ϻѩ輘舔۾ +􌴨ݰҀà卛җȡा㠡О͖輘舔 +۾—лЁӑڅӑ΀ځꗡѐ؜ +ݰ谦ﴰ⻤מݰ谦ﴰ⻤מݰ谦ﴰ⻤מݰ +ﴰ⻤מݰ谦ﴰ⻤מݰ谦ﴰ⻤מݰ谦ﴰ +מݰ谦ﴰ⻤מݰ谦ﴰ⻤מݰ谦ﴰ⻤מ +ݰ谦ﴰ⻤מݰ谦ﴰ⻤מݰ谦ﴰ⻤מݰ +ﴰ⻤מݰ谎隀޿ȷˁ‡ݛä ޘ +ꗌȺ껍Εĵ󽼱킑‡Ϲݰ谘ﴰ +ސ׌ऽƊʛޘ׌ȡाӇ쳺˛Ԯ +ơҞڅǃ΃㰚һ +—꼻Εĵ󽼱͑‡߹򆸌ݰҙ谘ﴰ +ސ׌ऽƊʛޘ൤ȡ࿤ܳ +஘Ԙ㺰ҞڅΈŀߓư펓ҪΗҞ +څǃ΃㰚һ働—꼻Ε +ĵ󽼱͑‡߹򆸌ݰҙ谘ﴰސ׌ऽȟ +鹰谦ﴰސ׌ऽޘߡŰ谘ﴰސ׌ऽƊ +ʛޘ׌ȡाӇ쳺˛ԮơҞ +څǃ΃㰚һ働—꼻Ε +ĵ󽼱͑‡߹򆸌ݰҹ谘Ҟ誰һи߉ +氙㘣ݰ谘ﴰސ׌ऽƊʛޘ׌ +ȡाӇ쳺˛ԮơҞڅǃ΃ +㰚һ働—꼻Εĵ󽼱͑‡ +߹򆸌ݰҙ谘ﴰސ׌ऽƊʛޘǔ +ࣤȠꗌȺ껍Εĵ󽼱킑‡ +Ϲݰ谘ﴰސ׌ऽ欑հߩːԨ +ाɮڧưİҌ񝫒ҞाӇ쳺˛ +ЌʛޘǨωލΕĞ󽼱鏙г谘 +ﴰސ׌ऽ㑧NjкׇǽɪÌȺ껍Εĵ +󽼱鏍ᤘԘҞɒƯȩƊʛ +ޘό⯢¼貰ƊК̚ҞВ޻ +ǪڹҀाܳ˛ȣʜȩƊʛޘǘ +ѠΑϽイ˘޽̯ܙ +߫늽Ȑ̉ͲꟌ̬ÙʱҀ +߹ᐤҁÁ茌ʩƟ٧ǿ +鰪⹤΍ڜܿưʘ骣ǔ݁놉 +ʷ֪̑鬘ƞ靫놉ĀݲҀ놉 +ȓʾ񝫺놉⏤寕݃݉Ʋʛ⤘ +Ёǃ΃붮׍Ɗڂ΃΃붮׍Ɗ埓Ʋ +ʛ⚄⤘礓ܒ뛶żƊƪ̝流 +׮ΝӡƖҾ껍Εٸܫ߷ԇƫ +𣫕єׇ仒哞ɌǛ΃΃ͰҌҿғՃޝ +ڏы׍Ɗʦ⤘Ʉȁʦ⤘ +׏Χ뫼ԍ껕̄쒤ˋٔذ +İۘĹ쥙췿ƚ꿺Ϥ껞Εȡʘ +ɾțƊʛۂЖ屌ƾ嬨״Ɗ؆ʛ͑ЖՌ輘 +ﴰސ큑ߗघꗌȺ껍ΕŢȡһࣤ +Ɗ큑􅣅΃ȱ苌Ԯ񝫘Ɗȡा +ðҌڂƊƶʛⓤЖݰ谘Ұސܔ훂‡߹ +घƄꗌ껍Εȡһᔰߩݡːћ펳 +ӵҞűðҵ‑ȅ꼅Εȡ☩հ +ðҌ‑څꅍΕȡհञðҌÀڅꅍ +Εѡ՜ֿ̣״┻ސ۷ҶƶʛⓤЖݰ +谘Ұސܔ훂‡߹घƄꗌ껍Εȡһ +Ɗ큑űכ⅔老ސȯ⅑̗ +߹ꎗʢ볥͞΃􇶯Ёڥ몼 +蒝ޛìė󒓵Ιݾ躲Է嬑ꥍЁ +־ȎҞȃ̂砱ڢԇ׌壋䰷ݒ +̨ٲЀ׌䰷Ҙ̍ܲə׌ +䰷ȷ谘ﴰߤ頼鏵ﴰߤ +㠼œܴޘȡा榁񤽆 +榁ऽ뵋ȦȽߔ̓Ȓ̀ƚԋ +ݳίܴގnjҽतȗߵå΃܀ێ鄎ƣ +ķ챃ԪǫҵޠꅍʂČ㆘՜Տ򻖻 +ӊ߰үݡːԌҫПۊ߰үúݫį͙ +ֿ团ʘ߰үƊѿ̯״՚ؤĚ +Ž䧸ԋ񝫘Ɗۨҫː֦ɝ셙ݶְό +׫ưүĆƨȭȋԙ뇹ĮȽ +߹घŀʹҔﲲ񃂣Ι˝ðҌ‑ +ƀćӭڎҔ㜠ƶʛⳤЖԪ͛洧 +ɨģ┻ސӅ郏ѲǖݍЍञ +ðҌ˺ˁڗꔌҠ޲ى݈ꅍΕŢȡռӺ +ݶ̾稺߹घż +ԗɜꅍΕŢȡ՟鰮˯џꊇސ +ϿΨސֿڹߠүƊȭ +覘҄ٳɿ +ȱꕌij┻ސӅɿԃȱ苁Ɯꕌ +ސɆȱ苁ꕧސŤɿ +ȱ蟋ޓēƙԋᝫƊیҫ襤Ƚ߹ŀѵ +ԋ񝫘Ɗ茰ҫतȽ߹घŀԋƊیҫ +Ӻؐσȱ苁ꕋ勿ꅍΕȡՔƚ© +ߗ宾ҊНھ꒗ŐȚښٵ̓ȩϜ +؂˷䕩ֵڇ񝤫ҞڅɗҺލΕĞ󽼱 +ҍݲҾܳ˛Ԯݰҙ颇ɢލΕ +󽼱ҷˑŞΒꗰƪߔҪ +ᛇ業ԫʃ籽Ҿܳܮȼ떳ҩ֬Ҵ +׌ԴҾЇ쳺˛Ԯ֍ǮҴ͛Ԣؖ։ +Ю՞ޫҾЇ쳺˛Ԯ͙̭ϴ΢čž˽ +ƾѴ̶֞ԽŝΖУސ׌ऽ혣 +ĥݚȳʡЕ׼޴Ţؚ +޴夛ݨߔӴ𢿉 㪾趪ݣٽɃϹ +ݚҢ޵ő֫פȚɊꌕ;ؖťލΕ +󽼱鏙˹Ҫص҇޵בʖނ褏˥캦ў +ܳ˛Ԯͦ𪢮ƾޣ땛ړЊЫ񩋞瑓 +㰊һȟɤ㠔Ёڥ矴 +؜󤽆njҺڇƘ񝫏ۑԮݞ뉤 +ٌȻמԱݺҞȭҍ״ +מݮƜ߹킑Ά톍Εꗌ +һ௤ȻҞڅڍ񝫏Ԯϱ +מݰӺ⤘מݰ԰ +܅ژ횘񝫏ܮՌ灊ĭ‰ȒݳƌҞ +څƊ˨ɀ⤠ɲʷؾ˨ɀ⤠戔 +۾Ůȟ˂̐Ԇи彬 +شإغ戔۾ꗫƚו푲҉ӳڂ䌴ƒ +ӾߓȧͨıƖʃѱà囬һȓ͝ +ݱ᯶ƀ蘡О͖׶ƪߌ낌ħʷپː +нܕͧѴà囬ҧ÷㌴蹱鏈nj +ۗȽҚژϗګ״щ蘡О͖В֒ +Ȃҧऽ蝳Ӿə߂ɵʂДѴà囬ҭभȄР +Ӿ߂ʂѱà囬һभȱӁӷԮ髉 +Ҍħ欨˷Ԯ髉Ҍnjﲶۗȟ킑̐ +Ԁ髉ɌǮۗς萨˷Ԯ髉Ҍ +njׁ헠킧Ȧ̐˷Ԯ髉ҌҴnjۗ +킑̐˷ՂڑƊħʷپː +ɀ⤠戔۾؅ƚŋnjۗ瘑֛ +܇ﲶۗȅ牳쌖ۍŋ㠡Ы͖ݪ鄫̛ +ޤߋ܉ҾࠡЫ͖Ȅݰ۶ؕ鰏ڇ҅घƊ +ꗉȁ킑⤘ݬۋ﹤ȸΘ׶Ɗ +մ凒Ҕ顤ӱɂꢑʃ +ɤݬۮȝĀЏһزЙϑ˘ţȁɦ +ڄĀһ䓣ƊŊ뢱ŋ⤀һ +ɟꗌȁ킑⤘ơڕȁ킑⤐ +ݰҌƊ⤀ԀȱҌԮƊڅȀҀӰһघ +꒗ȁ耀킅⤘ݰҁ䅣Ɗ⤀ŤȱҌ蔀 +ڰ؝ڈꅣ˭흥ȅȧݥ +‹ᓇҀ菌Ԯ˺֎Ɗ큑څȁһभڹ +ȫȃ舩नг囙ޱӾ󃑂̛ݖթ +Ӳʶᐋ״Ĕ΍ǺɜԮߵȳӽ̑≤۰ز +ꥉ㤀зһ灎ǻᅤҀ誘ݰі􏣭ȔڃϾۣٔҢ +闾ı᪦޽څȁһڹ +ꗌȫ킑ѤतОưҖ􏣭ڃ򣵋ڒᤕ +ҽҀ菌˺֎Ɗ퇁څɝȁһڹꗌ +ȫ킑ѤतОưҖ􏣭ڃ򣵋ڒᤕϰҊ +ڹ궗ેۻѡӨҊȑөʔߌ +˼Ė՚u’҄븲ʝǵиǛƣ̼ޯެ̾ +̦Ä񸘁ͩɂҤ߬٣ȁЈŚ +Ȕ빍ŀیҊŊʑҤáȩҊਂʡ +ŰȗҒ⣛ᘢ🯮ȁ۬јբۆ¢֤겝 +ъФʑԖ쭏˹ە͂Ť +ȟ쓽ɼ߳ɾʑԖӓϢݹȑҤۨʧҊޔ顃ߣ +ߣԅͅՅ䯤ȗȇ譅ȰҀЋФŰƢ +Ҥêȟȩ쀀ФФŊ؀Ԗȁ‘‘ҡۨҊ +ʑҤá푡ȩҊਔʑڌȩҀФФŊ +Ԗ聀‘ڊ‘ҤШƔ옰䗓ƔۧȐȑڱȑڢտ򀀀ҫ +ҵŊŊʑҤФΠŊʑҤ֮Ф׏첃Ť +ҀłȾّɞ΢ȑʑ΍ת +ȇŖﶗ鸚ɇ㺢ߩҨѷݺݯޥȧíǝǑ +Śתηȇ͔ꢍǝΑ‘ʑȣο󍺻 +ҡ͡ȔѷݝӤФҤηȩӨ̩ +Ǻ䔩⠈Ƿηɻת +ȇǖԾǑųʝߊǝ͑ǑŚ +睟㝰޿շԓݑߤឍ +޾кܫ̘ژё吣ف +ڪؤۨҕԺȏǃӧφЫϊպݑŚÔ +Ԗڸ햟źܫ߈Ғ֖│ɰРެҤȣε +󍸻݂ȳ纔嶹޻źȑĠתηȈԖ蔭ع +ըҬׄ鲌筺ΎÄڤՕ٥Ҥʢȑ +Ġ׷ηƢ꫗ڤժȑĠתηȈ +қєܖˋNJԕФӶ݊ŝźڬǑĠ +޺תηȈԖË׾陳ҩفݝ筃 +ڿϽҤ󭻺󯼚ײϟƣϜ +Άӱȣε󍺶ҁŭߎź‰ؕ +ݝڲŊˉݑޞ㇥Αȣοٕ䔩鲗ᩏ +ǝΑѪתηɸȑѪݝ +ӤФҤȩӨ̩ԹѨǺ䔩鼯 +ߨԔķӊӑƞշݑŊŚתηȇڥ×˴ +ʒݜힻڸźצܫߨݯ񨹚 +褷η筺ըۖի翾꿉® +銮ڹ޾ź܉ߘԖŕ鑽ĿϜÎ +džŚתηՋ垗ܑ +ϢڬéԹ츍Dz緊Ñʯҹ +袍ޯё몆ȵ՝ރdžȿ튴¯ӥ +Ĕߧοևߔז夳εÄڽݤ +Խм߻ˍ߻ʟ̷ީʠźצܫߌԖ +ʭ׿׾һްϑ΀ղ싯җƝ +Հ冢͖Ūۤ巫ݙƑ쩻뾧 +Ñ뭧Թۓ啗Ŧϔٟź +Ȳѱԣܱ➺ƚż՞Ī㋝ӔƟ޸ +źȲϱԣܰ➺ᴆۦᄧ۳맟ן +ìަФ˸ȩґϽƝ뀢瑭則Ӑկ +ʻѤǯϜڹؑ떵鶊ǪٱǞČ +Фնפ߻󯜸ߙ̘ګ +ڢƭ󖺶֤ۖ˯ҹݖҫӧφ̙ӡ +ǿź䕼橷ϸՕ҆ϖ菱ӱԣڲ̄Į +䈿ڽФǏ̜Ԉʑ֓Ե၃ÊϽ +ԃ藲ƺȣҴ콙菙ӏրʴ +ҿۮ˜ƐϠڰӤ렧ɦ뮇 +Ӛۏڸԣݝ콩䔩֍ +ݷӏΑ͚‘ʑƣȣεʻҡ͡ѪݝӤФ +ҤȩӢͽʼܫ㨻ԃޮŚ +תη󟈸ҥٖԑ򷛶ꦫܫºߘȟŢŕ鑽Ϲ +Ҥ񷨛ηǭȷϼőƲݏǝ +ÃdžӤ٭ąݏǝÃdžӤƸߋ +׃Ŏ䗊蕹֦ݹǝ͇盞؋ +푖ǽ򹺾ϰםƁ۟ⰜؤծސۍԹ龐 +ԔݿŇӸ۽ٸôݐȓ󖚯ᨯɫ +ʼnǑͯ޻Ҽ֦Ӥ̰᛻Ԟ߅ηݨә茽 +ʡߩГ߳Қ׷֤ÇϺߦʼܫ߄Ůʤ +٧񞫚䉈ϛ렑פҤη䔩ڐŽ +𓐵푫ʑƣȣεڲݑƜГՏ +۶БҤη󭺝ѡڙ羁ԏǝ +ÃdžӤȬÎͤʼܫ߰ź͈ +ʼܫ߰ź̧ܫ̚ȕ¥ȥ剣ݏ +Αࠎǝ٤Α‘ʑƣȣεꯦ󍺻ҡ͡ +ѷݝӤݦФҤηȩӨ̩ԲԹօǺ +䔩ųዻ×Ӥȣε󍺻鉢ɗʝ +ؠߏʫ߽ÑΧתηꧥє䥋Î +ߍŚϑ·޺תηӢܛҤ㶾ڬ +ٝ‘⒬ȏ铓ˏҩʷ䏺׷η֔Ԗ +ݖźȕԖҔ˯źꯦ +ȞԖݖȋȉŷů󇭺ȳŚ +үɑ΀й҅ҢБ˟ʵ믰 +ݮ˥רη򇝺ˠըۆƶ㮷ɚĿÖ +ʑǀԴ҅ϬɩȲȿ﯒թ +ҙз伏תηƪФۮǩҿȽӛʛε +ܳϴÔ٤ޯҤȟշ՝母ԡ +ߡەȲȲݱܫ꟪ܙߚ‘ڲϤőֺÖź +Šεϐ՟ӵÖ׾퟊Ҥȟշ +ԡ᯻⒬ŽۻϏ̙ӔԨη򪇝盀ꤊŊ˰Æھݟ +ݷ锨Ϊ́ꤊˆܡݼ⫯ӧφՙŽ +ԹцͧꋜŊܡڽНǏ޸Ǒ +ʷἇϞی׶ዻޤŔ埿ĺڤ +ߚ̛Ưٸˋ՛ⱖæ燡잸挫 +ܫۏӋݑʤ탖г贻٤ۖž +ބ࣢ȕ˶ +&] +[s3;= &] +[s3; To get the image constants into your application you have to +use somewhat obfuscated but thankfully short sequence of preprocessor +commands:&] +[s3; &] +[s4; #include &] +[s4; &] +[s4; [* #define IMAGECLASS TutorialImg]&] +[s4; [* #define IMAGEFILE <][*/ Tutorial][* /images.iml>]&] +[s4; [* #include ]&] +[s4; &] +[s4; struct MyAppWindow : TopWindow `{&] +[s4; -|MenuBar menu;&] +[s4; &] +[s4; -|void Exit() `{&] +[s4; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] +[s4; -|-|-|Break();&] +[s4; -|`}&] +[s4; &] +[s4; -|void SubMenu(Bar`& bar) `{&] +[s4; -|-|bar.Add(`"Exit`", [* TutorialImg`::Exit()], THISBACK(Exit));&] +[s4; -|`}&] +[s4; -|&] +[s4; -|void MainMenu(Bar`& bar) `{&] +[s4; -|-|bar.Add(`"Menu`", THISBACK(SubMenu));&] +[s4; -|`}&] +[s4; &] +[s4; -|typedef MyAppWindow CLASSNAME;&] +[s4; &] +[s4; -|MyAppWindow() `{&] +[s4; -|-|Title(`"My application with menu and images`").Sizeable();&] +[s4; -|-|AddFrame(menu);&] +[s4; -|-|menu.Set(THISBACK(MainMenu));&] +[s4; -|`}&] +[s4; `};&] +[s4; &] +[s4; GUI`_APP`_MAIN&] +[s4; `{&] +[s4; -|MyAppWindow app;&] +[s4; -|app.Run();&] +[s4; `}&] +[s3; &] +[s3; Here [*/ Tutorial ]is the name of package where .iml file resides.&] +[s3; 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.&] +[s3; Note: [* #include ] works only when images are to be +used in single .cpp file, otherwise you must put `"obsuscated`" +sequence with [* #include ] to you header and +[* #include ] to any .cpp file.&] +[s3; &] +[s3;= +@@image:1444&680 +흉ԔdzˡܓŒܡވļЂ׼ɶʹĘ +ͮ䂖蒕ѴМߠӽݳ܍Ãׯࣂ˭ +ȼ՘Ȓʙʦ̲疉ĊקڬҺև䢝ƀĔ +ʂǍҏӳʦ跈ݡۧ۶ۅЮ +Š؂꜀גڙҡβ̈́堏ѩݝ +ԑŇ貦皋⮌ׅ +ޕ؊Ԛޛ̜̌ƤԳ̪눦г̈˙г⑧랎 +ꆢшᏹ벐񞀹ܩځŕ瓋Ƚ߁ߓ +ܥߵŮȤɥꔈЎâڑ +ﭦσϻǼɳᶭﶣہ퍥ƹϒɔЬ񊩅⻙ +ō܏Ɠˑߥųڸɹړï +Ճį͏䭺۠ňԌδ䧲ڜ再̃˨Ɣֵ㷫 +㶲麗ޜɚˢĩƪĥDZԌ̰󲎊š +мיĎ˩ײ޻ت԰󳵫 +ҡɣĠМⶊקܗ폭˕קڠݛٕƨҸ +ъձ毳ųۤČ倨ٞ߄ +ˑʅ턹玆ٟčৣ瓨ܰܜӜό +ꚠŲݽçꀨ̚ʄӿցͭũ +Ώظ˳ޒΙпҖŠ乌ϯڏ١ +޽Ԏ޾Ҩؕίνȣ۝ַɂ԰ÿꭟ΍ +Ύҷ٨ձְ㭟ߖ•ґ߱⟙ +ɨػŴƑ•պںӂĕӮѾԬ˸ݖѳב +ƈ˳䔥Ѭ嫴̿݃埭՞֖ +ʚט؇ڡ֢Lj̸񃦐΁餬 +⸒ߕӽʭઆϬڪ۶۾ځۥǵꈖΓФŇӶ +ѸŢק՘̘﫜ګѽ˧ءଂØ +Աݡɷջ߶ūߎՓߤ蹇 +Ə˴򼦯ދ؉͇Β +ᙋޡ㰇㿇܂ι⸆ː͈ջ +˷޳㐋؝ҏ܂Ӥ֍訒֞³ +ՒᜣӇբהᝌ⠞Ӛ +굙ѬƕԔ䁈ϖϸ̾̀޾ҼЌ˷ +ӰÎڍʉ̖̍ඵ⡇ܸ̎ʝɢ +٠å߱ɔݯŠڴIJՌݜҁ״鈈€ +Ӭྔնܒ·ڞަҺ +٬ԡȬÂۜʩѬڭ🇹ܴ +ЇʿҜҋℬ󆘻ĪŽΨҬ͊璴 +Í؟꨷χ૦Ԑ⽯򉆠؂ɵ䱙 +ẂψҿӶҟ޼ùˁ♸é켢Ϳ¸ +̿ċ˼弟ҧľز޾骲 +ɸ᫽غ⩠״ш۴讚ɝٰضض +Ӄ”ئɀ挝ۥտ˽ߣϥ +碻Бӈƣτώ՞؅̲㡞ҕ˳̥ +؂ǶкѴ¶Ԋ۬ՑԱя +퐚ϒܓ̢բ滎õܼ丧±􀁪 +ئı㜕Н׈욚ˑט산ڂבՎ횎怗 +ج䳹𡇴ż˜޻ҵԷƿݯԸ̦̈ +Ě᫭殘؂ÛɪʊȉϺںܼؖ +譄εߚϬचےڽԬބՓҧƖ׬铇 +ćЀï妁ߋģ߰оϡ˦䲿薻ͼǞ˯ +қﳍ֢ͩ㾋ç֢ĶŦ +ړı姭ߪ҅Ĺאϱ۲җ˙՘ +ɼئĒڴۭġᛇ +룉᪅Ԑͼ۩ʲɏ
ρѬʬ +߆Ҏʎے鎵Ԓ䕴ҢȦѧ +㞅̶圠ȹлחߔ扰駩Ι܈؁ +ؓ쵝噙ÜȪ߻ГʄϳѸ +ٺ秒Ӈˑ菨ѽԑԅ֌ތڪƭ +ӡֱÎ;͙谮ޣޣۡ܌յʯǜࢮ +Β̧Аڥ§㺖ԇΌ̏󚔣ﵢ˼ +Ɏ°큫ݷϹ؏Dz͘σȃЭ +̏܅뤩돔ήьȒ慭ЂݘֿٝҌԕ +ϩ׭쫖̫˷έԕϪǎؿͿҤ֒ +̓טͿ宾ޯ붱Ͻ֎Ʋ؛Ӹã +Ƶ¯ॐ˸фކՑױ菨ﬨ +ژݡ̤Ð懕Ðٱ؇ԌÈŐ +ⴍԌȊڿž֟⪰ⶁбǎҢ +Ljڈͮاѱą鲬ꭃ͂ڣⲈıæ۾ԌÐ +׮۟܂ʪ߱бܱίߡꇃ +񽤾߈ӑ旨ԯΏŐ􃾪劔 +惌əʾ˺ֿ̕ߢԠڷǟ +бĮЌҕǞЋ߱½؉Ŧɔ卥ڱΦڀ産 +ق³í⪴ͻ횖ؽȪܷĖ๕Őȍ +ȱšŐббԌ鋊󣝝ه +轣ӴŔݥ慽εִͥӔɮ +ۅߣӔވ܄ꂶʂΫĤ∂ÐбԌ䅕ÐŐĦ֌ +Ԍ䅕Ðٱ䍕Ð٢Ő捊∢ȊЅÐб +ֱᇕȊԌÐםȊӋб +Ԍ䅕ÐٱԌÐݼá۝Ȋżб +Ő쫆ℤ䅠ÐŐ舢ȕŞ˼У +񥏼ȳ捶ΐбҳڂܰƔֽƔˑ䱃 +򛄰ϔÐȾޤͲҷܥ驅ڧ𗤣Ҟͥ٣أ񻠒 + +&] +[s3;= &] +[s2; 11. Toolbar&] +[s3; 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.&] +[s3; &] +[s4; #include &] +[s4; &] +[s4; #define IMAGECLASS TutorialImg&] +[s4; #define IMAGEFILE &] +[s4; #include &] +[s4; &] +[s4; struct MyAppWindow : TopWindow `{&] +[s4; -|MenuBar menu;&] +[s4; [* -|ToolBar tool;]&] +[s4; &] +[s4; -|void MenuFn() `{&] +[s4; -|-|PromptOK(`"Fn activated!`");&] +[s4; -|`}&] +[s4; &] +[s4; -|void BarFn() `{&] +[s4; -|-|PromptOK(`"Fn2 activated!`");&] +[s4; -|`}&] +[s4; -|&] +[s4; -|void Exit() `{&] +[s4; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] +[s4; -|-|-|Break();&] +[s4; -|`}&] +[s4; &] +[s4; -|void SubBar(Bar`& bar) `{&] +[s4; -|-|bar.AddMenu(`"Function`", TutorialImg`::Fn(), THISBACK(MenuFn));&] +[s4; [* -|-|bar.Add(TutorialImg`::Fn2(), THISBACK(BarFn));]&] +[s4; [* -|-|bar.Add(`"Exit`", TutorialImg`::Exit(), THISBACK(Exit));]&] +[s4; -|`}&] +[s4; &] +[s4; -|void MainMenu(Bar`& bar) `{&] +[s4; -|-|bar.Add(`"Menu`", THISBACK(SubBar));&] +[s4; -|`}&] +[s4; &] +[s4; -|typedef MyAppWindow CLASSNAME;&] +[s4; &] +[s4; -|MyAppWindow() `{&] +[s4; -|-|Title(`"My application with bars`").Sizeable();&] +[s4; -|-|AddFrame(menu);&] +[s4; [* -|-|AddFrame(tool);]&] +[s4; -|-|menu.Set(THISBACK(MainMenu));&] +[s4; [* -|-|tool.Set(THISBACK(SubBar));]&] +[s4; -|`}&] +[s4; `};&] +[s4; &] +[s4; GUI`_APP`_MAIN&] +[s4; `{&] +[s4; -|MyAppWindow app;&] +[s4; -|app.Run();&] +[s4; `}&] +[s3; &] +[s3;= +@@image:1140&464 +݀흉Ԕחހу절Уɴɉ +̦ދڐֿ߷ւه +ʉؤҦ٤ԸӲ摊ֱי捑΀ +ݑͮ僊хߓ޵Ȑٟ݅څ󻓢˜ +Ў׼ݙѣݗȍ۠눏ˍ̀Ƞ흪āƁŭ +џƢׂ̪Ѥ۽Ô⾂۠Ɯ㶦ęڄ޽ +ţɣȬΗ¬ɭ֑Ҵ灢ꍓٰ傺˴識ﭶ +ՠѬבЃ뀙법̋Ȉځ̯ބ͹ӕֳ嗍 +઻݆㻓⒋Ո׹Ɣߐ剁 +敬ݹåн׸Ϟլܻ +♆۫Ӕܕ˟ȗ΄ꓲÁʐ圐Ҧ݉ҧނ +誱Ӛ捃ܲٻËݞڵл +տߔڐɭ®Ćȡճߨ̄ն +≫ݟۆۊ烮ԯтҖƧȗޛȊ܅ +̮כśӰѼﰎ쬶ǘðޘ֗ڭּ׳ +ũʵɊҫȝՓݚࡩփӯІשǺˎ־ҭє +ʗլޓˋìפƮ՛݅ϔ냷ˢ쮿ۡ凄ݬ +ݽ󣥾ũዅˡˣ䮮՞Е +ױª١ˍߵϔߟ׉ɦ瘺ܖ϶ +ġաɩ빜ǚ̩їɂ视 +ٻʹ䬃ߩϴҏ庯LJݳ䂸źшՈ +ֽݍ׍ܬީѲɋߧڠմ݅膍궮Ƭ +ō×ܽۮțºԃ鑳ꪰ☕Ƌʶث +璞⬤ӛ͑囙܍ɇܼ콵 +ރż®喒詪Ҕ勃ꒆפ޸ßӹĚՐ +룪埙ȭ˳ʿſâˣﺧ +ӯۘ期ɬͿӜĥ +ݍẐĒŁ똃댋樷ė +ȬݭԛԚߟЦ񢤪ƫƨȤÕܜ蔁Ո +˛۸ +θœƞ봖ϸ͖ܺ +ᕦǰړɵ䐜잤ĻԐůʚ +㇟ƄˉɻƄڰʞ쑶􏒎ߏ +כō䄵񚲸ƞجѝ޸ +˻ږҘƒ—ˆ㔯ũ¤Уˆ +珬ף⼥Řꊖɵꖏ؝ +ܾɡƋ̵⚟ҜË؜Ҙ⬜ټ񉼶Ǵї +蔻ďɉ׬ܳ⒵ඪ麀ြοӥкƒܵ +Ը׹Ê߄﵏ۊЬώߐۏ +񱒇ǝȯ߈ʈ̈́ߜȭýְڻܰÎ +ކټӚҌΕص٤ǵʵܽ슶ԯո +䪌ݰԏͼ鰭ֳҭʼ밄 +œۋ˾Ᏸ򐝺ִҵ͸Ҏ؈ͧ +ł‚蘧׼۷ɩ׮Ǝِ +퉵󧉨劈ղɛϕ澥ӟ쬻묪ɝ +֡ѫѲׅ߼ǥƶާ궦ŒӘ +洖öހ֎󘙦ŋꤥĊ㶎܄˞ʗɄָ +ۡؕ뀍ཅӘȲέÈʮ瓟ݝ·΄鄼ܑ +͑ܒڼޝړ𺌺Ш𺹧蘷׃ϓߨܱջΏؖ +ɂ쬾ЊЧ񿤥ܕɚٚ͏Οˋˌˆ +݉ߑ⹞ոՑݶڙ誸޸ +措і̆쨫ܛơ揸⩛դ˷ŗ +֕„㷰򴓏ܢĝݼϜԈг +䮝̡ôߗńթν̛⍆Ō +ņ޹ǡ믊ͬξט񝍤腁얜 +؟ȀĠړν܇Հբɒߕʤ +¨ݧŀֵĴ󶻛َ݁ܵʙ㝜 +뀗ϗ̾ڝ񪘹āƵřݥ܎ߢҜ +Րٱˡͫé׭ޅ늣ձĨǑ訫 +֥߶ؽ겪똡Фϟ礀ѨɺՊØ +݇ةΊ⤴ઝќ۰Ѩ܅ՠǽ֊ +ۨ껛ݵ⯩ͰŖҬ␫эשŽׅשݏ +ˮՎ⇵ʱƷՁɄ身ՁԺՊź誕ѻúݥջ +߇ؓڟ̽޺׬էר +߄살ᡸՊۚՊۥة燺ڕ߳Ҝ +ݷҽМږߥՊ +ן؁׀ڿө򌪐ۈج䉎ޮϛզźݿ +۵؁Ǖҧ蘒⋛™صᑻٳ +Ԏ迧Ʀ閨 +&] +[s3;= &] +[s2; 12. StatusBar and decorative Frames&] +[s3; 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.&] +[s3; &] +[s4; #include &] +[s4; &] +[s4; #define IMAGECLASS TutorialImg&] +[s4; #define IMAGEFILE &] +[s4; #include &] +[s4; &] +[s4; struct MyAppWindow : TopWindow `{&] +[s4; -|MenuBar menu;&] +[s4; -|ToolBar tool;&] +[s4; -|StatusBar status;&] +[s4; &] +[s4; -|void MenuFn() `{&] +[s4; -|-|PromptOK(`"Fn activated!`");&] +[s4; -|`}&] +[s4; &] +[s4; -|void BarFn() `{&] +[s4; -|-|PromptOK(`"Fn2 activated!`");&] +[s4; -|`}&] +[s4; -|&] +[s4; -|void Exit() `{&] +[s4; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] +[s4; -|-|-|Break();&] +[s4; -|`}&] +[s4; &] +[s4; -|void SubBar(Bar`& bar) `{&] +[s4; -|-|bar.AddMenu(`"Function`", TutorialImg`::Fn(), THISBACK(MenuFn))&] +[s4; [* -|-| .Help(`"This invokes MenuFn method of tutorial example`");]&] +[s4; -|-|bar.Add(TutorialImg`::Fn2(), THISBACK(BarFn))&] +[s4; [* -|-| .Help(`"This invokes BarFn method of tutorial example`");]&] +[s4; -|-|bar.Add(`"Exit`", TutorialImg`::Exit(), THISBACK(Exit));&] +[s4; -|`}&] +[s4; &] +[s4; -|void MainMenu(Bar`& bar) `{&] +[s4; -|-|bar.Add(`"Menu`", THISBACK(SubBar));&] +[s4; -|`}&] +[s4; &] +[s4; -|typedef MyAppWindow CLASSNAME;&] +[s4; &] +[s4; -|MyAppWindow() `{&] +[s4; -|-|Title(`"My application with bars`").Sizeable();&] +[s4; -|-|AddFrame(menu);&] +[s4; [* -|-|AddFrame(TopSeparatorFrame());]&] +[s4; -|-|AddFrame(tool);&] +[s4; [* -|-|AddFrame(status);]&] +[s4; [* -|-|AddFrame(InsetFrame());]&] +[s4; -|-|menu.Set(THISBACK(MainMenu));&] +[s4; [* -|-|menu.WhenHelp `= status;]&] +[s4; -|-|tool.Set(THISBACK(SubBar));&] +[s4; [* -|-|tool.WhenHelp `= status;]&] +[s4; -|`}&] +[s4; `};&] +[s4; &] +[s4; GUI`_APP`_MAIN&] +[s4; `{&] +[s4; -|MyAppWindow app;&] +[s4; -|app.Run();&] +[s4; `}&] +[s3; &] +[s3;= +@@image:1084&724 +ـǜ흋ٮᫌ҃洛Łʹ˺实־뫌 +ɩח撲ϞΜ൘ߺϾο޿왳 +ŕ̘ƑƼ粴ֲ̤՚Ƌ䘵ÿڶŦ +苳˚ޗߴۺ̉ +֊Ϊ转অ􂠣ܗԨџخ +ł܂יãēɨׁ̒ߨྫ۾ͤ近՚ѹٓ֠ +캯ؙ̼Ͷ쐂԰γŌƞឫ +詁ًɒ݇֓׫ꀦ΀晉̭םɏ +߶ñޕΟꝰ҉̵֬۳Խ񕁨¬Ͽ +Һʕܥ¥ﱙ٤̋Łԋ +֎쐋늺蓑ᝑ쬫٦ϛ̙Ȏŏַ +ѹռɄȢՎő׾˛Ӻ +Խˋ벞̫Ҍ˓賦ҽËؚƟԨȦţ +ꘑŧ叏֦ع۞ڸʲ̯䃍Ǖͷøɰ +ĴοӑБ˨ʡѯ͆٠ +˫˦֌ӊ㓉Όͬ嗶޴ѽΑ𯈪ȫڑ +ʰȉׯϋŘ҃׍佚㳜 +يÈռíϯؠˊ˱ǻĂتԽ +ϛ͚ũԄ⼓쟍Ö溪‘ѕ܉ +ͺ짙ՅԉšλȹكȫȎòƯȿ +Ŭю琎ψѥ̯đʂёձЬʯ糰፮빞͘ѷ +줧ϗпؔ֔야撽؇̰ކً婬 +܈՜٤Ź萸ݧҫǬӫÊNJܕ𐶐χӭ +ܛĚ̙񜰭ݞ봳ޯŕۏ٧­ꛚɯ +ƚہދŽؠݢŲ񙼝 +сܿþבېճ⿭ۨϸ +쥻ƁŐª㐗ӱ߷Ծů +봍韺偽ϯ鎉߆Μ굸ጣ +۸Ǜ쮖绥Ӟę篘լꉙƛȲʷÒ +Ɍ뒡әȞij׿׺ +ᔍ캝ߵך؊좕Ԣÿן㥖 +،ݵ켶μڝΒׇ̽ۆ +둧ֹ趑ωЛڥ匙Ց􉯃ɴΌӑ +⯑ž爱곇㿯毽̆邏ݫ +ᜲִѩ٥Ѭѭ۾։ͺʅɛێޔЧЁ +ԇΒ䧨ʞп񥙠Ų둩ƚՙٸǗŴʈË +﵊Ѡע⢛菚ۭω׌鍟ƘƖکͧҜ +ʷМȡ˳ͧà˘߂חʾճߩɜ +ؑزݸ֡NJ܏Մё̢󷤛 +݂Х巁䗌Ü忮֝ +ӦਫÅ존β؞أʹÁ +ĕ֧֨Ɇ󦙖ęɜƟӸ﫜°֕ +َĠ묎؋߂Ȼʎޭ枡܏ғ +ކ贪ҵҳ▲ߞܺļܢېɨ +ԧα覗ߵڍͳЫζ䗵뽑׸󨓷ۘ񾛔 +ë挅ᯝ̼̞̎ҭ䌀ȊŀԌٵ +㍾ĺĂ盃ַ䷃풐ٓԾڟʥ +Էޛ֝գγåؚث؉ک色Ӹ瓺 +ш̭͉ظΡݖֱҿҟΐƥڸܴ +ʆߘȴîڇб쿤泪âňȭ +ը⑄åҊɃ̹Ϳ +ϰÑڈЄդñឡêՂ󻜼ܺȐӑϸ +α򣇔ĎߟǥݯőýߗЄяс +데拹΂䖘ԋ߻ԡ蟤ݭܛ +ۗûຐÃժ֧ؕdž™ۈꍶݲڬ +ů≿ݕշÿܫǏ鄥م +̬너酄ˡ⣎ʾԂ珆䗆⺬ܥ +ňѺ́ʜ͔،̄ճө膂󠮆 +ɻ޲˽ք檫狐鿛ʑш۠šǨ +ģŵꥪυῡ󊈛裊ԱӞӓՌђјᕂ갫 +Ūĕܢ⫦ԑўё޸ԑʼnԑ +΀╅׬貮Юݡ؏Ռ +Ӑ툨Ŏց޹ŧƆ +Ͽގ׻Ɗ݁֎Ȫ鳭࣌ӣ׫ȫ՚ƽ +ߟҞڑǝ˪͊ѸŒ҅Ü +řҞŵō犨Ӫؾ۵Ա఑ +Քƚ롪ǡЎŏǗȌԂᆏڽ׫שꤠ +ґͩҝݺЀńƻޡ̆ʘ﷬ݹ˞ݝ +畽ԔƠȴ׶בŝٶʹԄŞ +ẪإꞐԑ񳊎힜ص褣ƅĕčéކ覠ұԄ +ōԑݧ≁Õ㪈ꤠבۣəϐ +톮֘ۼ拦騘᐀ +郪ƒܨ軕жěڢшͪȃԑ񃅨ΣΨŤ +ļ訄ԑшͪɌ֜ѸՌĕĴ +㧊ԦōĴ˖Ư׽ީԻϠέ +Α˖媊ו眏ŗĕヷʦ脵ۥ֡– +ƪ̩둕ӗޡըĨȨ¦ϱէŭ +˯圭э؈敧Ŷ㍗¾ͱʥۧʟݑȽ +ᱭѪʃƱʥѩ艨̿ۨ瘕իޟֻؔꕹ +ۈ݉ʙ߅ՔѪ˦ݲɝӶЏԑш +Ťޟ߫𩯫֣❰Ɇ®؄ռ򝩥ݞɷ唓 +ڒҒܽƸȻȶ銗ʣ߰㋲޲ +ו׀ᗬǔ퍦ջ܌Ōځۀ + +&] +[s3; &] +[s2; 13. Adding child Ctrls `- widgets, reacting to widget events&] +[s3; 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.&] +[s4; &] +[s4; #include &] +[s4; &] +[s4; struct MyAppWindow : TopWindow `{&] +[s4; -|[* Button button;]&] +[s4; -|&] +[s4; -|void Click() `{ PromptOK(`"You have clicked the button!`"); +`}&] +[s4; &] +[s4; -|typedef MyAppWindow CLASSNAME;&] +[s4; &] +[s4; -|MyAppWindow() `{&] +[s4; -|-|Title(`"My application with button`");&] +[s4; -|-|[* Add(button.LeftPos(10, 100).TopPos(10, 30));]&] +[s4; -|-|button.SetLabel(`"Click me!`");&] +[s4; -|-|[* button <<`= THISBACK(Click);]&] +[s4; -|`}&] +[s4; `};&] +[s4; &] +[s4; GUI`_APP`_MAIN&] +[s4; `{&] +[s4; -|MyAppWindow app;&] +[s4; -|app.Run();&] +[s4; `}&] +[s4; &] +[s3; 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&] +[s4; &] +[s4; widget.[* WhenAction] `= ....&] +[s4; &] +[s3; or use equivalent operator version to save some typing&] +[s4; &] +[s4; widget [* <<`=] ....&] +[s4; &] +[s3; 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&] +[s4; &] +[s4; Add(button.LeftPos(10, 100).TopPos(10, 30));&] +[s4; &] +[s3;= +@@image:2449&1489 +ꁪ݉ѹ̽⻌踮è׌׬…ۡ㔥֊메 +˺ภǑᐂɚمιŞ򒖴 +׎ƝӤ҇算ҊҺڹ҄ċْ̓ +̊ϕՀ儢ՆȔӔ劳쌜¼ +⌀͜딋♶ǯʫ똥٬ͳըէ❻삒ܢㇾ +豄եΎۻ뽤䎀ıǓ籧ཅЄЏڲ +ե«؇̲کȜ鋎ΊϽҎէÀ긧 +֐µŵյϑܳͪã޿ݽ霭и +͸ޕܥִԔپυ +ТÏǜֻҼݶɐ쩷ʾڳӗыȎ +ܘˊ椹儧ӊӺᇬ腚Ӑθۇڴ +϶ӭܼμףㆻӚݓ۪ޘãܹ歧Ιʿϋ +Ŷ١ۦ޺ݟ½ǽ҂𝩶ؽ͙ +ʯܼҳ懞Κ񋇅 +މ巧͝͡ǯ诱ѻߖެ컢 +ۦŧǭḹᆥ˷Ӳ慭“ͥӻ䎟Ͷ +ãǝ̨ܹ֖߂Ҋغ +܈Džߜٔ½ѽߣєއݴΞѲijԗ +΄ϼفݚԻꚏѽג͑򓽸춿ހףܱ׽ +ªݘƞ֯ݗ֛ۦԯ +۳Ȋݍ뽁׎띳˹̾̉î֘鲛ϱԻ +ў˻͓֦Džƪ궝΀γׯϢÛ減 +́ǩ۔҂图Ѥˠ۬ӡѸܸ +àž޶ݒޒ٤뚟ʞ֐ջú +ﺩº޴홝󹗷αɯلȜ +Ϲʖ¸ᅺ잠ė닫ːөήËݡܺ +ĭ덣ҳϬ䖢ɚ +ۿŴޤپϣΰĥ㎳ǟЁ +ƙ͉۔婗ờݞŦ뾍Ա眎޶ +Ŵ̆࿭پͻƯ޿ゃЬ +ޥŖŃڢظݹݶ冲ǧߧǥ +⛢ׇ쌌ɝӴɨͦӜⱗ +ㄏޅؾ᧱ЦܪݦדҊطή歫ݥم˿ +䄏ԛƫۚٓĦύ˗›ڲ玏͙ҡ +ӫٽźөڠ演Լݗڦ +ט徠Ӂۮ֝곫ݧ󋑯ٳί +ƥֹӄǹߡ㔁ӛӟڷ֝򁾓Γޱ +ț۷碗ƺ͓ﶯՆ֖Ƨ +Ȗשּ×ܔ۫ɦΨӳܓŖ +Ɯނ孻ڐ鍢ӝǏڴ볧įɍڲ﨔Ҫ +ܨڼޟݾ󃢾򙞶ӌӽÅř摆ʖ +Պ˱ް³ܜ܊ܸ̒Ŧ֮ɍٔĦɦ +⒝ͣťʼκÓúѳᝇǞЧю +܌Ē腹ִýиǮԃݞ +׽׼Ӊն򪗄ƁڏԹّ搱“ +ܩ䍓̝ԪԿШîƓͮ҂ +۩̍ٸɳ͚ѹٜ񱃛옞ȩӆѰ +ܻϷ곭ׄƦȯ躦貼߈DŽୟؔ +ߴХʡޑ楯򙸱Ƽ͘Վ౟ +ߞŠع鹲ǜڠħ +ĜջҾĦϼЪ喟΃돇埜ٴӗ߻ +؇ϩ᳜ꍀД塀 Тԛ +½ТԛҤǎΡݢڶ +ᷠز޹ϐ߲Һɷߟܐʌꞡׯ׍þݔ +ͥ׍ÑݷôАˍӺꍀ҇ὁ +ڵԛԀ½ʕ˥ꍀǰޗԛΧयὁć쿦 +֠ހ頸ϼǤٜ狊ֻΆ͠ϕҀ +烥㇧먒ũՊϋʇ┬ٳ +جšހ頸٤Ñϲހ嶴μϕ +½ֻ䀇иМԛཫꍀӿꍀӰޮԛϖ +Ѕ֞ڽҹꍀҤٲ̀АزټÏӲ +ݔׯȗԘӽ޶ʻի݀כЗهݹȷ +Ĩˑ葩ꍀŨހڄ葩ꍀŨހڄꍀŨޭ뵿 +ӳЪďی҅ޱֲŵƆٰڪȯ +Ëԓޥϰן֕ŵݱ氏̮𲯯ލ +ʹ®±쑉ޘ򉽑ׅữõ֏ߕ腀߿у +؅ڄܢډꭒЫϴ֓ν +٪Ⱥ߄㒿ۆн㹞 +͎Ŀʷ˅Ȁןهگ􃀁ĥώୀ憟缊 +յգﵩ͞ԋāƒٶ +⃪Έմٝ嬾׿褒ןڄ擀 +Ӈᖭ̛̼ٿʇϣؿӹ +ãǞӽַآś׶ҟ𝅾ɋ +ԯťՉ󫦇ƏϢؔľƠյ +٭½ՠ뫛볯ϴՍ꿅Ճљ嵙ͭޜ +쉕ӃԦត걏ޝϼ胪 +̏׉ýޟ묷⥺ެ濩֦ݚ遦͡ńƠƠ +߰ˇýӖٽٍփͭ޾ދڽ뙅߭ +ʌҾ䅚̿Dz뽟 +׽ݣճÊ璧ɚijݰϷϿ +ďŠݏ޿黓󴃗݅󍦾㦨׶ְي +ޏضĖąɄǚ棰ַɿӾ՛μ +śݬ׾½ˢ􅼟̜ۜϤ⚸ +Іσڟ硒ٶ￝ۍij߇ +ꐞȑ鳆𣻋Ⳡ޽ݥ¬ׄ +ߣ󡣽Ҁ˄ˡݽʾڬÛɢݽ +اۢЬߏՏ쯕րØѳִ䁕 +АƁ㕟黬ޞϕя鵬 +̥ϮޢӛЙ͋糮ƛ˞֫帶ףӘ +ޮ֋ﵴٿ͢îǽƹ역좀 +П˴ɟԵܼ޸Ͻջ扫 +ۍ؏ڌýߑŝۖȅμǡ +ϿͿƾֱݶǘӟ폱އʂ֑ +Ũ߽ƾլ±ؙ昽ژۚыާ +ڔľȚϞ֚Ǽ܉Ï +׹喃փ凡ϖԍɠʺЗ +̤،Ⱥˉ׷𖀧džгǷ +׫ƼՙǼݕ՛Úƽަۤ +ĉŔ׽ߑڥѲΙԖɫǬƿڿī؏՛鐎 +ݱٍ⾘ԗݫߩ皑񜱏ع㏕ +ϫݏձ礌닕߶Օӏ֓ꪖ +Яҁч𳼉ޘŻ恏Վݺӿֿ +ͷ홉ۍ仺׳ĉղ︥ߝϽ +Ŀ۝̿ﻍٞбȜƞϛ갩 +тܝ㡃ǻΣ +ﳭޱۍテﳱ跉ɋƧ߮৯ +޺ٝۼ諭ЗǎΩ۽ý +ҲΓ܆ܐѫ֨ǧݬ߼аꭆ +୕ޡåꆹי𿫤̗ +Ԛɥۆ밇شıǥΞκ +򻺖ތ˽ǯ瞫бԵ׃ޖ +ὼ隳瓺ݹċﵠҠ +ݶ۳﹘ﵠހ۠긫ԛێۍڷﵴ +ЈꍨԪς﯀ﵘ՝݁ШێۍŴ +뷟ێۍێۍͅ睮ﺝٖۨ +ܯڭŽʽνݤۡý뗖Ĵʎ͗ꭇ +źޞċϿ聞馧͔ꭇꭦٽ +딧؜ܞ˥ێۍگǭƵ +֝΀ֿׄ멃꭭彼ͪ೦ٜю +͠īˆۻħ⍕ٯֻҦͪ͐ꭥ䎯凑ʺ +הƒȓꭇꭆ߷ޞẼٳƺͺ̗ +ƥ׃Ǡۍ׻嫺ݭݽԛͺëʳ +ۍ˹ݼϽ솠ޠꭆ័ۭ携 +ѓ퓶קּކײݳ鎇חٶߨƒ󥮮˩ +޶Фת݀ýՠ󿑷ؘйᅄ懯ߏа߬ +ƺﵨ訵̹РﵨѦȃꭇꕭ޵žג +ۍǽﰹܚ׿½Ճւ긕ۡ +ШҎۍ﹘ﵠހқǽՀȁˁچ +փꍠꬭꭆԛێꍨﵳހҠӠՀȡ +׎ꭢԛҎۍߩփꍠꭇꭆԛێۍڷ +ڠހǽՀȷ߷ķϠ喃փ +ό߀ɮϠݢسӿϟޗێ +ۍγ퇟ýՀ鎸ͺ귰 +èѽнۢݒƍ뾆햸Ǯ +΀փ햸ׯу迚ƽ½Հ˗Ǵ҄ﵠ +⭲ħٯۢ팱ϡݒіدփ햸ծ섯 +دۢێۍۥꭆۭ񽫫ʢ俚 +ﵠԜɏ½Цþ횸ӹ۾گݒ +ﵛ࿕ݒ׻ޟ˄ +ˁ׻៾䅛ﵳѽΒꭇꭆ +οɛӺӈص𪥇ﵣۅ՛멦߽ +﹘ﵠб磇ȷۨߛփꍠꬭꭆԛێꍨ +ϡՀȭˁʗڀߵㅨǸӯŰ뗤 +䳷ċ՜ҝޟبۍӃ +֋Р½ʀТԛР½ʀТԛР½ʀТԛ +½ʀТԛР½ʀТԛР½ʀТԛР½ +ʀТԛР½ʀТԛР½ʀТԛР½ʀ +ԛР½ʀТԛР½ʀТԛР½ʀТԛ +½ʀТԛР½ʀТԛР½ʀТԛР½ +ʀТԛР½ʀТԛР½ʀТԛР½ͽ +竁ؼάٽ鐀ӈీí +&] +[s3; &] +[s2; 14. More about logical coordinates&] +[s3; 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.&] +[s4; &] +[s4; #include &] +[s4; &] +[s4; struct MyAppWindow : TopWindow `{&] +[s4; -|Button lt, rt, lb, rb, lv, ht, hv, cb, rc;&] +[s4; &] +[s4; -|typedef MyAppWindow CLASSNAME;&] +[s4; &] +[s4; -|MyAppWindow() `{&] +[s4; -|-|Title(`"My application with button`").Sizeable();&] +[s4; -|-|`*this&] +[s4; [* -|-|-|<< lt.SetLabel(`"left`-top`").LeftPos(10, 100).TopPos(10, +20)]&] +[s4; [* -|-|-|<< rt.SetLabel(`"right`-top`").RightPos(10, 100).TopPos(10, +20)]&] +[s4; [* -|-|-|<< lb.SetLabel(`"left`-bottom`").LeftPos(10, 100).BottomPos(10, +20)]&] +[s4; [* -|-|-|<< rb.SetLabel(`"right`-bottom`").RightPos(10, 100).BottomPos(10, +20)]&] +[s4; [* -|-|-|<< lv.SetLabel(`"left`-vsize`").LeftPos(10, 100).VSizePos(40, +40)]&] +[s4; [* -|-|-|<< ht.SetLabel(`"hsize`-pos`").HSizePos(120, 120).TopPos(10, +20)]&] +[s4; [* -|-|-|<< hv.SetLabel(`"hsize`-vsize`").HSizePos(120, 120).VSizePos(40, +40)]&] +[s4; [* -|-|-|<< cb.SetLabel(`"hcenter`-bottom`").HCenterPos(90).BottomPos(10, +20)]&] +[s4; [* -|-|-|<< rc.SetLabel(`"right`-vcenter`").RightPos(10, 100).VCenterPos(40)]&] +[s4; -|-|;&] +[s4; -|`}&] +[s4; `};&] +[s4; &] +[s4; GUI`_APP`_MAIN&] +[s4; `{&] +[s4; -|MyAppWindow app;&] +[s4; -|app.Run();&] +[s4; `}&] +[s4; &] +[s4; &] +[s3;= +@@image:2444&829 +遦ǜ흋գǧКڿ +냟أмށĄ̦睝ΜΙ˻ +ɚƔƖԓʄžֈၯʢڙ܉õٜϠ« +ᴛ۶飫ܱק筿׳ׯɹں䌋πʮ +턎񜙎ȐӖҾ힎۝եϹۆͯΑǺʝ +Т⢒ɹ˜ʪܶ䕊ͭɋϧ馳ϼڊ“Ӟ +ϓ̕ɋ΃ڗԧϭʄ̸νɫӪؒڨȩƜ +ҏƞ„񰰭Ԥحϐ΄Ɩʼ +쒺Ɇߗ٧̜呞ن鐨֋ +ߝӥᬨ׬氧Аប +żϓۙ۴ۙ׀ęրͥǪԿ +ϼϞ鞪ץݵާ̷˞ܢ +іםσГ췢ݾՓިԮڎŕϭ߾ +ٞ۷ַ߲튉ŒЈ +멮ٷ۵竕ϭ桱Ӌϥʗ瞽ʀ +㶟݄ջ߬靤晣ݾɴ붬 +矩쾺Żςςӆ׮ֻ뫾〃݀ۻ +խ҆އ䗺Ϙٔ𾛵ߚٺΡپ՝ +ٰϊӞ߄Ѵώԟ̈́ȂȀ΃ĺ˗ +峏ܳߦܰ릔ၠ󂏴ٷljܺҺ +ԺǷѥٹݥء֡ڎ֐ +ėϜٞ޶߾Ҭ웏̺ӣ߻ٷفäԻϮ +괻ҮҘ׽ХЯ놝ŔŬֻރހƛ +ŬܶչʳޑۋݭϫӼþɺ +ݟӼ۽Ğ·ьόξӸ㋤ +͟Պ̞牴Ě˝ҼҤ昁ޙ +۫ķҩ˸﾿ׯٸ˲ߨᔸڝ +ׄם鳫تֶ̜ꗆܑ +ּ巏ӥ񧷲׼ߧׯ̲⍲۞ӻ +篽ƶˍ⛥ш፼ԡԭܱȥԎߪ퀜ٕ͙ +۷ѩǦѷ꽓̸ΕϝեБěݟݭ̸ +ܗܜݝ嫙ĮȹωΟە +߷ź㠴Çǃ̼ܰܵ٬ +ۊ҉ኍׅ㄀οϳ׻̖ +އ٬ɺۭﲹ៿̯ +Ӳ˽ُғٶΙՒϾŎʏϝ +ňظܽߍƐ̾Ǜ럥䞽ȴ˦Ŕӹ +ڿ̹ƬӪ̺紀쮠̩ěǮ +߈醺ӼޚÄŽȆɣۍƒ +ĀϬ߬ٗӵ墖ͽ޷ř +䀒ﬨѯ˖޿졽÷ʹÊӺɯ +ꬒϾϪԨڈՒ޻܅ԍ殸¶׸Պ +孹̱҅͂ܳ̿򅣼ͺ򑗗 +붛Ҙݻߗ֝ûܶ◡̿ɖز̽ǐ +忑ۗƱ뾎לʝ +ݹʢ͠˙쯕ߋЩ¶ +ܡ䟅־ӆݑǔϝޤݻ렯ڟ֥ +ߡ݄叹쟣ÓӜźϬ¾ +ԁ؉þɢȴϙ۠蝔̴슸՛ƾҸϡ댗 +ljŭԞ۩֕ԏ繤ەƐ𘢟ݒֶ +޺ƺﰧޟϹʑ͹ܗĬܩěݿޫڷ֝ +ł𝦀ѕњӁ񄚸р˾Ź妹 +՞̿襄ٷ޺М謿ɺ +ϗƴ頪خΜݽԣߘߕã凇 +ỻϽޜۮ¦فÉ⑩ܦ +޹Շߟ˷ֿߋ߻鼭ϻʶ߿녭î +ػ͗ϑԋ˾ +ˬ̭Śʑڟՠǃخ켂ϕԠФ͟ +IJܵɷȬޤߖ矝ߝϔ򱇗ߢֱڅƘ +ጬފѺ֝ᙘɎԂ +̀ϝް݀ई݀ฒ݀݅֍ˏ݀ +݀ฒ݀݀֕ݹ투ͰݙГܓƬʦ򖼳 +بԢƒǾҧٷǩǿׁ̿񦹑ې؁ +ə퓺ߥ҄𡄈ުֺ릹՝ϢɄĈ +ϚǂĈĿҺěį +ЯLJڝԴߠۍղ퍎́Еŧƺϝℇк٦ +͕ƸѓʀǬᯇăƺă񩞒؂ޥǯ +՟뎭ڈ’ύ؁𥴈˞ɚݠƿ +뜖٧ղ͏ɓ渒ג̦êì +ғ̺Їɀͺܚײ꩏ꥩ +ЇҭˉƸ‡ƕÖěĪ˸ݞ +Јљ֎̐əͿ׮Ӣ񴒮㼢ԋ +ə¤Ŏ݅ٻɫĈƽջڴΚ +Ϛ‚񈍝õ݄煳 +ѓƞٷ۔Ȁݤ݀ฌ֍ +݀ˎؾϧΡҮҲɐ藼 +笘۞Г藒ܾגߡ߱˻ѓڿ +Œó򛻴Փ‚֑𠎖ѬۘӆШ盆˜ +لބ㑬˞ձКķ̠ +㑪پ܄ݶ藼ҏձ߁ӷݍ +㳺Ķįֽ̠ɬ豽߄񃁰Ǘ쀊ղ +ۡƭ۽ʆʶכѫۛ +ƺςܡ񥧳ۺ˜ݧւܡ +񥧓鮖ɶФݔ㕂ٚۜ׸įōۅ +ȗƃ͋ٴƴɘ‶׉Ώٿǃƺ؅ʶ񷆃ƚ +ѫܕℇۦÕнݖݖ鄎Ýѝɣݕ +ڣُʫ࿋֥ʍɆݖ֞Ч窏Өؽ֚ν +ןҾݚnj˧ւղ́ܧԅ겙՗х +̟ݧڢ罩؅䘳ƛΒͨ܊νҤ +ܪҬ֞ɱѕҦϚհ˗ +կܡҿꔳو݀ͪǴ׻鰩ئꅫɨï +鶓ϳϴʰʌ箁ꌀ +ƺ޷ݾ򲠈Ɉݍƺέ݃ +ݞ׶ضط稸ѓʥǀàی +ٷħ蕇ݥղʆܻ +۔Ǐϊ􁰃رﮂρ崭۳ +ڴߦ޸񦍹į̠ȺﷶԒէ +֤ơʴ뾸ﻴįྀ̠ݺטҏ߇πѣ +۷т㍂̺ت؎ݸȀ苞؅ +غ؅кǀ +ʜ뮬؝ϧ܄Ρȅသߜȥ˞ԭġ +۝ڌٷҏǥ׼󂗊Ā菺̺ϧ +󻏵遘ȇ֯Ҽ񋐦ڴĀ菚ޒ +ʰٛٍÖʲ롚ՆҺݗ˞ʭŒֈʁ +Ḇݧϙג߲Ցᬐ۔αǡ񞒛뾖ְԕׄ٦ +תç˝թՎĠݎـɕ͚ݵǧ묜 +תΕϧΔұվ֝끮ᘺݚǟђƌ +˫ԇˣ䪔ʁƱܩՕСЇиʑ֕ƶը뤮 +汨ƾǷ綌ωƌ߫ԇ˗Јثݽ +̎͌˗׶貹㡵냁՛ʔĠѧଓ⠈ +Đ꽐ھбԋᏝҳʏґڇۇ׏‚㝳 +ƻæįҁݩ搡¹󂅗Āآ +˺Ӊ痓ǡҤ䡕ڌٷӆ铻৊𰀱ڃƅ +؈̀؈̜к +ܽ﯅۝߾í¾Ѫذ±ꬫ +֤кβ͟׾¬٣ꦌ؝ᝬ֧퉌ルͲ +ٚ벡̪¹¢Ձ +&] +[s3;= +@@image:1640&1460 +ȁǜ흍ëꂢô℅³˭֑ +۩г沓ݙ̽ϳϽΞɼ +쎀̲ݽퟮ޵ɭϷ  +탊꧄ָԕэؔ̓߈ßǫ߱ᦶ͖Ѝ +ʿ؝Гۀླ횡ݿМ萤Ÿ +ЪԚשӠřרխ˭а΁ʎíɗ +ƣɷĐޏŀ鵬˛走ٻ؛ԅԀ +ɇϢ﫢ݔ⸅ޏΒɯȤ󪉳̲Ӣ +ߊڃцƑ瞍۷ʿ¯ƕĩֳņڝ +ȍ򚸅׺ɍߘϳڠ¿ϯĹ؛Ԝ߸ѣ +ϻ뮛Ą򜸻µࣳޞտ +͘ܗ譗蠨ͤոꍯǤ +ބёΣշּҹܛʹ +ɷ䁩ߏڝⷞŔް˿˪͊و˦޼׽ +ꩥ֬ӽǍ׮ضLJރŻ +ٷәԆۯّ˘骡̏輺㛻սϏ +ɕ¹͙ڰ׏Т赂ֽό +揁ƿ޾˼׉Džޣե +ū۲әϺ٣Ɯ¸Νݡƛݾҗϙח +ϸƵǶުϔüʵ +塛ݧܘẺĭϦϗؿǕ +ޏȡ位갽ԥꌐǁ䨰͇ +ͮίЈǷ΁Ăޝܾėɝ˗߰ +վ֋ԣ젉缄؎ˣ׳ܳÀ讟 +Қʄ릛찔ǭ󃋓ͽӧ쯥ڦ +οԸą޼՛ϣʕ룣Ͽ +Њн矖ݗȽ +򯹫ϏУ߾ބʷܐ +ϥ£ϭϾå +߸텦Ԋﵜ䌏ѦȒ݄ձ顕¿ +ݩΛե̽߱޼Ҽ։ʆݩ꧓ѐ +ƽ꣚Ͽݺ꽱׷ܚ +Șպ􈑃ϻֵӖ库뱸 +謚郪ӱ×ßȜб̨樧ξ块б킰Ӯ +Ǖ׼蠑Ͻܷɯ +ʹĮÆ亢գۮф윝ŭ +ϼ̗흿߿ګ֐͜ۇޖۣ߇ț +Ծװʼө׋۾ϐԅ߳ڎъ쬧 +形գАǐ䄍زи׷Ӫ鮝쬛ƛג +فュʇݼ雛ۯܧȵ +뚂󆾵БೞΕ݇鋣މЯĩ +׎澢Α¢壯ܪہ؝㦨ކ +Ƥة۽؊Ҟ׸­ݸɽ疎Ƞϭ +ӵ܄ǤݙǛה֮ݔ֞ȿ +ϜڂބÓٓ߆۞ҍ޿޳诌 +ĸϑԙюƩΕڔҁђʐ㔋𴒁 +ɟ뉃ʦନջ꥓̬ܜȪ늕ѯ +ξޭʔޞ˫٪ɋ +Ճ׹͘ըɋهƚш֛黧ՔܥĎ +ΩǷꜤŁ͍󊐦㔈Ǻ˾޶ݷƅ +䍮܄ܺƑψۯי +ϰЉُڠǬݰɗڜ׳挨ٛ +ց몶ͯûզ޴򚮗ѯէ۞ߛ +ޖځޱَ޶ÎοǸ෌὾ +Ƌӛ٣ˏ驛ޙڽԘҧќϼߪ뮽׾ +ֽ훹ߘ޹ۯΕ޸ڧ +ʱ͡ѓ嵾΃Ŀ߈ +Ѻߌ߄Րۨ™۴٭ؘ׼̯צՑڄ +Ҥ񡪄ۢɆ֧ק‚ +בМ͓Ϊ’㯇ۣ筫˘跶 +ՆƐԀԃƐڃƐԃƐԃƐԃƐËξ묒ۋ赂ؙ +̠ΟĴҙв飱׎ūքŭ혤ü +Ԯ偪뚧Ъɺ󚮲—ڍѕɎܱ㯃᪀屨 +柦⚗ͤ͗ܕٟцʪ˲ʢ +͚؟ΰ㲀۩Ƣđכ̛ԧߠ߫݌ +ƻӲ͑⌼ᛉߐ伽ܰNȌվڐ֫ +񥯍靷ԅΤ̑捧؅Ѥljּ +̆۟آڐ捇욣ڏʿˌƪܙÛ˯䀁ڶӂ +Ȳ̡Ǘȼȭ˷Β.ʓԁ⪎ܽ΋ӊ霁㱿 +ĴŕͰ.ԔĻӻÕӐŒȾ偪󓇖ӄԾ +ɞͬȲמØ۴ƒىݻ͛ +ڀсԈꍀ⤝ذߌã􏛫ɠĴҙ׀ɚ +ɘ鈪쵂ʂތޣޣꁘޣޣޣ걁ޣތޣ +Ⱥ˃Ɓ⚈ëҠޏ̆ᢂ䬶 +߽Ţ̃Ϥ۶ӷޛߵǸ +膢ޟߍ޲䷅ڤ˹ދ赱ˠמާϠƂ +ϣ˖頢鬖ۯȺɅ샑 +ȟʂޠȃԕ훵쎫ޟѾݎ +ӤގȃɒǸ„ߚ +򚤉ݛֆȃɒǸ„֡Ĕܙɢ׺˝ +ɒ쎫޷˖頢ɒߊïϞŘê +Ӥݛڂȃɒ菵Ǡ򥚤ېﰊ頽 +ɒ߫Ҍȃ͡򚤁ɒǟ􎫐޷ +頢„ٝ֡Ĕܙɢ׺˝ɒĘêȟ +ʂ޻ȃۯشɒΓĔꚺ +ȃᯛϠ̸݁˝ߗ؀ފ˙钤 +ê­ק頢„ߚʊΓɒޟ +êפȟʂ޻ȃӯ됦‚¯钤ʹƂ +쏘Ϛ낯֖ڧ噜Ơ§􎫒 +Ӝ깆؏ɢɕשϞ٭ʧɛƙįһԚϝ +˜׽릦ǘ̖Ø׽鴝Ҽֶ̖Ҹڂ +̖Ƙ„֧셫۽һԚ략ةᗹ +לă׽ƈ–ۗͳަ嘆˃ŵ٧ۻö뭶ǯ +תݐšνݵȼ܈Ǭתǒ׶ω˱ݰ҅Į +똭ӁХ׵ǫŁ뵗ժûבҰס՛֯㰷 +Ž밨Ɨޫ⭘߶͊ܵ©윹 +ϒ敂ާǫ߽ɛǃћӸ陿٠؝휮Ɂ棱ܕ +˱ա˼ׄŨѽ嬚ڴ̠Χ +ԇĮ۳ۍᄉƸҔ֤׎ٟ +ȂӨܢǭפ޴ס̸҈֖Л략؁刓 +㯼Ҩͣѩ̛ҨƘׅ̈́ +ƓҸ„ٳʏȡ݈ﵼהϩў˖ߢ妧 +Țخ۴ץؿ؋сԵȽ򽮪Ę +ذߌٛ鳍欜ȃ +ļɦՀȃɒǣ˯ݓê +Ĕ܎頽䴬ɒکΓ끏􉣬赱Ѹפ +һšفȃɒǠר򚤉ޚˑѸϹһ +šǘêہӤܴ݆ھӤ羕 +֡Ĕ̸„ߚʊΓɒʘΓ돉 +̛Ғšܴ݊ھӤɫ빳͒įӤɣ +ȃůʐﰊ頵݄һšߟң؅Ѹ +􎣫޳˜ê­NJʠɺһšᄉ +һš쫂݄һš„֡Ĕě񥎽ǘê¥ߕ +ê­頢ё¯ˣﰊ頢ޯ؅ѸȺބһ +šץš‹֡Ĕ„逝֡Ĕ +􎫐¥ׅﰊ頢Øêǭ̸ +͊ȃ˯뛵􎫐ץһš٢އ +ȃ˯فȃ˯„֡Ĕ⯈؅Ѹǵ̶ +Ӿɛ頢֬ػɺ͛暈ڨ뀵ֶ޼ȝ޶ +𪽵ʃɣ̑鯆ٚ皸̋ˊσʌ嵀Ѡ +望Ӹޣꈢ赂ڞ赂ֵ赂赂赂ߌӂ +Ň㯋۱֜Ϣﵴҿ֠ىۼͰМ茎¼ +Ӆծӗ̦谜ǥ¼끬ąՋݲѬܕ +鬖ѝܔڜڏܛ褎ʡ‘姘Ǘ +󺵵űɸ㸢ϒ̛Ѥύ쯖ӗ +¨܄Ɠˈ©ݒ׸ɴ蒆 +㿎뫬Μ㗜餺Ȓĸ̚돇ãƢכϷї +ٯ©սõԬدةɍñ +ܔʒұ曯ΖɸǕʒ雸ұؿ׼ +⪷ޛͯƮǞѪЎȸӏŪ׸Ӊ噡ɘӃƃӪ +˃եǏЙꗤƧ҇ѣԸ⊃􁧯ޥ߁𷇄կβ +ͣ𒔝נݐ痤茧щЦ͉󋒘ސ„ɽ넄ɽɽ +ޏƯʤس̻òȮߍޟ畞 +߉ϴӢֱαǻ蒝ЇӏՇڅ +ݵ󁋭𔷵ÝޜՇȚͭȊ + +&] +[s3;= &] +[s2; 15. Font`-zoomed logical coordinates&] +[s3; 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):&] +[s4; &] +[s4; #include &] +[s4; &] +[s4; struct MyAppWindow : TopWindow `{&] +[s4; -|Button button;&] +[s4; &] +[s4; -|typedef MyAppWindow CLASSNAME;&] +[s4; &] +[s4; -|MyAppWindow() `{&] +[s4; -|-|Title(`"My application with font`-zoomed button`").Sizeable();&] +[s4; -|-|`*this << button.SetLabel(`"Button`").[* LeftPos][*@6 Z](10, 64).[* TopPos][*@6 Z](10, + 24);&] +[s4; -|`}&] +[s4; `};&] +[s4; &] +[s4; GUI`_APP`_MAIN&] +[s4; `{&] +[s4; -|MyAppWindow app;&] +[s4; -|app.Run();&] +[s4; `}&] +[s4; &] +[s3;= +@@image:1640&509 +ȁ怀흉Дד쥘߶ЈѼċ򍈇⁒Ϝʦę +ڋو֯חࣘܳݯԓ +ߥĔԲӏ׳ȼȽ’ɅɴȈ⃫ +Ѻꥱݻ߫ĘŔ짾ġ栶ܳ԰М +Г΅ܤ΀내戂؆穞˕䫠 +Ƴ܃崁ʅ邆օݽݒ񨵔 +֯͛ޙ̲ǖ䊑ŎÄȩ梮妑㯰̅ҭ즐Š +•IJ’䣞ռՄ᠗̟Ŀȷڜ +ϷȲ±ŐϪБ ËЙ⓶䞸ĜɄ +Βޑ蠟ڣ摯ªל˼Ն͌ʏݜ +ɠҷՕռ޻ý֦ʎ׮Բñ°ȁǚя +޹˗ޢ͇礊̖݇ӣ·ۻᖚҾ +ͫ붦ׅխǧȘکǪꧾ˯ɈٍŔϯ̓﫜݇ +݄ͤ훙ݯּηٚڄ˴į嬤ˢҦDŽ +򗌼Ά¯ٰdzսΊљ̊njՋë +ՎЃϭ柖婍œ׉ʳ㫁ӝԻ땝ڽԭ +ѯӫ•؄Ȟاϝʕ𾁙ރ㭧 +ۡߗϗ溻ã箶Ե݈桖ޫ +붮ޢܽъӀȓɓפߋѳ݌귤׿ԗ +ֱ߄戇ۅݦ̰ +̨甄֬ЬωϞЦϘљ醿ؾΚ +믢鷪ШÝжạ̄셫кǬ㻔⛯ح̮ +ֲݰȓ鐤򾠲帏ះϐ趆δӼԪ +ȚȸﵨުЄΡջˉšŹ͇ͣЅ浍؉އ +˗۰ږԜ鐦ֲĚ뷊ʌ󤥗 +㼬ڊÎܐ֧͘˼޴ٳʹչճҤ̙ܝ +ǬޏŃ㴳ߝֱ嚶գӭﳝ +ǁ舉ۂ˺ǵ˻Ɏ͐ϻힳቂ̶ǘ +楎Ȝޞœ٭긩鰋ܨ𳔗첃ơ̱ +ϐ䃴ƀ҈󬜖Ͽ쮱ѝ +կ֥֧צ֤ƛ֫ӦҦզƏƏ״˞񚄇 +߆Կڬ赟үیկԙϿݗ̷ +ȟͭ׶ʓڢϨʉ麤ĭȍιյхܺ +ȟȾҦٜ၂沷˙Դͳۄ +ýﱧüǯƩ咡ȉ +ܽ˦ߝ겊ֿƙƟӰӾʔˤҒف𿟮̷ +LJݍǮ֛̉ȚΘտ޻ +̝ɴѢɭםԿگŜޏ౭ +Ӟ׹ꎮ럕܆ȋӴͻڮ +ӺޞÇҲϺݤ짇۫ۍآ浛֜̇암 +컍Й֭͆չǽ͊ۡՙφ̉ꏩ濱 +띕ɂ但֛˲޳ݯҐ疧ʃ +֛示Śۅï׼ׂ鰃糯 +֓쥳食텆ﵨ֢غݯͦ杨˔ +籙ڍ⍨Ώ׮ݦڝÝЬŵȉʧ굀 +ʍۇ۞ј߅孀ݓϪ͏鐠ׄθΈѪ +Ɩήɪё᪒ΗӶꏍ؉芅̾ϧێɉ +ذʸۆʔഖ𡐏ϼښಇၹԷ +ه능ʊԯޞ薎ק +⤏Ѣջױ겈ȍëڵЊƒ鐾܎ہԪɲ +þ׸ɺ̧Ǘ؉씑Ѭıۊ +ʹܘʕ՜씮ץٶہ䧆߀Ѯ׿ﹸ +ʟÅלߦѩʜӽ˨ܑʌ׭ׯ󂵋҆濡 +گד途龎Ͻ搀垫 +ĽČ䗘թՋ”៊ѢްʓѠ͙Ѭ +ˆ޿﬉ȹ֤ǀݚڗٽƐٗ俑 +ܠ䲑Й򖟲֔ɞϰLJͽꓯ鵸 +Ͼ򍤑ꆫگɯсѬË܌ܔߜ樉۲ +҉ղѪ؏Ԟȼμ淵퟽֡؞ɜ؈Ů +ʟϝްɱĈާɛКŞƑԫ +ݔޔ䂸隓ٱ򏖌ׂ³ڼ +ƛDž€즍锦ʿ宨גŔ +̼̞Ϩא⢪ŀ屢庻͈ҩظ݇ +⵴Ѕ򼕑ݟСغ݋ޑŐ浲י +܃׽똄׽׈׈ůޣޣޣׯ +Ϙ퓧섮؁ä׊ܒ뢭ȧ¼ +ۋ̋ڐǐఎ +졧œԛܞגΝՅ͂χ޷Ӵ +žي㙫ϥƄʔӫ뤛ݼ͍Ҁυ +뛍ҷػ䇠ȷൽҀ驑ʪƺݫځ쓤Ĥ +馓֩څϐ뾮뤛ҩۈέȬޣ݄ծ +Š߸ꂽƺŵܩ鎸߮Ğ +ƯƱߞ뽽;ۮԠԊĠێ +ރβ́ᯑ鲠׈׈׈׈҈Ҟ܏ +܄׈׈׈߽܀܏܏¯ޣ +ΣƐȵܟ׈ⶈ伟ޣ烿Ɛڣ׈׈ +ӼƯ៷ƐֵÑč밄د҄񣬽᳊مȽ۾ +⟡ʕՠŔūŃ۪딺臚 +͘͸šϪ㛏Տٿ݊ч޳ջЎ +Ш + +@@image:1749&524 +ށ退흉ؔǣƳ߯ܘ񈃞ģԁАăܛ +ٿ͋ܜԼЎ嘛Á̼憑սӣ +Ȉ΁רª֖ԓϺ̷斒ʥȨ񈎽ǘ„¤ +ɺΗˀзۣ匓܁ֿ +ĎՄ򹆄ہǒ񷁞񺎝 +̭ƸƏŚގ֍Ԅ׈ڀ܉ +®◐񣠽¯إ̧Ж횂≐廙ԃ +؄̈ФĒƢҿ溘ܠ烺͒ĈԄء +˅ܶ쎝Ǘ߷À𜛠쐂ǶǸ +⃖ꐯΪ狪囯禂߈䆋 +ؿǴÐѤY☖ꋅͰɿշѤڅ㐒ØË +ȁކϏâퟶ٨Ƨة +Ϳ㝕߯ݺѼ׍Ռӫ̯Вʪ㲡ɶ͜Ⱦƌכͻă +ԓñМ꽯㳁溆ӫ׳͛ިӫƆߦ +տ䑹ѲԠڢڸܰߩݲڊ +ϥ֧֦񺡌ƴ⫤郳ꆘŌϵ³ȎǢ쓑ő +ĭՍ𚜜㨴᛽ۂ챵ն᱙ɆՉ +‰ɡד̌膇̌㭮˾׀ﺍë +陁ׁޛۅ吴џғˍцյлݼ˳ +‰獹ۚѷۂϪ׈ +ۜЍ҈֖޹ċͪÌ݌ӫ㳩܂ڴőڅ +Ê猨ؘꖆˢΞ恸̩㘶֤ +ŠąЭ÷׽ҶŰב㴘Ђڈۜ +ӻܶ禿ә㞚لǚ՛갷ڐ׎̸󥞖 +ְɘ᪋ɣᕍց煚؅ΩÄȻ،ö +֦ۚΨٌˋ଄̵ߩ۾ՑƦ˅‰ +ɠ✆Ԗ⑘ʖ柾֯Э񜡹ڤڙʱڒۻ +䞝ֳٕϳ㠽̾ōۺеӖ +јŅُ㵌Ԯ䍛符ץ +쥎¨ڿ³›ګԒ嗊Ƴ쥎ʳ +⣇ʒǚǛʳקѯž˙ؗߒۗӗ۫͏Æ߰ +ڰʫȫ̷隧ʫꫮ݌؊ԝ鉥 +ȁȬŬ𥉵뻋ę˥̔݀А +ߓډɘН«뗦칃ŧ쒚ܵծ +ʅʦ升ę爤ژ޾洋݌Ήҳ +؄ㆮﶲ݋˺햋«ճ譤 +Փ䪙דŐ穘۹ǘͿݝΨ֎ +ҸؾҨ˥藝Šĺⶮթϥɿĕ +պú璸ǏŅՆ˦ч̱υ +庀쳤…߱ʽ޼Ȃ֫щͮΝª񧡥 +ҥСϖҕ񟷚➙هٟܬ +Ñ҂Ŀ׸Ճߕٵдʙڄ +㌉ƸǾݴݮٻأ„󙙞̌ԂҺ͙ +߰˛񒬿Ųɇ̂ݩ +ʣҖك迨ӯӧ珃ֈ +ުՈ֒ₖիеϭǗ߈˜᛺Ǚ +ǂţڨ㻨̀ȁ̌֙ꁷޥ󥅫Ш󿰍 +ǟ䛚ݒڝӢ伇뽴뺈͖ɢ +ה쾀ϸ߂܀Ø맒ԉВįۜ҉܀ +芥Ө͔⹣֧ϫ蟞ϱؾѰמ +ѿϟ☟ĊɺÌ戰ȷ΄̷̳سÏ +د׈ϫɏЇ膳ʒ䈂ٱݞޭ֕ +õŀԜք͜Ҭ܁̭ˋ戙ӒԞ˕愆 +ڃʃ钮ԎŪҿɂܹι׊ֵ晤ڢӠ +·ȏϏЧԯϚ§߂ζ +ı۽ކӷֱ곝π̼Ʋೃ̮ÂФṂ՟֋ +򿦉𩜥ᆬэաՋɼ٦뜭ĩۃ׀ +籊ʛ婞Њɲ̀ꀽĶ۝ӉɚǕ +Ǩș⼮ĊƾВڅԱԧʣ€ʶ +ְϴၗߏŵ؀܌ۑ򰞻ʢ +—ѽȕ܀ָ͚Т١ӟӸ +§Ўʹܶʁ؞…Ў瀌膷߭ڋځ +θΰ͎ԊӑʣڝΌޛͱ +ʙԸЊIJ͓יի·̫Ύн +ޟûáȞײȧ̀镌Զ󃲝 +³ᆍօ֮۩򁴐ѤϻԱŠИﯻ +ئǧךܔֲມ醻⯋ӯ巖Ȟ +ܡ٪Ӣ߆Ėʑ짭Ǽʳ܀хдĩ憫 +цᄢœ瓶ҌǤОҘوΒ栈 +〣茘ȌГȌȑ +øǾֿބќDZƭݥڛ +ċཹРČ𙅭ۓֿќذڀ׶ +ȁċٴ怑ާЌٚởȾ׷Ȍ +ϡ䘧樫˳ޱ͚ų謵ՑힲӴ܌ +񾓕݆޹ݪݠ߫ݠ߫ +¦߫Ӥɼʒм̭݄֮땥Nj몦ȠԔ݅ +ВʥС݊ҳݠƸۋ§ +Ɲ؏ՌՒ՜§晌́ɶ܋ޱ̠ +֭𩱼⟆‚ힲ҃Ō̻ЬȌ +̳Ĺӧپ焹禾ػഀǕЦ۷ +Ǝדާ昁ѻդɭČ䆂 +ϴ€怠‰̠͐栈“т +ۇˏȌȌȑ栈䖂͘Ɂψ +Ȧͦ栈ŽЋ̳͊քýї޽ڥ +ꡈƹΊ҈؀ڻŎ닝Ǟ +Þۑϩֿٌșϖ +ؠτ +&] +[s3; &] +[s2; 16. Layouts&] +[s3; Placing widgets by specifying their numeric logical coordinates +is time consuming, therefore TheIDE provides visual designer +to simplify this task.&] +[s3;= [/ +@@image:2249&2129 +ǜ˾ǟɀȅРıȖɊҝđ +ϖ囉ӓޞŮ쏮ǐŖݵݽߏ +ϯɺ욷ӧΌӟ哋圥Ïم +ϨƬϛݢ˼隚ҴϪϪӄĞ҄΅؝з +Уԝ•ן챻ӥ鹚ٽŗϾ۞ +۪Ƿ䧳ܦ觎ǿקןЙޚ灞 +Į茶Ҫ׮Ҵۀۓ㕦ѩ󱣿֗㖪ߧ +ܻʃܯ܎뺂巩ݚ֫й +Ǫ޽ؕş +꘽Ǝ䋷矑ҟꘒ +ٶݶɟݎ쵬۬랃ꥻD +󬐚墾Ʒ₝ŽƑĮ❪ܯ +υȼϢ뇟ϛӬͿշմ˧Ⱦա֍ב߮ +ǻⳝ㯪ȍΠ鹐Կܻν͋ +酺ߊ휕﫲ﲋêߊҸ +ւôǡɅ٘ϔּ +ųݼ߇߼߫²߫ĺٓ +ʭŵл̞όŸ瓿γȥՌꏾ +գʯřԧ穂˾پ +ݪقׅͦ؅أ߷왊Й̫ϻ +ܬѻȫϾ̮ϰߩܬޟ돨Ǭ޾ö +ہ׮̉γȥ仩空țﮞȋӡȯ +ѥ֦ӽۘ߳ +ʱګގ֐էدзϺԣ +ٟ띇ꯜעԨ瑘޻䧗òȍŸ +˻񺨄ɂϟӿߏ拝Ǩ +؍мћ󯱅׷ުףیǫ +򊲊޿Ө³ҷаԆŏإǐͬ +Ճ󴙄層猿ܹɥ݉˘ꇇᐤȀ +ުۡ߸Ƴ˂Ҟߺ⋚΍ϗ쯐皎 +ȇҟϿٻ禎ȣɇ⧷ϣ΅ + фҼ䍿ˀ蹟޽֡ї٢ +ﴹ͙߽ۏϝۉǻעɹ +ӬŠ𡬚ڜ߶ڝؽәיֆ㕋εѰ䜓 +ݼ팺ﯽ܏ԜǓ㳕ڜܪەΛ +ɨᰅڴ켣Ǥݔ⑉Ϟс醘۾ݙ٧ +߬ݍٹع韨ꩍꚎɟ뺎Ӵ̭ԸӼ뼝 +Ǽޡܜڞۙ韬׍ڳʏƘў޻߫ +纮Ź󬾮够Ӱʢˇߥ؋ꮝꞅ͡ +ů˽εǨءڔöƻ⭊󠾌 +֍Ǻŏʕѽߩ쿘ijЄ糄ř۽ +ЖݝƘ兿Ƽڨ夿т؟ܪ +ȓϛؔ줩΋ʄꩵڄև݇Ɲ죌檓ِ +ǢއѲѕϱʧѡȐͬڔ–˝םΏ +˔֞턡ɕԥܤݱ߯̃ɒƵ֙ +߿ΦѵѠձ땎ڮۈй۟諟슴Ƙ鰨 +͚􂲋̝왽́ݸ´ǞĮ̮ՠ߹ُ崊хǻԮ +Զʕۃͷᤛūߙ斵Ĭʝਨٮ +ഓϻ̘櫺餮ݰ׶Ώ֮׮Ɲ㙕ǝҭ +ׂǢᄹ͓ۧ烔ޡ۞ɢȇǟə +푬ƻ˥е燝ʻΉݏۈij +󟇲㨭鐑ţڇޫܲ޿٧˹ў +ҵƲԵΚޚʖߩ̣ε֮ +ݵךҶ̙ß򃬚ۑࠄ脋꓈ғدśĚʒͻ +⯞ٴҖЇޒţؐ׏飈 +䔏œوצۑԖ砙фѾݙ֬捔ֲݹ +ķÞٸʐşۀݠɮϬͯіΎ읬͹ؾɖғϲ +ԟ嚥ƋՁ𰛋·ʽڱ减闞߳Ƭ͍̆̕ +紨ձЈݡɓ͇ܧʼݰ͛ڟ˛ƏÍ +żԞӕߟɎғמꎎގۛҫ˯׭բ +שİԜボ鮣٢޼˻ԛų +ԌپԨ襮ܞĴі͇ߛ̭꫻疈͢׀Ԩ +֢ȟʯ˯ӨɆ‹ڑڔު՜׾¤뷨簪ׄ +ì뵙ش܎ﳹ˞크ϪТŪ婊 +Ųңע۪ׄÜʆőɝݲ͸ϡˁЭҾ㑩 +ڔ냍׌싰՝ˡ۲Ѡ޺Ӱư +ϵӜүѫ՟ڏŹ䩠ڐەɳó傥ӱٗ +ꫲ㙪£꣫鰨֟ٹϝŋѝѲɞ̡ߋŢš +ŕ¬؅ֵυ򅊷̥Ͱ΋ +ᖝݠϖۗΑﭙߪ̡נЖϹ㫼Ƣ +캖Ѣ㑬򥆝¢۔߅ءũՒʩ +ˣ򗍠Ҿ̓ŷĽߋجߝ٢ˑ쬪ˑǟڠᖝɶ䗵 +ߟҢٟݒݢߞڽ轋쇒ϷؗؓŪЋ +ă߿骧֖䥷Žԣц׋ޤ +۴Тŋߪ̮ע륰ԳѰ枋ͪ +̢὜͙哥ǸۇȢѮ鎎ׯğۥڬܖ +؇̀ܫ裓ŊÊܴ񍶘ú΋ +рɩߋ֪ݢȲɨś܊ƐلؖÈќ +æ՚Dzќæ՚ф͏ؔŭƋѢ +䞽⦢ڃ֪͋ػր欺Ǚꍍ +Njȼϥޏ˓լط՘ҐԚؐŌܾս +ĔߗԚٚŸд߈ +﬷ɳ쵴ߢǢۤδېҚϻԨѢ +ݼ̧٘ӟ͏ͷ̡報ǻϺӳ +ŽȔ˦޼鿔Ї͏ͱۑҌۺ塀ט +ԬԂΊޭ턷ݢ㔭ʡӮӬ߬ݚ忆 +˧ǿȓ宛ߢǹ۴מЧݯѝԚ +׸Ը휽﷉ⶣҐѸ诠ιķ܉śǯ +ֵ隷󓺌ୗμ͛Зʎ噵أ͢ +ۮҕδϺ㢾ݿ懬ʧɍӢӑکɂ +وת䬊ݗڬӢݻҷ󖿂ڐԈŘՖ +ËӴū˦ꤍڷȅϻ˕͓ŀ۫ߵۼ +؝ij⛰ͼφٴ買ҫՊОߣԚ +⇜烯ُ٪Ŧߊ֢͵ٌΘ؈ +ïてۋڑþ͏شӱӃŭȰҴ +ٔԚ˵ȡ⦇Ì՚헭ފѢţţ +ţţ뀈ţţ财ś蝩Úŭ +͢⛀ؔش‚Ѵ󶍭ڈᯥ؀شѴ͆▍ش́ɡŋ +ᖍɰŭĀŭŭ¢ժ +✛śɖ˲鋮ꂀ񊲰 +͸شѤ뭁ٔٽѪ׽֊ɥč˴ւɒڃ +߅疽ہŭ͊Ԛǐ˺͞ݢ֞ǯ͊ +ԚŗŽϜ̖جˀŕ͇˔˞҉ݲޞ +شܤо˸܆ٴӮƉւ̢ȶ +ŪǫíʣϺׅꆍ̢Ưɕɷ豨™Ѭʑ +һ׮ӢɓÏŢތ܄“ɥ +ũڝܢʧف۔ު򋜮ܝ㶨Ҭڴ +ْɹɾ࿿斦٥΍çŠۓ +Ԣؔ–۷ѩǺ䌍ݪٶы +񛵭朶ޓ͙βг㮝۔ɤڴϋЛ +ɖœﮬғץ̈́ܤ٥ijݧ͵ڀƯ +㓸Ѥɗجﮏ񭞲ѢӖޚՕʥսݻߧܜ +Ś͵αߡŲɍۢ⸨ +ΰìʊިܔ߳触ح詴۔Ŕڜ띜ﵢ賣 +Ő▥ϒ·䷟ϟ̡ݳի˶ԷٴĽ사̄ފ +ݏʛՊǢ߿셖喍솫 +¬Ϣꅺߢ丢֎ӃՍыԭН +􊬪ƢɧؑѠޕê˻ʛۋ +ⲨҳٙڻҼի׼簨˜ُޡ촧ޘѓՊ +ܬԞݘ놝Ƀʧԧɛ̡̤ђѵ݀ +͏Ƣɧ߮Дʽߪ܄³ѸǏڴۚ +ݧڔɣ߅ظɍױߤ۲ؐԜ潻ċ +몓Dzܕ玟ꎌѤɉƲ—ĵ߯۷IJ +̸̅ѩǠόʓ鋂ΐڤՇ +–ؔ筳ҳߺԓ̛ԇőْׄݓŵ֋֩̈܁ƀ≎ +טڔЬ׉󸨐񼔂Ŭܑؔ٢ۢޤؔ +хŝɊ̬䙕ѐ͢ƞъڴѥؔϲ⊰՟ +٥䟑ˈݝ͐거ԝۖ̓ϒޢ娍 +ㄦؔȭشѴ์渙ȬĖؤы +ߙ署ّ݃֙͡ʇҁŁّꇚ֗Ѩ茜 +ܫڐ穞ӞԦﺭͬƢǦͫѠ쫃Ő +ݝؔţ˧Ǐ⩗ꎸӷԘܵ޵ߩش٨驷ҋ +ٱؔߗ態ɯąᡰɁƀ +Ë檕✋؋ƚƋƅﮭ퐤疖 +Ƿ֩܄ځɼʊ·ʥڱҏ߳ +묹獸ʲሖϒ·ϟܢƓȳ +͞Łųѻ쒬ɇŝݗݥ +¢؀˕ξΠٝΑɘϡѾخϡ﫹 +íʆѤήȂ۔Ӹ֨фѻٓήȢ +쏿Ĕž̐Œɥх㮬 +׷ߦǟ˗٥ćҁߡ骧׿֖ȥȗ +Ȣլ؀ŭ̸ѩǠόݮĂҬфѻ +估ᑁőő袳ѻđ绒﷒¤шդ䋦 +̓ۗʧӺۺŹ¢ +ˡάޘܫՆ份ݷΛΕŪÅр̢㏧л +֥ƭ̹ҚܘٴŁ۾ݙ뤶 +͞Ż̕ƾޜڞ韬ǡ׍󙬺Ѱ +עۦࢺσїԹɹ쭁ǰӽ +ϫ߱–Ѷܝι¦Ł٣ӞԦ +ݤ͛աٵӭέĪٻ΂Žŵ݂Ύ +Ϻʀœߥ۾ƜӃɁה갑 +Ă喽ڱʕƜÍۃ̗Ʈĸϊͫ +燫ƜˣΥʥŏ羫ϊﮅڨ߹ܺ紏 +ܹ䴏윘ҟ믟魿Ǻѻȭţĉׯ +Ŀ󛼷籩׶枵޿ʉ͓ݥǞəؔ +㬳ؔɷр‚р‚р‚౓ +р̐Ėشр̀͒œЉËƄѻ +Ώ힋ퟸֺڹ؅ҁԎڽ忻էێ +р⁖񢴊ޚݡߪݹ腡¢ʀ퀖âơ +ϧ҈ߞ݅ۅ +Ŗ̸Ѣً󽗓燩ʆʊҨҊԦ +ֽ׌껒ʞύݢޅԹҜ屪 +̨۳˓ǥ􊋂Јݒžדȣˌד֞ +ʓߋ󜽼Ǣ܍ۍ۠ٵսɈٞ +р٨ѷݽپֻǍ͹ݵﭛ誹ѻ +Ķ␃ĹŝʼnǏͫۗΌ׎ˌḨ߂ +ҽҞɟɢމ№âުɡǺ +щ͙ǭݥڑѨӁڨÂ񋂐ųؔ +󞗖شѻڀ…ќŁ̀ؔѓ賍ځѤ +ą¢ؔ㲨ޘÿѓ͇ꇰ謖ȿۮ +ױԖڙ楰ߑس兞ɣɽ¬ؔԕƆ +рх䞕šԎǠʾШ˙ŏСܴ +ඩͼŖձ皖ꆜ΀ӊҁٶ +ŚꀺսЀ꟤Łؔœ퀖Őр̀ōޭļ󸰨 +ځǟؔؔќDžŁشԎќǁŁɻޢ +ӑԤ黬שּׁ̬͗ۮ؃ŁԤܢѐڀ +͊ނŁߛ܏늒ԉЊǰӜї߹ͧمÆ䊥ʡ +р즉ԸؕƤ†Ц١Ԏߧۓ۳áϏ +р쿦ԍ胆Ўݴ걨ǖԄ +󅲳򞅣둦ȵؔΦ聀¢Ɓ漮ꇰ +¢Ë漮¢漮ꇉѦشр̀󐞗 +ѻȗԂĵǏ͂уԎѓߋ斔ѮƗވ +ƀŋѐ޾􀀺Ԟ誷оԢ簚ذʒ +Ǐ۾ߍꚞȠŐǏڀѰϺԴЃɅ卵☣Ǐ +ѻф冕ۧ漮Ԭ¢Ɂ㢌漮ꊀ +¢м¢ɁМ󞗖ش̀淰ศ +¢Ɂ㢼¢̀Խܢڃ왈ش +âұԈިŁꇺע€鋬ђČ +⬪ʴʇƀ鬚Ӣ̨˵ĻŞÁӀ؋Ө +գข¢ɿم̩р¡᭚Ćޔ +—ŋϸ٥DžŁؔќDžŕ퀖ؔѓ㭀 +р̀߆榗NJ׭֞؍ЬѠԤ̢ʛ +ϥ賗ڡ۰Ǐрɖ +鮯վؔʢ֌ߦӁźͻԳ͖ՀѓՊŁ +çُҭЗศɼԊܿԭЗս󸰨 +ځ󸰨󸱰友ځтȓȮ漮 +¢ݘ˯ѻōؔ؀ؔؔՅœ턀р +ߒўؔ˃䢱ŵ߱ϩр +؋ؔ͜嬪ʼn¬рⓢ؋Ł +ꞖŐр̀ѠشԎؔТٍϚ૸ +DžŁöꊀ¢戼ꇰµ漨¢漮 +иꇰ¢漮¢漮ꇰ¢漮µ +¢漮Ԭ¢漮ꇰ¢м¢ +Ɓ漮 +]&] +[s3; 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`+`+:&] +[s4; &] +[s4; #include &] +[s4; &] +[s4; [* #define LAYOUTFILE ]&] +[s4; [* #include ]&] +[s4; &] +[s4; struct MyApp : public WithDlgLayout `{&] +[s4; -|MyApp() `{&] +[s4; -|-|[* CtrlLayout(`*this, `"My dialog`");]&] +[s4; -|`}&] +[s4; `};&] +[s4; &] +[s4; GUI`_APP`_MAIN&] +[s4; `{&] +[s4; -|MyApp().Run();&] +[s4; `}&] +[s4; &] +[s3;= +@@image:1080&464 +؀݀Üǂ忤Μ¢ȈŠ‹첒泰Ԇ‚ +ĶƎÖԪԫ򓔳֓Ӡ߾ޏɓ͚鎶Ҥ +֥ٕ½ءڷ෌ʀߨ䈈骔âՉׯ˰ϲ +ЕӬŽ؊މÍиǛ芉墀λ +ƸܝՏһǗӆֱ֌ՂíLj +ɠ训ृ܆̽ܨݹԓ؊װ騷 +ڏŲܳ͢ݻҊ趱ҼۘȌɰ +܂Ў͋ɂΝ٠ے󕺳ҺȘҌ̗өè +٥Ő񜮒؉٧˙̜㖪Ųߔႚ˦ +ڌΉլɬԷ벿܎ܚٽ۸ߕ +֮ݿ燴̊耂߬˨Լʺ좋إ枕 +󔧋粸ś󋄥ܳԋëڜнֽ +驛́͋ЈۛӐח’̆ +͌񺛔өǚҒϻӂČؔ⬵ϩ +ڂ١Ê㖇Ïߢ벚ǫ߱哻פڌۣ +ڍ׫Ͽ琾ߵĂ֌ܒ„Đ傱ߞ䡮 +ޣ蜡薂ߧҀּՄ罪Ą׹۹լ̖ז +ȷ꙲˔ͥԇ灧ҼЃڨϻѬ냓ݺ +Ǎ޳؎ՓۏŁÔם’֧£ǫɛ +؋‡̈́ڳӬͅ킡լ +Įۥǎ弱މ†ȠΩ鶤Njȋ +û󩔭ӱՄЭَ™žٲޣ܀Ϧ좁뵙ᅡ +ŗ棇㌝Ɣ⨏푀τޛߢLjЭƓ +ľ߉͑ћՂ驯яӱ +ւ…ޮՑӗ𤷓㈴βԾ +µ¨੡Ѩˌтͥɴ͋յ徭 +Éؠ˼Չ봴쐲牃끤ă׎ėՖŢډ +ȿռפؘҼȴ̧¸¢Ԇف˴Ĩˣͮ +խϊˋ๩歐˰́چ鑺ڂϖÜ +ܔȱ߸ђᡗԞث̢ +Ɛ쌧ܳ˲Ϳ΄ҕլ˘رғ +̡ѺّĪҜέ梫ɽϚճʘ֨ſ»ڳְ +‹ϋŪާեБϼ얯䒐ц۬ +Řփ൤ޒ˼ڧ򉑲ijޫͤ +ޑѡÁ؝܀ं먂ɿӏҔ +֝ćԣߵۦغććدćڨꤙͲć +͢ӢϪĈ׶ćю؛谖䟒ć܇ɂ +ѡ؂⠺ѡÁõ¿ćկ +íäѰܰў誫گϣDŽ谮݃ѡѡ⿷ +٧ɿ㋊ѡѡÁ܀ +ѡÁ܀֡蘡͚ +&] +[s3; &] +[s3; To understand how this works, let us examine content of .lay +file first:&] +[s4; &] +[s4; LAYOUT([* DlgLayout], [* 208], [* 64])&] +[s4; -|ITEM([* Label], [* dv`_`_`_0], [* SetLabel(t`_(`"Label`")).LeftPosZ(8, +36).TopPosZ(8, 19)])&] +[s4; -|ITEM([* EditString], [* text], [* LeftPosZ(48, 92).TopPosZ(8, 19)])&] +[s4; -|ITEM([* Option], [* option], [* SetLabel(t`_(`"Option`")).LeftPosZ(8, +108).TopPosZ(32, 15)])&] +[s4; END`_LAYOUT&] +[s4; &] +[s3; 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&] +[s4; &] +[s4; template struct With[* DlgLayout] `{&] +[s4; -|[* Label] [* dv`_`_`_0];&] +[s4; -|[* EditString] [* text];&] +[s4; -|[* Option] [* option];&] +[s4; `};&] +[s4; &] +[s4; template &] +[s4; CtrlLayout(With[* DlgLayout]`& dlg, const char `*title)&] +[s4; `{&] +[s4; -|Size sz `= Ctrl`::LayoutZoom([* 208], [* 64])&] +[s4; -|dlg.SetMinSize(sz);&] +[s4; -|dlg.SetRect(sz);&] +[s4; -|dlg.Title(title);&] +[s4; -|[* dv`_`_`_0].[* SetLabel(t`_(`"Label`")).LeftPosZ(8, 36).TopPosZ(8, +19)];&] +[s4; -|[* text].[* LeftPosZ(48, 92).TopPosZ(8, 19)];&] +[s4; -|[* option].[* SetLabel(t`_(`"Option`")).LeftPosZ(8, 108).TopPosZ(32, +15)];&] +[s4; `}&] +[s4; &] +[s3; This way, U`+`+ keeps tight coupling between visual design and +C`+`+ code.&] +[s3; [/ 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).]&] +[s0; &] +[s2; 17. Value of widget&] +[s3; 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.&] +[s3; 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.&] +[s4; &] +[s4; #include &] +[s4; &] +[s4; GUI`_APP`_MAIN&] +[s4; `{&] +[s4; -|TopWindow app;&] +[s4; -|app.SetRect(0, 0, 200, 20);&] +[s4; -|EditString text;&] +[s4; -|app.Add(text.TopPosZ(0, 20).HSizePos());&] +[s4; &] +[s4; -|text.[* SetData](`"Some text`");&] +[s4; -|app.Run();&] +[s4; -|PromptOK((String)text.[* GetData]());&] +[s4; `}&] +[s4; &] +[s3; Because this feature is used very frequently, U`+`+ provides +operator overloads for this interface `- [* operator<<`=] for SetData +and [* operator`~] for GetData.&] +[s4; &] +[s4; #include &] +[s4; &] +[s4; GUI`_APP`_MAIN&] +[s4; `{&] +[s4; -|TopWindow app;&] +[s4; -|app.SetRect(0, 0, 200, 20);&] +[s4; -|EditString text;&] +[s4; -|app.Add(text.TopPosZ(0, 20).HSizePos());&] +[s4; &] +[s4; -|text [* <<`=] `"Some text `- operator version`";&] +[s4; -|app.Run();&] +[s4; -|PromptOK((String)[* `~]text);&] +[s4; `}&] +[s2; 18. Accepting and rejecting widgets&] +[s3; Ctrl interface provides&] +[s4; -|virtual bool [* Accept]();&] +[s4; -|virtual void [* Reject]();&] +[s3; 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.&] +[s3; 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, ending the loop and returning +false when any child returns one. If no false was returned so +far, Accept returns true.&] +[s3; 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.&] +[s4; &] +[s4; #include &] +[s4; &] +[s4; GUI`_APP`_MAIN&] +[s4; `{&] +[s4; -|TopWindow app;&] +[s4; -|app.SetRect(0, 0, 200, 20);&] +[s4; -|EditDate date;&] +[s4; -|app.Add(date.TopPosZ(0, 20).HSizePos());&] +[s4; -|app.Run();&] +[s4; -|if(app.[* Accept]())&] +[s4; -|-|PromptOK(`"Correct date.`&`[`* `" `+ AsString(`~date));&] +[s4; `}&] +[s4; &] +[s3; &] +[s3;= +@@image:1029&260 +΀̔ޫњы⯄ȯŐݠҴ +륉߭ڴЬȽ삨͛ݝŷϦ +Ŋǭљݝ談塼㡼ݑőۼ؁ +ϚȢ܏יͷ̺šܯ냵 +౼ဩլꉚ윊ʲſߖ⑔˄񆈠ݢ +鹁˨͎Іπ뢻ĶɛєՒ¢͐ +ͣ럑Ñ݁綕׬ԝۨƱꀔһʸę +划МƁ˝ԑЪܞͪ٤ +žնɊ駑֌躨̀ɨֵЀ +ၔǝӅϻŻ͎ۿւֶӒ䵞Ɋپ +ȇډߢǰֳ°Θ༒술ЀЕ¼ߺ +ˍνΗϚ۸絥ޒꦚŻӰ˭Ĩɷ +𱍏욞ҠܼއБȿٜӾ +ŖړøׄಾĹرڇǮ +ҳĶ汍˹篶ʵς򪶍ӻ⃀Ҵ¶͙ܰ +̛ߥǔڊ켻٬ܮ۫ӡ합҇ +ؽΜтĥ撒ͦ흍͈ަ이 +Ʋ⚘̆ȩ됀뚖ôٰÝ˖̕ӗԛ͊ +ŋϙȇ̫̓Ȓ΄ѷꁥ̪ؐأ˴ڞ䚄˥Ԧ +˛Ц؋㫧鄄鑵Ò޲ͲŒا굵 +☡ǬтӹƝشкͥÂķàǁ +ɸ秨ߛⰌ镫떞۶Ǟ̖嬱֐ߵӰ酩 +쾯ӼՔֻוŹ̨ò؛̾ǽћ㟰Ŵδ +ښǴ馏酂ɮخǢɐ٫ۢʯ +Ňť멘ɂٌʐߚϗәܩ鏶 +՚Ӕ̓ʱ«۷Śෛ؆݅ɍ˚Ә +ˏʹãƴ݄뾐𜣀ԊÀқ־ٶؤɭ +ƻ报칏ɻڶߔӺѪюĠ +⿨թ۟ٲۊߛܸ̃ͿʨϗĢ +˖Ԁڐǐ칫ՌԘ +͚׹ײӠ鏍˦ˈͼ떛Ƌ +ՓŸ᥶ӢӒƱ؍ű팬󑶭̣ +Ķ̭֛˖Ҍ߸ቔؓݷƷ礴Ϟבά٧ް +ίɺǾԦӵ团ٸ߱ෛǗ䏭遇 +أɱϏ둟НӬʶš坁¨΅ +ϗ㕝Ŏܯͨӓʏ俭㈥ɷ +󽐡ꚩɦ܅ēӰР򔢘⬪ԦˬЍƻʚ +ߕʕۤËॗڳ҃ԟΨƻ͐ͯ +˞ƉݹӚ愵ϒޘ󠘖﫦 +͚óÂۋ㚵ڹ鈡뭨巍ѻ +КԌƴcʠͿČԤ뭩ô͋ +ϴê܆ՎִۗʣߚɈܳЌʻ؜ +֘ԴĠבѸƴ̭ˡơҚ +۴̒ⶻÔ횭ڔ㸛Ŵښڍ՟ބԵ +ߦشշ޵ + +@@image:854&629 +ǜ흇ڀî܅٣ϵƣє +ƘѠ셥ϙ®·윳񽥇Λݰ +閷ą辜ԒŠ╣ΣꛫۈӱÈѤ䧩ҡ鸚 +趙އ◡暏ǵ̓춄ȼ񄦠 +Ñۉߝؿ񟤣ƅرЀ̂ˀɇڦٙ +ꨠЂ潑۶葍٧ފ‹ +暞䋚Ѫځل؀ʀЈՆɰ幄Ⱦຆ +䩐Ŋއџڟяعт۹ÎΩߪ +ҚNJ킟ܝɍ⬾Ւʝر +ޢŔɒ˦Ȗċǂϑ懈ɲڊށƄО +ԀםᾇٽՖ۾ +ʓLjجȅۼ⵱ĴЬԖʸӔ㭺 +ࢊЋо޿ؿÍͯߌԼܢӥƋ乶 +чݱÿ͡ͿߙÿπۣΈ嘈ߎ͞۶־ +ɓѢƼτŢ󟴛ʁݮ +ɫş߿ׯ빟ѯ̹ߘ˖ϒްœ͒Ň̎҈֢ +Ϟʉ̣炠ʇϛ崩ⶖՀҡֱϴڣߓ +Ͻ티٤ⱐ֣ك킄Źʙ‰ +Ƽɧګݖߨ될וүȀϚ쑑ǿ +Ⱥ󿓠덵ɢ̐ꄋɚɜր˘篼 +ϲ߈ÍͧŹ֐ǧ䫀ۃƝݖ됁ށ +ؠ߷󻋢纊֢喂ĮϤӠա䝢 +Շ˭Ѿۀ֐Ǣ蔤ǒͼ +ոၾò狕ߕ֯ʍ򙩚ꎝ̿ +ѯ®۟㵺խʅԕ”㼅آɾˍų +͝܎ʂЋˈȏ҇싰ۚϐⶐͿ +샲ωǾǮ踩יю峂䳺ӻ󭉐Ā䆀 +ʲמʭ뙨䀳񺻱偞쎋 +뢰ψȑﯙ΅ȜωõӦ殺 +׆ݒï胧ۂʩ䯼ڢDz +ʄŖઠˍұˋƼЇ鶪㓳ϢIJ㋩͂ +즯ְ﹀űä˿کѾͰ䳓 +ءˏ޶͋벭㟹䑠߄ŝ +ŗ饟Ќۊ´¸¾ʋئ +ńӑ瀈ܱӓ퍇ېԐ +ԊߘШ˝宁р¹åҸҧ +ɸެ̂חыކ̭dzȵſ񝲧 +иѡ¹Ȣﮙ렺ҍ瑇Ԗؓ齄 +ށ߁ީ̝ꐔߜ֤铻߮҇ +»؇Ճ襎΂쮅¯¶ڟ +ϊӃߓχɞրԐրӶ³珧 +٩ӂ׍̴򙀪ٻ؂΃և +׀ԾˋѐǶůݦͯ߅ٔLjݹƕ +뗍ɂŻљ㫠ҵ샞ᶫԢڀ〫蔁Ϲ +ـߠ﵍۹Г΀ĉ²Ɓ﹁Ԁ΀ +؁Ā΀υހݗԩςҼҢ®т +ѡ¿էގ𚸯ժ왟氦΄ɑډ˓ +Զƛׯ؁ҡǸ㩠ͷ³ѠЊ҂ӊ܊ +ߠùؓ񻓜𹚺κ𘎊򀑵ݥҊ +܍ӧڶڵLjЮ؊ѷԏ +̫ٞȕфҔ̠޼ +񷑣ܖ䂂񤇐܀슳ۄ +Ř㸷جć쯲ƴᾊعЀ҈ϡܴ罜ȟ +ɑᇴދہ鍘БӜ⅃ +؀ݻ池ͨìڧ݅뒛ȓ莕砡ݣ +ײɟбūᶫтվƸ +Ջήô󡰿ٺœݩƀ廫ވЛҦ΢ +чՠ Փ̀ѸڽΓ٢鄓㮂͝ư +ȏߌ㏾ŝ޹ӭߤԑǥؿ腅 +²҃ܰ˿č݌֭̋؟塯 +ބėڊʊ͂ɠӬ́ˁ͊ +缅ЉٷړȘԾ֚ޓȯ›޸ +̖쉴Ԃ㠁˸͎ͩʟŊ +冸څŨ毜㳼鏜ӪƦ廿ȭɽ܅ +ᜫɆɯʶ۱†ާōЊ魿 +҂܀͐˂颲ԜӂʳԶǺߞւَؠ +ޥǴϜ٨يכ̌ +얙˫̗̓ߢḍާƂމ—ո +̓󣝄鲲ͱȇɪ䖀ߚ +ʾ֠Ɂɸӭߊ貢߷ܚꣀ‡Ƈ +ڴޗϊ︼ۼڊʽקϺ +ꯀǽႄ𸁼΀Å𸁼М΀𸁌΀ +ŝӸׄ뚬Њ莴堝׀˦ɞý£ޮ״㿳 +߄яᄀǍțܝ̴ǣ݄֗ɻۅ +㫋΀̭әޫ֯σ酧 +섊갯ɔւѧݶДحמɐŞб˶ +ǑրЇڂ׆ǁ繹ߞⅠؠݑԬƣ +󹜀ϪȺ׷ȅʡÇѶۖ +ӊ΀뚻ڣ׫ԀəޯӁǣ€Ⱦ +Ŏ΀ք򎵫ؚ֋Ԉ򫠹 +ɀʻ뚆Нۄ߄م뻼 +ҰݻՎˀզΓ琗鞺닀 +®؁Éêڸł +҂Β—ѩݱ넳ז꿡׹ȡ +ޢȫρ +&] +[s3; &] +[s3;= +@@image:1029&260 +΀ǜΟɴ̛ڋĬ򔖐ߜ +Ӧӓ馝دౚϤ⫠સ߿￞ݽ㻏炖 +ؼω֦֖􊶖ͤӥҶڹࡸԒͽ +܄Ѓ닒 +˱ۗۨȥ몵󪁾υَܒ +Ɤד΄ڇнʑ쒐ۥӠ勵 +àνۥ袶ͮԅΖѢׅˌз烺 +ګˇʸ͙Ԉ񉭁񬭬أ쮊 +ƠȞҍןﯛ圥аɈ֙î +ߠ䜧¶բѫé՞˄ȡܿ˽ +ဩɴ¥ڍӔ֤ӌфҌзžށ䏜 +܅ޭлëԯȵܻ̻̥ژ +Ƅۮܳƫŋөㆦ +ԅӖܫܷ궘ĴΛ׼屄ϚɬѮϷچ +ʗ؋ĞΚн׍򃀼ʃƶͻΛӞͳ⚶ +Ϫҟꥎ˨ɲȴ鍥Ӧ܋螺䨚ƺꦠȦ +ý愻ᚦ٬̓ԬӂМۜ㹌Òٚ혷 +懎⏿߁׃Օ傞ˀ뢣鿮ӔӬ˓Ǜ +֊鱲۩ϣ͚ܧݯ΂ВԓаŦӃݙӫ +Ǥ̚ۥ̨̇鰪ёۘظٴ֦Ȧ +Շܑż䳧͏НҲʣʺ۪֨ۆؔ +ö҅幡Λ扚˳ŶͤǙ饊칽찉ҫIJęڅ׹ +ʦƖ¦̓ʵ俌菄ᷲڔ +џȻ츚Кʙͭɻ׎з剦ҬړȴӺ +ٸƱب係ǠƖЌחƲճеݤށٶֻ +ɍ̓ꮙޝ楏ԍåǾᏠȟų̱܉ճЯ +ʅڵǜʻԈԆ衒꼀ԉ즃˽Τ +ŚБͥŰꫡñߪՋԻ̛̛吪ã +ŴҔȟȈĚюʥ݄ۗ쯗Õ𨂎Ү +ٴڄŴܾٴʘ͍확̣܄޸ޜ +Ȱӹ⯙ؿȶߍ٭р欛 +ο⹷ϿδѶ⫳ʗ՗笑̛߫ +÷ө٘߱赮ݾԘ䳅ͽ굥Ӯ늝޼ܴ +ɗآ֝ѳձӜʨ߳ƾƇ݇ +ϸô非ؠ܃ϱ㻗ﱞɧ +ʿ۾氞ļ晢ŵ̾܋Ԯ買в +ޠݍ܆ݦƴɏ񇷇蕮эݚ⛮ˤӨ +Ϥǂ›ٳ̛τÑ⽚ڤ̓錱Т +ӭӆяϏɺܡЙ¼̟ė¦׆ +œ߷ՐDŽ䬃Ѩۢ킷ǑТ˄ +񼞋ף뚱Ù맆ŸƄĐͯӆ +їËȯ̓ꏧӨö́߼ĨՐ +ُ㮝ƕƠ㝅匙뻼Ʒܮ +Ő߸ہ + +@@image:874&629 +ǜ흉߮ڂԩē؂ԭʵք˨Ƣ +¶䛬̿墦ϙΝ޻܀еƒ +ܶڐЄ؝ᴫ۽ĖƂ֚㐓ূ̡ܿ֞ +ꝶُ܎DZüƨםܞֶ +ӥ돆IJ湁˧䜦ҀÌܢ +ʙЃƄҕ䁬㻡̫̼ד敶 +̷ᩩ槉©—شʰø吮晦Ɋʐ౬߅բ +憩Ƌ璂̂ӬՉ֞Îծ +͉눔֦֞Ď몌īԐⳓҴԵ +٢Ŗōрǘ͚Ӫ͏٣ +뫒ۧĵ埨⵿ٍ·ߊſĻ։ +󄛗ᮙ齛Ӝӟַϴݙ֔ﱹҧ +ۭʃϫֲﵣю種͛ +²Г➗ꜚ윖ކ򆍔Ƿ +Ɍ۵ꪞθᬜ񜳴ᝰဖމˀɷ͈Դ߰ +ɠؿ±윧ؾʝ΂Ҵ˹Ơݱ +Ͳ蒉Ǖהڨ۫ǩ隚мޡﰆƃߊ +݆ۖʞ҂ذ懙ijȀ㍿ +۫Ġ̶ԐƺȗȿĈ󧺑쁚μ +σ̩׆ߤዛ𳏕ҷ׎؏ͤղ +׷ɝƆڬڂNjΨԍŷݢڵ߮ +ځͦˣ⌙έۆЇ݃ЃɍȲ +ʝσ؝Թ嫴ʉş⁌Ψ׳ +Ԥ׆ŧ͜Ԑ۬ݩծשѣ +ׂفʙեỼҝņ֕󇹃 +蕞וƾՓܜ˰ř޶Θ +܍ВЂـ̓۰׸ݻ˞Ʊ̀ +̧ղᢵةֶ晖ឯʍԫӍð +ԏٟ䮛٨ԩѳԻʙƓˀϱ҄ +䛚Ȍ䀺ꔃרÜնﶯՕ㌿لͫ +ɝǼø҄褙뽾ʡׅה别Կ +⠩ݓШߚת桅ڀⶏʩ֎ه +ܣ롃♠˪ꨭ̀뜜Ț̆ஐҜՊȕĒһ +ոև΁±؞ªݻܲĴ隷 +޽կᲂ˓䚆Щ›ꀧڏڐᴳ +갛ïчͥ䐲쌅ڵӲШϋСƥƊ΂ܟ׮Ϩ϶ +킅҂׳ȿ䀘⌐؆軾ۍݨ̸ +͖擷ΜЦ·쯁ӻǃ +䠇ڲƘпŏϺ͝ЫӧΛޣҧȚ +챝̞ڇǯϚβ†ʲ֎Թބĩ鷦 +Һȕފڇþ藺ʹӜˆꃹą +҂عɬϜɂʁ垳ۆݎו +ڦߢ˂ƈ݀׏ˉ驵ȃƙ +Ƕŝˢ͸ڕ䙁תǘͿ +ŲﵿŁ͡ܭՠҼݜށć茴 +޲چڹ٦ɡ堻堡ɥввдܘ +ⱔґ̤ā񂣾죣ʐˮպͲد缯҂֖ք܌ +вŴ뜌͗ə摱עŦÅ޺Œ䐈 +Ѳʵ߄±Ճ۪⊵Іޕ⇉ +ψ퍃˝ʁң򨙺웳糹ߨځ +ΗÃꑃʉˏ⟕޿ͼϞ¿១ц‡¶Ϥ +ӛ׆Ԇݦ䬻۝זٱȃĺ҂ɾ푡 +ɵڢĠ䤗ᚫͣŠ֬­Æܕ⩒ˌҍێ䧵 +տϺij˨ʐɋ񅏅ؿጫݥ⩕ň鐒׍ȉ +к׮緡Ž̔鞵ꬥڏ虞Ϭ柧疔겤Ò؃ +З߿ܾ᣷߾ԑፘԕnjҠ٥ྸֲҳ⛣Í +DZ˽ڷߵȫ䥸ˆߙ΁ޅ +ɁùȐ邑߹ꥍíعآ⫑ +ɇij쿕Ɠ艜ْІЊאӆ +𿹺鍣辥ߚ֓Բ葈ہʖĖ +Є𙚓㳴普ƨį姉ӠÖ񢢘Ъ +ĩ鸙½ɔߪۓ˳ÌƓ +陿ϊϱ趋᭛򔦉‚Ѣ؊Ն +ņ݋Ɏ㧻̯┡鮂؅ӆќųќ聛 +ʮhϺ†ЄѪ̩”Ԩ㗒Ϧ +߬􀶪̼ŷӀٗ¨Ȩİ򙤂ɐũ +۔ţ͞ⵞ螋Бƍ滣հ𤴰 +硫ل᛬򼨤Ł䡊ıοߣ +ζ遄ۃ镼뒃 +ہԔӄ̫䵯籾؏榣Կյ핉İד +˱ҮܽÃɥ֐ˌ֯ײʷ矽 +Ͼڮ缽ڿܢ冦ۋ폫ߞ +ܔǢ։ᱻÀӏﺷŽޙ +Ęݗᇼ㷲ɽؐЄͪĎ +ܖƳύͨԓϽ𾷳ܮ +Ľ뜉ɯݺϯ۰½ꩲ +Ȱ߶̹݇칑ݛޫݖ霺 +ɓ۴ֆˀ֌׎͛빾ܒ֡ +рН֟ͧ브ϵѲٟ䃾ޝ +ݗ݃崐ԿԶœƟü侀Ă +Բ׆پߑҜ߆ڢߝؘΰǎΌ +о뻾Ʈդӆ掭 +١堡堡ުܢޟ +̂ޱ倮ҾܒϷ躙١Ƕ҂̑Ȗ +نȉ藆̜퉲ΆΓڮ񫠹ّû檘 +˦͇ʙؖزƊօв҆Ќڮ¨ݍт䈽׆ĩ +͝ƣөڕʐ׮׮ڭځв҆ʠۦ +ܸᄇܑйͅΚ“Ѩ丕ͅ +Ҍڅ¥ԩѰ +Ѱ䫚ܔԣؗ…š +֘๼ݔ႒܉ϊ᷸דÆԸΡߌے +ҁΧ둡ΙŸҿóّ +ƥʼnտέˊլ١û㷚мτ艤 +ɀ訨ΩΟԴ‡ѦƓֱ͡ +ּʙќ߇瞫Ըćד؆ҟۚ +&] +[s3; &] +[s3; &] +[s0; [/ (to be continued)]&] +[s0; ]======= topic "GUI Tutorial"; [ $$0,0#00000000000000000000000000000000:Default] [a83;*R6 $$1,3#31310162474203024125188417583966:caption] @@ -3942,4 +7888,4 @@ Reject for all children.&] [s3; &] [s3; &] [s0; [/ (to be continued)]&] -[s0; ] \ No newline at end of file +[s0; ]>>>>>>> .r1684 diff --git a/uppdev/ChUsrLog/ChUsrLog.upp b/uppdev/ChUsrLog/ChUsrLog.upp new file mode 100644 index 000000000..5872304d3 --- /dev/null +++ b/uppdev/ChUsrLog/ChUsrLog.upp @@ -0,0 +1,9 @@ +uses + CtrlLib; + +file + main.cpp; + +mainconfig + "" = "GUI"; + diff --git a/uppdev/ChUsrLog/main.cpp b/uppdev/ChUsrLog/main.cpp new file mode 100644 index 000000000..79976ff0f --- /dev/null +++ b/uppdev/ChUsrLog/main.cpp @@ -0,0 +1,11 @@ +#include + +using namespace Upp; + +GUI_APP_MAIN +{ + ActivateUsrLog(); + TopWindow win; + win.Run(); +} + diff --git a/uppdev/RichEditTest/main.cpp b/uppdev/RichEditTest/main.cpp index b3bda73ac..8f36b9f40 100644 --- a/uppdev/RichEditTest/main.cpp +++ b/uppdev/RichEditTest/main.cpp @@ -16,7 +16,7 @@ GUI_APP_MAIN // SetLanguage(LNG_('P','L','P','L')); // InstallCrashDump(); - + LaunchWebBrowser(GetTempPath()); DUMP(GUI_PopUpEffect()); RichEditWithToolBar e; Vector h;