From 1da32a13151d397ab5d931dc1d9803ea65b4b5da Mon Sep 17 00:00:00 2001 From: Mirek Fidler Date: Sun, 26 Dec 2021 09:40:51 +0100 Subject: [PATCH] CtrlLib tutorial: 14.1 minimal window size --- tutorial/Gui14a/Gui14a.upp | 11 +++++ tutorial/Gui14a/main.cpp | 28 +++++++++++ uppsrc/CtrlLib/srcdoc.tpp/Tutorial_en-us.tpp | 52 +++++++++++++++++++- 3 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 tutorial/Gui14a/Gui14a.upp create mode 100644 tutorial/Gui14a/main.cpp diff --git a/tutorial/Gui14a/Gui14a.upp b/tutorial/Gui14a/Gui14a.upp new file mode 100644 index 000000000..933f773fe --- /dev/null +++ b/tutorial/Gui14a/Gui14a.upp @@ -0,0 +1,11 @@ +description "More about logical coordinates\377"; + +uses + CtrlLib; + +file + main.cpp; + +mainconfig + "" = "GUI"; + diff --git a/tutorial/Gui14a/main.cpp b/tutorial/Gui14a/main.cpp new file mode 100644 index 000000000..d94e5f7f0 --- /dev/null +++ b/tutorial/Gui14a/main.cpp @@ -0,0 +1,28 @@ +#include + +using namespace Upp; + +struct MyAppWindow : TopWindow { + Button lt, rt, lb, rb, lv, ht, hv, cb, rc; + + MyAppWindow() { + Title("My application with button").Sizeable().SetMinSize(Zsz(600, 400)); + *this + << lt.SetLabel("left-top").LeftPos(10, 200).TopPos(10, 40) + << rt.SetLabel("right-top").RightPos(10, 200).TopPos(10, 40) + << lb.SetLabel("left-bottom").LeftPos(10, 200).BottomPos(10, 40) + << rb.SetLabel("right-bottom").RightPos(10, 200).BottomPos(10, 40) + << lv.SetLabel("left-vsize").LeftPos(10, 200).VSizePos(60, 60) + << ht.SetLabel("hsize-pos").HSizePos(220, 220).TopPos(10, 40) + << hv.SetLabel("hsize-vsize").HSizePos(220, 220).VSizePos(60, 60) + << cb.SetLabel("hcenter-bottom").HCenterPos(200).BottomPos(10, 40) + << rc.SetLabel("right-vcenter").RightPos(10, 200).VCenterPos(40) + ; + } +}; + +GUI_APP_MAIN +{ + MyAppWindow app; + app.Run(); +} diff --git a/uppsrc/CtrlLib/srcdoc.tpp/Tutorial_en-us.tpp b/uppsrc/CtrlLib/srcdoc.tpp/Tutorial_en-us.tpp index e732366d6..a1bc2bdce 100644 --- a/uppsrc/CtrlLib/srcdoc.tpp/Tutorial_en-us.tpp +++ b/uppsrc/CtrlLib/srcdoc.tpp/Tutorial_en-us.tpp @@ -62,6 +62,8 @@ and decorative Frames]&] child Ctrls `- widgets, reacting to widget events]&] [s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#14^ 14. More about logical coordinates]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`_en`-us`#14`.1^ 14.1 +Minimal window size]&] [s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#15^ 15. Font`-zoomed logical coordinates]&] [s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#16^ 16. Layouts]&] @@ -760,7 +762,7 @@ to `*this `- that should explain the line&] (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) &] [s5; &] -[s3;:14: 14. More about logical coordinates&] +[s3;:14: 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 @@ -816,6 +818,54 @@ logical coordinate the specifies the center position.&] (iVBORw0KGgoAAAANSUhEUgAAAUcAAAFSCAIAAADuMIoUAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAABRLSURBVHhe7ZsxjuXIlUXTEWbQVnlttTGNMjROO7mA2kN5SmAWIbQ/6crtDQgJDCBv0BuQU742oR1oCYogg2QwGHwMZl2+/zP+OXgoRAaDQcatd/JnllpP//P3v1EU1VNFq//7H3+lKKqPwmqK6q2wmqJ6K6ymqN4Kqymqt8JqiuqtsJqieiuspqjeCqspqrfCaoq6x3p6evqv//vfYjJUmAyXismiDqz+4z/+/Cns8fXPxfzPv35+evr84++rSWENz437//H3P/3wrge9+0a7qtvOb5tPzmVfpahqBXv/8B//WYhdndxWi9Wff/hl1ZRJ9Ss79X0mePqTP8t+bvtbte9JPUIVDjcqHarJ6k9fP//w61+Wyd++PH39cmnPva+nPU1oN7D9rdr3pB6kZpPblQ7VZPWPv4c/v/yUZv7yY/zoHufD+OnTb9PiYPsvf/o5u/2nr/EzPTL8DJ92+y38EBsZv1NYk+En8Ky5h0cPi57SQ/P9h5UT6cvpxvhjc2K8MV399cs4mX/PChW2XS2bN1m2rT1rfYS5qldXO1f2DN80J8boTh6B6qZGn9uVDtVoddboob2iuml++NxOv3XPa4qaNxkGT6P58y+o+5PFICpd7d3t4s1k9vLZZBImHGH6njXWfKgwCL99jA/9+dc42H/WdITtbvnVzQGnBbuT8w6njkB1UxdaHZtp6MtR3WU+DmI/xcGwYHV77LaReXHq1FDFVtXJZRC7uWxcY/+9G7cPzcdjZYcdPmPjePwJJdt2Z4fKbusZ4wX29nnHEag+alQ6/DkPigXVarZ6bOvU4qs2Gj/Exj9X9069OP3Qvrpr/OzddGc5uQw2Vh/tX7+xyeq04fh9Koy//BQ2WR98b4fabvnV6qnTeG8frH7MKkxuF7vV6jgePhhHdcue++XLp8Gr8a6x4vrRhNiU8epw17TD1Kn7k/Mt4yD6kH/j2Nk/vcZ6h6hBdf985bjtWPGbVPaz96evX4qD7+2w3W2Y2R4w6R0nY7CHe54+AvWhq+pwo9hnrB4/tTbzocKnx/zb9Vxj40Ym58e7Pn39PMxObbo/Od8yvUAYJ8Ky7f5hTXyTwO6/luVbVcZzzd8pynG2uP6szW7jTHHAOD//+pD9DwrznsX4HUegPnSFv+mqvWEyXComizqwurFC/83NalS1+ehIitKWwOr4MTL8JFzMbwurKcqhvsvq6WfgViexmqIcSvBZTVHUXRVWU1RvhdUU1VthNUX1VlhNUb0VVlNUb4XVFNVbYTVF9VbJ6n8BQC9gNUBvYDVAb2A1QG9gNUBvYDVAb2A1QG9gNUBvYDVAb2A1QG9gNUBvtFr9/9BACsskLX080vlN0lIwSWHtc8Lqf4JJS9yBx0yScFS0JInVMmhcA8JR0ZIkVsugcQ0IR0VLkje3+u3l6fn1W/qiJFwM7F+/Ky5rXDOikW+vz/cd02XhtHGQT0PCd0NLkvdsdXT65W0eG8vu4q/kssb9SD23x2XhSKgmfKct15LknVs9X7rTiHMua9x7OeD3cFk4EqoJ32nLtSR5T1bHH5NGwid0mE88v77O4/mze2JZli4tm6w/59/S/HV/G5c1bvX9V2HNMWan3wZSZjewE04lxoONbC4LxyAe7eUlvHR435RPZDrH0Ffj5DaEMDNRnnZzqZLVdkMZLUnej9XzIA6nZOdA8nFBsWxKNmY9zsfJNFwm9VzWuNn7z+cLg1W3ha/zc82Xs/mUakHccRNOnCxjnLd8F5eFYxBPsRx+c7RBxmVyc32+ZUt+abnBp+Vakrwbq4eMF2JORXbTeFm5ST9eSgkHwoXhi3yfeVLPZY2bv/80HkJYTrV3xm2qRnrzjdUYyyee47JwDPKjTeNwitVxxy9qK/NJI7RqVqsN50kNLUneldXF2fNoVjGtyS4dR1x5jIrLGnc3h7HZyjNOx44cH7cWTj3GSPbEc1wWjkF+tGkcDrDkNy+orVxNFmSX6lnl965XfDctSd6N1XFQpJhHk48LimVTgkuY2c7ihFdc1rhWDlOXzvNhkB8wO3udbME6sU2MiemJ57gsHIM5k3y8HC2ebJmsrpwnC4r126ziZFqxCfA7aUnyfqxOMSdiDqtYY05pvmR1adkkz338V5OIMuA1lzVunsM0TmcOjAdK88t0YLypTLUg3lgJZxtj+cRzXBaOQcqkHE8HKf+1bLMyLawdd3XJt+Vakry51Q7kf2cXcovG/X4eOJxoo9a4mQtTbUkSq2XcY+Me87jhhJNfdnSsvhysNni0cA5+IRGB1b1wN417jxCOipYkT1gNh6SwTNLSxyOd3yQtBZMU1j6tVgPARwGrAXoDqwF6A6sBegOrAXoDqwF6A6sBegOrAXoDqwF6A6sBegOrAXoDqwF6o9Xq9N+Vg0kKyyQtfTzS+eF6Tlid/p9gsENj4z5mkljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG3QHg4cksLaB6tltMQdeMwkCUdFS5JYLYPGNSAcFS1JYrUMGteAcFS0JInVMmhcA8JR0ZIkVsugcQ0IR0VLklgtg8Y1IBwVLUlitQwa14BwVLQkidUyaFwDwlHRkiRWy6BxDQhHRUuSWC2DxjUgHBUtSWK1DBrXgHBUtCSJ1TJoXAPCUdGSJFbLoHENCEdFS5I3sfrt5en59Vv6oiRcDOxfb+Lb6/P3bnEadeOaKY1cd0z1zupw1hy8bUOSH4eWJO/N6uj0y9s8/kh/GerGfbheDEjbbKaapE+8+qe0JHmHVs+XfHKXoW7cD3Z8G3U4p6gm6ROv/iktSd7a6viz00j4hA7ziefX13k8f3ZPxHuWubTZaqPKbGC8p1ioQ924wxHe0ttW83rvMeO1ZdYlQHU4gfiGLy/hXcJrpLeNTK83tNA4OVxdJRlmJspDVMMJbI5dTgxLp7atP6V2y3SEVlqSvK3VS2ZhOAUxzazGa8KVKYc0zGYGinvny9l8eqIMdeOGV51sjsPh/edzJLLjRObL2Xz1mNk+aZjNDGQ7RObL2fyZANXhBMKbZK+ShnFyfNHBoGVyc32+ZUO4MkUxDeNm69XZ7UvrZntXnlK/Zb7cSEuSN7V6+dY1EHPYSaHyTW4ajEuyv8OBfJ9lde2JMtSNW4vi3ce8dYDqcAL5G07j8Hqrtx6/qK3MJ5vCWR+1kkP7UwbKW1ppSfLmVq/DqkdTIdwaro1/pqkpt2HH7N4wnB9SeaIMdePuRiE55hjd+GeaujJAdTiBPJNpvDrPvKC2cjVZUoazPXUlh6OnHNzSSkuSN7U6Dopj5ec0zxwjD7+SlB02/U3kj8jXbJ8oQ924VhSCY/oGqA4nML9hPo6vN75uOMj0pnsr58kNZThxs/Xq+KDNjP0U+5ZWWpK8rdUp+0TMcHXOGEOa3zLcOV9KSwPjVNpnmQ6MG5dPlKFu3DyKaaw8pmuA6nAC6Q3L8fTG5b+WbVamhS3hRKZ95+kyh4anWLe00pLkTazukwsatx9uEE5UaOVlH7QkidUybtC4Hwf/cOKH5OkPwg9AS5JYLcO/cT8QXuG869eDD0VLklgtw6txPySEo6IlSayWQeMaEI6KliSxWgaNa0A4KlqSxGoZNK4B4ahoSRKrZdC4BoSjoiVJrJZB4xoQjoqWJLFaBo1rQDgqWpLEahk0rgHhqGhJEqtl0LgGhKOiJUmslkHjGhCOipYksVoGjWtAOCpaksRqGTSuQXs4cEgKax+sltESd+Axk2wMByRgtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2hOsloHVBljtCVbLwGoDrPYEq2VgtQFWe4LVMrDaAKs9wWoZWG2A1Z5gtQysNsBqT7BaBlYbYLUnWC0Dqw2w2pMTVsMhKSyTtPTxSOeH62m1GgA+ClgN0BtYDdAbWA3QG1gN0BtYDdAbWA3QG1gN0BtYDdAbWA3QG1gN0BtYDdAbrVan/0IfTFJYNdKKhyfFsUNaBCYprH1OWJ3+P3Wwgx03AQYOO5KUDjnMMIDVMuy4CTBw2JGkdMhhhgGslmHHTYCBw44kpUMOMwxcbfXby9Pz67f0RUm4GNi/PmDucE/YcQ8B3slZbvYahx35zjb79vpsnejsee+65Q4zDNzQ6nDp6eVtHhvLGiPOV7bfJcOOewhQ+1bv3u1mkR525HvbzKb65sZxbpZPC4cZBm5rdUsi7WE1bngVdtxDgNq3evduN4v0sCPf22Y21Tc3jnOzfFo4zDDgaHX8MWkkfEKH+cTz6+s8nj+7M4Yd3tK9S2zLbuNNy4ZPLy/lhuXiwGrbMDkvefffjB33EODOWdbR1CaGG6echhvz8xZnXG55eQlzacuMndcoU8ofoYn0sCPPtFl+wOHR40Ompw55jZPb8+ZH28RTWT9wfT4tHGYYcLN6HsThlOx8nHxcEC5N544xjKM4mcJaTVY33Fs8bZsN87VnseMeAiweOj5oeaeJcG2aWLKali83Zst2bpkvrxl2G6/5RnrYkWfaLO47vVAYLw8eHxbfq/5i2/QKsvW++bRwmGHAy+oh44V4iulSviywrKykH76Is3HNEkSatDZsXrwan8OOewiw9qD160Vas8om7VuWq+OD8t3iF3H2VEqnFmfjw44802a1R4QXm+eWBdWXySbvJp8WDjMMeFq9nHOg8WD5pWmXu4k4x457CLD2oG0yrVllkwe3FOSXpjtPpXRqcTY+7MgzbVZ7RHixeW5ZUH2ZfLIgv+SaTwuHGQa8rI6D4t0bD5bduIQVJ1Nsq8nqhmcXz+Nz2HEPAVYfFN9p/chwaTuzvbGYNG4pyBb7RnrYkWfarPqIMEhvE99rmayunCcL4ibpmm8+LRxmGHCzOsWciMdcHSZ8Mc0XxGXDP4qsry+71TdZbVhZnD99b3wOO+4hQOOhiXRAK6tlnG4rz7i9pSBeukmkhx15ps12HheG6bXW/1q2WZkWLuefiWvutuUOMwxcbfUDYcdNgIHDjlSmFL2qKPvROcwwgNUy7LgJMHDYkcKU4ifniY/AD8NhhgGslmHHTYCBw4787pSWH3yrP1t3wGGGAayWYcdNgIHDjiSlQw4zDJywGg5JYdVIKx6eFMcOaRGYpLD2abUaAD4KWA3QG1gN0BtYDdAbWA3QG1gN0BtYDdAbWA3QG1gN0BtYDdAbWA3QG8lqiqL6qb//7d+K0Vixy2LtwAAAAABJRU5ErkJggg==) &] [s5; &] +[s3;:14`.1: 14.1 Minimal window size&] +[s5;t300; When you decrease the size of dialog too much, buttons +in this example start to overlap&] +[s0;= +@@image:1077&653 +(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) +&] +[s5; which is something that is in most cases undesirable. To fix +the problem, you can specify the minimal size of window:&] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; struct MyAppWindow : TopWindow `{&] +[s7; -|Button lt, rt, lb, rb, lv, ht, hv, cb, rc;&] +[s7; &] +[s7; -|MyAppWindow() `{&] +[s7; -|-|Title(`"My application with button`").Sizeable().[* SetMinSize]([* Zsz](600, +400));&] +[s7; -|-|`*this&] +[s7; -|-|-|<< lt.SetLabel(`"left`-top`").LeftPos(10, 200).TopPos(10, +40)&] +[s7; -|-|-|<< rt.SetLabel(`"right`-top`").RightPos(10, 200).TopPos(10, +40)&] +[s7; -|-|-|<< lb.SetLabel(`"left`-bottom`").LeftPos(10, 200).BottomPos(10, +40)&] +[s7; -|-|-|<< rb.SetLabel(`"right`-bottom`").RightPos(10, 200).BottomPos(10, +40)&] +[s7; -|-|-|<< lv.SetLabel(`"left`-vsize`").LeftPos(10, 200).VSizePos(60, +60)&] +[s7; -|-|-|<< ht.SetLabel(`"hsize`-pos`").HSizePos(220, 220).TopPos(10, +40)&] +[s7; -|-|-|<< hv.SetLabel(`"hsize`-vsize`").HSizePos(220, 220).VSizePos(60, +60)&] +[s7; -|-|-|<< cb.SetLabel(`"hcenter`-bottom`").HCenterPos(200).BottomPos(10, +40)&] +[s7; -|-|-|<< rc.SetLabel(`"right`-vcenter`").RightPos(10, 200).VCenterPos(40)&] +[s7; -|-|;&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MyAppWindow app;&] +[s7; -|app.Run();&] +[s7; `}&] +[s5; [* Zsz] function converts arguments using font zooming to account +for various base GUI font settings.&] [s3;:15: 15. Font`-zooming&] [s5; All distances in U`+`+ widgets are always in pixels. However, to respond to platform setting of GUI font, U`+`+ provides functions