diff --git a/uppsrc/CtrlLib/srcdoc.tpp/Tutorial_en-us.tpp b/uppsrc/CtrlLib/srcdoc.tpp/Tutorial_en-us.tpp index e4e4cce59..24cf8ee4d 100644 --- a/uppsrc/CtrlLib/srcdoc.tpp/Tutorial_en-us.tpp +++ b/uppsrc/CtrlLib/srcdoc.tpp/Tutorial_en-us.tpp @@ -1218,12 +1218,21 @@ Example below:&] [s7; -|ITEM(Button, [* cancel], SetLabel(t`_(`"Cancel`")).LeftPosZ(76, 64).TopPosZ(32, 24))&] [s7; END`_LAYOUT&] -[s5; &] -[s5; [/ Note: ][*/ IDOK][/ , ][*/ IDCANCEL][/ are predefined constants. Also -MyAppLayout contains variables ][*/ ok][/ and ][*/ cancel][/ of Button -type. The naming is not accidental and CtrLayout like functions -require names to be strict.For ][*/ CtrlLayoutExit][/ the button -variable should be named ][*/ exit][/ .]&] +[s0; &] +[s5; The compiled version of the above code will look like this:&] +[s0; &] +[s0;= +@@rawimage:929&615 +(iVBORw0KGgoAAAANSUhEUgAAALoAAAB7CAIAAABM2A23AAAACXBIWXMAAA7EAAAOxAGVKw4bAAATz0lEQVR4Xu2deVwUR9rHq3pO7mFguGQ8UEFMYowaUSJqTIyCtywGo2QRjWZj1l13kzf76ipLPDZZd7NZ1xwmqxJFDXlj4k2M8cQriSKieIBhBYwMx8AMyDAzzXS9fxTTNjUHMzjGQOr78dOfqud5qp2u/s1T1V3dDDQYDAAAAABCCCGEy7hqa7ctOK/iAuEV4sRF4HpkFwJCSJoc4CQSu/gAItJRVViwNTqyi4FVEBzHmc1moTg4jsMFIUIpCE+ho7IjiyOju3hkJw8a4px1Drs7sTUSp1xYtj39QhiGwQUcKZVKGYbBZYQQbiLGZ91kMlksFpFIhKOJ9pRfGhBCo9EoEolkMhmu4q8lgxDiOM5isTAM0yW+qZSfAIQQwzAWi4XjOJxQsJ0BAJjNZpxXKBQhIpHIaDQCAHBOAXx2oXmFYgtWBa8NjuMYYZ1CISAUI7abWhBCJjPLWiyE3RESkUgmldidb1O6NHjwwfNaCKGY9AMAADCZ2crqOlsZOQJCqA4NlsukpIPSLcBaQQjZv1RmLRbXtQIAQAi5noooXQ6EENZD230X0m+lXqstunSJYZiovlE9ItXC4cZisdwsLYlU9/Tx8RG0cI8tW3MAAPNenEs6KD8PCHl0IBdFYGBhwYXr169HRET85tXfqkJCeNeVy5crKsqjYwYIwt1jy9aczZ/k4DJVzAPlRkmpyWwe9OgjhL3oSrFMKo2J7k/YebA82t2mI0MEMAwzbcbM0JAQjUZz+OA+UdUVL90PUkN19Z3bP5RcHzUqgWzgMkKtbP4kB6cZT/Han/6c8MzE0ps/CI15Xx9OeGbiex9+LDTaotPpxk2csvdAHunoypjM5mUrsi4UFAqNFwoKl63IMpnNQqMtfEJBeO7iXDEDRY1zHg8Xi0QFBRcvnD5m9gm7a+byj349Zvgj4b7mzl0LCbXygIjq03v/wa+Elv0HD/XrGyW02OXAV19H9++3Z98B0vGTc6OktOhKMWm1UnSl+EZJKWl1wKBHH8lasSxz1VpeMRcKCjNXrc1ascw25QjhtdFxdoGs2e/8voDzu6MTJsYnJLCtlk/PlpWV3z52trBPzGNKdSzHyHzZMohYsqUDUtMyLhQU2mol49dzPT4YjRs7+vDR42Zz22crr6isra0dGDsAAHC3ufnZpGl87mk2GJ5JnFJSehMAgBDaeyDvlUUL9PrG69aTUaWpTp6dtu/gVzOfnzNpRsrqt9Y1GwxO7J7CbkrAuJgYhAwdMphXDK+VoUMGk3E2uJpdpLevKU7k6OJ+BcL7T0hMDA0LM7QY8w4dNrPs4088AUViszgQACAxVZEtHfD60iXLM9/8CbQCAIiICO/Tu9eJ/FO4uv/gV5MSJ+Aj9fXxeXbc2AN5h7Dr+In8nmp1dP9+AIDzBRflMtmgRx9JmvjcXkGCqampLSm9mZuT/enWzVWa6g8+2uTc7hFsUwLGxcRgC1bM8sxVyzPfdF0r/BbwiwDtQqx4XzsNGJFR/RiAMDBQmTBmTHhExK1bt+42NfIxZnGQN/cjy7qUYIYOGbwma6VEIuEtD0grAADEoclJE/B4xLLsoW+OJE1skwsAYPqUSV8fOYZzz9ffHE2a8By2791/cNqUSQCAyYkTjh4/aTC0tO0OgLmzZ0kkEj8/vxdfSD1xsk2FTuweQZgSsMWtxOAABICrkwj+Lu69NSMyxAqEgGk1QnMLQqi6urqyomLosGGs2Xz5UtGlwott7QErghaLO/dppBIJVsyD0wpm3JjRJaU371RpTp46ExsTowoO4l0DYqIjwsNOnjpdW6e9cvXqc+PHAQDq6xtOnTn38absyTNmZSxa3GI0Hj5ylG8SqAjEBZUqWKfXW6z3mRzZPUWnBxFbcPM1WSvXZK2wTVqOEA5GYien2RA93Pfacf9LBzWx4w9/lTfyqVF9oqJuV1YWFxcfysvrERkZFhauMF/TgVCRSOSKXPmPCwBYnvnmoEcfJSM8ikwmGzd29IG8Q8XXrv1qxjTCO23KpEPfHKnTauNHxAX4+wMADuQdSngq/re/WYgDTp09t8eabAAAdXV1ERHhAICqKo1CoeDX8B3ZPQhWzO9f/xMA4N11b92PVnipYQm6ojwkvJDGdTIEAACAsdeghtFz/S/nmfb9a0CYf5/evRiGmTRlamRkpF7XUHhin1J/wmSRNot7iUQi0NGCkfDj4lFp3T/Xk0GeZsqkxN379peXV46MG064xo8be/16yeEjxyYlTgAAcBy372De1MmJKlUw/pc0YfydO1XXb5Tg+E+27zSZzc0Gwyfbd44bc+8OgiO7Zxk6ZPC7697qtFaKrhQT4uCTlpOLL2Azd3F6m04sbRo6ubi6PuTHczP8m82X9SZFpL+X3/xRwQ2VP5rgje+vePeKe55hRK48d7fun+uJj/vpts3tQzzPgJjoEJVqZNyTtl96uVw+dkzCqdNnnxw2FADw/fkCC8cNGfw4HyCTyZ55esye/QdfnDNbIpEMiIlOnTuvtbV1ZNzwRQsycIwj+4Ogc0LByKTStasyianx0CGD167KlEmdrfQR8oDV1dUGg8HPz08QA5oMLVW19QCAlpaWHTnbhsfFBfvIFGyNN2gRySSsNODUtariknKJRJzy/Gw/Pz8IYbhK6eftJdzJz583174dFhqycP480tGeKk31rDm/Pn74oKj9t8KRvTvR1NTk7e0NAMDP7Tqcu+ARSyKRTEhMRBYOicVNvoEGkVgsEYvF4iEjYh4fzjEMI5fL+YGta3Gp6Er+6bM7sv9DOhzh6Bgd2bsLwrmL/cGIAcBsNkMIIQTBwaqmxkaWZREAACIAEEBIJBZLGAZCgFDb+wNd6Pul0+vTMhZJpZLlb7ymUgWTbooAoTwghPDOnTtGo9Hf318YxHFcs6HFaDbhKuIQ29oKIYAQMpCBDIQACi/d5VKZj7eXKzMYSteisbFRLpfjM8swTNt7RkQQwzB+vj5+oPNPJlC6B1gbeDwC+DadrVwoFIxQHl1rykF5mGDROFsEoFAAAMi6qtiWXahiKI4QaoMORhSX4GcwNLtQnEFog85dKB2AFYITDM0uFGeQ2UVYoVCcgPDjUTS7UBwhlAd09I708UbNhqqrJS33nsmlOCfay//V8IFj/cNIR/fCzgMMxxs1ayovHY1PVohlhIviCF2radyZXUANup9ikPOHLzdUXaVacReFWHZkZPJ7VddIRxcHa4NXiJ2pbklLI9VKJwiUyG606Elr98L+3IVCEXIvu9ArI4oTCHnYGYwoFEdQuVBcou3KiA5GFCdgeWCFIPoAA8UtqFwobkDlQnEDOnehOEMoDzp3obgErxgqF4obULlQ3MDOijSFwkNog2YXSsfcm7vQ1EJxjlAhNLtQXAKLhsqF4gZULhQ3oHKhuIEduUR7+deYPPlTCL8QakyGGK8A0tq9sLNm9Gr4wPHffvmjoUlopDjnR0PT+G+/XBweSzq6OIQ87DzaPdY/DKgHpxUe6vbPtXuQGK+ATPXgMd3uJSMCO3IBAIz1D+t+r1dROg3OMRBCO3MXCsURVC4UN6ByobgBlQvFVRB9mo7iFlQuFDegcqG4AZULxQ2oXChuQOVCcQMqF4obULlQ3MDOEqPFYtFUV9fXN7R6+gfXfw5IxGKlMjA0JMT2p4IJaD/YYkcu1TU1JpN5YOwAiURC+ro+LMveqqjUVNf0iAgnfe2h/WCLncGovr6hV091t+wjAIBEIumlVjc0NJAOG2g/2GInu7CtrWKxnT/P3G2QSMRsaytptYH2gy12sguFYhf6eBTFPewMRsDmRepfLLQfCGh2obgBlQulYyCE+Ffq6WDkDNoPBGJeOJT7QafTVVRUQAjVarVCoSDdXRZCHnQwul90Ot3GjRt3797d2Nio1+v37NmzceNGnU5Hxj0kklPnXrxURFo7i/3B6AGBENq6devkyZODgoJIHwAAgO/PF+TszL1ZVsZZuJ491Skzpz87bix2LX39f+NHxKUkTwcA6PWNi3//x6mTk2YlzxC0fgjodLrVq1fPnz8/NrbtdddRo0bV1tZu2rRp/vz5TtLMjZLSrdt3Xim+1mI0KgMVM6dPfejH4gr25fIgxmyE0LZt22JiYpRKpd39nzpzbu3bf1+y+OWEUfESsbiw6PLbf3+3vqEhZeZ0HIAAQggZjcb/Wb5yTMKolJnT7e7Hg3S4/9zc3IyMjAMHDqhUKv47EBwcnJaWlpubu3DhwvbhbRQWXX5jeebc2bNeW7rEz9f3v+XlFgvX4f/VORBoewmRdHQK+3LxOFgr0dHRcXFxpM/Kxv9sTnshdeJzz+Lq8GFDly5ZvOqvf5syKVEua/v1ttbW1hVZa6L79V0w78V7LR8SOp1OJpPFxsaGhIRkZ2enp6fzilGpVHK5XK/XBwTY+ZsM69/7cNrkpLQXUnG1X1QULpw9992WrTm371R5yeWps5Lx9yR5dtoflizO3rajovJ2ZI+IP/7u1YGxAwAAdXXa9e9/eL6gEEIwJSnx5Zcy6rTaf/xrQ+GlIm9v7zmps2ZOm2L9Dz3GTzR32bFjR79+/UaMGEE6rNTVaSsqb4+KbxcQP2I4y7LXrt3AVcShtX/7h6+vz9Ili4VhD4vy8vK+ffsCAIKCgtLT07Ozs7VaLe/t06dPRUXFvWgr2vr6H8r+mzhhPOkAICws9LWlS/Z/kbsqc/kHH22qs+4tZ+dna7JW5O35/MlhQ95Z/x42LluZFahQfJGbs2vntuTpUwEAK/6yOiwkZO+u3HfeXrtl6/YLFwv5Pd8/eMLL2L0sQveBVqvNz88XWrZv3967d++RI0cKjQQ6vR4AEBioEBohhP7+fjq9HiEEAMjd9cW57857yeX3+QmRy5mZbNYeCCFfViqV6enpW7Zs0Wq12OKoeUODDgAQHBREOhDq3atn/359IYSxA2ICFQFVmmqEEABg2uQkVXAwhPDZp8dWVFYihG6VV5T+UPbySxkyqVQmkwUHB1VUVl4vKX0pI10sEvVURyY8NfJE/mncHOFR3B7tD9c+D/bKSKlUVlVVnTx5Eldzc3PVanV8fHz7KBKctLX17dbTLRaLXt8YEOCPq08OHbL5ww35Z84dOnxEGPawUKvVZWVlfFWpVM6bNy87O7u+vh4AUFpaqlar70VbwUfKZw4hu3bvnbfwlUkzZk2cmqytb0Ach+0qVTAuSCQSlm0FAGjr6/38fOVyOd+2tk6LEJrx/JyJU5MnTk3+5uix5uZm3nuf8IoRCyueIiUlZceOHfn5+RqNJiwsLCEhgYywIThIqVZH5p8+Myd1Fm88ffZbqVQaOyAGV/v26RMaGrLiT6+vXLW2f7++UX1685EPBYVCYTQaa2trVSoVtuAck52dnZSUxLKs3Suj4CClOrLHkWMn5qenCe0FFws3Z29b99dVA2KiGYaZljKbdzE2K8GBCkVT012j0cgrJkipFIvF+7/IFYs9OR8ltEF+DgyZs9wnNTX11q1bKpVq9OjRpM8Bi+anb9/5Wd6hw83NzUaT6dx359/99/sL5r0ok0oRQsiaU4cNfSI1ZWbmqrXNBkP7HbgBecAOIJvZkJKSkpOTU1NTw1sCAwMTExM3bdqUkpIiCGzHSxnpn+36YteXe/T6RoRQQ0NDTW1t0927ci95aGiIxWLZvXd/U9NdZL00Ew4m+FP17tWzV0/1R5uyjSYTy7KVlbd7qiP79Y3a8OHHuFuqa2pramttmxMQx9shnlSiEAjh3LlzSatTnho5ImvFsu25n7238WPEIXVkj1cWLXjm6TFkHABpL6RevX5j3TvrM5e/Qfp+WhQKRXp6+ueffy6VSqOioiCEpaWlLMsuW7bMbmrBJDw1MmvF8h25/7f5kxwLxwX4+y9+eUH8iLiTp87MSX/Jy0uePH3qiLgnyWbtWZO18t1/vz9z1hwEwPQpkxbOT1/9lz9v+OCj5+emIw6FhYb+4XeLVcFto5ingGVlZQaDISzs3t+Kunip6LFHBgpiuiGXi68+8fgg0toet/pBp9Pdvn0bIdS1FgE67AeNRuPt7c0wbZdEdM3IMygUii6kEtcRygPSp+kobmF/7tKJSVC3hPYDAc0uFDdg6NyF4gQsD6wQCCEdjJxB+4EHK4YORhQ3YCCEDENFQ7EPf8cFY2cwkojFLMt6dunhZwXLtoolHR8d7QcePH1h7OYVZWDgHU01XvnsfrBsa1W1xs/Hl3TYQPvBFjsr0qGhIZrqmlvl5e6+b90lEEvEfj6+cpmUdNhA+wFYtcErBFZUVLS0tDh61pryC0er1Xp5eTkbjCgUR9DbdBRnYHnwIqHZheISWDEMLpFOCgUAYKMN+28CUCg8EEJ8sw5CSOcuFGcQ8qBzF0rHYNHQ7ELpAKE82uQis76BTKEQyOVya2axXkjTm3UURwhTC8BvAgAAzGazxWIxmUzCF5Y4jgMAIIQ4ru3PSeAyLvAWvkBsMXzZ1ii0CO2uGLsT/ClxbsQWoZ04l8IysSUK/GMJ0HrVg418DIRQLpfzF0R88L0lRpFI5OXlRahBWBWWebCF3/Ix/JaHr7poJ3Du7aLgnncE7yXCnNvxlj/3wq0QHCMs8zFCF67iLQBAzDAMPse8AyGEywghhmGwLCCEuIyb4TBcxc35eFwgto7g/y9g/QCO4vmwXwK2Byu0ED3GF4hTCyHEZUIKuEBUbQu4TDQX4zo/3PBlHO1IKBzHEbvj1UOcbxzv3HI/eHBXDw6+r1zENp63CF24TLgghLYFfovTBu8VxvAFfEKFZT7y/wGcs1VS5X8L1gAAAABJRU5ErkJggg==) +&] +[s0; &] +[s5; Please notice that MyAppLayout contains variables [* ok] and [* cancel] +of Button type. The naming is not accidental and CtrLayout like +functions require names to be strict.For [* CtrlLayoutExit] the +button variable should be named [* exit]. Also the `"OK`" and `"Cancel`" +buttons on above image poses characteristic images. This is all +thanks to CtrlLayoutOKCancel function[* .]&] +[s5; [/ Note: ][*/ IDOK][/ , ][*/ IDCANCEL][/ are predefined constants.]&] [s3;:21: 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