From c0b98b619e4648e4142f976bf9c85acd5dc1495a Mon Sep 17 00:00:00 2001 From: mollusk Date: Fri, 25 Nov 2016 00:33:18 -0700 Subject: [PATCH] added eugtk examples --- eugtk/examples/.httpd.css | 11 + eugtk/examples/BEAR.ex | 845 + eugtk/examples/GtkAboutDialog.e | 39 + eugtk/examples/GtkCairo.e | 643 + eugtk/examples/GtkEngine.e | 9648 +++++++ eugtk/examples/GtkEnums.e | 1514 ++ eugtk/examples/GtkEvents.e | 277 + eugtk/examples/GtkFileSelector.e | 454 + eugtk/examples/GtkFontSelector.e | 154 + eugtk/examples/GtkPrinter.e | 567 + eugtk/examples/GtkSettings.e | 305 + eugtk/examples/GtkSourceView.plugin | 741 + eugtk/examples/GtkWebKit.plugin | 498 + eugtk/examples/browser.ex | 118 + eugtk/examples/documentation/.httpd.css | 11 + eugtk/examples/documentation/Broadway | 41 + eugtk/examples/documentation/Glade.html | 418 + eugtk/examples/documentation/HowItWorks.html | 1195 + eugtk/examples/documentation/README.html | 1169 + eugtk/examples/documentation/ServerHelp.html | 184 + .../examples/documentation/StartingGlade.html | 271 + .../documentation/StartingGlade2.html | 208 + eugtk/examples/documentation/bear.html | 153 + eugtk/examples/documentation/dialogs.html | 277 + eugtk/examples/documentation/favicon.ico | Bin 0 -> 21230 bytes eugtk/examples/documentation/functions.html | 253 + eugtk/examples/documentation/guide_a.html | 1558 ++ eugtk/examples/documentation/images/bear0.png | Bin 0 -> 707879 bytes eugtk/examples/documentation/images/bear1.png | Bin 0 -> 13264 bytes eugtk/examples/documentation/images/bear2.png | Bin 0 -> 17660 bytes eugtk/examples/documentation/images/bear3.png | Bin 0 -> 21145 bytes eugtk/examples/documentation/images/bear4.png | Bin 0 -> 235528 bytes .../examples/documentation/pango_markup.html | 267 + eugtk/examples/documentation/platforms.html | 141 + eugtk/examples/documentation/printing.html | 327 + eugtk/examples/documentation/style.css | 107 + eugtk/examples/documentation/treeviews.html | 496 + eugtk/examples/eu.cfg | 1 + eugtk/examples/examples/.httpd.css | 11 + eugtk/examples/examples/README.html | 118 + eugtk/examples/examples/audio_converter.ex | 193 + eugtk/examples/examples/base_converter.ex | 159 + eugtk/examples/examples/browser.ex | 118 + eugtk/examples/examples/clown.e | 1053 + eugtk/examples/examples/color_codes.ex | 185 + eugtk/examples/examples/colornames.ex | 68 + eugtk/examples/examples/eu.cfg | 1 + eugtk/examples/examples/hangman.ex | 154 + eugtk/examples/examples/httpd.ex | 403 + eugtk/examples/examples/icon_E.e | 641 + eugtk/examples/examples/icon_I.e | 544 + eugtk/examples/examples/icon_P.e | 1041 + eugtk/examples/examples/icons.ex | 224 + eugtk/examples/examples/leak.ex | 56 + eugtk/examples/examples/passwords.ex | 68 + eugtk/examples/examples/talk.ex | 143 + eugtk/examples/examples/task.ex | 100 + eugtk/examples/examples/test_all.ex | 104 + eugtk/examples/examples/test_missing.ex | 39 + eugtk/examples/examples/webkit.ex | 153 + eugtk/examples/examples/webserver.ex | 165 + eugtk/examples/examples/worldflags.ex | 239 + eugtk/examples/examples/xpm_include_test.ex | 23 + eugtk/examples/examples/xpm_to_eu_include.ex | 141 + eugtk/examples/glade/.httpd.css | 10 + eugtk/examples/glade/Jessica-Alba.jpg | Bin 0 -> 36129 bytes eugtk/examples/glade/README.html | 85 + eugtk/examples/glade/about.e | 15 + eugtk/examples/glade/about.glade | 36 + .../examples/glade/accessories-calculator.png | Bin 0 -> 5347 bytes eugtk/examples/glade/au.e | 14 + eugtk/examples/glade/browser.ex | 118 + eugtk/examples/glade/ca.e | 14 + eugtk/examples/glade/calculator.ex | 122 + eugtk/examples/glade/calculator.glade | 1027 + eugtk/examples/glade/calendar.ex | 58 + eugtk/examples/glade/calendar.glade | 205 + eugtk/examples/glade/clock.ex | 32 + eugtk/examples/glade/clock.glade | 90 + eugtk/examples/glade/colors.ex | 18 + eugtk/examples/glade/colors.glade | 111 + eugtk/examples/glade/coweat2.png | Bin 0 -> 14066 bytes eugtk/examples/glade/en.e | 14 + eugtk/examples/glade/es.e | 14 + eugtk/examples/glade/eu.cfg | 4 + eugtk/examples/glade/eugtk.png | Bin 0 -> 12921 bytes eugtk/examples/glade/euphoria.gif | Bin 0 -> 11566 bytes eugtk/examples/glade/file.e | 88 + eugtk/examples/glade/file.glade | 68 + eugtk/examples/glade/fr.e | 13 + eugtk/examples/glade/glade.svg | 1272 + eugtk/examples/glade/gladetest1.ex | 27 + eugtk/examples/glade/gladetest1.glade | 240 + eugtk/examples/glade/green-terminal.png | Bin 0 -> 881 bytes eugtk/examples/glade/gtk-logo-rgb.gif | Bin 0 -> 6271 bytes eugtk/examples/glade/hello.ex | 48 + eugtk/examples/glade/hello.glade | 257 + eugtk/examples/glade/help.e | 29 + eugtk/examples/glade/help.glade | 92 + eugtk/examples/glade/list.ex | 46 + eugtk/examples/glade/list.glade | 281 + eugtk/examples/glade/main.ex | 39 + eugtk/examples/glade/main.glade | 294 + eugtk/examples/glade/math_eval.e | 1258 + eugtk/examples/glade/mongoose.png | Bin 0 -> 5167 bytes eugtk/examples/glade/paned.ex | 24 + eugtk/examples/glade/paned.glade | 132 + eugtk/examples/glade/pref.e | 52 + eugtk/examples/glade/pref.glade | 188 + eugtk/examples/glade/prefs.glade | 255 + eugtk/examples/glade/test11.ex | 20 + eugtk/examples/glade/test11.glade | 135 + eugtk/examples/glade/test116.ex | 27 + eugtk/examples/glade/test116.glade | 73 + eugtk/examples/glade/test12.ex | 30 + eugtk/examples/glade/test12.glade | 90 + eugtk/examples/glade/test13.ex | 35 + eugtk/examples/glade/test13.glade | 174 + eugtk/examples/glade/test142.ex | 13 + eugtk/examples/glade/test142.glade | 58 + eugtk/examples/glade/test157.ex | 23 + eugtk/examples/glade/test157.glade | 94 + eugtk/examples/glade/test25.ex | 188 + eugtk/examples/glade/test25.glade | 439 + eugtk/examples/glade/toolbar.ex | 37 + eugtk/examples/glade/toolbar.glade | 292 + eugtk/examples/glade/webserver.ex | 78 + eugtk/examples/glade/webserver.glade | 329 + eugtk/examples/glade/widgets.ex | 102 + eugtk/examples/glade/widgets.glade | 487 + eugtk/examples/glade/widgets.png | Bin 0 -> 17038 bytes eugtk/examples/glade/widgets.xml | 498 + eugtk/examples/glade/x2.png | Bin 0 -> 215386 bytes eugtk/examples/plug.ex | 61 + eugtk/examples/resources/Jerry.map | Bin 0 -> 275 bytes eugtk/examples/resources/Justin.map | 7 + eugtk/examples/resources/README.html | 178 + eugtk/examples/resources/a.e | 17 + eugtk/examples/resources/apple-red.png | Bin 0 -> 3545 bytes eugtk/examples/resources/b.e | 17 + eugtk/examples/resources/background.jpg | Bin 0 -> 22219 bytes eugtk/examples/resources/clown.e | 1050 + .../examples/resources/colorcode/README.html | 20 + eugtk/examples/resources/colorcode/bar.jpg | Bin 0 -> 613 bytes eugtk/examples/resources/colorcode/bar0.jpg | Bin 0 -> 644 bytes eugtk/examples/resources/colorcode/bar1.jpg | Bin 0 -> 583 bytes eugtk/examples/resources/colorcode/bar10.jpg | Bin 0 -> 650 bytes eugtk/examples/resources/colorcode/bar11.jpg | Bin 0 -> 658 bytes eugtk/examples/resources/colorcode/bar2.jpg | Bin 0 -> 612 bytes eugtk/examples/resources/colorcode/bar3.jpg | Bin 0 -> 621 bytes eugtk/examples/resources/colorcode/bar4.jpg | Bin 0 -> 646 bytes eugtk/examples/resources/colorcode/bar5.jpg | Bin 0 -> 658 bytes eugtk/examples/resources/colorcode/bar6.jpg | Bin 0 -> 646 bytes eugtk/examples/resources/colorcode/bar7.jpg | Bin 0 -> 618 bytes eugtk/examples/resources/colorcode/bar8.jpg | Bin 0 -> 648 bytes eugtk/examples/resources/colorcode/bar9.jpg | Bin 0 -> 654 bytes eugtk/examples/resources/colorcode/end1.jpg | Bin 0 -> 1416 bytes eugtk/examples/resources/colorcode/end2.jpg | Bin 0 -> 1432 bytes eugtk/examples/resources/colorcode/end3.jpg | Bin 0 -> 1266 bytes .../examples/resources/colorcode/leftend.jpg | Bin 0 -> 943 bytes eugtk/examples/resources/colorcode/rcc.jpg | Bin 0 -> 11525 bytes eugtk/examples/resources/css_multiplebgs.css | 142 + eugtk/examples/resources/css_pixbufs.css | 76 + eugtk/examples/resources/cssview.css | 41 + eugtk/examples/resources/eu.cfg | 1 + eugtk/examples/resources/flags/README.html | 19 + .../resources/flags/flags-afghanistan.png | Bin 0 -> 1420 bytes .../examples/resources/flags/flags-aland.png | Bin 0 -> 450 bytes .../resources/flags/flags-albania.png | Bin 0 -> 1731 bytes .../resources/flags/flags-alderney.png | Bin 0 -> 1351 bytes .../resources/flags/flags-algeria.png | Bin 0 -> 983 bytes .../resources/flags/flags-american_samoa.png | Bin 0 -> 2331 bytes .../resources/flags/flags-andorra.png | Bin 0 -> 1394 bytes .../examples/resources/flags/flags-angola.png | Bin 0 -> 1192 bytes .../resources/flags/flags-anguilla.png | Bin 0 -> 2095 bytes .../resources/flags/flags-antarctica.png | Bin 0 -> 1243 bytes .../flags/flags-antigua_and_barbuda.png | Bin 0 -> 1745 bytes .../resources/flags/flags-argentina.png | Bin 0 -> 727 bytes .../resources/flags/flags-armenia.png | Bin 0 -> 251 bytes .../examples/resources/flags/flags-aruba.png | Bin 0 -> 666 bytes .../resources/flags/flags-australia.png | Bin 0 -> 1974 bytes .../resources/flags/flags-austria.png | Bin 0 -> 251 bytes .../resources/flags/flags-azerbaijan.png | Bin 0 -> 638 bytes .../examples/resources/flags/flags-azores.png | Bin 0 -> 1584 bytes .../resources/flags/flags-bahamas.png | Bin 0 -> 681 bytes .../resources/flags/flags-bahrain.png | Bin 0 -> 730 bytes .../resources/flags/flags-bangladesh.png | Bin 0 -> 771 bytes .../resources/flags/flags-barbados.png | Bin 0 -> 815 bytes .../resources/flags/flags-belgium.png | Bin 0 -> 276 bytes .../examples/resources/flags/flags-belize.png | Bin 0 -> 3329 bytes .../examples/resources/flags/flags-benin.png | Bin 0 -> 290 bytes .../resources/flags/flags-bermuda.png | Bin 0 -> 2382 bytes .../examples/resources/flags/flags-bhutan.png | Bin 0 -> 2661 bytes .../resources/flags/flags-bolivia.png | Bin 0 -> 716 bytes .../resources/flags/flags-bonaire.png | Bin 0 -> 1410 bytes .../flags/flags-bosnia_and_herzegovina.png | Bin 0 -> 1277 bytes .../resources/flags/flags-botswana.png | Bin 0 -> 290 bytes .../examples/resources/flags/flags-brazil.png | Bin 0 -> 1951 bytes .../flags-british_antarctic_territory.png | Bin 0 -> 3098 bytes .../flags-british_indian_ocean_territory.png | Bin 0 -> 5748 bytes .../flags/flags-british_virgin_islands.png | Bin 0 -> 2664 bytes .../examples/resources/flags/flags-brunei.png | Bin 0 -> 2322 bytes .../resources/flags/flags-bulgaria.png | Bin 0 -> 254 bytes .../resources/flags/flags-burkina_faso.png | Bin 0 -> 566 bytes .../resources/flags/flags-burundi.png | Bin 0 -> 1970 bytes .../resources/flags/flags-cambodia.png | Bin 0 -> 1447 bytes .../resources/flags/flags-cameroon.png | Bin 0 -> 536 bytes .../examples/resources/flags/flags-canada.png | Bin 0 -> 838 bytes .../resources/flags/flags-cape_verde.png | Bin 0 -> 836 bytes .../resources/flags/flags-cayman_islands.png | Bin 0 -> 2505 bytes .../flags/flags-central_african_republic.png | Bin 0 -> 647 bytes eugtk/examples/resources/flags/flags-chad.png | Bin 0 -> 285 bytes .../examples/resources/flags/flags-chile.png | Bin 0 -> 584 bytes .../flags/flags-christmas_island.png | Bin 0 -> 2155 bytes .../flags/flags-cocos_(keeling)_islands.png | Bin 0 -> 1717 bytes .../resources/flags/flags-colombia.png | Bin 0 -> 273 bytes .../resources/flags/flags-comoros.png | Bin 0 -> 1459 bytes .../resources/flags/flags-cook_islands.png | Bin 0 -> 2798 bytes .../resources/flags/flags-costa_rica.png | Bin 0 -> 259 bytes .../resources/flags/flags-cote_d'ivoire.png | Bin 0 -> 278 bytes .../resources/flags/flags-croatia.png | Bin 0 -> 1280 bytes eugtk/examples/resources/flags/flags-cuba.png | Bin 0 -> 1090 bytes .../examples/resources/flags/flags-cyprus.png | Bin 0 -> 1147 bytes .../resources/flags/flags-czech_republic.png | Bin 0 -> 982 bytes ...flags-democratic_republic_of_the_congo.png | Bin 0 -> 2075 bytes .../resources/flags/flags-denmark.png | Bin 0 -> 395 bytes .../resources/flags/flags-djibouti.png | Bin 0 -> 1065 bytes .../resources/flags/flags-dominica.png | Bin 0 -> 1259 bytes .../flags/flags-dominican_republic.png | Bin 0 -> 844 bytes .../resources/flags/flags-east_timor.png | Bin 0 -> 1393 bytes .../resources/flags/flags-ecuador.png | Bin 0 -> 1338 bytes .../examples/resources/flags/flags-egypt.png | Bin 0 -> 713 bytes .../resources/flags/flags-el_salvador.png | Bin 0 -> 768 bytes .../flags/flags-equatorial_guinea.png | Bin 0 -> 1156 bytes .../resources/flags/flags-eritrea.png | Bin 0 -> 2181 bytes .../resources/flags/flags-estonia.png | Bin 0 -> 254 bytes .../resources/flags/flags-ethiopia.png | Bin 0 -> 1155 bytes .../flags/flags-falkland_islands.png | Bin 0 -> 2563 bytes .../resources/flags/flags-faroe_islands.png | Bin 0 -> 463 bytes .../flags-federated_states_of_micronesia.png | Bin 0 -> 797 bytes eugtk/examples/resources/flags/flags-fiji.png | Bin 0 -> 2237 bytes .../resources/flags/flags-finland.png | Bin 0 -> 335 bytes .../examples/resources/flags/flags-france.png | Bin 0 -> 280 bytes .../flags/flags-french_polynesia.png | Bin 0 -> 1252 bytes ...gs-french_southern_and_antarctic_lands.png | Bin 0 -> 1283 bytes .../examples/resources/flags/flags-gabon.png | Bin 0 -> 259 bytes .../examples/resources/flags/flags-gambia.png | Bin 0 -> 283 bytes .../resources/flags/flags-georgia.png | Bin 0 -> 912 bytes .../resources/flags/flags-germany.png | Bin 0 -> 253 bytes .../examples/resources/flags/flags-ghana.png | Bin 0 -> 576 bytes .../resources/flags/flags-gibraltar.png | Bin 0 -> 1356 bytes .../examples/resources/flags/flags-greece.png | Bin 0 -> 430 bytes .../resources/flags/flags-greenland.png | Bin 0 -> 835 bytes .../resources/flags/flags-grenada.png | Bin 0 -> 2013 bytes eugtk/examples/resources/flags/flags-guam.png | Bin 0 -> 1068 bytes .../resources/flags/flags-guatemala.png | Bin 0 -> 932 bytes .../resources/flags/flags-guernsey.png | Bin 0 -> 628 bytes .../resources/flags/flags-guinea-bissau.png | Bin 0 -> 582 bytes .../examples/resources/flags/flags-guinea.png | Bin 0 -> 285 bytes .../examples/resources/flags/flags-guyana.png | Bin 0 -> 1485 bytes .../examples/resources/flags/flags-haiti.png | Bin 0 -> 772 bytes eugtk/examples/resources/flags/flags-herm.png | Bin 0 -> 1306 bytes .../resources/flags/flags-honduras.png | Bin 0 -> 416 bytes .../resources/flags/flags-hong_kong.png | Bin 0 -> 1475 bytes .../resources/flags/flags-hungary.png | Bin 0 -> 254 bytes .../resources/flags/flags-iceland.png | Bin 0 -> 463 bytes .../examples/resources/flags/flags-india.png | Bin 0 -> 757 bytes .../resources/flags/flags-indonesia.png | Bin 0 -> 251 bytes eugtk/examples/resources/flags/flags-iran.png | Bin 0 -> 1618 bytes eugtk/examples/resources/flags/flags-iraq.png | Bin 0 -> 878 bytes .../resources/flags/flags-ireland.png | Bin 0 -> 280 bytes .../resources/flags/flags-isle_of_man.png | Bin 0 -> 1101 bytes .../examples/resources/flags/flags-israel.png | Bin 0 -> 738 bytes .../examples/resources/flags/flags-italy.png | Bin 0 -> 285 bytes .../resources/flags/flags-jamaica.png | Bin 0 -> 2020 bytes .../examples/resources/flags/flags-japan.png | Bin 0 -> 702 bytes .../examples/resources/flags/flags-jersey.png | Bin 0 -> 2154 bytes .../examples/resources/flags/flags-jordan.png | Bin 0 -> 1021 bytes .../resources/flags/flags-kazakhstan.png | Bin 0 -> 1860 bytes .../examples/resources/flags/flags-kenya.png | Bin 0 -> 1130 bytes .../resources/flags/flags-kiribati.png | Bin 0 -> 1654 bytes .../examples/resources/flags/flags-kosovo.png | Bin 0 -> 1488 bytes .../examples/resources/flags/flags-kuwait.png | Bin 0 -> 497 bytes .../resources/flags/flags-kyrgyzstan.png | Bin 0 -> 1779 bytes eugtk/examples/resources/flags/flags-laos.png | Bin 0 -> 609 bytes .../examples/resources/flags/flags-latvia.png | Bin 0 -> 278 bytes .../resources/flags/flags-lebanon.png | Bin 0 -> 1242 bytes .../resources/flags/flags-lesotho.png | Bin 0 -> 712 bytes .../resources/flags/flags-liberia.png | Bin 0 -> 695 bytes .../examples/resources/flags/flags-libya.png | Bin 0 -> 240 bytes .../resources/flags/flags-liechtenstein.png | Bin 0 -> 718 bytes .../resources/flags/flags-lithuania.png | Bin 0 -> 262 bytes .../resources/flags/flags-luxembourg.png | Bin 0 -> 258 bytes .../examples/resources/flags/flags-macau.png | Bin 0 -> 1381 bytes .../resources/flags/flags-macedonia.png | Bin 0 -> 1836 bytes .../resources/flags/flags-madagascar.png | Bin 0 -> 281 bytes .../resources/flags/flags-madeira.png | Bin 0 -> 841 bytes .../examples/resources/flags/flags-malawi.png | Bin 0 -> 932 bytes .../resources/flags/flags-malaysia.png | Bin 0 -> 1125 bytes .../resources/flags/flags-maldives.png | Bin 0 -> 656 bytes eugtk/examples/resources/flags/flags-mali.png | Bin 0 -> 283 bytes .../examples/resources/flags/flags-malta.png | Bin 0 -> 600 bytes .../flags/flags-marshall_islands.png | Bin 0 -> 2427 bytes .../resources/flags/flags-martinique.png | Bin 0 -> 2391 bytes .../resources/flags/flags-mauritania.png | Bin 0 -> 1055 bytes .../resources/flags/flags-mauritius.png | Bin 0 -> 291 bytes .../examples/resources/flags/flags-mexico.png | Bin 0 -> 1124 bytes .../resources/flags/flags-moldova.png | Bin 0 -> 1097 bytes .../examples/resources/flags/flags-monaco.png | Bin 0 -> 251 bytes .../resources/flags/flags-mongolia.png | Bin 0 -> 964 bytes .../resources/flags/flags-montenegro.png | Bin 0 -> 1405 bytes .../resources/flags/flags-montserrat.png | Bin 0 -> 2161 bytes .../resources/flags/flags-morocco.png | Bin 0 -> 1011 bytes .../resources/flags/flags-mozambique.png | Bin 0 -> 1289 bytes .../resources/flags/flags-myanmar.png | Bin 0 -> 1218 bytes .../resources/flags/flags-namibia.png | Bin 0 -> 2178 bytes .../examples/resources/flags/flags-nauru.png | Bin 0 -> 734 bytes .../examples/resources/flags/flags-nepal.png | Bin 0 -> 1843 bytes .../resources/flags/flags-netherlands.png | Bin 0 -> 256 bytes .../flags/flags-netherlands_antilles.png | Bin 0 -> 588 bytes .../resources/flags/flags-new_zealand.png | Bin 0 -> 1795 bytes .../resources/flags/flags-nicaragua.png | Bin 0 -> 861 bytes .../examples/resources/flags/flags-niger.png | Bin 0 -> 509 bytes .../resources/flags/flags-nigeria.png | Bin 0 -> 279 bytes eugtk/examples/resources/flags/flags-niue.png | Bin 0 -> 1735 bytes .../resources/flags/flags-norfolk_island.png | Bin 0 -> 1604 bytes .../resources/flags/flags-north_korea.png | Bin 0 -> 934 bytes .../flags/flags-northern_mariana_islands.png | Bin 0 -> 2843 bytes .../examples/resources/flags/flags-norway.png | Bin 0 -> 448 bytes eugtk/examples/resources/flags/flags-oman.png | Bin 0 -> 655 bytes .../resources/flags/flags-pakistan.png | Bin 0 -> 1062 bytes .../examples/resources/flags/flags-palau.png | Bin 0 -> 776 bytes .../resources/flags/flags-palestine.png | Bin 0 -> 749 bytes .../examples/resources/flags/flags-panama.png | Bin 0 -> 766 bytes .../flags/flags-papua_new_guinea.png | Bin 0 -> 1879 bytes .../resources/flags/flags-paraguay.png | Bin 0 -> 705 bytes .../flags-people's_republic_of_china.png | Bin 0 -> 807 bytes eugtk/examples/resources/flags/flags-peru.png | Bin 0 -> 280 bytes .../resources/flags/flags-philippines.png | Bin 0 -> 1491 bytes .../flags/flags-pitcairn_islands.png | Bin 0 -> 3164 bytes .../examples/resources/flags/flags-poland.png | Bin 0 -> 251 bytes .../resources/flags/flags-portugal.png | Bin 0 -> 1649 bytes .../resources/flags/flags-puerto_rico.png | Bin 0 -> 1101 bytes .../examples/resources/flags/flags-qatar.png | Bin 0 -> 417 bytes .../flags/flags-republic_of_china.png | Bin 0 -> 864 bytes .../flags/flags-republic_of_the_congo.png | Bin 0 -> 1075 bytes .../resources/flags/flags-romania.png | Bin 0 -> 285 bytes .../examples/resources/flags/flags-russia.png | Bin 0 -> 246 bytes .../examples/resources/flags/flags-rwanda.png | Bin 0 -> 1066 bytes eugtk/examples/resources/flags/flags-saba.png | Bin 0 -> 1830 bytes .../flags/flags-saint-pierre_and_miquelon.png | Bin 0 -> 5451 bytes .../flags/flags-saint_barthelemy.png | Bin 0 -> 6017 bytes .../resources/flags/flags-saint_helena.png | Bin 0 -> 2114 bytes .../flags/flags-saint_kitts_and_nevis.png | Bin 0 -> 2119 bytes .../resources/flags/flags-saint_lucia.png | Bin 0 -> 1004 bytes ...flags-saint_vincent_and_the_grenadines.png | Bin 0 -> 800 bytes .../examples/resources/flags/flags-samoa.png | Bin 0 -> 726 bytes .../resources/flags/flags-san_marino.png | Bin 0 -> 1489 bytes .../flags/flags-sao_tome_and_principe.png | Bin 0 -> 898 bytes eugtk/examples/resources/flags/flags-sark.png | Bin 0 -> 1640 bytes .../resources/flags/flags-saudi_arabia.png | Bin 0 -> 1810 bytes .../resources/flags/flags-senegal.png | Bin 0 -> 584 bytes .../examples/resources/flags/flags-serbia.png | Bin 0 -> 1632 bytes .../resources/flags/flags-seychelles.png | Bin 0 -> 1490 bytes .../resources/flags/flags-sierra_leone.png | Bin 0 -> 254 bytes .../resources/flags/flags-singapore.png | Bin 0 -> 937 bytes .../resources/flags/flags-sint_eustatius.png | Bin 0 -> 2061 bytes .../resources/flags/flags-sint_maarten.png | Bin 0 -> 1299 bytes .../resources/flags/flags-slovakia.png | Bin 0 -> 1042 bytes .../resources/flags/flags-slovenia.png | Bin 0 -> 723 bytes .../resources/flags/flags-solomon_islands.png | Bin 0 -> 2062 bytes .../resources/flags/flags-somalia.png | Bin 0 -> 592 bytes .../resources/flags/flags-south_africa.png | Bin 0 -> 1822 bytes ...georgia_and_the_south_sandwich_islands.png | Bin 0 -> 2975 bytes .../resources/flags/flags-south_korea.png | Bin 0 -> 2170 bytes .../examples/resources/flags/flags-spain.png | Bin 0 -> 1091 bytes .../resources/flags/flags-sri_lanka.png | Bin 0 -> 1991 bytes .../examples/resources/flags/flags-sudan.png | Bin 0 -> 743 bytes .../resources/flags/flags-suriname.png | Bin 0 -> 626 bytes .../resources/flags/flags-swaziland.png | Bin 0 -> 1855 bytes .../examples/resources/flags/flags-sweden.png | Bin 0 -> 320 bytes .../resources/flags/flags-switzerland.png | Bin 0 -> 443 bytes .../examples/resources/flags/flags-syria.png | Bin 0 -> 644 bytes .../resources/flags/flags-tajikistan.png | Bin 0 -> 688 bytes .../resources/flags/flags-tanzania.png | Bin 0 -> 1473 bytes .../resources/flags/flags-thailand.png | Bin 0 -> 259 bytes eugtk/examples/resources/flags/flags-togo.png | Bin 0 -> 774 bytes .../resources/flags/flags-tokelau.png | Bin 0 -> 1440 bytes .../examples/resources/flags/flags-tonga.png | Bin 0 -> 450 bytes .../flags/flags-trinidad_and_tobago.png | Bin 0 -> 2298 bytes .../flags/flags-tristan_da_cunha.png | Bin 0 -> 3390 bytes .../resources/flags/flags-tunisia.png | Bin 0 -> 960 bytes .../examples/resources/flags/flags-turkey.png | Bin 0 -> 966 bytes .../resources/flags/flags-turkmenistan.png | Bin 0 -> 2303 bytes .../flags/flags-turks_and_caicos_islands.png | Bin 0 -> 2029 bytes .../examples/resources/flags/flags-tuvalu.png | Bin 0 -> 2562 bytes .../examples/resources/flags/flags-uganda.png | Bin 0 -> 847 bytes .../resources/flags/flags-ukraine.png | Bin 0 -> 255 bytes .../flags/flags-united_arab_emirates.png | Bin 0 -> 278 bytes .../resources/flags/flags-united_kingdom.png | Bin 0 -> 2870 bytes .../resources/flags/flags-united_states.png | Bin 0 -> 1921 bytes .../flags-united_states_virgin_islands.png | Bin 0 -> 3415 bytes .../resources/flags/flags-uruguay.png | Bin 0 -> 1287 bytes .../resources/flags/flags-uzbekistan.png | Bin 0 -> 716 bytes .../resources/flags/flags-vanuatu.png | Bin 0 -> 1790 bytes .../resources/flags/flags-vatican_city.png | Bin 0 -> 1045 bytes .../resources/flags/flags-venezuela.png | Bin 0 -> 1265 bytes .../resources/flags/flags-vietnam.png | Bin 0 -> 812 bytes .../flags/flags-wallis_and_futuna.png | Bin 0 -> 813 bytes .../resources/flags/flags-western_sahara.png | Bin 0 -> 986 bytes .../examples/resources/flags/flags-yemen.png | Bin 0 -> 253 bytes .../examples/resources/flags/flags-zambia.png | Bin 0 -> 650 bytes .../resources/flags/flags-zimbabwe.png | Bin 0 -> 1448 bytes eugtk/examples/resources/floppybuddy.gif | Bin 0 -> 5216 bytes .../resources/geany_syntax/README.html | 41 + .../resources/geany_syntax/compileflag.jpg | Bin 0 -> 33210 bytes .../geany_syntax/filetype_extensions.conf | 69 + .../resources/geany_syntax/filetypes.lua | 97 + .../examples/resources/geany_syntax/gneui.ex | 116 + .../resources/gedit_syntax/README.html | 60 + .../examples/resources/gedit_syntax/build.xml | 106 + eugtk/examples/resources/gedit_syntax/cc.png | Bin 0 -> 57340 bytes .../resources/gedit_syntax/classic.xml | 112 + .../resources/gedit_syntax/cobalt.xml | 135 + .../resources/gedit_syntax/euphoria.lang | 254 + .../resources/gedit_syntax/gedit_syntax.xml | 8 + .../resources/gedit_syntax/oblivion.xml | 113 + eugtk/examples/resources/gnome-applets.png | Bin 0 -> 3090 bytes eugtk/examples/resources/gnome-calendar.png | Bin 0 -> 2755 bytes eugtk/examples/resources/gnome-foot.png | Bin 0 -> 2916 bytes eugtk/examples/resources/gnome-gimp.png | Bin 0 -> 3410 bytes eugtk/examples/resources/gnome-gmush.png | Bin 0 -> 3244 bytes eugtk/examples/resources/gnome-gsame.png | Bin 0 -> 4263 bytes eugtk/examples/resources/gnu-keys.png | Bin 0 -> 3852 bytes eugtk/examples/resources/hello.css | 9 + eugtk/examples/resources/jerry.map | Bin 0 -> 249 bytes eugtk/examples/resources/justin.map | 2 + eugtk/examples/resources/license.txt | 16 + eugtk/examples/resources/mongoose.e | 258 + eugtk/examples/resources/mystyle.css | 27 + eugtk/examples/resources/mystyle2.css | 27 + eugtk/examples/resources/mystyle3.css | 33 + eugtk/examples/resources/mystyle4.css | 55 + eugtk/examples/resources/mystyle5.css | 9 + eugtk/examples/resources/mystyle6.css | 16 + eugtk/examples/resources/notebook_pages.txt | 59 + eugtk/examples/resources/papersizes.txt | 170 + eugtk/examples/resources/places_sidebar.txt | 29 + eugtk/examples/resources/reset.css | 68 + eugtk/examples/resources/secret_message | 1 + eugtk/examples/resources/test153.ini | 35 + eugtk/examples/resources/test173.ini | 27 + eugtk/examples/resources/test201.ini | 7 + eugtk/examples/resources/test5.e | 34 + eugtk/examples/resources/text-editor.e | 3689 +++ eugtk/examples/resources/themeicons.txt | 811 + eugtk/examples/resources/words.txt | 21084 ++++++++++++++++ eugtk/examples/resources/xcolors.txt | 659 + eugtk/examples/screenshots/.test1.png | Bin 0 -> 26572 bytes eugtk/examples/screenshots/README.html | 22 + .../screenshots/Resistor Color Codes.png | Bin 0 -> 27351 bytes eugtk/examples/screenshots/Screenshot-1.png | Bin 0 -> 274471 bytes eugtk/examples/screenshots/Screenshot-11.png | Bin 0 -> 382267 bytes eugtk/examples/screenshots/Screenshot-12.png | Bin 0 -> 269664 bytes eugtk/examples/screenshots/Screenshot-14.png | Bin 0 -> 402480 bytes eugtk/examples/screenshots/Screenshot-8.png | Bin 0 -> 256861 bytes eugtk/examples/screenshots/Vancouver.png | Bin 0 -> 1784418 bytes eugtk/examples/screenshots/Windows.png | Bin 0 -> 175937 bytes eugtk/examples/screenshots/broadway.png | Bin 0 -> 136799 bytes eugtk/examples/screenshots/browser.png | Bin 0 -> 106827 bytes eugtk/examples/screenshots/buttons.png | Bin 0 -> 7148 bytes eugtk/examples/screenshots/compileflag.jpg | Bin 0 -> 33210 bytes eugtk/examples/screenshots/contexthelp.png | Bin 0 -> 167371 bytes eugtk/examples/screenshots/error.png | Bin 0 -> 13310 bytes eugtk/examples/screenshots/flo.jpg | Bin 0 -> 37370 bytes eugtk/examples/screenshots/glade.png | Bin 0 -> 136564 bytes eugtk/examples/screenshots/glade_test_1.png | Bin 0 -> 126190 bytes eugtk/examples/screenshots/hangman.jpg | Bin 0 -> 27409 bytes eugtk/examples/screenshots/header1.png | Bin 0 -> 11836 bytes eugtk/examples/screenshots/hello.png | Bin 0 -> 107910 bytes eugtk/examples/screenshots/icons.jpg | Bin 0 -> 108978 bytes eugtk/examples/screenshots/icons.png | Bin 0 -> 63179 bytes eugtk/examples/screenshots/imagemenu.png | Bin 0 -> 77518 bytes eugtk/examples/screenshots/info.png | Bin 0 -> 11605 bytes eugtk/examples/screenshots/leaktest.png | Bin 0 -> 149911 bytes eugtk/examples/screenshots/menus.png | Bin 0 -> 70476 bytes eugtk/examples/screenshots/namespace.png | Bin 0 -> 9458 bytes eugtk/examples/screenshots/passwords.png | Bin 0 -> 39382 bytes eugtk/examples/screenshots/question.png | Bin 0 -> 14423 bytes eugtk/examples/screenshots/t.png | Bin 0 -> 116599 bytes eugtk/examples/screenshots/template.png | Bin 0 -> 19341 bytes eugtk/examples/screenshots/test0.png | Bin 0 -> 87347 bytes eugtk/examples/screenshots/test1.png | Bin 0 -> 86531 bytes eugtk/examples/screenshots/test109.png | Bin 0 -> 158624 bytes eugtk/examples/screenshots/test116.jpg | Bin 0 -> 14216 bytes eugtk/examples/screenshots/test136.jpg | Bin 0 -> 41202 bytes eugtk/examples/screenshots/test138.png | Bin 0 -> 94496 bytes eugtk/examples/screenshots/test150.jpg | Bin 0 -> 86427 bytes eugtk/examples/screenshots/test157.jpg | Bin 0 -> 175266 bytes eugtk/examples/screenshots/test17.jpg | Bin 0 -> 8195 bytes eugtk/examples/screenshots/test188.png | Bin 0 -> 152347 bytes eugtk/examples/screenshots/test194.jpg | Bin 0 -> 56507 bytes eugtk/examples/screenshots/test2.png | Bin 0 -> 14049 bytes eugtk/examples/screenshots/test201.png | Bin 0 -> 206195 bytes eugtk/examples/screenshots/test211.png | Bin 0 -> 117990 bytes eugtk/examples/screenshots/test212.png | Bin 0 -> 31692 bytes eugtk/examples/screenshots/test23.png | Bin 0 -> 427113 bytes eugtk/examples/screenshots/test28.png | Bin 0 -> 75586 bytes eugtk/examples/screenshots/test3.jpg | Bin 0 -> 26564 bytes eugtk/examples/screenshots/test3.png | Bin 0 -> 35420 bytes eugtk/examples/screenshots/test31.jpg | Bin 0 -> 27476 bytes eugtk/examples/screenshots/test33.jpg | Bin 0 -> 43980 bytes eugtk/examples/screenshots/test34.jpg | Bin 0 -> 171645 bytes eugtk/examples/screenshots/test5.jpg | Bin 0 -> 36783 bytes eugtk/examples/screenshots/test5.png | Bin 0 -> 70869 bytes eugtk/examples/screenshots/test59.png | Bin 0 -> 101465 bytes eugtk/examples/screenshots/test6.png | Bin 0 -> 280890 bytes eugtk/examples/screenshots/test7.jpg | Bin 0 -> 13393 bytes eugtk/examples/screenshots/test77.jpg | Bin 0 -> 11928 bytes eugtk/examples/screenshots/test84.jpg | Bin 0 -> 21860 bytes eugtk/examples/screenshots/test9.jpg | Bin 0 -> 13673 bytes eugtk/examples/screenshots/test92.png | Bin 0 -> 91602 bytes eugtk/examples/screenshots/titlebar.png | Bin 0 -> 13833 bytes eugtk/examples/screenshots/utf.png | Bin 0 -> 27166 bytes eugtk/examples/screenshots/warn.png | Bin 0 -> 13607 bytes eugtk/examples/screenshots/webkit.png | Bin 0 -> 306215 bytes eugtk/examples/screenshots/webkit_test.png | Bin 0 -> 208458 bytes eugtk/examples/screenshots/webserver.png | Bin 0 -> 24487 bytes eugtk/examples/screenshots/worldflags.jpg | Bin 0 -> 33070 bytes eugtk/examples/screenshots/x2.png | Bin 0 -> 52295 bytes eugtk/examples/screenshots/x3.png | Bin 0 -> 63583 bytes eugtk/examples/sock.ex | 49 + eugtk/examples/test0.ex | 111 + eugtk/examples/test1.ex | 29 + eugtk/examples/test10.ex | 19 + eugtk/examples/test100.ex | 56 + eugtk/examples/test101.ex | 68 + eugtk/examples/test102.ex | 42 + eugtk/examples/test103.ex | 64 + eugtk/examples/test104.ex | 61 + eugtk/examples/test105.ex | 41 + eugtk/examples/test106.ex | 53 + eugtk/examples/test107.ex | 45 + eugtk/examples/test108.ex | 59 + eugtk/examples/test109.ex | 45 + eugtk/examples/test11.ex | 55 + eugtk/examples/test110.ex | 42 + eugtk/examples/test111.ex | 41 + eugtk/examples/test112.ex | 56 + eugtk/examples/test113.ex | 47 + eugtk/examples/test114.ex | 48 + eugtk/examples/test115.ex | 86 + eugtk/examples/test116.ex | 69 + eugtk/examples/test117.ex | 37 + eugtk/examples/test118.ex | 51 + eugtk/examples/test119.ex | 51 + eugtk/examples/test12.ex | 50 + eugtk/examples/test120.ex | 57 + eugtk/examples/test121.ex | 105 + eugtk/examples/test122.ex | 43 + eugtk/examples/test123.ex | 65 + eugtk/examples/test124.ex | 56 + eugtk/examples/test125.ex | 88 + eugtk/examples/test126.ex | 65 + eugtk/examples/test127.ex | 72 + eugtk/examples/test128.ex | 37 + eugtk/examples/test129.ex | 82 + eugtk/examples/test13.ex | 60 + eugtk/examples/test130.ex | 69 + eugtk/examples/test131.ex | 86 + eugtk/examples/test132.ex | 123 + eugtk/examples/test133.ex | 24 + eugtk/examples/test134.ex | 109 + eugtk/examples/test135.ex | 37 + eugtk/examples/test136.ex | 55 + eugtk/examples/test137.ex | 59 + eugtk/examples/test138.ex | 138 + eugtk/examples/test139.ex | 24 + eugtk/examples/test14.ex | 66 + eugtk/examples/test140.ex | 41 + eugtk/examples/test141.ex | 39 + eugtk/examples/test142.ex | 36 + eugtk/examples/test143.ex | 55 + eugtk/examples/test144.ex | 62 + eugtk/examples/test145.ex | 47 + eugtk/examples/test146.ex | 60 + eugtk/examples/test147.ex | 42 + eugtk/examples/test148.ex | 109 + eugtk/examples/test149.ex | 39 + eugtk/examples/test15.ex | 73 + eugtk/examples/test150.ex | 73 + eugtk/examples/test151.ex | 88 + eugtk/examples/test152.ex | 37 + eugtk/examples/test153.ex | 116 + eugtk/examples/test154.ex | 44 + eugtk/examples/test155.ex | 84 + eugtk/examples/test156.ex | 179 + eugtk/examples/test157.ex | 50 + eugtk/examples/test158.ex | 42 + eugtk/examples/test159.ex | 72 + eugtk/examples/test16.ex | 94 + eugtk/examples/test160.ex | 42 + eugtk/examples/test161.ex | 43 + eugtk/examples/test162.ex | 77 + eugtk/examples/test163.ex | 121 + eugtk/examples/test164.ex | 70 + eugtk/examples/test165.ex | 74 + eugtk/examples/test166.ex | 71 + eugtk/examples/test167.ex | 91 + eugtk/examples/test168.ex | 70 + eugtk/examples/test169.ex | 50 + eugtk/examples/test17.ex | 122 + eugtk/examples/test170.ex | 49 + eugtk/examples/test171.ex | 54 + eugtk/examples/test172.ex | 97 + eugtk/examples/test173.ex | 128 + eugtk/examples/test174.ex | 59 + eugtk/examples/test175.ex | 57 + eugtk/examples/test176.ex | 58 + eugtk/examples/test177.ex | 44 + eugtk/examples/test178.ex | 93 + eugtk/examples/test179.ex | 57 + eugtk/examples/test18.ex | 64 + eugtk/examples/test180.ex | 74 + eugtk/examples/test181.ex | 51 + eugtk/examples/test182.ex | 116 + eugtk/examples/test183.ex | 38 + eugtk/examples/test184.ex | 61 + eugtk/examples/test185.ex | 54 + eugtk/examples/test186.ex | 49 + eugtk/examples/test187.ex | 72 + eugtk/examples/test188.ex | 190 + eugtk/examples/test189.ex | 50 + eugtk/examples/test19.ex | 99 + eugtk/examples/test190.ex | 76 + eugtk/examples/test191.ex | 109 + eugtk/examples/test192.ex | 77 + eugtk/examples/test193.ex | 87 + eugtk/examples/test194.ex | 142 + eugtk/examples/test195.ex | 93 + eugtk/examples/test196.ex | 76 + eugtk/examples/test197.ex | 83 + eugtk/examples/test198.ex | 72 + eugtk/examples/test199.ex | 58 + eugtk/examples/test2.ex | 38 + eugtk/examples/test20.ex | 50 + eugtk/examples/test200.ex | 96 + eugtk/examples/test201.ex | 216 + eugtk/examples/test202.ex | 54 + eugtk/examples/test203.ex | 74 + eugtk/examples/test204.ex | 93 + eugtk/examples/test205.ex | 53 + eugtk/examples/test206.ex | 89 + eugtk/examples/test207.ex | 33 + eugtk/examples/test208.ex | 95 + eugtk/examples/test209.ex | 64 + eugtk/examples/test21.ex | 47 + eugtk/examples/test210.ex | 47 + eugtk/examples/test211.ex | 14 + eugtk/examples/test212.ex | 29 + eugtk/examples/test22.ex | 129 + eugtk/examples/test23.ex | 267 + eugtk/examples/test24.ex | 56 + eugtk/examples/test25.ex | 367 + eugtk/examples/test26.ex | 96 + eugtk/examples/test27.ex | 37 + eugtk/examples/test28.ex | 54 + eugtk/examples/test29.ex | 39 + eugtk/examples/test3.ex | 56 + eugtk/examples/test30.ex | 41 + eugtk/examples/test31.ex | 46 + eugtk/examples/test32.ex | 45 + eugtk/examples/test33.ex | 323 + eugtk/examples/test34.ex | 62 + eugtk/examples/test35.ex | 113 + eugtk/examples/test36.ex | 55 + eugtk/examples/test37.ex | 33 + eugtk/examples/test38.ex | 59 + eugtk/examples/test39.ex | 46 + eugtk/examples/test4.ex | 57 + eugtk/examples/test40.ex | 125 + eugtk/examples/test41.ex | 53 + eugtk/examples/test42.ex | 90 + eugtk/examples/test43.ex | 55 + eugtk/examples/test44.ex | 43 + eugtk/examples/test45.ex | 58 + eugtk/examples/test46.ex | 62 + eugtk/examples/test47.ex | 54 + eugtk/examples/test48.ex | 63 + eugtk/examples/test49.ex | 54 + eugtk/examples/test5.ex | 38 + eugtk/examples/test50.ex | 68 + eugtk/examples/test51.ex | 54 + eugtk/examples/test52.ex | 98 + eugtk/examples/test53.ex | 82 + eugtk/examples/test54.ex | 96 + eugtk/examples/test55.ex | 74 + eugtk/examples/test56.ex | 44 + eugtk/examples/test57.ex | 66 + eugtk/examples/test58.ex | 89 + eugtk/examples/test59.ex | 347 + eugtk/examples/test6.ex | 63 + eugtk/examples/test60.ex | 598 + eugtk/examples/test61.ex | 93 + eugtk/examples/test62.ex | 146 + eugtk/examples/test63.ex | 83 + eugtk/examples/test64.ex | 68 + eugtk/examples/test65.ex | 95 + eugtk/examples/test66.ex | 55 + eugtk/examples/test67.ex | 53 + eugtk/examples/test68.ex | 37 + eugtk/examples/test69.ex | 55 + eugtk/examples/test7.ex | 67 + eugtk/examples/test70.ex | 63 + eugtk/examples/test71.ex | 54 + eugtk/examples/test72.ex | 53 + eugtk/examples/test73.ex | 60 + eugtk/examples/test74.ex | 29 + eugtk/examples/test75.ex | 62 + eugtk/examples/test76.ex | 61 + eugtk/examples/test77.ex | 50 + eugtk/examples/test78.ex | 48 + eugtk/examples/test79.ex | 41 + eugtk/examples/test8.ex | 47 + eugtk/examples/test80.ex | 114 + eugtk/examples/test81.ex | 34 + eugtk/examples/test82.ex | 70 + eugtk/examples/test83.ex | 90 + eugtk/examples/test84.ex | 56 + eugtk/examples/test85.ex | 49 + eugtk/examples/test86.ex | 45 + eugtk/examples/test87.ex | 68 + eugtk/examples/test88.ex | 14 + eugtk/examples/test89.ex | 12 + eugtk/examples/test9.ex | 65 + eugtk/examples/test90.ex | 77 + eugtk/examples/test91.ex | 57 + eugtk/examples/test92.ex | 56 + eugtk/examples/test93.ex | 46 + eugtk/examples/test94.ex | 48 + eugtk/examples/test95.ex | 37 + eugtk/examples/test96.ex | 151 + eugtk/examples/test97.ex | 89 + eugtk/examples/test98.ex | 39 + eugtk/examples/test99.ex | 117 + eugtk/examples/thumbnails/.httpd.css | 0 eugtk/examples/thumbnails/4_rhombuses.gif | Bin 0 -> 349 bytes eugtk/examples/thumbnails/7300.jpg | Bin 0 -> 46306 bytes eugtk/examples/thumbnails/BabyTux.bmp | Bin 0 -> 8854 bytes eugtk/examples/thumbnails/BabyTux.gif | Bin 0 -> 2008 bytes eugtk/examples/thumbnails/BabyTux.png | Bin 0 -> 3570 bytes eugtk/examples/thumbnails/DISKS04.ICO | Bin 0 -> 1078 bytes eugtk/examples/thumbnails/Jacob.jpg | Bin 0 -> 3554 bytes eugtk/examples/thumbnails/Jerry.jpg | Bin 0 -> 3507 bytes eugtk/examples/thumbnails/Justin.jpg | Bin 0 -> 2801 bytes eugtk/examples/thumbnails/MorningRain.png | Bin 0 -> 171451 bytes eugtk/examples/thumbnails/README.html | 22 + .../thumbnails/accessories-calculator.png | Bin 0 -> 5347 bytes .../thumbnails/applications-development.svg | 420 + .../thumbnails/applications-graphics.png | Bin 0 -> 15688 bytes eugtk/examples/thumbnails/arc.png | Bin 0 -> 3643 bytes eugtk/examples/thumbnails/arcneg.png | Bin 0 -> 4290 bytes eugtk/examples/thumbnails/bar.gif | Bin 0 -> 5378 bytes eugtk/examples/thumbnails/bug-buddy.png | Bin 0 -> 4675 bytes eugtk/examples/thumbnails/bug-buddy.svg | 249 + eugtk/examples/thumbnails/cake.png | Bin 0 -> 16589 bytes eugtk/examples/thumbnails/cal.png | Bin 0 -> 2544 bytes eugtk/examples/thumbnails/clip.png | Bin 0 -> 3331 bytes eugtk/examples/thumbnails/clipper.png | Bin 0 -> 2470 bytes eugtk/examples/thumbnails/clown.png | Bin 0 -> 8219 bytes eugtk/examples/thumbnails/clown.svg | 358 + eugtk/examples/thumbnails/clown.xpm | 1045 + eugtk/examples/thumbnails/clown_trans.png | Bin 0 -> 9706 bytes eugtk/examples/thumbnails/cow2.jpg | Bin 0 -> 10898 bytes eugtk/examples/thumbnails/cowbell.png | Bin 0 -> 18488 bytes eugtk/examples/thumbnails/cowbell2.png | Bin 0 -> 14081 bytes eugtk/examples/thumbnails/cowbell2a.gif | Bin 0 -> 42734 bytes eugtk/examples/thumbnails/cowbell2a.png | Bin 0 -> 13598 bytes eugtk/examples/thumbnails/cowbell3.png | Bin 0 -> 16854 bytes eugtk/examples/thumbnails/coweat.png | Bin 0 -> 13951 bytes eugtk/examples/thumbnails/coweat2.png | Bin 0 -> 14066 bytes eugtk/examples/thumbnails/coweat3.png | Bin 0 -> 14403 bytes eugtk/examples/thumbnails/coweat4.png | Bin 0 -> 15007 bytes eugtk/examples/thumbnails/coweat5.png | Bin 0 -> 14434 bytes eugtk/examples/thumbnails/coweat6.png | Bin 0 -> 16485 bytes eugtk/examples/thumbnails/coweat7.png | Bin 0 -> 18841 bytes eugtk/examples/thumbnails/curveto.png | Bin 0 -> 5277 bytes eugtk/examples/thumbnails/dialog-password.png | Bin 0 -> 2358 bytes eugtk/examples/thumbnails/dino.gif | Bin 0 -> 7002 bytes eugtk/examples/thumbnails/dino_mite.gif | Bin 0 -> 2860 bytes eugtk/examples/thumbnails/dino_slo.gif | Bin 0 -> 6611 bytes eugtk/examples/thumbnails/document-print.png | Bin 0 -> 18542 bytes eugtk/examples/thumbnails/dragon.png | Bin 0 -> 6672 bytes eugtk/examples/thumbnails/e.xpm | 632 + eugtk/examples/thumbnails/emblem-cool.svg | 182 + eugtk/examples/thumbnails/emblem-ok.svg | 222 + eugtk/examples/thumbnails/emblem-sound.png | Bin 0 -> 25514 bytes eugtk/examples/thumbnails/emblem-web-off.png | Bin 0 -> 3208 bytes eugtk/examples/thumbnails/emblem-web-on.png | Bin 0 -> 3981 bytes eugtk/examples/thumbnails/eugtk.png | Bin 0 -> 12921 bytes eugtk/examples/thumbnails/euphoria-linux.gif | Bin 0 -> 43110 bytes eugtk/examples/thumbnails/euphoria-linux.svg | 233 + eugtk/examples/thumbnails/euphoria.gif | Bin 0 -> 11566 bytes eugtk/examples/thumbnails/face-cry.png | Bin 0 -> 1347 bytes eugtk/examples/thumbnails/fands.png | Bin 0 -> 4263 bytes eugtk/examples/thumbnails/favicon.ico | Bin 0 -> 5226 bytes eugtk/examples/thumbnails/fillstyle.png | Bin 0 -> 6960 bytes eugtk/examples/thumbnails/fire.png | Bin 0 -> 84589 bytes eugtk/examples/thumbnails/fish.png | Bin 0 -> 5911 bytes eugtk/examples/thumbnails/fish.svg | 282 + eugtk/examples/thumbnails/font.png | Bin 0 -> 897 bytes eugtk/examples/thumbnails/fox.png | Bin 0 -> 7210 bytes eugtk/examples/thumbnails/fox.svg | 306 + eugtk/examples/thumbnails/gconf-editor.png | Bin 0 -> 4119 bytes eugtk/examples/thumbnails/giraffe.jpg | Bin 0 -> 161076 bytes eugtk/examples/thumbnails/giraffe.xpm | 3365 +++ eugtk/examples/thumbnails/glade.svg | 1272 + eugtk/examples/thumbnails/gnome-run.png | Bin 0 -> 65323 bytes eugtk/examples/thumbnails/gradient.png | Bin 0 -> 6588 bytes eugtk/examples/thumbnails/green_star.png | Bin 0 -> 229 bytes eugtk/examples/thumbnails/gtk-logo-rgb.gif | Bin 0 -> 6271 bytes eugtk/examples/thumbnails/hint.png | Bin 0 -> 6039 bytes eugtk/examples/thumbnails/i.xpm | 535 + eugtk/examples/thumbnails/icon-reset.png | Bin 0 -> 1849 bytes eugtk/examples/thumbnails/icon-start.png | Bin 0 -> 1211 bytes eugtk/examples/thumbnails/icon-stop.png | Bin 0 -> 1185 bytes eugtk/examples/thumbnails/image.png | Bin 0 -> 22279 bytes eugtk/examples/thumbnails/info.png | Bin 0 -> 1047 bytes eugtk/examples/thumbnails/input-mouse.png | Bin 0 -> 6413 bytes eugtk/examples/thumbnails/internet.png | Bin 0 -> 48456 bytes eugtk/examples/thumbnails/internet_trans.png | Bin 0 -> 47151 bytes eugtk/examples/thumbnails/jeff.jpg | Bin 0 -> 32061 bytes eugtk/examples/thumbnails/jls.jpg | Bin 0 -> 31624 bytes eugtk/examples/thumbnails/keybindings.png | Bin 0 -> 2567 bytes eugtk/examples/thumbnails/linecap.png | Bin 0 -> 1112 bytes eugtk/examples/thumbnails/linejoin.png | Bin 0 -> 1862 bytes eugtk/examples/thumbnails/little_house.png | Bin 0 -> 345 bytes eugtk/examples/thumbnails/missing-image.png | Bin 0 -> 2159 bytes eugtk/examples/thumbnails/mongoose.png | Bin 0 -> 4497 bytes eugtk/examples/thumbnails/mongoose.xpm | 248 + eugtk/examples/thumbnails/mouse.png | Bin 0 -> 6974 bytes eugtk/examples/thumbnails/mouse.svg | 95 + eugtk/examples/thumbnails/n.png | Bin 0 -> 302 bytes eugtk/examples/thumbnails/nature.jpg | Bin 0 -> 1665335 bytes eugtk/examples/thumbnails/nature_small.jpg | Bin 0 -> 79491 bytes eugtk/examples/thumbnails/net0.png | Bin 0 -> 3376 bytes .../thumbnails/network-wired-disconnected.png | Bin 0 -> 3146 bytes eugtk/examples/thumbnails/network-wired.png | Bin 0 -> 2934 bytes eugtk/examples/thumbnails/notebook.png | Bin 0 -> 3074 bytes eugtk/examples/thumbnails/p.xpm | 1032 + eugtk/examples/thumbnails/paint.png | Bin 0 -> 2839 bytes eugtk/examples/thumbnails/passgrn.png | Bin 0 -> 2669 bytes eugtk/examples/thumbnails/passred.png | Bin 0 -> 2651 bytes eugtk/examples/thumbnails/pattern.png | Bin 0 -> 29486 bytes eugtk/examples/thumbnails/pie.png | Bin 0 -> 7428 bytes .../examples/thumbnails/preferences-color.svg | 592 + .../thumbnails/preferences-desktop-locale.svg | 732 + eugtk/examples/thumbnails/r.png | Bin 0 -> 327 bytes eugtk/examples/thumbnails/red.png | Bin 0 -> 163 bytes eugtk/examples/thumbnails/red_star.png | Bin 0 -> 228 bytes eugtk/examples/thumbnails/rightleft.png | Bin 0 -> 651 bytes eugtk/examples/thumbnails/roundrect.png | Bin 0 -> 4437 bytes eugtk/examples/thumbnails/t.bmp | Bin 0 -> 1738 bytes eugtk/examples/thumbnails/t.jpg | Bin 0 -> 933 bytes eugtk/examples/thumbnails/t.png | Bin 0 -> 643 bytes eugtk/examples/thumbnails/t.xpm | 77 + eugtk/examples/thumbnails/text-editor.png | Bin 0 -> 39787 bytes eugtk/examples/thumbnails/thunderbird.png | Bin 0 -> 6538 bytes eugtk/examples/thumbnails/thunderbird.svg | 326 + eugtk/examples/thumbnails/tiphat1.gif | Bin 0 -> 235 bytes eugtk/examples/thumbnails/ufo1.png | Bin 0 -> 789 bytes eugtk/examples/thumbnails/ufo2.png | Bin 0 -> 916 bytes eugtk/examples/thumbnails/updown.png | Bin 0 -> 642 bytes eugtk/examples/thumbnails/user_icon.gif | Bin 0 -> 3533 bytes eugtk/examples/thumbnails/warn.png | Bin 0 -> 1026 bytes eugtk/examples/thumbnails/web-browser.png | Bin 0 -> 4992 bytes eugtk/examples/windows.bugs | 17 + 877 files changed, 96872 insertions(+) create mode 100644 eugtk/examples/.httpd.css create mode 100644 eugtk/examples/BEAR.ex create mode 100644 eugtk/examples/GtkAboutDialog.e create mode 100644 eugtk/examples/GtkCairo.e create mode 100644 eugtk/examples/GtkEngine.e create mode 100644 eugtk/examples/GtkEnums.e create mode 100644 eugtk/examples/GtkEvents.e create mode 100644 eugtk/examples/GtkFileSelector.e create mode 100644 eugtk/examples/GtkFontSelector.e create mode 100644 eugtk/examples/GtkPrinter.e create mode 100644 eugtk/examples/GtkSettings.e create mode 100644 eugtk/examples/GtkSourceView.plugin create mode 100644 eugtk/examples/GtkWebKit.plugin create mode 100644 eugtk/examples/browser.ex create mode 100644 eugtk/examples/documentation/.httpd.css create mode 100644 eugtk/examples/documentation/Broadway create mode 100644 eugtk/examples/documentation/Glade.html create mode 100644 eugtk/examples/documentation/HowItWorks.html create mode 100644 eugtk/examples/documentation/README.html create mode 100644 eugtk/examples/documentation/ServerHelp.html create mode 100644 eugtk/examples/documentation/StartingGlade.html create mode 100644 eugtk/examples/documentation/StartingGlade2.html create mode 100644 eugtk/examples/documentation/bear.html create mode 100644 eugtk/examples/documentation/dialogs.html create mode 100644 eugtk/examples/documentation/favicon.ico create mode 100644 eugtk/examples/documentation/functions.html create mode 100644 eugtk/examples/documentation/guide_a.html create mode 100644 eugtk/examples/documentation/images/bear0.png create mode 100644 eugtk/examples/documentation/images/bear1.png create mode 100644 eugtk/examples/documentation/images/bear2.png create mode 100644 eugtk/examples/documentation/images/bear3.png create mode 100644 eugtk/examples/documentation/images/bear4.png create mode 100644 eugtk/examples/documentation/pango_markup.html create mode 100644 eugtk/examples/documentation/platforms.html create mode 100644 eugtk/examples/documentation/printing.html create mode 100644 eugtk/examples/documentation/style.css create mode 100644 eugtk/examples/documentation/treeviews.html create mode 100644 eugtk/examples/eu.cfg create mode 100644 eugtk/examples/examples/.httpd.css create mode 100644 eugtk/examples/examples/README.html create mode 100644 eugtk/examples/examples/audio_converter.ex create mode 100644 eugtk/examples/examples/base_converter.ex create mode 100644 eugtk/examples/examples/browser.ex create mode 100644 eugtk/examples/examples/clown.e create mode 100644 eugtk/examples/examples/color_codes.ex create mode 100644 eugtk/examples/examples/colornames.ex create mode 100644 eugtk/examples/examples/eu.cfg create mode 100644 eugtk/examples/examples/hangman.ex create mode 100755 eugtk/examples/examples/httpd.ex create mode 100644 eugtk/examples/examples/icon_E.e create mode 100644 eugtk/examples/examples/icon_I.e create mode 100644 eugtk/examples/examples/icon_P.e create mode 100644 eugtk/examples/examples/icons.ex create mode 100644 eugtk/examples/examples/leak.ex create mode 100644 eugtk/examples/examples/passwords.ex create mode 100644 eugtk/examples/examples/talk.ex create mode 100644 eugtk/examples/examples/task.ex create mode 100644 eugtk/examples/examples/test_all.ex create mode 100644 eugtk/examples/examples/test_missing.ex create mode 100644 eugtk/examples/examples/webkit.ex create mode 100644 eugtk/examples/examples/webserver.ex create mode 100644 eugtk/examples/examples/worldflags.ex create mode 100644 eugtk/examples/examples/xpm_include_test.ex create mode 100644 eugtk/examples/examples/xpm_to_eu_include.ex create mode 100644 eugtk/examples/glade/.httpd.css create mode 100644 eugtk/examples/glade/Jessica-Alba.jpg create mode 100644 eugtk/examples/glade/README.html create mode 100644 eugtk/examples/glade/about.e create mode 100644 eugtk/examples/glade/about.glade create mode 100644 eugtk/examples/glade/accessories-calculator.png create mode 100644 eugtk/examples/glade/au.e create mode 100644 eugtk/examples/glade/browser.ex create mode 100644 eugtk/examples/glade/ca.e create mode 100644 eugtk/examples/glade/calculator.ex create mode 100644 eugtk/examples/glade/calculator.glade create mode 100644 eugtk/examples/glade/calendar.ex create mode 100644 eugtk/examples/glade/calendar.glade create mode 100644 eugtk/examples/glade/clock.ex create mode 100644 eugtk/examples/glade/clock.glade create mode 100644 eugtk/examples/glade/colors.ex create mode 100644 eugtk/examples/glade/colors.glade create mode 100644 eugtk/examples/glade/coweat2.png create mode 100644 eugtk/examples/glade/en.e create mode 100644 eugtk/examples/glade/es.e create mode 100644 eugtk/examples/glade/eu.cfg create mode 100644 eugtk/examples/glade/eugtk.png create mode 100644 eugtk/examples/glade/euphoria.gif create mode 100644 eugtk/examples/glade/file.e create mode 100644 eugtk/examples/glade/file.glade create mode 100644 eugtk/examples/glade/fr.e create mode 100644 eugtk/examples/glade/glade.svg create mode 100644 eugtk/examples/glade/gladetest1.ex create mode 100644 eugtk/examples/glade/gladetest1.glade create mode 100644 eugtk/examples/glade/green-terminal.png create mode 100644 eugtk/examples/glade/gtk-logo-rgb.gif create mode 100644 eugtk/examples/glade/hello.ex create mode 100644 eugtk/examples/glade/hello.glade create mode 100644 eugtk/examples/glade/help.e create mode 100644 eugtk/examples/glade/help.glade create mode 100644 eugtk/examples/glade/list.ex create mode 100644 eugtk/examples/glade/list.glade create mode 100644 eugtk/examples/glade/main.ex create mode 100644 eugtk/examples/glade/main.glade create mode 100644 eugtk/examples/glade/math_eval.e create mode 100644 eugtk/examples/glade/mongoose.png create mode 100644 eugtk/examples/glade/paned.ex create mode 100644 eugtk/examples/glade/paned.glade create mode 100644 eugtk/examples/glade/pref.e create mode 100644 eugtk/examples/glade/pref.glade create mode 100644 eugtk/examples/glade/prefs.glade create mode 100644 eugtk/examples/glade/test11.ex create mode 100644 eugtk/examples/glade/test11.glade create mode 100644 eugtk/examples/glade/test116.ex create mode 100644 eugtk/examples/glade/test116.glade create mode 100644 eugtk/examples/glade/test12.ex create mode 100644 eugtk/examples/glade/test12.glade create mode 100644 eugtk/examples/glade/test13.ex create mode 100644 eugtk/examples/glade/test13.glade create mode 100644 eugtk/examples/glade/test142.ex create mode 100644 eugtk/examples/glade/test142.glade create mode 100644 eugtk/examples/glade/test157.ex create mode 100644 eugtk/examples/glade/test157.glade create mode 100644 eugtk/examples/glade/test25.ex create mode 100644 eugtk/examples/glade/test25.glade create mode 100644 eugtk/examples/glade/toolbar.ex create mode 100644 eugtk/examples/glade/toolbar.glade create mode 100644 eugtk/examples/glade/webserver.ex create mode 100644 eugtk/examples/glade/webserver.glade create mode 100644 eugtk/examples/glade/widgets.ex create mode 100644 eugtk/examples/glade/widgets.glade create mode 100644 eugtk/examples/glade/widgets.png create mode 100644 eugtk/examples/glade/widgets.xml create mode 100644 eugtk/examples/glade/x2.png create mode 100644 eugtk/examples/plug.ex create mode 100644 eugtk/examples/resources/Jerry.map create mode 100644 eugtk/examples/resources/Justin.map create mode 100644 eugtk/examples/resources/README.html create mode 100644 eugtk/examples/resources/a.e create mode 100644 eugtk/examples/resources/apple-red.png create mode 100644 eugtk/examples/resources/b.e create mode 100644 eugtk/examples/resources/background.jpg create mode 100644 eugtk/examples/resources/clown.e create mode 100644 eugtk/examples/resources/colorcode/README.html create mode 100644 eugtk/examples/resources/colorcode/bar.jpg create mode 100644 eugtk/examples/resources/colorcode/bar0.jpg create mode 100644 eugtk/examples/resources/colorcode/bar1.jpg create mode 100644 eugtk/examples/resources/colorcode/bar10.jpg create mode 100644 eugtk/examples/resources/colorcode/bar11.jpg create mode 100644 eugtk/examples/resources/colorcode/bar2.jpg create mode 100644 eugtk/examples/resources/colorcode/bar3.jpg create mode 100644 eugtk/examples/resources/colorcode/bar4.jpg create mode 100644 eugtk/examples/resources/colorcode/bar5.jpg create mode 100644 eugtk/examples/resources/colorcode/bar6.jpg create mode 100644 eugtk/examples/resources/colorcode/bar7.jpg create mode 100644 eugtk/examples/resources/colorcode/bar8.jpg create mode 100644 eugtk/examples/resources/colorcode/bar9.jpg create mode 100644 eugtk/examples/resources/colorcode/end1.jpg create mode 100644 eugtk/examples/resources/colorcode/end2.jpg create mode 100644 eugtk/examples/resources/colorcode/end3.jpg create mode 100644 eugtk/examples/resources/colorcode/leftend.jpg create mode 100644 eugtk/examples/resources/colorcode/rcc.jpg create mode 100644 eugtk/examples/resources/css_multiplebgs.css create mode 100644 eugtk/examples/resources/css_pixbufs.css create mode 100644 eugtk/examples/resources/cssview.css create mode 100644 eugtk/examples/resources/eu.cfg create mode 100644 eugtk/examples/resources/flags/README.html create mode 100644 eugtk/examples/resources/flags/flags-afghanistan.png create mode 100644 eugtk/examples/resources/flags/flags-aland.png create mode 100644 eugtk/examples/resources/flags/flags-albania.png create mode 100644 eugtk/examples/resources/flags/flags-alderney.png create mode 100644 eugtk/examples/resources/flags/flags-algeria.png create mode 100644 eugtk/examples/resources/flags/flags-american_samoa.png create mode 100644 eugtk/examples/resources/flags/flags-andorra.png create mode 100644 eugtk/examples/resources/flags/flags-angola.png create mode 100644 eugtk/examples/resources/flags/flags-anguilla.png create mode 100644 eugtk/examples/resources/flags/flags-antarctica.png create mode 100644 eugtk/examples/resources/flags/flags-antigua_and_barbuda.png create mode 100644 eugtk/examples/resources/flags/flags-argentina.png create mode 100644 eugtk/examples/resources/flags/flags-armenia.png create mode 100644 eugtk/examples/resources/flags/flags-aruba.png create mode 100644 eugtk/examples/resources/flags/flags-australia.png create mode 100644 eugtk/examples/resources/flags/flags-austria.png create mode 100644 eugtk/examples/resources/flags/flags-azerbaijan.png create mode 100644 eugtk/examples/resources/flags/flags-azores.png create mode 100644 eugtk/examples/resources/flags/flags-bahamas.png create mode 100644 eugtk/examples/resources/flags/flags-bahrain.png create mode 100644 eugtk/examples/resources/flags/flags-bangladesh.png create mode 100644 eugtk/examples/resources/flags/flags-barbados.png create mode 100644 eugtk/examples/resources/flags/flags-belgium.png create mode 100644 eugtk/examples/resources/flags/flags-belize.png create mode 100644 eugtk/examples/resources/flags/flags-benin.png create mode 100644 eugtk/examples/resources/flags/flags-bermuda.png create mode 100644 eugtk/examples/resources/flags/flags-bhutan.png create mode 100644 eugtk/examples/resources/flags/flags-bolivia.png create mode 100644 eugtk/examples/resources/flags/flags-bonaire.png create mode 100644 eugtk/examples/resources/flags/flags-bosnia_and_herzegovina.png create mode 100644 eugtk/examples/resources/flags/flags-botswana.png create mode 100644 eugtk/examples/resources/flags/flags-brazil.png create mode 100644 eugtk/examples/resources/flags/flags-british_antarctic_territory.png create mode 100644 eugtk/examples/resources/flags/flags-british_indian_ocean_territory.png create mode 100644 eugtk/examples/resources/flags/flags-british_virgin_islands.png create mode 100644 eugtk/examples/resources/flags/flags-brunei.png create mode 100644 eugtk/examples/resources/flags/flags-bulgaria.png create mode 100644 eugtk/examples/resources/flags/flags-burkina_faso.png create mode 100644 eugtk/examples/resources/flags/flags-burundi.png create mode 100644 eugtk/examples/resources/flags/flags-cambodia.png create mode 100644 eugtk/examples/resources/flags/flags-cameroon.png create mode 100644 eugtk/examples/resources/flags/flags-canada.png create mode 100644 eugtk/examples/resources/flags/flags-cape_verde.png create mode 100644 eugtk/examples/resources/flags/flags-cayman_islands.png create mode 100644 eugtk/examples/resources/flags/flags-central_african_republic.png create mode 100644 eugtk/examples/resources/flags/flags-chad.png create mode 100644 eugtk/examples/resources/flags/flags-chile.png create mode 100644 eugtk/examples/resources/flags/flags-christmas_island.png create mode 100644 eugtk/examples/resources/flags/flags-cocos_(keeling)_islands.png create mode 100644 eugtk/examples/resources/flags/flags-colombia.png create mode 100644 eugtk/examples/resources/flags/flags-comoros.png create mode 100644 eugtk/examples/resources/flags/flags-cook_islands.png create mode 100644 eugtk/examples/resources/flags/flags-costa_rica.png create mode 100644 eugtk/examples/resources/flags/flags-cote_d'ivoire.png create mode 100644 eugtk/examples/resources/flags/flags-croatia.png create mode 100644 eugtk/examples/resources/flags/flags-cuba.png create mode 100644 eugtk/examples/resources/flags/flags-cyprus.png create mode 100644 eugtk/examples/resources/flags/flags-czech_republic.png create mode 100644 eugtk/examples/resources/flags/flags-democratic_republic_of_the_congo.png create mode 100644 eugtk/examples/resources/flags/flags-denmark.png create mode 100644 eugtk/examples/resources/flags/flags-djibouti.png create mode 100644 eugtk/examples/resources/flags/flags-dominica.png create mode 100644 eugtk/examples/resources/flags/flags-dominican_republic.png create mode 100644 eugtk/examples/resources/flags/flags-east_timor.png create mode 100644 eugtk/examples/resources/flags/flags-ecuador.png create mode 100644 eugtk/examples/resources/flags/flags-egypt.png create mode 100644 eugtk/examples/resources/flags/flags-el_salvador.png create mode 100644 eugtk/examples/resources/flags/flags-equatorial_guinea.png create mode 100644 eugtk/examples/resources/flags/flags-eritrea.png create mode 100644 eugtk/examples/resources/flags/flags-estonia.png create mode 100644 eugtk/examples/resources/flags/flags-ethiopia.png create mode 100644 eugtk/examples/resources/flags/flags-falkland_islands.png create mode 100644 eugtk/examples/resources/flags/flags-faroe_islands.png create mode 100644 eugtk/examples/resources/flags/flags-federated_states_of_micronesia.png create mode 100644 eugtk/examples/resources/flags/flags-fiji.png create mode 100644 eugtk/examples/resources/flags/flags-finland.png create mode 100644 eugtk/examples/resources/flags/flags-france.png create mode 100644 eugtk/examples/resources/flags/flags-french_polynesia.png create mode 100644 eugtk/examples/resources/flags/flags-french_southern_and_antarctic_lands.png create mode 100644 eugtk/examples/resources/flags/flags-gabon.png create mode 100644 eugtk/examples/resources/flags/flags-gambia.png create mode 100644 eugtk/examples/resources/flags/flags-georgia.png create mode 100644 eugtk/examples/resources/flags/flags-germany.png create mode 100644 eugtk/examples/resources/flags/flags-ghana.png create mode 100644 eugtk/examples/resources/flags/flags-gibraltar.png create mode 100644 eugtk/examples/resources/flags/flags-greece.png create mode 100644 eugtk/examples/resources/flags/flags-greenland.png create mode 100644 eugtk/examples/resources/flags/flags-grenada.png create mode 100644 eugtk/examples/resources/flags/flags-guam.png create mode 100644 eugtk/examples/resources/flags/flags-guatemala.png create mode 100644 eugtk/examples/resources/flags/flags-guernsey.png create mode 100644 eugtk/examples/resources/flags/flags-guinea-bissau.png create mode 100644 eugtk/examples/resources/flags/flags-guinea.png create mode 100644 eugtk/examples/resources/flags/flags-guyana.png create mode 100644 eugtk/examples/resources/flags/flags-haiti.png create mode 100644 eugtk/examples/resources/flags/flags-herm.png create mode 100644 eugtk/examples/resources/flags/flags-honduras.png create mode 100644 eugtk/examples/resources/flags/flags-hong_kong.png create mode 100644 eugtk/examples/resources/flags/flags-hungary.png create mode 100644 eugtk/examples/resources/flags/flags-iceland.png create mode 100644 eugtk/examples/resources/flags/flags-india.png create mode 100644 eugtk/examples/resources/flags/flags-indonesia.png create mode 100644 eugtk/examples/resources/flags/flags-iran.png create mode 100644 eugtk/examples/resources/flags/flags-iraq.png create mode 100644 eugtk/examples/resources/flags/flags-ireland.png create mode 100644 eugtk/examples/resources/flags/flags-isle_of_man.png create mode 100644 eugtk/examples/resources/flags/flags-israel.png create mode 100644 eugtk/examples/resources/flags/flags-italy.png create mode 100644 eugtk/examples/resources/flags/flags-jamaica.png create mode 100644 eugtk/examples/resources/flags/flags-japan.png create mode 100644 eugtk/examples/resources/flags/flags-jersey.png create mode 100644 eugtk/examples/resources/flags/flags-jordan.png create mode 100644 eugtk/examples/resources/flags/flags-kazakhstan.png create mode 100644 eugtk/examples/resources/flags/flags-kenya.png create mode 100644 eugtk/examples/resources/flags/flags-kiribati.png create mode 100644 eugtk/examples/resources/flags/flags-kosovo.png create mode 100644 eugtk/examples/resources/flags/flags-kuwait.png create mode 100644 eugtk/examples/resources/flags/flags-kyrgyzstan.png create mode 100644 eugtk/examples/resources/flags/flags-laos.png create mode 100644 eugtk/examples/resources/flags/flags-latvia.png create mode 100644 eugtk/examples/resources/flags/flags-lebanon.png create mode 100644 eugtk/examples/resources/flags/flags-lesotho.png create mode 100644 eugtk/examples/resources/flags/flags-liberia.png create mode 100644 eugtk/examples/resources/flags/flags-libya.png create mode 100644 eugtk/examples/resources/flags/flags-liechtenstein.png create mode 100644 eugtk/examples/resources/flags/flags-lithuania.png create mode 100644 eugtk/examples/resources/flags/flags-luxembourg.png create mode 100644 eugtk/examples/resources/flags/flags-macau.png create mode 100644 eugtk/examples/resources/flags/flags-macedonia.png create mode 100644 eugtk/examples/resources/flags/flags-madagascar.png create mode 100644 eugtk/examples/resources/flags/flags-madeira.png create mode 100644 eugtk/examples/resources/flags/flags-malawi.png create mode 100644 eugtk/examples/resources/flags/flags-malaysia.png create mode 100644 eugtk/examples/resources/flags/flags-maldives.png create mode 100644 eugtk/examples/resources/flags/flags-mali.png create mode 100644 eugtk/examples/resources/flags/flags-malta.png create mode 100644 eugtk/examples/resources/flags/flags-marshall_islands.png create mode 100644 eugtk/examples/resources/flags/flags-martinique.png create mode 100644 eugtk/examples/resources/flags/flags-mauritania.png create mode 100644 eugtk/examples/resources/flags/flags-mauritius.png create mode 100644 eugtk/examples/resources/flags/flags-mexico.png create mode 100644 eugtk/examples/resources/flags/flags-moldova.png create mode 100644 eugtk/examples/resources/flags/flags-monaco.png create mode 100644 eugtk/examples/resources/flags/flags-mongolia.png create mode 100644 eugtk/examples/resources/flags/flags-montenegro.png create mode 100644 eugtk/examples/resources/flags/flags-montserrat.png create mode 100644 eugtk/examples/resources/flags/flags-morocco.png create mode 100644 eugtk/examples/resources/flags/flags-mozambique.png create mode 100644 eugtk/examples/resources/flags/flags-myanmar.png create mode 100644 eugtk/examples/resources/flags/flags-namibia.png create mode 100644 eugtk/examples/resources/flags/flags-nauru.png create mode 100644 eugtk/examples/resources/flags/flags-nepal.png create mode 100644 eugtk/examples/resources/flags/flags-netherlands.png create mode 100644 eugtk/examples/resources/flags/flags-netherlands_antilles.png create mode 100644 eugtk/examples/resources/flags/flags-new_zealand.png create mode 100644 eugtk/examples/resources/flags/flags-nicaragua.png create mode 100644 eugtk/examples/resources/flags/flags-niger.png create mode 100644 eugtk/examples/resources/flags/flags-nigeria.png create mode 100644 eugtk/examples/resources/flags/flags-niue.png create mode 100644 eugtk/examples/resources/flags/flags-norfolk_island.png create mode 100644 eugtk/examples/resources/flags/flags-north_korea.png create mode 100644 eugtk/examples/resources/flags/flags-northern_mariana_islands.png create mode 100644 eugtk/examples/resources/flags/flags-norway.png create mode 100644 eugtk/examples/resources/flags/flags-oman.png create mode 100644 eugtk/examples/resources/flags/flags-pakistan.png create mode 100644 eugtk/examples/resources/flags/flags-palau.png create mode 100644 eugtk/examples/resources/flags/flags-palestine.png create mode 100644 eugtk/examples/resources/flags/flags-panama.png create mode 100644 eugtk/examples/resources/flags/flags-papua_new_guinea.png create mode 100644 eugtk/examples/resources/flags/flags-paraguay.png create mode 100644 eugtk/examples/resources/flags/flags-people's_republic_of_china.png create mode 100644 eugtk/examples/resources/flags/flags-peru.png create mode 100644 eugtk/examples/resources/flags/flags-philippines.png create mode 100644 eugtk/examples/resources/flags/flags-pitcairn_islands.png create mode 100644 eugtk/examples/resources/flags/flags-poland.png create mode 100644 eugtk/examples/resources/flags/flags-portugal.png create mode 100644 eugtk/examples/resources/flags/flags-puerto_rico.png create mode 100644 eugtk/examples/resources/flags/flags-qatar.png create mode 100644 eugtk/examples/resources/flags/flags-republic_of_china.png create mode 100644 eugtk/examples/resources/flags/flags-republic_of_the_congo.png create mode 100644 eugtk/examples/resources/flags/flags-romania.png create mode 100644 eugtk/examples/resources/flags/flags-russia.png create mode 100644 eugtk/examples/resources/flags/flags-rwanda.png create mode 100644 eugtk/examples/resources/flags/flags-saba.png create mode 100644 eugtk/examples/resources/flags/flags-saint-pierre_and_miquelon.png create mode 100644 eugtk/examples/resources/flags/flags-saint_barthelemy.png create mode 100644 eugtk/examples/resources/flags/flags-saint_helena.png create mode 100644 eugtk/examples/resources/flags/flags-saint_kitts_and_nevis.png create mode 100644 eugtk/examples/resources/flags/flags-saint_lucia.png create mode 100644 eugtk/examples/resources/flags/flags-saint_vincent_and_the_grenadines.png create mode 100644 eugtk/examples/resources/flags/flags-samoa.png create mode 100644 eugtk/examples/resources/flags/flags-san_marino.png create mode 100644 eugtk/examples/resources/flags/flags-sao_tome_and_principe.png create mode 100644 eugtk/examples/resources/flags/flags-sark.png create mode 100644 eugtk/examples/resources/flags/flags-saudi_arabia.png create mode 100644 eugtk/examples/resources/flags/flags-senegal.png create mode 100644 eugtk/examples/resources/flags/flags-serbia.png create mode 100644 eugtk/examples/resources/flags/flags-seychelles.png create mode 100644 eugtk/examples/resources/flags/flags-sierra_leone.png create mode 100644 eugtk/examples/resources/flags/flags-singapore.png create mode 100644 eugtk/examples/resources/flags/flags-sint_eustatius.png create mode 100644 eugtk/examples/resources/flags/flags-sint_maarten.png create mode 100644 eugtk/examples/resources/flags/flags-slovakia.png create mode 100644 eugtk/examples/resources/flags/flags-slovenia.png create mode 100644 eugtk/examples/resources/flags/flags-solomon_islands.png create mode 100644 eugtk/examples/resources/flags/flags-somalia.png create mode 100644 eugtk/examples/resources/flags/flags-south_africa.png create mode 100644 eugtk/examples/resources/flags/flags-south_georgia_and_the_south_sandwich_islands.png create mode 100644 eugtk/examples/resources/flags/flags-south_korea.png create mode 100644 eugtk/examples/resources/flags/flags-spain.png create mode 100644 eugtk/examples/resources/flags/flags-sri_lanka.png create mode 100644 eugtk/examples/resources/flags/flags-sudan.png create mode 100644 eugtk/examples/resources/flags/flags-suriname.png create mode 100644 eugtk/examples/resources/flags/flags-swaziland.png create mode 100644 eugtk/examples/resources/flags/flags-sweden.png create mode 100644 eugtk/examples/resources/flags/flags-switzerland.png create mode 100644 eugtk/examples/resources/flags/flags-syria.png create mode 100644 eugtk/examples/resources/flags/flags-tajikistan.png create mode 100644 eugtk/examples/resources/flags/flags-tanzania.png create mode 100644 eugtk/examples/resources/flags/flags-thailand.png create mode 100644 eugtk/examples/resources/flags/flags-togo.png create mode 100644 eugtk/examples/resources/flags/flags-tokelau.png create mode 100644 eugtk/examples/resources/flags/flags-tonga.png create mode 100644 eugtk/examples/resources/flags/flags-trinidad_and_tobago.png create mode 100644 eugtk/examples/resources/flags/flags-tristan_da_cunha.png create mode 100644 eugtk/examples/resources/flags/flags-tunisia.png create mode 100644 eugtk/examples/resources/flags/flags-turkey.png create mode 100644 eugtk/examples/resources/flags/flags-turkmenistan.png create mode 100644 eugtk/examples/resources/flags/flags-turks_and_caicos_islands.png create mode 100644 eugtk/examples/resources/flags/flags-tuvalu.png create mode 100644 eugtk/examples/resources/flags/flags-uganda.png create mode 100644 eugtk/examples/resources/flags/flags-ukraine.png create mode 100644 eugtk/examples/resources/flags/flags-united_arab_emirates.png create mode 100644 eugtk/examples/resources/flags/flags-united_kingdom.png create mode 100644 eugtk/examples/resources/flags/flags-united_states.png create mode 100644 eugtk/examples/resources/flags/flags-united_states_virgin_islands.png create mode 100644 eugtk/examples/resources/flags/flags-uruguay.png create mode 100644 eugtk/examples/resources/flags/flags-uzbekistan.png create mode 100644 eugtk/examples/resources/flags/flags-vanuatu.png create mode 100644 eugtk/examples/resources/flags/flags-vatican_city.png create mode 100644 eugtk/examples/resources/flags/flags-venezuela.png create mode 100644 eugtk/examples/resources/flags/flags-vietnam.png create mode 100644 eugtk/examples/resources/flags/flags-wallis_and_futuna.png create mode 100644 eugtk/examples/resources/flags/flags-western_sahara.png create mode 100644 eugtk/examples/resources/flags/flags-yemen.png create mode 100644 eugtk/examples/resources/flags/flags-zambia.png create mode 100644 eugtk/examples/resources/flags/flags-zimbabwe.png create mode 100644 eugtk/examples/resources/floppybuddy.gif create mode 100644 eugtk/examples/resources/geany_syntax/README.html create mode 100644 eugtk/examples/resources/geany_syntax/compileflag.jpg create mode 100644 eugtk/examples/resources/geany_syntax/filetype_extensions.conf create mode 100644 eugtk/examples/resources/geany_syntax/filetypes.lua create mode 100644 eugtk/examples/resources/geany_syntax/gneui.ex create mode 100644 eugtk/examples/resources/gedit_syntax/README.html create mode 100644 eugtk/examples/resources/gedit_syntax/build.xml create mode 100644 eugtk/examples/resources/gedit_syntax/cc.png create mode 100644 eugtk/examples/resources/gedit_syntax/classic.xml create mode 100644 eugtk/examples/resources/gedit_syntax/cobalt.xml create mode 100644 eugtk/examples/resources/gedit_syntax/euphoria.lang create mode 100644 eugtk/examples/resources/gedit_syntax/gedit_syntax.xml create mode 100644 eugtk/examples/resources/gedit_syntax/oblivion.xml create mode 100644 eugtk/examples/resources/gnome-applets.png create mode 100644 eugtk/examples/resources/gnome-calendar.png create mode 100644 eugtk/examples/resources/gnome-foot.png create mode 100644 eugtk/examples/resources/gnome-gimp.png create mode 100644 eugtk/examples/resources/gnome-gmush.png create mode 100644 eugtk/examples/resources/gnome-gsame.png create mode 100644 eugtk/examples/resources/gnu-keys.png create mode 100644 eugtk/examples/resources/hello.css create mode 100644 eugtk/examples/resources/jerry.map create mode 100644 eugtk/examples/resources/justin.map create mode 100644 eugtk/examples/resources/license.txt create mode 100644 eugtk/examples/resources/mongoose.e create mode 100644 eugtk/examples/resources/mystyle.css create mode 100644 eugtk/examples/resources/mystyle2.css create mode 100644 eugtk/examples/resources/mystyle3.css create mode 100644 eugtk/examples/resources/mystyle4.css create mode 100644 eugtk/examples/resources/mystyle5.css create mode 100644 eugtk/examples/resources/mystyle6.css create mode 100644 eugtk/examples/resources/notebook_pages.txt create mode 100644 eugtk/examples/resources/papersizes.txt create mode 100644 eugtk/examples/resources/places_sidebar.txt create mode 100644 eugtk/examples/resources/reset.css create mode 100644 eugtk/examples/resources/secret_message create mode 100644 eugtk/examples/resources/test153.ini create mode 100644 eugtk/examples/resources/test173.ini create mode 100644 eugtk/examples/resources/test201.ini create mode 100644 eugtk/examples/resources/test5.e create mode 100644 eugtk/examples/resources/text-editor.e create mode 100644 eugtk/examples/resources/themeicons.txt create mode 100644 eugtk/examples/resources/words.txt create mode 100644 eugtk/examples/resources/xcolors.txt create mode 100644 eugtk/examples/screenshots/.test1.png create mode 100644 eugtk/examples/screenshots/README.html create mode 100644 eugtk/examples/screenshots/Resistor Color Codes.png create mode 100644 eugtk/examples/screenshots/Screenshot-1.png create mode 100644 eugtk/examples/screenshots/Screenshot-11.png create mode 100644 eugtk/examples/screenshots/Screenshot-12.png create mode 100644 eugtk/examples/screenshots/Screenshot-14.png create mode 100644 eugtk/examples/screenshots/Screenshot-8.png create mode 100644 eugtk/examples/screenshots/Vancouver.png create mode 100644 eugtk/examples/screenshots/Windows.png create mode 100644 eugtk/examples/screenshots/broadway.png create mode 100644 eugtk/examples/screenshots/browser.png create mode 100644 eugtk/examples/screenshots/buttons.png create mode 100644 eugtk/examples/screenshots/compileflag.jpg create mode 100644 eugtk/examples/screenshots/contexthelp.png create mode 100644 eugtk/examples/screenshots/error.png create mode 100644 eugtk/examples/screenshots/flo.jpg create mode 100644 eugtk/examples/screenshots/glade.png create mode 100644 eugtk/examples/screenshots/glade_test_1.png create mode 100644 eugtk/examples/screenshots/hangman.jpg create mode 100644 eugtk/examples/screenshots/header1.png create mode 100644 eugtk/examples/screenshots/hello.png create mode 100644 eugtk/examples/screenshots/icons.jpg create mode 100644 eugtk/examples/screenshots/icons.png create mode 100644 eugtk/examples/screenshots/imagemenu.png create mode 100644 eugtk/examples/screenshots/info.png create mode 100644 eugtk/examples/screenshots/leaktest.png create mode 100644 eugtk/examples/screenshots/menus.png create mode 100644 eugtk/examples/screenshots/namespace.png create mode 100644 eugtk/examples/screenshots/passwords.png create mode 100644 eugtk/examples/screenshots/question.png create mode 100644 eugtk/examples/screenshots/t.png create mode 100644 eugtk/examples/screenshots/template.png create mode 100644 eugtk/examples/screenshots/test0.png create mode 100644 eugtk/examples/screenshots/test1.png create mode 100644 eugtk/examples/screenshots/test109.png create mode 100644 eugtk/examples/screenshots/test116.jpg create mode 100644 eugtk/examples/screenshots/test136.jpg create mode 100644 eugtk/examples/screenshots/test138.png create mode 100644 eugtk/examples/screenshots/test150.jpg create mode 100644 eugtk/examples/screenshots/test157.jpg create mode 100644 eugtk/examples/screenshots/test17.jpg create mode 100644 eugtk/examples/screenshots/test188.png create mode 100644 eugtk/examples/screenshots/test194.jpg create mode 100644 eugtk/examples/screenshots/test2.png create mode 100644 eugtk/examples/screenshots/test201.png create mode 100644 eugtk/examples/screenshots/test211.png create mode 100644 eugtk/examples/screenshots/test212.png create mode 100644 eugtk/examples/screenshots/test23.png create mode 100644 eugtk/examples/screenshots/test28.png create mode 100644 eugtk/examples/screenshots/test3.jpg create mode 100644 eugtk/examples/screenshots/test3.png create mode 100644 eugtk/examples/screenshots/test31.jpg create mode 100644 eugtk/examples/screenshots/test33.jpg create mode 100644 eugtk/examples/screenshots/test34.jpg create mode 100644 eugtk/examples/screenshots/test5.jpg create mode 100644 eugtk/examples/screenshots/test5.png create mode 100644 eugtk/examples/screenshots/test59.png create mode 100644 eugtk/examples/screenshots/test6.png create mode 100644 eugtk/examples/screenshots/test7.jpg create mode 100644 eugtk/examples/screenshots/test77.jpg create mode 100644 eugtk/examples/screenshots/test84.jpg create mode 100644 eugtk/examples/screenshots/test9.jpg create mode 100644 eugtk/examples/screenshots/test92.png create mode 100644 eugtk/examples/screenshots/titlebar.png create mode 100644 eugtk/examples/screenshots/utf.png create mode 100644 eugtk/examples/screenshots/warn.png create mode 100644 eugtk/examples/screenshots/webkit.png create mode 100644 eugtk/examples/screenshots/webkit_test.png create mode 100644 eugtk/examples/screenshots/webserver.png create mode 100644 eugtk/examples/screenshots/worldflags.jpg create mode 100644 eugtk/examples/screenshots/x2.png create mode 100644 eugtk/examples/screenshots/x3.png create mode 100644 eugtk/examples/sock.ex create mode 100644 eugtk/examples/test0.ex create mode 100644 eugtk/examples/test1.ex create mode 100644 eugtk/examples/test10.ex create mode 100644 eugtk/examples/test100.ex create mode 100644 eugtk/examples/test101.ex create mode 100644 eugtk/examples/test102.ex create mode 100644 eugtk/examples/test103.ex create mode 100644 eugtk/examples/test104.ex create mode 100644 eugtk/examples/test105.ex create mode 100644 eugtk/examples/test106.ex create mode 100644 eugtk/examples/test107.ex create mode 100644 eugtk/examples/test108.ex create mode 100644 eugtk/examples/test109.ex create mode 100644 eugtk/examples/test11.ex create mode 100644 eugtk/examples/test110.ex create mode 100644 eugtk/examples/test111.ex create mode 100644 eugtk/examples/test112.ex create mode 100644 eugtk/examples/test113.ex create mode 100644 eugtk/examples/test114.ex create mode 100644 eugtk/examples/test115.ex create mode 100644 eugtk/examples/test116.ex create mode 100644 eugtk/examples/test117.ex create mode 100644 eugtk/examples/test118.ex create mode 100644 eugtk/examples/test119.ex create mode 100644 eugtk/examples/test12.ex create mode 100644 eugtk/examples/test120.ex create mode 100644 eugtk/examples/test121.ex create mode 100644 eugtk/examples/test122.ex create mode 100644 eugtk/examples/test123.ex create mode 100644 eugtk/examples/test124.ex create mode 100644 eugtk/examples/test125.ex create mode 100644 eugtk/examples/test126.ex create mode 100644 eugtk/examples/test127.ex create mode 100644 eugtk/examples/test128.ex create mode 100644 eugtk/examples/test129.ex create mode 100644 eugtk/examples/test13.ex create mode 100644 eugtk/examples/test130.ex create mode 100644 eugtk/examples/test131.ex create mode 100644 eugtk/examples/test132.ex create mode 100644 eugtk/examples/test133.ex create mode 100644 eugtk/examples/test134.ex create mode 100644 eugtk/examples/test135.ex create mode 100644 eugtk/examples/test136.ex create mode 100644 eugtk/examples/test137.ex create mode 100644 eugtk/examples/test138.ex create mode 100644 eugtk/examples/test139.ex create mode 100644 eugtk/examples/test14.ex create mode 100644 eugtk/examples/test140.ex create mode 100644 eugtk/examples/test141.ex create mode 100644 eugtk/examples/test142.ex create mode 100644 eugtk/examples/test143.ex create mode 100644 eugtk/examples/test144.ex create mode 100644 eugtk/examples/test145.ex create mode 100644 eugtk/examples/test146.ex create mode 100644 eugtk/examples/test147.ex create mode 100644 eugtk/examples/test148.ex create mode 100644 eugtk/examples/test149.ex create mode 100644 eugtk/examples/test15.ex create mode 100644 eugtk/examples/test150.ex create mode 100644 eugtk/examples/test151.ex create mode 100644 eugtk/examples/test152.ex create mode 100644 eugtk/examples/test153.ex create mode 100644 eugtk/examples/test154.ex create mode 100644 eugtk/examples/test155.ex create mode 100644 eugtk/examples/test156.ex create mode 100644 eugtk/examples/test157.ex create mode 100644 eugtk/examples/test158.ex create mode 100644 eugtk/examples/test159.ex create mode 100644 eugtk/examples/test16.ex create mode 100644 eugtk/examples/test160.ex create mode 100644 eugtk/examples/test161.ex create mode 100644 eugtk/examples/test162.ex create mode 100644 eugtk/examples/test163.ex create mode 100644 eugtk/examples/test164.ex create mode 100644 eugtk/examples/test165.ex create mode 100644 eugtk/examples/test166.ex create mode 100644 eugtk/examples/test167.ex create mode 100644 eugtk/examples/test168.ex create mode 100644 eugtk/examples/test169.ex create mode 100644 eugtk/examples/test17.ex create mode 100644 eugtk/examples/test170.ex create mode 100644 eugtk/examples/test171.ex create mode 100644 eugtk/examples/test172.ex create mode 100644 eugtk/examples/test173.ex create mode 100644 eugtk/examples/test174.ex create mode 100644 eugtk/examples/test175.ex create mode 100644 eugtk/examples/test176.ex create mode 100644 eugtk/examples/test177.ex create mode 100644 eugtk/examples/test178.ex create mode 100644 eugtk/examples/test179.ex create mode 100644 eugtk/examples/test18.ex create mode 100644 eugtk/examples/test180.ex create mode 100644 eugtk/examples/test181.ex create mode 100644 eugtk/examples/test182.ex create mode 100644 eugtk/examples/test183.ex create mode 100644 eugtk/examples/test184.ex create mode 100644 eugtk/examples/test185.ex create mode 100644 eugtk/examples/test186.ex create mode 100644 eugtk/examples/test187.ex create mode 100644 eugtk/examples/test188.ex create mode 100644 eugtk/examples/test189.ex create mode 100644 eugtk/examples/test19.ex create mode 100644 eugtk/examples/test190.ex create mode 100644 eugtk/examples/test191.ex create mode 100644 eugtk/examples/test192.ex create mode 100644 eugtk/examples/test193.ex create mode 100644 eugtk/examples/test194.ex create mode 100644 eugtk/examples/test195.ex create mode 100644 eugtk/examples/test196.ex create mode 100644 eugtk/examples/test197.ex create mode 100644 eugtk/examples/test198.ex create mode 100644 eugtk/examples/test199.ex create mode 100644 eugtk/examples/test2.ex create mode 100644 eugtk/examples/test20.ex create mode 100644 eugtk/examples/test200.ex create mode 100644 eugtk/examples/test201.ex create mode 100644 eugtk/examples/test202.ex create mode 100644 eugtk/examples/test203.ex create mode 100644 eugtk/examples/test204.ex create mode 100644 eugtk/examples/test205.ex create mode 100644 eugtk/examples/test206.ex create mode 100644 eugtk/examples/test207.ex create mode 100644 eugtk/examples/test208.ex create mode 100644 eugtk/examples/test209.ex create mode 100644 eugtk/examples/test21.ex create mode 100644 eugtk/examples/test210.ex create mode 100644 eugtk/examples/test211.ex create mode 100644 eugtk/examples/test212.ex create mode 100644 eugtk/examples/test22.ex create mode 100644 eugtk/examples/test23.ex create mode 100644 eugtk/examples/test24.ex create mode 100644 eugtk/examples/test25.ex create mode 100644 eugtk/examples/test26.ex create mode 100644 eugtk/examples/test27.ex create mode 100644 eugtk/examples/test28.ex create mode 100644 eugtk/examples/test29.ex create mode 100644 eugtk/examples/test3.ex create mode 100644 eugtk/examples/test30.ex create mode 100644 eugtk/examples/test31.ex create mode 100644 eugtk/examples/test32.ex create mode 100644 eugtk/examples/test33.ex create mode 100644 eugtk/examples/test34.ex create mode 100644 eugtk/examples/test35.ex create mode 100644 eugtk/examples/test36.ex create mode 100644 eugtk/examples/test37.ex create mode 100644 eugtk/examples/test38.ex create mode 100644 eugtk/examples/test39.ex create mode 100644 eugtk/examples/test4.ex create mode 100644 eugtk/examples/test40.ex create mode 100644 eugtk/examples/test41.ex create mode 100644 eugtk/examples/test42.ex create mode 100644 eugtk/examples/test43.ex create mode 100644 eugtk/examples/test44.ex create mode 100644 eugtk/examples/test45.ex create mode 100644 eugtk/examples/test46.ex create mode 100644 eugtk/examples/test47.ex create mode 100644 eugtk/examples/test48.ex create mode 100644 eugtk/examples/test49.ex create mode 100644 eugtk/examples/test5.ex create mode 100644 eugtk/examples/test50.ex create mode 100644 eugtk/examples/test51.ex create mode 100644 eugtk/examples/test52.ex create mode 100644 eugtk/examples/test53.ex create mode 100644 eugtk/examples/test54.ex create mode 100644 eugtk/examples/test55.ex create mode 100644 eugtk/examples/test56.ex create mode 100644 eugtk/examples/test57.ex create mode 100644 eugtk/examples/test58.ex create mode 100644 eugtk/examples/test59.ex create mode 100644 eugtk/examples/test6.ex create mode 100644 eugtk/examples/test60.ex create mode 100644 eugtk/examples/test61.ex create mode 100644 eugtk/examples/test62.ex create mode 100644 eugtk/examples/test63.ex create mode 100644 eugtk/examples/test64.ex create mode 100644 eugtk/examples/test65.ex create mode 100644 eugtk/examples/test66.ex create mode 100644 eugtk/examples/test67.ex create mode 100644 eugtk/examples/test68.ex create mode 100644 eugtk/examples/test69.ex create mode 100644 eugtk/examples/test7.ex create mode 100644 eugtk/examples/test70.ex create mode 100644 eugtk/examples/test71.ex create mode 100644 eugtk/examples/test72.ex create mode 100644 eugtk/examples/test73.ex create mode 100644 eugtk/examples/test74.ex create mode 100644 eugtk/examples/test75.ex create mode 100644 eugtk/examples/test76.ex create mode 100644 eugtk/examples/test77.ex create mode 100644 eugtk/examples/test78.ex create mode 100644 eugtk/examples/test79.ex create mode 100644 eugtk/examples/test8.ex create mode 100644 eugtk/examples/test80.ex create mode 100644 eugtk/examples/test81.ex create mode 100644 eugtk/examples/test82.ex create mode 100644 eugtk/examples/test83.ex create mode 100644 eugtk/examples/test84.ex create mode 100644 eugtk/examples/test85.ex create mode 100644 eugtk/examples/test86.ex create mode 100644 eugtk/examples/test87.ex create mode 100644 eugtk/examples/test88.ex create mode 100644 eugtk/examples/test89.ex create mode 100644 eugtk/examples/test9.ex create mode 100644 eugtk/examples/test90.ex create mode 100644 eugtk/examples/test91.ex create mode 100644 eugtk/examples/test92.ex create mode 100644 eugtk/examples/test93.ex create mode 100644 eugtk/examples/test94.ex create mode 100644 eugtk/examples/test95.ex create mode 100644 eugtk/examples/test96.ex create mode 100644 eugtk/examples/test97.ex create mode 100644 eugtk/examples/test98.ex create mode 100644 eugtk/examples/test99.ex create mode 100644 eugtk/examples/thumbnails/.httpd.css create mode 100644 eugtk/examples/thumbnails/4_rhombuses.gif create mode 100644 eugtk/examples/thumbnails/7300.jpg create mode 100644 eugtk/examples/thumbnails/BabyTux.bmp create mode 100644 eugtk/examples/thumbnails/BabyTux.gif create mode 100644 eugtk/examples/thumbnails/BabyTux.png create mode 100644 eugtk/examples/thumbnails/DISKS04.ICO create mode 100644 eugtk/examples/thumbnails/Jacob.jpg create mode 100644 eugtk/examples/thumbnails/Jerry.jpg create mode 100644 eugtk/examples/thumbnails/Justin.jpg create mode 100644 eugtk/examples/thumbnails/MorningRain.png create mode 100644 eugtk/examples/thumbnails/README.html create mode 100644 eugtk/examples/thumbnails/accessories-calculator.png create mode 100644 eugtk/examples/thumbnails/applications-development.svg create mode 100644 eugtk/examples/thumbnails/applications-graphics.png create mode 100644 eugtk/examples/thumbnails/arc.png create mode 100644 eugtk/examples/thumbnails/arcneg.png create mode 100644 eugtk/examples/thumbnails/bar.gif create mode 100644 eugtk/examples/thumbnails/bug-buddy.png create mode 100644 eugtk/examples/thumbnails/bug-buddy.svg create mode 100644 eugtk/examples/thumbnails/cake.png create mode 100644 eugtk/examples/thumbnails/cal.png create mode 100644 eugtk/examples/thumbnails/clip.png create mode 100644 eugtk/examples/thumbnails/clipper.png create mode 100644 eugtk/examples/thumbnails/clown.png create mode 100644 eugtk/examples/thumbnails/clown.svg create mode 100644 eugtk/examples/thumbnails/clown.xpm create mode 100644 eugtk/examples/thumbnails/clown_trans.png create mode 100644 eugtk/examples/thumbnails/cow2.jpg create mode 100644 eugtk/examples/thumbnails/cowbell.png create mode 100644 eugtk/examples/thumbnails/cowbell2.png create mode 100644 eugtk/examples/thumbnails/cowbell2a.gif create mode 100644 eugtk/examples/thumbnails/cowbell2a.png create mode 100644 eugtk/examples/thumbnails/cowbell3.png create mode 100644 eugtk/examples/thumbnails/coweat.png create mode 100644 eugtk/examples/thumbnails/coweat2.png create mode 100644 eugtk/examples/thumbnails/coweat3.png create mode 100644 eugtk/examples/thumbnails/coweat4.png create mode 100644 eugtk/examples/thumbnails/coweat5.png create mode 100644 eugtk/examples/thumbnails/coweat6.png create mode 100644 eugtk/examples/thumbnails/coweat7.png create mode 100644 eugtk/examples/thumbnails/curveto.png create mode 100644 eugtk/examples/thumbnails/dialog-password.png create mode 100644 eugtk/examples/thumbnails/dino.gif create mode 100644 eugtk/examples/thumbnails/dino_mite.gif create mode 100644 eugtk/examples/thumbnails/dino_slo.gif create mode 100644 eugtk/examples/thumbnails/document-print.png create mode 100644 eugtk/examples/thumbnails/dragon.png create mode 100644 eugtk/examples/thumbnails/e.xpm create mode 100644 eugtk/examples/thumbnails/emblem-cool.svg create mode 100644 eugtk/examples/thumbnails/emblem-ok.svg create mode 100644 eugtk/examples/thumbnails/emblem-sound.png create mode 100644 eugtk/examples/thumbnails/emblem-web-off.png create mode 100644 eugtk/examples/thumbnails/emblem-web-on.png create mode 100644 eugtk/examples/thumbnails/eugtk.png create mode 100644 eugtk/examples/thumbnails/euphoria-linux.gif create mode 100644 eugtk/examples/thumbnails/euphoria-linux.svg create mode 100644 eugtk/examples/thumbnails/euphoria.gif create mode 100644 eugtk/examples/thumbnails/face-cry.png create mode 100644 eugtk/examples/thumbnails/fands.png create mode 100644 eugtk/examples/thumbnails/favicon.ico create mode 100644 eugtk/examples/thumbnails/fillstyle.png create mode 100644 eugtk/examples/thumbnails/fire.png create mode 100644 eugtk/examples/thumbnails/fish.png create mode 100644 eugtk/examples/thumbnails/fish.svg create mode 100644 eugtk/examples/thumbnails/font.png create mode 100644 eugtk/examples/thumbnails/fox.png create mode 100644 eugtk/examples/thumbnails/fox.svg create mode 100644 eugtk/examples/thumbnails/gconf-editor.png create mode 100644 eugtk/examples/thumbnails/giraffe.jpg create mode 100644 eugtk/examples/thumbnails/giraffe.xpm create mode 100644 eugtk/examples/thumbnails/glade.svg create mode 100644 eugtk/examples/thumbnails/gnome-run.png create mode 100644 eugtk/examples/thumbnails/gradient.png create mode 100644 eugtk/examples/thumbnails/green_star.png create mode 100644 eugtk/examples/thumbnails/gtk-logo-rgb.gif create mode 100644 eugtk/examples/thumbnails/hint.png create mode 100644 eugtk/examples/thumbnails/i.xpm create mode 100644 eugtk/examples/thumbnails/icon-reset.png create mode 100644 eugtk/examples/thumbnails/icon-start.png create mode 100644 eugtk/examples/thumbnails/icon-stop.png create mode 100644 eugtk/examples/thumbnails/image.png create mode 100644 eugtk/examples/thumbnails/info.png create mode 100644 eugtk/examples/thumbnails/input-mouse.png create mode 100644 eugtk/examples/thumbnails/internet.png create mode 100644 eugtk/examples/thumbnails/internet_trans.png create mode 100644 eugtk/examples/thumbnails/jeff.jpg create mode 100644 eugtk/examples/thumbnails/jls.jpg create mode 100644 eugtk/examples/thumbnails/keybindings.png create mode 100644 eugtk/examples/thumbnails/linecap.png create mode 100644 eugtk/examples/thumbnails/linejoin.png create mode 100644 eugtk/examples/thumbnails/little_house.png create mode 100644 eugtk/examples/thumbnails/missing-image.png create mode 100644 eugtk/examples/thumbnails/mongoose.png create mode 100644 eugtk/examples/thumbnails/mongoose.xpm create mode 100644 eugtk/examples/thumbnails/mouse.png create mode 100644 eugtk/examples/thumbnails/mouse.svg create mode 100644 eugtk/examples/thumbnails/n.png create mode 100644 eugtk/examples/thumbnails/nature.jpg create mode 100644 eugtk/examples/thumbnails/nature_small.jpg create mode 100644 eugtk/examples/thumbnails/net0.png create mode 100644 eugtk/examples/thumbnails/network-wired-disconnected.png create mode 100644 eugtk/examples/thumbnails/network-wired.png create mode 100644 eugtk/examples/thumbnails/notebook.png create mode 100644 eugtk/examples/thumbnails/p.xpm create mode 100644 eugtk/examples/thumbnails/paint.png create mode 100644 eugtk/examples/thumbnails/passgrn.png create mode 100644 eugtk/examples/thumbnails/passred.png create mode 100644 eugtk/examples/thumbnails/pattern.png create mode 100644 eugtk/examples/thumbnails/pie.png create mode 100644 eugtk/examples/thumbnails/preferences-color.svg create mode 100644 eugtk/examples/thumbnails/preferences-desktop-locale.svg create mode 100644 eugtk/examples/thumbnails/r.png create mode 100644 eugtk/examples/thumbnails/red.png create mode 100644 eugtk/examples/thumbnails/red_star.png create mode 100644 eugtk/examples/thumbnails/rightleft.png create mode 100644 eugtk/examples/thumbnails/roundrect.png create mode 100644 eugtk/examples/thumbnails/t.bmp create mode 100644 eugtk/examples/thumbnails/t.jpg create mode 100644 eugtk/examples/thumbnails/t.png create mode 100644 eugtk/examples/thumbnails/t.xpm create mode 100644 eugtk/examples/thumbnails/text-editor.png create mode 100644 eugtk/examples/thumbnails/thunderbird.png create mode 100644 eugtk/examples/thumbnails/thunderbird.svg create mode 100644 eugtk/examples/thumbnails/tiphat1.gif create mode 100644 eugtk/examples/thumbnails/ufo1.png create mode 100644 eugtk/examples/thumbnails/ufo2.png create mode 100644 eugtk/examples/thumbnails/updown.png create mode 100644 eugtk/examples/thumbnails/user_icon.gif create mode 100644 eugtk/examples/thumbnails/warn.png create mode 100644 eugtk/examples/thumbnails/web-browser.png create mode 100644 eugtk/examples/windows.bugs diff --git a/eugtk/examples/.httpd.css b/eugtk/examples/.httpd.css new file mode 100644 index 0000000..33137b6 --- /dev/null +++ b/eugtk/examples/.httpd.css @@ -0,0 +1,11 @@ +/* +-- ==================================================================== +-- Styling for the remote display is set here; +-- ==================================================================== +*/ + +button {width: 100%;} +button.dir {background-color: skyblue;} +button.html {background-color: orange;} + +body {background-image: linear-gradient(180deg, yellow, blue); background-repeat: no-repeat;) diff --git a/eugtk/examples/BEAR.ex b/eugtk/examples/BEAR.ex new file mode 100644 index 0000000..b1321d2 --- /dev/null +++ b/eugtk/examples/BEAR.ex @@ -0,0 +1,845 @@ + +------------------------------------------------------------------------------- +--# BEAR (Browse, Edit And Run) +------------------------------------------------------------------------------- +-- Requires EuGTK version 4.11.10, GtkSourceView and WebKit2Gtk libraries. +-- You may have to manually change the names of the libraries in GtkSourcView.plugin +-- and/or GtkWebKit.plugin! + +include GtkEngine.e +include GtkFileSelector.e +include GtkFontSelector.e + +include GtkSettings.e + +include GtkWebKit.plugin +include GtkSourceView.plugin +include GtkAboutDialog.e + +include std/net/url.e +include std/net/http.e + +------------------------------ +-- Globals +------------------------------ + +object current_web_page = "documentation/README.html" +object current_net_page = "" +object current_edit_file = "" +object current_font = "Ubuntu mono 12" +object current_web_folder = "~/demos" +object current_edit_folder = "~/demos" +object current_style = "classic" +object uri, link, lang, tags = {} +object svbuffer, request, lm, edit_html = 0 +constant cb = create(GtkClipboard) +constant ini = canonical_path("~/.bear.ini") +atom sv, menu, m1, m2, m3, m4, m5, sep, context +atom wvsettings, svsettings, controller,sig +integer toggle = 1, show_map = 0 -- map not used + +----------------------------- +-- Styling +----------------------------- +constant css = create(GtkCssProvider,` + @define-color yellow #F5EEB5; + @define-color blue #B5F5F4; + GtkFrame,GtkToolbar {border-radius: 10px; + background-image: + -gtk-gradient (linear, + left top, right bottom, + from(@yellow), to(@blue)); + } +`) + +constant mgr = create(GtkSourceStyleSchemeManager) +constant ids = get(mgr,"scheme ids") +sequence sty = repeat(0,length(ids)) + sty[1] = create(GtkRadioMenuItem,0,ids[1],_("SelectStyle"),ids[1]) + for i = 2 to length(ids) do + sty[i] = create(GtkRadioMenuItem,sty[i-1], + ids[i],_("SelectStyle"),ids[i]) + end for + +---------------------------- +-- Interface +---------------------------- + +constant win = create(GtkWindow,"name=MainWindow,title=The Bear,size=1200x800,border=10,$delete-event=Bail") + +add("MainWindow",create(GtkBox,"name=top,orientation=VERTICAL")) + +pack("top",create(GtkButtonBox,"name=bar,layout=2,margin-bottom=5")) + +add("bar",{ -- these display current file names, captions, and language type; + create(GtkFrame,"name=frame1"), + create(GtkFrame,"name=frame2"), + create(GtkFrame,"name=frame3"), + create(GtkFrame,"name=frame4")}) + + add("frame1",create(GtkLabel,"name=label1,text=URL,font=8")) + add("frame2",create(GtkLabel,"name=label2,text=TITLE,font=8")) + add("frame3",create(GtkLabel,"name=label3,text=LANG,font=8")) + add("frame4",create(GtkLabel,"name=label4,text=FILE,font=8")) + + +pack("top",create(GtkPaned,"name=paned,orientation=HORIZONTAL,position=600"),TRUE,TRUE) + set("paned","pack1",create_webview(),1,1) -- left side contains web view; + + set("paned","pack2",create(GtkBox,"name=pane2,orientation=VERTICAL"),TRUE,TRUE) + pack("pane2",create_sourceview(),1,1) -- right side contains source view; + + pack_end("top",create(GtkBox,"name=control_box,orientation=HORIZONTAL,spacing=5")) + pack("control_box",{ -- container for controls at bottom of screen; + create(GtkFrame,"name=frame5,label=Web Page"), + create(GtkFrame,"name=frame6,label=Source")},TRUE,TRUE) + + add("frame5",create(GtkToolbar,"name=bar1,style=2,icon size=1,font=8")) + add("bar1",{ -- buttons for web page navigation; + create(GtkToolButton,"name=netOpen,icon_name=www,label=Network",,_("OpenNetPage")), + create(GtkToolButton,"name=htmlOpen,stock-id=gtk-open,label=Local",,_("OpenWebPage")), + create(GtkToolButton,"name=htmlEdit,stock-id=gtk-edit",,_("EditHtml")), + create(GtkToolButton,"name=htmlBack,stock-id=gtk-go-back",,_("Back")), + create(GtkToolButton,"name=htmlFwd,stock-id=gtk-go-forward",,_("Fwd")), + create(GtkToolButton,"name=htmlFind,stock-id=gtk-find",,_("Find")), + create(GtkToolButton,"name=zoomOut,stock-id=gtk-zoom-out",,_("ZoomOut")), + create(GtkToolButton,"name=zoomIn,stock-id=gtk-zoom-in",,_("ZoomIn")), + create(GtkToolButton,"name=htmlHelp,stock-id=gtk-help",,_("Help"))}) + + add("frame6",create(GtkToolbar,"name=bar2,style=2,icon size=1,font=8")) + add("bar2",{ -- buttons for source view navigation; + create(GtkToolButton,"name=srcNew,stock-id=gtk-new",,_("fileNew")), + create(GtkToolButton,"name=srcOpen,stock-id=gtk-open",,_("fileOpen")), + create(GtkToolButton,"name=srcSave,stock-id=gtk-save",,_("fileSave")), + create(GtkToolButton,"name=srcSaveAs,stock-id=gtk-save-as",,_("fileSaveAs")), + create(GtkToolButton,"name=srcRun,stock-id=gtk-execute",,_("fileRun")), + create(GtkSeparatorToolItem,"draw=TRUE,expand=TRUE"), + create(GtkMenuToolButton,"name=srcMenu,stock-id=gtk-preferences"), + create(GtkToolButton,"name=srcAbout,stock-id=gtk-about",,_("About"))}) + connect("srcMenu","clicked",_("Preferences")) + + set("srcMenu","menu",build_prefs_menu()) + connect("srcMenu","clicked",_("PopupSrcMenu")) + connect("MainWindow","realize",_("on_startup")) + +show_all("MainWindow") +--set("MainWindow","interactive debugging",1) +main() + +------------------ +function fileNew() +------------------ +fileselector:do_overwrite_confirmation = TRUE +fileselector:filters = {"euphoria","html","text"} +object f = fileselector:New() + if not atom(f) then + create_file(f) + end if +return 1 +end function + +-------------------- +function fileOpen() +-------------------- +fileselector:filters = {"euphoria","html","css","text"} +object f = fileselector:Open(current_edit_folder & "/*") +if not atom(f) then + load_file(f) + current_edit_folder = pathname(f) +end if +return 1 +end function + +-------------------- +function fileSave() +-------------------- +object f +atom fn + +fileselector:do_overwrite_confirmation = FALSE + +if match("http://",current_edit_file) = 1 then + f = fileselector:Save(canonical_path(filename(fix(decode(current_edit_file))))) + +else + f = canonical_path(get("label4","text")) + fileselector:filters = {fileext(f)} & {"text"} + chdir(pathname(f)) + f = fileselector:Save(f) +end if + +if string(f) then + + fn = open(f,"w") + write_file(fn,get(svbuffer,"text"),TEXT_MODE) + flush(fn) + close(fn) + + if match("htm",fileext(f)) = 1 then + set("WebView","reload bypass cache") + current_web_folder = pathname(f) + else + current_edit_folder = pathname(f) + end if +end if +return 1 +end function + +----------------------- +function fileSaveAs() +----------------------- +fileselector:do_overwrite_confirmation = TRUE + +object f = filename(current_edit_file) +fileselector:filters = {fileext(f)} & {"text"} + +f = fileselector:SaveAs(f & ".backup") +if string(f) then + write_file(f,get(svbuffer,"text"),TEXT_MODE) + if match("htm",fileext(f)) = 1 then + current_web_folder = pathname(f) + else + current_edit_folder = pathname(f) + end if +end if +return 1 +end function + +------------------ +function fileRun() +------------------ +object f = current_edit_file +object cmd = command_line() +atom fn + cmd = pathname(get("label4","text")) + f = filebase(f) + object tmp = temp_file(canonical_path("~/"),sprintf("tmp/%s_",{f}),"ex",1) + if not file_exists(canonical_path("~/tmp")) then + create_directory(canonical_path("~/tmp"),448,1) + end if + fn = open(tmp,"w") + write_file(fn,get(svbuffer,"text"),TEXT_MODE) + flush(fn) + close(fn) + setenv("EUINC",canonical_path("~/demos")) + system(text:format("eui [] & ",{tmp}),0) +return 1 +end function + +------------------------------- +function create_file(object f) +------------------------------- +object hdr + lang = get(lm,"guess language",f) + set(svbuffer,"language",lang) + name = get(lang,"name") + switch name do + case "Euphoria" then hdr = euhdr + case "Python" then hdr = pyhdr + case ".ini" then hdr = inihdr + case "C","CSS","C++","C/C++/ObjC Header" then hdr = chdr + case else hdr = "-- []\n\n" + end switch + set(svbuffer,"text",format(hdr,{f})) + set("label3","text",get(lang,"name")) + set("label4","text",f) + write_file(f,get(svbuffer,"text")) + current_edit_file = f + current_edit_folder = pathname(f) +return update_buttons() +end function + +------------------------------------------- +function load_file(object f, integer web=0) +------------------------------------------- +object txt + if match("file://",lower(f)) then + f = f[8..$] + end if + + if file_exists(canonical_path(f)) then + txt = read_file(canonical_path(f)) + + else + + if not networked() then return Warn(,,"Network down") end if + + if not match("http://",f) = 1 then f = "http://" & f end if + + txt = http_get(f) + if atom(txt) then + Error(,,"Error %d loading %s ",{txt,f}) + return -1 + else + txt = txt[2] + end if + + end if + + lang = get(lm,"guess language",f) + set(svbuffer,"language",lang) + set(svbuffer,"text",txt) + set("label3","text",get(lang,"name")) + set("label4","text",f) + current_edit_file = f + current_edit_folder = pathname(f) + +return update_buttons() +end function + +---------------------- +function fix(object x) +---------------------- + if match("#",x) then + x = split(x,'#') + x = x[1] + end if + if match("file:",x) = 1 then + return x[8..$] + end if + if match("http:",x) = 1 then + return x[8..$] + end if + if match("https:",x) = 1 then + return x[9..$] + end if +return x +end function + +----------------------- +function Back(atom ctl) +----------------------- + set("WebView","go back") +return update_buttons() +end function + +---------------------- +function Fwd(atom ctl) +---------------------- + set("WebView","go forward") +return update_buttons() +end function + +--------------- +function Undo() +--------------- + set(svbuffer,"undo") +return update_buttons() +end function + +--------------- +function Redo() +--------------- + set(svbuffer,"redo") +return update_buttons() +end function + +------------------ +function ZoomIn() +------------------ + set("WebView","zoom level",get("WebView","zoom level") + .1) +return 1 +end function + +------------------ +function ZoomOut() +------------------ + set("WebView","zoom level",get("WebView","zoom level") - .1) +return 1 +end function + +------------------------- +function update_buttons() +------------------------- +integer x = get(svbuffer,"char count") + set("netOpen","sensitive",networked()) + set("srcSave","sensitive",x) + set("srcSaveAs","sensitive",x) + set("srcRun","sensitive",x) + if string(current_edit_file) + and equal("ex",fileext(current_edit_file)) then + set("srcRun","sensitive",equal("ex",fileext(current_edit_file))) + else + set("srcRun","sensitive",FALSE) + end if +object uri = get("WebView","uri") + if sequence(uri) and match("htm",uri) then + set("htmlEdit","tooltip text",uri) + set("label1","text",uri) + set("label2","text",get("WebView","title")) + end if +return 1 +end function + +----------------------- +function OpenNetPage() +----------------------- +atom dlg = create(GtkDialog) +set(dlg,"add button","gtk-cancel",MB_CANCEL) +set(dlg,"add button","gtk-ok",MB_OK) +atom ca = get(dlg,"content area") +atom lbl = create(GtkLabel," Enter a web address beginning with http:// ") +atom input = create(GtkEntry) +add(ca,{lbl,input}) +show_all(dlg) + +if match("file://",current_net_page) = 1 then + set(input,"text","") +elsif match("http://",current_net_page) = 1 then + set(input,"text",current_net_page) +else + set(input,"text","http://" & current_net_page) +end if + +object uri, request +if run(dlg) = MB_OK then + uri = get(input,"text") + if length(uri) > 0 then + request = create(WebkitUriRequest,decode(uri)) + set("WebView","load request",request) + end if +end if + +destroy(dlg) +return 0 +end function + +----------------------- +function OpenWebPage() +----------------------- +fileselector:filters = {"html","css"} +object f = fileselector:Open(current_web_folder & "/*") + if not atom(f) then + load_html(f) + current_web_folder = pathname(f) + end if +return 1 +end function + +---------------------------- +function load_html(object x) +---------------------------- +x = canonical_path(x) +if file_type(x) = 1 then + set(svsettings,"search text",0) + request = create(WebkitUriRequest,"file://" & x) + set("WebView","load request",request) + set("label1","text",x) +end if +return 1 +end function + +-------------------------------------------------- +function on_load_changed(atom view, integer event) +-------------------------------------------------- +object uri, ext = "?", x = 0 +object editables = {"e","ex","txt","text","ini","css","xml","glade","c","cpp","h"} + + set(svsettings,"search text","") + + switch event do + case WEBKIT_LOAD_STARTED then + uri = decode(get("WebView","uri")) + ext = fileext(filename(uri)) + if find(ext,editables) then + set("WebView","stop loading") + load_file(uri,0) + end if + + case WEBKIT_LOAD_REDIRECTED then + + case WEBKIT_LOAD_COMMITTED then + + case WEBKIT_LOAD_FINISHED then + uri = decode(get("WebView","uri")) + if find(ext,editables) = 0 then + current_web_page = uri + end if + current_net_page = uri + + end switch + edit_html = 0 + +return update_buttons() +end function + +-------------------------- +function EditHtml() +-------------------------- +object f = canonical_path(fix(get("label1","text"))) +edit_html = 1 +if file_exists(f) then + object txt = read_file(f) + if not atom(txt) then + load_file(f,1) + end if +else + f = get("WebView","uri") + if match("#",f) then + f = split(f,'#') + f = f[1] + end if + object content = http_get(f) + if atom(content) then + Error(,,"Cannot load web page",f) + else + lang = get(lm,"guess language",f) + set(svbuffer,"language",lang) + set("label3","text",get(lang,"name")) + set("label4","text",f) + set(svbuffer,"text",content[2]) + current_edit_file = f + update_buttons() + end if +end if +return 1 +end function + +-------------------------- +function create_webview() +-------------------------- +atom webview = create(WebkitWebView,"name=WebView") +atom vset = get(webview,"settings") + set(vset,{ + {"enable tabs to links",TRUE}, + {"zoom text only",FALSE}, + {"enable developer extras",TRUE}, + {"enable smooth scrolling",TRUE}, + {"enable_caret_browsing",TRUE}, + {"draw_compositing_indicators",TRUE}, + $}) + + connect(webview,"load-changed",_("on_load_changed")) + + wvsettings = get(webview,"settings") + set(wvsettings,"enable plugins",1) + set(wvsettings,"zoom text only",1) + set(wvsettings,"enable smooth scrolling",1) + --set(wvsettings,"auto load images",0) + --set(wvsettings,"enable write console messages to stdout",1) + --set(wvsettings,"enable spatial navigation",1) + --set(wvsettings,"enable tabs to links",1) + --set(wvsettings,"enable xss auditor",1) + --set(wvsettings,"minimum font size",12) + --set(wvsettings,"draw compositing indicators",1) + set(wvsettings,"enable html5 database",1) + set(wvsettings,"enable html5 local storage",1) + set(wvsettings,"enable hyperlink auditing",1) + + controller = get(webview,"find controller") + +-- following are not implemented by webview yet; + --context = get(webview,"context") + --set(context,"preferred languages",{"en_US"}) + --set(context,"spell checking languages",{"en_US"}) + --set(context,"spell checking enabled",TRUE) + +return webview +end function + +--------------- +function Find() +--------------- +atom buffer = get(context,"buffer") +object a = allocate(100) +object b = allocate(100) +object c = allocate(100) +object x, count +integer try = 1 +atom fn = define_c_func(LIBSV,"gtk_source_search_context_forward",{P,P,P,P},I) +object txt = get(cb,"wait for text") +label "retry" +c_proc(fnBufStart,{buffer,a}) +c_proc(fnBufEnd,{buffer,b}) + if string(txt) then + txt = transmute(txt, + {{},"<",">","&"}, + {{},"<",">","&"}) + txt = join(split(txt),"\\s+") + set(svsettings,"regex enabled",1) + set(svsettings,"search text",txt) + + count = get(context,"occurrences count") + if count = -1 then + try += 1 + if try > 20 then + return 0 + end if + goto "retry" + else + +-- if count > 1 then +-- if show_map then +-- set("map","deiconify") +-- set("map","present") +-- end if +-- else +-- if show_map then +-- set("map","iconify") +-- end if +-- end if + + x = c_func(fn,{context,a,b,c}) + set(sv,"scroll to iter",b,.25,1,0,0) + + end if +end if +return 1 +end function + +----------------------------- +function create_sourceview() +----------------------------- + atom scroller = create(GtkScrolledWindow) + sv = create(GtkSourceView,{ + {"name","SrcView"}, + {"show line numbers",TRUE}, + {"tab width",4}, + {"indent width",4}, + {"indent on tab",TRUE}, + {"auto indent",TRUE}, + {"font","Ubuntu mono bold 12"}, + {"show right margin",TRUE}, + {"show line marks",TRUE}, + {"draw spaces",FALSE}, + {"insert spaces instead of tabs",FALSE}, + {"right margin position",90}, + {"highlight current line",TRUE}, + {"wrap mode",GTK_WRAP_NONE}}) + add(scroller,sv) + + set(sv,"font",current_font) + +-- map is commented out since only the latest WebView supports maps; + +-- atom win2 = create(GtkWindow,"name=map,border=10,size=80x800") +-- atom smap = create(GtkSourceMap,"font=Ubuntu mono 4") +-- +-- set(smap,"view",sv) +-- add(win2,smap) +-- set(win2,"deletable",0) +-- set(win2,"move",0,0) +-- set(win2,"decorated",0) +-- show_all(win2) +-- set(win2,"visible",show_map) +-- + svbuffer = get(sv,"buffer") + + lm = create(GtkSourceLanguageManager) + svsettings = create(GtkSourceSearchSettings) + context = create(GtkSourceSearchContext,svbuffer,svsettings) + + set(svsettings,"at word boundaries",0) + set(svsettings,"case sensitive",1) + + atom tt = get(svbuffer,"tag table") + set(tt,"foreach",_("get_tags")) + set(tags[1],"background","red") + set(tags[1],"foreground","white") + set(tags[1],"font","bold") +return scroller +end function + +function get_tags(atom tt) + register(tt,GtkTextTag) + tags = append(tags,tt) +return 1 +end function + +------------------------------------ +function ToggleMap() +------------------------------------ +-- show_map = not(show_map) +-- if show_map then set("map","deiconify") +-- else set("map","iconify") +-- end if +return 1 +end function + +------------------------------------ +function ToggleLineNumbers(atom ctl) +------------------------------------ + set("SrcView","show line numbers",get(ctl,"active")) +return 1 +end function + +------------------------------------ +function ToggleSpaces(atom ctl) +------------------------------------ + if get(ctl,"active") then + set("SrcView","draw spaces",GTK_SOURCE_DRAW_SPACES_ALL) + else + set("SrcView","draw spaces",FALSE) + end if +return 1 +end function + +------------------------------------ +function ChooseFont(atom ctl) +------------------------------------ +fontselector:mono_filter = TRUE +object x = fontselector:Select(current_font) + if not atom(x) then + set("SrcView","font",x) + current_font = x + end if +return 1 +end function + +----------------------------- +function build_prefs_menu() +----------------------------- + menu = create(GtkMenu) + m1 = create(GtkMenuItem,"Editor font",_("ChooseFont")) + m2 = create(GtkCheckMenuItem,"Line numbers",_("ToggleLineNumbers")) + m3 = create(GtkCheckMenuItem,"Draw spaces+tabs",_("ToggleSpaces")) + m4 = create(GtkCheckMenuItem,"Show Map",_("ToggleMap")) + + atom sep1 = create(GtkSeparatorMenuItem) + atom sep2 = create(GtkSeparatorMenuItem) + + set(menu,"append",{m1,sep1,m2,m3,sep2,sty}) + set(m2,"name","ShowLineNumbers") + set(m2,"active",get("SrcView","show line numbers")) + set(m3,"name","DrawSpaces") + set(m3,"active",get("SrcView","draw spaces")) + set(m4,"name","ShowMap") + set(m4,"active",show_map) + set(menu,"name","popup_menu") + show_all(menu) +return menu +end function + +-------------------------------------------- +function SelectStyle(atom ctl, object name) +-------------------------------------------- +if atom(name) then name = unpack(name) end if +atom scheme = get(mgr,"scheme",name) +set(svbuffer,"style scheme",scheme) +set(mgr,"force rescan") +current_style = name +return 1 +end function + +----------------------------- +function Help() +----------------------------- +object uri = "file://" & canonical_path("~/demos/documentation/bear.html") + set("WebView","load uri",uri) +return 1 +end function + +----------------------------- +function About() +----------------------------- +atom dlg = about:Dialog + set(dlg,"program name","The Bear") + set(dlg,"version","Version 1.3") + set(dlg,"logo","thumbnails/mongoose.png") + set(dlg,"add credit section","Using:", + {"Euphoria " & version_string_short(),filename(svdll),filename(wkdll)}) + run(dlg) + hide(dlg) +return 1 +end function + +----------------------------- +function PopupSrcMenu() +------------------------------- + set("popup_menu","popup") +return 1 +end function + +------------------------------- +function on_startup() +------------------------------- +settings:Load(ini) + +object x = get("MainWindow","data","edit_file") +if sequence(x) and length(x) > 0 and file_exists(canonical_path(x)) then + load_file(canonical_path(x),1) +end if + +x = get("MainWindow","data","current_web_folder") +if sequence(x) and length(x) > 0 then + current_web_folder = x +end if + +x = get("MainWindow","data","current_net_page") +if sequence(x) and length(x) > 0 then + current_net_page = fix(x) + load_html(current_net_page) +end if + +x = get("MainWindow","data","current_edit-folder") +if sequence(x) and length(x) > 0 then + current_edit_folder = x +end if + +x = get("MainWindow","data","current_style") +if sequence(x) and length(x) > 0 then + current_style = x + x = find(current_style,ids) + if x > 0 and x <= length(sty) then + set(sty[x],"active",1) + end if +end if + + +set("netOpen","tooltip text","Open a web page on the WWW") +set("htmlOpen","tooltip text","Open a local html file") +set("srcOpen","tooltip text","Open a local text file") + +return 1 +end function + +------------------------------- +global function Bail() +------------------------------- + settings:Save(ini,{"MainWindow","paned","ShowLineNumbers","DrawSpaces","FontSelector"}) + settings:Add(ini,"MainWindow","data.edit_file",fix(current_edit_file)) + settings:Add(ini,"MainWindow","data.current_web_folder",current_web_folder) + settings:Add(ini,"MainWindow","data.current_net_page",fix(get("label1","text"))) + settings:Add(ini,"MainWindow","data.current_edit_folder",current_edit_folder) + settings:Add(ini,"MainWindow","data.current_style",current_style) + settings:Add(ini,"SrcView","font",get("FontSelector","font")) + + -- line above sets the sv font on loading, but there's no direct way to + -- save the sv font on exit, so we save the FontSelector current font instead, + -- and use that value to restore the sv font. + +return Quit() +end function + + +-- Boilerplate for new files; + +constant euhdr = ` +---------------------------- +-- [] +---------------------------- + + +` +constant inihdr = ` +;--------------------------- +; [] +;--------------------------- + + +` +constant pyhdr = ` +#----------------------------- +# [] +#----------------------------- + + +` +constant chdr = ` +/* + [] +*/ + +` +--========================================================================-- + diff --git a/eugtk/examples/GtkAboutDialog.e b/eugtk/examples/GtkAboutDialog.e new file mode 100644 index 0000000..3176199 --- /dev/null +++ b/eugtk/examples/GtkAboutDialog.e @@ -0,0 +1,39 @@ + +------------------- +namespace about -- Generic About dialog +------------------- + +export constant version = "4.12.0" + +--# EXPORTS: about:Dialog -- use run(about:Dialog), not show() + +include GtkEngine.e +public include euphoria/info.e + +if not equal(version,gtk:version) then + Error(,,"GtkAboutDialog version mismatch","should be version " & gtk:version) +end if + +export atom Dialog = create(GtkAboutDialog,{ + {"name","about:dialog"}, + {"logo","thumbnails/eugtk.png"}, + {"program name",prg_name}, + {"version","EuGTK version: " & gtk:version}, + {"copyright",copyright}, + {"comments","For information on the Euphoria\nprogramming language, click below"}, + + -- must specify custom as the license type if supplying license text; + {"license type",GTK_LICENSE_CUSTOM}, + {"license",LGPL}, -- LGPL text is built into EuGTK + {"wrap license",0}, + + {"website","http://OpenEuphoria.org"}, + {"website label","OpenEuphoria"}, + {"authors",{"Irv Mullins"}}, + + --{"artists",0}, + --{"documenters",0}, + --{"translator credits",0}, + --{"add credit section","Special Thanks to",{"\nBob's Burgers\nDuff's Beer"}}, + $}) + diff --git a/eugtk/examples/GtkCairo.e b/eugtk/examples/GtkCairo.e new file mode 100644 index 0000000..24126d1 --- /dev/null +++ b/eugtk/examples/GtkCairo.e @@ -0,0 +1,643 @@ + +---------------------------- +namespace cairo +---------------------------- + +export constant version = "4.12.0" + +include GtkEngine.e + +if not equal(version,gtk:version) then + Error(,,"GtkCairo version mismatch","should be version " & gtk:version) +end if + +export constant pango_version = gtk_str_func("pango_version_string") + +widget[GdkCairo_t] = {"gdk_cairo", +{Cairo_t}, + {"new",{P},-routine_id("newGdkCairo")}, + {"draw_from_gl",{P,P,I,I,I,I,I,I,I}}, -- 3.16 + {"get_clip_rectangle",{P},-routine_id("getClipRect")}, + {"set_source_pixbuf",{P,P,D,D}}, + {"set_source_window",{P,P,D,D}}, + {"region",{P,P}}, + {"region_create_from_surface",{P},P}, + {"surface_create_from_pixbuf",{P,I,P},P,0,CairoSurface_t}, + {"set_source_rgba",{P,I,I,I,D},-routine_id("setCairoRGBA")}, + {"set_color",{P,P},-routine_id("setCairoColor")}, +"GdkCairo_t"} + + function getClipRect(atom cr) + atom fn = define_func("gdk_cairo_get_clip_rectangle",{P,P},B) + atom rect = allocate(8,1) + if c_func(fn,{cr,rect}) then + return rect + else return -1 + end if + end function + + function newGdkCairo(atom win) + return gtk_func("gdk_cairo_create",{P},{win}) + end function + + ---------------------------------------------------------------- + -- to use the Cairo color specs, where colors are 0.0 => 1.0 + ---------------------------------------------------------------------- + function setCairoRGBA(atom cr, atom r, atom g, atom b, atom a=1) + gtk_proc("cairo_set_source_rgba",{P,D,D,D,D},{cr,r,g,b,a}) + return 1 + end function + + -------------------------------------------- + -- it's easier to use named colors + -------------------------------------------- + function setCairoColor(atom cr, object color) + if atom(color) then color = sprintf("#%06x",color) end if + color = to_rgba(color) + color = from_rgba(color,7) + setCairoRGBA(cr,color[1],color[2],color[3],color[4]) + return 1 + end function + +widget[Cairo_t] = {"cairo", +{GObject}, + {"create",{P},P}, + {"reference",{P},P}, + {"destroy",{P}}, + {"status",{P},I}, + {"save",{P}}, + {"restore",{P}}, + {"get_target",{P},P,0,CairoSurface_t}, + {"push_group",{P}}, + {"push_group_with_content",{P,P}}, + {"pop_group",{P},P}, + {"pop_group_to_source",{P}}, + {"get_group_target",{P},P}, + {"set_source_rgb",{P,D,D,D}}, + {"set_source",{P,P}}, + {"get_source",{P},P}, + {"set_source_surface",{P,P,D,D}}, + {"set_antialias",{P,I}}, + {"get_antialias",{P},I}, + {"set_dash",{P,P,I,D}}, + {"get_dash_count",{P},I}, + {"get_dash",{P,D,D}}, + {"set_fill_rule",{P,I}}, + {"get_fill_rule",{P},I}, + {"set_line_cap",{P,I}}, + {"get_line_cap",{P},I}, + {"set_line_join",{P,I}}, + {"get_line_join",{P},I}, + {"set_line_width",{P,D}}, + {"get_line_width",{P},D}, + {"set_miter_limit",{P,I}}, + {"get_miter_limit",{P},I}, + {"set_operator",{P,I}}, + {"get_operator",{P},I}, + {"set_tolerance",{P,D}}, + {"get_tolerance",{P},D}, + {"clip",{P}}, + {"clip_preserve",{P}}, + {"clip_extents",{P,D,D,D,D}}, + {"in_clip",{P,D,D},B}, + {"reset_clip",{P}}, + {"rectangle_list_destroy",{P}}, + {"fill",{P}}, + {"fill_preserve",{P}}, + {"fill_extents",{P,D,D,D,D}}, + {"in_fill",{P,D,D},B}, + {"mask",{P,P}}, + {"mask_surface",{P,P,D,D}}, + {"paint",{P}}, + {"paint_with_alpha",{P,D}}, + {"stroke",{P}}, + {"stroke_preserve",{P}}, + {"stroke_extents",{P,D,D,D,D}}, + {"in_stroke",{P,D,D},B}, + {"copy_page",{P}}, + {"show_page",{P}}, + {"copy_path",{P},P}, + {"copy_path_flat",{P},P}, + {"path_destroy",{P}}, + {"append_path",{P,P}}, + {"has_current_point",{P},B}, + {"get_current_point",{P,D,D}}, + {"new_path",{P}}, + {"new_sub_path",{P}}, + {"close_path",{P}}, + {"set_user_data",{P,S,P,P},I}, + {"get_user_data",{P,S}}, + {"arc",{P,D,D,D,D,D}}, + {"arc_negative",{P,D,D,D,D,D}}, + {"move_to",{P,D,D}}, + {"rel_move_to",{P,D,D}}, + {"line_to",{P,D,D}}, + {"rel_line_to",{P,D,D}}, + {"rectangle",{P,D,D,D,D}}, + {"glyph_path",{P,I,I}}, + {"text_path",{P,S}}, + {"curve_to",{P,D,D,D,D,D,D}}, + {"rel_curve_to",{P,D,D,D,D,D,D}}, + {"path_extents",{P,D,D,D,D}}, + {"set_font_face",{P,S}}, + {"device_get_type",{P},I}, + {"device_status",{P},I}, + {"status_to_string",{I},S}, + {"translate",{P,D,D}}, + {"scale",{P,D,D}}, + {"rotate",{P,D}}, + {"transform",{P,P}}, + {"translate",{P,D,D}}, + {"scale",{P,D,D}}, + {"rotate",{P,D}}, + {"transform",{P,P}}, + {"set_matrix",{P,P}}, + {"get_matrix",{P,P}}, + {"identity_matrix",{P}}, + {"user_to_device",{P,D,D}}, + {"user_to_device_distance",{P,D,D}}, + {"device_to_user",{P,D,D}}, + {"device_to_user_distance",{P,D,D}}, + {"version",{},I}, + {"version_string",{},S}, + {"set_font_size",{P,D}}, + {"set_font_matrix",{P,P}}, + {"get_font_matrix",{P,P}}, + {"set_font_options",{P,P}}, + {"get_font_options",{P,P}}, + {"select_font_face",{P,S,I,I}}, + {"get_font_face",{P},P}, + {"set_scaled_font",{P,P}}, + {"get_scaled_font",{P},P}, + {"show_glyphs",{P,P}}, + {"show_text_glyphs",{P,S,I,P,I,P,I,I}}, + {"font_extents",{P,P}}, + {"text_extents",{P,S,P}}, + {"glyph_extents",{P,P,I,P}}, + {"toy_font_face_create",{S,I,I},P}, + {"toy_font_face_get_slant",{P},I}, + {"toy_font_face_get_weight",{P},I}, + {"glyph_allocate",{I},P}, + {"glyph_free",{P}}, + {"text_cluster_allocate",{I},P}, + {"text_cluster_free",{P}}, + {"show_text",{P,S}}, + {"set_source_rgba",{P,D,D,D,D},-routine_id("setCairoRGBA")}, + {"set_color",{P,S},-routine_id("setCairoColor")}, + {"should_draw_window",{P,P},-routine_id("CairoShouldDrawWin")}, + {"transform_to_window",{P,P,P},-routine_id("CairoTransformToWin")}, +"Cairo_t"} + + function CairoShouldDrawWin(atom cr, atom win) + return gtk_func("gtk_cairo_should_draw_window",{P,P},{cr,win}) + end function + + function CairoTransformToWin(atom cr, atom win1, atom win2) + gtk_proc("gtk_cairo_transform_to_window",{P,P,P},{cr,win1,win2}) + return 1 + end function + +widget[CairoPattern_t] = {0, +{Cairo_t}, +"CairoPattern_t"} + +widget[CairoFontOptions] = {"cairo_font_options", +{0}, +"CairoFontOptions"} + +widget[CairoContent_t] = {0, +{Cairo_t}, +"CairoContent_t"} + +widget[CairoStatus_t] = {0, +{0}, +"CairoStatus_t"} + +widget[CairoPattern] = {"cairo_pattern", +{CairoPattern_t}, + {"new",{P},-routine_id("newCairoPattern")}, + {"add_color_stop_rgb",{P,D,D,D,D}}, + {"add_color_stop_rgba",{P,D,D,D,D,D}}, + {"get_color_stop_count",{P,I},P,0,CairoStatus_t}, + {"get_color_stop_rgba",{P,I,D,D,D,D,D},P,0,CairoStatus_t}, + {"create_rgb",{D,D,D},P,0,CairoPattern_t}, + {"create_rgba",{D,D,D,D},P,0,CairoPattern_t}, + {"get_rgba",{P,D,D,D,D},P,0,CairoPattern_t}, + {"create_for_surface",{P},P,0,CairoPattern_t}, + {"reference",{P},P,0,CairoPattern_t}, + {"destroy",{P}}, + {"status",{P},P,0,CairoStatus_t}, + {"set_extend",{P,I}}, + {"get_extend",{P},I}, + {"set_filter",{P,I}}, + {"get_filter",{P},I}, + {"set_matrix",{P,P}}, + {"get_matrix",{P,P}}, + {"get_type",{P},I}, + {"get_reference_count",{P},I}, +"CairoPattern"} + + function newCairoPattern(atom surf) + return gtk_func("cairo_pattern_create_for_surface",{P},{surf}) + end function + +widget[CairoLinearGradient] = {"cairo_pattern", +{CairoPattern}, + {"new",{D,D,D,D},-routine_id("newLinearGradient"),0,CairoPattern_t}, + {"get_linear_points",{P,D,D,D,D},P,0,CairoStatus_t}, +"CairoLinearGradient"} + + function newLinearGradient(atom a, atom b, atom c, atom d) + return gtk_func("cairo_pattern_create_linear",{D,D,D,D},{a,b,c,d}) + end function + +widget[CairoRadialGradient] = {"cairo_pattern", +{CairoPattern}, + {"new",{D,D,D,D,D,D},-routine_id("newRadialGradient"),0,CairoPattern_t}, + {"get_radial_circles",{P,D,D,D,D,D,D},P,0,CairoStatus_t}, +"CairoRadialGradient"} + + function newRadialGradient(atom a, atom b, atom c, atom d, atom e, atom f) + return gtk_func("cairo_pattern_create_radial",{D,D,D,D,D,D},{a,b,c,d,e,f}) + end function + +widget[CairoRegion_t] = {"cairo_region_t", -- FIXME! +{Cairo_t}, +"CairoRegion_t"} + +widget[CairoSurface_t] = {"cairo_surface_t", +{Cairo_t}, + {"get_write_to_png",{P,S},-routine_id("writetoPNG")}, + {"create_similar",{P,P,I,I},P,0,CairoSurface_t}, + {"create_for_rectangle",{P,D,D,D,D},P,0,CairoSurface_t}, + {"reference",{P},P,0,CairoSurface_t}, + {"destroy",{P}}, + {"finish",{P}}, + {"flush",{P}}, + {"get_font_options",{P,P}}, + {"mark_dirty",{P}}, + {"mark_dirty_rectangle",{P,I,I,I,I}}, + {"show_page",{P}}, +"CairoSurface_t"} + + function writetoPNG(atom surf, object name) -- note difference in call name; + return gtk_func("cairo_surface_write_to_png",{P,S},{surf,name}) + end function + +widget[CairoImageSurface] = {"cairo_image_surface", +{CairoSurface_t}, + {"new",{P},-routine_id("newCairoImageSurface")}, + {"get_format",{P},I}, + {"get_width",{P},P}, + {"get_height",{P},P}, + {"get_stride",{P},I}, +"CairoImageSurface"} + + function newCairoImageSurface(object png) + if string(png) then + png = locate_file(png) if file_type(png) = 1 then + png = allocate_string(png) + end if + end if + return gtk_func("cairo_image_surface_create_from_png",{S},{png}) + end function + +widget[PangoCairoLayout] = {"pango_cairo", +{PangoLayout}, + {"new",{P},-routine_id("newPangoCairoLayout")}, + {"update_layout",{P,P},-routine_id("updateLayout")}, + {"show_glyph_string",{P,P,P}}, + {"show_glyph_item",{P,S,P}}, + {"show_layout_line",{P,P}}, + {"layout_line_path",{P,P}}, + {"layout_path",{P,P}}, +"PangoCairoLayout"} + + function newPangoCairoLayout(atom cr) + atom pcl = gtk_func("pango_cairo_create_layout",{P},{cr}) + register(pcl,PangoLayout) + return pcl + end function + + function updateLayout(atom pl, atom cr) -- params swapped; + gtk_proc("pango_cairo_update_layout",{P,P},{cr,pl}) + return 1 + end function + +widget[PangoFont] = {"pango_font", +{0}, + {"describe",{P},P,0,PangoFontDescription}, + {"describe_with_absolute_size",{P},P,0,PangoFontDescription}, + {"get_coverage",{P,P},P}, + {"get_metrics",{P,P},P}, + {"get_font_map",{P},P,0,PangoFontMap}, +"PangoFont"} + +widget[PangoAttrList] = {"pango_attr_list", +{0}, +"PangoAttrList"} + +widget[PangoFontDescription] = {"pango_font_description", +{PangoFont}, + {"new",{P},-routine_id("newPangoFontDescription")}, + {"copy",{P},P,0,PangoFontDescription}, + {"copy_static",{P},P,0,PangoFontDescription}, + {"hash",{P},I}, + {"equal",{P,P},B}, + {"free",{P}}, + {"set_family",{P,S}}, + {"set_family_static",{P,S}}, + {"get_family",{P},S}, + {"set_style",{P,I}}, + {"get_style",{P},I}, + {"set_variant",{P,I}}, + {"get_variant",{P},P}, + {"set_weight",{P,I}}, + {"get_weight",{P},I}, + {"set_stretch",{P,I}}, + {"get_stretch",{P},I}, + {"set_size",{P,I}}, + {"get_size",{P},I}, + {"set_absolute_size",{P,D}}, + {"get_size_is_absolute",{P},B}, + {"set_gravity",{P,I}}, + {"get_gravity",{P},I}, + {"get_set_fields",{P},I}, + {"unset_fields",{P,I}}, + {"merge",{P,P,B}}, + {"merge_static",{P,P,B}}, + {"better_match",{P,P,P},B}, + -- from_string, see new + {"to_string",{P},S}, + {"to_filename",{P},S}, +"PangoFontDescription"} + + function newPangoFontDescription(object name=0) + if atom(name) then + return gtk_func("pango_font_description_new") + else + return gtk_func("pango_font_description_from_string",{P},{allocate_string(name,1)}) + end if + end function + +widget[PangoContext] = {"pango_context", +{GObject}, + {"new",{},P}, + {"load_font",{P,P},P}, + {"load_fontset",{P,P,P},P}, + {"get_metrics",{P,P,P},P}, + {"list_families",{P,A,I}}, + {"set_font_description",{P,P}}, + {"get_font_description",{P},P,0,PangoFontDescription}, + {"set_font_map",{P,P}}, + {"get_font_map",{P},P}, + {"set_base_gravity",{P,I}}, + {"get_language",{P},P}, + {"set_language",{P,P}}, + {"get_layout",{P},P}, + {"get_base_dir",{P},I}, + {"set_base_dir",{P,I}}, + {"get_base_gravity",{P},I}, + {"set_base_gravity",{P,I}}, + {"get_gravity",{P},I}, + {"get_gravity_hint",{P},I}, + {"set_gravity_hint",{P,I}}, + {"get_matrix",{P},P}, + {"set_matrix",{P,P}}, +"PangoContext"} + +widget[PangoFontsetSimple] = {"pango_fontset_simple", +{GObject}, + {"new",{P},P}, + {"append",{P,P}}, + {"size",{P},I}, +"PangoFontsetSimple"} + +widget[PangoFontSet] = {"pango_fontset", +{PangoFontsetSimple}, + {"get_font",{P,I},P,0,PangoFont}, + {"get_metrics",{P},P}, + {"foreach",{P,P,P}}, +"PangoFontSet"} + +widget[PangoFontMap] = {"pango_font_map", +{PangoFontSet}, + {"create_context",{P},P}, + {"load_font",{P,P,S},P}, + {"load_fontset",{P,P,S,P},P}, + {"list_families",{P,A,I}}, + {"get_shape_engine_type",{P},S}, + {"get_serial",{P},I}, + {"changed",{P}}, +"PangoFontMap"} + +widget[PangoFontFace] = {"pango_font_face", +{PangoFontMap}, + {"get_face_name",{P},S}, + {"list_sizes",{P,P,I}}, + {"describe",{P},P,0,PangoFontDescription}, + {"is_synthesized",{P},B}, +"PangoFontFace"} + +widget[PangoFontFamily] = {"pango_font_family", +{PangoFontFace}, + {"get_name",{P},S}, + {"is_monospace",{P},B}, + {"list_faces",{P,P,I}}, +"PangoFontFamily"} + +widget[PangoLayout] = {"pango_layout", +{GObject}, + {"new",{P},-routine_id("newPangoLayout")}, + {"set_text",{P,P},-routine_id("pl_set_text")}, + {"get_text",{P},S}, + {"get_character_count",{P},I}, + {"set_markup",{P,S},-routine_id("pl_set_markup")}, + {"set_markup_with_accel",{P,S,I,I},-routine_id("pl_set_markup_with_accel")}, + {"set_font_description",{P,P}}, + {"get_font_description",{P},P}, + {"set_attributes",{P,P}}, + {"get_attributes",{P},P,0,PangoAttrList}, + {"set_width",{P,I}}, + {"get_width",{P},I}, + {"set_height",{P,I}}, + {"get_height",{P},I}, + {"get_size",{P,I,I}}, + {"get_pixel_size",{P,I,I}}, + {"set_wrap",{P,I}}, + {"get_wrap",{P},I}, + {"is_wrapped",{P},B}, + {"set_ellipsize",{P,I}}, + {"get_ellipsize",{P},I}, + {"is_ellipsized",{P},B}, + {"set_indent",{P,I}}, + {"get_extents",{P,P,P}}, + {"get_indent",{P},I}, + {"get_pixel_size",{P,I,I}}, + {"get_size",{P,I,I}}, + {"set_spacing",{P,I}}, + {"get_spacing",{P},I}, + {"set_justify",{P,B}}, + {"get_justify",{P},B}, + {"set_auto_dir",{P,B}}, + {"get_auto_dir",{P},B}, + {"set_alignment",{P,P}}, + {"get_alignment",{P},P}, + {"set_tabs",{P,A}}, + {"get_tabs",{P},A}, + {"set_single_paragraph_mode",{P,B}}, + {"get_single_paragraph_mode",{P},B}, + {"get_unknown_glyphs_count",{P},I}, + {"get_log_attrs",{P,P,I}}, + {"get_log_attrs_readonly",{P,I},P}, + {"index_to_pos",{P,I,P}}, + {"index_to_line_x",{P,I,B,I,I}}, + {"xy_to_line",{P,I,I,I,I},B}, + {"get_cursor_pos",{P,I,P,P}}, + {"move_cursor_visually",{P,B,I,I,I,I,I}}, + {"get_pixel_extents",{P,P,P}}, + {"get_baseline",{P},I}, + {"get_line_count",{P},I}, + {"get_line",{P,I},P,0,PangoLayoutLine}, + {"get_line_readonly",{P,I},P,0,PangoLayoutLine}, + {"get_lines",{P},A,0,GSList}, + {"get_lines_readonly",{P},A,0,GSList}, + {"get_iter",{P},P,0,PangoLayoutIter}, + {"show_layout",{P,P},-routine_id("pl_show_layout")}, + {"get_context",{P},P,0,PangoContext}, + {"context_changed",{P}}, + {"get_serial",{P},I}, + {"get_extents",{P,P,P}}, +"PangoLayout"} + + function newPangoLayout(atom cr=0) + if cr=0 then + Error(,,"requires cairo_t as param!") + end if + return gtk_func("pango_cairo_create_layout",{P},{cr}) + end function + + function pl_set_text(atom layout, object txt) + if string(txt) then + txt = allocate_string(txt,1) + end if + gtk_proc("pango_layout_set_text",{P,P,I},{layout,txt,-1}) + return 1 + end function + + function pl_set_markup(atom layout, object txt) + if string(txt) then + txt = allocate_string(txt,1) + end if + gtk_proc("pango_layout_set_markup",{P,P,I},{layout,txt,-1}) + return 1 + end function + + function pl_set_markup_with_accel(atom layout, object txt, + integer marker, integer char) + if string(txt) then + txt = allocate_string(txt,1) + end if + gtk_proc("pango_layout_set_markup_with_accel",{P,P,I,I,I}, + {layout,txt,-1,marker,char}) + return 1 + end function + + function pl_show_layout(atom pcl, atom cr) + gtk_proc("pango_cairo_show_layout",{P,P},{cr,pcl}) + return 1 + end function + +widget[PangoLayoutLine] = {"pango_layout_line", +{0}, + {"ref",{P},P}, + {"unref",{P}}, + {"get_extents",{P,P,P}}, + {"get_pixel_extents",{P,P,P}}, + {"index_to_x",{P,I,B,I}}, + {"x_to_index",{P,I,I,I},B}, + {"get_x_ranges",{P,I,I,P,P}}, +"PangoLayoutLine"} + +widget[PangoLayoutIter] = {"pango_layout_iter", +{0}, + {"copy",{P},P,0,PangoLayoutIter}, + {"free",{P}}, + {"next_run",{P},B}, + {"next_char",{P},B}, + {"next_cluster",{P},B}, + {"next_line",{P},B}, + {"at_last_line",{P},B}, + {"get_index",{P},I}, + {"get_baseline",{P},I}, + {"get_run",{P},P,0,PangoLayoutRun}, + {"get_run_readonly",{P},P,0,PangoLayoutRun}, + {"get_line",{P},P,0,PangoLayoutLine}, + {"get_line_readonly",{P},P,0,PangoLayoutLine}, + {"get_layout",{P},P,0,PangoLayout}, + {"get_char_extents",{P,P}}, + {"get_cluster_extents",{P,P,P}}, + {"get_run_extents",{P,P,P}}, + {"get_line_yrange",{P,I,I}}, + {"get_line_extents",{P,P,P}}, + {"get_layout_extents",{P,P,P}}, +"PangoLayoutIter"} + +widget[PangoLayoutRun] = {"pango_layout_run", +{0}, +"PangoLayoutRun"} + +widget[PangoTabArray] = {"pango_tab_array", +{0}, + {"new",{I,B},P}, + {"get_size",{P},I}, + {"resize",{P,I}}, + {"set_tab",{P,I,I,I}}, + {"get_tab",{P,I,P,P}}, + {"get_tabs",{P,P,P}}, + {"get_position_in_pixels",{P},B}, +"PangoTabArray"} + +widget[PangoLanguage] = {"pango_language", +{GObject}, + {"new",{S},-routine_id("newPangoLanguage")}, + {"get_default",{P},-routine_id("getDefaultLanguage")}, + {"get_sample_string",{P},-routine_id("getSampleStr")}, + {"to_string",{P},S}, + {"matches",{P,S},B}, + {"includes_script",{P,P},B}, +"PangoLanguage"} + + function newPangoLanguage(object s) + return gtk_func("pango_language_from_string",{S},{s}) + end function + + function getDefaultLanguage(object junk) + return gtk_str_func("pango_language_get_default") + end function + + function getSampleStr(object x) + return gtk_str_func("pango_language_get_sample_string",{P},{x}) + end function + +export enum by * 2 + PANGO_STRETCH_ULTRA_CONDENSED, + PANGO_STRETCH_EXTRA_CONDENSED, + PANGO_STRETCH_CONDENSED, + PANGO_STRETCH_SEMI_CONDENSED, + PANGO_STRETCH_NORMAL, + PANGO_STRETCH_SEMI_EXPANDED, + PANGO_STRETCH_EXPANDED = 64, + PANGO_STRETCH_EXTRA_EXPANDED, + PANGO_STRETCH_ULTRA_EXPANDED + +export enum by * 2 + PANGO_FONT_MASK_FAMILY, + PANGO_FONT_MASK_STYLE, + PANGO_FONT_MASK_VARIANT, + PANGO_FONT_MASK_WEIGHT, + PANGO_FONT_MASK_STRETCH, + PANGO_FONT_MASK_SIZE, + PANGO_FONT_MASK_GRAVITY + + diff --git a/eugtk/examples/GtkEngine.e b/eugtk/examples/GtkEngine.e new file mode 100644 index 0000000..d3e9129 --- /dev/null +++ b/eugtk/examples/GtkEngine.e @@ -0,0 +1,9648 @@ + +------------- +namespace gtk +------------- + +------------------------------------------------------------------------ +-- This library is free software; you can redistribute it +-- and/or modify it under the terms of the GNU Lesser General +-- Public License as published by the Free Software Foundation; +-- either version 2 of the License, or (at your option) any later +-- version. + +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +-- See the GNU Lesser General Public License for more details. + +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Pl, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------ + +export constant + version = "4.12.0", + release = "Sept 1, 2016", + copyright = " © 2016 by Irv Mullins" + +public object ACCEL_FONT = "italic 10" -- affects accels in menus; +public integer BTN_ICON_SIZE = 20 -- pixels; +public integer BTN_TEXT_SIZE = 12 +public integer BTN_SHOW_IMG = 1 + +public include GtkEnums.e + +-- GtkEnums includes most of Eu std libraries as public, +-- making them available to your eu programs without +-- having to specifically include them. + +if not equal(gtk:version,enums:version) then -- these 2 must be in sync! + crash("Version mismatch: GtkEnums should be version %s",{version}) +end if + +-- std/math, std/locale, std/datetime, etc. aren't made +-- public, because that would cause too many conflicts, +-- requiring you to use namespaces everywhere, +-- but we do need them here; + +include std/datetime.e +include std/locale.e +include std/math.e +include std/net/dns.e +include std/utils.e +include std/net/http.e +include std/pipeio.e as pipe + +public constant -- 'shorthand' identifiers to save space in method prototypes; + P = C_POINTER, -- any valid pointer + B = C_BYTE, -- 8 bits (boolean) + I = C_INT, -- 32 (integer) + S = E_ATOM, -- 64 (string) + D = C_DOUBLE, -- 64 (double) + F = C_FLOAT, -- 32 (float) + A = E_INTEGER, -- 32/64 (glist ptr) + X = E_OBJECT, -- 32/64 (array of pointers) + V = E_SEQUENCE -- 32/64 (pointer to array of strings) + +-- hopefully, the above are compatible with both 32 and 64-bit architectures + +export object LIBS -- a single lib in UNIX, a sequence of dll's for Windows; + +ifdef OSX then -- thanks to Pete Eberlein for testing with OSX! + LIBS = {open_dll("/opt/local/lib/libgtk-3.dylib" )} + +elsifdef UNIX then -- Linux, BSD, etc. + LIBS = {open_dll("libgtk-3.so.0" )} + +elsifdef WINDOWS then + +object path = "C:/Program Files/GTK3-Runtime Win64/bin/" -- 3.18.6 is the vers. tested. + + LIBS = dir(path & "*.dll") -- get a list of all .dll's in that folder; + LIBS = vslice(LIBS,1) -- retain only the filenames; + + if atom(LIBS) then -- none found; + crash("\nFATAL ERROR:\n************ Cannot find GTK runtime libraries (.dlls)\n") + end if + + atom x + + for i = 1 to length(LIBS) do -- load each; + x = open_dll(LIBS[i]) + if x = 0 then + display("Error loading []",{LIBS[i]}) + else + LIBS[i] = x -- append this lib to list of libs; + end if + end for + +end ifdef -- PLATFORMS; + +if not object(LIBS) then -- no point in continuing; + crash("Required libraries not found!") +end if + +constant cmd = pad_tail(command_line(),4,"") + +if not gtk_func("gtk_init_check",{P,P},{0,0}) then -- initialize the GTK library; + crash("GTK Library error - cannot init GTK!") + +else -- success! + gtk_proc("g_set_prgname",{S}," " & filename(cmd[2])) -- set default pgm name; + gtk_proc("g_type_init",{}) -- initialize normal GTK types; + +end if + +public constant -- two special types must be initialized at run-time; + gPIX = gtk_func("gdk_pixbuf_get_type"), + gCOMBO = gtk_func("gtk_combo_box_get_type") + +------------------------------------------------------------- +-- Obtain a lot of sometimes useful system info; +------------------------------------------------------------- +include euphoria/info.e + +constant os_info = os:uname() + +export object + + major_version = gtk_func("gtk_get_major_version"), + minor_version = gtk_func("gtk_get_minor_version"), + micro_version = gtk_func("gtk_get_micro_version"), + + user_name = gtk_str_func("g_get_user_name"), + real_name = gtk_str_func("g_get_real_name"), + + curr_dir = current_dir(), + home_dir = gtk_str_func("g_get_home_dir"), + temp_dir = gtk_str_func("g_get_tmp_dir"), + data_dir = gtk_str_func("g_get_user_data_dir"), + conf_dir = gtk_str_func("g_get_user_config_dir"), + runt_dir = gtk_str_func("g_get_user_runtime_dir"), + + app_name = gtk_str_func("g_get_application_name"), + prg_name = gtk_str_func("g_get_prgname"), + lang_ = gtk_func("gtk_get_default_language"), + def_lang = gtk_str_func("pango_language_to_string",{P},{lang_}), + login = pathname(cmd[2]), + + os_pid = os:get_pid(), -- process id: e.g:1234 + os_name = os_info[1], -- e.g: Linux + os_distro = os_info[2], -- e.g: Mint17 + os_version = os_info[3], -- e.g: 3.13.0-24-generic + os_compiled = os_info[4], + os_arch = os_info[5], -- e.g: AMD64 + os_inc = getenv("EUINC"), + os_dir = getenv("EUDIR"), + os_path = getenv("PATH"), + os_shell = getenv("SHELL"), + os_term = getenv("TERM"), + + eu_platform = platform_name(), + host_name = gtk_str_func("g_get_host_name"), + host_addr = "127.0.0.1" + +ifdef BITS64 then + constant eu_arch_bits = "64" +elsedef + constant eu_arch_bits = "32" +end ifdef + +if atom(os_term) then os_term = "none" end if + +ifdef WINDOWS then + user_name = getenv("USERNAME") + real_name = getenv("USERNAME") + home_dir = getenv("HOMEPATH") + temp_dir = getenv("TEMP") + os_name = getenv("OS") + os_term = getenv("SESSIONNAME") + os_compiled = getenv("PROCESSOR_IDENTIFIER") +end ifdef + +-- following added because Windows misbehaves in the ifdef above :( + +if atom(os_term) then os_term = getenv("SESSIONNAME") end if +if atom(os_shell) then os_shell = getenv("ComSpec") end if +if atom(os_arch) then os_arch = getenv("PROCESSOR_ARCHITECTURE") end if + +export object info = { -- above system info in key/value form, sometimes this is useful; + "version=" & version, + "release=" & release, + "copyright=" & copyright, + "major=" & to_string(major_version), + "minor=" & to_string(minor_version), + "micro=" & to_string(micro_version), + "user_name=" & user_name, + "real_name=" & real_name, + "host_name=" & host_name, + "host_addr=" & host_addr, + "home_dir=" & home_dir, + "temp_dir=" & temp_dir, + "curr_dir=" & curr_dir, + "data_dir=" & data_dir, + "conf_dir=" & conf_dir, + "runt_dir=" & runt_dir, + "app_name=" & app_name, + "prg_name=" & prg_name, + "os_pid=" & to_string(os:get_pid()), + "os_name=" & os_info[1], + "os_distro=" & os_info[2], + "os_vers=" & os_info[3], + "os_comp=" & os_compiled, + "os_arch=" & os_arch, + "os_term=" & os_term, + "os_shell=" & os_shell, + "os_inc=" & os_inc, + "os_dir=" & os_dir, + "os_path=" & os_path, + "def_lang=" & def_lang, + "eu_version=" & version_string_short(), + "eu_revision=" & to_string(version_revision()), + "eu_platform=" & eu_platform, + "eu_arch_bits=" & eu_arch_bits, + "eu_date=" & version_date(), + "today=" & datetime:format(datetime:now(),"%A %B %d, %Y"), + "start_time=" & datetime:format(datetime:now(),"%H:%M:%S"), + "CMD1=" & cmd[1], + "CMD2=" & canonical_path(cmd[2]), + "CMD3=" & pathname(canonical_path(cmd[2])), + $} + +--------------------------- +export function networked() +--------------------------- +atom m = gtk_func("g_network_monitor_get_default") +return gtk_func("g_network_monitor_get_network_available",{P},{m}) +end function + +----------------------------------- +export function inet_connected() -- ping msftncsi +----------------------------------- +atom err = allocate(8) err = 0 +atom x = gtk_func("g_network_address_parse_uri",{P,I,P}, + {allocate_string("www.msftncsi.com"),80,err}) +if x > 0 then return gtk_str_func("g_socket_connectable_to_string",{P},{x}) +else return x +end if +end function + +-------------------------------- +export function get_net_address() +-------------------------------- + object results + object addr + + ifdef UNIX then + sequence tmp = temp_file(,"MYIP-") + system_exec(sprintf(`ifconfig | grep "inet addr:" > %s`,{tmp}),2) + results = trim(read_file(tmp)) + results = split(results," ") + delete_file(tmp) + for i = 1 to length(results) do + if match("inet addr:",results[i]) = 1 then + addr = split(results[i],':') + host_addr = addr[2] + info[11] = "host_addr=" & host_addr + return host_addr + end if + end for + end ifdef + + return "127.0.0.1" +end function + +--------------------------------------------------------- +public procedure requires(sequence a, object msg="Error") +--------------------------------------------------------- +-- an easy way to ensure that your program is using the +-- appropriate GTK version; +object s = split(a,'.') + if length(s) < 3 then s = append(s,"0") end if + s[1] = to_number(s[1]) + s[2] = to_number(s[2]) + s[3] = to_number(s[3]) + +object msg2 = gtk_str_func("gtk_check_version",{I,I,I},{s[1],s[2],s[3]}) + if string(msg2) then + Warn(,msg,msg2, + text:format("Requires Gtk version []\nInstalled is Gtk [].[].[]", + {a,major_version,minor_version,micro_version})) + abort(1) + end if +end procedure + +enum NAME,PARAMS,RETVAL,VECTOR,CLASS + +--------------------------------------------------------- +public function create(integer class, + object p1=0, object p2=0, object p3=0, object p4=0, + object p5=0, object p6=0, object p7=0, object p8=0) +--------------------------------------------------------- +-- This function does the following: +-- 1. initializes the class if not already initialized, +-- 2. creates a new instance of the class (returning a handle to that instance) +-- 3. optionally sets one or more properties and/or connects the default signal. +--------------------------------------------------------------------------------------- + if class = GtkStockList then -- GtkStock is not a real widget, but we fake it + return newStockList()-- also, stock items are deprecated as of 3.10+ + end if -- so don't get in the habit of using them too much :) + + if class = GtkColumn then return newColumn(p1) end if + + if not initialized[class] then -- create a routine_id for each 'method' in class + init(class) -- but only do it if this is the first call to that class + end if + + object method = lookup("new",vslice(widget[class],1),widget[class],0) + if method[VECTOR] = -1 then -- a 'new' method name was not found; + Error(,,widget[class][$],"not implemented in this GTK version!") + abort(class) + end if + + object props = 0, dataitem = 0 + if sequence(p1) and sequence(p1[1]) then -- a list of properties was provided. + props = p1 -- save until widget is created, + p1 = 0 -- then set them in one 'swell foop' + elsif string(p1) and match("=",p1) then -- properties were provided in string form, + props = keyvalues(p1,,,,"\t\n\r")-- break them up into key/value pairs, + p1 = 0 -- save for later; + dataitem = vlookup("data",props,1,2) + end if + + atom handle = 0 + object params = method[PARAMS] + object args = {p1,p2,p3,p4,p5,p6,p7,p8} + + args = args[1..length(params)] -- discard un-needed args; + + ifdef PARAMS then display(params) end ifdef -- debug; + + for i = 1 to length(params) do -- ensure values match formal params; + + switch params[i] do + + case S then -- convert string to pointer to cstring; + if string(args[i]) then + args[i] = allocate_string(args[i]) + end if + case B then -- convert "1", "TRUE", or "YES" to 1, + if string(args[i]) then + if args[i] = "1" + or upper(args[i]) = "TRUE" + or upper(args[i]) = "YES" then + args[i] = 1 + else + args[i] = 0 -- anything else is 0; + end if + end if + end switch + end for + + ifdef CREATE then -- debug; + display(decode_method("CREATE",class,method)) + puts(1,"\tArgs: ") display(args,{2,5,10,78,"%d","%.2g",32,127,1,0}) + ifdef METHOD then display(method) end ifdef + end ifdef + + if method[RETVAL] > 0 then -- it's a GTK function (routine_id is positive); + handle = c_func(method[VECTOR],args) + end if + + if method[RETVAL] < -1 then -- it's a Eu func (a negated routine_id) + handle = call_func(-method[VECTOR],args) -- convert to positive rid and call; + end if + + if handle = 0 then -- failure :( + ifdef CREATE then + display("Create failed for class []",{widget[class][$]}) + end ifdef + return handle + end if + + object sig = 0, arg1 = 0 ,arg2 = 0 + + switch class do -- connect a default signal for some common controls; + case GtkButton then sig ="clicked" arg1 = p2 arg2 = p3 + case GtkToolButton then sig ="clicked" arg1 = p3 arg2 = p4 + case GtkRadioButton then sig ="toggled" arg1 = p3 arg2 = p4 + case GtkRadioToolButton then sig = "toggled" arg1 = p3 arg2 = p4 + case GtkRadioMenuItem then sig ="toggled" arg1 = p3 arg2 = p4 + case GtkMenuItem then sig ="activate" arg1 = p2 arg2 = p3 + case GtkCheckMenuItem then sig = "toggled" arg1 = p2 arg2 = p3 + case GtkCellRendererToggle then sig = "toggled" arg1 = p1 arg2 = p2 + case GtkFontButton then sig = "font-set" arg1 = p2 arg2 = p3 + case GtkStatusIcon then sig = "activate" arg1 = p1 arg2 = p2 + case GtkSwitch then sig = "notify::active" arg1 = p1 arg2 = p2 + case GtkColorButton then sig = "color-set" arg1 = p2 arg2 = p3 + case GtkCalendar then sig = "day-selected-double-click" arg1 = p2 arg2 = p3 + case GtkComboBoxText, GtkComboBoxEntry then sig ="changed" arg1 = p1 arg2 = p2 + case GtkCheckButton then sig ="toggled" arg1 = p2 arg2 = p3 + case GtkToggleButton then sig ="toggled" arg1 = p2 arg2 = p3 + case GtkToggleToolButton then sig ="toggled" arg1 = p2 arg2 = p3 + end switch + + if atom(arg2) and arg2 = 0 then arg2 = dataitem end if + connect(handle,sig,arg1,arg2) -- connect per above switch; + + ifdef CREATE then -- debug; + display("\t[] => []\n",{widget[class][$],handle}) + end ifdef + + register(handle,class) + + if class = GtkWindow then -- if not otherwise specified, use OpenEu logo; + atom err= allocate(8,1) + gtk_func("gtk_window_set_default_icon_from_file",{P,P}, + {allocate_string(locate_file("./thumbnails/mongoose.png"),1),err}) + end if + ---------------------------------------------------------------------- + -- set properties using the new key/val style; + ---------------------------------------------------------------------- + object p = 0, signal, name, v1, v2, v3, v4 + + if not atom(props) then + + if handle > 0 then + + for i = 1 to length(props) do + while length(props[i]) < 5 do + props[i] &= 0 + end while + for n = 1 to 5 do + props[i][n] = numeric_test(props[i][n]) + end for + end for + + for i = 1 to length(props) do + name = props[i][1] + v1 = props[i][2] + v2 = props[i][3] + v3 = props[i][4] + v4 = props[i][5] + + ifdef SET then + display("\nset []->[]",{widget[class][$],props[i]}) + end ifdef + + if match("sig.",name) = 1 then + signal = name[5..$] + connect(handle,signal,v1,dataitem) + elsif match("$",name) = 1 then + signal = name[2..$] + connect(handle,signal,v1,dataitem) + elsif match("data.",name) = 1 then + set(handle,"data",name[6..$],v1) + else + set(handle,name,v1,v2,v3,v4) + end if + end for + end if + end if + + return handle -- a pointer to the newly created instance + +end function + +------------------------------------------------------------------------ +public function set(object handle, sequence property, + object p1=0, object p2=0, object p3=0, object p4=0, + object p5=0, object p6=0, object p7=0, object p8=0) +------------------------------------------------------------------------ +-- This routine sets a property or sequence of properties +-- for the given widget. +-- In order to work with Glade, widget names in string form +-- may be used, otherwise set() expects a handle. +-- Property is always a string, p1...p8 are optional parameters. +-- Any parameter expected but not supplied is set to null, excess +-- parameters are discarded. +------------------------------------------------------------------------ +integer class=-1 +object name = "unknown" +object result = 0 +object allocated = {} + + name = handle + + ifdef SETX then display({name,property,p1,p2,p3,p4}) end ifdef + + if string(handle) then handle = pointer(handle) end if + + if handle = 0 then + printf(1,"Critical error\n" & + "Objects must have a unique name!\n%s [%d]",{name,handle}) + return 0 + end if + + object prop = 0 + + if string(property) and match("=",property) > 0 then -- convert string props + property = keyvalues(property,,,,"\t\t\n") -- to key/val form; + end if + + if sequence(property) -- new create format (key=value pairs); + and not string(property) then + for i = 1 to length(property) do + while length(property[i]) < 5 do + property[i] &= 0 + end while + for n = 1 to 5 do + property[i][n] = numeric_test(property[i][n]) + end for + end for + + for i = 1 to length(property) do + prop = property[i] if prop[1][1]='$' then continue end if + while length(prop) < 8 do prop &= 0 end while + set(handle,prop[1],prop[2],prop[3],prop[4],prop[5],prop[6],prop[7],prop[8]) + end for + return 0 + end if + + class = vlookup(handle,registry,1,2,-1) -- get widget's class; + + if class = -1 then -- fail; + display("Set invalid handle [] []",{handle,prop}) + end if + + property = "set_" & lower(join(split(property,' '),'_')) -- conform; + + object method = lookup_method(class,property) + ifdef METHOD then display(method) end ifdef + + if atom(method) then + if not set_property(handle,property[5..$],numeric_test(p1)) then + Error(,,"Cannot set property",class_name(handle) & property) + end if + return 0 + end if + + if method[VECTOR] = -1 then + Warn(,,"Method not found", + sprintf("%s->%s",{class_name(handle),property})) + return 0 + end if + + -- method was found; + + object params = method[PARAMS] + + switch method[1] do -- make life easier for a common operation; + case "set_from_file" then p1 = canonical_path(p1) + end switch + + object args = {handle,p1,p2,p3,p4,p5,p6,p7,p8} + + ifdef PARAMS then + puts(1,"Params: ") display(params) + puts(1,"Args: ") display(args) + end ifdef + + args = args[1..length(params)] -- match args to formal parameters; + for i = 2 to length(args) do + switch params[i] do + + case A then -- array of strings; + if not atom(args[i]) then + args[i] = allocate_string_pointer_array(args[i]) + allocated &= args[i] + end if + + case S then -- string; + if atom(args[i]) then + args[i] = sprintf("%g",args[i]) + end if + if string(args[i]) then + args[i] = allocate_string(args[i]) + allocated &= args[i] + end if + + case B then + if string(args[i]) then + if equal("TRUE",upper(args[i])) + or equal("YES",upper(args[i])) + or equal("1",args[i]) then + args[i] = 1 + end if + if equal("FALSE",upper(args[i])) + or equal("NO",upper(args[i])) + or equal("0",args[i]) then + args[i] = 0 + end if + end if + + case I,D then + if string(args[i]) then + args[i] = to_number(args[i]) + end if + + -- apply patches for zero-based indexes; + switch method[1] do + case "add_attribute", + "set_active", + "set_text_column", + "set_pixbuf_column", + "set_tooltip_column", + "set_search_column", + "attribute_connect", + "reorder_child", + "page", + "remove_page", + "set_current_page", + "set_sort_column_id" then args[i]-=1 + end switch + end switch + end for + + ifdef SET then -- debug; + display(decode_method("SET",class,method)) + puts(1,"\tArgs: ") + display(decode_args(method,args), + {2,2,11,78,"%d","%2.22f",32,127,1,0}) + puts(1,"\n") + end ifdef + + if equal("set_name",property) then + p8 = find(handle,vslice(registry,1)) + registry[p8][4] = p1 + end if + + if method[RETVAL] = 0 then -- it's a GTK proc; + c_proc(method[VECTOR],args) + end if + + if method[RETVAL] > 0 then -- it's a GTK func; + result = c_func(method[VECTOR],args) + end if + + if method[RETVAL] <-1 then -- it's a Eu func; + result = call_func(-method[VECTOR],args) + end if + + if method[VECTOR] = -1 then -- GTK doesn't know about this method! + printf(1, + "Warning: %s->%s call is invalid," & + "******** perhaps you need a later GTK version", + {widget[class][$],property}) + end if + + if not equal("set_data",property) then + for i = 1 to length(allocated) do + free(allocated[i]) + end for + end if + + return result + +end function + +----------------------------------------------------------------------------------- +export function get(object handle, sequence property, + object p1=MINF, object p2=MINF, object p3=MINF, object p4=MINF, object p5=MINF) +----------------------------------------------------------------------------------- +-- This routine gets one or more values for a given property name. +-- Property name is always a string, handle is usually an atom, +-- but may sometimes be a string in order to work with Glade. +----------------------------------------------------------------------------------- +integer class +object name = "unknown" + + if string(handle) then + name = handle + handle = pointer(handle) + end if + + class = vlookup(handle,registry,1,2,-1) -- get widget's class; + + if class = -1 then + return 0 + end if + + property = "get_" & lower(join(split(property,' '),'_')) + + object method = lookup_method(class,property) + + if atom(method) then -- not found, try fallback to Object; + return get_property(handle,property[5..$]) + end if + + -- else, method found; + + object params = method[PARAMS] + + if method[VECTOR] = -1 then + crash("\nERROR:\n****** Invalid call: %s->%s",{widget[class][$],method[1]}) + end if + + object result = {} + + if string(p1) then p1 = allocate_string(p1,1) end if + if string(p2) then p2 = allocate_string(p2,1) end if + if string(p3) then p3 = allocate_string(p3,1) end if + if string(p4) then p4 = allocate_string(p4,1) end if + + object args = {handle,allocate(8,1),allocate(8,1),allocate(8,1),allocate(8,1)} + if p1 > MINF then args[2]=p1 end if + if p2 > MINF then args[3]=p2 end if + if p3 > MINF then args[4]=p3 end if + if p4 > MINF then args[5]=p4 end if + + args = args[1..length(params)] + + ifdef GET then -- debug + display(decode_method("GET",class,method),0) + puts(1,"\tArgs: ") + display(decode_args(method,args), + {2,2,11,78,"%d","%2.22f",32,127,4,-1}) + end ifdef + +----------------------------------------------------------------------------------- + if method[RETVAL] = 0 then -- it's a GTK proc, may have multiple return values; + c_proc(method[VECTOR],args) + result = repeat(0,length(args)) + for i = 1 to length(args) do + switch params[i] do -- convert arg pointer to value; + case D then result[i] = float64_to_atom(peek({args[i],8})) + case F then result[i] = float32_to_atom(peek({args[i],4})) + case I then result[i] = peek4s(args[i]) + case B then result[i] = peek(args[i]) + case A then result[i] = unpack_gs_str_list(args[i]) + case X then result[i] = unpack_gs_atom_list(args[i]) + case V then result[i] = deallocate_string_pointer_array(args[i]) + case S then if args[i] > 0 then result[i] = peek_string(args[i]) end if + case else result[i] = args[i] + end switch + end for + result = result[2..$] -- don't return handle, just results; + goto "fini" + end if + +-------------------------------------------------- + if method[RETVAL] > 0 then -- it's a GTK func; + result = c_func(method[VECTOR],args) + switch method[RETVAL] do -- convert function result to value; + case A then result = unpack_gs_str_list(result) + case X then result = unpack_gs_atom_list(result) + case V then result = deallocate_string_pointer_array(result) + case S then if result > 0 then result = peek_string(result) else result = 0 end if + case I then + switch method[1] do -- patch for zero-based indexing; + case + "get_active", + "get_text_column", + "get_pixbuf_column", + "get_column", + "get_tooltip_column", + "get_search_column", + "get_current_page", + "get_index", + "get_item_index", + "page_num", + "get_sort_column_id" then result += 1 + end switch + end switch + goto "fini" + end if + +---------------------------------------------------------------------- + if method[RETVAL] <-1 then -- it's a Eu func (negated routine_id); + result = call_func(-method[VECTOR],args) + end if + +label "fini" + + if method[CLASS] != GSList then -- for widgets created 'internally' by GTK + if method[CLASS] != 0 then -- as a result of creating a parent widget; + if not initialized[method[CLASS]] then init(method[CLASS]) end if + if atom(result) then register(result,method[CLASS]) + else for z = 1 to length(result) do + register(result[z],method[CLASS]) -- must be registered; + end for + end if + end if + end if + + ifdef GET then display("\tReturns: []\n",{result}) end ifdef + +return result +end function + +--------------------------------------------------- +public function add(object parent, object child) -- add widgets to container; +--------------------------------------------------- + + ifdef ADD then + display("Add [] []",{parent,child}) + end ifdef + + if atom(child) and child = 0 then + display("Null pointer passed to add()\n") + return 0 + end if + + if class_id(child) = GdkPixbuf then -- issue a warning; + return Warn(,,"Cannot add a pixbuf to a container", + "Create an image from it first,\nthen add the image.",,child) + end if + + if class_id(parent) = GtkBuilder then + load_builder(parent,child) + return 1 + end if + + if string(parent) then -- convert to handle; + parent = pointer(parent) + end if + + if string(child) then -- convert to handle; + child = pointer(child) + end if + + -- Switch below implements an easier-to-remember 'add' syntax + -- as an alias for the various 'set' calls shown. + -- The GTK original is still available, if you wish to use it. + + switch class_id(parent) do + + case GtkComboBoxText, GtkComboBoxEntry then + for i = 1 to length(child) do + set(parent,"append text",child[i]) + end for + + case GtkToolbar then + if atom(child) then + set(parent,"insert",child,-1) + else for i = 1 to length(child) do + add(parent,child[i]) + end for + end if + return child + + case GtkFileChooserDialog then + if atom(child) then + if class_id(child) = GtkFileFilter then + set(parent,"add filter",child) + end if + else for i = 1 to length(child) do + add(parent,child[i]) + end for + end if + + case GtkSizeGroup then + set(parent,"add widgets",child) + return child + + case GtkTextTagTable then + set(parent,"add",child) + return child + + case GtkTreeView then + set(parent,"append columns",child) + return child + + case else + if atom(child) then + gtk_proc("gtk_container_add",{P,P},{parent,child}) + else + for i = 1 to length(child) do + gtk_proc("gtk_container_add",{P,P},{parent,child[i]}) + end for + end if + return child + + end switch +return -1 +end function + +------------------------------------------------------------------------ +public function pack(object parent, object child, + integer expand=0, integer fill=0, integer padding=0) +------------------------------------------------------------------------ +-- pack a child widget or {list} of child widgets into parent container; +-- prepending a negative sign to the child pointer means +--'pack end'. this is an alias which is sometimes useful. +------------------------------------------------------------------------ + + if string(parent) then parent = pointer(parent) end if + if string(child) then child = pointer(child) end if + + if atom(child) then + if child > 0 then + pack_start(parent,child,expand,fill,padding) + else + child = -child + pack_end(parent,child,expand,fill,padding) + end if + else + for i = 1 to length(child) do + pack(parent,child[i],expand,fill,padding) + end for + end if + + return abs(child) +end function + +function valid(object x) +object msg = "Invalid object []" +atom p +if string(x) then + p = pointer(x) + if p = 0 then + display(msg,{x}) + return 0 + else return p + end if +end if +if x = 0 then + display(msg) +end if +return x +end function + +-- following 2 functions provided for compatibility with GTK calls; + +public function pack_start(object parent, object child, + boolean expand=0, boolean fill=0, integer padding=0) + parent = valid(parent) + child = valid(child) + set(parent,"pack start",child,expand,fill,padding) +return child + +end function + +public function pack_end(object parent, object child, + boolean expand=0, boolean fill=0, integer padding=0) + parent = valid(parent) + child = valid(child) + set(parent,"pack end",child,expand,fill,padding) +return child +end function + +---------------------------------- +public procedure show(object x) -- show widget x or a {list} of widgets; +---------------------------------- + if string(x) then x = pointer(x) end if + if atom(x) then + set(x,"show") + else + for i = 1 to length(x) do + show(x[i]) + end for + end if +end procedure + +------------------------------------- +public function show_all(object x) -- show container x and all children; +------------------------------------- + if string(x) then x = pointer(x) end if + if atom(x) then + set(x,"show all") + else + for i = 1 to length(x) do + set(x[i],"show all") + end for + end if +return 1 +end function + +--------------------------------- +public function hide(object x) -- hide a widget or a {list} of widgets; +--------------------------------- + if string(x) then x = pointer(x) end if + if atom(x) then + set(x,"hide") + else + for i = 1 to length(x) do + hide(x[i]) + end for + end if +return 1 +end function + +-------------------------------------- +public procedure hide_all(object x) -- hide container x and any children it contains; +-------------------------------------- + set(x,"hide all") +end procedure + +-------------------------------------- +export function destroy(object ctl) -- destroy a widget or {list} of widgets; +-------------------------------------- + if sequence(ctl) then + for i = 1 to length(ctl) do + destroy(ctl[i]) + end for + else + if ctl > 0 then + set(ctl,"destroy") + deregister(ctl) + end if + end if +return 1 +end function + +-------------------------- +export procedure main() -- start the GTK engine; +-------------------------- + gtk_proc("gtk_main") +end procedure + +without warning {not_reached} + + -------------------------------------------------------------------------- + export function Quit(atom ctl=0, object errcode=0) -- kill the GTK engine; + -------------------------------------------------------------------------- + abort(errcode) + return 1 + end function + export constant main_quit = call_back(routine_id("Quit")) + +with warning {not_reached} + +---------------------------------- +function numeric_test(object x) -- convert numbers passed in key=value format; +---------------------------------- + atom z + if atom(x) then + return x + end if + if string(x) then + if equal("TRUE",x) then return 1 end if + if equal("FALSE",x) then return 0 end if + if equal("YES",x) then return 1 end if + if equal("NO",x) then return 0 end if + if equal("VERTICAL",x) then return 1 end if + if equal("CENTER",x) then return 1 end if + if equal("HORIZONTAL",x) then return 0 end if + + z = to_number(x) + if z != 0 then + ifdef NUM then display("string [] converted to number []",{x,z}) end ifdef + return z + else + ifdef NUM then display("returning string '[]'",{x}) end ifdef + return x + end if + end if + ifdef NUM then display("error []",x) end ifdef + return x +end function + +------------------------------------------------------------------------ +-- Following functions register and initialize class methods +------------------------------------------------------------------------ +-- A class is initialized the first time a widget of that class is created. +-- This means the widget's method vectors are filled in with Eu routine_ids, +-- either direct or generated by define_c_func or define_c_proc as appropriate. + +-- When a subsequent call is made to a widget method, that vector is +-- used by calling c_func, c_proc, or call_func. + +-- If the call is to a method not implemented by the widget, but is +-- instead a method inherited from one of the widget's ancestors, +-- then that ancestor is also initialized if necessary. + +-- This scheme means that program startup isn't delayed as it would be +-- if all 300+ widgets and nearly 4000 methods were to be initialized +-- first, most of which would likely never be used in any given program. + +------------------------------------------------------------------------ +global procedure init(integer class) +------------------------------------------------------------------------ +object name, params, retval + + ifdef INITX then + display("\nInit class:[] []",{class,widget[class][$]}) + display(widget[class]) + end ifdef + + if initialized[class] then return end if + + for method = 3 to length(widget[class])-1 do + + name = sprintf("+%s_%s",{widget[class][NAME],widget[class][method][NAME]}) + + widget[class][method] = pad_tail(widget[class][method],5,0) + params = widget[class][method][PARAMS] + retval = widget[class][method][RETVAL] + + if class = GtkSpinButton then + switch widget[class][method][NAME] do + case "get_increments","get_range" then params[2] = P params[3] = P + case else -- do nothing; + end switch + end if + + if widget[class][method][RETVAL] = 0 then -- it's a GTK proc + widget[class][method][VECTOR] = define_proc(name,params) + goto "init" + end if + + if widget[class][method][RETVAL] > 0 then -- it's a GTK func + widget[class][method][VECTOR] = define_func(name,params,retval) + goto "init" + end if + + if widget[class][method][RETVAL] < -1 then -- it's a Eu func + widget[class][method][VECTOR] = widget[class][method][RETVAL] + end if + + label "init" + + initialized[class] = TRUE + + ifdef INIT then + display("INIT: [].[] RID:[]", + {widget[class][$],widget[class][method][NAME],widget[class][method][VECTOR]}) + end ifdef + + ifdef INIT_ERR then + if widget[class][method][VECTOR] = -1 then -- function is invalid! + display("\tINIT ERROR: [].[] ERR:[]", + {widget[class][$],widget[class][method][NAME],widget[class][method][VECTOR]}) + end if + end ifdef + + end for + +end procedure + +------------------------------------------------------------------------ +-- The registry associates a control's handle with its class, +-- so that future calls to set or get that control's properties +-- can go directly to the correct set of functions stored in the +-- large widget{} structure. +------------------------------------------------------------------------ +export object registry = {} + +---------------------------------------------------------------------------------------- +global function register(atom handle, integer class, object name="-nil-", object v=math:MINF) +---------------------------------------------------------------------------------------- +integer x = find(handle,vslice(registry,1)) + + if x > 0 then -- handle already exists in the registry, + ifdef REG_DUP then -- debug + display("Note: [] handle [] already registered to [] []", + {widget[class][$],handle,registry[x][3],name}) + end ifdef + -- update it in case handle has been recycled. + registry[x] = {handle,class,widget[class][$],name,v} + return 1 + end if + + -- else, add the widget to the registry; + registry = append(registry,{handle,class,widget[class][$],name,v}) + + -- initialize class if this is the first use of that class; + if not initialized[class] then init(class) end if + + ifdef REG then -- debug + printf(1,text:format("Registry + [3:20]\thandle: [1:10>]\tname: [4]\tvalue: [5]\n",registry[$])) + end ifdef + +return 1 +end function + +------------------------------------ +procedure deregister(atom handle) -- when object no longer used; +------------------------------------ +integer x = find(handle,vslice(registry,1)) +if x > 0 then + ifdef REG then + printf(1,text:format("Registry - [3:16]\thandle: [1:12>]\t",registry[x])) + if string(registry[x][4]) then printf(1,"name: %s",{registry[x][4]}) end if + puts(1,"\n") + end ifdef + registry = remove(registry,x) +end if +end procedure + + +----------------------------------------- +public function class_id(object handle) -- returns an integer widget class; +----------------------------------------- + if string(handle) then handle = pointer(handle) end if + return vlookup(handle,registry,1,2,-1) +end function + +------------------------------------------- +public function class_name(object handle) -- returns class_name for a given handle; +------------------------------------------- + if string(handle) then handle = pointer(handle) end if + return vlookup(handle,registry,1,3,"!") +end function + +------------------------------------------ +public function object_name(atom handle) -- returns name of object, or -nil-; +------------------------------------------ + return vlookup(handle,registry,1,4,"!") +end function + +--------------------------------------- +public function pointer(object name) -- returns handle to object or null, +--------------------------------------- + return vlookup(name,registry,4,1,0) +end function + +------------------------------------------------------------------------ +function lookup_method(integer class, sequence prop) +------------------------------------------------------------------------ +-- Finds the method to set or get a property for a given class, +-- if not found, ancestors of that class are checked until the method +-- is located. + + if class = -1 then return 0 end if + + ifdef LOOK then display("Look []->[]",{widget[class][$],prop}) end ifdef + + object method = lookup(prop,vslice(widget[class],NAME),widget[class],0) + + ifdef LOOKUP then display(widget[class][$]) end ifdef + + if atom(method) then -- try sans the set_ or get_ prefix; + method = lookup(prop[5..$],vslice(widget[class],NAME),widget[class],0) + end if + + if sequence(method) then -- method was found in this class, we're done! + return method + end if + + object ancestor -- if not found, need to look for method in ancestors; + for i = 1 to length(widget[class][PARAMS]) do + ancestor = widget[class][PARAMS][i] + if ancestor = 0 then return 0 end if + + if not initialized[ancestor] then + init(ancestor) + end if + + ifdef LOOKUP then -- debug; + display("trying ancestor: []",{widget[ancestor][$]}) + end ifdef + + method = lookup(prop,vslice(widget[ancestor],NAME),widget[ancestor],0) + if atom(method) then + method = lookup(prop[5..$],vslice(widget[ancestor],NAME),widget[ancestor],0) + end if + + if sequence(method) then -- found it! + ifdef LOOKUP then display("\t []",{method[1]}) end ifdef + return method + end if + + end for + + return -1 -- method not found (not implemented) + +end function + +----------------------------------------------------------------------------- +public function connect(object ctl, object sig, object fn=0, object data=0, + atom closure=0, integer flags=0) +----------------------------------------------------------------------------- +-- tells control to call your Eu function, sending data along for the ride, +-- whenever that control gets the specified signal. + + integer result = -1 + atom rid = 0 + + if atom(fn) and fn = 0 then -- no point in registering null functions! + return 0 + end if + + if string(ctl) then + ctl = pointer(ctl) -- convert name to pointer; + end if + + if sequence(ctl) then + for i = 1 to length(ctl) do + connect(ctl[i],sig,fn,data,closure,flags) + end for + return 1 + end if + + if string(fn) then -- if interpreted, we can call functions by name if in scope; + ifdef COMPILE then -- do compile test if requested; + display("Connecting [] [] Signal '[]' Function [] Data []", + {class_name(ctl),ctl,sig,fn,data}) + if not equal("Quit",fn) then + printf(1,"\n\tCaution: function %s will not link when compiled!\n\t********\n",{fn}) + end if + end ifdef + + rid = routine_id(fn) + if rid > 0 then -- named function is in scope; + fn = call_back(rid) -- so obtain a callback; + else + printf(1,"\n\tError: function %s is not in scope\n\t****** (make it global or link via routine_id)\n",{fn}) + Warn(,,sprintf("function %s is not in scope",{fn}),"make it global or link via routine_id") + end if + end if + + sig = join(split(sig,' '),'-') -- normalize signal names; + sig = allocate_string(sig) -- convert to string pointer; + + if integer(data) then -- can be attached directly; + result = gtk_func("g_signal_connect_data",{P,S,P,P,I,I},{ctl,sig,fn,data,closure,flags}) + free(sig) + return result + end if + + if atom(data) then + data = prepend({data},"ATOM") -- must be serialized and unpacked later; + data = allocate_wstring(serialize(data)+1) + result = gtk_func("g_signal_connect_data",{P,S,P,P,I,I},{ctl,sig,fn,data,closure,flags}) + free(sig) + return result + end if + + if string(data) then + data = prepend({data},"STR") -- must be serialized and unpacked later; + data = allocate_wstring(serialize(data)+1) + result = gtk_func("g_signal_connect_data",{P,S,P,P,I,I},{ctl,sig,fn,data,closure,flags}) + free(sig) + return result + end if + + if sequence(data) then + data = prepend(data,"SEQ")-- must be serialized and unpacked later; + data = allocate_wstring(serialize(data)+1) + result = gtk_func("g_signal_connect_data",{P,S,P,P,I,I},{ctl,sig,fn,data,closure,flags}) + free(sig) + return result + end if + +end function + +------------------------------------------------------- +export procedure disconnect(atom ctl, integer sigid) -- disconnect a signal from ctl; +------------------------------------------------------- + gtk_proc("g_signal_handler_disconnect",{P,I},{ctl,sigid}) +end procedure + +-------------------------------------- +export function unpack(object data) -- retrieves data passed in a control's data space; +-------------------------------------- +if atom(data) and data = 0 then return 0 end if +object result = deserialize(peek_wstring(data)-1) + switch result[1][1] do + case "ATOM","STR","INT" then return result[1][2] + case "SEQ" then return result[1][2..$] + case else return result + end switch +end function + +------------------------------------------------------- +export function deallocate_string_pointer_array(atom x) +------------------------------------------------------- +integer i = 0 +object result = {} + while peek4u(x+i) > 0 do + result = append(result,peek_string(peek4u(x+i))) + i += 8 + end while + return result +end function + +------------------------------------------------------------------------ +-- following 3 'decode_x' functions are for debugging purposes, +-- they make displays more readable; +------------------------------------------------------------------------ +function decode_args(object method, object args) +------------------------------------------------------------------------ + for i = 1 to length(method[PARAMS]) do + switch method[PARAMS][i] do + case S then + if atom(args[i]) and args[i] > 0 then + args[i] = peek_string(args[i]) + if length(args[i]) > 40 then + args[i] = args[i][1..40] & "..." + end if + args[i] = args[i] + end if + case else -- do not convert + end switch + end for + return args +end function + +constant ptype = {0,P,I,D,F,S,B,A} +constant pname = {{},"None","Ptr ","Int ","Dbl ","Flt ","Str ","Bool ","Array "} + +------------------------------------------------------------------------ +function decode_params(object params) +------------------------------------------------------------------------ + return transmute(params,ptype,pname) +end function + +------------------------------------------------------------------------ +function decode_method(sequence title, integer class, object method) +------------------------------------------------------------------------ +object z = {} +integer n + z = prepend(method,widget[class][$]) + z = prepend(z,title) + z[4] = decode_params(method[PARAMS]) + while length(z) < 5 do + z = append(z,0) + end while + if length(method) >= RETVAL then + n = find(method[RETVAL],ptype) + z[5] = pname[n+1] + end if + return text:format("[]\n\tCall: []->[]\n\tParams: []\n\tReturn type: []\n\tVector: []",z) +end function + +--------------------------------------------------------- +public function to_sequence(atom glist, integer fmt=0) -- mostly internal use; +--------------------------------------------------------- +-- convert glist pointer back to a Euphoria sequence; +-- results are returned in a choice of formats; + integer len = gtk_func("g_list_length",{P},{glist}) + object s = {} + atom data + for i = 0 to len-1 do + data = gtk_func("g_slist_nth_data",{P,I},{glist,i}) + switch fmt do + case 0 then s = append(s,peek_string(data)) + case 1 then s = append(s,data) + case 2 then s = append(s,gtk_str_func("gtk_tree_path_to_string",{P},{data})) + case 3 then s = append(s,to_number(gtk_str_func("gtk_tree_path_to_string",{P},{data}))) + case else Warn(,,"Converting glist to_sequence", + "invalid format supplied,\nvalues are 0 to 3") + end switch + end for + return s +end function + +----------------------------------------------------------------------------------------- +-- METHOD DECLARATIONS: +----------------------------------------------------------------------------------------- + +sequence initialized = repeat(0,500) +-- This is a set of flags which are set to 1 when a given widget has +-- been initialized. This prevents having to initialize a widget's +-- methods repeatedly. Size is larger than GtkFinal to allow 'plugin' +-- widgets to be added at runtime. + +export sequence widget = repeat(0,GtkFinal) +-- This structure holds prototypes for each GTK method call, +-- organized by widget. When each widget is initialized, +-- vectors are added pointing to the routine_ids needed +-- to call the GTK functions that implement each method. + +-- The widgets below need not be in any specific order. +-- Widget names must also be added to the list in GtkEnums + +sequence stock_list = create(GtkStockList) -- a fake object; + +widget[GObject] = {"g_object", +{0}, + {"new",{I,S,S,I},P}, + {"set",{P,S,P,P}}, + {"set_property",{P,S,P},-routine_id("set_property")}, + {"get_property",{P,S},-routine_id("get_property")}, + {"get_data",{P,P},S}, + {"set_data",{P,S,S}}, + {"set_data_full",{P,S,S,P}}, + {"steal_data",{P,S},P}, + {"signal",{P,P,P,P,P,P},-routine_id("connect")}, + {"connect",{P,P,P,P,P,P},-routine_id("connect")}, +"GObject"} + + constant + fn1 = define_proc("g_object_get",{P,P,P,P}), + doubles = {"angle","climb-rate","fraction","max-value","min-value", + "scale","value","pulse-step","scale","size-points","text-xalign", + "text-yalign","xalign","yalign"} + + constant prop = allocate_string("property") + + function set_property(object handle, object a, object b) + -------------------------------------------------------------- + object params = {P,P,P,P} + if find(a,doubles) then params = {P,P,D,P} end if + if string(a) then a = allocate_string(a,1) end if + if string(b) then b = allocate_string(b,1) end if + gtk_proc("g_object_set",params,{handle,a,b,0}) + return 1 + end function + + function get_property(atom handle, object p) + -------------------------------------------------- + atom x = allocate(8,1) + if string(p) then p = allocate_string(p,1) end if + c_proc(fn1,{handle,p,x,0}) + object result = peek4u(x) + return result + end function + +widget[GtkAdjustment] = {"gtk_adjustment", +{GObject}, + {"new",{D,D,D,D,D,D},P}, + {"set_value",{P,D}}, + {"get_value",{P},D}, + {"clamp_page",{P,D,D}}, + {"value_changed",{P}}, + {"configure",{P,D,D,D,D,D,D}}, + {"get_lower",{P},D}, + {"get_page_increment",{P},D}, + {"get_step_increment",{P},D}, + {"get_minimum_increment",{P},D}, + {"set_upper",{P,D}}, + {"get_upper",{P},D}, + {"set_page_increment",{P,D}}, + {"set_page_size",{P,D}}, + {"set_step_increment",{P,D}}, + {"set_upper",{P,D}}, +"GtkAdjustment"} + +widget[GtkWidgetPath] = {"gtk_widget_path", +{GObject}, + {"new",{},P}, + {"append_type",{P,I},I}, + {"append_with_siblings",{P,P,I},I}, + {"append_for_widget",{P,P},I}, + {"copy",{P},P,0,GtkWidgetPath}, + {"get_object_type",{P},I}, + {"has_parent",{P,I},B}, + {"is_type",{P,I},B}, + {"iter_add_class",{P,I,S}}, + {"iter_add_region",{P,I,S,I}}, + {"iter_clear_classes",{P,I}}, + {"iter_clear_regions",{P,I}}, + {"iter_get_name",{P,I},S}, + {"iter_get_object_type",{P,I},I}, + {"iter_get_siblings",{P,I},P,0,GtkWidgetPath}, + {"iter_get_sibling_index",{P,I},I}, + {"iter_has_class",{P,I,S},B}, + {"iter_has_name",{P,I,S},B}, + {"iter_has_qclass",{P,I,P},B}, + {"iter_has_qname",{P,I,P},B}, + {"iter_has_qregion",{P,I,P,I},B}, + {"iter_has_region",{P,I,S,I},B}, + {"iter_list_classes",{P,I},A,0,GSList}, + {"iter_list_regions",{P,I},A,0,GSList}, + {"iter_remove_class",{P,I,S}}, + {"iter_remove_region",{P,I,S}}, + {"iter_set_name",{P,I,S}}, + {"iter_set_object_type",{P,I,I}}, + {"iter_set_object_name",{P,I,S}}, -- 3.20 + {"iter_get_object_name",{P,I},S}, -- 3.20 + {"iter_get_state",{P,I},I}, -- 3.14 + {"iter_set_state",{P,I,I}}, -- 3.14 + {"length",{P},I}, + {"prepend_type",{P,I}}, + {"to_string",{P},S}, + {"get_object_name",{P,I},S}, -- 3.20 + {"set_object_name",{P,I,S}}, -- 3.20 +"GtkWidgetPath"} + +widget[GtkStyle] = {"gtk_style", +{GObject}, +"GtkStyle"} + +widget[GAction] = {"g_action", +{GObject}, + {"name_is_valid",{S},B}, + {"get_name",{P},S}, + {"get_parameter_type",{P},I}, + {"get_state_type",{P},I}, + {"get_state_hint",{P},I}, + {"get_enabled",{P},B}, + {"get_state",{P},I}, + {"change_state",{P,I}}, + {"activate",{P,I}}, + {"parse_detailed_name",{P,S,P,P},B}, + {"print_detailed_name",{P,I},S}, +"GAction"} + +widget[GSimpleAction] = {"g_simple_action", +{GObject}, + {"new",{S,I},P}, + {"new_stateful",{S,I,I}}, + {"set_enabled",{P,B}}, + {"set_state",{P,I}}, + {"set_state_hint",{P,I}}, +"GSimpleAction"} + +widget[GPropertyAction] = {"g_property_action", +{GObject}, + {"new",{S,P,S},P}, +"GPropertyAction"} + +widget[GActionGroup] = {"g_action_group", +{GSimpleAction,GObject}, +"GActionGroup"} + +widget[GSimpleActionGroup] = {"g_simple_action_group", +{GApplication,GActionGroup,GObject}, + {"new",{}}, +"GSimpleActionGroup"} + +widget[GActionMap] = {"g_action_map", +{0}, + {"lookup_action",{P,S},P}, + {"add_action_entries",{P,P,I,P}}, + {"add_action",{P,P}}, + {"remove_action",{P,S}}, +"GActionMap"} + +widget[GtkWidgetClass] = {"gtk_widget_class", +{GtkWidget,GtkBuildable,GObject}, + {"set_template",{P,P}}, -- 3.10 + {"set_template_from_resource",{P,S}}, -- 3.10 + {"get_template_child",{P,I,S},P,0,GObject}, + {"bind_template_child_full",{P,S,B,I}}, + {"bind_template_callback_full",{P,S,P}}, + {"set_connect_func",{P,P,P,P}}, + {"set_css_name",{P,S}}, -- 3.20 + {"get_css_name",{P},S}, -- 3.20 +"GtkWidgetClass"} + +widget[GtkWidget] = {"gtk_widget", +{GtkBuildable,GObject}, + +-- Aliases to fix awkward overrides; ordinarily you will use one of these 4, + {"set_font",{P,S},-routine_id("widget_set_font")}, + {"set_color",{P,P},-routine_id("widget_set_foreground")}, + {"set_foreground",{P,P},-routine_id("widget_set_foreground")}, + {"set_background",{P,P},-routine_id("widget_set_background")}, + +-- Only use following versions when you need to change the color +-- of a control in a state other than normal. Rarely used since themes +-- often disallow the use of stateful colors; + {"override_background_color",{P,I,P},-routine_id("widget_override_background_color")}, + {"override_color",{P,I,P},-routine_id("widget_override_color")}, +---- + {"new",{I},P}, + {"destroy",{P}}, + {"in_destruction",{P},B}, + {"destroyed",{P},B}, + {"unparent",{P}}, + {"show",{P}}, + {"show_now",{P}}, + {"hide",{P}}, + {"show_all",{P}}, + {"map",{P}}, + {"unmap",{P}}, + {"realize",{P}}, + {"unrealize",{P}}, + {"draw",{P}}, + {"queue_draw",{P}}, + {"queue_resize",{P}}, + {"queue_resize_no_redraw",{P}}, + {"get_frame_clock",{P},P,0,GdkFrameClock}, + {"add_tick_callback",{P,P,P,P},I}, + {"remove_tick_callback",{P,I}}, -- GTK 3.8+ + {"set_size_request",{P,P,P},-routine_id("widget_set_size_request")}, + {"size_allocate",{P,P}}, + {"size_allocate_with_baseline",{P,P,I}}, + {"add_accelerator",{P,S,P,I,I}}, + {"remove_accelerator",{P,P,I,I},B}, + {"set_accel_path",{P,S,P}}, + {"can_activate_accel",{P,I},B}, + {"event",{P,P},B}, + {"activate",{P},B}, + {"reparent",{P,P}}, -- deprecated 3.14 + {"intersect",{P,P,P},B}, + {"is_focus",{P},B}, + {"grab_focus",{P},B}, + {"grab_default",{P}}, + {"set_name",{P,S},-routine_id("widget_set_name")}, + {"get_name",{P},S}, + {"set_sensitive",{P,B}}, + {"get_sensitive",{P},B}, + {"set_parent",{P,P}}, + {"get_parent",{P},P}, + {"set_parent_window",{P,P}}, + {"get_parent_window",{P},P}, + {"set_events",{P,I}}, + {"get_events",{P},I}, + {"add_events",{P,I}}, + {"set_device_events",{P,P,I}}, + {"get_device_events",{P,P},I}, + {"add_device_events",{P,P,I}}, + {"set_device_enabled",{P,P,B}}, + {"get_device_enabled",{P,P},B}, + {"get_toplevel",{P},P}, + {"get_ancestor",{P,I},P}, + {"is_ancestor",{P,P},B}, + {"set_visual",{P,P}}, + {"get_visual",{P},P,0,GdkVisual}, + {"get_pointer",{P,I,I}}, -- deprecated 3.4 + {"translate_coordinates",{P,P,I,I,I,I},B}, + {"hide_on_delete",{P},B}, + {"set_direction",{P,I}}, + {"get_direction",{P},I}, + {"set_default_direction",{I}}, + {"get_default_direction",{},I}, + {"shape_combine_region",{P,P}}, + {"create_pango_context",{P},P}, + {"get_pango_context",{P},P,0,PangoContext}, + {"create_pango_layout",{P,S},P}, + {"queue_draw_area",{P,I,I,I,I}}, + {"queue_draw_region",{P,P}}, + {"set_app_paintable",{P,B}}, + {"set_double_buffered",{P,B}}, -- deprecated 3.14 + {"set_redraw_on_allocate",{P,B}}, + {"mnemonic_activate",{P,B},B}, + {"send_expose",{P,P},I}, + {"send_focus_change",{P,P},B}, + {"get_accessible",{P},P}, + {"child_focus",{P,I},B}, + {"child_notify",{P,S}}, + {"freeze_child_notify",{P}}, + {"get_child_visible",{P},B}, + {"get_parent",{P},P}, + {"get_path",{P},P,0,GtkWidgetPath}, + {"get_settings",{P},P,0,GtkSettings}, + {"get_clipboard",{P,I},P,0,GtkClipboard}, + {"get_display",{P},P,0,GdkDisplay}, + {"get_root_window",{P},P,0,GdkWindow}, -- deprecated 3.12 + {"get_screen",{P},P,0,GdkScreen}, + {"has_screen",{P},B}, + {"get_size_request",{P,I,I}}, + {"set_child_visible",{P,B}}, + {"thaw_child_notify",{P}}, + {"set_no_show_all",{P,B}}, + {"get_no_show_all",{P},B}, + {"add_mnemonic_label",{P,P}}, + {"remove_mnemonic_label",{P,P}}, + {"is_composited",{P},B}, + {"set_tooltip_markup",{P,S}}, + {"get_tooltip_markup",{P},S}, + {"set_tooltip_text",{P,S}}, + {"get_tooltip_text",{P},S}, + {"set_tooltip_window",{P,P}}, + {"get_tooltip_window",{P},P,0,GtkWindow}, + {"set_has_tooltip",{P,B}}, + {"get_has_tooltip",{P},B}, + {"trigger_tooltip_query",{P}}, + {"get_window",{P},P,0,GdkWindow}, + {"register_window",{P,P}}, -- GTK 3.8+ + {"unregister_window",{P,P}}, -- GTK 3.8+ + {"get_allocated_width",{P},I}, + {"get_allocated_height",{P},I}, + {"get_allocation",{P},-routine_id("widget_get_allocation")}, + {"set_allocation",{P,P}}, + {"get_allocated_baseline",{P},I}, + {"get_app_paintable",{P},B}, + {"set_can_default",{P,B}}, + {"get_can_default",{P},B}, + {"get_can_focus",{P},B}, + {"get_double_buffered",{P},B}, -- deprecated 3.14 + {"get_has_window",{P},B}, + {"get_sensitive",{P},B}, + {"get_visible",{P},B}, + {"is_visible",{P},B}, -- GTK 3.8+ + {"set_visible",{P,B}}, + {"set_state_flags",{P,I,B}}, + {"unset_state_flags",{P,I}}, + {"get_state_flags",{P},I}, + {"has_default",{P},B}, + {"has_focus",{P},B}, + {"has_visible_focus",{P},B}, + {"has_grab",{P},B}, + {"is_drawable",{P},B}, + {"is_toplevel",{P},B}, + {"set_window",{P,P}}, + {"set_receives_default",{P,B}}, + {"get_receives_default",{P},B}, + {"set_support_multidevice",{P,B}}, + {"get_support_multidevice",{P},B}, + {"set_realized",{P,B}}, + {"get_realized",{P},B}, + {"set_mapped",{P,B}}, + {"get_mapped",{P},B}, + {"device_is_shadowed",{P,P},B}, + {"get_modifier_mask",{P,I},I}, + {"insert_action_group",{P,S,P}}, + {"get_opacity",{P},D}, -- GTK 3.8+ + {"set_opacity",{P,D}}, -- GTK 3.8+ + {"get_path",{P},P,0,GtkWidgetPath}, + {"get_style",{P},P,0,GtkStyle}, + {"get_style_context",{P},P,0,GtkStyleContext}, + {"reset_style",{P}}, + {"get_preferred_height",{P,I,I}}, + {"get_preferred_width",{P,I,I}}, + {"get_preferred_height_for_width",{P,I,I,I}}, + {"get_preferred_width_for_height",{P,I,I,I}}, + {"get_preferred_height_and_baseline_for_width",{P,I,I,I,I,I}}, + {"get_request_mode",{P},I}, + {"get_preferred_size",{P,P,P}}, + {"get_preferred_size_and_baseline",{P,P,I,I}}, + {"get_halign",{P},I}, + {"set_halign",{P,I}}, + {"get_valign",{P},I}, + {"set_valign",{P,I}}, + {"set_margin_left",{P,I}}, -- deprecated 3.12 + {"get_margin_left",{P},I}, -- deprecated 3.12 + {"set_margin_right",{P,I}}, -- deprecated 3.12 + {"get_margin_right",{P},I}, -- deprecated 3.12 + {"get_margin_end",{P},I}, -- new 3.12 + {"set_margin_end",{P,I}}, -- new 3.12 + {"get_margin_start",{P},I}, -- new 3.12 + {"set_margin_start",{P,I}}, -- new 3.12 + {"set_margin_top",{P,I}}, + {"get_margin_top",{P},I}, + {"set_margin_bottom",{P,I}}, + {"get_margin_bottom",{P},I}, + {"get_hexpand",{P},B}, + {"set_hexpand",{P,B}}, + {"get_hexpand_set",{P},B}, + {"set_hexpand_set",{P,B}}, + {"get_vexpand",{P},B}, + {"set_vexpand",{P,B}}, + {"get_vexpand_set",{P},B}, + {"set_vexpand_set",{P,B}}, + {"queue_compute_expand",{P}}, + {"compute_expand",{P,I},B}, + {"init_template",{P}}, + {"get_automated_child",{P,I,S},P,0,GObject}, + {"get_clip",{P,P}}, -- 3.14 + {"set_clip",{P},P}, -- 3.14 + {"get_action_group",{P,S},P,0,GActionGroup}, -- 3.16 + {"list_action_prefixes",{P},A}, -- 3.16 + {"get_font_map",{P},P,0,PangoFontMap}, -- 3.18 + {"set_font_map",{P,P}}, -- 3.18 + {"get_font_options",{P},P}, -- 3.18 + {"set_font_options",{P,P}}, -- 3.18 + {"signal",{P,P,P,P,P,P},-routine_id("connect")}, + {"list_accel_closures",{P},X,0,GList}, + {"get_font",{P},-routine_id("widget_get_font")}, + {"get_allocated_size",{P,P,I}}, -- 3.20 + {"get_focus_on_click",{P},B}, -- 3.20 + {"set_focus_on_click",{P,B}}, -- 3.20 +"GtkWidget"} + + function widget_set_size_request(atom ctl, object x=0, object y=0) + if string(x) then + x = split(x,'x') + y = to_number(x[2]) + x = to_number(x[1]) + end if + gtk_func("gtk_widget_set_size_request",{P,I,I},{ctl,x,y}) + return 1 + end function + + function widget_get_font(atom x) + object layout = get(x,"layout") + object context = gtk_func("pango_layout_get_context",{P},{layout}) + object descr = gtk_func("pango_context_get_font_description",{P},{context}) + return gtk_str_func("pango_font_description_to_string",{P},{descr}) + end function + + function widget_get_allocation(atom obj) + atom al = allocate(32,1) + gtk_func("gtk_widget_get_allocation",{P,P},{obj,al}) + return peek4u({al,4}) + end function + + function widget_set_name(atom ctl, object name) + gtk_proc("gtk_widget_set_name",{P,P},{ctl,name}) + integer x = find(ctl,vslice(registry,1)) + if x > 0 then + registry[x][4] = peek_string(name) + end if + return 1 + end function + + -- This allows specifying a font name, e.g. "Courier bold 12" as a string, + -- instead of a pango font description object; + function widget_set_font(atom x, object fnt) + fnt = gtk_func("pango_font_description_from_string",{P},{fnt}) + gtk_proc("gtk_widget_override_font",{P,P},{x,fnt}) + return 1 + end function + + -- The functions below handle color conversion to/from rgba, + -- as well as supplying easier-to-use method names for setting background + -- and foreground. These methods are only used to set the colors of a widget + -- in the NORMAL state, whereas if you want to set the colors in + -- some other state, such as mouse-over, etc, you use the original + -- set(widget,"override background",STATE,"color") syntax. + + function widget_set_foreground(atom x, object c) -- alias 'color' + return widget_override_color(x,0,c) + end function + + function widget_set_background(atom x, object c) -- alias 'background' + return widget_override_background_color(x,0,c) + end function + + function widget_override_color(atom x, integer state=0, object c) + if atom(c) then + c = text:format("#[:06X]",c) + end if + gtk_proc("gtk_widget_override_color",{P,I,P},{x,state,to_rgba(c)}) + return 1 + end function + + function widget_override_background_color(atom x, integer state=0, object c) + if atom(c) then + c = text:format("#[:06X]",c) + end if + gtk_proc("gtk_widget_override_background_color",{P,I,P},{x,state,to_rgba(c)}) + return 1 + end function + +widget[GtkContainer] = {"gtk_container", +{GtkWidget,GtkBuildable,GObject}, + {"add",{P,P}}, + {"remove",{P,P}}, + {"check_resize",{P}}, + {"foreach",{P,P,P}}, + {"get_children",{P},X}, + {"get_path_for_child",{P,P},S}, + {"set_focus_child",{P,P}}, + {"get_focus_child",{P},P}, + {"set_focus_vadjustment",{P,P}}, + {"get_focus_vadjustment",{P},P,0,GtkAdjustment}, + {"set_focus_hadjustment",{P,P}}, + {"get_focus_hadjustment",{P},P,0,GtkAdjustment}, + {"child_type",{P},I}, + {"forall",{P,P,P}}, + {"set_border",{P,I},-routine_id("set_border")}, + {"set_border_width",{P,I}}, + {"get_border_width",{P},I}, + {"propagate_draw",{P,P,P}}, + {"child_notify",{P,P,S}}, + {"child_notify_by_pspec",{P,P,P}}, -- 3.18 + {"class_install_child_properties",{P,I,P}}, -- 3.18 +"GtkContainer"} + + function set_border(atom cont, integer w) -- alias for 'border_width'; + gtk_proc("gtk_container_set_border_width",{P,I},{cont,w}) + return 1 + end function + +widget[GdkKeymap] = {"gdk_keymap", +{GObject}, + {"new",{},-routine_id("new_keymap")}, + {"get_default",{},-routine_id("new_keymap")}, + {"get_for_display",{P},P,0,GdkKeymap}, + {"get_capslock_state",{P},B}, + {"get_numlock_state",{P},B}, + {"get_modifier_state",{P},I}, + {"get_direction",{P},I}, + {"have_bidi_layouts",{P},B}, + {"lookup_key",{P,P},I}, + {"get_scroll_lock_state",{P,B}}, +"GdkKeymap"} + + function new_keymap(atom disp=0) + if disp=0 then + return gtk_func("gdk_keymap_get_default") + else + return gtk_func("gdk_keymap_get_for_display",{P},P) + end if + end function + +widget[GtkBin] = {"gtk_bin", +{GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"get_child",{P},P}, +"GtkBin"} + +widget[GtkBox] = {"gtk_box", +{GtkContainer,GtkWidget,GtkOrientable,GtkBuildable,GObject}, + {"new",{I,I},P}, + {"pack_start",{P,P,B,B,I}}, + {"pack_end",{P,P,B,B,I}}, + {"set_homogeneous",{P,B}}, + {"get_homogeneous",{P},B}, + {"set_spacing",{P,I}}, + {"get_spacing",{P},I}, + {"reorder_child",{P,P,I}}, + {"query_child_packing",{P,P,B,B,I,I}}, + {"set_child_packing",{P,P,B,B,I,I}}, + {"set_baseline_position",{P,I}}, + {"get_baseline_position",{P},I}, + {"get_center_widget",{P},P,0,GtkWidget}, -- 3.12 + {"set_center_widget",{P,P}}, -- 3.12 +"GtkBox"} + +widget[GtkButtonBox] = {"gtk_button_box", +{GtkBox,GtkContainer,GtkWidget,GtkBuilder,GtkOrientable,GObject}, + {"new",{I},P}, + {"set_layout",{P,I}}, + {"get_layout",{P},I}, + {"set_child_secondary",{P,P,B}}, + {"get_child_secondary",{P,P},B}, + {"set_child_non_homogeneous",{P,P,B}}, + {"get_child_non_homogeneous",{P,P},P}, +"GtkButtonBox"} + +widget[GtkWindowGroup] = {"gtk_window_group", +{GObject}, + {"new",{},P}, + {"add_window",{P,P}}, + {"remove_window",{P,P}}, + {"list_windows",{P},X,0,GList}, + {"get_current_grab",{P},P,0,GtkWidget}, + {"get_current_grab_device",{P,P},P,0,GtkWidget}, +"GtkWindowGroup"} + +-- shortcuts are new in 3.20, inadequate documentation means there's no way to test yet; +widget[GtkShortcutsWindow] = {"gtk_shortcuts_window", +{GtkWindow,GtkBin,GtkContainer,GtkWidget,GObject}, +-- properties: +-- section-name +-- view-name +"GtkShortcutsWindow"} + +widget[GtkShortcutsSection] = {"gtk_shortcuts_section", +{GtkBox,GtkContainer,GtkWidget,GObject}, +-- properties; +-- max-height +-- section-name +-- title +-- view-name +"GtkShortcutsSection"} + +widget[GtkShortcutsGroup] = {"gtk_shortcuts_group", +{GtkBox,GtkContainer,GtkWidget,GObject}, +-- properties; +-- accel-size-group +-- height +-- title +-- title-size-group +-- view +"GtkShortcutsGroup"} + +widget[GtkShortcutsShortcut] = {"gtk_shortcuts_shortcut", +{GtkBox,GtkContainer,GtkWidget,GObject}, +-- properties; +-- accel-size-group +-- accelerator +-- title +-- title-size-group +"GtkShortcutsShortcut"} + +widget[GtkShortcutsGesture] = {"gtk_shortcuts_gesture", +{GtkBox,GtkContainer,GtkWidget,GObject}, +-- properties; +-- icon +-- icon-size-group +-- subtitle +-- title +-- title-size-group +"GtkShortcutsGesture"} + +widget[GtkWindow] = {"gtk_window", +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{I},P}, + {"set_title",{P,S}}, + {"get_title",{P},S}, + {"set_resizable",{P,B}}, + {"get_resizable",{P},B}, + {"get_size",{P,I,I}}, + {"set_size",{P,P},-routine_id("win_set_size")}, -- alias; + {"set_position",{P,P},-routine_id("win_set_pos")}, -- alias + --{"set_position",{P,I}}, -- alias above allows 2 forms of 'position'; + {"set_default",{P,P}}, + {"set_default_size",{P,I,I}}, + {"get_default_size",{P,I,I}}, + {"get_position",{P,I,I}}, + {"add_accel_group",{P,P}}, + {"remove_accel_group",{P,P}}, + {"activate_focus",{P},B}, + {"activate_default",{P},B}, + {"set_modal",{P,B}}, + {"get_modal",{P},B}, + {"set_default_geometry",{P,I,I}}, + {"set_geometry_hints",{P,P,P,I}}, + {"set_gravity",{P,I}}, + {"get_gravity",{P},I}, + {"set_transient_for",{P,P}}, + {"get_transient_for",{P},P,0,GtkWindow}, + {"set_attached_to",{P,P}}, + {"get_attached_to",{P},P,0,GtkWidget}, + {"set_destroy_with_parent",{P,B}}, + {"get_destroy_with_parent",{P},B}, + {"set_hide_titlebar_when_maximized",{P,B}}, + {"get_hide_titlebar_when_maximized",{P},B}, + {"set_screen",{P,P}}, + {"get_screen",{P},P,0,GdkScreen}, + {"is_active",{P},B}, + {"list_toplevels",{P},X,0,GSList}, + {"has_toplevel_focus",{P},B}, + {"add_mnemonic",{P,I,P}}, + {"remove_mnemonic",{P,I,P}}, + {"set_mnemonics_visible",{P,B}}, + {"get_mnemonics_visible",{P},B}, + {"mnemonic_activate",{P,I,I},B}, + {"activate_key",{P,P},B}, + {"propagate_key_event",{P,P},B}, + {"get_focus",{P},P,0,GtkWidget}, + {"set_focus",{P,P}}, + {"set_focus_visible",{P,B}}, + {"get_focus_visible",{P},B}, + {"get_default_widget",{P},P,0,GtkWidget}, + {"set_default",{P,P}}, + {"present",{P}}, + {"present_with_time",{P,P}}, + {"iconify",{P}}, + {"deiconify",{P}}, + {"stick",{P}}, + {"unstick",{P}}, + {"maximize",{P}}, + {"unmaximize",{P}}, + {"fullscreen",{P}}, + {"unfullscreen",{P}}, + {"set_keep_above",{P,B}}, + {"set_keep_below",{P,B}}, + {"begin_resize_drag",{P,I,I,I,I,I}}, + {"begin_move_drag",{P,I,I,I,I}}, + {"set_decorated",{P,B}}, + {"get_decorated",{P},B}, + {"set_deletable",{P,B}}, + {"get_deletable",{P},B}, + {"set_mnemonic_modifier",{P,I}}, + {"get_mnemonic_modifier",{P},I}, + {"set_type_hint",{P,I}}, + {"get_type_hint",{P},I}, + {"set_skip_taskbar_hint",{P,B}}, + {"get_skip_taskbar_hint",{P},B}, + {"set_skip_pager_hint",{P,B}}, + {"get_skip_pager_hint",{P},B}, + {"set_urgency_hint",{P,B}}, + {"get_urgency_hint",{P},B}, + {"set_accept_focus",{P,B}}, + {"get_accept_focus",{P},B}, + {"set_focus_on_map",{P,B}}, + {"get_focus_on_map",{P},B}, + {"set_startup_id",{P,S}}, + {"set_role",{P,S}}, + {"get_role",{P},S}, + {"get_icon",{P},P,0,GdkPixbuf}, + {"get_icon_name",{P},S}, + {"get_icon_list",{P},P,0,GList}, + {"get_default_icon_list",{P},X,0,GList}, + {"get_group",{P},P,0,GtkWindowGroup}, + {"has_group",{P},B}, + {"get_window_type",{P},I}, + {"move",{P,I,I}}, + {"parse_geometry",{P,S},B}, + {"resize",{P,I,I}}, + {"resize_to_geometry",{P,I,I}}, + {"set_has_resize_grip",{P,B}}, + {"get_has_resize_grip",{P},B}, + {"resize_grip_is_visible",{P},B}, -- deprecated 3.14 + {"get_resize_grip_area",{P,P},B}, -- deprecated 3.14 + {"set_titlebar",{P,P}}, -- 3.10 + {"get_titlebar",{P},P,0,GtkWidget}, -- 3.16 + {"set_icon",{P,P},-routine_id("win_set_icon")}, + {"restore",{P},-routine_id("win_restore")}, -- see below; + {"close",{P}}, -- 3.10 + {"set_opacity",{P,D}}, + {"is_maximized",{P},B}, -- 3.12 + {"set_interactive_debugging",{B}}, -- 3.14 + {"fullscreen_on_monitor",{P,P,I}}, -- 3.18 + {"set_application",{P,P}}, + {"get_application",{P},P,0,GtkApplication}, + {"set_cursor",{P,P},-routine_id("win_set_cursor")}, +"GtkWindow"} + + function win_set_size(atom win, object size) + -- allow for WxH format to be passed; + if match("x",size) then size = split(size,'x') end if + if match("{",size) = 1 and match("}",size) = length(size) then + size = size[2..$-1] + size = split(size,',') + end if + set(win,"default_size",size[1],size[2]) + return 1 + end function + + function win_set_pos(atom win, object pos) + if integer(pos) then -- only one integer passed; + gtk_proc("gtk_window_set_position",{P,I},{win,pos}) -- use original call; + return 1 + end if + -- else position is WxH format, so call move instead; + if match("x",pos) then pos = split(pos,'x') end if + if match("{",pos) = 1 and match("}",pos) = length(pos) then + pos = pos[2..$-1] + pos = split(pos,',') + end if + set(win,"move",pos[1],pos[2]) + return 1 + end function + + function win_set_cursor(atom win, object cursor) + atom gdkwin = get(win,"window") + cursor = create(GdkCursor,cursor) + set(gdkwin,"cursor",cursor) + return cursor + end function + + -- this replaces a handy but deprecated GTK function which + -- restores a window to its original size after being resized + -- to fit larger contents; + function win_restore(atom win) + set(win,"hide") + set(win,"unrealize") + gtk_proc("gtk_window_set_position",{P,I},{win,1}) + set(win,"show") + return 1 + end function + + -- manages the creation of window icon from a variety of source formats. + -- this makes life much easier for the programmer. + function win_set_icon(object win, object icon) + object path + + if string(icon) then + path = locate_file(icon)--display(path) + if file_type(path) = 1 then + gtk_proc("gtk_window_set_icon_from_file",{P,P}, + {win,allocate_string(path,1)}) + return 1 + else + gtk_proc("gtk_window_set_icon_name",{P,P}, + {win,allocate_string(icon,1)}) + return 1 + end if + end if + + if sequence(icon) then + gtk_proc("gtk_window_set_icon",{P,P},{win,xpm_to_pixbuf(icon)}) + end if + + if atom(icon) then + if class_id(icon) = GtkImage then + icon = get(icon,"pixbuf") + end if + if class_id(icon) = GdkPixbuf then + gtk_proc("gtk_window_set_icon",{P,P},{win,icon}) + end if + return 1 + end if + + return 0 + end function + +widget[GtkMisc] = {"gtk_misc", -- deprecated 3.14 +{GtkWidget,GtkBuildable,GObject}, + {"set_alignment",{P,F,F}}, + {"get_alignment",{P,F,F}}, + {"set_padding",{P,I,I}}, + {"get_padding",{P,I,I}}, +"GtkMisc"} + +widget[GtkLabel] = {"gtk_label", +{GtkMisc,GtkWidget,GtkBuildable,GObject}, + {"new",{S},P}, + {"new_with_mnemonic",{S},P,0,GtkLabel}, + {"set_text",{P,S}}, + {"set_value",{P,D},-routine_id("lbl_set_value")}, -- convenience, converts # to readable form; + {"get_text",{P},S}, + {"set_markup",{P,S}}, + {"set_text_with_mnemonic",{P,S}}, + {"set_markup_with_mnemonic",{P,S}}, + {"set_pattern",{P,S}}, + {"set_justify",{P,I}}, + {"get_justify",{P},I}, + {"get_attributes",{P},P,0,PangoAttrList}, + {"set_ellipsize",{P,I}}, + {"get_ellipsize",{P},I}, + {"set_width_chars",{P,I}}, + {"get_width_chars",{P},I}, + {"set_max_width_chars",{P,I}}, + {"get_max_width_chars",{P},I}, + {"set_line_wrap",{P,B}}, + {"get_line_wrap",{P},B}, + {"set_line_wrap_mode",{P,I}}, + {"get_layout_offsets",{P,I,I}}, + {"get_mnemonic_keyval",{P},I}, + {"set_selectable",{P,B}}, + {"get_selectable",{P},B}, + {"select_region",{P,I,I}}, + {"get_selection_bounds",{P,I,I},B}, + {"set_mnemonic_widget",{P,P}}, + {"get_mnemonic_widget",{P},P,0,GtkWidget}, + {"get_label",{P},S}, + {"get_layout",{P},P,0,PangoLayout}, + {"get_line_wrap_mode",{P},I}, + {"set_use_markup",{P,B}}, + {"get_use_markup",{P},B}, + {"set_use_underline",{P,B}}, + {"get_use_underline",{P},B}, + {"set_single_line_mode",{P,B}}, + {"get_single_line_mode",{P},B}, + {"set_angle",{P,D}}, + {"get_current_uri",{P},S}, + {"set_track_visited_links",{P,B}}, + {"get_track_visited_links",{P},B}, + {"set_lines",{P,I}}, -- 3.10 + {"get_lines",{P},I}, -- 3.10 + {"get_xalign",{P},F}, -- 3.16 + {"get_yalign",{P},F}, -- 3.16 + {"set_xalign",{P,F}}, -- 3.16 + {"set_yalign",{P,F}}, -- 3.16 +"GtkLabel"} + + function lbl_set_value(atom lbl, atom val) -- provided for convenience; + set(lbl,"text",sprintf("%2.2f",val)) -- convert atom to string for label; + return 1 + end function + +widget[GtkImage] = {"gtk_image", +{GtkMisc,GtkWidget,GtkBuildable,GObject}, + {"new",{P,I,I,I},-routine_id("newImage")}, + {"set_image",{P,P,P},-routine_id("setImage")}, -- not a gtk func + {"set_from_file",{P,S}}, + {"set_from_pixbuf",{P,P}}, + {"set_from_icon_name",{P,S,I}}, + {"set_from_animation",{P,P}}, + {"set_from_gicon",{P,P,I}}, + {"set_from_resource",{P,S}}, + {"set_from_surface",{P,P}}, -- 3.10 + {"clear",{P}}, + {"set_pixel_size",{P,I}}, + {"get_pixel_size",{P},I}, + {"get_pixbuf",{P},P,0,GdkPixbuf}, -- doesn't work! + {"get_animation",{P},P,0,GdkPixbufAnimation}, + {"get_storage_type",{P},I}, + {"get_icon_name",{P},-routine_id("img_get_icon_name")}, +"GtkImage"} + +----------------------------------------------------- + -- create an image from a variety of source formats + ---------------------------------------------------- + function newImage(object icon=0, integer size=6, integer w=0, integer h=0) + + if atom(icon) then + if icon = 0 then + return gtk_func("gtk_image_new") -- just a blank image requested; + else + switch class_id(icon) do + case GdkPixbuf then + icon = gtk_func("gtk_image_new_from_pixbuf",{P},{icon}) + case GIcon then + icon = gtk_func("gtk_image_new_from_gicon",{P,I},{icon,size}) + case CairoSurface_t then + icon = gtk_func("gtk_image_new_from_surface",{P},{icon}) + case else -- do nothing + end switch + end if + return icon + end if + + object theme, icon_info + + if string(icon) then + + if begins("gtk-",icon) then -- from stock (deprecated) + if size = 0 then size = 6 end if + return gtk_func("gtk_image_new_from_icon_name",{P,I}, + {allocate_string(icon,1),size}) -- size is a GTK_ICON_SIZE_ enum; + end if + + if file_exists(canonical_path(icon)) then -- from file + icon = canonical_path(icon) + if h = 0 and w = 0 then -- return at natural size; + return gtk_func("gtk_image_new_from_file",{P}, + {allocate_string(icon,1)}) + else + icon = newPixbuf(icon,w,h,size) -- resize it; + return gtk_func("gtk_image_new_from_pixbuf",{P},{icon}) + end if + end if + + if file_exists(locate_file(icon)) then -- from file + icon = locate_file(icon) + if h = 0 and w = 0 then -- return at natural size; + return gtk_func("gtk_image_new_from_file",{P}, + {allocate_string(icon,1)}) + else + icon = newPixbuf(icon,w,h,size) -- resize it; + return gtk_func("gtk_image_new_from_pixbuf",{P},{icon}) + end if + end if + + if size < 7 then + icon = gtk_func("gtk_image_new_from_icon_name",{P,I},{icon,size}) + else + theme = create(GtkIconTheme) -- get current theme; + icon_info = get(theme,"lookup icon",icon,size) -- get icon details; + icon = get(icon_info,"load icon") -- load selected icon; + return create(GtkImage,icon) + end if + + end if + + return icon + end function + + ----------------------------------------------------------------------------------- + function setImage(atom img, object icon, integer size=0) + ----------------------------------------------------------------------------------- + + if size = 0 then + size = get(img,"pixel size") + end if + + if string(icon) then + + if file_exists(canonical_path(icon)) then -- from file + set(img,"from file",icon) + set(img,"pixel size",size) + return img + end if + + if begins("gtk-",icon) then -- from stock (deprecated) + set(img,"from stock",icon) + return img + end if + + set(img,"from icon name",icon) + return img + + end if + return img + end function + + function img_get_icon_name(atom img) + atom name = allocate(8), size = allocate(8) + atom fn = define_proc("gtk_image_get_icon_name",{P,P,P}) + c_proc(fn,{img,name,size}) + if name > 0 then + return {peek_string(peek4u(name)),peek4u(size)} + else return -1 + end if + end function + +widget[GdkCursor] = {"gdk_cursor", +{GObject}, + {"new",{P,P,P},-routine_id("newCursor")}, + {"get_display",{P},P,0,GdkDisplay}, + {"get_image",{P},P,0,GdkPixbuf}, + {"get_surface",{P,D,D},P,0,CairoSurface_t}, + {"get_cursor_type",{P},I}, +"GdkCursor"} + + -- manages cursor creation from a variety of sources + function newCursor(object a, object b=0, integer c=0) + atom disp = gtk_func("gdk_display_get_default") + + if string(a) then + return gtk_func("gdk_cursor_new_from_name",{P,P},{disp,allocate_string(a,1)}) + end if + + if class_id(a) = GdkPixbuf then + return gtk_func("gdk_cursor_new_from_pixbuf",{P,P,I,I},{disp,a,b,c}) + end if + + if class_id(a) = CairoSurface_t then + return gtk_func("gdk_cursor_new_from_surface",{P,P,D,D},{disp,a,b,c}) + end if + + if integer(a) then + return gtk_func("gdk_cursor_new_for_display",{P,I},{disp,a}) + end if + + end function + +widget[GdkWindow] = {"gdk_window", +{GObject}, + {"new",{P,P,I},P}, + {"set_title",{P,S}}, + {"destroy",{P}}, + {"get_width",{P},I}, + {"get_height",{P},I}, + {"get_position",{P,I,I}}, + {"get_device_position",{P,P,P,P,P},P,0,GdkWindow}, + {"get_device_position_double",{P,P,P,P,P},P,0,GdkWindow}, + {"get_origin",{P,I,I}}, + {"get_parent",{P},P,0,GdkWindow}, + {"get_toplevel",{P},P,0,GdkWindow}, + {"get_children",{P},A,0,GList}, + {"get_children_with_user_data",{P,P},A,0,GList}, + {"peek_children",{P},P,0,GList}, + {"get_events",{P},I}, + {"set_events",{P,I}}, + {"set_icon_name",{P,S}}, + {"set_transient_for",{P,P}}, + {"get_root_origin",{P,I,I}}, + {"get_root_coords",{P,I,I,P,P}}, + {"get_frame_extents",{P,P}}, + {"set_modal_hint",{P,B}}, + {"get_modal_hint",{P},B}, + {"set_type_hint",{P,I}}, + {"get_type_hint",{P},I}, + {"get_window_type",{P},I}, + {"get_display",{P},P,0,GdkDisplay}, + {"get_screen",{P},P,0,GdkScreen}, + {"get_visual",{P},P,0,GdkVisual}, + {"show",{P}}, + {"show_unraised",{P}}, + {"hide",{P}}, + {"is_destroyed",{P},B}, + {"is_visible",{P},B}, + {"is_viewable",{P},B}, + {"is_input_only",{P},B}, + {"is_shaped",{P},B}, + {"set_composited",{P,B}}, -- deprecated 3.16 + {"get_composited",{P},B}, -- deprecated 3.16 + {"set_opacity",{P,D}}, + {"set_cursor",{P,P}}, + {"get_cursor",{P},P}, + {"get_state",{P},I}, + {"withdraw",{P}}, + {"iconify",{P}}, + {"deiconify",{P}}, + {"stick",{P}}, + {"unstick",{P}}, + {"maximize",{P}}, + {"unmaximize",{P}}, + {"fullscreen",{P}}, + {"unfullscreen",{P}}, + {"set_fullscreen_mode",{P,I}}, + {"get_fullscreen_mode",{P},I}, + {"set_opacity",{P,D}}, + {"scroll",{P,I,I}}, + {"move_region",{P,P,I,I}}, + {"shape_combine_region",{P,P,I,I}}, + {"set_child_shapes",{P}}, + {"merge_child_shapes",{P}}, + {"input_shape_combine_region",{P,P,I,I}}, + {"set_child_input_shapes",{P}}, + {"merge_child_input_shapes",{P}}, + {"get_geometry",{P,I,I,I,I}}, + {"set_background_rgba",{P,P}}, + {"set_fullscreen_mode",{P,I}}, + {"get_fullscreen_mode",{P},I}, + {"get_scale_factor",{P},I}, + {"set_opaque_region",{P,P}}, + {"get_effective_parent",{P},P,0,GdkWindow}, + {"get_effective_toplevel",{P},P,0,GdkWindow}, + {"beep",{}}, + {"focus",{P,I}}, + {"restack",{P,P,B}}, + {"raise",{P}}, + {"lower",{P}}, + {"set_keep_above",{P,B}}, + {"set_keep_below",{P,B}}, + {"reparent",{P,P,I,I}}, + {"ensure_native",{P},B}, + {"has_native",{P},B}, + {"register_dnd",{P}}, + {"move",{P,I,I}}, + {"scroll",{P,I,I}}, + {"resize",{P,I,I}}, + {"move_resize",{P,I,I,I,I}}, + {"move_region",{P,P,I,I}}, + {"begin_resize_drag",{P,I,I,I,I,I}}, + {"begin_resize_drag_for_device",{P,I,P,I,I,I,I}}, + {"begin_move_drag",{P,I,I,I,I}}, + {"begin_move_drag_for_device",{P,P,I,I,I,I}}, + {"show_window_menu",{P,P},B}, + {"create_gl_context",{P,P},P,0,GdkGLContext}, -- 3.16 + {"mark_paint_from_clip",{P,P}}, -- 3.16 + {"get_clip_region",{P},P,0,CairoRegion_t}, + {"begin_paint_rect",{P,P}}, + {"begin_paint_region",{P,P}}, + {"end_paint",{P}}, + {"set_opaque_region",{P,P}}, + {"get_visible_region",{P},P,0,CairoRegion_t}, + {"set_invalidate_handler",{P,P}}, + {"invalidate_rect",{P,P,B}}, + {"invalidate_region",{P,P,B}}, + {"invalidate_maybe_recurse",{P,P,P,P}}, + {"get_update_area",{P},P,0,CairoRegion_t}, + {"freeze_updates",{P}}, + {"thaw_updates",{P}}, + {"process_all_updates",{P}}, + {"process_updates",{P,B}}, + {"get_frame_clock",{P},P,0,GdkFrameClock}, + {"set_user_data",{P,P}}, + {"get_user_data",{P,P}}, + {"set_override_redirect",{P,B}}, + {"set_accept_focus",{P,B}}, + {"get_accept_focus",{P},B}, + {"set_focus_on_map",{P,B}}, + {"get_focus_on_map",{P},B}, + {"add_filter",{P,P,P}}, + {"remove_filter",{P,P,P}}, + {"set_background_pattern",{P,P}}, + {"get_background_pattern",{P},P,0,CairoPattern_t}, + {"set_geometry_hints",{P,P,I}}, + {"set_functions",{P,I}}, + {"get_pass_through",{P},B}, + {"set_pass_through",{P,B}}, + {"create_gl_context",{P,P},P,0,GdkGLContext}, + {"mark_paint_from_clip",{P,P}}, +"GdkWindow"} + +widget[GdkPixbuf] = {"gdk_pixbuf", +{GObject}, + {"new",{P,I,I,I},-routine_id("newPixbuf")}, + {"get_from_window",{P,I,I,I,I},P,0,GdkPixbuf}, + {"get_from_surface",{P,I,I,I,I},P,0,GdkPixbuf}, + {"flip",{P,I},P,0,GdkPixbuf}, + {"rotate_simple",{P,I},P,0,GdkPixbuf}, + {"scale_simple",{P,I,I,I},P,0,GdkPixbuf}, + {"add_alpha",{P,B,I,I,I},P,0,GdkPixbuf}, + {"copy_area",{P,I,I,I,I,P,I,I}}, + {"apply_embedded_orientation",{P},P,0,GdkPixbuf}, + {"fill",{P,P}}, + {"get_n_channels",{P},I}, + {"get_has_alpha",{P},B}, + {"get_colorspace",{P},I}, + {"get_bits_per_sample",{P},I}, + {"get_pixels_with_length",{P,I},P}, + {"get_width",{P},I}, + {"get_height",{P},I}, + {"get_size",{P},-routine_id("getPixbufSize")}, + {"get_rowstride",{P},I}, + {"get_byte_length",{P},I}, + {"get_option",{P,S},S}, + {"saturate_and_pixelate",{P,P,F,B},0,GdkPixbuf}, + {"composite_color_simple",{}},-- Cannot implement, use gtk_func if required. + {"save",{P,P,P,P},-routine_id("pb_save")}, + {"get_file_info",{P,S},-routine_id("pb_get_file_info")}, + {"get_format",{P,S},-routine_id("pb_get_format")}, +"GdkPixbuf"} + + -- creates a pixbuf from a variety of sources + + function newPixbuf(object name, integer w=0, integer h=0, atom ratio=0) + ----------------------------------------------------------------------- + atom err = allocate(32,1) err = 0 + object path=allocate_string("gtk-missing-image",1) + object pix = 0 + + if string(name) then + + path = canonical_path(locate_file(name)) + + if file_exists(path) then + ifdef PIXBUF then + display("PIXBUF from file: []",{abbreviate_path(path)},0) + end ifdef + path = allocate_string(path,1) + goto "build" + end if + + if has_icon(name) then + path = icon_info(name) + ifdef PIXBUF then + display("PIXBUF from icon: []",{filename(path[3])},0) + end ifdef + if string(path[3]) then + path = allocate_string(path[3],1) + else + path = "!" + end if + goto "build" + else return 0 + end if + + else + ifdef PIXBUF then + display("PIXBUF from atom: [] []",{name,peek_string(name)},0) + end ifdef + end if -- string name; + + label "build" + + if h = 0 and w = 0 then -- return at original size; + ifdef PIXBUF then display("Orig size") end ifdef + pix = gtk_func("gdk_pixbuf_new_from_file",{P,P},{path,err}) + + else -- if one or other dimension given, scale it, otherwise size it; + if w > 0 and h = 0 then h = -1 end if + if w = 0 and h > 0 then w = -1 end if + ifdef PIXBUF then display("\t SCALE []x[] []",{w,h,ratio}) end ifdef + pix = gtk_func("gdk_pixbuf_new_from_file_at_scale",{P,I,I,B,P},{path,w,h,ratio,err}) + end if + + ifdef PIXBUF_ERR then + if pix = 0 then + display("CAUTION: cannot create pixbuf from []",{peek_string(path)}) + end if + end ifdef + + return pix + end function + + -- save a pixbuf in various formats based on file extension(.png, .jpg, etc) + function pb_save(atom handle, object fn, object ft, object params = 0) + if string(fn) then fn = allocate_string(fn,1) end if + if string(ft) then ft = allocate_string(ft,1) end if + if string(params) then + params = split(params,'=') + for i = 1 to length(params) do + params[i] = allocate_string(params[i],1) + end for + end if + + atom err = allocate(8,1) err = 0 + if atom(params) then + return gtk_func("gdk_pixbuf_save",{P,P,P,P,P},{handle,fn,ft,err,0}) + else + return gtk_func("gdk_pixbuf_save",{P,P,P,P,P,P,P},{handle,fn,ft,err,params[1],params[2],0}) + end if + end function + + function getPixbufSize(object pb) + return {get(pb,"width"),get(pb,"height")} + end function + + function pb_get_file_info(atom pb, object name) + atom w = allocate(8,1), h = allocate(8,1) + object fmt = gtk_func("gdk_pixbuf_get_file_info",{P,P,P}, + {name,w,h}) + return {fmt,peek4u(w),peek4u(h)} + end function + + function pb_get_format(atom pb, object name) + object fmt = pb_get_file_info(pb,name) + return fmt + end function + + export function pixbuf_formats() + object fmts = gtk_func("gdk_pixbuf_get_formats") + register(fmts,GSList) + return unpack_gs_str_list(fmts) + end function + +widget[GdkPixbufFormat] = {"gdk_pixbuf_format", +{GObject}, + {"get_name",{P},S}, + {"get_description",{P},S}, + {"get_mime_types",{P},A}, + -- {"extensions",{P},P}, -- error + {"is_writable",{P},B}, + {"is_scalable",{P},B}, + {"is_disabled",{P},B}, + {"set_disabled",{P,B}}, + {"get_license",{P},S}, +"GdkPixbufFormat"} + +widget[GtkDialog] = {"gtk_dialog", +{GtkWindow,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"run",{P},I}, + {"get_action_area",{P},P,0,GtkBox}, -- deprecated 3.12 + {"get_content_area",{P},P,0,GtkBox}, + {"response",{P,I}}, + {"add_button",{P,S,I},P,0,GtkButton}, + {"add_action_widget",{P,P,I}}, + {"set_default_response",{P,I}}, + {"set_response_sensitive",{P,I,B}}, + {"get_response_for_widget",{P,P},I}, + {"get_widget_for_response",{P,I},P,0,GtkWidget}, + {"get_header_bar",{P},P,0,GtkContainer},-- GTK 3.12 +"GtkDialog"} + +widget[GtkMessageDialog] = {"gtk_message_dialog", +{GtkDialog,GtkWindow,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{P,I,I,I,S,S},P}, + {"new_with_markup",{P,I,I,I,S,S},P}, + {"set_markup",{P,S}}, + {"set_image",{P,P}}, -- deprecated 3.12 + {"get_image",{P},P,0,GtkImage}, -- deprecated 3.12 + {"format_secondary_text",{P,S,S}}, + {"format_secondary_markup",{P,S,S}}, + {"get_message_area",{P},P,0,GtkContainer}, +"GtkMessageDialog"} + +widget[GtkSeparator] = {"gtk_separator", +{GtkWidget,GObject,GtkBuildable,GtkOrientable}, + {"new",{I},P}, +"GtkSeparator"} + +widget[GtkEditable] = {"gtk_editable", +{0}, + {"select_region",{P,I,I}}, + {"get_selection_bounds",{P,I,I}}, + {"insert_text",{P,S,I,I}}, + {"delete_text",{P,I,I}}, + {"get_chars",{P,I,I},S}, + {"cut_clipboard",{P}}, + {"copy_clipboard",{P}}, + {"paste_clipboard",{P}}, + {"delete_selection",{P}}, + {"set_position",{P,I}}, + {"get_position",{P},I}, + {"set_editable",{P,B}}, + {"get_editable",{P},B}, +"GtkEditable"} + +widget[GtkTextIter] = {"gtk_text_iter", +{GObject}, + {"get_buffer",{P},P,0,GtkTextBuffer}, + {"copy",{P},P,0,GtkTextIter}, + {"free",{P}}, + {"get_offset",{P},I}, + {"get_line",{P},I}, + {"get_line_offset",{P},I}, + {"get_line_index",{P},I}, + {"get_visible_line_index",{P},I}, + {"get_visible_line_offset",{P},I}, + {"get_char",{P},I}, + {"get_slice",{P,P},S}, + {"get_text",{P,P},S}, + {"get_visible_slice",{P,P},S}, + {"get_visible_text",{P,P},S}, + {"get_pixbuf",{P},P,0,GdkPixbuf}, + {"get_marks",{P},X,0,GSList}, + {"get_toggled_tags",{P,B},X,0,GSList}, + {"get_child_anchor",{P},P,0,GtkTextChildAnchor}, + {"begins_tag",{P,P},B}, + {"ends_tag",{P,P},B}, + {"toggles_tag",{P,P},B}, + {"has_tag",{P,P},B}, + {"get_tags",{P},X,0,GSList}, + {"editable",{P,B},B}, + {"can_insert",{P,B},B}, + {"starts_word",{P},B}, + {"ends_word",{P},B}, + {"inside_word",{P},B}, + {"starts_line",{P},B}, + {"ends_line",{P},B}, + {"starts_sentence",{P},B}, + {"ends_sentence",{P},B}, + {"inside_sentence",{P},B}, + {"is_cursor_position",{P},B}, + {"get_chars_in_line",{P},I}, + {"get_bytes_in_line",{P},I}, + {"get_attributes",{P,P},B}, + {"get_language",{P},P,0,PangoLanguage}, + {"is_end",{P},B}, + {"is_start",{P},B}, + {"forward_char",{P},B}, + {"backward_char",{P},B}, + {"forward_chars",{P,I},B}, + {"backward_chars",{P,I},B}, + {"forward_line",{P},B}, + {"backward_line",{P},B}, + {"forward_lines",{P,I},B}, + {"backward_lines",{P,I},B}, + {"forward_word_ends",{P,I},B}, + {"backward_word_starts",{P,I},B}, + {"forward_word_ends",{P},B}, + {"backward_word_start",{P},B}, + {"forward_cursor_position",{P},B}, + {"backward_cursor_position",{P},B}, + {"forward_cursor_positions",{P,I},B}, + {"backward_cursor_positions",{P,I},B}, + {"backward_sentence_start",{P},B}, + {"backward_sentence_starts",{P,I},B}, + {"forward_sentence_end",{P},B}, + {"forward_sentence_ends",{P,I},B}, + {"forward_visible_word_ends",{P,I},B}, + {"backward_visible_word_starts",{P,I},B}, + {"forward_visible_word_end",{P},B}, + {"backward_visible_word_start",{P},B}, + {"forward_visible_cursor_position",{P},B}, + {"backward_visible_cursor_position",{P},B}, + {"forward_visible_cursor_positions",{P,I},B}, + {"backward_visible_cursor_positions",{P,I},B}, + {"forward_visible_line",{P},B}, + {"backward_visible_line",{P},B}, + {"forward_visible_lines",{P,I},B}, + {"backward_visible_lines",{P,I},B}, + {"set_offset",{P,I}}, + {"set_line",{P,I}}, + {"set_line_offset",{P,I}}, + {"set_line_index",{P,I}}, + {"set_visible_line_index",{P,I}}, + {"set_visible_line_offset",{P,I}}, + {"forward_to_end",{P}}, + {"forward_to_line_end",{P},B}, + {"forward_to_tag_toggle",{P,P},B}, + {"backward_to_tag_toggle",{P,P},B}, + {"forward_find_char",{P,P,P,P},B}, + {"backward_find_char",{P,P,P,P},B}, + {"forward_search",{P,S,I,P,P,P},B}, + {"backward_search",{P,S,I,P,P,P},B}, + {"equal",{P,P},B}, + {"compare",{P,P},I}, + {"in_range",{P,P,P},B}, + {"order",{P,P}}, + {"starts_tag",{P,P},B}, -- 3.20 +"GtkTextIter"} + +widget[GtkEntry] = {"gtk_entry", +{GtkWidget,GtkEditable,GtkCellEditable,GtkBuildable,GObject}, + {"new",{},P}, + {"get_buffer",{P},P,0,GtkEntryBuffer}, + {"set_buffer",{P,P}}, + {"set_text",{P,S}}, + {"set_value",{P,D},-routine_id("entry_set_value")}, -- not GTK, a convenience func; + {"get_text",{P},S}, + {"get_value",{P},-routine_id("entry_get_value")}, -- not GTK, a convenience func; + {"get_text_length",{P},I}, + {"get_text_area",{P,P}}, + {"set_visibility",{P,B}}, + {"get_visibility",{P},B}, + {"set_invisible_char",{P,I}}, + {"get_invisible_char",{P},I}, + {"unset_invisible_char",{P}}, + {"set_max_length",{P,I}}, + {"get_max_length",{P},I}, + {"set_activates_default",{P,B}}, + {"get_activates_default",{P},B}, + {"set_has_frame",{P,B}}, + {"get_has_frame",{P},B}, + {"set_width_chars",{P,I}}, + {"get_width_chars",{P},I}, + {"set_alignment",{P,F}}, + {"get_alignment",{P},F}, + {"set_placeholder_text",{P,S}}, -- GTK 3.2+ + {"get_placeholder_text",{P},S}, -- GTK 3.2+ + {"set_overwrite_mode",{P,B}}, + {"get_overwrite_mode",{P},B}, + {"get_layout",{P},P,0,PangoLayout}, + {"get_layout_offsets",{P,I,I}}, + {"set_completion",{P,P}}, + {"get_completion",{P},P,0,GtkEntryCompletion}, + {"set_progress_fraction",{P,D}}, + {"set_progress_pulse_step",{P,D}}, + {"progress_pulse",{P}}, + {"set_icon_from_stock",{P,I,S}}, -- deprecated 3.10 + {"set_icon_from_pixbuf",{P,I,P}}, + {"set_icon_from_icon_name",{P,I,S}}, + {"set_icon_from_gicon",{P,I,P}}, + {"get_icon_storage_type",{P,I},I}, + {"get_icon_pixbuf",{P,I},P,0,GdkPixbuf}, + {"get_icon_name",{P,I},S}, + {"get_icon_area",{P,I,I}}, + {"get_icon_gicon",{P,I},P,0,GIcon}, + {"set_icon_activatable",{P,I,B}}, + {"set_icon_sensitive",{P,I,B}}, + {"get_icon_at_pos",{P,I,I},I}, + {"set_icon_tooltip_text",{P,I,S}}, + {"get_icon_tooltip_text",{P,I},S}, + {"set_icon_tooltip_markup",{P,I,S}}, + {"get_icon_tooltip_markup",{P,I},S}, + {"set_tabs",{P,P}}, -- 3.10 + {"get_tabs",{P},P,0,PangoTabArray}, -- 3.10 + {"get_max_width_chars",{P},I}, -- 3.12 + {"set_max_width_chars",{P,I}}, -- 3.12 + {"im_context_filter_keypress",{P,I},B}, + {"grab_focus_without_selecting",{P}}, --3.16 +"GtkEntry"} + + function entry_get_value(atom x) -- retrieve input text as a number; + object txt = get(x,"text") + return to_number(txt) + end function + + function entry_set_value(atom x, atom v) -- convert number to text equivalent; + if integer(v) then + set(x,"text",sprintf("%d",v)) + else + set(x,"text",sprintf("%2.2f",v)) + end if + return 1 + end function + +widget[GtkSpinButton] = {"gtk_spin_button", +{GtkEntry,GtkWidget,GtkEditable,GtkCellEditable,GtkOrientable,GtkBuildable,GObject}, + {"set_adjustment",{P,P}}, + {"get_adjustment",{P},P,0,GtkAdjustment}, + {"set_digits",{P,I}}, + {"get_digits",{P},I}, + {"set_range",{P,D,D}}, + {"get_range",{P,D,D}}, + {"set_value",{P,D}}, + {"get_value",{P},-routine_id("getSpinVal")}, + {"get_value_as_int",{P},I}, + {"set_update_policy",{P,I}}, + {"set_numeric",{P,B}}, + {"get_numeric",{P},B}, + {"set_wrap",{P,B}}, + {"get_wrap",{P},B}, + {"spin",{P,I,D}}, + {"update",{P}}, + {"get_increments",{P,D,D}}, + {"set_snap_to_ticks",{P,B}}, + {"get_snap_to_ticks",{P},B}, + {"configure",{P,P,D,I}}, + {"new",{D,D,D},-routine_id("newSpinButton")}, +"GtkSpinButton"} + + -- create a spin button from an ajustment object or from a range of values + + function newSpinButton(atom a=0, atom b=0, atom c=0) + ---------------------------------------------------- + atom sb = 0 + if a+b+c = 0 then a = create(GtkAdjustment,0,0,100,1) end if + if class_id(a) = GtkAdjustment then + sb = gtk_func("gtk_spin_button_new",{P,D,I},{a,b,c}) + else + sb = gtk_func("gtk_spin_button_new_with_range",{D,D,D},{a,b,c}) + end if + return sb + end function + + function getSpinVal(atom spin) + ------------------------------ + object range = get(spin,"range") + atom fn = define_func("gtk_spin_button_get_value",{P},D) + atom val = c_func(fn,{spin}) + val = math:ensure_in_range(val,range) + return val + end function + +widget[GtkOrientable] = {"gtk_orientable", +{GObject}, + {"set_orientation",{P,I}}, + {"get_orientation",{P},I}, +"GtkOrientable"} + +widget[GtkRange] = {"gtk_range", +{GtkWidget,GtkOrientable,GtkBuildable,GObject}, + {"set_fill_level",{P,D}}, + {"get_fill_level",{P},D}, + {"set_restrict_to_fill_level",{P,B}}, + {"get_restrict_to_fill_level",{P},B}, + {"set_show_fill_level",{P,B}}, + {"get_show_fill_level",{P},B}, + {"set_adjustment",{P,P}}, + {"get_adjustment",{P},P}, + {"set_inverted",{P,B}}, + {"get_inverted",{P},B}, + {"set_value",{P,D}}, + {"get_value",{P},D}, + {"set_increments",{P,D,D}}, + {"set_range",{P,D,D}}, + {"set_round_digits",{P,I}}, + {"get_round_digits",{P},I}, + {"set_lower_stepper_sensitivity",{P,I}}, + {"get_lower_stepper_sensitivity",{P},I}, + {"set_upper_stepper_sensitivity",{P,I}}, + {"get_upper_stepper_sensitivity",{P},I}, + {"set_flippable",{P,B}}, + {"get_flippable",{P},B}, + {"set_min_slider_size",{P,I}}, + {"get_min_slider_size",{P},I}, + {"get_slider_range",{P,I,I}}, + {"set_slider_size_fixed",{P,B}}, + {"get_slider_size_fixed",{P},B}, +"GtkRange"} + +widget[GtkScale] = {"gtk_scale", +{GtkRange,GtkWidget,GtkOrientable,GtkBuildable,GObject}, + {"set_digits",{P,I}}, + {"get_digits",{P},I}, + {"set_draw_value",{P,B}}, + {"get_draw_value",{P},B}, + {"set_has_origin",{P,B}}, + {"get_has_origin",{P},B}, + {"set_value_pos",{P,I}}, + {"get_value_pos",{P},I}, + {"get_layout",{P},P,0,PangoLayout}, + {"get_layout_offsets",{P,I,I}}, + {"add_mark",{P,D,I,S}}, + {"clear_marks",{P}}, + {"new",{P,P,P,P},-routine_id("newScale")}, +"GtkScale"} + + -- create scale from range or adjustment; + function newScale(integer orient, atom min=0, atom max=0, atom step=0) + if min+max+step = 0 then + return gtk_func("gtk_scale_new",{I,P},{orient,0}) + end if + if class_id(min) = GtkAdjustment then + return gtk_func("gtk_scale_new",{I,P},{orient,min}) + else + return gtk_func("gtk_scale_new_with_range",{I,D,D,D},{orient,min,max,step}) + end if + end function + +widget[GTimeout] = {"g_timeout", +{0}, + {"new",{I,P,P},-routine_id("newTimeout")}, + {"add",{I,P,P},-routine_id("newTimeout")}, +"GTimeout"} + + function newTimeout(integer ms, atom fn, atom data) + return gtk_func("g_timeout_add",{I,P,P},{ms,fn,data}) + end function + +widget[GIdle] = {"g_idle", +{0}, + {"new",{P,P},-routine_id("newIdle")}, + {"add",{P,P},-routine_id("newIdle")}, +"GIdle"} + + function newIdle(atom fn, atom data) + return gtk_func("g_idle_add",{P,P},{fn,data}) + end function + +widget[GNotification] = {"g_notification", +{0}, + {"new",{S},P}, + {"set_title",{P,S}}, + {"set_body",{P,S}}, + {"set_icon",{P,P}}, + --{"set_priority",{P,I}}, error + {"set_default_action",{P,S}}, + {"add_button",{P,S,S}}, + {"add_button_with_target_value",{P,S,S,I}}, + {"set_default_action_and_target_value",{P,S,I}}, +"GNotification"} + +widget[GApplication] = {"g_application", +{0}, + {"new",{S,I},P}, + {"get_id",{P},S}, + {"set_id",{P,S}}, + {"id_is_valid",{P,S},B}, + {"get_inactivity_timeout",{P},I}, + {"set_inactivity_timeout",{P,I}}, + {"get_flags",{P},I}, + {"set_flags",{P,I}}, + {"get_resource_base_path",{P},S}, + {"set_resource_base_path",{P,S}}, + {"get_dbus_connection",{P},P}, + {"get_dbus_object_path",{P},S}, + {"get_is_registered",{P},B}, + {"get_is_remote",{P},B}, + {"register",{P,P,P},B}, + {"hold",{P}}, + {"release",{P}}, + {"quit",{P}}, + {"activate",{P}}, + {"open",{P,P,I,I}}, + {"send_notification",{P,S,P}}, + {"withdraw_notification",{P,S}}, + {"run",{P,I,P},I}, + {"add_main_option_entries",{P,P}}, + {"add_option_group",{P,P}}, + {"add_main_option",{P,S,S,I,I,S,S}}, + {"set_default",{P}}, + {"mark_busy",{P}}, + {"unmark_busy",{P}}, + {"get_is_busy",{P},B}, + {"bind_busy_property",{P,P,S}}, + {"unbind_busy_property",{P,P,S}}, +"GApplication"} + +widget[GAppInfo] = {"g_app_info", +{0}, + {"get_name",{P},S}, + {"get_display_name",{P},S}, + {"get_description",{P},S}, + {"get_executable",{P},S}, + {"get_commandline",{P},S}, + {"get_icon",{P},P,0,GIcon}, + {"launch",{P,P,P,P},B}, + {"supports_files",{P},B}, + {"supports_uris",{P},B}, + {"launch_uris",{P,P,P,P},B}, + {"should_show",{P},B}, + {"can_delete",{P},B}, + {"delete",{P},B}, + {"set_as_default_for_type",{P,S,P},B}, + {"set_as_default_for_extension",{P,S,P},B}, + {"add_supports_type",{P,S,P},B}, + {"can_remove_supports_type",{P},B}, + {"remove_supports_type",{P,S,P},B}, + {"get_all",{},P,0,GList}, +"GAppInfo"} + +widget[GFile] = {"g_file", +{GObject}, + {"new",{P},-routine_id("newGFile")}, + {"get_parse_name",{P},S}, + {"parse_name",{S},P}, + {"equal",{P,P},B}, + {"get_basename",{P},S}, + {"get_path",{P},S}, + {"get_uri",{P},S}, + {"get_parse_name",{P},S}, + {"get_parent",{P},P,0,GFile}, + {"has_parent",{P,P},B}, + {"get_child",{P,S},P,0,GFile}, + {"get_child_for_display_name",{P,S,P},P,0,GFile}, + {"has_prefix",{P,P},B}, + {"get_relative_path",{P,P},S}, + {"resolve_relative_path",{P,S},P,0,GFile}, + {"is_native",{P},B}, + {"has_uri_scheme",{P,S},B}, + {"get_uri_scheme",{P},S}, + {"read",{P,P,P},P,0,GFileInputStream}, +"GFile"} + + -- create a GFile from a path or uri + function newGFile(object s) + if file_exists(canonical_path(locate_file(s))) then + return gtk_func("g_file_new_for_path",{P}, + {allocate_string(canonical_path(locate_file(s)),1)}) + else + return gtk_func("g_file_new_for_uri",{P}, + {allocate_string(s,1)}) + end if + return 0 + end function + +widget[GIcon] = {"g_icon", +{GObject}, + {"hash",{P},I}, + {"equal",{P,P},B}, + {"to_string",{P},S}, + {"new_for_string",{S,P},P}, + {"new",{S},-routine_id("newGIcon")}, + {"serialize",{P},P}, + {"deserialize",{P},P,0,GIcon}, +"GIcon"} + + function newGIcon(object s) + if string(s) then s = allocate_string(s,1) end if + return gtk_func("g_icon_new_for_string",{P,P},{s,0}) + end function + +widget[GFileIcon] = {"g_file_icon", +{GIcon,GObject}, + {"new",{P},P}, + {"get_file",{P},P}, +"GFileIcon"} + +widget[GFileInfo] = {"g_file_info", +{GObject}, + {"new",{},P}, + {"get_name",{P},S}, + {"get_display_name",{P},S}, + {"get_edit_name",{P},S}, + {"get_icon",{P},P,0,GIcon}, + {"get_symbolic_icon",{P},P,0,GIcon}, + {"get_content_type",{P},S}, + {"get_size",{P},I}, + {"get_modification_time",{P,P}}, + {"get_symlink_target",{P},S}, + {"get_etag",{P},S}, + {"get_sort_order",{P},I}, + {"get_deletion_date",{P},P,0,GDateTime}, + {"set_is_hidden",{P,B}}, + {"set_is_symlink",{P,B}}, + {"set_name",{P,S}}, + {"set_display_name",{P,S}}, + {"set_edit_name",{P,S}}, + {"set_icon",{P,P}}, + {"set_symbolic_icon",{P,P}}, + {"set_content_type",{P,S}}, + {"set_size",{P,I}}, +"GFileInfo"} + +widget[GList] = {"g_list", +{GObject}, + {"new",{},-routine_id("newGList")}, + {"append",{P,P},P}, + {"length",{P},I}, + {"nth_data",{P,I},P}, +"GList"} + + function newGList() + atom x = allocate(64) x = 0 -- keep; + return x + end function + +widget[GSList] = {"g_slist", +{GObject}, + {"length",{P},I}, +"GSList"} + + object temp_list + + export function unpack_gs_str_list(atom gs) + if gs = 0 then return 1 end if + atom fn = call_back(routine_id("gs_str_each")) + temp_list = {} + gtk_proc("g_slist_foreach",{P,P,P},{gs,fn,0}) + return temp_list + end function + + function gs_str_each(object x) + if x > 0 then + temp_list = append(temp_list,peek_string(x)) + end if + return 1 + end function + + export function unpack_gs_atom_list(object gs) + temp_list = {} + atom fn = call_back(routine_id("gs_atom_each")) + gtk_proc("g_slist_foreach",{P,P,P},{gs,fn,0}) + return temp_list + end function + + function gs_atom_each(object x) + temp_list = append(temp_list,x) + return 1 + end function + +widget[GdkDisplay] = {"gdk_display", +{GObject}, + {"new",{},-routine_id("newGdkDisplay")}, -- alias get_default; + {"open",{S},P,0,GdkDisplay}, + {"get_name",{P},S}, + {"get_n_screens",{P},I}, + {"get_screen",{P,I},P,0,GdkScreen}, + {"get_default_screen",{P},P,0,GdkScreen}, + {"get_device_manager",{P},P,0,GdkDeviceManager}, + {"device_is_grabbed",{P,P},B}, + {"beep",{P}}, + {"sync",{P}}, + {"flush",{P}}, + {"close",{P}}, + {"is_closed",{P},B}, + {"get_event",{P},P,0,GdkEvent}, + {"peek_event",{P},P,0,GdkEvent}, + {"put_event",{P,P}}, + {"has_pending",{P},B}, + {"set_double_click_time",{P,I}}, + {"set_double_click_distance",{P,I}}, + {"supports_cursor_color",{P},B}, + {"supports_cursor_alpha",{P},B}, + {"get_default_cursor_size",{P},I}, + {"get_maximal_cursor_size",{P,I,I}}, + {"get_default_group",{P},P,0,GdkWindow}, + {"supports_selection_notification",{P},B}, + {"request_selection_notification",{P,P},B}, + {"supports_clipboard_persistence",{P},B}, + {"store_clipboard",{P,P,I,P,I}}, + {"supports_shapes",{P},B}, + {"supports_input_shapes",{P},B}, + {"supports_composite",{P},B}, -- deprecated 3.16 + {"get_app_launch_context",{P},P,0,GtkAppLaunchContext}, + {"notify_startup_complete",{P,S}}, +"GdkDisplay"} + + function newGdkDisplay() -- alias; + return gtk_func("gdk_display_get_default",{}) + end function + +widget[GdkDevice] = {"gdk_device", +{GObject}, + {"get_name",{P},S}, + {"get_device_type",{P},I}, + {"get_display",{P},P,0,GdkDisplay}, + {"get_has_cursor",{P},B}, + {"get_n_axes",{P},I}, + {"get_n_keys",{P},I}, + {"warp",{P,P,I,I}}, + {"grab",{P,P,I,B,I,P,P},I}, + {"ungrab",{P,P}}, + {"get_state",{P,P,D,P}}, + {"get_position",{P,P,I,I}}, + {"get_position_double",{P,P,D,D}}, + {"get_window_at_position",{P,I,I},P,0,GdkWindow}, + {"get_window_at_position_double",{P,D,D},P,0,GdkWindow}, + {"get_history",{P,P,P,P,P,I},B}, + {"free_history",{P,I}}, + {"get_vendor_id",{P},S}, + {"get_product_id",{P},S}, + {"get_source",{P},P,0,GdkInputSource}, + {"set_mode",{P,I},B}, + {"get_mode",{P},I}, + {"set_key",{P,I,I,I}}, + {"get_key",{P,I,I,I},B}, + {"get_axis",{P,D,I,D},B}, + {"list_axes",{P},A,0,GList}, + {"get_axis_value",{P,D,P,D},B}, + {"get_last_event_window",{P},P,0,GdkWindow}, + {"set_axis_use",{P,I,I}}, + {"get_axis_use",{P,I},I}, + {"get_associated_device",{P},P,0,GdkDevice}, + {"list_slave_devices",{P},A,0,GList}, + {"get_position",{P,P,I,I}}, +"GdkDevice"} + +widget[GdkScreen] = {"gdk_screen", +{GdkDevice,GObject}, + {"new",{},-routine_id("newGdkScreen")}, -- alias get_default; + {"get_system_visual",{P},P,0,GdkVisual}, + {"get_rgba_visual",{P},P,0,GdkVisual}, + {"is_composited",{P},B}, + {"get_root_window",{P},P,0,GdkWindow}, + {"get_display",{P},P,0,GdkDisplay}, + {"get_number",{P},I}, + {"get_width",{P},I}, + {"get_height",{P},I}, + {"get_width_mm",{P},I}, + {"get_height_mm",{P},I}, + {"list_visuals",{P},P,0,GList}, + {"get_toplevel_windows",{P},P,0,GList}, + {"make_display_name",{P},S}, + {"get_n_monitors",{P},I}, + {"get_primary_monitor",{P},I}, + {"get_monitor_geometry",{P,I,P}}, + {"get_monitor_workarea",{P,I,P}}, + {"get_monitor_at_point",{P,I,I},I}, + {"get_monitor_at_window",{P,P},I}, + {"get_monitor_height_mm",{P,I},I}, + {"get_monitor_width_mm",{P,I},I}, + {"get_monitor_plug_name",{P,I},S}, + {"get_setting",{P,S,P},B}, + {"get_font_options",{P},P,0,CairoFontOptions}, + {"get_resolution",{P},D}, + {"set_resolution",{P,D}}, + {"get_active_window",{P},P,0,GdkWindow}, + {"get_window_stack",{P},P,0,GList}, +"GdkScreen"} + + function newGdkScreen() -- alias; + return gtk_func("gdk_screen_get_default",{}) + end function + +widget[GdkVisual] = {"gdk_visual", +{GObject}, +"GdkVisual"} + +widget[GThemedIcon] = {"g_themed_icon", +{GIcon,GObject}, + {"new",{S},P}, + {"new_with_default_fallbacks",{S},P}, + {"get_names",{P},P}, +"GThemedIcon"} + +widget[GtkThemedIcon] = {"gtk_themed_icon", +{GObject}, +"GtkThemedIcon"} + +widget[GEmblem] = {"g_emblem", +{GObject}, + {"new",{P},P}, + {"get_icon",{P},P,0,GIcon}, +"GEmblem"} + +widget[GEmblemedIcon] = {"g_emblemed_icon", +{GIcon,GObject}, + {"new",{P,P},P}, +"GEmblemedIcon"} + +widget[GdkDeviceManager] = {"gdk_device_manager", +{GObject}, + {"new",{P},-routine_id("newDeviceManager")}, + {"get_display",{P},P,0,GdkDisplay}, + {"list_devices",{P,I},X,0,GList}, + {"get_client_pointer",{P},P,0,GdkDevice}, +"GdkDeviceManager"} + + function newDeviceManager(atom disp=0) + if disp = 0 then + disp = gtk_func("gdk_display_get_default") + end if + return gtk_func("gdk_display_get_device_manager",{P},{disp}) + end function + +widget[GtkAppChooser] = {"gtk_app_chooser", +{GtkWidget}, + {"get_app_info",{P},P,0,GAppInfo}, + {"get_content_type",{P},S}, + {"refresh",{P}}, +"GtkAppChooser"} + +widget[GtkAppChooserButton] = {"gtk_app_chooser_button", +{GtkComboBox,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkCellLayout,GtkCellEditable,GObject}, + {"new",{S},P}, + {"append_custom_item",{P,S,S,P}}, + {"append_separator",{P}}, + {"set_active_custom_item",{P,S}}, + {"set_show_default_item",{P,B}}, + {"get_show_default_item",{P},B}, + {"set_show_dialog_item",{P,B}}, + {"get_show_dialog_item",{P},B}, + {"set_heading",{P,S}}, + {"get_heading",{P},S}, +"GtkAppChooserButton"} + +widget[GMenu] = {"g_menu", +{GObject}, + {"new",{},P}, + {"append",{P,S,S}}, +"GMenu"} + +widget[GSettings] = {"g_settings", +{GObject}, + {"new",{S},P}, + {"set_value",{P,S,P},B}, + {"get_value",{P},P}, + {"get_user_value",{P,S},P}, +"GSettings"} + +widget[GtkApplication] = {"gtk_application", +{GApplication,GObject}, + {"new",{S,I},-routine_id("newApplication")}, + {"add_window",{P,P}}, + {"remove_window",{P,P}}, + {"get_windows",{P},A,0,GList}, + {"get_window_by_id",{P,I},P,0,GtkWindow}, + {"get_active_window",{P},P,0,GtkWindow}, + {"inhibit",{P,P,I,S},I}, + {"uninhibit",{P,I}}, + {"is_inhibited",{P,I},B}, + {"get_app_menu",{P},P,0,GMenuModel}, + {"set_app_menu",{P,P}}, + {"get_menubar",{P},P,0,GMenuModel}, + {"set_menubar",{P,P}}, + {"add_accelerator",{P,S,S,P}}, + {"remove_accelerator",{P,S,P}}, + {"run",{P},-routine_id("app_run")}, + {"activate",{P},-routine_id("app_activate")}, + {"get_accels_for_action",{P,S},V}, -- 3.12 + {"set_accels_for_action",{P,S,S}}, -- 3.12 + {"list_action_descriptions",{P},V}, + {"get_actions_for_accel",{P,S},V}, -- 3.14 + {"get_menu_by_id",{P,S},P,0,GMenu}, -- 3.14 + {"prefers_app_menu",{},B}, -- 3.14 +"GtkApplication"} + + function app_activate(object x) + gtk_proc("g_application_activate",{P},{x}) + return 1 + end function + + function app_run(object x) + gtk_proc("g_application_run",{P,I,P},{x,0,0}) + return 1 + end function + + function newApplication(object id, object flags) + if string(id) then id = allocate_string(id,1) end if + if gtk_func("g_application_id_is_valid",{P},{id}) then + return gtk_func("gtk_application_new",{P,I},{id,flags}) + else + crash("Error: invalid application id!") + end if + return 0 + end function + +widget[GtkApplicationWindow] = {"gtk_application_window", +{GtkWindow,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{P},P}, + {"set_show_menubar",{P,B}}, + {"get_show_menubar",{P},B}, + {"set_help_overlay",{P,P}}, -- 3.20 + {"get_help_overlay",{P},P,0,GtkShortcutsWindow}, -- 3.20 + {"get_id",{P},I}, +"GtkApplicationWindow"} + +widget[GtkActionable] = {"gtk_actionable", +{GtkWidget}, + {"get_action_name",{P},S}, + {"set_action_name",{P,S}}, + {"get_action_target_value",{P},P}, + {"set_action_target_value",{P,P}}, + {"set_action_target",{P,S,P}}, + {"set_detailed_action_name",{P,S}}, +"GtkActionable"} + +-- Soon to be deprecated, but still used internally by Glade; +widget[GtkAlignment] = {"gtk_alignment", +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{F,F,F,F},P}, + {"set",{P,F,F,F,F}}, + {"get_padding",{P,I,I,I,I}}, + {"set_padding",{P,I,I,I,I}}, +"GtkAlignment"} + +widget[GtkAppLaunchContext] = {"gdk_app_launch_context", +{GdkAppLaunchContext,GObject}, + {"set_screen",{P,P}}, + {"set_desktop",{P,I}}, + {"set_timestamp",{P,I}}, + {"set_icon",{P,P}}, + {"set_icon_name",{P,S}}, +"GtkAppLaunchContext"} + +widget[GtkAspectFrame] = {"gtk_aspect_frame", +{GtkFrame,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{S,F,F,F,B},P}, + {"set",{P,F,F,F,B}}, +"GtkAspectFrame"} + +widget[GtkAssistant] = {"gtk_assistant", +{GtkWindow,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"set_current_page",{P,I}}, + {"get_current_page",{P},I}, + {"get_n_pages",{P},I}, + {"get_nth_page",{P,I},P,0,GtkWidget}, + {"prepend_page",{P,P},I}, + {"append_page",{P,P},I}, + {"insert_page",{P,P,I},I}, + {"remove_page",{P,I}}, + {"set_forward_page_func",{P,P,P,P}}, + {"set_page_type",{P,P,P}}, + {"get_page_type",{P,P},I}, + {"set_page_title",{P,P,S}}, + {"get_page_title",{P,P},S}, + {"set_page_complete",{P,P,B}}, + {"get_page_complete",{P,P},B}, + {"add_action_widget",{P,P}}, + {"remove_action_widget",{P,P}}, + {"update_buttons_state",{P}}, + {"commit",{P}}, + {"next_page",{P}}, + {"previous_page",{P}}, + {"get_page_has_padding",{P,P},B}, -- 3.18 + {"set_page_has_padding",{P,P,B}}, -- 3.18 +"GtkAssistant"} + +widget[GtkDrag] = {"gtk_drag", +{0}, + {"get_data",{P,P,P,P}}, + {"get_source_widget",{P},P,0,GtkWidget}, + {"highlight",{P}}, + {"unhighlight",{P}}, + {"begin_with_coordinates",{P,P,P,I,P,I,I},P}, + {"finish",{P,B,B,P}}, + {"set_icon_widget",{P,P,I,I}}, + {"set_icon_pixbuf",{P,P,I,I}}, + {"set_icon_surface",{P,P}}, + {"set_icon_name",{P,P,I,I}}, + {"set_icon_gicon",{P,P,I,I}}, + {"set_icon_default",{P}}, + {"check_threshold",{P,I,I,I,I},B}, + {"cancel",{P}}, -- 3.16 +"GtkDrag"} + +widget[GtkDragSource] = {"gtk_drag_source", +{GtkDrag}, + {"set",{P,I,P,I,I}}, + {"set_icon_pixbuf",{P,P}}, + {"set_icon_name",{P,S}}, + {"set_icon_gicon",{P,P}}, + {"unset",{P}}, + {"set_target_list",{P,P}}, + {"get_target_list",{P},P,0,GtkTargetList}, + {"add_text_targets",{P}}, + {"add_image_targets",{P}}, + {"add_uri_targets",{P}}, +"GtkDragSource"} + +widget[GtkDragDest] = {"gtk_drag_dest", +{GtkDrag}, + {"set",{P,I,P,I,I}}, + {"set_proxy",{P,P,I,B}}, + {"unset",{P}}, + {"find_target",{P,P,P},P}, + {"get_target_list",{P},P,0,GtkTargetList}, + {"set_target_list",{P,P}}, + {"add_text_targets",{P}}, + {"add_image_targets",{P}}, + {"add_uri_targets",{P}}, + {"set_track_motion",{P,B}}, + {"get_track_motion",{P},B}, +"GtkDragDest"} + +widget[GtkCssProvider] = {"gtk_css_provider", +{GObject}, + {"new",{P},-routine_id("new_css_provider")}, + {"get_default",{},P,0,GtkCssProvider}, + {"get_named",{S,S},P,0,GtkCssProvider}, + {"load_from_data",{P,S,I,P},B}, + {"load_from_file",{P,S,P},B}, + {"load_from_path",{P,S,P},B}, + {"load_from_resource",{P,S}}, -- 3.16 + {"to_string",{P},S}, +"GtkCssProvider"} + + function new_css_provider(object name=0) + atom provider = gtk_func("gtk_css_provider_get_default") + atom style = create(GtkStyleContext) + atom screen = get(style,"screen") + + atom err = allocate(64,1) err = 0 + register(provider,GtkCssProvider) + + if atom(name) then + set(style,"add provider for screen",screen,provider,800) + return provider + end if + + if file_exists(canonical_path(locate_file(name))) then + if gtk_func("gtk_css_provider_load_from_path",{P,P,P}, + {provider,allocate_string(canonical_path(locate_file(name)),1),err}) then + set(style,"add provider for screen",screen,provider,800) + return provider + else + printf(1,"Error finding or parsing css from path: %s \n", + {canonical_path(locate_file(name))}) + end if + end if + + if string(name) then + integer len = length(name) + name = allocate_string(name,1) + if gtk_func("gtk_css_provider_load_from_data",{P,P,I,P},{provider,name,len,err}) then + set(style,"add provider for screen",screen,provider,800) + end if + end if + + return provider + end function + +widget[GtkCssSection] = {"gtk_css_section", +{GObject}, + {"get_end_line",{P},I}, + {"get_end_position",{P},I}, + {"get_file",{P},P,0,GFile}, + {"get_parent",{P},P,0,GtkCssSection}, + {"get_section_type",{P},I}, + {"get_start_line",{P},I}, + {"get_start_position",{P},I}, +"GtkCssSection"} + +widget[GtkStatusIcon] = {"gtk_status_icon", -- deprecated 3.14 +{GObject}, + {"new",{},P,0,GObject}, + {"new_from_pixbuf",{P},P}, + {"new_from_file",{S},P}, + {"new_from_icon_name",{S},P}, + {"new_from_gicon",{P},P}, + {"set_from_pixbuf",{P,P}}, + {"set_from_file",{P,S}}, + {"set_from_icon_name",{P,S}}, + {"set_from_gicon",{P,P}}, + {"get_storage_type",{P},I}, + {"get_pixbuf",{P},P,0,GdkPixbuf}, + {"get_icon_name",{P},S}, + {"get_gicon",{P},P}, + {"get_size",{P},I}, + {"set_screen",{P,P}}, + {"get_screen",{P},P,0,GdkScreen}, + {"set_tooltip_text",{P,S}}, + {"get_tooltip_text",{P},S}, + {"set_tooltip_markup",{P,S}}, + {"get_tooltip_markup",{P},S}, + {"set_has_tooltip",{P,B}}, + {"get_has_tooltip",{P},P}, + {"set_title",{P,S}}, + {"get_title",{P},S}, + {"set_name",{P,S}}, + {"set_visible",{P,B}}, + {"get_visible",{P},B}, + {"is_embedded",{P},B}, + {"get_geometry",{P,P,P,I},B}, + {"get_x11_window_id",{P},I}, + {"position_menu",{P,P,I,I,B},-routine_id("si_position_menu")}, +"GtkStatusIcon"} + + function si_position_menu(atom stat, atom menu, integer x, integer y, integer p) + atom fn = define_proc("gtk_status_icon_position_menu",{P,I,I,I,P}) + c_proc(fn,{menu,x,y,p,stat}) -- menu and status_icon params swapped; + return 1 + end function + +widget[GtkOffscreenWindow] = {"gtk_offscreen_window", +{GtkWindow,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"get_surface",{P},P,0,CairoSurface_t}, + {"get_pixbuf",{P},P,0,GdkPixbuf}, +"GtkOffscreenWindow"} + +widget[GtkComboBox] = {"gtk_combo_box", +{GtkBin,GtkContainer,GtkWidget,GtkCellLayout,GtkCellEditable,GtkBuildable,GObject}, + {"new",{P},-routine_id("newComboBox")}, + {"set_wrap_width",{P,I}}, + {"get_wrap_width",{P},I}, + {"set_row_span_column",{P,I}}, + {"get_row_span_column",{P},I}, + {"set_column_span_column",{P,I}}, + {"get_column_span_column",{P},I}, + {"set_active",{P,I}}, + {"get_active",{P},I}, + {"set_id_column",{P,I}}, + {"get_id_column",{P},I}, + {"set_active_id",{P,S},B}, + {"get_active_id",{P},S}, + {"set_model",{P,P}}, + {"get_model",{P},P,0,GtkTreeModel}, + {"popup_for_device",{P,P}}, + {"popup",{P}}, + {"popdown",{P}}, + {"set_row_separator_func",{P,P,P,P}}, + {"get_row_separator_func",{P},P}, + {"set_add_tearoffs",{P,B}}, -- deprecated 3.10 + {"get_add_tearoffs",{P},B}, -- deprecated 3.10 + {"set_title",{P,S}}, -- deprecated 3.10 + {"get_title",{P},S}, -- deprecated 3.10 + {"set_focus_on_click",{P,B}}, + {"get_focus_on_click",{P},B}, + {"set_button_sensitivity",{P,I}}, + {"get_button_sensitivity",{P},I}, + {"get_has_entry",{P},B}, + {"set_entry_text_column",{P,I}}, + {"get_entry_text_column",{P},I}, + {"set_popup_fixed_width",{P,B}}, + {"get_popup_fixed_width",{P},B}, + {"set_activates_default",{P,B},-routine_id("combo_set_activates_default")}, + {"get_entry",{P},-routine_id("combo_get_entry")}, +"GtkComboBox"} + + -- create a combo box either empty or from a model + function newComboBox(object x=0) + if x = 0 then + return gtk_func("gtk_combo_box_new",{},{}) + end if + if class_id(x) = GtkListStore then + return gtk_func("gtk_combo_box_new_with_model",{P},{x}) + end if + end function + + function combo_get_entry(atom box) + atom x = get(box,"child") + register(x,GtkEntry) + return x + end function + + function combo_set_activates_default(atom box, boolean z) + atom x = get(box,"child") + register(x,GtkEntry) + set(x,"property","activates-default",z) + return 1 + end function + +widget[GtkComboBoxText] = {"gtk_combo_box_text", +{GtkCellLayout,GtkCellEditable,GtkComboBox,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"new_with_entry",{},P}, + {"append",{P,S,S}}, + {"prepend",{P,S,S}}, + {"insert",{P,I,S,S}}, + {"append_text",{P,S}}, + {"prepend_text",{P,S}}, + {"insert_text",{P,I,S}}, + {"remove",{P,I}}, + {"remove_all",{P}}, + {"get_active_text",{P},S}, +"GtkComboBoxText"} + +widget[GtkComboBoxEntry] = {"gtk_combo_box_text", +{GtkComboBoxText,GtkComboBox,GtkBin,GtkContainer,GtkWidget,GObject}, + {"new",{},-routine_id("new_combo_box_entry")}, +"GtkComboBoxEntry"} + + function new_combo_box_entry() -- alias; + return gtk_func("gtk_combo_box_text_new_with_entry",{},{}) + end function + +widget[GtkFrame] = {"gtk_frame", +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{S},P}, + {"set_label",{P,S}}, + {"get_label",{P},S}, + {"set_label_align",{P,F,F}}, + {"get_label_align",{P,F,F}}, + {"set_label_widget",{P,P}}, + {"get_label_widget",{P},P,0,GtkWidget}, + {"set_shadow_type",{P,I}}, + {"get_shadow_type",{P},I}, +"GtkFrame"} + +widget[GtkModelButton] = {"gtk_model_button", -- new in 3.16 +{GtkButton,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{},P}, +"GtkModelButton"} + +widget[GtkButton] = {"gtk_button", +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{P},-routine_id("newButton")}, + {"new_from_icon_name",{S,I},P,0,GtkWidget}, -- 3.10 + {"set_relief",{P,I}}, + {"get_relief",{P},I}, + {"set_label",{P,S}}, + {"get_label",{P},S}, + {"set_use_underline",{P,B}}, + {"get_use_underline",{P},B}, + {"set_focus_on_click",{P,B}}, + {"get_focus_on_click",{P},B}, + {"set_alignment",{P,F,F}}, -- deprecated 3.14 + {"get_alignment",{P,F,F}}, -- deprecated 3.15 + {"set_image",{P,P},-routine_id("setBtnImage")}, + {"get_image",{P},P,0,GtkImage}, + {"set_image_position",{P,I}}, + {"get_image_position",{P},I}, + {"set_always_show_image",{P,B}}, -- GTK 3.6+ + {"get_always_show_image",{P},B}, -- GTK 3.6+ + {"get_event_window",{P},P,0,GdkWindow}, +"GtkButton"} + + function setBtnImage(atom btn, object img) + ------------------------------------------ + if class_id(img) = GdkPixbuf then + img = create(GtkImage,img) + end if + if string(img) then + if file_exists(canonical_path(img)) then + img = canonical_path(img) + elsif file_exists(canonical_path("~" & img)) then + img = canonical_path("~" & img) + end if + img = create(GdkPixbuf,img,20,20,1) + img = create(GtkImage,img) + end if + if atom(img) then + gtk_proc("gtk_button_set_image",{P,P},{btn,img}) + end if + return 1 + end function + + -- handles creation of buttons with icons from various sources; + -- this function modified greatly from earlier versions, in order + -- to circumvent the misguided idea that buttons, menus, etc. should not have + -- icons (even though window managers have settings to show or hide these + -- icons as the USER prefers) + + function newButton(object cap = 0) + ---------------------------------- + atom btn = 0 + object tmp, t1, box, lbl = 0, icon = 0 + + if atom(cap) then + if cap = 0 then -- blank button; + btn = gtk_func("gtk_button_new",{}) + register(btn,GtkButton) + return btn + else + btn = gtk_func("gtk_button_new",{}) + register(btn,GtkButton) + set(btn,"use underline",TRUE) + + if class_id(cap) = GdkPixbuf then -- convert to image; + cap = create(GtkImage,cap) + end if + if class_id(cap) = GtkImage then + set(btn,"image",cap) -- add image to btn + set(btn,"always show image",BTN_SHOW_IMG) + end if + return btn + end if + end if + + if string(cap) then + if match("#",cap) = 0 then + btn = gtk_func("gtk_button_new_from_stock",{P},{allocate_string(cap)}) + register(btn,GtkButton) + set(btn,"always show image",BTN_SHOW_IMG) + set(btn,"use underline",TRUE) + return btn + end if + tmp = split(cap,'#') + btn = gtk_func("gtk_button_new_with_mnemonic",{P},{allocate_string(tmp[2],1)}) + register(btn,GtkButton) + set(btn,"use underline",TRUE) + + t1 = canonical_path(locate_file(tmp[1])) + + if match("gtk-",cap) = 1 then + btn = gtk_func("gtk_button_new") + register(btn,GtkButton) + box = create(GtkBox,0,5) + add(btn,box) + icon = create(GtkImage,tmp[1],ceil(BTN_ICON_SIZE/10)) + if icon > 0 then add(box,icon) end if + if length(tmp[2]) > 0 then + lbl = gtk_func("gtk_label_new_with_mnemonic",{P},{allocate_string(tmp[2])}) + register(lbl,GtkLabel) + set(lbl,"font",sprintf("%d",BTN_TEXT_SIZE)) + add(box,lbl) + end if + set(btn,"always show image",BTN_SHOW_IMG) + set(btn,"use underline",TRUE) + return btn + + elsif file_exists(t1) then + icon = create(GdkPixbuf,t1,BTN_ICON_SIZE,0,1) + + else + icon = create(GtkImage,tmp[1],BTN_ICON_SIZE,0,1) + end if + set(btn,"image",icon) + set(btn,"always show image",BTN_SHOW_IMG) + set(btn,"use underline",TRUE) + return btn + end if + + btn = gtk_func("gtk_button_new",{}) + register(btn,GtkButton) + + return btn + end function + +widget[GtkToggleButton] = {"gtk_toggle_button", +{GtkButton,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{P},-routine_id("newToggleButton")}, + {"new_with_label",{S},P}, + {"new_with_mnemonic",{S},P}, + {"set_mode",{P,B}}, + {"get_mode",{P},B}, + {"toggled",{P}}, + {"set_active",{P,B}}, + {"get_active",{P},B}, + {"set_inconsistent",{P,B}}, + {"get_inconsistent",{P},B}, +"GtkToggleButton"} + + function newToggleButton(object cap = 0) + atom btn = 0 + object tmp, t1, icon = 0 + + if atom(cap) then + if cap = 0 then -- blank button; + btn = gtk_func("gtk_toggle_button_new",{}) + register(btn,GtkToggleButton) + return btn + else + btn = gtk_func("gtk_toggle_button_new",{}) + register(btn,GtkToggleButton) + if class_id(cap) = GdkPixbuf then -- convert to image; + cap = create(GtkImage,cap) + end if + if class_id(cap) = GtkImage then + set(btn,"image",cap) -- add image to btn + set(btn,"always show image",BTN_SHOW_IMG) + end if + return btn + end if + end if + + if string(cap) then + if match("#",cap) = 0 then + btn = gtk_func("gtk_toggle_button_new_with_mnemonic",{P},{allocate_string(cap)}) + register(btn,GtkToggleButton) + return btn + end if + tmp = split(cap,'#') + btn = gtk_func("gtk_toggle_button_new_with_mnemonic",{P},{allocate_string(tmp[2],1)}) + register(btn,GtkToggleButton) + + t1 = canonical_path(locate_file(tmp[1])) + + if match("gtk-",cap) = 1 then + icon = create(GtkImage,tmp[1],ceil(BTN_ICON_SIZE/5)) + + elsif file_exists(t1) then + icon = create(GdkPixbuf,t1,BTN_ICON_SIZE,0,1) + + else + icon = create(GtkImage,tmp[1],BTN_ICON_SIZE,0,1) + end if + set(btn,"image",icon) + set(btn,"always show image",BTN_SHOW_IMG) + return btn + end if + + btn = gtk_func("gtk_toggle_button_new",{}) + register(btn,GtkToggleButton) + + return btn + + end function + +widget[GtkCheckButton] = {"gtk_check_button", +{GtkToggleButton,GtkButton,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{P},-routine_id("newCheckButton")}, + {"new_with_label",{S},P,0,GtkCheckButton}, + {"new_with_mnemonic",{S},P,0,GtkCheckButton}, +"GtkCheckButton"} + + function newCheckButton(object cap = 0) + atom btn = 0 + object tmp, t1, icon = 0 + + if atom(cap) then + if cap = 0 then -- blank button; + btn = gtk_func("gtk_check_button_new",{}) + register(btn,GtkCheckButton) + return btn + else + btn = gtk_func("gtk_check_button_new",{}) + register(btn,GtkCheckButton) + if class_id(cap) = GdkPixbuf then -- convert to image; + cap = create(GtkImage,cap) + end if + if class_id(cap) = GtkImage then + set(btn,"image",cap) -- add image to btn + set(btn,"always show image",BTN_SHOW_IMG) + end if + return btn + end if + end if + + if string(cap) then + if match("#",cap) = 0 then + btn = gtk_func("gtk_check_button_new_with_mnemonic",{P},{allocate_string(cap)}) + register(btn,GtkCheckButton) + return btn + end if + tmp = split(cap,'#') + btn = gtk_func("gtk_check_button_new_with_mnemonic",{P},{allocate_string(tmp[2],1)}) + register(btn,GtkCheckButton) + + t1 = canonical_path(locate_file(tmp[1])) + + if match("gtk-",cap) = 1 then + icon = create(GtkImage,tmp[1],ceil(BTN_ICON_SIZE/5)) + + elsif file_exists(t1) then + icon = create(GdkPixbuf,t1,BTN_ICON_SIZE,0,1) + + else + icon = create(GtkImage,tmp[1],BTN_ICON_SIZE,0,1) + end if + set(btn,"image",icon) + set(btn,"always show image",BTN_SHOW_IMG) + return btn + end if + + btn = gtk_func("gtk_check_button_new",{}) + register(btn,GtkCheckButton) + + return btn + end function + +widget[GtkRadioButton] = {"gtk_radio_button", +{GtkCheckButton,GtkToggleButton,GtkButton,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{P,P},-routine_id("newRadioButton")}, + {"set_group",{P,P}}, + {"get_group",{P},P}, + {"join_group",{P,P}}, +"GtkRadioButton"} + + function newRadioButton(atom group=0, object cap = 0) + atom btn = 0 + object tmp, t1, icon = 0 + + if atom(cap) then + if cap = 0 then -- blank button; + btn = gtk_func("gtk_radio_button_new",{P},{group}) + register(btn,GtkRadioButton) + return btn + else + btn = gtk_func("gtk_radio_button_new",{P},{group}) + register(btn,GtkRadioButton) + if class_id(cap) = GdkPixbuf then -- convert to image; + cap = create(GtkImage,cap) + end if + if class_id(cap) = GtkImage then + set(btn,"image",cap) -- add image to btn + set(btn,"always show image",BTN_SHOW_IMG) + end if + return btn + end if + end if + + if string(cap) then + if match("#",cap) = 0 then + btn = gtk_func("gtk_radio_button_new_with_mnemonic_from_widget",{P,P},{group,cap}) + register(btn,GtkRadioButton) + return btn + end if + tmp = split(cap,'#') + btn = gtk_func("gtk_radio_button_new_with_mnemonic_from_widget",{P,P},{group,allocate_string(tmp[2],1)}) + register(btn,GtkRadioButton) + + t1 = canonical_path(locate_file(tmp[1])) + + if match("gtk-",cap) = 1 then + icon = create(GtkImage,tmp[1],ceil(BTN_ICON_SIZE/5)) + + elsif file_exists(t1) then + icon = create(GdkPixbuf,t1,BTN_ICON_SIZE,0,1) + + else + icon = create(GtkImage,tmp[1],BTN_ICON_SIZE,0,1) + end if + set(btn,"image",icon) + set(btn,"always show image",BTN_SHOW_IMG) + return btn + end if + + + btn = gtk_func("gtk_radio_button_new",{P},{group}) + register(btn,GtkRadioButton) + + return btn + end function + +widget[GtkColorButton] = {"gtk_color_button", +{GtkColorChooser,GtkButton,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{P},-routine_id("newColorButton")}, + {"set_title",{P,S}}, + {"get_title",{P},S}, + {"show_editor",{P,B}}, -- 3.20 +"GtkColorButton"} + + function newColorButton(object c=0) + if string(c) then c = to_rgba(c) end if + if c=0 then return gtk_func("gtk_color_button_new") + else return gtk_func("gtk_color_button_new_with_rgba",{P},{c}) + end if + end function + +widget[GtkFontButton] = {"gtk_font_button", +{GtkFontChooser,GtkButton,GtkBin,GtkContainer,GtkWidget,GtkActionable,GtkBuildable,GObject}, + {"new",{P,P,P},-routine_id("newFontButton")}, + {"set_font_name",{P,S}}, + {"get_font_name",{P},S}, + {"set_show_style",{P,B}}, + {"get_show_style",{P},B}, + {"set_show_size",{P,B}}, + {"get_show_size",{P},B}, + {"set_use_font",{P,B}}, + {"get_use_font",{P},B}, + {"set_use_size",{P,B}}, + {"get_use_size",{P},B}, + {"set_title",{P,S}}, + {"get_title",{P},S}, +"GtkFontButton"} + + function newFontButton(object f=0, object fn=0, object data=0) + if string(f) then f = allocate_string(f,1) end if + atom fnt + if f = 0 then + fnt = gtk_func("gtk_font_button_new") + else fnt = gtk_func("gtk_font_button_new_with_font",{P},{f}) + end if + if string(fn) or fn > 0 then + connect(fnt,"font-set",fn,data) + end if + return fnt + end function + +widget[GtkLinkButton] = {"gtk_link_button", +{GtkButton,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{S,S},-routine_id("newLinkButton")}, + {"set_uri",{P,S}}, + {"get_uri",{P},S}, + {"set_visited",{P,B}}, + {"get_visited",{P},B}, +"GtkLinkButton"} + + function newLinkButton(object link, object lbl=0) + if lbl = 0 then return gtk_func("gtk_link_button_new",{S},{link}) + else return gtk_func("gtk_link_button_new_with_label",{S,S},{link,lbl}) + end if + end function + +widget[GtkLockButton] = {"gtk_lock_button", -- unable to make this work! +{GtkButton,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{P},P}, + {"set_permission",{P,P}}, + {"get_permission",{P},P,0,GPermission}, +"GtkLockButton"} + +widget[GPermission] = {"g_permission", +{GObject}, + {"get_allowed",{P},B}, + {"get_can_acquire",{P},B}, + {"get_can_release",{P},B}, + {"acquire",{P,P,P},B}, + {"acquire_async",{P,P,P,P}}, + {"acquire_finish",{P,P,P},B}, + {"release",{P,P,P},B}, + {"release_async",{P,P,P,P}}, + {"finish",{P,P,P},B}, + {"impl_update",{P,B,B,B}}, +"GPermission"} + +widget[GSimplePermission] = {"g_simple_permission", +{GPermission}, + {"new",{B},P}, +"GSimplePermission"} + +widget[GtkScaleButton] = {"gtk_scale_button", +{GtkButton,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkOrientable,GtkActionable,GObject}, + {"new",{I,D,D,D,P},P}, + {"set_adjustment",{P,P}}, + {"get_adjustment",{P},P,0,GtkAdjustment}, + {"set_value",{P,D}}, + {"get_value",{P},D}, + {"get_popup",{P},P,0,GtkWidget}, + {"get_plus_button",{P},P,0,GtkButton}, + {"get_minus_button",{P},P,0,GtkButton}, + {"set_icons",{P,A}}, +"GtkScaleButton"} + +widget[GtkMenu] = {"gtk_menu", +{GtkMenuShell,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{P},-routine_id("newMenu")}, + {"attach",{P,P,I,I,I,I}}, + {"attach_to_widget",{P,P,P}}, + {"get_attach_widget",{P},P,0,GtkWidget}, + {"get_for_attach_widget",{P},P,0,GList}, + {"detach",{P}}, + {"popup",{P,P,P,P,P,I,I}}, + {"popdown",{P}}, + {"reposition",{P}}, + {"set_active",{P,I}}, + {"get_active",{P},P,0,GtkMenuItem}, + {"popup_for_device",{P,P,P,P,P,P,P,I,I}}, + {"set_accel_group",{P,P}}, + {"get_accel_group",{P},P,0,GtkAccelGroup}, + {"set_accel_path",{P,S}}, + {"get_accel_path",{P},S}, + {"set_title",{P,S}}, -- deprecated 3.10 + {"get_title",{P},S}, -- deprecated 3.10 + {"set_monitor",{P,I}}, + {"get_monitor",{P},I}, + {"set_tearoff_state",{P,B}}, -- deprecated 3.10 + {"get_tearoff_state",{P},B}, -- deprecated 3.10 + {"set_reserve_toggle_size",{P,B}}, + {"get_reserve_toggle_size",{P},B}, + {"set_screen",{P,P}}, + {"popup_at_pointer",{P,P}}, -- 3.22 + {"popup_at_rect",{P,P,P,I,I,P}}, -- 3.22 + {"popup_at_widget",{P,P,I,I,P}}, -- 3.22 +"GtkMenu"} + + function newMenu(object x=0) + if class_id(x) = GMenuModel then + return gtk_func("gtk_menu_new_from_model",{P},{x}) + else + return gtk_func("gtk_menu_new") + end if + end function + +widget[GtkMenuBar] = {"gtk_menu_bar", +{GtkMenuShell,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{P},-routine_id("newMenuBar")}, + {"set_pack_direction",{P,I}}, + {"get_pack_direction",{P},I}, + {"set_child_pack_direction",{P,I}}, + {"get_child_pack_direction",{P},I}, +"GtkMenuBar"} + + function newMenuBar(atom x=0) + if class_id(x) = GMenuModel then + return gtk_func("gtk_menu_bar_new_from_model",{P},{x}) + else + return gtk_func("gtk_menu_bar_new") + end if + end function + +widget[GMenu] = {"g_menu", +{GMenuModel,GObject}, + {"new",{},P}, + {"freeze",{P}}, + {"insert",{P,I,S,S}}, + {"prepend",{P,S,S}}, + {"append",{P,S,S}}, + {"insert_item",{P,I,P}}, + {"append_item",{P,P}}, + {"prepend_item",{P,P}}, + {"insert_section",{P,I,S,P}}, + {"prepend_section",{P,S,P}}, + {"append_section",{P,S,P}}, + {"append_submenu",{P,S,P}}, + {"insert_submenu",{P,I,S,P}}, + {"prepend_submenu",{P,S,P}}, + {"remove",{P,I}}, +"GMenu"} + +widget[GMenuModel] = {"g_menu_model", +{GObject}, + {"is_mutable",{P},B}, + {"get_n_items",{P},I}, + {"get_item_attribute",{P,I,S,S,P},B}, + {"get_item_link",{P,I,S},P,0,GMenuModel}, + {"items_changed",{P,I,I,I}}, +"GMenuModel"} + +widget[GMenuItem] = {"g_menu_item", +{GObject}, + {"new",{S,S},P}, + {"new_section",{S,P},P,0,GMenuItem}, + {"new_submenu",{S,P},P,0,GMenuItem}, + {"set_label",{P,S}}, + {"set_action_and_target_value",{P,S,P}}, + {"set_detailed_action",{P,S}}, + {"set_section",{P,P}}, + {"set_submenu",{P,P}}, + {"set_attribute_value",{P,P,P}}, + {"set_link",{P,S,P}}, +"GMenuItem"} + +widget[GtkMenuButton] = {"gtk_menu_button", --3.6 +{GtkToggleButton,GtkButton,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{},P}, + {"set_popup",{P,P}}, + {"get_popup",{P},P,0,GtkMenu}, + {"set_menu_model",{P,P}}, + {"get_menu_model",{P},P,0,GMenuModel}, + {"set_direction",{P,I}}, + {"get_direction",{P},I}, + {"set_align_widget",{P,P}}, + {"get_align_widget",{P},P,0,GtkWidget}, + {"set_popover",{P,P}}, -- 3.12 + {"get_popover",{P},P,0,GtkPopover}, -- 3.12 + {"set_use_popover",{P,B}}, -- 3.12 + {"get_use_popover",{P},B}, -- 3.12 +"GtkMenuButton"} + +widget[GtkMenuItem] = {"gtk_menu_item", +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{P,P,P,P},-routine_id("newMenuItem")}, + {"set_label",{P,S},-routine_id("mi_set_label")}, + {"get_label",{P},-routine_id("mi_get_label")}, + {"set_image",{P,P},-routine_id("mi_set_image")}, + {"get_image",{P},-routine_id("mi_get_image")}, + {"set_use_underline",{P,B}}, + {"get_use_underline",{P},B}, + {"set_submenu",{P,P}}, + {"get_submenu",{P},P,0,GtkWidget}, + {"select",{P}}, + {"deselect",{P}}, + {"activate",{P}}, + {"toggle_size_allocate",{P,I}}, + {"set_reserve_indicator",{P,B}}, + {"get_reserve_indicator",{P},B}, + {"add_accelerator",{P,P,P},-routine_id("mi_add_accelerator")}, +"GtkMenuItem"} + +-- all this just to allow images and accels on menu items! + +constant activate = allocate_string("activate") + + function newMenuItem(object stk=0, object fn=0, object data=0, object accels=0) + object item, img = 0 + + if match("#",stk) then + stk = split(stk,'#') + img = stk[1] + stk = stk[2] + goto "next" + end if + + if not match("#",stk) then + if match("gtk-",stk) then + img = stk + stk = "_" & proper(stk[5..$]) + end if + end if + + label "next" + + item = gtk_func("gtk_menu_item_new_with_mnemonic",{P},{allocate_string(stk,1)}) + register(item,GtkMenuItem) + + label "accels " + + if atom(img) and img = 0 then + item = mi_add_accelerator(item,accels) + else + item = mi_add_accelerator(item,accels,img) + end if + + return item + end function + + function mi_add_accelerator(atom item, object accels, object img = 0) + atom x = allocate(8,1) + integer key, mods + + object child = get(item,"child") + + if atom(img) and img = 0 then -- do nothing + else + img = get_icon_image(img,3) + end if + + if sequence(accels) then + gtk_proc("gtk_accelerator_parse", {P,P,P}, + {allocate_string(accels[2],1),x,x+4}) + + key = peek4u(x) mods = peek4u(x+4) + + gtk_proc("gtk_widget_add_accelerator",{P,P,P,I,I,I}, + {item,activate,accels[1],key,mods,GTK_ACCEL_VISIBLE}) + + if class_id(child) = -1 then + gtk_proc("gtk_accel_label_set_accel_widget",{P,P},{child,item}) + gtk_proc("gtk_accel_label_set_accel",{P,I,I},{child,key,mods}) + end if + end if + + gtk_proc("g_object_ref",{P},{child}) + gtk_proc("gtk_container_remove",{P,P},{item,child}) + + atom box = create(GtkButtonBox) + set(box,"margin left",0) + set(box,"layout",GTK_BUTTONBOX_START) + + if atom(img) and img > 0 then + add(box,img) + register(img,GtkImage) + set(box,"halign",0) + set(img,"margin left",0) + set(img,"margin right",0) + set(box,"child non_homogeneous",img,TRUE) + end if + + register(child,GtkAccelLabel) + pack_start(box,child,1,1) -- put the label back + + set(box,"child non_homogeneous",child,TRUE) + set(child,"halign",0) + set(child,"margin left",0) + + if sequence(accels) then + object txt = gtk_str_func("gtk_accelerator_get_label",{I,I},{key,mods}) + if string(txt) then + atom acc = create(GtkLabel) + set(acc,"padding",0,0) + set(acc,"markup",txt) + if sequence(ACCEL_FONT) then + set(acc,"font",ACCEL_FONT) + end if + add(box,acc) + set(box,"child secondary",acc,TRUE) + set(box,"child non_homogeneous",acc,TRUE) + end if + end if + + add(item,box) + + return item + end function + + function mi_set_label(atom item, object lbl) + if string(lbl) then lbl = allocate_string(lbl,1) end if + atom b = get(item,"child") + object list = get(b,"children") + if atom(list) then + list &= 0 + end if + + for i = 1 to length(list) do + if class_id(list[i]) = GtkAccelLabel then + gtk_proc("gtk_label_set_text",{P,P},{list[i],lbl}) + return 1 + end if + end for + + return 1 + end function + + export function mi_get_label(atom item) + atom b = get(item,"child") + object list = get(b,"children") + for i = 1 to length(list) do + if class_id(list[i]) = GtkAccelLabel then + return gtk_str_func("gtk_label_get_text",{P},{list[i]}) + end if + end for + return 0 + end function + + function mi_set_image(atom item, object img) + if string(img) then img = get_icon_image(img,GTK_ICON_SIZE_MENU) end if + img = get(img,"pixbuf") + atom b = get(item,"child") + object l = get(b,"children") + for i = 1 to length(l) do + if class_id(l[i]) = GtkImage then + gtk_proc("gtk_image_set_from_pixbuf",{P,P},{l[i],img}) + return 1 + end if + end for + return 1 + end function + + function gmi_get_image(atom item) + atom b = get(item,"child") + object l = get(b,"children") + for i = 1 to length(l) do + if class_id(l[i]) = GtkImage then + return l[i] + end if + end for + return 1 + end function + + function mi_set_use_underline(atom item, boolean use) + atom b = get(item,"child") + object l = get(b,"children") + for i = 1 to length(l) do + if class_id(l[i]) = GtkAccelLabel then + gtk_proc("gtk_label_set_use_underline",{P,B},{l[i],use}) + return 1 + end if + end for + return 1 + end function + + function mi_get_use_underline(atom item) + atom b = get(item,"child") + object l = get(b,"children") + l = to_sequence(l,1) + for i = 1 to length(l) do + if class_id(l[i]) = GtkAccelLabel then + return gtk_func("gtk_label_get_use_underline",{P},{l[i]}) + end if + end for + return 1 + end function + +widget[GtkImageMenuItem] = {"gtk_image_menu_item", +{GtkMenuItem,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{P,P,P,P},-routine_id("newMenuItem")}, +"GtkImageMenuItem"} + +widget[GtkRadioMenuItem] = {"gtk_radio_menu_item", +{GtkCheckMenuItem,GtkMenuItem,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{P,P,P,P,P},-routine_id("newRadioMenuItem")}, + {"set_group",{P,P}}, + {"get_group",{P},P}, + {"join_group",{P,P}}, -- 3.18 +"GtkRadioMenuItem"} + + function newRadioMenuItem(atom group, object stk, object fn, object data, object accels=0) + object item, img = 0 + + if match("#",stk) then + stk = split(stk,'#') + img = stk[1] + stk = stk[2] + goto "next" + end if + + if not match("#",stk) then + if match("gtk-",stk) then + img = stk + end if + end if + + label "next" + + if group = 0 then + item = gtk_func("gtk_radio_menu_item_new_with_mnemonic",{P,P}, + {group,allocate_string(stk,1)}) + else + item = gtk_func("gtk_radio_menu_item_new_with_mnemonic_from_widget", + {P,P},{group,allocate_string(stk,1)}) + end if + register(item,GtkMenuItem) + + if atom(img) and img = 0 then + item = mi_add_accelerator(item,accels) + else + item = mi_add_accelerator(item,accels,img) + end if + + return item + end function + +widget[GtkCheckMenuItem] = {"gtk_check_menu_item", +{GtkMenuItem,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{P,P,P,P},-routine_id("newCheckMenuItem")}, + {"set_active",{P,B}}, + {"get_active",{P},B}, + {"toggled",{P}}, + {"set_inconsistent",{P,B}}, + {"get_inconsistent",{P},B}, + {"set_draw_as_radio",{P,B}}, + {"get_draw_as_radio",{P},B}, +"GtkCheckMenuItem"} + + function newCheckMenuItem(object stk,object fn, object data, object accels=0) + object item, img = 0 + + if match("#",stk) then + stk = split(stk,'#') + img = stk[1] + stk = stk[2] + goto "next" + end if + + if not match("#",stk) then + if match("gtk-",stk) then + img = stk + end if + end if + + label "next" + + item = gtk_func("gtk_check_menu_item_new_with_mnemonic",{P},{allocate_string(stk,1)}) + register(item,GtkCheckMenuItem) + + if atom(img) and img = 0 then + item = mi_add_accelerator(item,accels) + else + item = mi_add_accelerator(item,accels,img) + end if + + return item + end function + +widget[GtkNumerableIcon] = {"gtk_numerable_icon", -- deprecated 3.14 +{GEmblemedIcon,GObject}, + {"new",{P},P,0,GIcon}, + {"new_with_style_context",{P,P},P,0,GIcon}, + {"get_background_gicon",{P},P,0,GIcon}, + {"set_background_gicon",{P,P}}, + {"get_background_icon_name",{P},S}, + {"set_background_icon_name",{P,S}}, + {"get_count",{P},I}, + {"set_count",{P,I}}, + {"get_label",{P},S}, + {"set_label",{P,S}}, + {"get_style_context",{P},P,0,GtkStyleContext}, + {"set_style_context",{P,P}}, +"GtkNumerableIcon"} + +widget[GtkEventBox] = {"gtk_event_box", +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"set_above_child",{P,B}}, + {"get_above_child",{P},B}, + {"set_visible_window",{P,B}}, + {"get_visible_window",{P},B}, +"GtkEventBox"} + +widget[GtkExpander] = {"gtk_expander", +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{P},-routine_id("newExpander")}, + {"set_spacing",{P,I}}, + {"get_spacing",{P},I}, + {"set_expanded",{P,B}}, + {"get_expanded",{P},B}, + {"set_label",{P,S}}, + {"get_label",{P},S}, + {"set_label_widget",{P,P}}, + {"get_label_widget",{P},P}, + {"set_label_fill",{P,B}}, + {"get_label_fill",{P},B}, + {"set_use_underline",{P,B}}, + {"get_use_underline",{P},B}, + {"set_use_markup",{P,B}}, + {"get_use_markup",{P},B}, + {"set_resize_toplevel",{P,B}}, + {"get_resize_toplevel",{P},B}, +"GtkExpander"} + + function newExpander(object caption="") + if string(caption) and match("_",caption) then + return gtk_func("gtk_expander_new_with_mnemonic",{P},{caption}) + else + return gtk_func("gtk_expander_new",{P},{caption}) + end if + end function + +widget[GtkToolItem] = {"gtk_tool_item", +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"set_homogeneous",{P,B}}, + {"get_homogeneous",{P},B}, + {"set_expand",{P,B}}, + {"get_expand",{P},B}, + {"set_tooltip_text",{P,S}}, + {"set_tooltip_markup",{P,S}}, + {"set_use_drag_window",{P,B}}, + {"get_use_drag_window",{P},B}, + {"set_visible_horizontal",{P,B}}, + {"get_visible_horizontal",{P},B}, + {"set_visible_vertical",{P,B}}, + {"get_visible_vertical",{P},B}, + {"set_is_important",{P,B}}, + {"get_is_important",{P},B}, + {"get_ellipsize_mode",{P},I}, + {"get_icon_size",{P},I}, + {"get_orientation",{P},I}, + {"get_toolbar_style",{P},I}, + {"get_relief_style",{P},I}, + {"get_text_alignment",{P},F}, + {"get_text_orientation",{P},I}, + {"retrieve_proxy_menu_item",{P},P,0,GtkMenuItem}, + {"set_proxy_menu_item",{P,S,P}}, + {"get_proxy_menu_item",{P,S},P,0,GtkMenuItem}, + {"rebuild_menu",{P}}, + {"toolbar_reconfigured",{P}}, + {"get_text_size_group",{P},P,0,GtkSizeGroup}, +"GtkToolItem"} + +widget[GtkToolButton] = {"gtk_tool_button", +{GtkToolItem,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{P,P},-routine_id("newToolButton")}, + {"set_label",{P,S}}, + {"get_label",{P},S}, + {"set_use_underline",{P,B}}, + {"get_use_underline",{P},B}, + {"set_stock_id",{P,S}}, -- deprecated 3.10 + {"get_stock_id",{P},S}, -- deprecated 3.10 + {"set_icon_name",{P,S}}, + {"get_icon_name",{P},S}, + {"set_icon_widget",{P,P}}, + {"get_icon_widget",{P},P,0,GtkWidget}, + {"set_label_widget",{P,P}}, + {"get_label_widget",{P},P,0,GtkWidget}, +"GtkToolButton"} + + function newToolButton(object icn=0, object lbl=0) + -------------------------------------------------- + atom btn = 0 + if string(icn) then + if match("gtk-",icn) = 1 then + btn = gtk_func("gtk_tool_button_new_from_stock",{P},{allocate_string(icn,1)}) + set(btn,"always show icon",TRUE) + return btn + else + icn = create(GtkImage,icn) + end if + end if + + if string(lbl) then + lbl = allocate_string(lbl,1) + end if + + btn = gtk_func("gtk_tool_button_new",{P,P},{icn,lbl}) + + return btn + end function + +widget[GtkMenuToolButton] = {"gtk_menu_tool_button", +{GtkToolButton,GtkToolItem,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{P,P},-routine_id("newMenuToolButton")}, + {"set_menu",{P,P}}, + {"get_menu",{P},P,0,GtkMenu}, + {"set_arrow_tooltip_text",{P,S}}, + {"set_arrow_tooltip_markup",{P,S}}, +"GtkMenuToolButton"} + + function newMenuToolButton(object icn=0, object lbl=0) + if string(icn) then + icn = create(GtkImage,icn,1) + end if + if string(lbl) then + lbl = allocate_string(lbl,1) + end if + atom btn = gtk_func("gtk_menu_tool_button_new",{P,P},{icn,lbl}) + return btn + end function + +widget[GtkToggleToolButton] = {"gtk_toggle_tool_button", +{GtkToolButton,GtkToolItem,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{S},-routine_id("newToggleToolButton")}, + {"set_active",{P,B}}, + {"get_active",{P},B}, +"GtkToggleToolButton"} + + function newToggleToolButton(object x) + atom btn + if string(x) then + btn = gtk_func("gtk_toggle_tool_button_new_from_stock",{S},{x}) + elsif atom(x) then + btn = gtk_func("gtk_toggle_tool_button_new") + if class_id(btn) = GdkPixbuf then + set(btn,"image",create(GtkImage,btn)) + end if + end if + return btn + end function + +widget[GtkRadioToolButton] = {"gtk_radio_tool_button", +{GtkToggleToolButton,GtkToolButton,GtkToolItem,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{P},-routine_id("newRadioToolButton")}, + {"set_group",{P,P}}, + {"get_group",{P},P}, +"GtkRadioToolButton"} + + function newRadioToolButton(atom id) + if class_id(id) = GtkRadioToolButton then + return gtk_func("gtk_radio_tool_button_new_from_widget",{P},{id}) + else + return gtk_func("gtk_radio_tool_button_new",{P},{id}) + end if + end function + +widget[GtkSeparatorToolItem] = {"gtk_separator_tool_item", +{GtkToolItem,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"set_draw",{P,B}}, + {"get_draw",{P},B}, +"GtkSeparatorToolItem"} + +widget[GtkOverlay] = {"gtk_overlay", +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"add_overlay",{P,P}}, + {"get_overlay_pass_through",{P,P},B}, -- 3.18 + {"set_overlay_pass_through",{P,P,B}}, -- 3.18 +"GtkOverlay"} + +widget[GtkScrollable] = {"gtk_scrollable", +{GObject}, + {"set_hadjustment",{P,P}}, + {"get_hadjustment",{P},P,0,GtkAdjustment}, + {"set_vadjustment",{P,P}}, + {"get_vadjustment",{P},P,0,GtkAdjustment}, + {"set_hscroll_policy",{P,I}}, + {"get_hscroll_policy",{P},I}, + {"set_vscroll_policy",{P,I}}, + {"get_vscroll_policy",{P},I}, + {"get_border",{P,P},B}, -- 3.16 +"GtkScrollable"} + +widget[GtkScrolledWindow] = {"gtk_scrolled_window", +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{P,P},P}, + {"set_hadjustment",{P,P}}, + {"get_hadjustment",{P},P,0,GtkAdjustment}, + {"set_vadjustment",{P,P}}, + {"get_vadjustment",{P},P,0,GtkAdjustment}, + {"get_hscrollbar",{P},P,0,GtkWidget}, + {"get_vscrollbar",{P},P,0,GtkWidget}, + {"set_policy",{P,I,I}}, + {"get_policy",{P,I,I}}, + {"set_placement",{P,I}}, + {"unset_placement",{P}}, + {"set_shadow_type",{P,I}}, + {"get_shadow_type",{P},I}, + {"set_min_content_width",{P,I}}, + {"get_min_content_width",{P},I}, + {"set_min_content_height",{P,I}}, + {"get_min_content_height",{P},I}, + {"set_kinetic_scrolling",{P,B}}, + {"get_kinetic_scrolling",{P},B}, + {"set_capture_button_press",{P,B}}, + {"get_capture_button_press",{P},B}, + {"set_headers",{P,P}}, + {"add_with_viewport",{P,P}}, -- deprecated 3.8 + {"get_overlay_scrolling",{P},B}, -- 3.16 + {"set_overlay_scrolling",{P,B}}, -- 3.16 +"GtkScrolledWindow"} + +widget[GtkSidebar] = {"gtk_sidebar", -- 3.16 +{GtkBin,GtkContainer,GtkWidget,GObject}, + {"new",{},P}, + {"set_stack",{P,P}}, + {"get_stack",{P},P,0,GtkStack}, +"GtkSidebar"} + +widget[GtkTextBuffer] = {"gtk_text_buffer", +{GObject}, + {"new",{P},P}, + {"get_line_count",{P},I}, + {"get_char_count",{P},I}, + {"get_tag_table",{P},P,0,GtkTextTagTable}, + {"insert",{P,P,S,I}}, + {"insert_at_cursor",{P,S,I}}, + {"insert_interactive",{P,P,S,I,B},B}, + {"insert_interactive_at_cursor",{P,S,I,B},B}, + {"insert_range",{P,P,P,P}}, + {"insert_range_interactive",{P,P,P,P,B},B}, + {"insert_with_tags",{P,P,S,I,P,P}}, + {"insert_with_tags_by_name",{P,P,S,I,S}}, + {"insert_markup",{P,P,S,I}}, -- 3.16 + {"delete",{P,P,P}}, + {"delete_interactive",{P,P,P,B},B}, + {"backspace",{P,P,B,B},B}, + {"set_text",{P,P},-routine_id("setBufferText")}, + {"get_text",{P},-routine_id("getBufferText")}, + {"get_slice",{P,P,P,B},S}, + {"insert_pixbuf",{P,P,P}}, + {"insert_child_anchor",{P,P,P}}, + {"create_child_anchor",{P,P},P,0,GtkTextChildAnchor}, + {"create_mark",{P,S,P,B},P,0,GtkTextMark}, + {"move_mark",{P,P,P}}, + {"move_mark_by_name",{P,S,P}}, + {"add_mark",{P,P,P}}, + {"delete_mark",{P,P}}, + {"delete_mark_by_name",{P,S}}, + {"get_mark",{P,S},P,0,GtkTextMark}, + {"get_insert",{P},P,0,GtkTextMark}, + {"get_selection_bound",{P},P,0,GtkTextMark}, + {"get_selection_bounds",{P},-routine_id("getSelectionBounds")}, + {"get_has_selection",{P},B}, + {"place_cursor",{P,P}}, + {"select_range",{P,P,P}}, + {"apply_tag",{P,P,P,P}}, + {"remove_tag",{P,P,P,P}}, + {"apply_tag_by_name",{P,S,P,P}}, + {"remove_tag_by_name",{P,S,P,P}}, + {"remove_all_tags",{P,P,P}}, + {"create_tag",{P,S,S,S},P,0,GtkTextTag}, + {"get_iter_at_line_offset",{P,P,I,I}}, + {"get_iter_at_offset",{P,P,I}}, + {"get_iter_at_line",{P,P,I}}, + {"get_iter_at_line_index",{P,P,I,I}}, + {"get_iter_at_mark",{P,P,P}}, + {"get_iter_at_child_anchor",{P,P,P}}, + {"get_start_iter",{P,P}}, + {"get_end_iter",{P,P}}, + {"get_bounds",{P,P,P}}, + {"set_modified",{P,B}}, + {"get_modified",{P},B}, + {"delete_selection",{P,B,B},B}, + {"paste_clipboard",{P,P,P,B}}, + {"copy_clipboard",{P,P}}, + {"cut_clipboard",{P,P,B}}, + {"get_selection_bounds",{P,P,P},B}, + {"begin_user_action",{P}}, + {"end_user_action",{P}}, + {"add_selection_clipboard",{P,P}}, + {"remove_selection_clipboard",{P,P}}, + {"deserialize",{P,P,I,P,I,I,P},B}, + {"deserialize_set_can_create_tags",{P,I,B}}, + {"deserialize_get_can_create_tags",{P,I},B}, + {"get_copy_target_list",{P},P,0,GtkTargetList}, + {"get_deserialize_formats",{P,I},P}, + {"get_paste_target_list",{P},P,0,GtkTargetList}, + {"get_serialize_formats",{P,I},P}, + {"register_deserialize_format",{P,S,P,P,P},P}, + {"register_deserialize_tagset",{P,S},P}, + {"register_serialize_format",{P,S,P,P,P},P}, + {"register_serialize_tagset",{P,S},P}, + {"serialize",{P,P,P,P,P,I},I}, + {"unregister_deserialize_format",{P,P}}, + {"unregister_serialize_format",{P,P}}, + {"insert_markup",{P,P,S,I}}, -- 3.16 +"GtkTextBuffer"} + + export constant + fnBufStart = define_proc("gtk_text_buffer_get_start_iter",{P,P}), + fnBufEnd = define_proc("gtk_text_buffer_get_end_iter",{P,P}), + fnBufGet = define_func("gtk_text_buffer_get_text",{P,P,P,B},S), + fnBufSet = define_proc("gtk_text_buffer_set_text",{P,S,I}), + fnBufIns = define_func("gtk_text_buffer_get_insert",{P},P), + fnBufIter = define_proc("gtk_text_buffer_get_iter_at_mark",{P,P,P}), + fnBufBounds = define_func("gtk_text_buffer_get_selection_bounds",{P,P,P},B) + + function getBufferText(object buf) + atom start = allocate(64) c_proc(fnBufStart,{buf,start}) + atom fini = allocate(64) c_proc(fnBufEnd,{buf,fini}) + object result = c_func(fnBufGet,{buf,start,fini,1}) + return peek_string(result) + end function + + function getSelectionBounds(object buf) + atom start = allocate(100) + atom fini = allocate(100) + atom iter = allocate(100) + if c_func(fnBufBounds,{buf,start,fini}) then + return {start,fini} + else + start = c_func(fnBufIns,{buf}) + c_proc(fnBufIter,{buf,iter,start}) + return {iter,iter} + end if + end function + + function setBufferText(object buf, object txt) + object len + if atom(txt) then + len = peek_string(txt) + len = length(len) + else + len = length(txt) + txt = allocate_string(txt) + end if + c_proc(fnBufSet,{buf,txt,len}) + return 1 + end function + +widget[GtkClipboard] = {"gtk_clipboard", +{GObject}, + {"new",{I},-routine_id("newClipboard")}, + {"get_default",{P},P,0,GtkClipboard},-- 3.16 + {"get_for_display",{P,I},P,0,GtkClipboard}, + {"get_display",{P},P,0,GdkDisplay}, + {"set_with_data",{P,P,I,P,P,P},B}, + {"set_with_owner",{P,P,I,P,P,P},B}, + {"get_owner",{P},P,0,GObject}, + {"clear",{P}}, + {"set_text",{P,S,I}}, + {"set_image",{P,P}}, + {"request_contents",{P,I,P,P}}, + {"request_text",{P,P,P}}, + {"request_image",{P,P,P}}, + {"request_targets",{P,P,P}}, + {"request_rich_text",{P,P,P,P}}, + {"request_uris",{P,P,P}}, + {"wait_for_contents",{P,I},P,0,GtkSelectionData}, + {"wait_for_text",{P},S}, + {"wait_for_image",{P},P,0,GdkPixbuf}, + {"wait_for_rich_text",{P,P,I,I},I}, + {"wait_for_uris",{P},A}, + {"wait_is_text_available",{P},B}, + {"wait_is_image_available",{P},B}, + {"wait_is_rich_text_available",{P,P},B}, + {"wait_is_uris_available",{P},B}, + {"wait_for_targets",{P,P,I},B}, + {"wait_is_target_available",{P,I},B}, + {"set_can_store",{P,P,I}}, + {"store",{P}}, + {"get_selection",{P},P}, -- 3.22 +"GtkClipboard"} + + function newClipboard(integer i=0) -- just use default clipboard; + return gtk_func("gtk_clipboard_get",{I},{i}) + end function + +widget[GtkSelectionData] = {"gtk_selection_data", +{0}, + {"set",{P,I,I,S,I}}, + {"set_text",{P,S,I},B}, + {"get_text",{P},S}, + {"set_pixbuf",{P,P},B}, + {"get_pixbuf",{P},P,0,GdkPixbuf}, + {"set_uris",{P,S},B}, + {"get_uris",{P},A}, + {"get_targets",{P,P,I},B}, + {"targets_include_image",{P,B},B}, + {"targets_include_text",{P},B}, + {"targets_include_uri",{P},B}, + {"targets_include_rich_text",{P,P},B}, + {"get_selection",{P},P}, + {"get_data",{P},S}, + {"get_length",{P},I}, + {"get_data_with_length",{P,I},S}, + {"get_data_type",{P},I}, + {"get_display",{P},P,0,GdkDisplay}, + {"get_format",{P},I}, + {"get_target",{P},I}, +"GtkSelectionData"} + +widget[GtkCellArea] = {"gtk_cell_area", +{GtkCellLayout,GtkBuildable,GObject}, + {"add",{P,P}}, + {"remove",{P,P}}, + {"set_property",{P,P,S,P}}, + {"get_property",{P,P,S,P}}, + {"has_renderer",{P,P},B}, + {"foreach",{P,P}}, + {"foreach_alloc",{P,P,P,P,P,P,P}}, + {"event",{P,P,P,P,P,I},I}, + {"render",{P,P,P,P,P,P,I,B}}, + {"get_cell_allocation",{P,P,P,P,P,P}}, + {"get_cell_at_position",{P,P,P,P,I,I,P},P,0,GtkCellRenderer}, + {"create_context",{P},P,0,GtkCellAreaContext}, + {"copy_context",{P,P},P,0,GtkCellAreaContext}, + {"get_request_mode",{P},I}, + {"get_preferred_width",{P,P,P,I,I}}, + {"get_preferred_height_for_width",{P,P,P,I,I,I}}, + {"get_preferred_height",{P,P,P,I,I}}, + {"get_preferred_width_for_height",{P,P,P,I,I,I}}, + {"get_current_path",{P},S}, + {"apply_attributes",{P,P,P,B,B}}, + {"attribute_connect",{P,P,S,I}}, + {"attribute_disconnect",{P,P,S}}, + {"attribute_get_column",{P,P,S},I}, -- 3.14 + {"is_activatable",{P},B}, + {"activate",{P,P,P,P,I,B},B}, + {"activate_cell",{P,P,P,P,P,I},B}, + {"focus",{P,I},B}, + {"set_focus_cell",{P,P}}, + {"get_focus_cell",{P},P,0,GtkCellRenderer}, + {"add_focus_sibling",{P,P,P}}, + {"remove_focus_sibling",{P,P,P}}, + {"is_focus_sibling",{P,P,P},B}, + {"get_focus_siblings",{P,P},X,0,GList}, + {"get_focus_from_sibling",{P,P},P,0,GtkCellRenderer}, + {"get_edited_cell",{P},P,0,GtkCellRenderer}, + {"get_edit_widget",{P},P,0,GtkCellEditable}, + {"stop_editing",{P,B}}, + {"inner_cell_area",{P,P,P,P}}, + {"request_renderer",{P,P,P,P,I,I,I}}, + {"class_install_property",{P,I,P}}, + {"class_find_cell_property",{P,S},P}, + {"class_list_cell_properties",{P,I},P}, +"GtkCellArea"} + +widget[GtkCellAreaCell] = {"gtk_cell_area_cell", +{GtkCellArea}, + {"set_property",{P,P,S,P}}, + {"get_property",{P,P,S,P}}, +"GtkCellAreaCell"} + +widget[GtkCellAreaBox] = {"gtk_cell_area_box", +{GtkCellLayout,GtkCellArea,GtkBuildable,GtkOrientable,GObject}, + {"new",{},P}, + {"pack_start",{P,P,B,B,B}}, + {"pack_end",{P,P,B,B,B}}, + {"set_spacing",{P,I}}, + {"get_spacing",{P},I}, +"GtkCellAreaBox"} + +widget[GtkCellAreaContext] = {"gtk_cell_area_context", +{GObject}, + {"get_area",{P},P,0,GtkCellArea}, + {"allocate",{P,I,I}}, + {"reset",{P}}, + {"get_preferred_width",{P,I,I}}, + {"get_preferred_height",{P,I,I}}, + {"get_preferred_height_for_width",{P,I,I,I}}, + {"get_preferred_width_for_height",{P,I,I,I}}, + {"get_allocation",{P,I,I}}, + {"push_preferred_width",{P,I,I}}, + {"push_preferred_height",{P,I,I}}, +"GtkCellAreaContext"} + +widget[GtkCellEditable] = {"gtk_cell_editable", +{GtkWidget}, + {"start_editing",{P,P}}, + {"editing_done",{P}}, + {"remove_widget",{P}}, +"GtkCellEditable"} + +widget[GtkCellLayout] = {"gtk_cell_layout", +{GObject}, + {"pack_start",{P,P,B}}, + {"pack_end",{P,P,B}}, + {"get_area",{P},P,0,GtkCellArea}, + {"get_cells",{P},X,0,GList}, + {"reorder",{P,P,I}}, + {"clear",{P}}, + {"add_attribute",{P,P,S,I}}, + {"set_cell_data_func",{P,P,P,P,P}}, + {"clear_attributes",{P,P}}, +"GtkCellLayout"} + +widget[GtkCellRenderer] = {"gtk_cell_renderer", +{GObject}, + {"set_fixed_size",{P,I,I}}, + {"get_fixed_size",{P,I,I}}, + {"set_visible",{P,B}}, + {"get_visible",{P},B}, + {"set_sensitive",{P,B}}, + {"get_sensitive",{P},B}, + {"set_alignment",{P,F,F}}, + {"get_alignment",{P,F,F}}, + {"set_padding",{P,I,I}}, + {"get_padding",{P,I,I}}, + {"get_state",{P,P,I},I}, + {"is_activatable",{P},B}, + {"get_aligned_area",{P,P,I,P,P}}, + {"render",{P,P,P,P,P,I}}, + {"activate",{P,P,P,P,P,P,I},B}, + {"start_editing",{P,P,P,P,P,P,I},P,0,GtkCellEditable}, + {"stop_editing",{P,B}}, + {"get_preferred_height",{P,P,I,I}}, + {"get_preferred_width",{P,P,I,I}}, + {"get_preferred_height_for_width",{P,P,I,I,I}}, + {"get_preferred_width_for_height",{P,P,I,I,I}}, + {"get_preferred_size",{P,P,P,P}}, + {"get_request_mode",{P},I}, +"GtkCellRenderer"} + +-- Many properties exist for cell renderers, see GTK docs! + +widget[GtkCellRendererAccel] = {"gtk_cell_renderer_accel", +{GtkCellRendererText,GtkCellRenderer,GObject}, + {"new",{},P}, +"GtkCellRendererAccel"} + +widget[GtkCellRendererCombo] = {"gtk_cell_renderer_combo", +{GtkCellRendererText,GtkCellRenderer,GObject}, + {"new",{},P}, +"GtkCellRendererCombo"} + +widget[GtkCellRendererText] = {"gtk_cell_renderer_text", +{GtkCellRenderer,GObject}, + {"new",{},P}, + {"set_fixed_height_from_font",{P,I}}, +"GtkCellRendererText"} + +widget[GtkCellRendererPixbuf] = {"gtk_cell_renderer_pixbuf", +{GtkCellRenderer,GObject}, + {"new",{},P}, +"GtkCellRendererPixbuf"} + +widget[GtkCellRendererProgress] = {"gtk_cell_renderer_progress", +{GtkOrientable,GtkCellRenderer,GObject}, + {"new",{},P}, +"GtkCellRendererProgress"} + +widget[GtkCellRendererSpin] = {"gtk_cell_renderer_spin", +{GtkCellRendererText,GtkCellRenderer,GObject}, + {"new",{},P}, +"GtkCellRendererSpin"} + +widget[GtkCellRendererSpinner] = {"gtk_cell_renderer_spinner", +{GtkCellRenderer,GObject}, + {"new",{},P}, +"GtkCellRendererSpinner"} + +widget[GtkCellRendererToggle] = {"gtk_cell_renderer_toggle", +{GtkCellRenderer,GObject}, + {"new",{},P}, + {"set_radio",{P,B}}, + {"get_radio",{P},B}, + {"set_active",{P,B}}, + {"get_active",{P},B}, + {"set_activatable",{P,B}}, + {"get_activatable",{P},B}, +"GtkCellRendererToggle"} + +widget[GtkTreeModelFilter] = {"gtk_tree_model_filter", +{GtkTreeModel,GtkTreeDragSource,GObject}, + {"new",{P,P},P}, + {"set_visible_func",{P,P,P,P}}, + {"set_modify_func",{P,I,P,P,P,P}}, + {"set_visible_column",{P,I}}, + {"get_model",{P},P,0,GtkTreeModel}, + {"convert_child_iter_to_iter",{P,P,P},B}, + {"convert_iter_to_child_iter",{P,P,P},B}, + {"convert_child_path_to_path",{P,P},P,0,GtkTreePath}, + {"convert_path_to_child_path",{P,P},P,0,GtkTreePath}, + {"refilter",{P}}, + {"clear_cache",{P}}, +"GtkTreeModelFilter"} + +widget[GtkTreeModelSort] = {"gtk_tree_model_sort", +{GtkTreeSortable,GtkTreeModel,GtkTreeDragSource,GObject}, + {"new_with_model",{P},P}, + {"get_model",{P},P,0,GtkTreeModel}, + {"convert_child_path_to_path",{P,P},P,0,GtkTreePath}, + {"convert_child_iter_to_iter",{P,P,P},B}, + {"convert_path_to_child_path",{P,P},P,0,GtkTreePath}, + {"convert_iter_to_child_iter",{P,P,P}}, + {"reset_default_sort_func",{P}}, + {"clear_cache",{P}}, +"GtkTreeModelSort"} + +widget[GtkListStore] = {"gtk_list_store", +{GtkTreeModel,GtkTreeSortable,GtkTreeDragSource,GtkTreeDragDest,GtkBuildable,GObject}, + {"new",{P},-routine_id("newListStore")}, + {"clear",{P}}, + {"set_data",{P,P},-routine_id("ls_set_data")}, + {"get_data",{P},-routine_id("ls_get_data")}, + {"get_n_rows",{P},-routine_id("ls_get_n_rows")}, + {"get_n_cols",{P},-routine_id("ls_get_n_cols")}, + {"set_row_data",{P,I,P},-routine_id("ls_set_row_data")}, + {"get_row_data",{P,I},-routine_id("ls_get_row_data")}, + {"set_col_data",{P,I,I,P},-routine_id("ls_set_col_data")}, + {"get_col_data",{P,I,I},-routine_id("ls_get_col_data")}, + {"get_col_data_from_iter",{P,I,I},-routine_id("ls_get_col_data_from_iter")}, + {"remove_row",{P,I},-routine_id("ls_remove_row")}, + {"replace_row",{P,I,P},-routine_id("ls_replace_row")}, + {"insert_row",{P,I,P},-routine_id("ls_insert_row")}, + {"prepend_row",{P,P},-routine_id("ls_prepend_row")}, + {"append_row",{P,P},-routine_id("ls_append_row")}, + {"set_swap_rows",{P,I,I},-routine_id("ls_set_swap_rows")}, + {"set_move_before",{P,I,I},-routine_id("ls_set_move_before")}, + {"set_move_after",{P,I,I},-routine_id("ls_set_move_after")}, +"GtkListStore"} + +-- almost all calls to GtkListStore are overridden with Euphoria calls, +-- because the GTK versions are just too complex and tedious to set up, +-- making them impractical to use. + +constant + TM1 = define_func("gtk_tree_model_get_iter_first",{P,P},I), + TM2 = define_func("gtk_tree_model_iter_next",{P,P},I), + TM3 = define_func("gtk_tree_model_get_iter_from_string",{P,P,P},P), + TM4 = define_proc("gtk_tree_model_get",{P,P,I,P,I}), + TM5 = define_func("gtk_tree_model_get_column_type",{P,I},I), + LS0 = define_proc("gtk_list_store_clear",{P}), + LS1 = define_proc("gtk_list_store_insert",{P,P,I}), + LS2 = define_proc("gtk_list_store_append",{P,P}), + LS3 = define_proc("gtk_list_store_swap",{P,P,P}), + LS4 = define_proc("gtk_list_store_move_before",{P,P,P}), + LS5 = define_proc("gtk_list_store_move_after",{P,P,P}), + LS6 = define_func("gtk_list_store_iter_is_valid",{P,P},B) + + function newListStore(object params) + object proto = I & repeat(P,length(params)) + params = length(params) & params -- must build func params 'on the fly' + atom fn = define_func("gtk_list_store_new",proto,P) + return c_func(fn,params) + end function + + function ls_get_n_rows(object store) + return gtk_func("gtk_tree_model_iter_n_children",{P,P},{store,0}) + end function + + function ls_get_n_cols(object store) + return gtk_func("gtk_tree_model_get_n_columns",{P},{store}) + end function + + function ls_set_data(object store, object data) + atom iter = allocate(32,1) + for row = 1 to length(data) do + c_proc(LS1,{store,iter,length(data)}) -- new row + if string(data[row]) then + ls_set_row_data(store,row,{data[row]}) + else + ls_set_row_data(store,row,data[row]) + end if + end for + return 1 + end function + + function ls_set_row_data(atom store, integer row, object data) + integer max_col = ls_get_n_cols(store) + for col = 1 to math:min({length(data),max_col}) do + ls_set_col_data(store,row,col,data[col]) + end for + return 1 + end function + + function ls_set_col_data(object store, object row, integer col, object data) + integer max_col = ls_get_n_cols(store) + + if col < 1 or col > max_col then + crash("Invalid column #%d",col) + end if + + atom s = allocate_string(sprintf("%d",row-1),1) + atom iter = allocate(32,1) + if not c_func(TM3,{store,iter,s}) then + return -1 + end if + + object prototype = {P,P,I,P,I} + + integer col_type = c_func(TM5,{store,col-1}) + + switch col_type do + case gSTR then prototype = {P,P,I,S,I} + if atom(data) then data = sprintf("%2.2f",data) end if + case gDBL,gFLT then prototype = {P,P,I,D,I} + case gPIX then prototype = {P,P,I,P,I} + case gINT,gBOOL then prototype = {P,P,I,I,I} + case else + display("Error in []->ls_set_col_data: col [] type [] expects [], got []", + {get(store,"name"),col,col_type,vlookup(col_type,storage_types,1,2,"!"),data}) + ?1/0 + end switch + + if string(data) then + data = allocate_string(data) -- don't free these strings! + end if + + atom fn = define_proc("gtk_list_store_set",prototype) + object params = {store,iter,col-1,data,-1} + c_proc(fn,params) + + return 1 + end function + + function ls_get_data(object store) + object data = {} + for row = 1 to ls_get_n_rows(store) do + data = append(data,ls_get_row_data(store,row)) + end for + return data + end function + + function ls_get_row_data(object store, integer row) + object data = {} + + integer max_row = ls_get_n_rows(store) + if row > max_row then return -1 end if + + integer max_col = ls_get_n_cols(store) + for i = 1 to max_col do + data = append(data,ls_get_col_data(store,row,i)) + end for + if max_col = 1 then + return data[1] else return data + end if + end function + + function ls_get_col_data(atom store, integer row, integer col) + atom x = allocate(32,1) + object result + + ifdef LISTSTORE then + display("Get Col Data ~ row [] col []",{row,col}) + end ifdef + + integer col_type = c_func(TM5,{store,col-1}) + ifdef BITS64 then + poke8(x,col_type) + elsedef + poke4(x,col_type) + end ifdef + + atom iter = allocate(32,1) + + c_func(TM3,{store,iter,allocate_string(sprintf("%d",row-1),1)}) + if gtk_func("gtk_list_store_iter_is_valid",{P,P},{store,iter}) = 0 then + display("Error in ls_get_col_data 2 ") abort(0) end if + + c_proc(TM4,{store,iter,col-1,x,-1}) + if gtk_func("gtk_list_store_iter_is_valid",{P,P},{store,iter}) = 0 then + display("Error in ls_get_col_data 3") abort(0) end if + + switch col_type do + case gSTR then + ifdef BITS64 then -- thanks pete eberlein + result = peek8u(x) + elsedef + result = peek4u(x) + end ifdef + if result > 0 then + result = peek_string(result) + end if + case gINT then result = peek4u(x) + case gBOOL then result = peek(x) + case gDBL then result = float64_to_atom(peek({x,8})) + case gFLT then result = float32_to_atom(peek({x,4})) + case gPIX then result = peek4u(x) + case else display("Error in ls_get_col_data 4") abort(0) + end switch + ifdef LISTSTORE then + display("Result []",{result}) + end ifdef + return result + end function + + function ls_get_col_data_from_iter(atom store, atom iter, integer col) + atom x = allocate(64,1) + object result + + ifdef LISTSTORE then + display("Get Col Data from Iter ~ store [] iter [] col []\n",{store,iter,col}) + end ifdef + + integer col_type = c_func(TM5,{store,col-1}) + ifdef BITS64 then + poke8(x,col_type) + elsedef + poke4(x,col_type) + end ifdef + + if gtk_func("gtk_list_store_iter_is_valid",{P,P},{store,iter}) = 0 then + display("Error in ls_get_col_datafromiter 1 ") abort(0) end if + + c_proc(TM4,{store,iter,col-1,x,-1}) + + if gtk_func("gtk_list_store_iter_is_valid",{P,P},{store,iter}) = 0 then + display("Error in ls_get_col_datafromiter 2 ") abort(0) end if + + switch col_type do + case gSTR then + ifdef BITS64 then -- thanks pete eberlein + result = peek8u(x) + elsedef + result = peek4u(x) + end ifdef + if result > 0 then + result = peek_string(result) + end if + case gINT then result = peek4u(x) + case gBOOL then result = peek(x) + case gDBL then result = float64_to_atom(peek({x,8})) + case gFLT then result = float32_to_atom(peek({x,4})) + case gPIX then result = peek4u(x) + case else display("Error in ls_get_col_datafromiter 3") abort(0) + end switch + ifdef LISTSTORE then + display("Result []",{result}) + end ifdef + return result + end function + + function ls_insert_row(object store, object data, integer pos) + object tmp = ls_get_data(store) + tmp = insert(tmp,data,pos) + set(store,"clear") + ls_set_data(store,tmp) + return tmp + end function + + function ls_append_row(atom store, object data) + object tmp = ls_get_data(store) + tmp = append(tmp,data) + set(store,"clear") + set(store,"data",tmp) + return tmp + end function + + function ls_prepend_row(atom store, object data) + object tmp = ls_get_data(store) + tmp = prepend(tmp,data) + set(store,"clear") + set(store,"data",tmp) + return tmp + end function + + function ls_remove_row(atom store, integer row) + object tmp = ls_get_data(store) + tmp = remove(tmp,row) + set(store,"clear") + ls_set_data(store,tmp) + return tmp + end function + + function ls_replace_row(atom store, object data, integer row) + object tmp = ls_get_data(store) + set(store,"clear") + tmp = replace(tmp,{data},row) + ls_set_data(store,tmp) + return tmp + end function + + function ls_set_swap_rows(atom store, integer row_a, integer row_b) + if get(store,"is sorted") then + Warn(0,,"Can't move items in a sorted list!") + return -1 + end if + atom iter_a = allocate(32,1), iter_b = allocate(32,1) + c_func(TM3,{store,iter_a,allocate_string(sprintf("%d",row_a-1),1)}) + c_func(TM3,{store,iter_b,allocate_string(sprintf("%d",row_b-1),1)}) + c_proc(LS3,{store,iter_a,iter_b}) + return get(store,"data") + end function + + function ls_set_move_before(atom store, integer row_a, integer row_b) + if get(store,"is sorted") then + Error(0,,"Can't move items in a sorted list!") + return -1 + end if + atom iter_a = allocate(32,1), iter_b = allocate(32,1) + c_func(TM3,{store,iter_a,allocate_string(sprintf("%d",row_a-1),1)}) + c_func(TM3,{store,iter_b,allocate_string(sprintf("%d",row_b-1),1)}) + c_proc(LS4,{store,iter_b,iter_a}) + return get(store,"data") + end function + + function ls_set_move_after(atom store, integer row_a, integer row_b) + if get(store,"is sorted") then + Error(0,,"Can't move items in a sorted list!") + return -1 + end if + atom iter_a = allocate(32,1), iter_b = allocate(32,1) + c_func(TM3,{store,iter_a,allocate_string(sprintf("%d",row_a-1),1)}) + c_func(TM3,{store,iter_b,allocate_string(sprintf("%d",row_b-1),1)}) + c_proc(LS5,{store,iter_b,iter_a}) + return get(store,"data") + end function + +widget[GtkTreeStore] = {"gtk_tree_store", +{GtkTreeModel,GtkTreeDragSource,GtkTreeDragDest,GtkTreeSortable,GtkBuildable,GObject}, + {"new",{P},-routine_id("newTreeStore")}, + {"get_n_rows",{P},-routine_id("ts_get_n_rows")}, + {"get_n_cols",{P},-routine_id("ts_get_n_cols")}, + {"get_data",{P},-routine_id("ts_get_data")}, + {"set_data",{P,P},-routine_id("ts_set_data")}, + {"set_row_data",{P,P,P},-routine_id("ts_set_row_data")}, + {"remove_row",{P,I},-routine_id("ts_remove_row")}, + {"insert_row",{P,P,P,I}}, + {"insert_before",{P,P,P,P}}, + {"insert_after",{P,P,P,P}}, + {"prepend",{P,P,P}}, + {"append",{P,P,P}}, + {"is_ancestor",{P,P,P},B}, + {"iter_depth",{P,P},I}, + {"clear",{P}}, + {"swap",{P,P,P}}, + {"move_before",{P,P,P}}, + {"move_after",{P,P,P}}, +"GtkTreeStore"} + + function newTreeStore(object params) + object proto = I & repeat(P,length(params)) + params = length(params) & params -- must build func params 'on the fly' + atom fn = define_func("gtk_tree_store_new",proto,P) + return c_func(fn,params) + end function + + function ts_get_n_rows(object store) + return gtk_func("gtk_tree_model_iter_n_children",{P,P},{store,0}) + end function + + function ts_get_n_cols(object store) + return gtk_func("gtk_tree_model_get_n_columns",{P},{store}) + end function + + function ts_set_data(object store, object data) + atom iter = allocate(32,1) + for row = 1 to length(data) do + gtk_proc("gtk_tree_store_append",{P,P,P},{store,iter,0}) + ts_set_row_data(store,data[row],iter) + end for + return 1 + end function + + constant TSA = define_proc("gtk_tree_store_append",{P,P,P}) + + -- the following should really be recursive, but that's too complicated + -- for me to figure out! Anyway, four deep should be enough. + + function ts_set_row_data(atom store, object data, object parent = 0) + atom iter1 = allocate(32,1) + atom iter2 = allocate(32,1) + atom iter3 = allocate(32,1) + atom iter4 = allocate(32,1) + for i = 1 to length(data) do + if string(data[i]) then + ts_set_row_col_data(store,parent,i,data[i]) + else + for j = 1 to length(data[i]) do + if string(data[i][j]) then + c_proc(TSA,{store,iter1,parent}) + ts_set_row_col_data(store,iter1,1,data[i][j]) + else + for k = 1 to length(data[i][j]) do + if string(data[i][j][k]) then + c_proc(TSA,{store,iter2,iter1}) + ts_set_row_col_data(store,iter2,1,data[i][j][k]) + else + for l = 1 to length(data[i][j][k]) do + if string(data[i][j][k][l]) then + c_proc(TSA,{store,iter3,iter2}) + ts_set_row_col_data(store,iter3,1,data[i][j][k][l]) + else + for m = 1 to length(data[i][j][k][l]) do + c_proc(TSA,{store,iter4,iter3}) + ts_set_row_col_data(store,iter4,1,data[i][j][k][l][m]) + end for + end if + end for + end if + end for + end if + end for + end if + end for + return 1 + end function + + function ts_set_row_col_data(object store, object iter, integer col, object item) + integer max_col = ts_get_n_cols(store) + if col < 1 or col > max_col then + crash("Invalid column #%d",col) + end if + + object prototype = {P,P,I,P,I} + + integer col_type + + col_type = c_func(TM5,{store,col-1}) + switch col_type do + case gDBL,gFLT then prototype = {P,P,I,D,I} + case gSTR, gPIX then prototype = {P,P,I,P,I} + case gBOOL,gINT then prototype = {P,P,I,I,I} + if atom(item) then item = sprintf("%g",item) end if + case else Warn(,,"Unknown column type", + "Expecting gSTR, gBOOL, gINT, gDBL, gFLT, or gPIX") + end switch + + if string(item[1]) then item = item[1] end if + if string(item) then item = allocate_string(item,1) end if + + atom fn = define_proc("gtk_tree_store_set",prototype) + object params = {store,iter,col-1,item,-1} + c_proc(fn,params) + + return iter + end function + + function ts_get_data(atom store) + object rowdata = {} + object column = {} + for row = 1 to ts_get_n_rows(store) do + for col = 1 to ts_get_n_cols(store) do + column = append(column,get(store,"col data",col)) + end for + rowdata = append(rowdata,column) + column = {} + end for + return rowdata + end function + + function ts_remove_row(atom store, integer row) + object tmp = get(store,"data") + tmp = remove(tmp,row) + set(store,"data",tmp) + return tmp + end function + +widget[GtkTreeDragSource] = {"gtk_tree_drag_source", +{0}, +"GtkTreeDragSource"} + +widget[GtkTreeDragDest] = {"gtk_tree_drag_dest", +{0}, +"GtkTreeDragDest"} + +widget[GtkTreePath] = {"gtk_tree_path", +{GObject}, + {"new",{P},-routine_id("newTreePath")}, + {"to_string",{P},S}, + {"to_integer",{P},-routine_id("tp_to_integer")}, + {"new_first",{},P,0,GtkTreePath}, + {"append_index",{P,I}}, + {"prepend_index",{P,I}}, + {"get_depth",{P},I}, + {"get_indices",{P},A}, + {"get_indices_with_depth",{P,I},A}, + {"free",{P}}, + {"copy",{P},P,0,GtkTreePath}, + {"compare",{P,P},I}, + {"next",{P}}, + {"prev",{P},B}, + {"up",{P},B}, + {"down",{P}}, + {"is_ancestor",{P,P},B}, + {"is_descendant",{P,P},B}, +"GtkTreePath"} + + function newTreePath(object x=0) + if atom(x) and x > 0 then + x = sprintf("%d",x-1) + end if + if string(x) then + x = allocate_string(x,1) + end if + if x > 0 then + return gtk_func("gtk_tree_path_new_from_string",{P},{x}) + else + return gtk_func("gtk_tree_path_new",{},{}) + end if + end function + + function tp_to_integer(object x) + integer n = to_number(gtk_str_func("gtk_tree_path_to_string",{P},{x})) + return n+1 + end function + +widget[GtkTreeRowReference] = {"gtk_tree_row_reference", +{GObject}, + {"new",{P,P},P,0,GtkTreeRowReference}, + {"get_model",{P},P,0,GtkTreeModel}, + {"get_path",{P},P,0,GtkTreePath}, + {"valid",{P},B}, + {"free",{P}}, + {"copy",{P},P,0,GtkTreeRowReference}, + {"inserted",{P,P}}, + {"deleted",{P,P}}, + {"reordered",{P,P,P,A}}, +"GtkTreeRowReference"} + +widget[GtkTreeIter] = {"gtk_tree_iter", +{GObject}, + {"new",{},-routine_id("newTreeIter")}, + {"copy",{P},P,0,GtkTreeIter}, + {"free",{P}}, +"GtkTreeIter"} + + function newTreeIter() + return allocate(64) -- keep; + end function + +widget[GtkTreeModel] = {"gtk_tree_model", +{GObject}, + {"get_flags",{P},I}, + {"get_n_columns",{P},I}, + {"get_column_type",{P,I},I}, + {"get_iter",{P,P,P},B}, + {"get_iter_first",{P,P},B}, + {"get_path",{P,P},P,0,GtkTreePath}, + {"get_value",{P,P,I},-routine_id("tm_get_value")}, + {"set_value",{P,I,I,P},-routine_id("tm_set_value")}, + {"iter_next",{P,P},B}, + {"iter_previous",{P,P},B}, + {"iter_children",{P,P,P},B}, + {"iter_has_child",{P,P},B}, + {"iter_n_children",{P,P},I}, + {"iter_nth_child",{P,P,P,I},B}, + {"iter_parent",{P,P,P},B}, + {"get_string_from_iter",{P,P},-routine_id("tm_get_string_from_iter")}, + {"ref_node",{P,P}}, + {"unref_node",{P,P}}, + {"foreach",{P,P,P}}, + {"n_rows",{P},-routine_id("tm_get_n_rows")}, + {"row_changed",{P,P,P}}, + {"row_inserted",{P,P,P}}, + {"row_has_child_toggled",{P,P,P}}, + {"row_deleted",{P,P}}, + {"rows_reordered",{P,P,P,P}}, + {"get_iter_n",{P,I},-routine_id("tm_get_iter_n")}, + {"get_iter_from_string",{P,P},-routine_id("tm_get_iter_from_string")}, + {"get_iter_from_path",{P,P},-routine_id("tm_get_iter_from_path")}, + {"get_col_value",{P,P,I},-routine_id("tm_get_col_value")}, + {"get_row_values",{P,P},-routine_id("tm_get_row_values")}, + {"get_col_data",{P,P,P},-routine_id("tm_get_col_data")}, + {"get_row_data",{P,I},-routine_id("tm_get_row_values")}, +"GtkTreeModel"} + + constant + fntmget = define_proc("gtk_tree_model_get_value",{P,P,I,P}), + fncoltype = define_func("gtk_tree_model_get_column_type",{P,I},I), + gtvfn = define_proc("gtk_tree_model_get",{P,P,I,P,I}), + tmncol = define_func("gtk_tree_model_get_n_columns",{P},I) + + function tm_get_n_rows(atom model) + atom fn = define_func("gtk_tree_model_iter_n_children",{P,P},I) + return c_func(fn,{model,0}) + end function + + function tm_get_string_from_iter(atom model, atom iter) + atom fn = define_func("gtk_tree_model_get_string_from_iter",{P,P},P) + return peek_string(c_func(fn,{model,iter})) + end function + + function tm_get_iter_from_string(atom model, object str) + atom iter = allocate(64) + atom fn = define_func("gtk_tree_model_get_iter_from_string",{P,P,P},P) + if string(str) then str = allocate_string(str,1) end if + if c_func(fn,{model,iter,str}) then + return iter + end if + return 0 + end function + + function tm_get_iter_n(atom model, integer path) + return tm_get_iter_from_string(model,sprintf("%d",path-1)) + end function + + function tm_get_iter_from_path(atom model, object path) + return tm_get_iter_from_string(model,peek_string(path)) + end function + + function tm_get_value(atom mdl, atom iter, integer col) + atom x = allocate(64,1) + integer ct = c_func(fncoltype,{mdl,col-1}) + object result + + ifdef BITS64 then + poke8(x,ct) + elsedef + poke4(x,ct) + end ifdef + + c_proc(gtvfn,{mdl,iter,col-1,x,-1}) + switch ct do + case gSTR then + ifdef BITS64 then -- thanks pete eberlein + result = peek8u(x) + elsedef + result = peek4u(x) + end ifdef + if result > 0 then + return peek_string(result) + else + return sprintf("%d",result) + end if + case gBOOL,gINT then return peek4u(x) + case gFLT then return float32_to_atom(peek({x,4})) + case gPIX then return peek4u(x) + case else return sprintf("%d",x) + end switch + return sprintf("Oops %d",ct) + end function + + function tm_get_row_values(atom mdl, atom iter) + integer ncols = c_func(tmncol,{mdl}) + object results = repeat(0,ncols) + for n = 1 to ncols do + results[n] = tm_get_value(mdl,iter,n) + end for + return results + end function + + function tm_get_col_value(atom mdl, integer row, integer col) + atom iter = allocate(32,1) + object data = tm_get_row_values(mdl,iter) + return data[col] + end function + + function tm_set_col_value(atom mdl, integer row, integer col, object data) + atom iter = tm_get_iter_n(mdl,row) + atom fn = define_proc("gtk_list_store_set",{P,P,I,P,I}) + if string(data) then data = allocate_string(data,1) end if + c_proc(fn,{mdl,iter,col-1,data,-1}) + return 1 + end function + + function tm_get_col_data(atom mdl, integer row, integer col) + atom iter = tm_get_iter_n(mdl,row) + object data = tm_get_row_values(mdl,iter) + return data[col] + end function + +widget[GtkTreeSortable] = {"gtk_tree_sortable", +{GtkTreeModel,GObject}, + {"sort_column_changed",{P}}, + {"set_sort_column_id",{P,I,I}}, + {"get_sort_column_id",{P},-routine_id("ts_get_sort_col_id")}, + {"get_sort_order",{P},-routine_id("ts_get_sort_order")}, + {"is_sorted",{P},-routine_id("ts_is_sorted")}, + {"set_sort_func",{P,I,P,P,P}}, + {"set_default_sort_func",{P,P,P,P}}, + {"has_default_sort_func",{P},B}, +"GtkTreeSortable"} + + function ts_is_sorted(atom mdl) + return gtk_func("gtk_tree_sortable_get_sort_column_id",{P,P,P},{mdl,0,0}) + end function + + function ts_get_sort_col_id(atom mdl) + integer col = allocate(32,1), order = allocate(32,1) + if gtk_func("gtk_tree_sortable_get_sort_column_id",{P,P,P},{mdl,col,order}) then + return peek4u(col)+1 + else + return -1 + end if + end function + + function ts_get_sort_order(atom mdl) + integer col = allocate(32,1), order = allocate(32,1) + if gtk_func("gtk_tree_sortable_get_sort_column_id",{P,P,P},{mdl,col,order}) then + return peek4u(order) + else + return -1 + end if + end function + +widget[GtkViewport] = {"gtk_viewport", +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkScrollable,GObject}, + {"new",{P,P},P}, + {"set_shadow_type",{P,I}}, + {"get_shadow_type",{P},I}, + {"get_bin_window",{P},P,0,GdkWindow}, + {"get_view_window",{P},P,0,GdkWindow}, +"GtkViewport"} + +widget[GtkAppChooserWidget] = {"gtk_app_chooser_widget", +{GtkBox,GtkContainer,GtkWidget,GtkBuildable,GtkOrientable,GtkAppChooser,GObject}, + {"new",{S},P}, + {"set_show_default",{P,B}}, + {"get_show_default",{P},B}, + {"set_show_recommended",{P,B}}, + {"get_show_recommended",{P},B}, + {"set_show_fallback",{P,B}}, + {"get_show_fallback",{P},B}, + {"set_show_other",{P,B}}, + {"get_show_other",{P},B}, + {"set_show_all",{P,B}}, + {"get_show_all",{P},B}, + {"set_default_text",{P,S}}, + {"get_default_text",{P},S}, +"GtkAppChooserWidget"} + +widget[GtkVolumeButton] = {"gtk_volume_button", +{GtkScaleButton,GtkButton,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkOrientable,GtkActionable,GObject}, + {"new",{},P}, +"GtkVolumeButton"} + +widget[GtkColorChooserWidget] = {"gtk_color_chooser_widget", +{GtkColorChooser,GtkBox,GtkContainer,GtkWidget,GtkBuildable,GtkOrientable,GObject}, + {"new",{},P}, +"GtkColorChooserWidget"} + +widget[GtkColorChooser] = {"gtk_color_chooser", +{GObject}, + {"set_rgba",{P,P},-routine_id("cc_set_rgba")}, + {"get_rgba",{P,I},-routine_id("cc_get_rgba")}, + {"set_use_alpha",{P,B},-routine_id("cc_set_alpha")}, + {"get_use_alpha",{P},-routine_id("cc_get_alpha")}, + {"add_palette",{P,I,I,I,A}}, +"GtkColorChooser"} + + function cc_set_rgba(atom x, object c) + if string(c) then + c = to_rgba(c) + else + c = to_rgba(text:format("#[X]",c)) + end if + gtk_proc("gtk_color_chooser_set_rgba",{P,P},{x,c}) + return 1 + end function + + function cc_get_rgba(atom x, integer fmt) + atom fn = define_proc("gtk_color_chooser_get_rgba",{P,P}) + atom rgba = allocate(32,1) + c_proc(fn,{x,rgba}) + object c = gtk_func("gdk_rgba_to_string",{P},{rgba}) + return fmt_color(c,fmt) + end function + + function cc_set_alpha(atom x, integer b) + gtk_proc("gtk_color_chooser_set_use_alpha",{P,B},{x,b}) + return 1 + end function + + function cc_get_alpha(atom x) + atom fn = define_func("gtk_color_chooser_get_use_alpha",{P},B) + return c_func(fn,{x}) + end function + +widget[GtkColorSelection] = {"gtk_color_selection", -- deprecated +{GtkBox,GtkContainer,GtkWidget,GtkBuildable,GtkOrientable,GObject}, + {"new",{},P}, + {"set_has_opacity_control",{P,B}}, + {"get_has_opacity_control",{P},B}, + {"set_has_palette",{P,B}}, + {"get_has_palette",{P},B}, + {"set_current_rgba",{P,S},-routine_id("cs_set_current_rgba")}, + {"get_current_rgba",{P,I},-routine_id("cs_get_current_rgba")}, + {"set_current_alpha",{P,I}}, + {"get_current_alpha",{P},I}, + {"set_previous_rgba",{P,S},-routine_id("cs_set_previous_rgba")}, + {"get_previous_rgba",{P,I},-routine_id("cs_get_previous_rgba")}, + {"set_previous_alpha",{P,I}}, + {"get_previous_alpha",{P},I}, + {"is_adjusting",{P},B}, +"GtkColorSelection"} + +------------------------------------------------------------------------ +-- following color functions make using RGB colors much easier, +-- converting automatically between various color notations +------------------------------------------------------------------------ + + function cs_set_current_rgba(atom x, object c) + c =peek_string(c) + gtk_proc("gtk_color_selection_set_current_rgba",{P,P},{x,to_rgba(c)}) + return 1 + end function + + function cs_set_previous_rgba(atom x, object c) + c = peek_string(c) + gtk_proc("gtk_color_selection_set_previous_rgba",{P,P},{x,to_rgba(c)}) + return 1 + end function + + function cs_get_current_rgba(atom x, integer fmt=0) + atom rgba = allocate(32,1) + atom fn = define_proc("gtk_color_selection_get_current_rgba",{P,P}) + c_proc(fn,{x,rgba}) + object c = gtk_func("gdk_rgba_to_string",{P},{rgba}) + return fmt_color(c,fmt) + end function + + function cs_get_previous_rgba(atom x, integer fmt=0) + atom rgba = allocate(32,1) + atom fn = define_proc("gtk_color_selection_get_previous_rgba",{P,P}) + c_proc(fn,{x,rgba}) + object c = gtk_func("gdk_rgba_to_string",{rgba}) + return fmt_color(c,fmt) + end function + +widget[GtkNativeDialog] = {"gtk_native_dialog", +{}, + {"show",{P}}, + {"hide",{P}}, + {"destroy",{P}}, + {"get_visible",{P},B}, + {"set_modal",{P,B}}, + {"get_modal",{P},B}, + {"set_title",{P,S}}, + {"get_title",{P},S}, + {"set_transient_for",{P,P}}, + {"get_transient_for",{P},P}, + {"run",{P}}, +"GtkNativeDialog"} + +widget[GtkFileChooserNative] = {"gtk_file_chooser_native", +{}, + {"new",{S,P,I,S,S},P}, + {"get_accept_label",{P},S}, + {"set_accept_label",{P,S}}, + {"get_cancel_label",{P},S}, + {"set_cancel_label",{P,S}}, +"GtkFileChooserNative"} + +widget[GtkFileChooser] = {"gtk_file_chooser", +{GtkWidget}, + {"set_action",{P,I}}, + {"get_action",{P},I}, + {"set_local_only",{P,B}}, + {"get_local_only",{P},B}, + {"set_select_multiple",{P,B}}, + {"get_select_multiple",{P},B}, + {"set_show_hidden",{P,B}}, + {"get_show_hidden",{P},B}, + {"set_do_overwrite_confirmation",{P,B}}, + {"get_do_overwrite_confirmation",{P},B}, + {"set_create_folders",{P,B}}, + {"get_create_folders",{P},B}, + {"get_current_name",{P},S}, --GTK3.10 + {"set_current_name",{P,S}}, + {"set_filename",{P,S}}, + {"get_filename",{P},S}, + {"get_filenames",{P},A,0,GSList}, + {"select_filename",{P,S}}, + {"unselect_filename",{P},S}, + {"select_all",{P}}, + {"unselect_all",{P}}, + {"set_current_folder",{P,S}}, + {"get_current_folder",{P},S}, + {"set_uri",{P,S}}, + {"get_uri",{P},S}, + {"select_uri",{P,S}}, + {"unselect_uri",{P,S}}, + {"get_uris",{P},A,0,GSList}, + {"set_current_folder_uri",{P,S}}, + {"get_current_folder_uri",{P},S}, + {"set_preview_widget",{P,P}}, + {"get_preview_widget",{P},P,0,GtkWidget}, + {"set_preview_widget_active",{P,B}}, + {"get_preview_widget_active",{P},B}, + {"set_use_preview_label",{P,B}}, + {"get_use_preview_label",{P},B}, + {"get_preview_filename",{P},S}, + {"get_preview_uri",{P},S}, + {"set_extra_widget",{P,P}}, + {"get_extra_widget",{P},P,0,GtkWidget}, + {"add_filter",{P,P}}, + {"remove_filter",{P,P}}, + {"list_filters",{P},X,0,GSList}, + {"set_filter",{P,P}}, + {"get_filter",{P},P,0,GtkFileFilter}, + {"add_shortcut_folder",{P,S,P},B}, + {"remove_shortcut_folder",{P,S,P},B}, + {"list_shortcut_folders",{P},A,0,GSList}, + {"add_shortcut_folder_uri",{P,S,P},B}, + {"remove_shortcut_folder_uri",{P,S,P},B}, + {"list_shortcut_folder_uris",{P},A,0,GSList}, + {"get_current_folder_file",{P},P,0,GFile}, + {"get_file",{P},P,0,GFile}, + {"get_files",{P},X,0,GFile}, + {"get_preview_file",{P},P,0,GFile}, + {"select_file",{P,P,P},B}, + {"set_current_folder_file",{P,P,P},B}, + {"set_file",{P,P,P},B}, + {"unselect_file",{P,P}}, +"GtkFileChooser"} + +widget[GtkFileChooserButton] = {"gtk_file_chooser_button", +{GtkFileChooser,GtkBox,GtkContainer,GtkWidget,GtkBuildable,GtkOrientable,GObject}, + {"new",{S,I},P}, + {"new_with_dialog",{P},P}, + {"set_title",{P,S}}, + {"get_title",{P},S}, + {"set_width_chars",{P,I}}, + {"get_width_chars",{P},I}, + {"set_focus_on_click",{P,B}}, + {"get_focus_on_click",{P},B}, +"GtkFileChooserButton"} + +widget[GtkFileChooserWidget] = {"gtk_file_chooser_widget", +{GtkFileChooser,GtkBox,GtkContainer,GtkWidget,GtkBuildable,GtkOrientable,GObject}, + {"new",{I},P}, +"GtkFileChooserWidget"} + +widget[GtkFileFilter] = {"gtk_file_filter", +{GtkBuildable,GObject}, + {"new",{},P}, + {"set_name",{P,S}}, + {"get_name",{P},S}, + {"add_mime_type",{P,S}}, + {"add_pattern",{P,S}}, + {"add_pixbuf_formats",{P}}, + {"add_custom",{P,I,P,P,P}}, + {"get_needed",{P},I}, + {"filter",{P,P},B}, +"GtkFileFilter"} + +widget[GtkFontChooser] = {"gtk_font_chooser", +{GObject}, + {"get_font_family",{P},P,0,PangoFontFamily}, + {"get_font_face",{P},P,0,PangoFontFace}, + {"get_font_size",{P},I}, + {"set_font",{P,S}}, + {"get_font",{P},S}, + {"set_font_desc",{P,P}}, + {"get_font_desc",{P},P,0,PangoFontDescription}, + {"set_preview_text",{P,S}}, + {"get_preview_text",{P},S}, + {"set_show_preview_entry",{P,B}}, + {"get_show_preview_entry",{P},B}, + {"set_filter_func",{P,P,P,P}}, + {"get_font_map",{P},P,0,PangoFontMap}, -- 3.18 + {"set_font_map",{P,P}}, -- 3.18 +"GtkFontChooser"} + +widget[GtkFontChooserWidget] = {"gtk_font_chooser_widget", +{GtkFontChooser,GtkBox,GtkContainer,GtkWidget,GtkBuildable,GtkOrientable,GObject}, + {"new",{},P}, +"GtkFontChooserWidget"} + +widget[GtkInfoBar] = {"gtk_info_bar", +{GtkBox,GtkContainer,GtkWidget,GtkBuildable,GtkOrientable,GObject}, + {"new",{},P}, + {"add_action_widget",{P,P,I}}, + {"add_button",{P,S,I},P,0,GtkButton}, + {"set_response_sensitive",{P,I,B}}, + {"set_default_response",{P,I}}, + {"response",{P,I}}, + {"set_message_type",{P,I}}, + {"get_message_type",{P},I}, + {"get_action_area",{P},P,0,GtkWidget}, + {"get_content_area",{P},P,0,GtkWidget}, + {"set_show_close_button",{P,B}}, -- 3.10 + {"get_show_close_button",{P},B}, -- 3.10 +"GtkInfoBar"} + +widget[GtkRecentChooser] = {"gtk_recent_chooser", +{GObject}, + {"set_show_private",{P,B}}, + {"get_show_private",{P},B}, + {"set_show_not_found",{P,B}}, + {"get_show_not_found",{P},B}, + {"set_show_icons",{P,B}}, + {"get_show_icons",{P},B}, + {"set_select_multiple",{P,B}}, + {"get_select_multiple",{P},B}, + {"set_local_only",{P,B}}, + {"get_local_only",{P},B}, + {"set_limit",{P,I}}, + {"get_limit",{P},I}, + {"set_show_tips",{P,B}}, + {"get_show_tips",{P},B}, + {"set_sort_type",{P,I}}, + {"get_sort_type",{P},I}, + {"set_sort_func",{P,P,P,P}}, + {"set_current_uri",{P,S,P},B}, + {"get_current_uri",{P},S}, + {"get_current_item",{P},P,0,GtkRecentInfo}, + {"select_uri",{P,S,P},B}, + {"unselect_uri",{P,S}}, + {"select_all",{P}}, + {"unselect_all",{P}}, + {"get_items",{P},A,0,GSList}, + {"get_uris",{P},A}, + {"add_filter",{P,P}}, + {"remove_filter",{P,P}}, + {"list_filters",{P},X,0,GSList}, + {"set_filter",{P,P}}, + {"get_filter",{P},P,0,GtkRecentFilter}, +"GtkRecentChooser"} + +widget[GtkRecentChooserWidget] = {"gtk_recent_chooser_widget", +{GtkBox,GtkContainer,GtkWidget,GtkBuildable,GtkOrientable,GtkRecentChooser,GObject}, + {"new",{P},-routine_id("newRecentChooserWidget")}, +"GtkRecentChooserWidget"} + + function newRecentChooserWidget(atom x=0) + if class_id(x) = GtkRecentManager then + return gtk_func("gtk_recent_chooser_widget_new_for_manager",{P},{x}) + else + return gtk_func("gtk_recent_chooser_widget_new") + end if + end function + +widget[GtkStatusbar] = {"gtk_statusbar", +{GtkBox,GtkContainer,GtkWidget,GtkBuildable,GtkOrientable,GObject}, + {"new",{},P}, + {"get_context_id",{P,S},I}, + {"push",{P,I,S},I}, + {"pop",{P,I}}, + {"remove",{P,I,I}}, + {"remove_all",{P,I}}, + {"get_message_area",{P},P}, +"GtkStatusBar"} + +widget[GtkFixed] = {"gtk_fixed", +{GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"put",{P,P,I,I}}, + {"move",{P,P,I,I}}, +"GtkFixed"} + +widget[GtkGrid] = {"gtk_grid", +{GtkContainer,GtkWidget,GtkBuildable,GtkOrientable,GObject}, + {"new",{},P}, + {"attach",{P,P,I,I,I,I}}, + {"attach_next_to",{P,P,P,I,I,I}}, + {"get_child_at",{P,I,I},P,0,GtkWidget}, + {"insert_row",{P,I}}, + {"remove_row",{P,I}}, --3.10 + {"insert_column",{P,I}}, + {"remove_column",{P,I}}, --3.10 + {"insert_next_to",{P,P,I}}, + {"set_row_homogeneous",{P,B}}, + {"get_row_homogeneous",{P},B}, + {"set_column_homogeneous",{P,B}}, + {"get_column_homogeneous",{P},B}, + {"set_row_spacing",{P,I}}, + {"get_row_spacing",{P},I}, + {"set_column_spacing",{P,I}}, + {"get_column_spacing",{P},I}, + {"set_baseline_row",{P,I}}, --3.10 + {"get_baseline_row",{P},I}, --3.10 + {"set_row_baseline_position",{P,I,I}}, --3.10 + {"get_row_baseline_position",{P,I},I}, --3.10 +"GtkGrid"} + +widget[GtkPaned] = {"gtk_paned", +{GtkContainer,GtkWidget,GtkBuildable,GtkOrientable,GObject}, + {"new",{I},P}, + {"add1",{P,P}}, + {"add2",{P,P}}, + {"pack1",{P,P,B,B}}, + {"pack2",{P,P,B,B}}, + {"get_child1",{P},P,0,GtkWidget}, + {"get_child2",{P},P,0,GtkWidget}, + {"set_position",{P,I}}, + {"get_position",{P},I}, + {"get_handle_window",{P},P,0,GdkWindow}, + {"get_wide_handle",{P},B}, -- 3.16 + {"set_wide_handle",{P,B}}, -- 3.16 +"GtkPaned"} + +widget[GtkIconInfo] = {"gtk_icon_info", +{GObject}, + {"new",{P,P},-routine_id("newIconInfo")}, + {"get_base_size",{P},I}, + {"get_base_scale",{P},I}, --3.10 + {"get_filename",{P},S}, + {"get_display_name",{P},S}, -- deprecated 3.14 + {"get_builtin_pixbuf",{P},P,0,GdkPixbuf}, -- deprecated 3.14 + {"load_icon",{P},-routine_id("icon_info_load_icon")}, + {"load_surface",{P,P,P},P,0,CairoSurface_t}, + {"load_icon_async",{P,P,P,P}}, + {"load_icon_finish",{P,P,P},P,0,GdkPixbuf}, + {"load_symbolic",{P,P,P,P,P,B,P},P,0,GdkPixbuf}, + {"load_symbolic_async",{P,P,P,P,P,P,P,P}}, + {"load_symbolic_finish",{P,P,P,P},P,0,GdkPixbuf}, + {"load_symbolic_for_context",{P,P,P,P},P,0,GdkPixbuf}, + {"load_symbolic_for_context_async",{P,P,P,P,P}}, + {"load_symbolic_for_context_finish",{P,P,P,P},P,0,GdkPixbuf}, + {"set_raw_coordinates",{P,B}}, -- deprecated 3.14 + {"get_embedded_rect",{P,P},B}, -- deprecated 3.14 + {"get_attach_points",{P,A,P},B}, -- deprecated 3.14 + {"is_symbolic",{P},B}, -- 3.12 +"GtkIconInfo"} + + function newIconInfo(atom theme, atom pix) -- reorder params; + return gtk_func("gtk_icon_info_new_for_pixbuf",{P,P},{theme,pix}) + end function + + function icon_info_load_icon(atom info) -- allow for err, register object; + atom err = allocate(8,1) err = 0 + atom icn = gtk_func("gtk_icon_info_load_icon",{P,P},{info,err}) + register(icn,GdkPixbuf) + return icn + end function + +widget[GtkIconTheme] = {"gtk_icon_theme", +{GObject}, + {"new",{P},-routine_id("newIconTheme")}, + {"set_screen",{P,P}}, + {"set_search_path",{P,S,I}}, + {"get_search_path",{P,P,I}}, + {"append_search_path",{P,S}}, + {"prepend_search_path",{P,S}}, + {"set_custom_theme",{P,S}}, + {"has_icon",{P,S},B}, + {"lookup_icon",{P,P,I,I},P,0,GtkIconInfo}, + {"lookup_icon_for_scale",{P,P,I,I,I},P,0,GtkIconInfo}, + {"choose_icon",{P,A,I,I},P,0,GtkIconInfo}, + {"choose_icon_for_scale",{P,A,I,I,I},P,0,GtkIconInfo}, + {"lookup_by_gicon",{P,P,I,I},P,0,GtkIconInfo}, + {"load_icon",{P,S,I,I},-routine_id("icon_theme_load_icon")}, + {"load_icon_for_scale",{P,S,I,I,I,P},P,0,GdkPixbuf}, + {"load_surface",{P,S,I,I,P,I,P},P,0,CairoSurface_t}, + {"list_contexts",{P},-routine_id("icon_theme_list_contexts")}, + {"list_icons",{P,S},-routine_id("icon_theme_list_icons")}, + {"get_icon_sizes",{P,S},A}, + {"rescan_if_needed",{P},B}, + {"get_example_icon_name",{P},S}, + {"add_builtin_icon",{S,I,P}}, + {"add_resource_path",{P,S}}, -- 3.14 +"GtkIconTheme"} + + function newIconTheme(atom x=0) + if class_id(x) = GdkScreen then + return gtk_func("gtk_icon_theme_get_for_screen",{P},{x}) + else + return gtk_func("gtk_icon_theme_get_default") + end if + end function + + function icon_theme_load_icon(atom theme, object name, integer size, integer flags) + atom err = allocate(8,1) err = 0 + return gtk_func("gtk_icon_theme_load_icon",{P,P,I,I,P},{theme,name,size,flags,err}) + end function + + function icon_theme_list_contexts(atom theme) + object list = gtk_func("gtk_icon_theme_list_contexts",{P},{theme}) + return to_sequence(list) + end function + + function icon_theme_list_icons(atom theme, object context) + object list = gtk_func("gtk_icon_theme_list_icons",{P,P},{theme,context}) + return to_sequence(list) + end function + +widget[GtkIconView] = {"gtk_icon_view", +{GtkCellLayout,GtkScrollable,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"new_with_area",{P},P}, + {"new_with_model",{P},P}, + {"set_model",{P,P}}, + {"get_model",{P},P,0,GtkTreeModel}, + {"set_text_column",{P,I}}, + {"get_text_column",{P},I}, + {"set_markup_column",{P,I}}, + {"get_markup_column",{P},I}, + {"set_pixbuf_column",{P,I}}, + {"get_pixbuf_column",{P},I}, + {"get_visible_range",{P,I,I},B}, + {"get_path_at_pos",{P,I,I},P,0,GtkTreePath}, + {"get_item_at_pos",{P,I,I,I,I},B}, + {"convert_widget_to_bin_window_coords",{P,I,I,I,I}}, + {"set_cursor",{P,P,P,B}}, + {"get_cursor",{P,I,I},B}, + {"selected_foreach",{P,P,P}}, + {"set_selection_mode",{P,I}}, + {"get_selection_mode",{P},I}, + {"set_columns",{P,I}}, + {"get_columns",{P},I}, + {"set_spacing",{P,I}}, + {"get_spacing",{P},I}, + {"set_row_spacing",{P,I}}, + {"get_row_spacing",{P},I}, + {"set_column_spacing",{P,I}}, + {"get_column_spacing",{P},I}, + {"set_margin",{P,I}}, + {"get_margin",{P},I}, + {"set_item_padding",{P,I}}, + {"get_item_padding",{P},I}, + {"set_activate_on_single_click",{P,B}}, --3.8 + {"get_activate_on_single_click",{P},B}, --3.8 + {"get_cell_rect",{P,P,P,P},B}, --3.6 + {"select_path",{P,P}}, + {"unselect_path",{P,P}}, + {"path_is_selected",{P,P},B}, + {"get_selected_items",{P},X,0,GList}, + {"select_all",{P}}, + {"unselect_all",{P}}, + {"item_activated",{P,P}}, + {"scroll_to_path",{P,P,B,F,F}}, + {"get_visible_range",{P,I,I},B}, + {"set_tooltip_item",{P,P,P}}, + {"set_tooltip_cell",{P,P,P,P}}, + {"get_tooltip_context",{P,I,I,B,P,P,P},B}, + {"set_tooltip_column",{P,I}}, + {"get_tooltip_column",{P},I}, + {"get_item_row",{P,P},I}, + {"get_item_column",{P,P},I}, + {"enable_model_drag_source",{P,I,P,I,I}}, + {"enable_model_drag_dest",{P,P,I,I}}, + {"unset_model_drag_source",{P}}, + {"unset_model_drag_dest",{P}}, + {"set_reorderable",{P,B}}, + {"get_reorderable",{P},B}, + {"set_drag_dest_item",{P,I,I}}, + {"get_drag_dest_item",{P,I,I}}, + {"get_dest_item_at_pos",{P,I,I,I,I},B}, + {"create_drag_icon",{P,P},P,0,CairoSurface_t}, +"GtkIconView"} + +widget[GtkLayout] = {"gtk_layout", +{GtkContainer,GtkWidget,GtkBuildable,GtkScrollable,GObject}, + {"new",{P,P},P}, + {"put",{P,P,I,I}}, + {"move",{P,P,I,I}}, + {"set_size",{P,I,I}}, + {"get_size",{P,I,I}}, + {"get_bin_window",{P},P,0,GdkWindow}, +"GtkLayout"} + +widget[GtkSeparatorMenuItem] = {"gtk_separator_menu_item", +{GtkMenuItem,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{},P}, +"GtkSeparatorMenuItem"} + +widget[GtkRecentChooserMenu] = {"gtk_recent_chooser_menu", +{GtkMenu,GtkMenuShell,GtkContainer,GtkWidget,GtkBuildable,GtkRecentChooser,GObject}, + {"new",{},P}, + {"new_for_manager",{P},P}, + {"set_show_numbers",{P,B}}, + {"get_show_numbers",{P},B}, +"GtkRecentChooserMenu"} + +widget[GtkRecentFilter] = {"gtk_recent_filter", +{GtkBuildable,GObject}, + {"new",{},P}, + {"set_name",{P,S}}, + {"get_name",{P},S}, + {"add_mime_type",{P,S}}, + {"add_pattern",{P,S}}, + {"add_pixbuf_formats",{P}}, + {"add_group",{P,S}}, + {"add_age",{P,I}}, + {"add_application",{P,S}}, + {"add_custom",{P,I,P,P,P}}, + {"get_needed",{P},I}, + {"filter",{P,P},B}, +"GtkRecentFilter"} + +widget[GtkRecentInfo] = {"gtk_recent_info", +{GObject}, + {"get_uri",{P},S}, + {"get_display_name",{P},S}, + {"get_description",{P},S}, + {"get_mime_type",{P},S}, + {"get_added",{P},I}, + {"get_modified",{P},I}, + {"get_visited",{P},I}, + {"get_private_hint",{P},B}, + {"get_application_info",{P,S,S,I,I},B}, + {"get_applications",{P,I},V}, + {"last_application",{P},S}, + {"has_application",{P,S},B}, + {"create_app_info",{P,S,P},P,0,GAppInfo}, + {"get_groups",{P,I},A}, + {"has_group",{P,S},B}, + {"get_icon",{P,I},P,0,GdkPixbuf}, + {"get_gicon",{P},P,0,GIcon}, + {"get_short_name",{P},S}, + {"get_uri_display",{P},S}, + {"get_age",{P},I}, + {"is_local",{P},B}, + {"exists",{P},B}, + {"match",{P,P},B}, +"GtkRecentInfo"} + +widget[GtkSettings] = {"gtk_settings", +{GtkStyleProvider,GObject}, + {"new",{},-routine_id("newSettings")}, + {"reset_property",{P,S}}, -- 3.20 +"GtkSettings"} + + function newSettings(atom x=0) + if class_id(x) = GdkScreen then + return gtk_func("gtk_settings_get_for_screen",{P},{x}) + else + return gtk_func("gtk_settings_get_default") + end if + end function + +widget[GtkSizeGroup] = {"gtk_size_group", +{GtkBuildable,GObject}, + {"new",{I},P}, + {"set_mode",{P,I}}, + {"get_mode",{P},I}, + {"set_ignore_hidden",{P,B}}, + {"get_ignore_hidden",{P},B}, + {"add_widget",{P,P}}, + {"add_widgets",{P,P},-routine_id("sg_add_widgets")}, + {"remove_widget",{P,P}}, + {"get_widgets",{P},X,0,GSList}, +"GtkSizeGroup"} + + function sg_add_widgets(atom group, object widgets) -- allow {list} of widgets; + if atom(widgets) then + set(group,"add widget",widgets) + else + for i = 1 to length(widgets) do + set(group,"add widget",widgets[i]) + end for + end if + return 1 + end function + +widget[GtkTargetEntry] = {"gtk_target_entry", +{GObject}, + {"new",{S,I,I},P}, + {"copy",{P},P,0,GtkTargetEntry}, + {"free",{P}}, +"GtkTargetEntry"} + +widget[GtkTargetList] = {"gtk_target_list", +{GObject}, + {"new",{P,I},P}, + {"add",{P,P,I,I}}, + {"add_table",{P,P,I}}, + {"add_text_targets",{P,I}}, + {"add_image_targets",{P,I,B}}, + {"add_uri_targets",{P,I}}, + {"add_rich_text_targets",{P,I,B,P}}, + {"remove",{P,P}}, + {"find",{P,P,P},B}, +"GtkTargetList"} + +widget[GtkTextChildAnchor] = {"gtk_text_child_anchor", +{GObject}, + {"new",{},P}, + {"get_deleted",{P},B}, + {"get_widgets",{P},X,0,GList}, +"GtkTextChildAnchor"} + +widget[GtkTextMark] = {"gtk_text_mark", +{GObject}, + {"new",{S,B},P}, + {"set_visible",{P,B}}, + {"get_visible",{P},B}, + {"get_deleted",{P},B}, + {"get_name",{P},S}, + {"get_buffer",{P},P,0,GtkTextBuffer}, + {"get_left_gravity",{P},B}, +"GtkTextMark"} + +widget[GtkTextTag] = {"gtk_text_tag", +{GObject}, + {"new",{S},P}, + {"set_priority",{P,I}}, + {"get_priority",{P},I}, + {"event",{P,P,P,P},B}, + {"changed",{P,B}}, -- 3.20 +"GtkTextTag"} + +widget[GtkTextAttributes] = {"gtk_text_attributes", +{GObject}, + {"new",{},P}, + {"copy",{P},P,0,GtkTextAttributes}, + {"copy_values",{P,P}}, +"GtkTextAttributes"} + +widget[GtkTextTagTable] = {"gtk_text_tag_table", +{GtkBuildable,GObject}, + {"new",{},P}, + {"add",{P,P}}, + {"remove",{P,P}}, + {"lookup",{P,S},P,0,GtkTextTag}, + {"foreach",{P,P,P}}, + {"get_size",{P},I}, +"GtkTextTagTable"} + +widget[GtkMenuShell] = {"gtk_menu_shell", +{GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"append",{P,P},-routine_id("ms_append")}, + {"prepend",{P,P}}, + {"insert",{P,P,I}}, + {"deactivate",{P}}, + {"select_item",{P,P}}, + {"select_first",{P,B}}, + {"deselect",{P}}, + {"activate_item",{P,P,B}}, + {"cancel",{P}}, + {"set_take_focus",{P,B}}, + {"get_take_focus",{P},B}, + {"get_selected_item",{P},P,0,GtkWidget}, + {"get_parent_shell",{P},P,0,GtkWidget}, + {"bind_model",{P,P,S,B}}, --3.6 +"GtkMenuShell"} + + function ms_append(atom menu, object items) -- allow {list} of items; + if atom(items) then + gtk_proc("gtk_menu_shell_append",{P,P},{menu,items}) + else + for i = 1 to length(items) do + ms_append(menu,items[i]) + end for + end if + return 1 + end function + +widget[GtkNotebook] = {"gtk_notebook", +{GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"append_page",{P,P,P},I}, + {"append_page_menu",{P,P,P,P},I}, + {"prepend_page",{P,P,P},I}, + {"prepend_page_menu",{P,P,P,P},I}, + {"insert_page",{P,P,P,I},I}, + {"insert_page_menu",{P,P,P,P,I},I}, + {"remove_page",{P,I}}, + {"page_num",{P,I},I}, + {"next_page",{P}}, + {"prev_page",{P}}, + {"reorder_child",{P,P,I}}, + {"set_tab_pos",{P,I}}, + {"get_tab_pos",{P},I}, + {"set_show_tabs",{P,B}}, + {"get_show_tabs",{P},B}, + {"set_show_border",{P,B}}, + {"get_show_border",{P},B}, + {"set_scrollable",{P,B}}, + {"get_scrollable",{P},B}, + {"popup_enable",{P}}, + {"popup_disable",{P}}, + {"get_current_page",{P},I}, + {"set_menu_label",{P,P},0,GtkWidget}, + {"get_menu_label",{P,P},P}, + {"get_menu_label_text",{P,P},S}, + {"get_n_pages",{P},I}, + {"get_nth_page",{P,I},P,0,GtkWidget}, + {"set_tab_label",{P,P}}, + {"get_tab_label",{P,P},P,0,GtkWidget}, + {"set_tab_label_text",{P,P,S}}, + {"get_tab_label_text",{P,P},S}, + {"set_tab_detachable",{P,P,B}}, + {"get_tab_detachable",{P,P},B}, + {"set_current_page",{P,I}}, + {"set_group_name",{P,S}}, + {"get_group_name",{P},S}, + {"set_action_widget",{P,P,I}}, + {"get_action_widget",{P,I},P,0,GtkWidget}, + {"detach_tab",{P,P}}, -- 3.16 +"GtkNotebook"} + +widget[GtkSocket] = {"gtk_socket", +{GtkContainer,GtkWidget,GObject}, + {"new",{},P}, + {"add_id",{P,P}}, + {"get_id",{P},P}, + {"get_plug_window",{P},P,0,GdkWindow}, +"GtkSocket"} + +widget[GtkPlug] = {"gtk_plug", +{GtkWindow,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{I},P}, + {"get_id",{P},I}, + {"get_embedded",{P},B}, + {"get_socket_window",{P},P,0,GdkWindow}, +"GtkPlug"} + +widget[GtkToolPalette] = {"gtk_tool_palette", +{GtkScrollable,GtkContainer,GtkWidget,GtkBuildable,GtkOrientable,GObject}, + {"new",{},P}, + {"set_exclusive",{P,P,B}}, + {"get_exclusive",{P,P},B}, + {"set_expand",{P,P,B}}, + {"get_expand",{P,P},B}, + {"set_group_position",{P,P,I}}, + {"get_group_position",{P,P},I}, + {"set_icon_size",{P,I}}, + {"get_icon_size",{P},I}, + {"unset_icon_size",{P}}, + {"set_style",{P,I}}, + {"get_style",{P},I}, + {"unset_style",{P}}, + {"add_drag_dest",{P,P,I,I,I}}, + {"get_drag_item",{P,P},P,0,GtkWidget}, + {"get_drop_group",{P,I,I},P,0,GtkToolItemGroup}, + {"set_drag_source",{P,I}}, +"GtkToolPalette"} + +widget[GtkTextView] = {"gtk_text_view", +{GtkScrollable,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"new_with_buffer",{P},P}, + {"set_buffer",{P,P}}, + {"get_buffer",{P},P,0,GtkTextBuffer}, + {"scroll_to_mark",{P,P,D,B,D,D}}, + {"scroll_to_iter",{P,P,D,B,D,D},B}, + {"scroll_mark_onscreen",{P,P}}, + {"place_cursor_onscreen",{P},B}, + {"get_visible_rect",{P,P}}, + {"get_iter_location",{P,P,P}}, + {"get_cursor_locations",{P,P,P,P}}, + {"get_line_at_y",{P,P,I,I}}, + {"get_line_yrange",{P,P,I,I}}, + {"get_iter_at_location",{P,P,I,I}}, + {"get_iter_at_position",{P,P,I,I,I}}, + {"buffer_to_window_coords",{P,P,I,I,I,I}}, + {"window_to_buffer_coords",{P,P,I,I,I,I}}, + {"get_window",{P,I},P,0,GdkWindow}, + {"set_border_window_size",{P,I,I}}, + {"get_border_window_size",{P,P},I}, + {"forward_display_line",{P,P},B}, + {"backward_display_line",{P,P},B}, + {"forward_display_line_end",{P,P},B}, + {"backward_display_line_start",{P,P},B}, + {"starts_display_line",{P,P},B}, + {"move_visually",{P,P,I},B}, + {"add_child_at_anchor",{P,P,P}}, + {"add_child_in_window",{P,P,P,I,I}}, + {"move_child",{P,P,I,I}}, + {"set_wrap_mode",{P,I}}, + {"get_wrap_mode",{P},I}, + {"set_editable",{P,B}}, + {"get_editable",{P},B}, + {"set_cursor_visible",{P,B}}, + {"get_cursor_visible",{P},B}, + {"set_overwrite",{P,B}}, + {"get_overwrite",{P},B}, + {"set_pixels_above_lines",{P,I}}, + {"get_pixels_above_lines",{P},I}, + {"set_pixels_below_lines",{P,I}}, + {"get_pixels_below_lines",{P},I}, + {"set_pixels_inside_wrap",{P,I}}, + {"get_pixels_inside_wrap",{P},I}, + {"set_justification",{P,I}}, + {"get_justification",{P},I}, + {"set_left_margin",{P,I}}, + {"get_left_margin",{P},I}, + {"set_right_margin",{P,I}}, + {"get_right_margin",{P},I}, + {"set_indent",{P,I}}, + {"get_indent",{P},I}, + {"set_tabs",{P,A}}, + {"get_tabs",{P},A,0,PangoTabArray}, + {"set_accepts_tab",{P,B}}, + {"get_accepts_tab",{P},B}, + {"im_context_filter_keypress",{P,P},B}, + {"get_default_attributes",{P},P,0,GtkTextAttributes}, + {"reset_im_context",{P}}, + {"set_input_purpose",{P,I}}, -- 3.6+ + {"get_input_purpose",{P},I}, -- 3.6+ + {"set_input_hints",{P,I}}, -- 3.6+ + {"get_input_hints",{P},I}, -- 3.6+ + {"get_monospace",{P},B}, -- 3.16 + {"set_monospace",{P,B}}, -- 3.16 + {"get_bottom_margin",{P},I}, -- 3.18 + {"set_bottom_margin",{P,I}}, -- 3.18 + {"get_top_margin",{P},I}, -- 3.18 + {"set_top_margin",{P,I}}, -- 3.18 + {"reset_cursor_blink",{P}}, -- 3.20 +"GtkTextView"} + +widget[GtkToolShell] = {"gtk_tool_shell", -- WARNING! +{GtkWidget}, -- see GTK3 docs re: GtkToolShell functions + {"get_ellipsize_mode",{P},I}, + {"get_icon_size",{P},I}, + {"get_orientation",{P},I}, + {"get_relief_style",{P},I}, + {"get_style",{P},I}, + {"get_text_alignment",{P},F}, + {"get_text_orientation",{P},I}, + {"get_text_size_group",{P},P,0,GtkSizeGroup}, + {"rebuild_menu",{P}}, +"GtkToolShell"} + +widget[GtkToolbar] = {"gtk_toolbar", +{GtkToolShell,GtkContainer,GtkWidget,GtkOrientable,GtkBuildable,GObject}, + {"new",{},P}, + {"insert",{P,P,I}}, + {"get_item_index",{P,P},I}, + {"get_n_items",{P},I}, + {"get_nth_item",{P},P}, + {"get_drop_index",{P,I,I},I}, + {"set_drop_highlight_item",{P,P,I}}, + {"set_show_arrow",{P,B}}, + {"get_show_arrow",{P},B}, + {"set_icon_size",{P,I}}, + {"get_icon_size",{P},I}, + {"unset_icon_size",{P}}, + {"set_style",{P,I}}, + {"get_style",{P},I}, + {"unset_style",{P}}, +"GtkToolbar"} + +widget[GtkToolItemGroup] = {"gtk_tool_item_group", +{GtkToolShell,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{S},P}, + {"set_collapsed",{P,B}}, + {"get_collapsed",{P},B}, + {"set_ellipsize",{P,I}}, + {"get_ellipsize",{P},I}, + {"get_drop_item",{P,I,I},P,0,GtkToolItem}, + {"get_n_items",{P},I}, + {"get_nth_item",{P,I},P,0,GtkToolItem}, + {"set_label",{P,S}}, + {"get_label",{P},S}, + {"set_label_widget",{P,P}}, + {"get_label_widget",{P},P,0,GtkWidget}, + {"set_header_relief",{P,I}}, + {"get_header_relief",{P},I}, + {"insert",{P,P,I}}, + {"set_item_position",{P,P,I}}, +"GtkToolItemGroup"} + +widget[GtkTooltip] = {"gtk_tooltip", +{GObject}, + {"set_text",{P,S}}, + {"set_markup",{P,S}}, + {"set_icon",{P,P}}, + {"set_icon_from_icon_name",{P,S,I}}, + {"set_icon_from_gicon",{P,P,I}}, + {"set_custom",{P,P}}, + {"trigger_tooltip_query",{P}}, + {"set_tip_area",{P,P}}, +"GtkTooltip"} + +function newColumn(object params) + params = keyvalues(params) + atom c = create(GtkTreeViewColumn) + atom r = -1 + object t = vlookup("type",params,1,2) + + switch t do + case "text","markup" then r = create(GtkCellRendererText) + case "pixbuf" then r = create(GtkCellRendererPixbuf) + case "progress" then r = create(GtkCellRendererProgress) + case "spin" then r = create(GtkCellRendererSpin) + case "toggle" then r = create(GtkCellRendererToggle) + case "combo" then r = create(GtkCellRendererCombo) + case else display("Error specifying cell renderer type") + end switch + + if r = -1 then + Warn(,,"Create new column","Must specify a renderer type (i.e. type=text)") + abort(1) + end if + + set(c,{{"pack start",r,TRUE}}) + + for i = 1 to length(params) do + + if equal("TRUE",params[i][2]) then params[i][2] = 1 end if + if equal("FALSE",params[i][2]) then params[i][2] = 0 end if + if equal("1",params[i][2]) then params[i][2] = 1 end if + if equal("0",params[i][2]) then params[i][2] = 0 end if + + if match("column.",params[i][1]) then + set(c,params[i][1][8..$],params[i][2]) + + elsif match("renderer.",params[i][1]) then + set(r,params[i][1][10..$],params[i][2]) + + elsif equal("cell_data_func",params[i][1]) then + params[i][2] = to_number(params[i][2]) + set(c,"cell data func",r,params[i][2]) + + else + switch params[i][1] do + case "type" then break -- do nothing + case "title","sort_column_id" then set(c,params[i][1],params[i][2]) + case "toggled" then connect(r,"toggled",_(params[i][2])) + case "edited" then connect(r,"edited",_(params[i][2])) + --display("Connecting [] []",{params[i][2],_(params[i][2])}) + case else set(c,"add attribute",r,params[i][1],params[i][2]) + end switch + end if + + end for + + set(c,"data","renderer",sprintf("%d",r)) + + return c + end function + +widget[GtkTreeView] = {"gtk_tree_view", +{GtkContainer,GtkWidget,GtkBuildable,GtkScrollable,GObject}, + {"new",{P},-routine_id("newTreeView")}, + {"set_model",{P,P}}, + {"get_model",{P},P,0,GtkTreeModel}, + {"get_selection",{P},P,0,GtkTreeSelection}, + {"set_headers_visible",{P,B}}, + {"get_headers_visible",{P},B}, + {"set_headers_clickable",{P,B}}, + {"get_headers_clickable",{P},B}, + {"set_show_expanders",{P,B}}, + {"get_show_expanders",{P},B}, + {"set_expander_column",{P,P}}, + {"get_expander_column",{P},P,0,GtkTreeViewColumn}, + {"set_level_indentation",{P,I}}, + {"get_level_indentation",{P},I}, + {"columns_autosize",{P}}, + {"set_rules_hint",{P,B}}, -- deprecated 3.14 + {"get_rules_hint",{P},B}, -- deprecated 3.14 + {"set_activate_on_single_click",{P,B}}, -- GTK 3.8+ + {"get_activate_on_single_click",{P},B}, -- GTK 3.8+ + {"append_column",{P,P},I}, + {"append_columns",{P,P},-routine_id("tv_append_columns")}, + {"remove_column",{P,P,I}}, + {"insert_column",{P,P,I}}, + {"insert_column_with_attributes",{P,I,S,S,I,I}}, + {"insert_column_with_data_func",{P,I,S,P,P,P,P}}, + {"get_n_columns",{P},I}, + {"get_column",{P,I},P,0,GtkTreeViewColumn}, + {"get_columns",{P},X,0,GList}, + {"move_column_after",{P,P,P}}, + {"set_column_drag_function",{P,P,P,P}}, + {"scroll_to_point",{P,I,I}}, + {"scroll_to_cell",{P,P,P,P,F,F},-routine_id("tv_scroll_to_cell")}, + {"set_cursor",{P,P,P,B}}, + {"set_cursor_on_cell",{P,P,P,P,B}}, + {"get_cursor",{P,P,P}}, + {"row_activated",{P,P,P}}, + {"expand_row",{P,P,B},B}, + {"expand_all",{P}}, + {"expand_to_path",{P,P}}, + {"collapse_all",{P}}, + {"map_expanded_rows",{P,P,P}}, + {"row_expanded",{P,P},B}, + {"set_reorderable",{P,B}}, + {"get_reorderable",{P,B}}, + {"get_path_at_pos",{P,I,I,P,P,I,I},B}, + {"is_blank_at_pos",{P,I,I,P,P,I,I},B}, + {"get_cell_area",{P,P,P,P}}, + {"get_background_area",{P,P,P,P}}, + {"get_visible_rect",{P,P}}, + {"get_visible_range",{P,P,P},B}, + {"get_bin_window",{P},P,0,GdkWindow}, + {"convert_bin_window_to_tree_coords",{P,I,I,I,I}}, + {"convert_bin_window_to_widget_coords",{P,I,I,I,I}}, + {"convert_tree_to_bin_window_coords",{P,I,I,I,I}}, + {"convert_tree_to_widget_coords",{P,I,I,I,I}}, + {"convert_widget_to_bin_window_coords",{P,I,I,I,I}}, + {"convert_widget_to_tree_coords",{P,I,I,I,I}}, + {"enable_model_drag_dest",{P,P,I,I}}, + {"enable_model_drag_source",{P,I,P,I,I}}, + {"unset_rows_drag_source",{P}}, + {"unset_rows_drag_dest",{P}}, + {"set_drag_dest_row",{P,P,I}}, + {"get_drag_dest_row",{P,P,P}}, + {"get_drag_dest_row_at_pos",{P,I,I,P,P},B}, + {"create_row_drag_icon",{P,P},P,0,CairoSurface_t}, + {"set_enable_search",{P,B}}, + {"get_enable_search",{P},B}, + {"set_search_column",{P,I}}, + {"get_search_column",{P},I}, + {"set_search_equal_func",{P,P,P,P}}, + {"get_search_equal_func",{P},P}, + {"set_search_entry",{P,P}}, + {"get_search_entry",{P},P,0,GtkEntry}, + {"set_search_position_func",{P,P,P,P}}, + {"get_search_position_func",{P},P}, + {"set_fixed_height_mode",{P,B}}, + {"get_fixed_height_mode",{P},B}, + {"set_hover_selection",{P,B}}, + {"get_hover_selection",{P},B}, + {"set_hover_expand",{P,B}}, + {"get_hover_expand",{P},B}, + {"set_destroy_count_func",{P,P,P,P}}, + {"set_row_separator_func",{P,P,P,P}}, + {"get_row_separator_func",{P},P}, + {"set_rubber_banding",{P,B}}, + {"get_rubber_banding",{P},B}, + {"set_enable_tree_lines",{P,B}}, + {"get_enable_tree_lines",{P},B}, + {"set_grid_lines",{P,B}}, + {"get_grid_lines",{P},B}, + {"set_tooltip_row",{P,P,P}}, + {"set_tooltip_cell",{P,P,P,P,P}}, + {"set_tooltip_column",{P,I}}, + {"get_tooltip_column",{P},I}, + {"get_tooltip_context",{P,I,I,B,P,P,P},B}, + {"select_row",{P,P,D,D},-routine_id("tv_select_row")}, + {"get_selected_row_data",{P,P},-routine_id("tv_get_selected_row_data")}, + {"get_selected_col_data",{P,P,I},-routine_id("tv_get_selected_col_data")}, +"GtkTreeView"} + + function newTreeView(atom x=0) + if class_id(x) = GtkTreeModel then + return gtk_func("gtk_tree_view_new_with_model",{P},{x}) + else + return gtk_func("gtk_tree_view_new") + end if + end function + + constant sfn1 = define_func("gtk_tree_view_get_model",{P},P) + constant sfn2 = define_func("gtk_tree_model_get_n_columns",{P},I) + constant sfn3 = define_func("gtk_tree_model_get_iter",{P,P,P},B) + constant sfn4 = define_func("gtk_tree_model_get_column_type",{P,I},I) + constant sp1 = define_proc("gtk_tree_model_get",{P,P,I,P,I}) + + function tv_get_selected_col_data(atom view, atom path, integer col) + object data = tv_get_selected_row_data(view,path) + return data[col] + end function + + function tv_get_selected_row_data(atom view, atom path) + atom mdl = c_func(sfn1,{view}) + integer ncols = c_func(sfn2,{mdl}) + object data = repeat(0,ncols) + object types = repeat(0,ncols) + atom iter = allocate(32,1) + object result + + if c_func(sfn3,{mdl,iter,path}) then + for i = 1 to length(data) do + data[i] = allocate(32,1) + types[i] = c_func(sfn4,{mdl,i-1}) + c_proc(sp1,{mdl,iter,i-1,data[i],-1}) + end for + end if + + for i = 1 to length(data) do + switch types[i] do + case gSTR then + ifdef BITS64 then -- thanks pete eberlein + result = peek8u(data[i]) + elsedef + result = peek4u(data[i]) + end ifdef + if result > 0 then + result = peek_string(result) + end if + data[i] = result + + case else data[i] = peek4u(data[i]) + end switch + end for + + return data + end function + + function tv_scroll_to_cell(atom v, atom p, atom c=0, integer align=0, atom row=0, atom col=0) + gtk_proc("gtk_tree_view_scroll_to_cell",{P,P,P,I,F,F},{v,p,c,align,row,col}) + return 1 + end function + + function tv_append_columns(atom store, object cols) + if atom(cols) then + gtk_func("gtk_tree_view_append_column",{P,P},{store,cols}) + else + for i = 1 to length(cols) do + tv_append_columns(store,cols[i]) + end for + end if + return 1 + end function + + function tv_select_row(atom tv, object path, atom rowalign=0, atom colalign=0) + path = create(GtkTreePath,path) + gtk_func("gtk_tree_view_scroll_to_cell", + {P,P,I,I,F,F},{tv,path,0,1,rowalign,colalign}) + return 1 + end function + +widget[GtkTreeViewColumn] = {"gtk_tree_view_column", +{GtkCellLayout,GtkBuildable,GObject}, + {"new",{},P}, + {"set_title",{P,S}}, + {"get_title",{P},S}, + {"pack_start",{P,P,B}}, + {"pack_end",{P,P,B}}, + {"clear",{P}}, + {"clicked",{P}}, + {"add_attribute",{P,P,S,I}}, + {"set_spacing",{P,I}}, + {"get_spacing",{P},I}, + {"set_visible",{P,B}}, + {"get_visible",{P},B}, + {"set_resizable",{P,B}}, + {"get_resizable",{P},B}, + {"set_sizing",{P,I}}, + {"get_sizing",{P},I}, + {"set_fixed_width",{P,I}}, + {"get_fixed_width",{P},I}, + {"set_min_width",{P,I}}, + {"get_min_width",{P},I}, + {"set_max_width",{P,I}}, + {"get_max_width",{P},I}, + {"set_expand",{P,B}}, + {"get_expand",{P},B}, + {"set_clickable",{P,B}}, + {"get_clickable",{P},B}, + {"set_widget",{P,P}}, + {"get_widget",{P},P}, + {"get_button",{P},P,0,GtkWidget}, + {"set_alignment",{P,F}}, + {"get_alignment",{P},F}, + {"set_reorderable",{P,B}}, + {"get_reorderable",{P},B}, + {"set_sort_column_id",{P,I}}, + {"get_sort_column_id",{P},I}, + {"set_sort_indicator",{P,B}}, + {"get_sort_indicator",{P},B}, + {"set_sort_order",{P,I}}, + {"get_sort_order",{P},I}, + {"cell_set_cell_data",{P,P,P,B,B}}, + {"cell_get_size",{P,P,I,I,I,I}}, + {"cell_get_position",{P,P,I,I},B}, + {"cell_is_visible",{P},B}, + {"focus_cell",{P,P}}, + {"queue_resize",{P}}, + {"get_tree_view",{P},P,0,GtkTreeView}, + {"get_x_offset",{P},I}, +"GtkTreeViewColumn"} + +widget[GtkTreeSelection] = {"gtk_tree_selection", +{GObject}, + {"set_mode",{P,I}}, + {"get_mode",{P},I}, + {"set_select_function",{P,P,P,P}}, + {"get_select_function",{P},P}, + {"get_user_data",{P},P}, + {"get_tree_view",{P},P}, + {"get_selected",{P,P,P},B}, + {"selected_foreach",{P,P,P}}, + {"count_selected_rows",{P},I}, + {"select_path",{P,P}}, + {"unselect_path",{P,P}}, + {"path_is_selected",{P,P},B}, + {"select_iter",{P,P}}, + {"unselect_iter",{P,P}}, + {"iter_is_selected",{P,P},B}, + {"select_all",{P}}, + {"unselect_all",{P}}, + {"select_range",{P,P,P}}, + {"unselect_range",{P,P,P}}, + {"get_selected_row",{P,P},-routine_id("ts_get_selected_row")}, + {"get_selected_rows",{P,P},-routine_id("ts_get_selected_rows")}, + {"get_selected_row_data",{P},-routine_id("ts_get_selected_row_data")}, +"GtkTreeSelection"} + + function ts_get_selected_rows(atom selection, atom model) + object list = gtk_func("gtk_tree_selection_get_selected_rows", + {P,P},{selection,model}) + list = to_sequence(list,3) + return list +1 + end function + + function ts_get_selected_row(atom selection, atom model) + object result = ts_get_selected_rows(selection,model) + if equal({},result) then return 0 + else return result[1] + end if + end function + + function ts_get_selected_row_data(atom selection) + atom mdl = allocate(32), iter = allocate(32) + integer n + object x,t, val, result + if gtk_func("gtk_tree_selection_get_selected",{P,P,P},{selection,mdl,iter}) then + mdl = peek4u(mdl) + n = gtk_func("gtk_tree_model_get_n_columns",{P},{mdl}) + x = repeat(0,n) t = x + + for i = 1 to n do + val = allocate(32,1) + gtk_proc("gtk_tree_model_get",{P,P,I,P,I},{mdl,iter,i-1,val,-1}) + t[i] = gtk_func("gtk_tree_model_get_column_type",{P,I},{mdl,i-1}) + x[i] = val + end for + + for i = 1 to length(x) do + switch t[i] do + case gSTR then + ifdef BITS64 then -- thanks pete eberlein + result = peek8u(x[i]) + elsedef + result = peek4u(x[i]) + end ifdef + if result > 0 then + x[i] = peek_string(result) + end if + case gFLT then x[i] = float32_to_atom(peek({x[i],4})) + case gDBL then x[i] = float64_to_atom(peek({x[i],8})) + case else x[i] = peek4u(x[i]) + end switch + end for + return x + end if + + return -1 + end function + +widget[GtkActionBar] = {"gtk_action_bar", -- GTK 3.12 +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"pack_start",{P,P}}, + {"pack_end",{P,P}}, + {"get_center_widget",{P},P}, + {"set_center_widget",{P,P}}, +"GtkActionBar"} + +widget[GtkAccelLabel] = {"gtk_accel_label", +{GtkLabel,GtkMisc,GtkWidget,GtkBuildable,GObject}, + {"new",{S},P}, + {"get_accel",{P,I,I}}, -- 3.14 + {"set_accel",{P,I,I}}, + {"set_accel_closure",{P,P}}, + {"set_accel_widget",{P,P}}, + {"get_accel_widget",{P},P,0,GtkWidget}, + {"get_accel_width",{P},I}, + {"refetch",{P},B}, +"GtkAccelLabel"} + +widget[GtkAccelGroup] = {"gtk_accel_group", +{GObject}, + {"new",{},P}, + {"connect",{P,I,I,I,P}}, + {"connect_by_path",{P,S,P}}, + {"disconnect",{P,P},B}, + {"disconnect_key",{P,I,I},B}, + {"activate",{P,I,P,I,I},B}, + {"lock",{P}}, + {"unlock",{P}}, + {"get_is_locked",{P},B}, + {"from_accel_closure",{P},P,0,GtkAccelGroup}, + {"get_modifier_mask",{P},I}, + {"find",{P,P,P},P}, +"GtkAccelGroup"} + +widget[GtkArrow] = {"gtk_arrow", -- deprecated 3.14 +{GtkMisc,GtkWidget,GtkBuildable,GObject}, + {"new",{I,I},P}, + {"set",{P,I,I}}, +"GtkArrow"} + +widget[GtkCalendar] = {"gtk_calendar", +{GtkWidget,GtkBuildable,GObject}, + {"clear_marks",{P}}, + {"get_date",{P,I},-routine_id("cal_get_date")}, + {"get_ymd",{P,I},-routine_id("cal_get_ymd")}, + {"get_eu_date",{P},-routine_id("cal_get_eu_date")}, + {"get_day",{P},-routine_id("cal_get_day")}, + {"get_month",{P},-routine_id("cal_get_month")}, + {"get_year",{P},-routine_id("cal_get_year")}, + {"get_datetime",{P,I},-routine_id("cal_get_datetime")}, + {"get_day_is_marked",{P,I},B}, + {"get_display_options",{P},I}, + {"mark_day",{P,I},B}, + {"new",{P},-routine_id("newCalendar")}, + {"select_day",{P,I}}, + {"select_month",{P,I,I},-routine_id("cal_select_month")}, + {"set_display_options",{P,I}}, + {"unmark_day",{P,I},B}, + {"set_detail_func",{P,P,P,P}}, + {"set_detail_width_chars",{P,I}}, + {"get_detail_width_chars",{P},I}, + {"get_detail_height_rows",{P},I}, + {"set_detail_height_rows",{P,I}}, + {"set_date",{P,P},-routine_id("cal_set_date")}, + {"set_eu_date",{P,P},-routine_id("cal_set_date")}, + {"set_day",{P,I},-routine_id("cal_set_day")}, + {"set_month",{P,I},-routine_id("cal_set_month")}, + {"set_year",{P,I},-routine_id("cal_set_year")}, +"GtkCalendar"} + + function newCalendar(object d = 0) -- create calendar, set optional date; + object cal = gtk_func("gtk_calendar_new") + if atom(d) and d = 0 then return cal + else gtk_proc("gtk_calendar_select_month",{P,I,I},{cal,d[2]-1,d[1]}) + gtk_proc("gtk_calendar_select_day",{P,I},{cal,d[3]}) + return cal + end if + end function + +------------------------------------------------------------------------ +-- Calendar convenience functions +------------------------------------------------------------------------ +-- Handle odd month numbering scheme: +-- Q: If the first day of the month is 1, then why is the first month +-- of the year zero +-- A: Blame a C programmer! + +-- Here we fix that, plus change the set_date routine from two steps +-- to one; also, provide for standard formatting to be used when +-- getting the date. See std/datetime.e for the formats available. +------------------------------------------------------------------------ + + constant get_date = define_proc("gtk_calendar_get_date",{P,I,I,I}) + + function cal_select_month(atom handle, integer mo, integer yr=0) + while mo < 1 do yr -= 1 mo += 12 end while + while mo > 12 do yr += 1 mo -= 12 end while + gtk_proc("gtk_calendar_select_month",{P,I,I},{handle,mo-1,yr}) + return 1 + end function + + function cal_set_day(atom handle, integer day) + object curr = get(handle,"date") + curr[3] = day + cal_set_date(handle,curr) + return 1 + end function + + function cal_set_month(atom handle, integer month) + object curr = get(handle,"date") + curr[2] = month + cal_set_date(handle,curr) + return 1 + end function + + function cal_set_year(atom handle, integer year) + object curr = get(handle,"date") + curr[1] = year + cal_set_date(handle,curr) + return 1 + end function + + function cal_set_date(atom handle, object cdate) + object dt = 0 + integer yr, mo, da + + dt = datetime:parse(cdate,"%Y/%m/%d") + if atom(dt) then + dt = datetime:parse(cdate,"%Y,%m,%d") + end if + if atom(dt) then + dt = datetime:parse(cdate,"%m/%d/%y") + end if + if atom(dt) then + dt = datetime:parse(cdate,"%m/%d/%Y") + end if + if atom(dt) then + dt = datetime:parse(cdate,"%y/%m/%d") + end if + + if atom(dt) then + if cdate[1] > 31 then -- Y/M/D + yr = cdate[1] + mo = cdate[2] + da = cdate[3] + end if + if cdate[3] > 31 then -- M/D/Y + mo = cdate[1] + da = cdate[2] + yr = cdate[3] + end if + else + yr = dt[1] + mo = dt[2] + da = dt[3] + end if + + if yr < 1900 then yr += 1900 end if + gtk_proc("gtk_calendar_select_month",{P,I,I},{handle,mo-1,yr}) + gtk_proc("gtk_calendar_select_day",{P,I},{handle,da}) + return 1 + end function + + function setCalendarEuDate(atom handle, object edt) + edt[1] += 1900 + return cal_set_date(handle,edt) + end function + + function cal_get_date(atom handle, object fmt=0) + atom y = allocate(8,1), m = allocate(8,1), d = allocate(8,1) + object clock + if atom(fmt) and fmt = 0 then + fmt = "%A, %b %d, %Y" + else + fmt = peek_string(fmt) + end if + object result + c_proc(get_date,{handle,y,m,d}) + result = datetime:new(peek4u(y),peek4u(m)+1,peek4u(d)) + clock = datetime:now() + result = result[1..3] & clock[4..6] + result = datetime:format(result,fmt) + return result + end function + + function cal_get_datetime(atom handle, object fmt=1) + atom y = allocate(8,1), m = allocate(8,1), d = allocate(8,1) + object result + c_proc(get_date,{handle,y,m,d}) + result = datetime:now() -- for current hr,min,sec + result[1] = peek4u(y) + result[2] = peek4u(m)+1 + result[3] = peek4u(d) + if fmt = 0 then -- set hr,min,sec to zero; + result[4] = 0 + result[5] = 0 + result[6] = 0 + end if + return result + end function + + function cal_get_eu_date(atom handle) --returns {y,m,d} in Eu fmt. + atom y = allocate(8,1), m = allocate(8,1), d = allocate(8,1) + c_proc(get_date,{handle,y,m,d}) + sequence result = {peek4u(y)-1900,peek4u(m)+1,peek4u(d)} + return result + end function + + function cal_get_ymd(atom handle, integer full=0) + object clock + switch full do + case 0 then return cal_get_eu_date(handle) + {1900,0,0} + case 1 then return cal_get_eu_date(handle) + {1900,0,0} & {0,0,0} + case 2 then clock = datetime:now() + return cal_get_eu_date(handle) + {1900,0,0} & clock[4..6] + case else return cal_get_eu_date(handle) + {1900,0,0} + end switch + end function + + function cal_get_day(atom handle) + atom y = allocate(8,1), m = allocate(8,1), d = allocate(8,1) + c_proc(get_date,{handle,y,m,d}) + integer result = peek4u(d) + return result + end function + + function cal_get_month(atom handle) + atom y = allocate(8,1), m = allocate(8,1), d = allocate(8,1) + c_proc(get_date,{handle,y,m,d}) + integer result = peek4u(m) + return result+1 + end function + + function cal_get_year(atom handle) + atom y = allocate(8,1), m = allocate(8,1), d = allocate(8,1) + c_proc(get_date,{handle,y,m,d}) + integer result = peek4u(y) + return result + end function + +widget[GtkCellView] = {"gtk_cell_view", +{GtkCellLayout,GtkWidget,GtkBuildable,GtkOrientable,GObject}, + {"new",{P,P},-routine_id("newCellView")}, + {"set_model",{P,P}}, + {"get_model",{P},P}, + {"set_displayed_row",{P,P}}, + {"get_displayed_row",{P},P,0,GtkTreePath}, + {"set_draw_sensitive",{P,B}}, + {"get_draw_sensitive",{P},B}, + {"set_fit_model",{P,B}}, + {"get_fit_model",{P},B}, +"GtkCellView"} + + function newCellView(atom x=0, atom y=0) + if class_id(x) = GtkCellArea + and class_id(y) = GtkCellAreaContext then + return gtk_func("gtk_cell_view_new_with_context",{P,P},{x,y}) + elsif atom(x) and x > 0 then + if class_id(x) = GdkPixbuf then + return gtk_func("gtk_cell_view_new_with_pixbuf",{P},{x}) + end if + elsif string(x) then + return gtk_func("gtk_cell_view_new_with_markup",{P},{allocate_string(x)}) + end if + end function + +widget[GtkDrawingArea] = {"gtk_drawing_area", +{GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, +"GtkDrawingArea"} + +widget[GtkSearchEntry] = {"gtk_search_entry", --3.6 +{GtkEntry,GtkWidget,GtkBuildable,GtkEditable,GtkCellEditable,GObject}, + {"new",{},P}, + {"handle_event",{P,P},B}, +"GtkSearchEntry"} + +widget[GtkEntryBuffer] = {"gtk_entry_buffer", +{GObject}, + {"new",{S,I},P}, + {"get_text",{P},S}, + {"set_text",{P,S,I}}, + {"get_bytes",{P},I}, + {"get_length",{P},I}, + {"set_max_length",{P,I}}, + {"get_max_length",{P},I}, + {"insert_text",{P,I,S,I},I}, + {"delete_text",{P,I,I},I}, + {"emit_deleted_text",{P,I,I}}, + {"emit_inserted_text",{P,I,S,I}}, +"GtkEntryBuffer"} + +widget[GtkEntryCompletion] = {"gtk_entry_completion", +{GtkCellLayout,GtkBuildable,GObject}, + {"new",{P},-routine_id("newEntryCompletion")}, + {"get_entry",{P},P,0,GtkEntry}, + {"set_model",{P,P}}, + {"get_model",{P},P,0,GtkTreeModel}, + {"set_match_func",{P,P,P,P}}, + {"set_minimum_key_length",{P,I}}, + {"get_minimum_key_length",{P},I}, + {"compute_prefix",{P,S},S}, + {"get_completion_prefix",{P},S}, + {"insert_prefix",{P}}, + {"insert_action_text",{P,I,S}}, + {"insert_action_markup",{P,I,S}}, + {"delete_action",{P,I}}, + {"set_text_column",{P,I}}, + {"get_text_column",{P},I}, + {"set_inline_completion",{P,B}}, + {"get_inline_completion",{P},B}, + {"set_inline_selection",{P,B}}, + {"get_inline_selection",{P},B}, + {"set_popup_completion",{P,B}}, + {"get_popup_completion",{P},B}, + {"set_popup_set_width",{P,B}}, + {"get_popup_set_width",{P},B}, + {"set_popup_single_match",{P,B}}, + {"get_popup_single_match",{P},B}, + {"complete",{P}}, +"GtkEntryCompletion"} + + function newEntryCompletion(atom x=0) + if class_id(x) = GtkCellArea then + return gtk_func("gtk_entry_completion_new_with_area",{P},{x}) + else + return gtk_func("gtk_entry_completion_new") + end if + end function + +widget[GtkRevealer] = {"gtk_revealer", -- new in GTK 3.10 +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"set_reveal_child",{P,B}}, + {"get_reveal_child",{P},B}, + {"get_child_revealed",{P},B}, + {"set_transition_duration",{P,I}}, + {"get_transition_duration",{P},I}, + {"set_transition_type",{P,I}}, + {"get_transition_type",{P},I}, +"GtkRevealer"} + +widget[GtkSearchBar] = {"gtk_search_bar", -- new in GTK 3.10 +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"connect_entry",{P,P}}, + {"set_search_mode",{P,B}}, + {"get_search_mode",{P},B}, + {"set_show_close_button",{P,B}}, + {"get_show_close_button",{P},B}, + {"handle_event",{P,P},B}, +"GtkSearchBar"} + +widget[GtkStack] = {"gtk_stack", -- new in GTK 3.10 +{GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"add_named",{P,P,S}}, + {"add_titled",{P,P,S,S}}, + {"set_visible_child",{P,P}}, + {"get_visible_child",{P},P,0,GtkWidget}, + {"set_visible_child_name",{P,S}}, + {"get_visible_child_name",{P},S}, + {"set_visible_child_full",{P,S,I}}, + {"set_homogeneous",{P,B}}, + {"get_homogeneous",{P},B}, + {"set_transition_duration",{P,I}}, + {"get_transition_duration",{P},I}, + {"set_transition_type",{P,I}}, + {"get_transition_type",{P},I}, + {"get_child_by_name",{P,S},P,0,GtkWidget}, -- 3.12 + {"get_transition_running",{P},B}, -- 3.12 + {"get_hhomogeneous",{P},B}, -- 3.16 + {"set_hhomogeneous",{P,B}}, -- 3.16 + {"get_vhomogeneous",{P},B}, -- 3.16 + {"set_vhomogeneous",{P,B}}, -- 3.16 + {"get_interpolate_size",{P},B}, -- 3.18 + {"set_interpolate_size",{P,B}}, -- 3.18 +"GtkStack"} + +widget[GtkStackSidebar] = {"gtk_stack_sidebar", -- 3.16 +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"set_stack",{P,P}}, + {"get_stack",{P},P,0,GtkStack}, +"GtkStackSidebar"} + +widget[GtkStackSwitcher] = {"gtk_stack_switcher", +{GtkBox,GtkContainer,GtkWidget,GtkBuildable,GtkOrientable,GObject}, + {"new",{},P}, + {"set_stack",{P,P}}, + {"get_stack",{P},P,0,GtkStack}, +"GtkStackSwitcher"} + +widget[GtkScrollbar] = {"gtk_scrollbar", +{GtkRange,GtkWidget,GtkBuildable,GtkOrientable,GObject}, + {"new",{I,P},P}, +"GtkScrollbar"} + +widget[GtkInvisible] = {"gtk_invisible", +{GtkWidget,GtkBuildable,GObject}, + {"new",{P},-routine_id("newInvisible")}, + {"set_screen",{P,P}}, + {"get_screen",{P},P,0,GdkScreen}, +"GtkInvisible"} + + function newInvisible(atom x=0) + if class_id(x) = GdkScreen then + return gtk_func("gtk_invisible_new_for_screen",{P},{x}) + else + return gtk_func("gtk_invisible_new") + end if + end function + +widget[GtkProgressBar] = {"gtk_progress_bar", +{GtkWidget,GtkBuildable,GtkOrientable,GObject}, + {"new",{},P}, + {"pulse",{P}}, + {"set_fraction",{P,D}}, + {"get_fraction",{P},D}, + {"set_inverted",{P,B}}, + {"get_inverted",{P},B}, + {"set_show_text",{P,B}}, + {"get_show_text",{P},B}, + {"set_text",{P,S}}, + {"get_text",{P},S}, + {"set_ellipsize",{P,B}}, + {"get_ellipsize",{P},B}, + {"set_pulse_step",{P,D}}, + {"get_pulse_step",{P},D}, +"GtkProgressBar"} + +widget[GtkSpinner] = {"gtk_spinner", +{GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"start",{P}}, + {"stop",{P}}, +"GtkSpinner"} + +widget[GtkSwitch] = {"gtk_switch", +{GtkWidget,GtkBuildable,GtkActionable,GObject}, + {"new",{},P}, + {"set_active",{P,B}}, + {"get_active",{P},B}, + {"get_state",{P},B}, -- GTK3.14 + {"set_state",{P,B}}, -- GTK3.14 +"GtkSwitch"} + +widget[GtkLevelBar] = {"gtk_level_bar",-- GTK3.6+ +{GtkWidget,GtkBuildable,GtkBuildable,GtkOrientable,GObject}, + {"new",{D,D},-routine_id("newLevelBar")}, + {"new_for_interval",{D,D},P}, + {"set_mode",{P,I}}, + {"get_mode",{P},I}, + {"set_value",{P,D}}, + {"get_value",{P},D}, + {"set_min_value",{P,D}}, + {"get_min_value",{P},D}, + {"set_max_value",{P,D}}, + {"get_max_value",{P},D}, + {"add_offset_value",{P,S,D}}, + {"remove_offset_value",{P,S}}, + {"get_offset_value",{P,S},D}, + {"get_inverted",{P},B}, --GTK3.8+ + {"set_inverted",{P,B}}, --GTK3.8+ +"GtkLevelBar"} + + function newLevelBar(atom x=0, atom y=0) + if x+y > 0 then + return gtk_func("gtk_level_bar_new_for_interval",{D,D},{x,y}) + else + return gtk_func("gtk_level_bar_new") + end if + end function + +widget[GtkAboutDialog] = {"gtk_about_dialog", +{GtkDialog,GtkWindow,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"set_program_name",{P,S}}, + {"get_program_name",{P},S}, + {"set_version",{P,S}}, + {"get_version",{P},S}, + {"set_copyright",{P,S}}, + {"get_copyright",{P},S}, + {"set_comments",{P,S}}, + {"get_comments",{P},S}, + {"set_license",{P,S}}, + {"get_license",{P},S}, + {"set_wrap_license",{P,B}}, + {"get_wrap_license",{P},B}, + {"set_license_type",{P,I}}, + {"get_license_type",{P},I}, + {"set_website",{P,S}}, + {"get_website",{P},S}, + {"set_website_label",{P,S}}, + {"get_website_label",{P},S}, + {"set_authors",{P,A}}, + {"get_authors",{P},V}, + {"set_artists",{P,A}}, + {"get_artists",{P},V}, + {"set_documenters",{P,A}}, + {"get_documenters",{P},V}, + {"set_translator_credits",{P,S}}, + {"get_translator_credits",{P},S}, + {"set_logo",{P,P},-routine_id("setAboutLogo")}, + {"get_logo",{P},P,0,GdkPixbuf}, + {"set_logo_icon_name",{P,S}}, + {"get_logo_icon_name",{P},S}, + {"add_credit_section",{P,S,A}}, +"GtkAboutDialog"} + + function setAboutLogo(atom dlg, object logo) + if string(logo) then + logo = locate_file(logo) + if file_type(logo) = 0 then return 0 end if + end if + if atom(logo) and class_id(logo) = GdkPixbuf then + return 0 + else + logo = create(GdkPixbuf,logo) + end if + gtk_proc("gtk_about_dialog_set_logo",{P,P},{dlg,logo}) + return 1 + end function + +widget[GtkAppChooserDialog] = {"gtk_app_chooser_dialog", +{GtkAppChooser,GtkDialog,GtkWindow,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{P,I,P},-routine_id("newAppChooserDialog")}, + {"get_widget",{P},P,0,GtkAppChooserWidget}, + {"set_heading",{P,S}}, + {"get_heading",{P},S}, +"GtkAppChooserDialog"} + + function newAppChooserDialog(atom parent, integer flags, object x) + if string(x) and file_exists(canonical_path(x)) then + x = allocate_string(canonical_path(x),1) + x = gtk_func("g_file_new_for_path",{P},{x}) + return gtk_func("gtk_app_chooser_dialog_new",{P,I,P},{parent,flags,x}) + else + if string(x) then + x = allocate_string(x,1) + end if + return gtk_func("gtk_app_chooser_dialog_new_for_content_type", + {P,I,P},{parent,flags,x}) + end if + end function + +widget[GtkColorChooserDialog] = {"gtk_color_chooser_dialog", +{GtkColorChooser,GtkDialog,GtkWindow,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{S,P},P}, +"GtkColorChooserDialog"} + +widget[GtkColorSelectionDialog] = {"gtk_color_selection_dialog", +{GtkDialog,GtkWindow,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{S},P}, + {"get_color_selection",{P},P,0,GtkColorSelection}, +"GtkColorSelectionDialog"} + +widget[GtkFileChooserDialog] = {"gtk_file_chooser_dialog", +{GtkFileChooser,GtkDialog,GtkWindow,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{S,P,I,S},P}, +"GtkFileChooserDialog"} + +widget[GtkFontChooserDialog] = {"gtk_font_chooser_dialog", +{GtkFontChooser,GtkDialog,GtkWindow,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{S,P},P}, +"GtkFontChooserDialog"} + +widget[GtkStyleProvider] = {"gtk_style_provider", +{0}, + {"get_style_property",{P,P,I,P,P},B}, +"GtkStyleProvider"} + +widget[GtkStyleContext] = {"gtk_style_context", +{GObject}, + {"new",{},P}, + {"add_provider",{P,P,I}}, + {"add_provider_for_screen",{P,P,P,I},-routine_id("sc_add_provider_for_screen")}, + {"get",{P,I,S,P,I}}, + {"get_junction_sides",{P},I}, + {"get_parent",{P},P,0,GtkStyleContext}, + {"get_path",{P},P,0,GtkWidgetPath}, + {"get_property",{P,S,I,P}}, + {"get_screen",{P},P,0,GdkScreen}, + {"get_frame_clock",{P},P,0,GdkFrameClock}, + {"get_state",{P},I}, + {"get_style",{P,S,P,I}}, + {"get_style_property",{P,S,P}}, + {"get_section",{P,S},P,0,GtkCssSection}, + {"get_color",{P,I,P}}, + {"get_background_color",{P,I,P}}, -- deprecated 3.16 + {"get_border_color",{P,I,P}}, -- deprecated 3.16 + {"get_border",{P,I,P}}, + {"get_padding",{P,I,P}}, + {"get_margin",{P,I,P}}, + {"invalidate",{P}}, + {"lookup_color",{P,S,P},B}, + {"remove_provider",{P,P}}, + {"remove_provider_for_screen",{P,P}}, + {"reset_widgets",{P}}, + {"set_background",{P,P}}, + {"restore",{P}}, + {"save",{P}}, + {"set_junction_sides",{P,I}}, + {"set_parent",{P,P}}, + {"set_path",{P,P}}, + {"add_class",{P,S}}, + {"remove_class",{P,S}}, + {"has_class",{P,S},B}, + {"list_classes",{P},P,0,GList}, + {"add_region",{P,S,I}}, -- deprecated 3.14 + {"remove_region",{P,S}}, -- deprecated 3.14 + {"has_region",{P,S,I},B}, -- deprecated 3.14 + {"list_regions",{P},P,0,GList}, -- deprecated 3.14 + {"get_screen",{P,P}}, + {"set_frame_clock",{P,P}}, + {"set_state",{P,I}}, + {"set_scale",{P,I}}, -- 3.10 + {"get_scale",{P},I}, -- 3.10 + {"to_string",{P,I},S}, -- 3.20 +"GtkStyleContext"} + + function sc_add_provider_for_screen(atom context, atom scrn, atom pro, integer pri) + gtk_proc("gtk_style_context_add_provider_for_screen",{P,P,I},{scrn,pro,pri}) + return 1 + end function + +widget[GtkRecentChooserDialog] = {"gtk_recent_chooser_dialog", +{GtkRecentChooser,GtkDialog,GtkWindow,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{S,P,P},P}, + {"new_for_manager",{S,P,P,P},P}, +"GtkRecentChooserDialog"} + +widget[GtkPrintSettings] = {"gtk_print_settings", +{GObject}, + {"new",{P,P},-routine_id("newPrintSettings")}, + {"load_file",{P,S,P},B}, + {"to_file",{P,S,P},B}, + {"load_key_file",{P,P,S,P},B}, + {"to_key_file",{P,P,S}}, + {"copy",{P},P,0,GtkPrintSettings}, + {"has_key",{P,S},B}, + {"get",{P,S},S}, + {"set",{P,S,S}}, + {"unset",{P,S}}, + {"foreach",{P,P,P}}, + {"get_bool",{P,S},B}, + {"set_bool",{P,S,B}}, + {"get_double",{P,S},D}, + {"get_double_with_default",{P,S,D},D}, + {"set_double",{P,S,D}}, + {"get_length",{P,S,I},D}, + {"set_length",{P,S,D,I}}, + {"get_int",{P,S},I}, + {"get_int_with_default",{P,S,I},I}, + {"set_int",{P,S,I}}, + {"get_printer",{P},S}, + {"set_printer",{P,S}}, + {"get_orientation",{P},I}, + {"set_orientation",{P,I}}, + {"get_paper_size",{P},P,0,GtkPaperSize}, + {"set_paper_size",{P,P}}, + {"get_paper_width",{P,I},D}, + {"set_paper_width",{P,D,I}}, + {"get_paper_height",{P,I},D}, + {"set_paper_height",{P,D,I}}, + {"get_use_color",{P},B}, + {"set_use_color",{P,B}}, + {"get_collate",{P},B}, + {"set_collate",{P,B}}, + {"get_reverse",{P},B}, + {"set_reverse",{P,B}}, + {"get_duplex",{P},I}, + {"set_duplex",{P,I}}, + {"get_quality",{P},I}, + {"set_quality",{P,I}}, + {"get_n_copies",{P},I}, + {"set_n_copies",{P,I}}, + {"get_number_up",{P},I}, + {"set_number_up",{P,I}}, + {"get_number_up_layout",{P},I}, + {"set_number_up_layout",{P,I}}, + {"get_resolution",{P},I}, + {"set_resolution",{P,I}}, + {"get_resolution_x",{P},I}, + {"get_resolution_y",{P},I}, + {"get_printer_lpi",{P},D}, + {"set_printer_lpi",{P,D}}, + {"get_scale",{P},D}, + {"set_scale",{P,D}}, + {"get_print_pages",{P},I}, + {"set_print_pages",{P,I}}, + {"get_page_ranges",{P,I},P,0,GtkPageRange}, + {"set_page_ranges",{P,P},-routine_id("ps_set_page_ranges")}, + {"get_page_set",{P},I}, + {"set_page_set",{P,I}}, + {"get_default_source",{P},S}, + {"set_default_source",{P,S}}, + {"get_media_type",{P},S}, + {"set_media_type",{P,S}}, + {"get_dither",{P},S}, + {"set_dither",{P,S}}, + {"get_finishings",{P},S}, + {"set_finishings",{P,S}}, + {"get_output_bin",{P},S}, + {"set_output_bin",{P,S}}, +"GtkPrintSettings"} + + function newPrintSettings(object x=0, object y=0) + atom err=allocate(8,1) + if atom(x) and x = 0 then + return gtk_func("gtk_print_settings_new") + end if + if class_id(x) = GKeyFile then + y = allocate_string(y,1) + return gtk_func("gtk_print_settings_new_from_key_file",{P,P,P},{x,y,err}) + end if + if string(x) and file_exists(canonical_path(x)) then + x = allocate_string(canonical_path(x),1) + return gtk_func("gtk_print_settings_new_from_file",{P,P},{x,err}) + end if + end function + + function ps_set_page_ranges(atom x, object r) + atom m = allocate_data(8) + poke(m,r[1]) + poke(m+4,r[2]) + gtk_proc("gtk_print_settings_set_pages_ranges",{P,P,I},{x,m,2}) + return 1 + end function + +widget[GtkPaperSize] = {"gtk_paper_size", +{0}, + {"new",{P,P,D,D},-routine_id("newPaperSize")}, + {"new_from_ppd",{S,S,D,D},P}, + {"new_from_ipp",{S,D,D},P,0,GtkPaperSize}, -- 3.16 + {"new_custom",{S,S,D,D,I},P}, + {"copy",{P},P,0,GtkPaperSize}, + {"is_equal",{P,P},B}, + {"get_name",{P},S}, + {"get_display_name",{P},S}, + {"get_ppd_name",{P},S}, + {"get_width",{P,I},D}, + {"get_height",{P,I},D}, + {"is_custom",{P},B}, + {"set_size",{P,D,D,I}}, + {"get_default_top_margin",{P,I},D}, + {"get_default_bottom_margin",{P,I},D}, + {"get_default_left_margin",{P,I},D}, + {"get_default_right_margin",{P,I},D}, +"GtkPaperSize"} + + function newPaperSize(object a=0, object b=0, atom c=0, atom d=0) + if string(a) and atom(b) and b = 0 and c = 0 and d = 0 then + a = allocate_string(a,1) + return gtk_func("gtk_paper_size_new",{P},{a}) + end if + if string(a) and atom(b) and b > 0 and c > 0 then + a = allocate_string(a,1) + return gtk_func("gtk_paper_size_new_from_ipp",{P,D,D},{a,b,c}) + end if + if string(a) and string(b) and c > 0 and d > 0 then + a = allocate_string(a,1) + b = allocate_string(b,1) + return gtk_func("gtk_paper_size_new_from_ppd",{P,P,D,D},{a,b,c,d}) + end if + end function + +export function get_paper_sizes(integer cust=0) + object ps = gtk_func("gtk_paper_size_get_paper_sizes",{P},{cust}) + ps = unpack_gs_atom_list(ps) + return ps +end function + +export function get_paper_size_names(integer cust=0) + object ps = get_paper_sizes(cust) + for i = 1 to length(ps) do + ps[i] = gtk_str_func("gtk_paper_size_get_name",{P},{ps[i]}) + end for + return ps +end function + +widget[GtkPageSetup] = {"gtk_page_setup", +{GObject}, + {"new",{},P}, + {"copy",{P},P,0,GtkPageSetup}, + {"get_orientation",{P},I}, + {"set_orientation",{P,I}}, + {"get_paper_size",{P},P,0,GtkPaperSize}, + {"set_paper_size",{P,P}}, + {"get_top_margin",{P,I},D}, + {"set_top_margin",{P,D,I}}, + {"get_bottom_margin",{P,I},D}, + {"set_bottom_margin",{P,D,I}}, + {"get_left_margin",{P,I},D}, + {"set_left_margin",{P,D,I}}, + {"get_right_margin",{P,I},D}, + {"set_right_margin",{P,D,I}}, + {"set_paper_size_and_default_margins",{P,P}}, + {"get_paper_width",{P,I},D}, + {"get_paper_height",{P,I},D}, + {"get_page_width",{P,I},D}, + {"get_page_height",{P,I},D}, + {"new_from_file",{S,P},P,0,GtkPageSetup}, + {"load_file",{P,S,P},B}, + {"to_file",{P,S},-routine_id("ps_to_file")}, +"GtkPageSetup"} + + function ps_to_file(atom setup, object filename) + atom err = allocate(8,1) err = 0 + return gtk_func("gtk_page_setup_to_file",{P,P,P},{setup,filename,err}) + end function + +widget[GtkPageRange] = {"gtk_page_range", +{0}, +"GtkPageRange"} + +widget[GtkPrintOperation] = {"gtk_print_operation", +{GObject}, + {"new",{},P}, + {"set_allow_async",{P,B}}, + {"get_error",{P,P}}, + {"set_default_page_setup",{P,P}}, + {"get_default_page_setup",{P},P,0,GtkPageSetup}, + {"set_print_settings",{P,P}}, + {"get_print_settings",{P},P,0,GtkPrintSettings}, + {"set_job_name",{P,S}}, + {"get_job_name",{P},-routine_id("getPrintOpJobName")}, + {"set_n_pages",{P,I}}, + {"get_n_pages_to_print",{P},I}, + {"set_current_page",{P,I}}, + {"set_use_full_page",{P,B}}, + {"set_unit",{P,I}}, + {"set_export_filename",{P,S}}, + {"set_show_progress",{P,B}}, + {"set_track_print_status",{P,B}}, + {"set_custom_tab_label",{P,S}}, + {"run",{P,P,P,P},I}, + {"cancel",{P}}, + {"draw_page_finish",{P}}, + {"set_defer_drawing",{P}}, + {"get_status",{P},I}, + {"get_status_string",{P},S}, + {"is_finished",{P},B}, + {"set_support_selection",{P,B}}, + {"get_support_selection",{P},B}, + {"set_has_selection",{P,B}}, + {"get_has_selection",{P},B}, + {"set_embed_page_setup",{P,B}}, + {"get_embed_page_setup",{P},B}, +"GtkPrintOperation"} + + function getPrintOpJobName(atom op) + object job = allocate(32,1), err = allocate(32,1) err = 0 + gtk_func("g_object_get",{P,P,P,P},{op,"job name",job,err}) + object result + ifdef BITS64 then -- thanks pete eberlein + result = peek8u(job) + elsedef + result = peek4u(job) + end ifdef + if result > 0 then + result = peek_string(result) + end if + return result + end function + +widget[GtkPrintContext] = {"gtk_print_context", +{GObject}, + {"get_cairo_context",{P},P}, + {"set_cairo_context",{P,P,D,D}}, + {"get_page_setup",{P},P,0,GtkPageSetup}, + {"get_width",{P},D}, + {"get_height",{P},D}, + {"get_dpi_x",{P},D}, + {"get_dpi_y",{P},D}, + {"get_pango_fontmap",{P},P,0,PangoFontMap}, + {"create_pango_context",{P},P,0,PangoContext}, + {"create_pango_layout",{P},P,0,PangoLayout}, + {"get_hard_margins",{P,D,D,D,D},B}, +"GtkPrintContext"} + +widget[GtkPrintUnixDialog] = {"gtk_print_unix_dialog", +{GtkDialog,GtkWindow,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{S,P},P}, + {"set_page_setup",{P,P}}, + {"get_page_setup",{P},P,0,GtkPageSetup}, + {"set_current_page",{P,I}}, + {"get_current_page",{P},I}, + {"set_settings",{P,P}}, + {"get_settings",{P},P,0,GtkPrintSettings}, + {"get_selected_printer",{P},P,0,GtkPrinter}, + {"add_custom_tab",{P,P,P}}, + {"set_support_selection",{P,B}}, + {"get_support_selection",{P},B}, + {"get_has_selection",{P},B}, + {"set_embed_page_setup",{P,B}}, + {"get_embed_page_setup",{P},B}, + {"set_manual_capabilities",{P,I}}, + {"get_manual_capabilities",{P},I}, +"GtkPrintUnixDialog"} + +widget[GtkPageSetupUnixDialog] = {"gtk_page_setup_unix_dialog", +{GtkDialog,GtkWindow,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{S,P},P}, + {"set_page_setup",{P,P}}, + {"get_page_setup",{P},P,0,GtkPageSetup}, + {"set_print_settings",{P,P}}, + {"get_print_settings",{P},P,0,GtkPrintSettings}, +"GtkPageSetupUnixDialog"} + +widget[GtkListBox] = {"gtk_list_box", -- new in GTK 3.10 +{GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"prepend",{P,P}}, + {"insert",{P,P,I}}, + {"select_row",{P,P}}, + {"select_all",{P}}, -- 3.14 + {"unselect_all",{P}}, -- 3.14 + {"unselect_row",{P,P}}, -- 3.14 + {"get_selected_row",{P},P,0,GtkListBoxRow}, + {"get_selected_rows",{P},X,0,GList},-- 3.14 + {"row_is_selected",{P},B}, -- 3.14 + {"selected_foreach",{P,P,P}}, -- 3.14 + {"set_selection_mode",{P,I}}, + {"get_selection_mode",{P},I}, + {"set_activate_on_single_click",{P,B}}, + {"get_activate_on_single_click",{P},B}, + {"set_adjustment",{P,P}}, + {"get_adjustment",{P},P,0,GtkAdjustment}, + {"set_placeholder",{P,P}}, + {"get_row_at_index",{P,I},P,0,GtkListBoxRow}, + {"get_row_at_y",{P,I},P,0,GtkListBoxRow}, + {"invalidate_filter",{P}}, + {"invalidate_headers",{P}}, + {"invalidate_sort",{P}}, + {"set_filter_func",{P,P,P,P}}, + {"set_header_func",{P,P,P,P}}, + {"set_sort_func",{P,P,P,P}}, + {"drag_highlight_row",{P,P}}, + {"drag_unhighlight_row",{P}}, + {"bind_model",{P,P,P,P,P}}, -- 3.16 +"GtkListBox"} + +widget[GtkListBoxRow] = {"gtk_list_box_row", +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"changed",{P}}, + {"get_header",{P},P,0,GtkWidget}, + {"get_type",{},I}, + {"set_header",{P,P}}, + {"get_index",{P},I}, + {"set_activatable",{P,B}}, + {"set_selectable",{P,B}}, + {"get_selectable",{P},B}, +"GtkListBoxRow"} + +widget[GtkPopover] = {"gtk_popover", -- new in GTK 3.12 +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{P,P},-routine_id("newPopover")}, + {"bind_model",{P,P,S}}, + {"set_relative_to",{P,P}}, + {"get_relative_to",{P},P,0,GtkWidget}, + {"set_pointing_to",{P,P}}, + {"get_pointing_to",{P,P},B}, + {"set_position",{P,I}}, + {"get_position",{P},I}, + {"set_modal",{P,B}}, + {"get_modal",{P},B}, + {"get_transitions_enabled",{P},B}, + {"set_transitions_enabled",{P,B}}, + {"get_default_widget",{P},P,0,GtkWidget}, -- 3.18 + {"set_default_widget",{P,P}}, -- 3.18 + {"get_constrain_to",{P},P}, -- 3.20 + {"set_constrain_to",{P,P}}, -- 3.20 + {"popup",{P}}, -- 3.21 + {"popdown",{P}}, -- 3.21 +"GtkPopover"} + + function newPopover(atom a=0, atom b=0) + if class_id(b) = GMenuModel then + return gtk_func("gtk_popover_new_from_model",{P,P},{a,b}) + else + return gtk_func("gtk_popover_new",{P},{a}) + end if + end function + +widget[GtkPopoverMenu] = {"gtk_popover_menu", -- 3.16 +{GtkPopover,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"open_submenu",{P,S}}, +"GtkPopoverMenu"} + +widget[GtkPlacesSidebar] = {"gtk_places_sidebar", -- new 3.10 +{GtkScrolledWindow,GtkBin,GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"set_open_flags",{P,I}}, + {"get_open_flags",{P},I}, + {"set_location",{P,P}}, + {"get_location",{P},P,0,GFile}, + {"set_show_desktop",{P,B}}, + {"get_show_desktop",{P},B}, + {"add_shortcut",{P,P}}, + {"remove_shortcut",{P,P}}, + {"list_shortcuts",{P},A,0,GSList}, + {"get_nth_bookmark",{P,I},P,0,GFile}, + {"get_show_connect_to_server",{P},B}, -- deprecated 3.18 + {"set_show_connect_to_server",{P,B}}, -- deprecated 3.18 + {"set_local_only",{P,B}}, -- 3.12 + {"get_local_only",{P},B}, -- 3.12 + {"get_show_enter_location",{P},B}, --3.14 + {"set_show_enter_location",{P,B}}, --3.14 + {"get_show_other_locations",{P},B}, -- 3.18 + {"set_show_other_locations",{P,B}}, -- 3.18 + {"get_show_recent",{P},B}, -- 3.18 + {"set_show_recent",{P,B}}, -- 3.18 + {"get_show_trash",{P},B}, -- 3.18 + {"set_show_trash",{P,B}}, -- 3.18 + {"set_drop_targets_visible",{P,B,P}}, -- 3.18 +"GtkPlacesSidebar"} + +widget[GtkHeaderBar] = {"gtk_header_bar", -- new in GTK 3.10 +{GtkContainer,GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"set_title",{P,S}}, + {"get_title",{P},S}, + {"set_subtitle",{P,S}}, + {"get_subtitle",{P},S}, + {"set_has_subtitle",{P,B}}, -- 3.12 + {"get_has_subtitle",{P},B}, -- 3.12 + {"set_custom_title",{P,P}}, + {"get_custom_title",{P},P,0,GtkWidget}, + {"pack_start",{P,P}}, + {"pack_end",{P,P}}, + {"set_show_close_button",{P,B}}, + {"get_show_close_button",{P},B}, + {"set_decoration_layout",{P,S}}, -- 3.12 + {"get_decoration_layout",{P},S}, -- 3.12 +"GtkHeaderBar"} + +widget[GtkPrinter] = {"gtk_printer", +{GObject}, + {"new",{S,P,B},P}, + {"get_backend",{P},P}, + {"get_name",{P},S}, + {"get_state_message",{P},S}, + {"get_description",{P},S}, + {"get_location",{P},S}, + {"get_icon_name",{P},S}, + {"get_job_count",{P},I}, + {"is_active",{P},B}, + {"is_paused",{P},B}, + {"is_accepting_jobs",{P},B}, + {"is_virtual",{P},B}, + {"is_default",{P},B}, + {"accepts_ps",{P},B}, + {"accepts_pdf",{P},B}, + --{"list_papers",{P},X,0,GList}, -- buggy! + {"compare",{P,P},I}, + {"has_details",{P},B}, + {"request_details",{P}}, + {"get_capabilities",{P},I}, + {"get_default_page_size",{P},P,0,GtkPageSetup}, + {"get_hard_margins",{P,D,D,D,D},B}, +"GtkPrinter"} + +widget[GtkPrintJob] = {"gtk_print_job", +{GObject}, + {"new",{S,P,P,P},P}, + {"get_settings",{P},P,0,GtkPrintSettings}, + {"get_printer",{P},P,0,GtkPrinter}, + {"get_title",{P},S}, + {"get_status",{P},I}, + {"set_source_file",{P,S,P},B}, + {"get_surface",{P,P},P,0,CairoSurface_t}, + {"send",{P,P,P,P}}, + {"set_track_print_status",{P,B}}, + {"get_track_print_status",{P},B}, + {"get_pages",{P},I}, + {"set_pages",{P,I}}, + {"get_page_ranges",{P,I},P,0,GtkPageRange}, + {"set_page_ranges",{P,P},-routine_id("setPageRanges")}, + {"get_page_set",{P},I}, + {"set_page_set",{P,I}}, + {"get_num_copies",{P},I}, + {"set_num_copies",{P,I}}, + {"get_scale",{P},D}, + {"set_scale",{P,D}}, + {"get_n_up",{P},I}, + {"set_n_up",{P,I}}, + {"get_n_up_layout",{P},I}, + {"set_n_up_layout",{P,I}}, + {"get_rotate",{P},B}, + {"set_rotate",{P,B}}, + {"get_collate",{P},B}, + {"set_collate",{P,B}}, + {"get_reverse",{P},B}, + {"set_reverse",{P,B}}, +"GtkPrintJob"} + +widget[GtkFlowBox] = {"gtk_flow_box", -- GTK 3.12 +{GtkContainer,GtkWidget,GtkBuildable,GtkOrientable,GObject}, + {"new",{},P}, + {"insert",{P,P,I}}, + {"get_child_at_index",{P,I},P,0,GtkFlowBoxChild}, + {"set_hadjustment",{P,P}}, + {"set_vadjustment",{P,P}}, + {"set_homogeneous",{P,B}}, + {"get_homogeneous",{P},B}, + {"set_row_spacing",{P,I}}, + {"get_row_spacing",{P},I}, + {"set_column_spacing",{P,I}}, + {"get_column_spacing",{P},I}, + {"set_min_children_per_line",{P,I}}, + {"get_min_children_per_line",{P},I}, + {"set_max_children_per_line",{P,I}}, + {"get_max_children_per_line",{P},I}, + {"set_activate_on_single_click",{P,B}}, + {"get_activate_on_single_click",{P},B}, + {"selected_foreach",{P,P,P}}, + {"get_selected_children",{P},X,0,GList}, + {"select_child",{P,P}}, + {"unselect_child",{P,P}}, + {"select_all",{P}}, + {"unselect_all",{P}}, + {"set_selection_mode",{P,I}}, + {"get_selection_mode",{P},I}, + {"set_filter_func",{P,P,P,P}}, + {"invalidate_filter",{P}}, + {"set_sort_func",{P,P,P,P}}, + {"invalidate_sort",{P}}, + {"bind_model",{P,P,P,P,P}}, -- 3.18 +"GtkFlowBox"} + +widget[GtkFlowBoxChild] = {"gtk_flow_box_child", -- GTK 3.12 +{GtkBin,GtkContainer,GtkWidget,GtkBuildable,GtkOrientable,GObject}, + {"new",{},P}, + {"get_index",{P},I}, + {"is_selected",{P},B}, + {"changed",{P}}, +"GtkFlowBoxChild"} + +widget[GtkMountOperation] = {"gtk_mount_operation", +{GObject}, + {"new",{P},P}, + {"is_showing",{P},B}, + {"set_parent",{P,P}}, + {"get_parent",{P},P,0,GtkWindow}, + {"set_screen",{P,P}}, + {"get_screen",{P},P,0,GdkScreen}, +"GtkMountOperation"} + +---------------------------------------------------------------------- +-- stocklist is not a real GTK widget, we just fake it for convenience +---------------------------------------------------------------------- +widget[GtkStockList] = {"gtk_stocklist", -- deprecated in GTK 3.12+ +{0}, +"GtkStockList"} + + function newStockList() + object list = gtk_func("gtk_stock_list_ids") + return to_sequence(list) + end function + +---------------------------------------------------------------------- +-- Support for Gestures; +---------------------------------------------------------------------- + +widget[GtkEventController] = {"gtk_event_controller", +{GObject}, + {"get_propagation_phase",{P},I}, + {"set_propagation_phase",{P,I}}, + {"handle_event",{P,P},B}, + {"get_widget",{P},P,0,GtkWidget}, + {"reset",{P}}, +"GtkEventController"} + +widget[GdkFrameClock] = {"gdk_frame_clock", +{GObject}, + {"get_frame_time",{P},I}, + {"request_phase",{P,P}}, + {"begin_updating",{P}}, + {"end_updating",{P}}, + {"get_frame_counter",{P},I}, + {"get_history_start",{P},I}, + {"get_timings",{P,I},P}, + {"get_current_timings",{P},P,0,GdkFrameTimings}, + {"get_refresh_info",{P,I,I,I}}, +"GdkFrameClock"} + +widget[GdkFrameTimings] = {"gdk_frame_timings", +{GObject}, + {"get_frame_counter",{P},I}, + {"get_complete",{P},B}, + {"get_frame_time",{P},I}, + {"get_presentation_time",{P},I}, + {"get_refresh_interval",{P},I}, + {"get_predicted_presentation_time",{P},I}, +"GdkFrameTimings"} + +widget[GdkEvent] = {"gdk_event", +{GObject}, + {"new",{},P}, + {"peek",{},P,0,GdkEvent}, + {"get",{},P,0,GdkEvent}, + {"put",{P}}, + {"copy",{P},P,0,GdkEvent}, + {"get_axis",{P,I,D},B}, + {"get_button",{P,P},B}, + {"get_keycode",{P,P},B}, + {"get_keyval",{P,P},B}, + {"get_root_coords",{P,D,D},B}, + {"get_scroll_direction",{P,P},B}, + {"get_scroll_deltas",{P,D,D},B}, + {"get_state",{P,P},B}, + {"get_time",{P},I}, + {"get_window",{P},P,0,GdkWindow}, + {"get_event_type",{P},I}, + {"get_event_sequence",{P},P,0,GdkEventSequence}, + {"request_motions",{P}}, + {"get_click_count",{P,P},B}, + {"get_coords",{P,D,D},B}, + {"triggers_context_menu",{P},B}, + {"handler_set",{P,P,P}}, + {"set_screen",{P,P}}, + {"get_screen",{P},P,0,GdkScreen}, + {"set_device",{P,P}}, + {"get_device",{P},P,0,GdkDevice}, + {"set_source_device",{P,P}}, + {"get_source_device",{P},P,0,GdkDevice}, +"GdkEvent"} + +widget[GdkEventSequence] = {"gdk_event_sequence", +{GdkEvent}, +"GdkEventSequence"} + +widget[GtkGesture] = {"gtk_gesture", --GTK3.14 +{GtkEventController,GObject}, + {"get_device",{P},P}, + {"get_window",{P},P}, + {"set_window",{P,P}}, + {"is_active",{P},B}, + {"is_recognized",{P},B}, + {"get_sequence_state",{P,P},I}, + {"set_sequence_state",{P,P,I},B}, + {"set_state",{P,I},B}, + {"get_sequences",{P},A}, + {"handles_sequence",{P,P},B}, + {"get_last_updated_sequence",{P},P}, + {"get_last_event",{P,P},P}, + {"get_point",{P,P,D,D},B}, + {"get_bounding_box",{P,P},B}, + {"get_bounding_box_center",{P,D,D},B}, + {"group",{P,P}}, + {"ungroup",{P}}, + {"get_group",{P},A}, + {"is_grouped_with",{P,P},B}, +"GtkGesture"} + +widget[GtkGestureSingle] = {"gtk_gesture_single", +{GtkGesture,GtkEventController,GObject}, + {"get_exclusive",{P},B}, + {"set_exclusive",{P,B}}, + {"get_touch_only",{P},B}, + {"set_touch_only",{P,B}}, + {"get_button",{P},I}, + {"set_button",{P,I}}, + {"get_current_button",{P},I}, + {"get_current_sequence",{P},P}, +"GtkGestureSingle"} + +widget[GtkGestureRotate] = {"gtk_gesture_rotate", +{GtkGesture,GtkEventController,GObject}, + {"new",{P},P}, + {"get_angle_delta",{P},D}, +"GtkGestureRotate"} + +widget[GtkGestureZoom] = {"gtk_gesture_zoom", +{GtkGesture,GtkEventController,GObject}, + {"new",{P},P}, + {"get_scale_delta",{P},D}, +"GtkGestureZoom"} + +widget[GtkGestureDrag] = {"gtk_gesture_drag", -- 3.14 +{GtkGestureSingle,GtkGesture,GtkEventController,GObject}, + {"new",{P},P}, + {"get_start_point",{P,D,D},B}, + {"get_offset",{P,D,D},B}, +"GtkGestureDrag"} + +widget[GtkGesturePan] = {"gtk_gesture_pan", +{GtkGestureDrag,GtkGestureSingle,GtkGesture,GtkEventController,GObject}, + {"new",{P,I},P}, + {"get_orientation",{P},I}, + {"set_orientation",{P,I}}, +"GtkGesturePan"} + +widget[GtkGestureSwipe] = {"gtk_gesture_swipe", +{GtkGestureSingle,GtkGesture,GtkEventController,GObject}, + {"new",{P},P}, + {"get_velocity",{P,D,D},B}, +"GtkGestureSwipe"} + +widget[GtkGestureLongPress] = {"gtk_gesture_long_press", +{GtkGestureSingle,GtkGesture,GtkEventController,GObject}, + {"new",{P},P}, +"GtkGestureLongPress"} + +widget[GtkGestureMultiPress] = {"gtk_gesture_multi_press", +{GtkGestureSingle,GtkGesture,GtkEventController,GObject}, + {"new",{P},P}, + {"get_area",{P,P},B}, + {"set_area",{P,P}}, +"GtkGestureMultiPress"} + +widget[GtkPadController] = {"gtk_pad_controller", +{GtkEventController,GObject}, + {"new",{P,P,P},P}, + {"set_action_entries",{P,P,I}}, + {"set_action",{P,I,I,I,S,S}}, +"GtkPadController"} + +-------------------------------------------------------------------- +-- Support for openGL; +-------------------------------------------------------------------- + +widget[GdkGLProfile] = {"gdk_gl_profile", + {}, +"GdkGLProfile"} + +widget[GdkGLContext] = {"gdk_gl_context", +{GObject}, + {"new",{},-routine_id("newGLContext")}, + {"clear_current",{}}, + {"make_current",{P}}, + {"get_version",{P,I,I}}, + {"get_shared_context",{P},P,0,GdkGLContext}, + {"get_window",{P},P,0,GdkWindow}, + {"get_visual",{P},P,0,GdkVisual}, + {"get_display",{P},P,0,GdkDisplay}, + {"set_forward_compatible",{P,B}}, + {"get_forward_compatible",{P},B}, + {"set_debug_enabled",{P,B}}, + {"get_debug_enabled",{P},B}, + {"set_required_version",{P,I,I}}, + {"get_required_version",{P,I,I}}, +"GdkGLContext"} + + function newGLContext() -- alias for new; + return c_func("gdk_gl_context_get_current") + end function + +widget[GtkGLArea] = {"gtk_gl_area", -- GTK 3.16 +{GtkWidget,GtkBuildable,GObject}, + {"new",{},P}, + {"get_context",{P},P}, + {"set_has_alpha",{P,B}}, + {"get_has_alpha",{P},B}, + {"set_has_depth_buffer",{P,B}}, + {"get_has_depth_buffer",{P},B}, + {"make_current",{P}}, + {"get_auto_render",{P},B}, + {"set_auto_render",{P,B}}, + {"get_error",{P},P}, + {"set_error",{P,P}}, + {"queue_render",{P}}, + {"set_profile",{P,P}}, + {"get_profile",{P},P,0,GdkGLProfile}, + {"get_has_stencil_buffer",{P},B}, + {"set_has_stencil_buffer",{P,B}}, + {"attach_buffers",{P}}, + {"get_required_version",{P,I,I}}, + {"set_required_version",{P,I,I}}, + {"get_use_es",{P},B}, -- 3.22 + {"set_use_es",{P,B}}, -- 3.22 +"GtkGLArea"} + +---------------------------------------------------------------- +-- low-level x11 functions; +---------------------------------------------------------------- + +widget[GdkX11Display] = {"gdk_x11_display", +{GObject}, + {"get_user_time",{P},I}, + {"broadcast_startup_message",{P,S,S,I}}, + {"get_startup_notification_id",{P},S}, + {"set_startup_notification_id",{P,S}}, + {"get_xdisplay",{P},P}, + {"grab",{P}}, + {"ungrab",{P}}, + {"set_cursor_theme",{P,S,I}}, + {"set_window_scale",{P,I}}, + {"get_glx_version",{P,I,I}}, +"GdkX11Display"} + + +widget[GdkX11Screen] = {"gdk_x11_screen", +{GObject}, + {"get_screen_number",{P},I}, + {"get_xscreen",{P},P}, + {"get_window_manager_name",{P},S}, + {"get_monitor_output",{P,I},I}, + {"lookup_visual",{P,I},P,0,GdkVisual}, + {"get_number_of_desktops",{P},I}, + {"get_current_desktop",{P},I}, +"GdkX11Screen"} + +widget[GdkX11Window] = {"gdk_x11_window", +{GObject}, + {"lookup_for_display",{P,P},P,0,GdkWindow}, + {"get_xid",{P},P}, + {"move_to_current_desktop",{P}}, + {"move_to_desktop",{P,I}}, + {"get_desktop",{P},I}, +"GdkX11Window"} + +widget[GtkBindingSet] = {"gtk_binding_set", +{GObject}, + {"new",{S},P}, + {"by_class",{P},P}, + {"find",{S},P}, + {"activate",{P,I,I,P},B}, + {"add_path",{P,P,S,I}}, +"GtkBindingSet"} + +widget[GtkBindingEntry] = {"gtk_binding_entry", +{GtkBindingSet}, + {"add_signal",{P,I,I,S,P}}, + {"add_signal_from_string",{P,S},I}, + {"skip",{P,I,I}}, + {"remove",{P,I,I}}, +"GtkBindingEntry"} + +widget[GdkPixbufAnimation] = {"gdk_pixbuf_animation", +{GdkPixbuf,GObject}, + {"new",{P},-routine_id("newPixbufAnimation")}, + {"get_width",{P},I}, + {"get_height",{P},I}, + {"get_delay_time",{P},I}, + {"is_static_image",{P},B}, + {"get_static_image",{P},P,0,GdkPixbuf}, + {"get_iter",{P,P},P,0,GdkPixbufAnimationIter}, +"GdkPixbufAnimation"} + + function newPixbufAnimation(object name) + atom err = allocate(8,1) err = 0 + if string(name) + and file_exists(canonical_path(name)) then + name = allocate_string(canonical_path(name),1) + end if + return gtk_func("gdk_pixbuf_animation_new_from_file",{P,P},{name,err}) + end function + +widget[GdkPixbufAnimationIter] = {"gdk_pixbuf_animation_iter", +{GObject}, + {"get_pixbuf",{P},P,0,GdkPixbuf}, + {"advance",{P,P},B}, + {"get_delay_time",{P},I}, + {"on_currently_loading_frame",{P},B}, +"GdkPixbufAnimationIter"} + +widget[GtkRecentManager] = {"gtk_recent_manager", +{GObject}, + {"new",{},-routine_id("recent_manager_get_default")}, + {"add_item",{P,S},B}, + {"add_full",{P,S,P},B}, + {"remove_item",{P,S,P},B}, + {"lookup_item",{P,S,P},P,0,GtkRecentInfo}, + {"has_item",{P,S},B}, + {"move_item",{P,S,S,P},B}, + {"get_items",{P},X,0,GtkRecentInfo}, + {"purge_items",{P,P},I}, +"GtkRecentManager"} + + function recent_manager_get_default() + return gtk_func("gtk_recent_manager_get_default") + end function + +widget[GtkBuildable] = {"gtk_buildable", +{GObject}, + {"set_name",{P,S}}, + {"get_name",{P},S}, + {"add_child",{P,P,P,S}}, + {"set_buildable_property",{P,P,S,P}}, + {"construct_child",{P,P,S},P,0,GObject}, + {"custom_tag_start",{P,P,P,S,P,P},B}, + {"custom_tag_end",{P,P,P,S,P}}, + {"custom_finished",{P,P,P,S,P}}, + {"parser_finished",{P,P}}, + {"get_internal_child",{P,P,S},P,0,GObject}, +"GtkBuildable"} + +widget[GtkBuilder] = {"gtk_builder", +{GObject}, + {"new",{},P}, + {"add_callback_symbol",{P,S,P}}, -- 3.10 + {"lookup_callback_symbol",{P,S},P}, -- 3.10 + {"set_application",{P,P}}, -- 3.10 + {"get_application",{P},P,0,GtkApplication}, -- 3.10 + {"add_from_file",{P,S},-routine_id("addBuilderObjects")}, + {"add_from_string",{P,P},-routine_id("addBuilderObjectsStr")}, + {"get_object",{P,P},P}, + {"get_objects",{P},A,0,GSList}, + {"connect",{P},-routine_id("builder_connect")}, + {"set_translation_domain",{P,S}}, + {"get_translation_domain",{P},S}, + {"get_type_from_name",{P,S},I}, +"GtkBuilder"} + +export constant builder = create(GtkBuilder) +object current_builder_file = "" + +export function ID(atom ctl) -- retrieve the Glade ID property; + return vlookup(ctl,registry,1,4,"!") +end function + +export sequence class_name_index = repeat(0,length(widget)) + for i = 1 to length(widget) do + if sequence(widget[i]) then + class_name_index[i] = widget[i][$] + end if + end for + + constant bad_from_file = define_func("gtk_builder_add_from_file",{P,P,P},I) + constant bad_from_string = define_func("gtk_builder_add_from_string",{P,P,I,P},I) + + -- add objects from Glade XML file; + function addBuilderObjects(atom bld, object fname) + atom err = allocate(8,1) err = 0 + integer result = c_func(bad_from_file,{bld,fname,err}) + if result = 0 then + printf(1,"Error code %d loading Builder\n",err) + if err = 0 then + printf(1,"***** GTK version mismatch or other error in Glade.\n") + printf(1,"\t(remove or change the 'requires...' line)") + Error(,,"Error 8623 loading glade file",peek_string(fname)) + end if + abort(0) + end if + return result + end function + + -- add object from inline string or string variable; + function addBuilderObjectsStr(atom bld, object str) + current_builder_file = str + atom err = allocate(8,1) err = 0 + integer len = length(str) + str = allocate_string(str,1) + integer result = c_func(bad_from_string,{bld,str,len,err}) + if result = 0 then + printf(1,"Error 8638: loading Builder %s\n",{current_builder_file}) + if err = 0 then + printf(1,"***** GTK version mismatch or other error in Glade.\n") + printf(1,"\t(remove or change the 'requires...' line)") + end if + abort(0) + end if + return result + end function + + -- link signals defined in Glade, this starts a 'for' loop, + -- running the builder_connect_function for each control; + function builder_connect(atom bld) + gtk_func("gtk_builder_connect_signals_full",{P,P,P},{bld,builder_connect_func,0}) + return 1 + end function + + constant builder_connect_func = call_back(routine_id("builder_connect_function")) + + -- links Glade controls to user-written or Eu functions + + ----------------------------------------------------------------------------- + function builder_connect_function(atom bld, atom obj, object sig, object hdlr, atom cxo) + ----------------------------------------------------------------------------- + hdlr = peek_string(hdlr) + sig = peek_string(sig) + + if atom(current_builder_file) and (current_builder_file > 0) then + current_builder_file = peek_string(current_builder_file) + end if + + atom rid = routine_id(hdlr) + if rid = -1 then + printf(1,"-----------------------------------------------------------------------\n") + printf(1,"-- Undeclared function in %s\n",{current_builder_file}) + printf(1,"-----------------------------------------------------------------------\n") + show_template(hdlr) + abort(1) + else + rid = call_back(rid) + connect(obj,sig,rid,cxo) + end if + + return 1 + end function + + -------------------------------------------------------------------- + procedure load_builder(object parent, object child, object prefix=0) + -------------------------------------------------------------------- + object name, class, path + object x, tree + integer c,n + atom err = allocate(8,1) + + current_builder_file = canonical_path(child) + if file_exists(current_builder_file) then + set(parent,"add from file",current_builder_file,err) + set(parent,"connect") + prefix = filebase(child) + if match(prefix,filebase(prg_name)) then + prefix = 0 -- do not prefix main file objects + end if + x = read_lines(canonical_path(child)) + + elsif string(child) then + set(parent,"add from string",child,err) + set(parent,"connect") + x = split(child,'\n') + end if + + for i = 1 to length(x) do + if string(x[i]) and match("]",{class,name,n}) + end ifdef + + class = find(class,class_name_index) + if class < 1 then + display("Error finding class for []",{name}) + else + if not initialized[class] then + init(class) + end if + tree = widget[class][2] + for z = 1 to length(tree) do + init(tree[z]) + end for + register(n,class,name) + end if + end if +end for + +end procedure + + ------------------------------------------------------------------------------- + procedure show_template(object handlr) -- prompt for missing functions w/Glade; + ------------------------------------------------------------------------------- + printf(1,""" +________ + + ----------------------------------------------------------------------- + global function %s() + ----------------------------------------------------------------------- + + return 1 + end function + +""",{handlr}) + + end procedure + +------------------------------------------------------------------------ +-- Internet conveniences +------------------------------------------------------------------------ + +------------------------------------ +export function show_uri(object uri) +------------------------------------ + +if atom(uri) then + return 0 +end if + +display("URI: []\n",{uri}) + +integer x = find('#',uri) -- in case link to html section; +object tmp + +if x > 0 then + tmp = canonical_path(uri[1..x-1]) + if file_exists(tmp) then + uri = tmp & uri[x..$] + end if +else + tmp = canonical_path(uri) + if file_exists(tmp) then + uri = tmp + end if +end if + +ifdef WINDOWS then + system("explore " & uri,0) + return 1 +end ifdef + +atom err = allocate(8,1) err=0 + +object result = gtk_func("gtk_show_uri",{P,P,P,P}, + {0,allocate_string(uri,1),0,err}) + + return result + +end function + +--------------------------------------------------------------------------- +-- Icon functions +---------------------------- +export function list_icons() +---------------------------- + atom theme = gtk_func("gtk_icon_theme_get_default") + object list = gtk_func("gtk_icon_theme_list_icons",{P,P},{theme,0}) + return to_sequence(list) +end function + +---------------------------------------- +export function has_icon(object name) +---------------------------------------- + atom theme = gtk_func("gtk_icon_theme_get_default") + name = allocate_string(name,1) + return gtk_func("gtk_icon_theme_has_icon",{P,P},{theme,name}) +end function + +---------------------------------------------------------------- +export function valid_icon(object list) +---------------------------------------------------------------- +-- check a list of possible icon names + object result = 0 + if atom(list[1]) then + list = {list} + end if + for i = 1 to length(list) do + result = get_icon_image(list[i]) --display(result) + if string(result) then return 1 end if + end for + return result +end function + +--------------------------------------------------------------- +export function valid_icon_name(object list) +--------------------------------------------------------------- +-- check a list of possible icon names, +-- return string name of first valid + for i = 1 to length(list) do + if valid_icon({list[i]}) > 0 then + return list[i] + end if + if file_exists(locate_file(list[i])) then + return list[i] + end if + end for + return "gtk-missing-image" +end function + +-- get image from a variety of sources; +------------------------------------------------------------------------------------ + function get_icon_image(object icon, object sizex=0, object sizey=0, object sizez=1) +------------------------------------------------------------------------------------- + atom img = 0, ani = 0, default_theme, handle + handle = to_number(icon) + + if class_id(handle) = GdkPixbuf then + img = create(GtkImage,handle) + return img + end if + + if class_id(handle) = GtkImage then + return handle + end if + + if find(icon,stock_list) then + img = gtk_func("gtk_image_new_from_stock",{P,I}, + {allocate_string(icon,1),sizex}) + return img + end if + + default_theme = gtk_func("gtk_icon_theme_get_default",{}) + if gtk_func("gtk_icon_theme_has_icon",{P,P}, + {default_theme,allocate_string(icon,1)}) then + img = create(GdkPixbuf,icon,18,18,sizez) + img = create(GtkImage,img) + register(img,GtkImage) + --display("Has icon []",{icon}) + return img + end if + + icon = locate_file(icon) + + if file_type(icon) = 1 then -- image from file + ani = create(GdkPixbufAnimation,icon,sizex,sizey) + if gtk_func("gdk_pixbuf_animation_is_static_image",{P},{ani}) then + ani = create(GdkPixbuf,icon,sizex*6,sizey*6,sizez) + img = create(GtkImage,ani) + else + img = create(GtkImage) + set(img,"from animation",ani) + end if + return img + end if + + return 0 + end function + +-------------------------------------------------------- +export function icon_info(object name, integer size=6) +-------------------------------------------------------- + atom theme = gtk_func("gtk_icon_theme_get_default") + atom err = allocate(8,1) err = 0 + + atom icon_info = gtk_func("gtk_icon_theme_lookup_icon",{P,P,I,I}, + {theme,name,size,GTK_ICON_LOOKUP_USE_BUILTIN}) + + object results = repeat(0,5) + results = { + gtk_func("gtk_icon_info_load_icon",{P,P},{icon_info,err}), + gtk_func("gtk_icon_info_get_display_name",{P},{icon_info}), + gtk_str_func("gtk_icon_info_get_filename",{P},{icon_info}), + gtk_func("gtk_icon_info_get_base_size",{P},{icon_info}), + gtk_func("gtk_icon_info_get_base_scale",{P},{icon_info}) + } + return results +-- returns {1,2,3,4,5} +-- 1 = pointer to icon_info structure, +-- 2 = display name or null, +-- 3 = full path to icon file, +-- 4 = base size, +-- 5 = base scale +-- some entries missing in some cases +end function + +----------------------------------------------------------------------------------------- +export function xpm_to_pixbuf(object xpm, integer w=0, integer h=0, integer interp=2) +----------------------------------------------------------------------------------------- + atom x = gtk_func("gdk_pixbuf_new_from_xpm_data",{P}, + {allocate_string_pointer_array(xpm)}) + if w + h > 0 then + x = gtk_func("gdk_pixbuf_scale_simple",{P,I,I,I},{x,w,h,interp}) + end if + register(x,GdkPixbuf) + return x +end function + +------------------------------------------------------------------------ +-- Following 3 functions simplify method calls; used mostly internally, +-- but can also be called by the programmer to execute any GTK, GDK or +-- GLib function which has not been implemented in EuGTK. +------------------------------------------------------------------------- +export function gtk_func(object name, object params={}, object values={}) +------------------------------------------------------------------------- +-- syntax: result = gtk_func("gtk_*_*",{formal params},{values}) +-- where formal params might be {P,P,I} (function expects Ptr, Ptr, and Int) +-- and values are the values to be inserted into the formal params before +-- the function is called; + + name = '+' & name + + for i = 1 to length(params) do + if string(values[i]) then + values[i] = allocate_string(values[i],1) + end if + end for + + if atom(values) then + values = {values} + end if + + atom fn = define_func(name,params,P) + + if fn > 0 then + return c_func(fn,values) + else + return -1 + end if + +end function + +----------------------------------------------------------------------------- +export function gtk_str_func(object name, object params={}, object values={}) +----------------------------------------------------------------------------- +-- syntax: same as above, except a string result is returned + + for i = 1 to length(params) do + if string(values[i]) then + values[i] = allocate_string(values[i],1) + end if + end for + + name = '+' & name + + atom fn = define_func(name,params,P) + object result + + if fn > 0 then + if length(params) > 0 then + result = c_func(fn,values) + else + result = c_func(fn,{}) + end if + if result > 0 then + return peek_string(result) + end if + end if + + return 0 +end function + +-------------------------------------------------------------------------- +export function gtk_proc(object name, object params={}, object values={}) +-------------------------------------------------------------------------- +-- syntax: same as above, but no value is returned, used to call GTK procs +atom fn + + if string(values) then values = {values} end if + + name = '+' & name + + for i = 1 to length(params) do + if sequence(values) and string(values[i]) then + values[i] = allocate_string(values[i]) -- keep + end if + end for + + if length(params) = 0 then + fn = define_proc(name) + if fn > 0 then + c_proc(fn,{}) + end if + else + fn = define_proc(name,params) + if fn > 0 then + if atom(values) then values = {values} end if + c_proc(fn,values) + end if + end if +return values +end function + +-- The following 2 functions had to be added for Windows, so that we could search +-- a list of dlls until we find the function name requested. I'm not sure the '+' +-- is necessary for 32-bit Windows, since I don't have a 32-bit computer anymore. +---------------------------------------------------------------------------------------- +export function define_proc(object name, object params={}) +---------------------------------------------------------------------------------------- +atom x + + for i = 1 to length(LIBS) do + if atom(LIBS[i]) and LIBS[i] > 0 then + x = define_c_proc(LIBS[i],name,params) + if x > 0 then + return x + end if + end if + end for + + return -1 +end function + +--------------------------------------------------------------------------- +export function define_func(object name, object params={}, object values=P) +--------------------------------------------------------------------------- +atom x + + ifdef BITS32 and WINDOWS then name = '+' & name end ifdef + for i = 1 to length(LIBS) do + if atom(LIBS[i]) and LIBS[i] > 0 then + x = define_c_func(LIBS[i],name,params,values) + if x > 0 then + return x + end if + end if + end for + + return -1 +end function + +----------------------------------------------------------------------------------- +-- Color handling routines - most are used internally, but exported if you need 'em +----------------------------------------------------------------------------------- + +---------------------------------------- +export function to_rgba(object color) -- converts a color description to rgba ptr; +---------------------------------------- + atom rgba = allocate(32) -- keep; + object c = color + if string(c) then c = allocate_string(c,1) end if + if gtk_func("gdk_rgba_parse",{P,P},{rgba,c}) then + return rgba + else + printf(1,"\nError: invalid color '%s'\n******\n",{color}) + return 0 + end if + return rgba +end function + +------------------------------------------------------- +export function from_rgba(object rgba, object fmt=0) -- converts rgba ptr to description; +------------------------------------------------------- +object result = gtk_str_func("gdk_rgba_to_string",{P},{rgba}) + if fmt=0 then return result + else return fmt_color(result,fmt) + end if +end function + +---------------------------------------------- +function fmt_color(object s, integer fmt=0) -- Convert color to various formats; +---------------------------------------------- + if atom(s) then + if string(peek_string(s)) then + s = peek_string(s) + end if + end if +object w + w = split_any(s,"(,)") + if length(w[1]) = 3 then + w[5] = "1" + end if + for i = 2 to 5 do + w[i] = to_number(w[i]) + end for + if atom(w[5]) then + w[5] = round(w[5],100) + end if + switch fmt do + case 0 then return w[1..length(w[1])+1] + case 1 then return sprintf("#%02x%02x%02x",w[2..4]) + case 2 then return (256*256*w[2])+(256*w[3])+ w[4] + case 3 then return {w[2],w[3],w[4]} + case 4 then return {w[2],w[3],w[4],w[5]} + case 5 then return {w[2],w[3],w[4],256*w[5]} + case 6 then return sprintf("rgba(%d,%d,%d,%2.2f)",w[2..$]) + case 7 then return {w[2]/255,w[3]/255,w[4]/255,w[5]} + case 8 then return sprintf("r=#%x, g=#%x, b=#%x, alpha=#%x",w[2..5]) + case else -- do nothing + end switch +return s +end function + + + +------------------------------------------------------------------------ +-- Following are 5 pre-built, easy to use popup dialogs +-- which save you the trouble of writing tons of code! +-- Refer to documentation/dialogs.html for details. +-- Rewritten for 4.8.8 to preserve images on dialog buttons despite +-- GTK developers' bland, boring preferences :P +-- Beginning with EuGTK 4.9.3, dialogs can be non-modal if desired. +------------------------------------------------------------------------ + +public function Info(object parent=0, object title="Info", + object pri_txt="", object sec_txt="", + object btns=GTK_BUTTONS_OK, + object image="dialog-information", + object icon=0, + integer modal=1, + object addon=0, + integer x=-1, + integer y=-1, + object name="Info") + return Custom(parent,title,pri_txt,sec_txt,btns,image,icon,modal,addon,x,y,name) +end function + +public function Warn(object parent=0, object title="Warning", + object pri_txt="", object sec_txt="", + object btns=GTK_BUTTONS_CLOSE, + object image="dialog-warning", + object icon=0, + integer modal=1, + object addon=0, + integer x=-1, + integer y=-1, + object name="Warn") + return Custom(parent,title,pri_txt,sec_txt,btns,image,icon,modal,addon,x,y,name) +end function + +public function Error(object parent=0, object title="Error", + object pri_txt="", object sec_txt="", + object btns=GTK_BUTTONS_OK_CANCEL, + object image="dialog-error", + object icon=0, + integer modal=1, + object addon=0, + integer x=-1, + integer y=-1, + object name="Error") + return Custom(parent,title,pri_txt,sec_txt,btns,image,icon,modal,addon,x,y,name) +end function + +public function Question(object parent=0, object title="Question", + object pri_txt="", object sec_txt="", + object btns=GTK_BUTTONS_YES_NO, + object image="dialog-question", + object icon=0, + integer modal=1, + object addon=0, + integer x=-1, + integer y=-1, + object name="Question") + return Custom(parent,title,pri_txt,sec_txt,btns,image,icon,modal,addon,x,y,name) +end function + +integer closedlg = call_back(routine_id("close_dialog")) + +-------------------------------------------------------------- +public function Custom( + object parent=0, --1 + object title="Dialog", --2 + object pri_txt="", --3 + object sec_txt="", --4 + object btns=GTK_BUTTONS_OK, --5 + object image=0, --6 + object icon=0, --7 + integer modal=GTK_DIALOG_MODAL, --8 + object addon=0, --9 + integer x=-1, --10 + integer y=-1, --11 + object name="Custom") --12 +-------------------------------------------------------------- + atom dlg = create(GtkDialog) + atom btnbox = create(GtkButtonBox) + atom ca = 0 + atom top = 0, left = 0, right = 0 + atom lbl1 = 0 + atom capanel = create(GtkBox,VERTICAL) + object btn = repeat(0,2) + + if string(parent) then + parent = get(builder,"object",parent) + end if + + if parent = 0 then + for i = 1 to length(registry) do + if registry[i][2] = 293 then + parent = registry[i][1] + exit + end if + end for + end if + + if parent > 0 and atom(icon) and icon = 0 then + icon = get(parent,"icon name") + end if + + if atom(pri_txt) and pri_txt > 0 then pri_txt = unpack(pri_txt) end if + if atom(sec_txt) and sec_txt > 0 then sec_txt = unpack(sec_txt) end if + if class_id(addon) = GdkPixbuf then addon = create(GtkImage,addon) end if + + set(dlg,{ + {"transient for",parent}, + {"title"," " & title}, + {"border width",5}, + {"icon",icon}, + {"position",GTK_WIN_POS_MOUSE}}) + + if string(name) then + set(dlg,"name",name) + end if + + ca = get(dlg,"content area") + capanel = create(GtkBox,VERTICAL) + add(ca,capanel) + + top = create(GtkBox,HORIZONTAL,2) + add(capanel,top) + + left = create(GtkBox,VERTICAL,5) + right = create(GtkBox,VERTICAL,5) + add(top,{left,right}) + + if string(image) then + add(left,create(GtkImage,image,GTK_ICON_SIZE_DIALOG)) + + elsif image > 0 then + if class_id(image) = GdkPixbuf + or class_id(image) = GIcon then + image = create(GtkImage,image) + end if + add(left,image) + end if + + lbl1 = create(GtkLabel) + set(lbl1,"name",name & "_label") + set(lbl1,"markup",text:format("[]\n[]",{pri_txt,sec_txt})) + set(lbl1,"halign",0) + + add(right,lbl1) + + if atom(addon) and addon > 0 then + atom p2 = create(GtkBox,VERTICAL) + add(capanel,p2) + if get(addon,"parent") != 0 then + set(addon,"reparent",p2) + else + add(p2,addon) + end if + end if + + show_all(capanel) + + if integer(btns) then + + switch btns do + + case GTK_BUTTONS_NONE then break + + case GTK_BUTTONS_OK then + btn[1] = create(GtkButton,"gtk-ok") + set(dlg,"add action widget",btn[1],MB_OK) + show(btn[1]) + + case GTK_BUTTONS_OK_CANCEL then + btn[1] = create(GtkButton,"gtk-cancel") + btn[2] = create(GtkButton,"gtk-ok") + set(dlg,"add action widget",btn[1],MB_CANCEL) + set(dlg,"add action widget",btn[2],MB_OK) + show(btn[1]) show(btn[2]) + + case GTK_BUTTONS_CLOSE then + btn[1] = create(GtkButton,"gtk-close") + set(btn[1],"can default",TRUE) + set(dlg,"add action widget",btn[1],MB_CLOSE) + show(btn[1]) + + case GTK_BUTTONS_YES_NO then + btn[1] = create(GtkButton,"gtk-yes") + set(dlg,"add action widget",btn[1],MB_YES) + btn[2] = create(GtkButton,"gtk-no") + set(dlg,"add action widget",btn[2],MB_NO) + show(btn[1]) show(btn[2]) + + case else btn[1] = create(GtkButton,"gtk-ok") + set(btn[1],"can default",TRUE) + set(dlg,"add action widget",btn[1],MB_OK) + show(btn[1]) + + end switch + end if + + if sequence(btns) and not atom(btns[1]) then + set(btnbox,"margin top",5) + pack(capanel,-btnbox) + for i = 1 to length(btns) do + while length(btns[i]) < 3 do btns[i] &= 0 end while + if atom(btns[i][2]) and btns[i][2] = 0 then btns[i][2] = closedlg end if + if atom(btns[i][3]) and btns[i][3] = 0 then btns[i][3] = {dlg,MB_CANCEL} end if + btns[i] = create(GtkButton,btns[i][1],btns[i][2],btns[i][3]) + end for + add(btnbox,btns) + show_all(btnbox) + end if + + if x+y > 0 then + set(dlg,"move",x,y) + end if + + atom result = 0 + set(dlg,"modal",modal) + if modal = GTK_DIALOG_NON_MODAL then + return show_all(dlg) + else + result = get(dlg,"run") + destroy(dlg) + end if + + return result +end function + +------------------------------- +export function run(object dlg) +------------------------------- + if string(dlg) then + dlg = pointer(dlg) + end if + object result = get(dlg,"run") + return result +end function + +global integer dialog_return_value = 0 + +function close_dialog(object ctl, object dlg) + dlg = unpack(dlg) + dialog_return_value = dlg[2] + set(dlg[1],"hide") + return 1 +end function + +-------------------------------------------- +-- Nifty shortcut, thanks to Greg Haberek, +-- allows using local functions without +-- call_back(routine_id()) and scope issues: +-------------------------------------------- +export function _(sequence name, atom rid = routine_id(name)) + if rid > 0 then + return call_back(rid) + end if + return 0 +end function + +--------------------------------- +-- © 2016 by Irv Mullins +--------------------------------- diff --git a/eugtk/examples/GtkEnums.e b/eugtk/examples/GtkEnums.e new file mode 100644 index 0000000..741f014 --- /dev/null +++ b/eugtk/examples/GtkEnums.e @@ -0,0 +1,1514 @@ + +---------------- +namespace enums +---------------- + +export constant version = "4.12.0" + +public include std/io.e +public include std/os.e +public include std/dll.e +public include std/text.e +public include std/math.e +public include std/error.e +public include std/text.e +public include std/types.e +public include std/search.e +public include std/convert.e +public include std/console.e +public include std/filesys.e +public include std/machine.e +public include std/sequence.e +public include std/serialize.e + +public constant LGPL = read_file(locate_file("resources/license.txt")) + +--------------------------------------------------------------------------------- +-- ListView/TreeView storage types. Use these when creating new +-- GtkListStores or GtkTreeStores +--------------------------------------------------------------------------------- +public enum + gCHAR = 12, gUCHAR = 16, gINT = 24, gUINT = 28, + gLONG = 32, gULONG = 36, gINT64 = 40, gUINT64 = 44, + gDBL = 60, gFLT = 56, gSTR = 64, gPTR = 68, gBOOL= 20, gDOL = 99 +-- plus gPIX and gCOMBO, which must be defined at run-time +-- by GtkEngine.e ... don't ask me why! + +public sequence storage_types = { + {12,"gCHAR"}, + {16,"gUCHAR"}, + {20,"gBOOL"}, + {24,"gINT"}, + {28,"gUINT", + {32,"gLONG"}, + {36,"gULONG"}, + {40,"gINT64"}, + {44,"gUINT64"}, + {56,"gFLT"}, + {60,"gDBL"}, + {64,"gSTR"}, + {68,"gPTR"}, + {99,"gDOL"} +}} +-- here's a list of GObject types; +public enum type OBJECT by 4 + void = 4, + GInterface, + gchar, + guchar, + gboolean, + gint, + guint, + glong, + gulong, + gint64, + guint64, + GEnum, + GFlags, + gfloat, + gdouble, + gchararray, + gpointer, + GBoxed, + GParam +end type + +------------------------------------------------------------------------ +-- These are the widget class names used to create GTK widgets; +-- GObject MUST be first on the list, and GtkFinal must be last! +-- Other than that, order is unimportant, but try to keep 'em in +-- alphabetical order just to be neat. +------------------------------------------------------------------------ +public enum type WIDGET + GObject, + GAction, + GActionGroup, + GActionMap, + GAppInfo, + GApplication, + GDateTime, + GEmblem, + GEmblemedIcon, + GFile, + GFileIcon, + GFileInfo, + GFileInputStream, + GIcon, + GIdle, + GInputStream, + GKeyFile, + GList, + GMenu, + GMenuItem, + GMenuModel, + GNotification, + GPermission, + GPropertyAction, + GSettings, + GSimpleAction, + GSimpleActionGroup, + GSimplePermission, + GSList, + GThemedIcon, + GTimeout, + Cairo_t, + CairoFontOptions, + CairoContent_t, + CairoLinearGradient, + CairoPattern, + CairoPattern_t, + CairoRadialGradient, + CairoRegion_t, + CairoImageSurface, + CairoStatus_t, + CairoSurface_t, + GdkAppLaunchContext, + GdkCairo_t, + GdkCursor, + GdkDevice, + GdkDeviceManager, + GdkDisplay, + GdkEvent, + GdkEventSequence, + GdkFrameClock, + GdkFrameTimings, + GdkGLContext, + GdkGLProfile, + GdkInputSource, + GdkKeymap, + GdkPixbuf, + GdkPixbufAnimation, + GdkPixbufAnimationIter, + GdkPixbufFormat, + GdkScreen, + GdkVisual, + GdkWindow, + GdkX11Display, + GdkX11Screen, + GdkX11Window, + GtkAboutDialog, + GtkAccelGroup, + GtkAccelLabel, + GtkActionable, + GtkActionBar, + GtkAdjustment, + GtkAlignment, + GtkAppChooser, + GtkAppChooserButton, + GtkAppChooserDialog, + GtkAppChooserWidget, + GtkAppLaunchContext, + GtkApplication, + GtkApplicationWindow, + GtkArrow, + GtkAspectFrame, + GtkAssistant, + GtkBin, + GtkBindingEntry, + GtkBindingSet, + GtkBox, + GtkBuildable, + GtkBuilder, + GtkButton, + GtkButtonBox, + GtkCalendar, + GtkCellArea, + GtkCellAreaBox, + GtkCellAreaCell, + GtkCellAreaContext, + GtkCellEditable, + GtkCellLayout, + GtkCellRenderer, + GtkCellRendererAccel, + GtkCellRendererCombo, + GtkCellRendererPixbuf, + GtkCellRendererProgress, + GtkCellRendererSpin, + GtkCellRendererSpinner, + GtkCellRendererText, + GtkCellRendererToggle, + GtkCellView, + GtkCheckButton, + GtkCheckMenuItem, + GtkClipboard, + GtkColorButton, + GtkColorChooser, + GtkColorChooserDialog, + GtkColorChooserWidget, + GtkColorSelection, + GtkColorSelectionDialog, + GtkColumn, Column, -- aliases for GtkTreeViewColumn.new function; + GtkComboBox, + GtkComboBoxEntry, + GtkComboBoxText, + GtkContainer, + GtkCssProvider, + GtkCssSection, + GtkDialog, + GtkDrag, + GtkDragDest, + GtkDragSource, + GtkDrawingArea, + GtkEditable, + GtkEntry, + GtkEntryBuffer, + GtkEntryCompletion, + GtkEventBox, + GtkEventController, + GtkExpander, + GtkFileChooser, + GtkFileChooserButton, + GtkFileChooserDialog, + GtkFileChooserNative, + GtkFileChooserWidget, + GtkFileFilter, + GtkFixed, + GtkFlowBox, + GtkFlowBoxChild, + GtkFontButton, + GtkFontChooser, + GtkFontChooserDialog, + GtkFontChooserWidget, + GtkFrame, + GtkGesture, + GtkGestureSingle, + GtkGestureDrag, + GtkGestureLongPress, + GtkGestureMultiPress, + GtkGesturePan, + GtkGestureRotate, + GtkGestureSwipe, + GtkGestureZoom, + GtkGLArea, + GtkGrid, + GtkHeaderBar, + GtkIconInfo, + GtkIconTheme, + GtkIconView, + GtkImage, + GtkImageMenuItem, + GtkInfoBar, + GtkInvisible, + GtkLabel, + GtkLayout, + GtkLevelBar, + GtkLinkButton, + GtkListBox, + GtkListBoxRow, + GtkListStore, + GtkLockButton, + GtkMenu, + GtkMenuBar, + GtkMenuButton, + GtkMenuItem, + GtkMenuShell, + GtkMenuToolButton, + GtkMessageDialog, + GtkMisc, + GtkModelButton, + GtkMountOperation, + GtkNativeDialog, + GtkNotebook, + GtkNumerableIcon, + GtkOffscreenWindow, + GtkOrientable, + GtkOverlay, + GtkPadController, + GtkPaperSize, + GtkPageRange, + GtkPageSetup, + GtkPageSetupUnixDialog, + GtkPaned, + GtkPlacesSidebar, + GtkPlug, + GtkPopover, + GtkPopoverMenu, + GtkPrinter, + GtkPrintContext, + GtkPrintJob, + GtkPrintSettings, + GtkPrintOperation, + GtkPrintUnixDialog, + GtkProgressBar, + GtkRadioButton, + GtkRadioMenuItem, + GtkRadioToolButton, + GtkRange, + GtkRecentChooser, + GtkRecentChooserDialog, + GtkRecentChooserMenu, + GtkRecentChooserWidget, + GtkRecentFilter, + GtkRecentInfo, + GtkRecentManager, + GtkRevealer, + GtkScale, + GtkScaleButton, + GtkScrollable, + GtkScrollbar, + GtkScrolledWindow, + GtkSearchBar, + GtkSearchEntry, + GtkSelectionData, + GtkSeparator, + GtkSeparatorMenuItem, + GtkSeparatorToolItem, + GtkSettings, + GtkShortcutsGesture, + GtkShortcutsGroup, + GtkShortcutsSection, + GtkShortcutsShortcut, + GtkShortcutsWindow, + GtkSocket, + GtkSidebar, + GtkSizeGroup, + GtkSpinButton, + GtkSpinner, + GtkStack, + GtkStackSidebar, + GtkStackSwitcher, + GtkStatusbar, + GtkStatusIcon, + GtkStockList, + GtkStyle, + GtkStyleContext, + GtkStyleProvider, + GtkSwitch, + GtkTargetEntry, + GtkTargetList, + GtkTextAttributes, + GtkTextBuffer, + GtkTextChildAnchor, + GtkTextIter, + GtkTextMark, + GtkTextTag, + GtkTextTagTable, + GtkTextView, + GtkThemedIcon, + GtkToggleButton, + GtkToggleToolButton, + GtkToolbar, + GtkToolButton, + GtkToolItem, + GtkToolItemGroup, + GtkToolPalette, + GtkToolShell, + GtkTooltip, + GtkTreeDragDest, + GtkTreeDragSource, + GtkTreeIter, + GtkTreeModel, + GtkTreeModelFilter, + GtkTreeModelSort, + GtkTreePath, + GtkTreeRowReference, + GtkTreeSelection, + GtkTreeSortable, + GtkTreeStore, + GtkTreeView, + GtkTreeViewColumn, + GtkViewport, + GtkVolumeButton, + GtkWidget, + GtkWidgetClass, + GtkWidgetPath, + GtkWindow, + GtkWindowGroup, + PangoAttrList, + PangoCairoLayout, + PangoContext, + PangoFont, + PangoFontSet, + PangoFontsetSimple, + PangoFontDescription, + PangoFontFace, + PangoFontFamily, + PangoFontMap, + PangoLanguage, + PangoLayout, + PangoLayoutIter, + PangoLayoutLine, + PangoLayoutRun, + PangoTabArray, + GtkFinal +end type + +------------------------------------------------------------------------ + +public enum -- Response codes returned by button presses, etc; + MB_YES = -8, + MB_NO = -9, + MB_OK = -5, + MB_CANCEL = -6, + MB_CLOSE = -7, + MB_ABORT = -4, + MB_NONE = -1, + MB_REJECT = -2, + MB_ACCEPT = -3, + MB_APPLY = -10, + MB_HELP = -11 + +----------------------------------------------------------------------------------------- +-- a zillion or so GTK_CONSTANTS used to make code clearer. See GTK docs. +----------------------------------------------------------------------------------------- + +public enum type Orientation + VERTICAL = 1, HORIZONTAL = 0 end type + +public enum type SortOrder + UNSORTED = -1, ASCENDING = 1, DESCENDING = 2 end type + +public enum by 2 -- Cursors: + GDK_X_CURSOR = 0, + GDK_ARROW, + GDK_BASED_ARROW_DOWN, + GDK_BASED_ARROW_UP, + GDK_BOAT, + GDK_BOGOSITY, + GDK_BOTTOM_LEFT_CORNER, + GDK_BOTTOM_RIGHT_CORNER, + GDK_BOTTOM_SIDE, + GDK_BOTTOM_TEE, + GDK_BOX_SPIRAL, + GDK_CENTER_PTR, + GDK_CIRCLE, + GDK_CLOCK, + GDK_COFFEE_MUG, + GDK_CROSS, + GDK_CROSS_REVERSE, + GDK_CROSSHAIR, + GDK_DIAMOND_CROSS, + GDK_DOT, + GDK_DOTBOX, + GDK_DOUBLE_ARROW, + GDK_DRAFT_LARGE, + GDK_DRAFT_SMALL, + GDK_DRAPED_BOX, + GDK_EXCHANGE, + GDK_FLEUR, + GDK_GOBBLER, + GDK_GUMBY, + GDK_HAND1, + GDK_HAND2, + GDK_HEART, + GDK_ICON, + GDK_IRON_CROSS, + GDK_LEFT_PTR, + GDK_LEFT_SIDE, + GDK_LEFT_TEE, + GDK_LEFTBUTTON, + GDK_LL_ANGLE, + GDK_LR_ANGLE, + GDK_MAN, + GDK_MIDDLEBUTTON, + GDK_MOUSE, + GDK_PENCIL, + GDK_PIRATE, --? + GDK_PLUS, + GDK_QUESTION_ARROW, + GDK_RIGHT_PTR, + GDK_RIGHT_SIDE, + GDK_RIGHT_TEE, + GDK_RIGHTBUTTON, + GDK_RTL_LOGO, + GDK_SAILBOAT, + GDK_SB_DOWN_ARROW, + GDK_SB_H_DOUBLE_ARROW, + GDK_SB_LEFT_ARROW, + GDK_SB_RIGHT_ARROW, + GDK_SB_UP_ARROW, + GDK_SB_V_DOUBLE_ARROW, + GDK_SHUTTLE, + GDK_SIZING, + GDK_SPIDER, + GDK_SPRAYCAN, + GDK_STAR, + GDK_TARGET, + GDK_TCROSS, + GDK_TOP_LEFT_ARROW, + GDK_TOP_LEFT_CORNER, + GDK_TOP_RIGHT_CORNER, + GDK_TOP_SIDE, + GDK_TOP_TEE, + GDK_TREK, + GDK_UL_ANGLE, + GDK_UMBRELLA, + GDK_UR_ANGLE, + GDK_WATCH, + GDK_XTERM, + GDK_LAST_CURSOR = 153, + GDK_BLANK_CURSOR = -2, + GDK_CURSOR_IS_PIXMAP = -1 + +public enum + GTK_LICENSE_UNKNOWN = 0, + GTK_LICENSE_CUSTOM, + GTK_LICENSE_GPL_2_0, + GTK_LICENSE_GPL_3_0, + GTK_LICENSE_LGPL_2_1, + GTK_LICENSE_LGPL_3_0, + GTK_LICENSE_BSD, + GTK_LICENSE_MIT_X11, + GTK_LICENSE_ARTISTIC, + GTK_LICENSE_GPL_2_0_ONLY, + GTK_LICENSE_GPL_3_0_ONLY, + GTK_LICENSE_LGPL_2_1_ONLY, + GTK_LICENSE_LGPL_3_0_ONLY, + + GTK_ACCEL_VISIBLE = 1, + GTK_ACCEL_LOCKED = 2, + GTK_ACCEL_MASK = 7, + + GTK_ALIGN_FILL = 0, + GTK_ALIGN_START, + GTK_ALIGN_END, + GTK_ALIGN_CENTER, + + GTK_ANCHOR_CENTER = 0, + GTK_ANCHOR_NORTH, + GTK_ANCHOR_NORTH_WEST, + GTK_ANCHOR_NORTH_EAST, + GTK_ANCHOR_SOUTH, + GTK_ANCHOR_SOUTH_WEST, + GTK_ANCHOR_SOUTH_EAST, + GTK_ANCHOR_WEST, + GTK_ANCHOR_EAST, + GTK_ANCHOR_N = 1, + GTK_ANCHOR_NW, + GTK_ANCHOR_NE, + GTK_ANCHOR_S, + GTK_ANCHOR_SW, + GTK_ANCHOR_SE, + GTK_ANCHOR_W, + GTK_ANCHOR_E, + + GTK_APPLICATION_INHIBIT_LOGOUT = 1, + GTK_APPLICATION_INHIBIT_SWITCH = 2, + GTK_APPLICATION_INHIBIT_SUSPEND = 4, + GTK_APPLICATION_INHIBIT_IDLE = 8, + + G_APPLICATION_FLAGS_NONE = 0, + G_APPLICATION_IS_SERVICE, + G_APPLICATION_IS_LAUNCHER, + G_APPLICATION_HANDLES_OPEN = 4, + G_APPLICATION_HANDLES_COMMAND_LINE = 8, + G_APPLICATION_SEND_ENVIRONMENT = 16, + G_APPLICATION_NON_UNIQUE = 32, + +-- arrows are deprecated + GTK_ARROWS_BOTH = 0, + GTK_ARROWS_START, + GTK_ARROWS_END, + + GTK_ARROW_UP = 0, + GTK_ARROW_DOWN, + GTK_ARROW_LEFT, + GTK_ARROW_RIGHT, + GTK_ARROW_NONE, + + GTK_ASSISTANT_PAGE_CONTENT = 0, + GTK_ASSISTANT_PAGE_INTRO, + GTK_ASSISTANT_PAGE_CONFIRM, + GTK_ASSISTANT_PAGE_SUMMARY, + GTK_ASSISTANT_PAGE_PROGRESS, + GTK_ASSISTANT_PAGE_CUSTOM, + + GTK_EXPAND = 1, + GTK_SHRINK = 2, + GTK_FILL = 4, + + GTK_BASELINE_POSITION_TOP = 0, + GTK_BASELINE_POSITION_CENTER, + GTK_BASELINE_POSITION_BOTTOM, + + GTK_BORDER_STYLE_NONE = 0, + GTK_BORDER_STYLE_SOLID, + GTK_BORDER_STYLE_INSET, + GTK_BORDER_STYLE_OUTSET, + GTK_BORDER_STYLE_HIDDEN, + GTK_BORDER_STYLE_DOTTED, + GTK_BORDER_STYLE_DASHED, + GTK_BORDER_STYLE_DOUBLE, + GTK_BORDER_STYLE_GROOVE, + GTK_BORDER_STYLE_RIDGE, + + GTK_BUTTON_ROLE_NORMAL = 0, + GTK_BUTTON_ROLE_CHECK, + GTK_BUTTON_ROLE_RADIO, + + GTK_BUTTONS_NONE = 0, + GTK_BUTTONS_OK, + GTK_BUTTONS_CLOSE, + GTK_BUTTONS_CANCEL, + GTK_BUTTONS_YES_NO, + GTK_BUTTONS_OK_CANCEL, + + GTK_BUTTONBOX_DEFAULT_STYLE = 0, + GTK_BUTTONBOX_SPREAD, + GTK_BUTTONBOX_EDGE, + GTK_BUTTONBOX_START, + GTK_BUTTONBOX_END, + GTK_BUTTONBOX_CENTER, + GTK_BUTTONBOX_EXPAND, + + GTK_CALENDAR_SHOW_HEADING = 1, + GTK_CALENDAR_SHOW_DAY_NAMES = 2, + GTK_CALENDAR_NO_MONTH_CHANGE = 4, + GTK_CALENDAR_SHOW_WEEK_NUMBERS = 8, + GTK_CALENDAR_SHOW_DETAILS = 16, + + GTK_CORNER_TOP_LEFT = 0, + GTK_CORNER_BOTTOM_LEFT, + GTK_CORNER_TOP_RIGHT, + GTK_CORNER_BOTTOM_RIGHT, + + GTK_CURVE_TYPE_LINEAR = 0, + GTK_CURVE_TYPE_SPLINE, + GTK_CURVE_TYPE_FREE, + + GTK_DELETE_CHARS = 0, + GTK_DELETE_WORD_ENDS, + GTK_DELETE_WORDS, + GTK_DELETE_DISPLAY_LINES, + GTK_DELETE_DISPLAY_LINE_ENDS, + GTK_DELETE_PARAGRAPH_ENDS, + GTK_DELETE_PARAGRAPHS, + GTK_DELETE_WHITESPACE, + + GTK_DIALOG_NON_MODAL = 0, + GTK_DIALOG_MODAL = 1, + GTK_DIALOG_DESTROY_WITH_PARENT = 2, + GTK_DIALOG_NO_SEPARATOR = 4, + + GTK_DIR_TAB_FORWARD = 0, + GTK_DIR_TAB_BACKWARD, + GTK_DIR_UP, + GTK_DIR_DOWN, + GTK_DIR_LEFT, + GTK_DIR_RIGHT, + + GTK_EVENT_SEQUENCE_NONE = 0, + GTK_EVENT_SEQUENCE_CLAIMED, + GTK_EVENT_SEQUENCE_DENIED, + + GTK_EXPANDER_COLLAPSED = 0, + GTK_EXPANDER_SEMI_COLLAPSED, + GTK_EXPANDER_SEMI_EXPANDED, + GTK_EXPANDER_EXPANDED, + + GTK_FILE_CHOOSER_ACTION_OPEN = 0, + GTK_FILE_CHOOSER_ACTION_SAVE, + GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, + GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER, + + GTK_ICON_SIZE_INVALID = 0, + GTK_ICON_SIZE_MENU, + GTK_ICON_SIZE_SMALL_TOOLBAR, + GTK_ICON_SIZE_LARGE_TOOLBAR, + GTK_ICON_SIZE_BUTTON, + GTK_ICON_SIZE_DND, + GTK_ICON_SIZE_DIALOG, + + GTK_ICON_LOOKUP_NO_SVG = 1, + GTK_ICON_LOOKUP_FORCE_SVG = 2, + GTK_ICON_LOOKUP_USE_BUILTIN = 4, + GTK_ICON_LOOKUP_GENERIC_FALLBACK = 8, + GTK_ICON_LOOKUP_FORCE_SIZE = 16, + + GTK_IMAGE_EMPTY = 0, + GTK_IMAGE_PIXBUF, + GTK_IMAGE_STOCK, + GTK_IMAGE_ICON_SET, + GTK_IMAGE_ANIMATION, + GTK_IMAGE_ICON_NAME, + GTK_IMAGE_GICON, + + GTK_IM_PREEDIT_NOTHING = 0, + GTK_IM_PREEDIT_CALLBACK, + GTK_IM_PREEDIT_NONE, + + GTK_IM_STATUS_NOTHING = 0, + GTK_IM_STATUS_CALLBACK, + GTK_IM_STATUS_NONE, + + GTK_INPUT_HINT_NONE = 0, + GTK_INPUT_HINT_SPELLCHECK, + GTK_INPUT_HINT_NO_SPELLCHECK, + GTK_INPUT_HINT_WORD_COMPLETION = 4, + GTK_INPUT_HINT_LOWERCASE = 8, + GTK_INPUT_HINT_UPPERCASE_CHARS = 16, + GTK_INPUT_HINT_UPPERCASE_WORDS = 32, + GTK_INPUT_HINT_UPPERCASE_SENTENCES = 64, + + GTK_JUSTIFY_LEFT = 0, + GTK_JUSTIFY_RIGHT, + GTK_JUSTIFY_CENTER, + GTK_JUSTIFY_FILL, + + GTK_LEVEL_BAR_MODE_CONTINUOUS = 0, + GTK_LEVEL_BAR_MODE_DISCRETE, + + GTK_MATCH_ALL = 0, + GTK_MATCH_ALL_TAIL, + GTK_MATCH_HEAD, + GTK_MATCH_TAIL, + GTK_MATCH_EXACT, + GTK_MATCH_LAST, + + GTK_PIXELS = 0, + GTK_INCHES, + GTK_CENTIMETERS, + + GTK_MESSAGE_INFO = 0, + GTK_MESSAGE_WARNING, + GTK_MESSAGE_QUESTION, + GTK_MESSAGE_ERROR, + GTK_MESSAGE_OTHER, + + GTK_ICON_INFO = 0, + GTK_ICON_WARNING, + GTK_ICON_QUESTION, + GTK_ICON_ERROR, + GTK_ICON_OTHER, + + GTK_MOVEMENT_LOGICAL_POSITIONS = 0, + GTK_MOVEMENT_VISUAL_POSITIONS, + GTK_MOVEMENT_WORDS, + GTK_MOVEMENT_DISPLAY_LINES, + GTK_MOVEMENT_DISPLAY_LINE_ENDS, + GTK_MOVEMENT_PARAGRAPHS, + GTK_MOVEMENT_PARAGRAPH_ENDS, + GTK_MOVEMENT_PAGES, + GTK_MOVEMENT_BUFFER_ENDS, + GTK_MOVEMENT_HORIZONTAL_PAGES, + + GTK_ORIENTATION_HORIZONTAL = 0, + GTK_ORIENTATION_VERTICAL, + + GTK_PACK_START = 0, + GTK_PACK_END, + + GTK_PAN_DIRECTION_LEFT = 0, + GTK_PAN_DIRECTION_RIGHT, + GTK_PAN_DIRECTION_UP, + GTK_PAN_DIRECTION_DOWN, + + GTK_PATH_PRIO_LOWEST = 0, + GTK_PATH_PRIO_GTK = 4, + GTK_PATH_PRIO_APPLICATION = 8, + GTK_PATH_PRIO_THEME = 10, + GTK_PATH_PRIO_RC = 12, + GTK_PATH_PRIO_HIGHEST = 15, + + GTK_PATH_WIDGET = 0, + GTK_PATH_WIDGET_CLASS, + GTK_PATH_CLASS, + + GTK_PHASE_NONE = 0, + GTK_PHASE_CAPTURE, + GTK_PHASE_BUBBLE, + GTK_PHASE_TARGET, + + GTK_POLICY_ALWAYS = 0, + GTK_POLICY_AUTOMATIC, + GTK_POLICY_NEVER, + GTK_POLICY_EXTERNAL, + + GTK_POS_LEFT = 0, + GTK_POS_RIGHT, + GTK_POS_TOP, + GTK_POS_BOTTOM, + LEFT = 0, --aliases; + RIGHT, + TOP, + BOTTOM + +public enum by * 2 + GTK_PRINT_CAPABILITY_PAGE_SET = 0, + GTK_PRINT_CAPABILITY_COPIES = 2, + GTK_PRINT_CAPABILITY_COLLATE, + GTK_PRINT_CAPABILITY_REVERSE, + GTK_PRINT_CAPABILITY_SCALE, + GTK_PRINT_CAPABILITY_GENERATE_PDF, + GTK_PRINT_CAPABILITY_GENERATE_PS, + GTK_PRINT_CAPABILITY_PREVIEW, + GTK_PRINT_CAPABILITY_NUMBER_UP, + GTK_PRINT_CAPABILITY_NUMBER_UP_LAYOUT, + + GTK_REGION_EVEN = 0, + GTK_REGION_ODD = 1, + GTK_REGION_FIRST, + GTK_REGION_LAST, + GTK_REGION_ONLY, + GTK_REGION_SORTED, + + GTK_STATE_FLAG_NORMAL = 0, + GTK_STATE_FLAG_ACTIVE = 1, + GTK_STATE_FLAG_PRELIGHT, + GTK_STATE_FLAG_SELECTED, + GTK_STATE_FLAG_INSENSITIVE, + GTK_STATE_FLAG_INCONSISTENT, + GTK_STATE_FLAG_FOCUSED, + GTK_STATE_FLAG_BACKDROP, + GTK_STATE_FLAG_DIR_LTR , + GTK_STATE_FLAG_DIR_RTL, + GTK_STATE_FLAG_LINK, + GTK_STATE_FLAG_VISITED, + GTK_STATE_FLAG_CHECKED + +public enum + GTK_PROGRESS_LEFT_TO_RIGHT = 0, + GTK_PROGRESS_RIGHT_TO_LEFT, + GTK_PROGRESS_BOTTOM_TO_TOP, + GTK_PROGRESS_TOP_TO_BOTTOM, + + GTK_RELIEF_NORMAL = 0, + GTK_RELIEF_HALF, + GTK_RELIEF_NONE, + + GTK_RESIZE_PARENT = 0, + GTK_RESIZE_QUEUE, + GTK_RESIZE_IMMEDIATE, + + GTK_REVEALER_TRANSITION_TYPE_NONE = 0, + GTK_REVEALER_TRANSITION_TYPE_CROSSFADE, + GTK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT, + GTK_REVEALER_TRANSITION_TYPE_SLIDE_LEFT, + GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP, + GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN, + + GTK_SCROLL_STEPS = 0, + GTK_SCROLL_PAGES, + GTK_SCROLL_ENDS, + GTK_SCROLL_HORIZONTAL_STEPS, + GTK_SCROLL_HORIZONTAL_PAGES, + GTK_SCROLL_HORIZONTAL_ENDS, + + GTK_SCROLL_NONE = 0, + GTK_SCROLL_JUMP, + GTK_SCROLL_STEP_BACKWARD, + GTK_SCROLL_STEP_FORWARD, + GTK_SCROLL_PAGE_BACKWARD, + GTK_SCROLL_PAGE_FORWARD, + GTK_SCROLL_STEP_UP, + GTK_SCROLL_STEP_DOWN, + GTK_SCROLL_PAGE_UP, + GTK_SCROLL_PAGE_DOWN, + GTK_SCROLL_STEP_LEFT, + GTK_SCROLL_STEP_RIGHT, + GTK_SCROLL_PAGE_LEFT, + GTK_SCROLL_PAGE_RIGHT, + GTK_SCROLL_START, + GTK_SCROLL_END, + + GTK_SELECTION_NONE = 0, + GTK_SELECTION_SINGLE, + GTK_SELECTION_BROWSE, + GTK_SELECTION_MULTIPLE, + + GTK_SHADOW_NONE = 0, + GTK_SHADOW_IN, + GTK_SHADOW_OUT, + GTK_SHADOW_ETCHED_IN, + GTK_SHADOW_ETCHED_OUT, + + GTK_STATE_NORMAL = 0, + GTK_STATE_ACTIVE, + GTK_STATE_PRELIGHT, + GTK_STATE_SELECTED, + GTK_STATE_INSENSITIVE, + GTK_STATE_INCONSISTENT, + GTK_STATE_FOCUSED, + GTK_STATE_PRESSED = 1, + GTK_STATE_MOUSEOVER, + + GTK_TEXT_DIR_NONE = 0, + GTK_TEXT_DIR_LTR, + GTK_TEXT_DIR_RTL, + + GTK_TEXT_EXTEND_SELECTION_WORD = 0, + GTK_TEXT_EXTEND_SELECTION_LINE, + + GTK_TOOLBAR_ICONS = 0, + GTK_TOOLBAR_TEXT, + GTK_TOOLBAR_BOTH, + GTK_TOOLBAR_BOTH_HORIZ, + + GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID = -1, + GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID = -2, + + GTK_UPDATE_CONTINUOUS = 0, + GTK_UPDATE_DISCONTINUOUS, + GTK_UPDATE_DELAYED, + + GTK_VISIBILITY_NONE = 0, + GTK_VISIBILITY_PARTIAL, + GTK_VISIBILITY_FULL, + + GTK_WIN_POS_NONE = 0, + GTK_WIN_POS_CENTER, + GTK_WIN_POS_MOUSE, + GTK_WIN_POS_CENTER_ALWAYS, + GTK_WIN_POS_CENTER_ON_PARENT, + + GTK_WINDOW_TOPLEVEL = 0, + GTK_WINDOW_POPUP, + + GTK_SORT_ASCENDING = 1, + GTK_SORT_DESCENDING, + + GTK_DRAG_RESULT_SUCCESS = 0, + GTK_DRAG_RESULT_NO_TARGET, + GTK_DRAG_RESULT_USER_CANCELLED, + GTK_DRAG_RESULT_TIMEOUT_EXPIRED, + GTK_DRAG_RESULT_GRAB_BROKEN, + GTK_DRAG_RESULT_ERROR, + + PANGO_ELLIPSIZE_NONE = 0, + PANGO_ELLIPSIZE_START, + PANGO_ELLIPSIZE_MIDDLE, + PANGO_ELLIPSIZE_END, + + GDK_SOLID = 0, + GDK_TILED, + GDK_STIPPLED, + GDK_OPAQUE_STIPPLED, + + GTK_RESPONSE_NONE = -1, + GTK_RESPONSE_REJECT = -2, + GTK_RESPONSE_ACCEPT = -3, + GTK_RESPONSE_DELETE_EVENT = -4, + GTK_RESPONSE_OK = -5, + GTK_RESPONSE_CANCEL = -6, + GTK_RESPONSE_CLOSE = -7, + GTK_RESPONSE_YES = -8, + GTK_RESPONSE_NO = -9, + GTK_RESPONSE_APPLY = -10, + GTK_RESPONSE_HELP = -11, + + GTK_TREE_VIEW_COLUMN_GROW_ONLY = 0, + GTK_TREE_VIEW_COLUMN_AUTOSIZE, + GTK_TREE_VIEW_COLUMN_FIXED, + + GTK_TREE_VIEW_GRID_LINES_NONE = 0, + GTK_TREE_VIEW_GRID_LINES_HORIZONTAL, + GTK_TREE_VIEW_GRID_LINES_VERTICAL, + GTK_TREE_VIEW_GRID_LINES_BOTH, + + GTK_TEXT_WINDOW_PRIVATE = 0, + GTK_TEXT_WINDOW_WIDGET, + GTK_TEXT_WINDOW_TEXT, + GTK_TEXT_WINDOW_LEFT, + GTK_TEXT_WINDOW_RIGHT, + GTK_TEXT_WINDOW_TOP, + GTK_TEXT_WINDOW_BOTTOM, + + G_NOTIFICATION_PRIORITY_NORMAL = 0, + G_NOTIFICATION_PRIORITY_LOW, + G_NOTIFICATION_PRIORITY_HIGH, + G_NOTIFICATION_PRIORITY_URGENT, + + G_USER_DIRECTORY_DESKTOP = 0, + G_USER_DIRECTORY_DOCUMENTS, + G_USER_DIRECTORY_DOWNLOAD, + G_USER_DIRECTORY_MUSIC, + G_USER_DIRECTORY_PICTURES, + G_USER_DIRECTORY_PUBLIC_SHARE, + G_USER_DIRECTORY_TEMPLATES, + G_USER_DIRECTORY_VIDEOS, + G_USER_N_DIRECTORIES, + + GTK_WRAP_NONE = 0, + GTK_WRAP_CHAR, + GTK_WRAP_WORD, + GTK_WRAP_WORD_CHAR, + + GDK_WINDOW_TYPE_HINT_NORMAL = 0, + GDK_WINDOW_TYPE_HINT_DIALOG, + GDK_WINDOW_TYPE_HINT_MENU, + GDK_WINDOW_TYPE_HINT_TOOLBAR, + GDK_WINDOW_TYPE_HINT_SPLASHSCREEN, + GDK_WINDOW_TYPE_HINT_UTILITY, + GDK_WINDOW_TYPE_HINT_DOCK, + GDK_WINDOW_TYPE_HINT_DESKTOP, + GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU, + GDK_WINDOW_TYPE_HINT_POPUP_MENU, + GDK_WINDOW_TYPE_HINT_TOOLTIP, + GDK_WINDOW_TYPE_HINT_NOTIFICATION, + GDK_WINDOW_TYPE_HINT_COMBO, + GDK_WINDOW_TYPE_HINT_DND, + + GDK_ACTION_DEFAULT = 0, + GDK_ACTION_COPY = 1, + GDK_ACTION_MOVE = 2, + GDK_ACTION_LINK = 4, + GDK_ACTION_PRIVATE = 8, + GDK_ACTION_ASK = 16, + + GTK_CELL_RENDERER_MODE_INERT = 0, + GTK_CELL_RENDERER_MODE_ACTIVATABLE, + GTK_CELL_RENDERER_MODE_EDITABLE, + + GTK_CELL_RENDERER_ACCEL_MODE_GTK = 0, + GTK_CELL_RENDERER_ACCEL_MODE_OTHER, + + GTK_DEST_DEFAULT_MOTION = 1, + GTK_DEST_DEFAULT_HIGHLIGHT = 2, + GTK_DEST_DEFAULT_DROP = 4, + GTK_DEST_DEFAULT_ALL = 0x07, + + GTK_TARGET_SAME_APP = 1, + GTK_TARGET_SAME_WIDGET = 2, + GTK_TARGET_OTHER_APP = 4, + GTK_TARGET_OTHER_WIDGET = 8, + + GTK_SIZE_GROUP_NONE = 0, + GTK_SIZE_GROUP_HORIZONTAL, + GTK_SIZE_GROUP_VERTICAL, + GTK_SIZE_GROUP_BOTH + +public enum + MOUSE_BUTTON1 = 1, + MOUSE_BUTTON2, + MOUSE_BUTTON3 + +public enum + PANGO_SCALE = 1000, + PANGO_STYLE_NORMAL= 0, + PANGO_STYLE_OBLIQUE, + PANGO_STYLE_ITALIC, + + PANGO_STRETCH_ULTRA_CONDENSED = 0, + PANGO_STRETCH_EXTRA_CONDENSED, + PANGO_STRETCH_CONDENSED, + PANGO_STRETCH_SEMI_CONDENSED, + PANGO_STRETCH_NORMAL, + PANGO_STRETCH_SEMI_EXPANDED, + PANGO_STRETCH_EXPANDED, + PANGO_STRETCH_EXTRA_EXPANDED, + PANGO_STRETCH_ULTRA_EXPANDED, + + PANGO_VARIANT_NORMAL=1, + PANGO_VARIANT_SMALL_CAPS, + + PANGO_WEIGHT_THIN = 100, + PANGO_WEIGHT_ULTRALIGHT = 200, + PANGO_WEIGHT_LIGHT = 300, + PANGO_WEIGHT_BOOK = 380, + PANGO_WEIGHT_NORMAL = 400, + PANGO_WEIGHT_MEDIUM = 500, + PANGO_WEIGHT_SEMIBOLD = 600, + PANGO_WEIGHT_BOLD = 700, + PANGO_WEIGHT_ULTRABOLD = 800, + PANGO_WEIGHT_HEAVY = 900, + PANGO_WEIGHT_ULTRAHEAVY = 1000, + PANGO_UNIT = 1024 + +public enum + GTK_RECENT_SORT_NONE = 0, + GTK_RECENT_SORT_MRU, + GTK_RECENT_SORT_LRU, + GTK_RECENT_SORT_CUSTOM + + public enum by * 2 -- GdkModifierTypes + GDK_SHIFT_MASK = 1, + GDK_LOCK_MASK, + GDK_CONTROL_MASK, + GDK_MOD1_MASK, -- Alt+ + GDK_MOD2_MASK, + GDK_MOD3_MASK, + GDK_MOD4_MASK, + GDK_MOD5_MASK, + GDK_BUTTON1_MASK, + GDK_BUTTON2_MASK, + GDK_BUTTON3_MASK, + GDK_BUTTON4_MASK, + GDK_BUTTON5_MASK, + SHFT = 1, -- 'shorthand' versions of above + LOCK, + CTL, + ALT + + public enum -- events + GDK_NOTHING = -1, + GDK_DELETE, + GDK_DESTROY, + GDK_EXPOSE, + GDK_MOTION_NOTIFY, + GDK_BUTTON_PRESS, + GDK_2BUTTON_PRESS, + GDK_3BUTTON_PRESS, + GDK_BUTTON_RELEASE, + GDK_KEY_PRESS, + GDK_KEY_RELEASE, + GDK_ENTER_NOTIFY, + GDK_LEAVE_NOTIFY, + GDK_FOCUS_CHANGE, + GDK_CONFIGURE, + GDK_MAP, + GDK_UNMAP + +public enum -- event masks + GDK_EXPOSURE_MASK = 2, + GDK_POINTER_MOTION_MASK = 4, + GDK_POINTER_MOTION_HINT_MASK = 8, + GDK_BUTTON_MOTION_MASK = 16, + GDK_BUTTON1_MOTION_MASK = #20, + GDK_BUTTON2_MOTION_MASK = #40, + GDK_BUTTON3_MOTION_MASK = #80, + GDK_BUTTON_PRESS_MASK = #100, + GDK_BUTTON_RELEASE_MASK = #200, + GDK_KEY_PRESS_MASK = #400, + GDK_KEY_RELEASE_MASK = #800, + GDK_ENTER_NOTIFY_MASK = #1000, + GDK_LEAVE_NOTIFY_MASK = #2000, + GDK_FOCUS_CHANGE_MASK = #4000, + GDK_STRUCTURE_MASK = #8000, + GDK_PROPERTY_CHANGE_MASK = #10000, + GDK_VISIBILITY_NOTIFY_MASK = #20000, + GDK_PROXIMITY_IN_MASK = #40000, + GDK_PROXIMITY_OUT_MASK = #80000, + GDK_SUBSTRUCTURE_MASK = #100000, + GDK_SCROLL_MASK = #200000, + GDK_ALL_EVENTS_MASK = #3FFFFE, + + GDK_PROPERTY_NOTIFY = 16, + GDK_SELECTION_CLEAR, + GDK_SELECTION_REQUEST, + GDK_SELECTION_NOTIFY, + GDK_PROXIMITY_IN, + GDK_PROXIMITY_OUT, + GDK_DRAG_ENTER, + GDK_DRAG_LEAVE, + GDK_DRAG_MOTION, + GDK_DRAG_STATUS, + GDK_DROP_START, + GDK_DROP_FINISHED, + GDK_CLIENT_EVENT, + GDK_VISIBILITY_NOTIFY, + GDK_NO_EXPOSE, + GDK_SCROLL, + GDK_WINDOW_STATE, + GDK_SETTING, + GDK_OWNER_CHANGE, + GDK_GRAB_BROKEN, + GDK_DAMAGE, + + GDK_FULLSCREEN_ON_CURRENT_MONITOR = 0, + GDK_FULLSCREEN_ON_ALL_MONITORS, + + GTK_PAGE_SET_ALL = 0, + GTK_PAGE_SET_EVEN, + GTK_PAGE_SET_ODD, + + GTK_PAGE_ORIENTATION_PORTRAIT = 0, + GTK_PAGE_ORIENTATION_LANDSCAPE, + GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT, + GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE, + + GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG = 0, + GTK_PRINT_OPERATION_ACTION_PRINT, + GTK_PRINT_OPERATION_ACTION_PREVIEW, + GTK_PRINT_OPERATION_ACTION_EXPORT, + + GTK_PRINT_OPERATION_RESULT_ERROR = 0, + GTK_PRINT_OPERATION_RESULT_APPLY, + GTK_PRINT_OPERATION_RESULT_CANCEL, + GTK_PRINT_OPERATION_RESULT_IN_PROGRESS, + + GTK_PRINT_STATUS_INITIAL = 0, + GTK_PRINT_STATUS_PREPARING, + GTK_PRINT_STATUS_GENERATING_DATA, + GTK_PRINT_STATUS_SENDING_DATA, + GTK_PRINT_STATUS_PENDING, + GTK_PRINT_STATUS_PENDING_ISSUE, + GTK_PRINT_STATUS_PRINTING, + GTK_PRINT_STATUS_FINISHED, + GTK_PRINT_STATUS_FINISHED_ABORTED, + + GTK_PRINT_DUPLEX_SIMPLE = 0, + GTK_PRINT_DUPLEX_HORIZONTAL, + GTK_PRINT_DUPLEX_VERTICAL, + + GTK_PRINT_PAGES_ALL = 0, + GTK_PRINT_PAGES_CURRENT, + GTK_PRINT_PAGES_RANGES, + GTK_PRINT_PAGES_SELECTION, + + GTK_PRINT_QUALITY_LOW = 0, + GTK_PRINT_QUALITY_NORMAL, + GTK_PRINT_QUALITY_HIGH, + GTK_PRINT_QUALITY_DRAFT, + + GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM = 0, + GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP, + GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TOP_BOTTOM, + GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP, + GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT, + GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT, + GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT, + GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT, + + GTK_STYLE_PROVIDER_PRIORITY_FALLBACK = 1, + GTK_STYLE_PROVIDER_PRIORITY_THEME = 200, + GTK_STYLE_PROVIDER_PRIORITY_SETTINGS = 400, + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION = 600, + GTK_STYLE_PROVIDER_PRIORITY_USER = 800, + + GTK_UNIT_PIXEL = 0, + GTK_UNIT_POINTS, + GTK_UNIT_INCH, + GTK_UNIT_MM, + + GTK_STACK_TRANSITION_TYPE_NONE = 0, + GTK_STACK_TRANSITION_TYPE_CROSSFADE, + GTK_STACK_TRANSITION_TYPE_SLIDE_RIGHT, + GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT, + GTK_STACK_TRANSITION_TYPE_SLIDE_UP, + GTK_STACK_TRANSITION_TYPE_SLIDE_DOWN, + GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT, + GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN, + GTK_STACK_TRANSITION_TYPE_OVER_UP, -- GTK3.12 from here down + GTK_STACK_TRANSITION_TYPE_OVER_DOWN, + GTK_STACK_TRANSITION_TYPE_OVER_LEFT, + GTK_STACK_TRANSITION_TYPE_OVER_RIGHT, + GTK_STACK_TRANSITION_TYPE_UNDER_UP, + GTK_STACK_TRANSITION_TYPE_UNDER_DOWN, + GTK_STACK_TRANSITION_TYPE_UNDER_LEFT, + GTK_STACK_TRANSITION_TYPE_UNDER_RIGHT, + GTK_STACK_TRANSITION_TYPE_OVER_UP_DOWN, + GTK_STACK_TRANSITION_TYPE_OVER_DOWN_UP, + GTK_STACK_TRANSITION_TYPE_OVER_LEFT_RIGHT, + GTK_STACK_TRANSITION_TYPE_OVER_RIGHT_LEFT, + + GTK_PLACES_OPEN_NORMAL = 0, + GTK_PLACES_OPEN_NEW_TAB, + GTK_PLACES_OPEN_NEW_WINDOW, + + GDK_PIXBUF_ROTATE_NONE = 0, + GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE = 90, + GDK_PIXBUF_ROTATE_UPSIDEDOWN = 180, + GDK_PIXBUF_ROTATE_CLOCKWISE = 270, + + GDK_INTERP_NEAREST = 0, + GDK_INTERP_TILES, + GDK_INTERP_BILINEAR, + GDK_INTERP_HYPER, + + CAIRO_EXTEND_REPEAT = 1, + + CAIRO_FILL_RULE_EVEN_ODD = 1, + CAIRO_FILL_RULE_WINDING = 0, + + CAIRO_FONT_SLANT_NORMAL = 0, + CAIRO_FONT_SLANT_ITALIC, + CAIRO_FONT_SLANT_OBLIQUE, + + CAIRO_FONT_WEIGHT_NORMAL = 0, NORMAL = 0, + CAIRO_FONT_WEIGHT_BOLD, BOLD = 1, + + CAIRO_FORMAT_INVALID = -1, + CAIRO_FORMAT_ARGB32 = 0, + CAIRO_FORMAT_RGB24, + CAIRO_FORMAT_A8, + CAIRO_FORMAT_A1, + CAIRO_FORMAT_RGB16_565, + + CAIRO_LINE_CAP_BUTT = 0, + CAIRO_LINE_CAP_ROUND, + CAIRO_LINE_CAP_SQUARE, + + CAIRO_LINE_JOIN_MITER = 0, + CAIRO_LINE_JOIN_ROUND, + CAIRO_LINE_JOIN_BEVEL, + + CAIRO_OPERATOR_CLEAR = 0, + CAIRO_OPERATOR_SOURCE, + CAIRO_OPERATOR_OVER, + CAIRO_OPERATOR_IN, + CAIRO_OPERATOR_OUT, + CAIRO_OPERATOR_ATOP, + CAIRO_OPERATOR_DEST, + CAIRO_OPERATOR_DEST_OVER, + CAIRO_OPERATOR_DEST_IN, + CAIRO_OPERATOR_DEST_OUT, + CAIRO_OPERATOR_DEST_ATOP, + CAIRO_OPERATOR_XOR, + CAIRO_OPERATOR_ADD, + CAIRO_OPERATOR_SATURATE, + CAIRO_OPERATOR_MULTIPLY, + CAIRO_OPERATOR_SCREEN, + CAIRO_OPERATOR_OVERLAY, + CAIRO_OPERATOR_DARKEN, + CAIRO_OPERATOR_LIGHTEN, + CAIRO_OPERATOR_COLOR_DODGE, + CAIRO_OPERATOR_COLOR_BURN, + CAIRO_OPERATOR_HARD_LIGHT, + CAIRO_OPERATOR_SOFT_LIGHT, + CAIRO_OPERATOR_DIFFERENCE, + CAIRO_OPERATOR_EXCLUSION, + CAIRO_OPERATOR_HSL_HUE, + CAIRO_OPERATOR_HSL_SATURATION, + CAIRO_OPERATOR_HSL_COLOR, + CAIRO_OPERATOR_HSL_LUMINOSITY, + + CAIRO_PDF_VERSION_1_4 = 0, + CAIRO_PDF_VERSION_1_5, + + CAIRO_SVG_VERSION_1_1 = 0, + CAIRO_SVG_VERSION_1_2, + + CAIRO_SURFACE_TYPE_IMAGE = 0, + CAIRO_SURFACE_TYPE_PDF, + CAIRO_SURFACE_TYPE_PS, + CAIRO_SURFACE_TYPE_XLIB, + CAIRO_SURFACE_TYPE_XCB, + CAIRO_SURFACE_TYPE_GLITZ, + CAIRO_SURFACE_TYPE_QUARTZ, + CAIRO_SURFACE_TYPE_WIN32, + CAIRO_SURFACE_TYPE_BEOS, + CAIRO_SURFACE_TYPE_DIRECTFB, + CAIRO_SURFACE_TYPE_SVG, + CAIRO_SURFACE_TYPE_OS2, + CAIRO_SURFACE_TYPE_WIN32_PRINTING, + CAIRO_SURFACE_TYPE_QUARTZ_IMAGE, + CAIRO_SURFACE_TYPE_SCRIPT, + CAIRO_SURFACE_TYPE_QT, + CAIRO_SURFACE_TYPE_RECORDING, + CAIRO_SURFACE_TYPE_VG, + CAIRO_SURFACE_TYPE_GL, + CAIRO_SURFACE_TYPE_DRM, + CAIRO_SURFACE_TYPE_TEE, + CAIRO_SURFACE_TYPE_XML, + CAIRO_SURFACE_TYPE_SKIA, + CAIRO_SURFACE_TYPE_SUBSURFACE, + + CAIRO_FONT_TYPE_TOY = 0, + CAIRO_FONT_TYPE_FT, + CAIRO_FONT_TYPE_WIN32, + CAIRO_FONT_TYPE_QUARTZ, + CAIRO_FONT_TYPE_USER + +public enum + ICON_PIXBUF = 1, + ICON_DISPLAY_NAME, + ICON_FILENAME, + ICON_BASE_SIZE, + ICON_BASE_SCALE, + ICON_IS_SYMBOLIC, + + G_KEY_FILE_NONE = 0, + G_KEY_FILE_KEEP_COMMENTS, + G_KEY_FILE_KEEP_TRANSLATIONS + + +-- local function to implement widget types; +function _(atom x, integer t) +if x = 0 then + crash("Invalid type - pointer is null!") +end if +init(t) register(x,t) +return x +end function + +------------------------------------------------------------------------ +-- GTK Widget Types -- used rarely, with caution +------------------------------------------------------------------------ +global type Object(atom x)return _(x,GObject)end type +global type Window(atom x)return _(x,GtkWindow)end type +global type Dialog(atom x)return _(x,GtkDialog)end type +global type AboutDialog(atom x)return _(x,GtkAboutDialog)end type +global type Assistant(atom x)return _(x,GtkAssistant)end type +global type Box(atom x)return _(x,GtkBox)end type +global type Grid(atom x)return _(x,GtkGrid)end type +global type Revealer(atom x)return _(x,GtkRevealer)end type +global type ListBox(atom x)return _(x,GtkListBox)end type +global type FlowBox(atom x)return _(x,GtkFlowBox)end type +global type Stack(atom x)return _(x,GtkStack)end type +global type StackSwitcher(atom x)return _(x,GtkStackSwitcher)end type +global type Sidebar(atom x)return _(x,GtkSidebar)end type +global type ActionBar(atom x)return _(x,GtkActionBar)end type +global type HeaderBar(atom x)return _(x,GtkHeaderBar)end type +global type Overlay(atom x)return _(x,GtkOverlay)end type +global type ButtonBox(atom x)return _(x,GtkButtonBox)end type +global type Paned(atom x)return _(x,GtkPaned)end type +global type Layout(atom x)return _(x,GtkLayout)end type +global type Notebook(atom x)return _(x,GtkNotebook)end type +global type Expander(atom x)return _(x,GtkExpander)end type +global type AspectFrame(atom x)return _(x,GtkAspectFrame)end type +global type Label(atom x)return _(x,GtkLabel)end type +global type Image(atom x)return _(x,GtkImage)end type +global type Spinner(atom x)return _(x,GtkSpinner)end type +global type InfoBar(atom x)return _(x,GtkInfoBar)end type +global type ProgressBar(atom x)return _(x,GtkProgressBar)end type +global type LevelBar(atom x)return _(x,GtkLevelBar)end type +global type Statusbar(atom x)return _(x,GtkStatusbar)end type +global type AccelLabel(atom x)return _(x,GtkAccelLabel)end type +global type Button(atom x)return _(x,GtkButton)end type +global type CheckButton(atom x)return _(x,GtkCheckButton)end type +global type RadioButton(atom x)return _(x,GtkRadioButton)end type +global type ToggleButton(atom x)return _(x,GtkToggleButton)end type +global type LinkButton(atom x)return _(x,GtkLinkButton)end type +global type MenuButton(atom x)return _(x,GtkMenuButton)end type +global type Switch(atom x)return _(x,GtkSwitch)end type +global type ScaleButton(atom x)return _(x,GtkScaleButton)end type +global type VolumeButton(atom x)return _(x,GtkVolumeButton)end type +global type LockButton(atom x)return _(x,GtkLockButton)end type +global type Entry(atom x)return _(x,GtkEntry)end type +global type EntryBuffer(atom x)return _(x,GtkEntryBuffer)end type +global type EntryCompletion(atom x)return _(x,GtkEntryCompletion)end type +global type Scale(atom x)return _(x,GtkScale)end type +global type SpinButton(atom x)return _(x,GtkSpinButton)end type +global type SearchEntry(atom x)return _(x,GtkSearchEntry)end type +global type SearchBar(atom x)return _(x,GtkSearchBar)end type +global type Editable(atom x)return _(x,GtkEditable)end type +global type TextMark(atom x)return _(x,GtkTextMark)end type +global type TextBuffer(atom x)return _(x,GtkTextBuffer)end type +global type TextTag(atom x)return _(x,GtkTextTag)end type +global type TextTagTable(atom x)return _(x,GtkTextTagTable)end type +global type TextView(atom x)return _(x,GtkTextView)end type +global type TreeModel(atom x)return _(x,GtkTreeModel)end type +global type TreeModelSort(atom x)return _(x,GtkTreeModelSort)end type +global type TreeSelection(atom x)return _(x,GtkTreeSelection)end type +global type TreeViewColumn(atom x)return _(x,GtkTreeViewColumn)end type +global type TreeView(atom x)return _(x,GtkTreeView)end type +global type IconView(atom x)return _(x,GtkIconView)end type +global type CellRendererText(atom x)return _(x,GtkCellRendererText)end type +global type CellRendererAccel(atom x)return _(x,GtkCellRendererAccel)end type +global type CellRendererCombo(atom x)return _(x,GtkCellRendererCombo)end type +global type CellRendererPixbuf(atom x)return _(x,GtkCellRendererPixbuf)end type +global type CellRendererProgress(atom x)return _(x,GtkCellRendererProgress)end type +global type CellRendererSpin(atom x)return _(x,GtkCellRendererSpin)end type +global type CellRendererToggle(atom x)return _(x,GtkCellRendererToggle)end type +global type CellRendererSpinner(atom x)return _(x,GtkCellRendererSpinner)end type +global type ListStore(atom x)return _(x,GtkListStore)end type +global type TreeStore(atom x)return _(x,GtkTreeStore)end type +global type ComboBox(atom x)return _(x,GtkComboBox)end type +global type ComboBoxText(atom x)return _(x,GtkComboBoxText)end type +global type Menu(atom x)return _(x,GtkMenu)end type +global type MenuBar(atom x)return _(x,GtkMenuBar)end type +global type MenuItem(atom x)return _(x,GtkMenuItem)end type +global type RadioMenuItem(atom x)return _(x,GtkRadioMenuItem)end type +global type CheckMenuItem(atom x)return _(x,GtkCheckMenuItem)end type +global type SeparatorMenuItem(atom x)return _(x,GtkSeparatorMenuItem)end type +global type Toolbar(atom x)return _(x,GtkToolbar)end type +global type ToolItem(atom x)return _(x,GtkToolItem)end type +global type ToolPalette(atom x)return _(x,GtkToolPalette)end type +global type ToolButton(atom x)return _(x,GtkToolButton)end type +global type MenuToolButton(atom x)return _(x,GtkMenuToolButton)end type +global type ToggleToolButton(atom x)return _(x,GtkToggleToolButton)end type +global type RadioToolButton(atom x)return _(x,GtkRadioToolButton)end type +global type Popover(atom x)return _(x,GtkPopover)end type +global type PopoverMenu(atom x)return _(x,GtkPopoverMenu)end type +global type ColorChooser(atom x)return _(x,GtkColorChooser)end type +global type ColorButton(atom x)return _(x,GtkColorButton)end type +global type ColorChooserWidget(atom x)return _(x,GtkColorChooserWidget)end type +global type ColorChooserDialog(atom x)return _(x,GtkColorChooserDialog)end type +global type FileChooser(atom x)return _(x,GtkFileChooser)end type +global type FileChooserButton(atom x)return _(x,GtkFileChooserButton)end type +global type FileChooserDialog(atom x)return _(x,GtkFileChooserDialog)end type +global type FileChooserWidget(atom x)return _(x,GtkFileChooserWidget)end type +global type FileFilter(atom x)return _(x,GtkFileFilter)end type +global type FontChooser(atom x)return _(x,GtkFontChooser)end type +global type FontButton(atom x)return _(x,GtkFontButton)end type +global type FontChooserWidget(atom x)return _(x,GtkFontChooserWidget)end type +global type FontChooserDialog(atom x)return _(x,GtkFontChooserDialog)end type +global type PlacesSidebar(atom x)return _(x,GtkPlacesSidebar)end type +global type Frame(atom x)return _(x,GtkFrame)end type +global type Scrollbar(atom x)return _(x,GtkScrollbar)end type +global type ScrolledWindow(atom x)return _(x,GtkScrolledWindow)end type +global type Adjustment(atom x)return _(x,GtkAdjustment)end type +global type Calendar(atom x)return _(x,GtkCalendar)end type +global type GLArea(atom x)return _(x,GtkGLArea)end type +global type Tooltip(atom x)return _(x,GtkTooltip)end type +global type Viewport(atom x)return _(x,GtkViewport)end type +global type Widget(atom x)return _(x,GtkWidget)end type +global type Container(atom x)return _(x,GtkContainer)end type +global type Bin(atom x)return _(x,GtkBin)end type +global type Range(atom x)return _(x,GtkRange)end type +global type PrintContext(atom x)return _(x,GtkPrintContext)end type +global type ListBoxRow(atom x)return _(x,GtkListBoxRow)end type +global type FontFamily(atom x)return _(x,PangoFontFamily)end type +global type FontFace(atom x)return _(x,PangoFontFace)end type +global type FontDescription(atom x)return _(x,PangoFontDescription)end type +global type AppChooserDialog(atom x)return _(x,GtkAppChooserDialog)end type +global type PaperSize(atom x)return _(x,GtkPaperSize)end type +global type DrawingArea(atom x)return _(x,GtkDrawingArea)end type +global type RecentChooserDialog(atom x)return _(x,GtkRecentChooserDialog)end type +global type RecentChooserWidget(atom x)return _(x,GtkRecentChooserWidget)end type +global type RecentChooser(atom x)return _(x,GtkRecentChooser)end type +global type RecentFilter(atom x)return _(x,GtkRecentFilter)end type +global type RecentChooserMenu(atom x)return _(x,GtkRecentChooserMenu)end type +global type EventBox(atom x)return _(x,GtkEventBox)end type +global type TreeModelFilter(atom x)return _(x,GtkTreeModelFilter)end type +global type Application(atom x)return _(x,GtkApplication)end type +global type ApplicationWindow(atom x)return _(x,GtkApplicationWindow)end type +global type Pixbuf(atom x)return _(x,GdkPixbuf)end type +global type IconTheme(atom x)return _(x,GtkIconTheme)end type +global type Cairo_T(atom x)return _(x,Cairo_t)end type +global type CellArea(atom x)return _(x,GtkCellArea)end type + +----------------------------- +-- copyright 2016 Irv Mullins +----------------------------- + diff --git a/eugtk/examples/GtkEvents.e b/eugtk/examples/GtkEvents.e new file mode 100644 index 0000000..fde1785 --- /dev/null +++ b/eugtk/examples/GtkEvents.e @@ -0,0 +1,277 @@ + +---------------- +namespace events +---------------- + +export constant version = "4.12.0" + +--Thanks to Pete Eberlein for helping with this! + +include GtkEngine.e +include std/convert.e + +if not equal(version,gtk:version) then + Error(,,"GtkEvents version mismatch","should be version " & gtk:version) +end if + +-- Maps keys from keypad to match same keys on keyboard, +-- maps control/arrow keys to negative numbers, so they +-- can be differentiated from the same ascii character +-- values; + +constant keyvalues = { +{8,-8}, -- bksp +{9,-9}, -- tab +{20,-20}, -- scroll lock +{27,27}, -- escape +{80,-80}, -- home 'P' +{81,-81}, -- left arrow 'Q' +{82,-82}, -- up arrow 'R' +{83,-83}, -- right arrow 'S' +{84,-84}, -- down arrow 'T' +{85,-85}, -- page up 'U' +{86,-86}, -- page dn 'V' +{87,-87}, -- end 'W' +{99,-99}, -- insert 'c' +{103,-103}, +{127,-127}, -- num lock + +{141,13}, -- keypad Enter, with or w/o numlock; + +-- keypad keys w/o numlock; +{149,-149}, -- keypad home +{150,-150}, -- keypad left +{151,-151}, -- keypad up +{152,-152}, -- keypad right +{153,-153}, -- keypad down +{154,-154}, -- keypad pg up +{155,-155}, -- keypad pg dn +{156,-156}, -- keypad end +{157,-157}, -- keypad 5 +{158,-158}, -- keypad ins +{159,-159}, -- keypad del + +-- keypad keys with numlock - return ascii 0..9 +{170,'*'},{171,'+'},{173,'-'},{175,'/'}, +{176,48},{177,49},{178,50},{179,51},{180,52}, -- keypad numbers 0..4 +{181,53},{182,54},{183,55},{184,56},{185,57}, -- keypad numbers 5..9 + +-- F keys; +{190,-190}, -- F1 +{191,-191}, -- F2 +{192,-192}, -- F3 +{193,-193}, -- F4 +{194,-194}, -- F5 +{195,-195}, -- F6 +{196,-196}, -- F7 +{197,-197}, -- F8 +{198,-198}, -- F9 +{199,-199}, -- F10 +{200,-200}, -- F11 +{201,-201}, -- F12 +{227,-227}, -- left ctl +{228,-228}, -- right ctl +{229,-229}, +{225,-225}, -- left shift +{226,-226}, -- right shift +{228,-228}, +{233,-233}, -- left alt +{234,-234}, -- right alt +{236,-236}, +{255,-255}, -- delete +$} + +constant shiftkeys = { +{32,-9}, -- shift tab +$} + +constant event_names = { + {3,"focus-in"}, + {11,"focus-out"} + } + +---------------------------------------------------------------------- +export function key(atom event) -- get key pressed; +---------------------------------------------------------------------- +if event = 0 then return 0 end if +integer k = peek(event+16) +integer z = peek(event+17) +integer s = state(event) +ifdef BITS64 then + k = peek(event+28) + z = peek(event+29) +end ifdef +switch z do + case 0 then return k + case 255 then return vlookup(k,keyvalues,1,2,k) + case 254 then return vlookup(k,shiftkeys,1,2,k) +end switch +return 0 +end function + +--(32/64)struct GdkEventButton +-- 0 0 GdkEventType type a.k.a. id +-- 4 8 GtkWindow *window +-- 8 16 gint8 send_event +-- 12 20 guint32 time +-- 16 24 gdouble x +-- 24 32 gdouble y +-- 32 40 gdouble *axes +-- 36 48 guint state +-- 40 52 guint button +-- 44 56 GdkDevice *device +-- 48 64 gdouble x_root, y_root + +--------------------------------------------------------------------- +export function id(atom event) +--------------------------------------------------------------------- +if event > 0 then return peek4u(event) else return event end if +end function + +--------------------------------------------------------------------- +export function name(atom event) +--------------------------------------------------------------------- +event = id(event) +for i = 1 to length(event_names) do + if event = event_names[i][1] then + return event_names[i][2] + end if +end for +return -1 +end function + +--------------------------------------------------------------------- +export function window(atom event) -- get event window +--------------------------------------------------------------------- +ifdef BITS64 then + return peek8u(event + 8) +end ifdef + return peek4u(event + 4) +end function + +--------------------------------------------------------------------- +export function time(atom event) -- get event time +--------------------------------------------------------------------- +ifdef BITS64 then + return peek4u(event + 20) +end ifdef + return peek4u(event + 12) +end function + +--------------------------------------------------------------------- +export function xy(atom event) -- get mouse button x y; +--------------------------------------------------------------------- +ifdef BITS64 then + return floor({ + float64_to_atom(peek({event + 24, 8})), + float64_to_atom(peek({event + 32, 8}))}) +end ifdef + return floor({ + float64_to_atom(peek({event + 16, 8})), + float64_to_atom(peek({event + 24, 8}))}) +end function + +--------------------------------------------------------------------- +export function axes(atom event) +--------------------------------------------------------------------- +ifdef BITS64 then + return float64_to_atom(peek({event + 40, 8})) +end ifdef + return float64_to_atom(peek({event + 32, 8})) +end function + +--------------------------------------------------------------------- +export function button(atom event) -- get mouse button clicked; +--------------------------------------------------------------------- +ifdef BITS64 then + return peek(event+52) +end ifdef +return peek(event+40) +end function + +---------------------------------------------------------------------- +export function state(atom event) +---------------------------------------------------------------------- +ifdef BITS64 then + return peek(event+48) +end ifdef +return peek(event+36) +end function + +---------------------------------------------------------------------- +export function device(atom event) +---------------------------------------------------------------------- +ifdef BITS64 then + return peek(event+56) +end ifdef +return peek(event+44) +end function + +--------------------------------------------------------------------- +export function clicks(atom event) +--------------------------------------------------------------------- +atom ct = allocate(64) +object result + if gtk_func("gdk_event_get_click_count",{P,I},{event,ct}) then + result = peek4u(ct) + else + result = -1 + end if + free(ct) +return result +end function + +--------------------------------------------------------------------- +export function scroll_dir(atom event) +--------------------------------------------------------------------- +atom dir = allocate(64) +object result + if gtk_func("gdk_event_get_scroll_direction",{P,I},{event,dir}) then + result = peek4u(dir) + else + result = -1 + end if + free(dir) +return result +end function + +--------------------------------------------------------------------------------- +export function pending() -- used sometimes when using timeout or eu tasks +--------------------------------------------------------------------------------- + return gtk_func("gtk_events_pending") +end function + +------------------------------------------------------------------------ +export procedure main_iteration() +------------------------------------------------------------------------ + gtk_proc("gtk_main_iteration") +end procedure + +----------------------------------------------------------------------------------- +export procedure main_iteration_do(integer i) -- used sometimes when multi-tasking; +----------------------------------------------------------------------------------- + gtk_proc("gtk_main_iteration_do",{I},i) +end procedure + +------------------------------------------------------------------------ +-- following routine traps the enter key when Entry is activated, +-- and uses it like the tab key - so it works like people expect. +-- When using Glade, connect each entry's 'activate' signal to +-- trap_enter_key +------------------------------------------------------------------------ +constant gsig = define_proc("g_signal_emit_by_name",{P,P,P}) +constant fsig = allocate_string("move-focus") +------------------------------------------------------------------------ +global function trap_enter_key(atom ctl, atom event) +----------------------------------------------------------------------- + if class_id(ctl) = GtkEntry then + if event = 0 then + c_proc(gsig,{ctl,allocate_string("move-focus"),0}) + return 1 + end if + end if +return 0 +end function + + + diff --git a/eugtk/examples/GtkFileSelector.e b/eugtk/examples/GtkFileSelector.e new file mode 100644 index 0000000..91959ac --- /dev/null +++ b/eugtk/examples/GtkFileSelector.e @@ -0,0 +1,454 @@ + +------------------------- +namespace fileselector -- Generic file selection dialog; +------------------------- + +--# EXPORTS: +/* + -- functions: + fileselector:New() + fileselector:Open() + fileselector:Save() + fileselector:SaveAs() + fileselector:CreateFolder() + fileselector:SelectFolder() + + -- returns: + full file path if successful, e.g. "/home/irv/demos/test99.ex" + or an atom: + MB_ABORT when dialog is closed + MB_CANCEL when cancel button is clicked. +*/ + +include GtkEngine.e + +export constant version = "4.12.0" + +if not equal(version,gtk:version) then + Error(,,"GtkFileSelector version mismatch","should be version " & gtk:version) +end if + + +-- default settings, change before calling the dialog if required; +export boolean + create_folders = TRUE, + local_only = TRUE, + select_multiple = FALSE, + show_hidden = FALSE, + do_overwrite_confirmation = TRUE, + show_preview = FALSE, + preview_widget_active = TRUE + +export sequence preview_size = {200,200} + +export atom preview_max = 150 -- default size + +export object selected_filter=0, filters = {"euphoria","text"} + +-- may change filters before calling the dialog +-- (or every 5,000 miles, whichever comes first) + +-- IOW, to show only .css files, add the line: +-- fileselector:filters = {"css"} +-- before calling: +-- fileselector:Open("~/demos/*") + +-- note that the syntax of the parameter to Open() is important: +-- ~/demos or ~/demos/ will only cause the dialog to highlight the ~/demos folder, +-- ~/demos/* will open the demos folder and display the [filtered] file types +-- ~/demos/*.css will show folders and all *.css files + +-- combining filters with wildcards: +-- fileselector:filters = {"images"} +-- fileselector:Open("~/demos/glade/*") +-- the above will show all images in the specified directory, + +-- whereas: +-- fileselector:Open("~/demos/glade/*.png") +-- will show only .png images in the specified directory, +-- regardless of how the filters are set. + +-- below, only .png images will be shown, but drop-down options to show .html and .c files +-- will be available also: +-- fileselector:filters = {"html","c"} +-- fileselector:Open("~/demos/glade/*.png") + +-------------------------------------- +function generate_filter(object name) +-------------------------------------- +object filter = 0 + + switch name do + + case "images",".jpg",".gif",".png",".xpm" then filter = create(GtkFileFilter,{ + {"name","Images"},{"add mime type","image/*"}}) + + case "euphoria",".eu",".e",".exw" then filter = create(GtkFileFilter,{ + {"name","Euphoria files"},{"add pattern","*.e"}, + {"add pattern","*.ex"},{"add pattern","*.cfg"}}) + + case "text",".text",".txt" then filter = create(GtkFileFilter,{ + {"name","All text"},{"add mime type","text/plain"}}) + + case "c",".c",".h" then filter = create(GtkFileFilter,{ + {"name","C source code"},{"add mime type","text/x-c"}, + {"add pattern","*.c"},{"add pattern","*.h"}}) + + case "c++" then filter = create(GtkFileFilter,{ + {"name","C++ source code"},{"add pattern","*.c++"}}) + + case "css",".css" then filter = create(GtkFileFilter,{ + {"name","css markup"},{"add mime type","text/css"}, + {"add pattern","*.css"}}) + + case "python",".python",".py" then filter = create(GtkFileFilter,{ + {"name","Python"},{"add mime type","text/x-python"}}) + + case "html",".htm",".html" then filter = create(GtkFileFilter,{ + {"name","html source"},{"add mime type","text/html"}, + {"add pattern","*.html"}}) + + case "ini",".ini" then filter = create(GtkFileFilter,{ + {"name","ini"},{"add pattern","*.ini"}}) + + case "all" then filter = create(GtkFileFilter,{ + {"name","All files"},{"add pattern","*"}}) + + case "dir" then filter = create(GtkFileFilter,{ + {"name","Directories"},{"add mime type","inode/directory"}}) + + end switch + +return filter + +end function + +constant update_preview = call_back(routine_id("UpdatePreview")) + +---------------------------------------------------------- +export function New(object current=0) +---------------------------------------------------------- +object result=0 +atom dlg = create(GtkFileChooserDialog) + +set(dlg,{ + {"name","FileNew"}, + {"title","Create a new file"}, + {"action",GTK_FILE_CHOOSER_ACTION_SAVE}, + {"preview widget active",preview_widget_active}, + + {"add button","gtk-cancel",MB_CANCEL}, + {"add button","gtk-ok",MB_OK}, + {"create folders",create_folders}, + {"local only",local_only}, + {"select multiple",select_multiple}, + {"show hidden",show_hidden}, + {"do overwrite confirmation",do_overwrite_confirmation}}) + + for i = 1 to length(filters) do + set(dlg,"add filter",generate_filter(filters[i])) + end for + + if show_preview = TRUE then + atom preview = create(GtkImage) + set(dlg,"preview widget",preview) + connect(dlg,"update-preview",update_preview,preview) + end if + + if atom(current) and current > 0 then + set(dlg,"current name",unpack(current)) + end if + + result = get(dlg,"run") + if result = MB_OK then + result = get(dlg,"filename") + end if + +destroy(dlg) + +return result +end function +export constant new = call_back(routine_id("New")) + +---------------------------------------------------- +export function Open(object data=0, atom x=0) +---------------------------------------------------- +object result=0 +object filter=0 + +if atom(data) and data > 0 then data = unpack(data) end if +if string(data) and equal("*",filename(data)) then filters &= {"all"} end if + +atom dlg = create(GtkFileChooserDialog) + +set(dlg,{ + {"name","FileOpen"}, + {"title","Open a file"}, + {"action",GTK_FILE_CHOOSER_ACTION_OPEN}, + {"preview widget active",preview_widget_active}, + + {"add button","gtk-cancel",MB_CANCEL}, + {"add button","gtk-ok",MB_OK}, + {"create folders",create_folders}, + {"local only",local_only}, + {"select multiple",select_multiple}, + {"show hidden",show_hidden}, + {"do overwrite confirmation",do_overwrite_confirmation}}) + + for i = 1 to length(filters) do + set(dlg,"add filter",generate_filter(filters[i])) + end for + + if show_preview = TRUE then + atom preview = create(GtkImage) + set(dlg,"preview widget",preview) + connect(dlg,"update-preview",update_preview,preview) + end if + + if atom(data) and data > 0 then + data = unpack(data) + end if + + if string(data) then + if file_exists(canonical_path(data)) then + set(dlg,"filename",canonical_path(data)) + else + if not equal("*",filename(data)) then + filter = create(GtkFileFilter,{ -- build a custom filter; + {"name",filename(data) & " files"}, + {"add pattern",filename(data)}}) + set(dlg,"add filter",filter) + set(dlg,"filter",filter) + end if + set(dlg,"filename",canonical_path(data)) -- change to desired folder; + end if + end if + + result = get(dlg,"run") + + if result = MB_OK then + result = get(dlg,"filename") + end if + + destroy(dlg) + +return result +end function +export constant open = call_back(routine_id("Open")) + +---------------------------------------------------- +export function Save(object data, object x=0) +---------------------------------------------------- +object result=0 +atom dlg = create(GtkFileChooserDialog) +atom f + +set(dlg,{ + {"name","FileSave"}, + {"title","Save this file"}, + {"action",GTK_FILE_CHOOSER_ACTION_SAVE}, + + {"add button","gtk-cancel",MB_CANCEL}, + {"add button","gtk-ok",MB_OK}, + {"create folders",create_folders}, + {"local only",local_only}, + {"select multiple",select_multiple}, + {"show hidden",show_hidden}, + {"do overwrite confirmation",do_overwrite_confirmation}}) + + for i = 1 to length(filters) do + set(dlg,"add filter",generate_filter(filters[i])) + end for + + if show_preview = TRUE then + atom preview = create(GtkImage) + set(dlg,"preview widget",preview) + connect(dlg,"update-preview",update_preview,preview) + end if + + if atom(data) and data > 0 then + set(dlg,"current name",unpack(data)) + end if + + if string(data) then + set(dlg,"current name",data) + end if + + result = get(dlg,"run") + + if result = MB_OK then + result = get(dlg,"filename") + end if + +destroy(dlg) + +return result +end function +export constant save = call_back(routine_id("Save")) + +----------------------------------------------------------- +export function SaveAs(object data=0, object x=0) +----------------------------------------------------------- +object result=0 +atom dlg = create(GtkFileChooserDialog) + +set(dlg,{ + {"name=FileSaveAs"}, + {"title","Save this file with a new name"}, + {"action",GTK_FILE_CHOOSER_ACTION_SAVE}, + + {"add button","gtk-cancel",MB_CANCEL}, + {"add button","gtk-ok",MB_OK}, + {"create folders",create_folders}, + {"local only",local_only}, + {"select multiple",select_multiple}, + {"show hidden",show_hidden}, + {"do overwrite confirmation",do_overwrite_confirmation}}) + + for i = 1 to length(filters) do + set(dlg,"add filter",generate_filter(filters[i])) + end for + + if show_preview = TRUE then + atom preview = create(GtkImage) + set(dlg,"preview widget",preview) + connect(dlg,"update-preview",update_preview,preview) + end if + + if atom(data) and data > 0 then + set(dlg,"current name",unpack(data)) + elsif string(data) then + set(dlg,"current name",data) + end if + + result = get(dlg,"run") + + if result = MB_OK then + result = get(dlg,"filename") + end if + + destroy(dlg) + +return result +end function +export constant save_as = call_back(routine_id("SaveAs")) + +--------------------------------------------------------------- +export function CreateFolder(object data=0, object x=0) +--------------------------------------------------------------- +object result=0 +atom dlg = create(GtkFileChooserDialog) + +set(dlg,{ + {"name=NewFolder"}, + {"title","Create a new folder"}, + {"action",GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER}, + + {"add button","gtk-cancel",MB_CANCEL}, + {"add button","gtk-ok",MB_OK}, + {"create folders",create_folders}, + {"local only",local_only}, + {"select multiple",select_multiple}, + {"show hidden",show_hidden}, + {"do overwrite confirmation",do_overwrite_confirmation}}) + + for i = 1 to length(filters) do + set(dlg,"add filter",generate_filter(filters[i])) + end for + + if show_preview = TRUE then + atom preview = create(GtkImage) + set(dlg,"preview widget",preview) + connect(dlg,"update-preview",update_preview,preview) + end if + + if atom(data) and data > 0 then + set(dlg,"current name",unpack(data)) + end if + + result = get(dlg,"run") + + if result = MB_OK then + result = get(dlg,"filename") + end if + +destroy(dlg) + +return result +end function +export constant create_folder = call_back(routine_id("CreateFolder")) + +--------------------------------------------------------------- +export function SelectFolder(object data=0, object x=0) +--------------------------------------------------------------- +object result=0 +atom dlg = create(GtkFileChooserDialog) + +set(dlg,{ + {"name","SelectFolder"}, + {"title","Select a folder"}, + {"action",GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER}, + + {"add button","gtk-cancel",MB_CANCEL}, + {"add button","gtk-ok",MB_OK}, + {"create folders",create_folders}, + {"local only",local_only}, + {"select multiple",select_multiple}, + {"show hidden",show_hidden}, + {"do overwrite confirmation",do_overwrite_confirmation}}) + + for i = 1 to length(filters) do + set(dlg,"add filter",generate_filter(filters[i])) + end for + + if show_preview = TRUE then + atom preview = create(GtkImage) + set(dlg,"preview widget",preview) + connect(dlg,"update-preview",update_preview,preview) + end if + + if atom(data) and data > 0 then + data = unpack(data) + if string(data) then + if file_exists(canonical_path(data)) then + set(dlg,"filename",canonical_path(data)) + else + set(dlg,"filename",data) + end if + end if + end if + +result = get(dlg,"run") + +if result = MB_OK then + result = get(dlg,"filename") +end if + +destroy(dlg) + +return result +end function +export constant select_folder = call_back(routine_id("SelectFolder")) + +------------------------------------------------------------------------------ +function UpdatePreview(atom dlg, atom preview) -- local: follow focus changes; +------------------------------------------------------------------------------ +object pix +atom ratio +object dimensions +object fn = get(dlg,"filename") + +if string(fn) then -- avoid trying to preview a directory! + pix = create(GdkPixbuf,fn) + if pix > 0 then + dimensions = get(pix,"size") + ratio = preview_max / dimensions[1] + dimensions *= {ratio,ratio} + pix = get(pix,"scale simple",dimensions[1],dimensions[2],1) + set(preview,"from pixbuf",pix) + end if +end if + +return 0 +end function + diff --git a/eugtk/examples/GtkFontSelector.e b/eugtk/examples/GtkFontSelector.e new file mode 100644 index 0000000..dc5165f --- /dev/null +++ b/eugtk/examples/GtkFontSelector.e @@ -0,0 +1,154 @@ + +---------------------- +namespace fontselector -- Generic font selector dialog +---------------------- + +--# EXPORTS +/* + -- functions -- callbacks + fontselector:Select() fontselector:select + fontselector:FilterFonts() fontselector:filter + +-- fontlist +*/ + +include GtkEngine.e +include GtkCairo.e +include std/wildcard.e +include std/hash.e + +export constant version = "4.12.0" + +if not equal(version,gtk:version) then + Error(,,"GtkFontSelector version mismatch","should be version " & gtk:version) +end if + +-- Optional parameter is preferred (default) font, the one to be +-- returned if the font dialog ok button is clicked without choosing +-- a different font. You can just specify a size here: "8" and that +-- will set only the dialog's size selector. +-- +-- You can specify a full font name and size: e.g. Purisa bold 16, +-- and that font will be the one highlighted for selection. +-- If you specify a font that doesn't exist: e.g. Bogus italic 18, +-- and then use the returned font, GTK will do the best it can, +-- which will be to set the existing font to italic in 18pt. +-- Fairly fail-safe, in other words. +-- +-- Setting this does not filter the list of fonts shown by the dialog. +-- to do this, you need to set the pattern. See below. +-- +-- To exclude unwanted (and unreadable) fonts, such as symbols and +-- dingbats, add them to the exclude sequence. See below. +-- +-- pattern can be set prior to the select() call +-- pattern can be an array of font names, wildcards are ok +-- e.g. {"Courier*","purisa"} +-- if you use, for example, just {"Courier"}, without the wildcard, +-- no fonts will be found. +-- +-- {"sans"}, {"*sans"}, or {"*sans*"} will each return a different +-- set of matching font names! trial and error may be required. +-- +-- if pattern is left unset, ALL fonts will be shown! + +export atom dlg = create(GtkFontChooserDialog,"name=FontSelector") + +export object + name = 0, -- font name + title = "Choose a font", -- dialog title + preview_text = "This is an EuGTK font selector", + description = 0, -- a PangoFontDescription + family = 0, -- font family + style = 0, -- normal, oblique, italic + variant = 0, + weight = PANGO_WEIGHT_NORMAL, + mono_filter = 0, + font_list = {} + +export atom size = 12*1024 +export integer points = 12 +export sequence pattern = {"*"} + +export sequence exclude = {"*symbol*","*dingbat*","*webdings","*wingdings*"} +-- above list filters out unusable fonts; + +------------------------------------------------------------------------ +export function Select(object curr_fnt=0) +------------------------------------------------------------------------ + set(dlg,"title","Select a font") + set(dlg,"preview text",preview_text) + if string(curr_fnt) then + set(dlg,"font",curr_fnt) + end if + pattern = lower(pattern) + exclude = lower(exclude) + + set(dlg,"filter func",filter) + + if get(dlg,"run") then + name = get(dlg,"font") + description = create(PangoFontDescription,name) + family = get(description,"family") + size = get(description,"size") + points = math:round(size/PANGO_UNIT) + variant = get(description,"variant") + style = get(description,"style") + weight = get(description,"weight") + end if + + hide(dlg) -- we keep it around, since it's likely to be used again :p + +return name +end function +export constant select = call_back(routine_id("Select")) + +------------------------------------------------------------------------ +export function FilterFonts(object family, object face, object data) +------------------------------------------------------------------------ +integer result = 0 + +if mono_filter then + if gtk_func("pango_font_family_is_monospace",{P},{family}) = FALSE then + return 0 + end if +end if + +object name = lower(gtk_str_func("pango_font_family_get_name",{P},{family})) + for i = 1 to length(pattern) do + result = is_match(pattern[i],name) > 0 + if result = 1 then + for x = 1 to length(exclude) do + if is_match(exclude[x],name) then + return 0 + end if + end for + end if + return result + end for +return result +end function +export constant filter = call_back(routine_id("FilterFonts")) + +sequence weight_names = +{"thin","ultralight","light","book","normal","medium", +"semibold","bold","ultrabold","heavy","ultraheavy"} + +/* -- reference; + PANGO_WEIGHT_THIN = 100, + PANGO_WEIGHT_ULTRALIGHT = 200, + PANGO_WEIGHT_LIGHT = 300, + PANGO_WEIGHT_BOOK = 380, + PANGO_WEIGHT_NORMAL = 400, + PANGO_WEIGHT_MEDIUM = 500, + PANGO_WEIGHT_SEMIBOLD = 600, + PANGO_WEIGHT_BOLD = 700, + PANGO_WEIGHT_ULTRABOLD = 800, + PANGO_WEIGHT_HEAVY = 900, + PANGO_WEIGHT_ULTRAHEAVY = 1000, + PANGO_UNIT = 1024 + + PANGO_STYLE_NORMAL = 0, + PANGO_STYLE_OBLIQUE = 1, + PANGO_STYLE_ITALIC = 2 +*/ diff --git a/eugtk/examples/GtkPrinter.e b/eugtk/examples/GtkPrinter.e new file mode 100644 index 0000000..972a083 --- /dev/null +++ b/eugtk/examples/GtkPrinter.e @@ -0,0 +1,567 @@ + +-------------------- +namespace printer -- Utility to make printing easier +-------------------- + +export constant version = "4.12.0" + + -- EXPORTS: + -- functions callbacks + -- printer:PrintFile() printer:print_file + -- printer:PrintText() printer:print_text + +-- This version handles most common printing needs, but it will not yet respect +-- 'marked up' a.k.a. 'rich' text, i.e. text with colors and styles as produced +-- by GTK3's TextView widget. It just prints them as plain text. +-- +-- However, it DOES print text marked up with GTK's HTML subset, so you can use +-- , , , , ... etc. in your printouts! This includes various +-- imbedded font styles and colors. +-- +-- More documentation is found in ~/documentation/printing.html + +include GtkEngine.e +include GtkCairo.e +include std/datetime.e + +if not equal(version,gtk:version) then + Error(,,"GtkPrinter version mismatch","should be version " & gtk:version) +end if + +-- The following exported variables can be modified before calling the +-- print routine: + +public object header = "[1]\n" -- default is just the page title + +public object subheader = "[1] page [5]\n\n" -- format for headers on pg.2 ... n +-- default subheader (above) prints page title and pg #; + +public object footer = "\nPrinted by EuGTK [8] on [9]'s computer" +-- default footer (above) prints date and user name; + +-- Info ID's for use in header and footer; +-- 1 = page title (for first page) +-- 2 = sub title (for subsequent pages - leave null to use page title (1) on all pgs) +-- 3 = file name +-- 4 = short name (file name w/o path) +-- 5 = current page number +-- 6 = n_pages printed e.g. pg 1 of n +-- 7 = n_copies requested +-- 8 = today's date in date_format +-- 9 = user name +--10 = user's real name +--11 = font name used for this print job +--12 = file length in bytes +--13 = file timestamp +--14 = exported filename, if any + +export integer + n_pages = 0, -- number of pages to print (0=all) + n_copies = 1, + collate = FALSE, + duplex = 0, + number_up = 1, + number_up_layout = 1, + units = GTK_UNIT_INCH, + use_line_numbers = TRUE, + use_color = TRUE, -- print eu comments in red if true + lines_per_page = 60, + wrap_at = 0, + track_status = TRUE, + show_progress = TRUE, -- enable the built-in progressbar + embed_page_setup = TRUE, + orientation = 0, + order = 0, + confirm = FALSE, + sourcecode = TRUE, + plaintext = FALSE, + use_full_page = FALSE, -- ignore margins + has_selection = FALSE, + support_selection = FALSE, + quality = GTK_PRINT_QUALITY_DRAFT, + action = GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, + auto_lpp = TRUE + +export atom + scale = 100, + top_margin = 0.25, -- in inch units + left_margin = 0.25, + right_margin = 0.25, + bottom_margin = 0.25, + parent = 0, + + signal_status_changed = call_back(routine_id("show_status")), + signal_begin_print = call_back(routine_id("begin_print")), + signal_draw_page = call_back(routine_id("draw_page")), + signal_end_print = call_back(routine_id("end_print")), + signal_request_page_setup = 0, + signal_done = 0, + signal_ready = 0, + signal_got_page_size = 0 + +export object + name = 0, + font = "Ubuntu Mono 8", + jobname = 0, + settings_file = 0, + setup_file = 0, + export_file = 0, + page_ranges = 0, + page_set = GTK_PAGE_SET_ALL, + custom_tab_hook = 0, + custom_tab_label = 0, + custom_tab_func = 0 + +ifdef WINDOWS then font = "Courier New 16" end ifdef + +export object + line_number_format = "[:4] []\n", -- controls line # format AND code line! + paper_name = "na_letter", -- 8.5x11.0" + tabs = " ", -- replace tab chars with 8 spaces + file_name = 0, + short_name = 0, + page_title = 0, + sub_title = 0 + +export atom + progress = create(GtkProgressBar), + settings = create(GtkPrintSettings) + +-- use date and time formats in std/datetime.e; +export sequence date_format = "%A, %B %d %Y %l:%M %p" + +sequence user +ifdef WINDOWS then + user = "User" +elsedef + user = proper(getenv("USER")) +end ifdef + +-- for local use; +atom fontdesc +integer filesize = 0 +object timestamp = 0 +sequence text +sequence today = datetime:format(datetime:now(),date_format) + +export procedure reset() + n_pages = 0 + n_copies = 1 + collate = FALSE + duplex = 0 + number_up = 1 + number_up_layout = 1 + units = GTK_UNIT_INCH + use_line_numbers = TRUE + use_color = TRUE + lines_per_page = 60 + wrap_at = 0 + track_status = TRUE + show_progress = TRUE + embed_page_setup = TRUE + orientation = 0 + order = 0 + confirm = FALSE + sourcecode = TRUE + plaintext = FALSE + use_full_page = FALSE + has_selection = FALSE + support_selection = FALSE + quality = GTK_PRINT_QUALITY_DRAFT + action = GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG + auto_lpp = TRUE + + scale = 100 + top_margin = 0.25 + left_margin = 0.25 + right_margin = 0.25 + bottom_margin = 0.25 + parent = 0 + + name = 0 + paper_name = "na_letter" + font = "Ubuntu Mono 8" + jobname = 0 + settings_file = 0 + setup_file = 0 + export_file = 0 + page_ranges = 0 + page_set = GTK_PAGE_SET_ALL + custom_tab_hook = 0 + custom_tab_label = 0 + custom_tab_func = 0 + +end procedure + +------------------------------------------------------------------------ +export function PrintFile(object f=0, object x=0) +------------------------------------------------------------------------ + +if string(f) and string(x) then + page_title = f + file_name = canonical_path(x) + timestamp = file_timestamp(file_name) + filesize = file_length(file_name) + short_name = filebase(file_name) + text = read_file(file_name) + setup_printer() + return 1 +end if + +if string(f) and atom(x) and x = 0 then + f = canonical_path(f) + file_name = f + timestamp = file_timestamp(f) + filesize = file_length(f) + short_name = filebase(f) + page_title = filename(f) + text = read_file(f) + setup_printer() + return 1 +end if + +if string(f) and atom(x) and x < 100 then + page_title = f + short_name = f + file_name = f + text = read_file(x) + setup_printer() + return 1 +end if + +if atom(f) and atom(x) and x < 101 then + if atom(file_name) then + file_name = "" + end if + if atom(short_name) then + short_name = "" + end if + if atom(page_title) then + page_title = "" + end if + text = read_file(x) + setup_printer() + return 1 +end if + +if atom(f) and atom(x) then + x = unpack(x) + x = canonical_path(x) + file_name = x + short_name = filebase(x) + page_title = filename(x) + text = read_file(x) + setup_printer() + return 1 +end if + +return 1 +end function +export constant print_file = call_back(routine_id("PrintFile")) + +------------------------------------------------------------------------ +export function PrintText(object f=0, object x=0) +------------------------------------------------------------------------ + +if string(f) and string(x) then + page_title = f + text = x + setup_printer() + return 1 +end if + +if atom(f) and string(x) then + setup_printer() + text = x + return 1 +end if + +if atom(f) and atom(x) then + if atom(page_title) and page_title = 0 then + page_title = "" + end if + text = unpack(x) + setup_printer() + return 1 +end if + +return 0 +end function +export constant print_text = call_back(routine_id("PrintText")) + +integer status_code +sequence status_string + +----------------------------------------------- +export function show_status(atom op) +----------------------------------------------- +atom + fn1 = define_func("gtk_print_operation_get_status",{P},I), + fn2 = define_func("gtk_print_operation_get_status_string",{P},S) + +status_code = c_func(fn1,{op}) +status_string = peek_string(c_func(fn2,{op})) + +ifdef PRINT then display("Status [] []",{status_code,status_string}) end ifdef + +if show_progress then + set(progress,"text",status_string) +end if + +ifdef DELAY then sleep(0.15) end ifdef + +return 1 +end function + +------------------------------------------------------ +export function begin_print(atom op, atom context) +------------------------------------------------------ +ifdef PRINT then display("Begin printing [] pages ",length(text)) end ifdef + +fontdesc = create(PangoFontDescription,font) + +if auto_lpp then +atom setup = get(op,"default page setup") + atom pght = get(setup,"page height",GTK_UNIT_POINTS) + --display("Page height [] pt.",pght) + pght -= length(header) + pght -= length(footer) + atom fs = get(fontdesc,"size") / 1024 + --display("Font size []",fs) + fs = fs * (96/72) + integer lpp = 1 + while ((fs*lpp)) < pght do + lpp += 1 + --display("Text height [] lpp []",{(fs*lpp),lpp}) + end while + --display("New LPP []",lpp-1) + lines_per_page = lpp +end if + +text = process_text(text) + +set(op,"n pages",n_pages) + +-- important, as a new value for n_pages is computed +-- based on the length of the file being read, unless a set number +-- has been provided from the calling program. + +if show_progress then -- turn on the progress dialog in the calling program + show_all(progress) +end if + +return 1 +end function + +---------------------------------------------------------------------------- +export function draw_page(atom op, atom context, integer pg, atom data) +---------------------------------------------------------------------------- +atom fn6 = define_func("gtk_print_context_get_cairo_context",{P},P) + +atom cr = c_func(fn6,{context}) +atom pl = create(PangoCairoLayout,cr) + set(pl,"font description",fontdesc) + +pg += 1 +if pg > length(text) then + set(progress,"text","Printing complete") + return 0 +end if + +if show_progress then + set(progress,"text",sprintf("Printing page %d",pg)) + set(progress,"fraction",pg/n_pages) +end if + +ifdef DELAY then sleep(0.25) end ifdef + +object details = { + page_title,sub_title,file_name,short_name, + pg,n_pages,n_copies, + today,user,real_name,font,filesize,timestamp,export_file + } + +object page + +if atom(header) then header = "[1] page [5] of [6]\n\n" end if + +if pg = 1 or atom(subheader) then + page = text:format(header,details) + & flatten(text[pg]) + & text:format(footer,details) +else + page = text:format(subheader,details) + & flatten(text[pg]) + & text:format(footer,details) +end if + +if plaintext then + set(pl,"text",page,length(page)) +else + set(pl,"markup",page,length(page)) +end if + + set(pl,"update layout",cr) + set(pl,"show layout",cr) + +ifdef PRINT then printf(1,"Page %d\n",pg) end ifdef + +return 1 +end function + +------------------------------------------------------------------------ +function process_text(object txt) +------------------------------------------------------------------------ +txt = split(txt,'\n') +integer comment, n +object a,b +object test + + +for i = 1 to length(txt) do -- replace chars which will confuse markup + + txt[i] = join(split(txt[i],'&'),"&") + txt[i] = join(split(txt[i],"&amp;"),"&") + + if sourcecode then + txt[i] = join(split(txt[i],'<'),"<") + txt[i] = join(split(txt[i],'>'),">") + end if + + if use_color then + if match("--",txt[i]) then -- a comment; + txt[i] = split(txt[i],"--") + txt[i] = txt[i][1] & "-- " & txt[i][2] & "" + end if + end if + + if use_line_numbers then + txt[i] = text:format(line_number_format,{i,txt[i]}) + else + txt[i] &= '\n' + end if + +end for + +txt = breakup(txt,lines_per_page) + +if n_pages = 0 then -- no selection + n_pages = length(txt) +end if + +return txt +end function + +------------------------------------------------------------------------ +export function end_print() +------------------------------------------------------------------------ +status_string = "Printing complete" +ifdef PRINT then display(status_string) end ifdef +return 1 +end function + +--------------------------------------------------------------- +export function setup_printer() +--------------------------------------------------------------- +atom _size = create(GtkPaperSize,paper_name) +atom err = allocate(16) err = 0 +object results = 0 + +atom fn7 = define_func("gtk_print_operation_run",{P,I,P,P},I) +atom fn8 = define_func("gtk_print_run_page_setup_dialog",{P,P,P},P) + + set(settings,"paper size",_size,units) + set(settings,"n copies",n_copies) + set(settings,"collate",collate) + set(settings,"duplex",duplex) + set(settings,"reverse",order) + set(settings,"scale",scale) + set(settings,"quality",quality) + set(settings,"number up",number_up) + set(settings,"number up layout",number_up_layout) + + if string(name) then + set(settings,"printer",name) + end if + +atom setup = create(GtkPageSetup) + set(setup,"paper size",_size) + set(setup,"orientation",orientation) + set(setup,"left margin",left_margin,units) + set(setup,"right margin",right_margin,units) + set(setup,"top margin",top_margin,units) + set(setup,"bottom margin",bottom_margin,units) + +atom printop = create(GtkPrintOperation) + set(printop,"print settings",settings) + set(printop,"default page setup",setup) + set(printop,"show progress",show_progress) + set(printop,"track print status",track_status) + set(printop,"embed page setup",embed_page_setup) + set(printop,"support selection",support_selection) + set(printop,"has selection",has_selection) + set(printop,"use full page",use_full_page) + + if action = GTK_PRINT_OPERATION_ACTION_EXPORT then + export_file = canonical_path(export_file) + set(printop,"export filename",export_file) + end if + + if string(jobname) then + set(printop,"job name",jobname) + end if + + if custom_tab_hook != 0 then + set(printop,"custom tab label",custom_tab_label) + connect(printop,"create-custom-widget",custom_tab_func,printop) + connect(printop,"custom-widget-apply",custom_tab_hook) + end if + + connect(printop,"status-changed",signal_status_changed) + connect(printop,"begin-print",signal_begin_print) + connect(printop,"draw-page",signal_draw_page) + connect(printop,"end-print",signal_end_print) + connect(printop,"request-page-setup",signal_request_page_setup) + connect(printop,"done",signal_done) + connect(printop,"ready",signal_ready) + connect(printop,"got-page-size",signal_got_page_size) + + display(get(settings,"printer lpi")) + + c_func(fn7,{printop,action,parent,err}) -- start the print process; + + if string(setup_file) and file_exists(canonical_path(setup_file)) then + get(setup,"to file",canonical_path(setup_file)) + end if + +object jobname = get(printop,"job name") + if confirm then + if action = GTK_PRINT_OPERATION_ACTION_EXPORT then + if Question(0,"PDF Written", + sprintf("%s\nFolder: %s", + {filename(export_file),pathname(export_file)}), + sprintf("%s\nStatus: %d\n%s\nClick Yes to view",{jobname,status_code,status_string}) + ,,,"printer") then + show_uri(export_file) + end if + else + Info(0,"Print Job",jobname, + sprintf("Status: %d %s",{status_code,status_string}) + ,,"printer") + end if + end if + + page_title = 0 + n_pages = 0 + n_copies = 1 + action = GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG + +return 1 +end function + +header = "[1]\n\n" + +----------------------------- +-- copyright 2015 Irv Mullins +----------------------------- + diff --git a/eugtk/examples/GtkSettings.e b/eugtk/examples/GtkSettings.e new file mode 100644 index 0000000..033a31e --- /dev/null +++ b/eugtk/examples/GtkSettings.e @@ -0,0 +1,305 @@ + +--------------------- +namespace settings -- functions to read and write config files (*.ini); +--------------------- + +export constant version = "4.12.0" + +--# EXPORTS +/* + --functions: + settings:Save() + settings:Load() + settings:Add() + + -- debug: + -d SETTINGS +*/ + +include GtkEngine.e + +if not equal(version,gtk:version) then + Error(,,"GtkSettings version mismatch","should be version " & gtk:version) +end if + +constant fmt = """[].[]=[]""" + +------------------------------------------------------------------------ +export function Save(sequence inifile, object ctl_list, integer debug=0) +------------------------------------------------------------------------ +-- writes an 'ini' type file (file name and extension are up to you) +-- with an entry for each control on ctl_list. The controls MUST have +-- been named, otherwise there's no way to save and retrieve the +-- value/setting for that control. +------------------------------------------------------------------------ +object comments = {} +object txt,line + +if file_exists(inifile) then + + txt = read_lines(inifile) + for i = 1 to length(txt) do -- extract the comments; + line = txt[i] + if match("--",line) = 1 + or match("!",line) = 1 + or match("+",line) = 1 + or equal("\n",line) + or equal({},line) then + comments = append(comments,line) + end if + end for + write_lines(inifile,comments) -- removing everything but the comments; +end if -- file exists + +object setting, tmp = 0, pos = {0,0} +object t1, name, prop +atom handle +integer class + +atom fn = open(inifile,"a") + +for x = 1 to length(ctl_list) do + + if string(ctl_list[x]) then + handle = pointer(ctl_list[x]) + else + handle = ctl_list[x] + end if + + name = get(handle,"name") + class = class_id(handle) + + if class=GtkWindow then -- special handling for multiple properties; + printf(fn,"%s\n",{get_setting(handle,"size")}) + pos = get(handle,"position") + printf(fn,"%s.position={%d,%d}\n",{name,pos[1],pos[2]}) + + else + setting = get_setting(handle) -- others have 1 obvious 'saveable' property + if length(setting) < 1 then + continue + end if + + if sequence(setting) then + printf(fn,"%s\n",{setting}) + end if + end if +end for + +flush(fn) +close(fn) + +-- if ! exists for this control:property, then ignore the updated setting; +tmp = read_lines(inifile) +for i = 1 to length(tmp) do + if match("--!",tmp[i]) = 1 then + t1 = split(tmp[i],"=") + t1 = t1[1][2..$] + end if +end for + +write_lines(inifile,tmp) + +return 1 +end function + +------------------------------------------------------------------------ +export function Load(sequence inifile, integer debug=0) +------------------------------------------------------------------------ +-- used to restore settings from the specified ini file. +-- this should be called after the controls are 'realized' + +object txt, line, obj, prop, val1=0, val2=0, val3=0, val4=0 + +if not(file_exists(inifile)) then + write_file(inifile,sprintf("--%s\n\n",{inifile}),TEXT_MODE) + display("Creating ini file: []",{inifile}) +else + if debug then display("Reading []",{inifile}) end if +end if + +txt = read_lines(inifile) + +integer err=0 +object a,b + +for i = 1 to length(txt) do + + line = txt[i] + + if match("--",line) > 2 then -- strip trailing comments; + line = line[1..match("--",line)-2] + end if + + if match("--!",line) = 1 then + line = line[4..$] -- keep it + end if + + if match("+",line) = 1 or match("!",line) then + line = line[2..$] -- dito + end if + + if match("--",line) or match(";",line) + or match("/*",line) then + continue -- a comment, do nothing with it + end if + + if length(line) > 0 then + line = split(line,'=') + a = line[1] b = line[2] + a = split(a,'.') + line = a & {b} + + if debug > 1 then display(line) end if + + if vlookup(line[1],registry,4,1,-1) = -1 then + err = i + Error(,"Ini Load Error", + sprintf("Invalid object name: %s",{line[1]}), + sprintf("Line #%d of %s",{i,filename(inifile)})) + else + if equal("data",line[2]) then + set(line[1],"data",line[3],line[4]) + else + set(line[1],line[2],line[3]) + end if + end if + end if +end for + +if debug = 1 then + for i = 1 to length(txt) do + if i = err then + display("ERROR:[:3]:[]",{i,txt[i]}) + else + display("[:3]:[]",{i,txt[i]}) + end if + end for +end if + +write_lines(inifile,txt) + +return 1 +end function + +------------------------------------------------------------------------------------------- +export function Add(object ini,object ctl, sequence prop, object v1=0, object v2=0) +------------------------------------------------------------------------------------------- +if atom(ctl) then ctl = get(ctl,"name") end if + +Delete(ini,ctl,prop) + +if equal("position",prop) or equal("size",prop) then +if string(v1) then v2 = v1[2] v1 = v1[1] end if +end if + +if atom(v2) and v2=0 then + writefln("+[].[]=[]",{ctl,prop,v1},{ini,"a"}) +else + writefln("+[].[]={[],[]}",{ctl,prop,v1,v2},{ini,"a"}) +end if + +return 1 +end function + +-------------------------------------------------------------------- +export function Delete(object ini,object ctl, sequence prop) +-------------------------------------------------------------------- +if atom(ctl) then ctl = get(ctl,"name") end if +object tmp = read_lines(ini) +object out = {} +object s1 = text:format("[].[]",{ctl,prop}) +for i = 1 to length(tmp) do + if match(s1,tmp[i]) then -- skip + else out &= {tmp[i]} + end if +end for +write_lines(ini,out) +return 1 +end function + +--------------------------------------------------------------------------------- +function get_setting(object self, object property = 0) +-- returns the 'important' value from a control +--------------------------------------------------------------------------------- +-- returns settings string +-- object must be a named object, e.g. MyButton + +-- MyButton.active=1 +-- My Calendar.date={YYYY,MM,DD} + +object name = 0 +object dt + +if string(self) then + name = self + self = vlookup(self,registry,4,1) +end if + +object val = 0 +object txt = {} + +integer x = find(self,vslice(registry,1)) + + ifdef SETTINGS then + display("SELF [] []",{x,self}) + display(registry[x]) + end ifdef + + switch class_id(self) do + -- this decides which value is the important one to save; + -- and stores the control's current value into the registry; + + case GtkEntry,GtkEntryBuffer then property = "text" + + case GtkCheckButton,GtkRadioButton, GtkToggleButton, + GtkSwitch,GtkComboBox,GtkComboBoxText, + GtkCheckMenuItem,GtkToggleToolButton, GtkSearchEntry + then property = "active" + + case GtkPopover then property = "position" + + case GtkFontButton then property = "font name" + + case GtkAdjustment,GtkSpinButton,GtkScaleButton,GtkVolumeButton, + GtkModelButton,GtkScale + then property = "value" + + case GtkEntryCompletion then property = "model" + + case GtkLinkButton then property = "uri" + + case GtkMenuItem then property = "sensitive" + + case GtkPaned then property = "position" + + case GtkFileChooser, GtkFileChooserButton, GtkFileChooserWidget, GtkFileChooserDialog + then property = "filename" + + case GtkFontChooser, GtkFontChooserWidget, GtkFontChooserDialog then + property = "font" + + case GtkCalendar then + dt = get(self,"datetime",0) + registry[x][5] = {"date",dt[1..3]} + txt &= text:format(fmt,{registry[x][4],"date",dt[1..3]}) + return txt + + case GtkColorButton,GtkColorChooser,GtkColorChooserWidget, + GtkColorChooserDialog then + registry[x][5] = {"rgba",get(self,"rgba",1)} + txt &= text:format(fmt,{registry[x][4],"rgba",get(self,"rgba",1)}) + return txt + + end switch + + if atom(property) then + return txt + end if + + val = get(self,property) + registry[x][5] = {property,val} + txt &= text:format(fmt,{registry[x][4],property,val}) + +return txt +end function diff --git a/eugtk/examples/GtkSourceView.plugin b/eugtk/examples/GtkSourceView.plugin new file mode 100644 index 0000000..9e7bb40 --- /dev/null +++ b/eugtk/examples/GtkSourceView.plugin @@ -0,0 +1,741 @@ + +--------------- +namespace sv -- "Plug-in" for GtkSourceView +--------------- + +------------------------------------------------------------------------- +-- A plug-in appends new widgets to the widget array, adding functions +-- and an additional library file without changing GtkEngine.e source. +-- This needed to be implemented as a plug-in because the SourceView +-- library is shipped separately from libgtk3. + +-- Many more functions remain to be added, including style selections, +-- printing options, etc. -- +------------------------------------------------------------------------- +include GtkEngine.e + +export constant version = "4.12.0" + +if not equal(version,gtk:version) then + Error(,,"GtkSourceView.plugin version mismatch","should be version " & gtk:version) +end if + +ifdef WINDOWS then +export constant svdll = "libgtksourceview-3.0-1.dll" +elsedef +export constant svdll = "libgtksourceview-3.0.so.1" +end ifdef + +export atom LIBSV = open_dll(svdll) +if LIBSV = 0 then + Error(,,"No libgtksourceview found!", + "If you're sure you have one, set the library\nname at the top of GtkSourceView.plugin", + GTK_BUTTONS_OK) + crash("No libgtksourceview found!") +end if + +ifdef SV then display("SOURCEVIEW:[]",{svdll}) end ifdef + +LIBS = append(LIBS,LIBSV) + +widget = append(widget, {"gtk_source_mark", +{GtkTextMark,GObject}, + {"new",{S,S},P}, + {"get_category",{P},S}, + {"next",{P,S},P,0,length(widget)}, + {"prev",{P,S},P,0,length(widget)}, +"GtkSourceMark"}) +export constant GtkSourceMark = length(widget) + +widget = append(widget, {"gtk_source_undo_manager", +{}, + {"can_undo",{P},B}, + {"can_redo",{P},B}, + {"undo",{P}}, + {"redo",{P}}, + {"begin_not_undoable_action",{P}}, + {"end_not_undoable_action",{P}}, + {"can_undo_changed",{P}}, + {"can_redo_changed",{P}}, +"GtkSourceUndoManager"}) +export constant GtkSourceUndoManager = length(widget) + +widget = append(widget, {"gtk_source_tag_style", +{GObject}, + {"new",{},P}, + {"copy",{P},P}, + {"free",{P}}, +"GtkSourceTagStyle"}) +export constant GtkSourceTagStyle = length(widget) + +widget = append(widget, {"gtk_source_style_scheme", +{GObject}, + {"get_id",{P},S}, + {"get_name",{P},S}, + {"get_description",{P},S}, + {"get_authors",{P},A}, + {"get_filename",{P},S}, + {"get_style",{P,S},P}, +"GtkSourceStyleScheme"}) +export constant GtkSourceStyleScheme = length(widget) + +widget = append(widget, {"gtk_source_language", +{GObject}, + {"get_id",{P},S}, + {"get_name",{P},S}, + {"get_section",{P},S}, + {"get_hidden",{P},B}, + {"get_tags",{P},P}, + {"get_tag_style",{P,S},P,0,GtkSourceTagStyle}, + {"set_tag_style",{P,S,P}}, + {"get_tag_default_style",{P,S},P,0,GtkSourceTagStyle}, + {"get_escape_char",{P},S}, + {"get_metadata",{P,S},S}, + {"get_mime_types",{P},-routine_id("get_mime_types")}, + {"set_mime_types",{P,A}}, + {"get_globs",{P},P}, + {"get_style_name",{P,S},S}, + {"get_style_scheme",{P},P,0,GtkSourceStyleScheme}, + {"set_style_scheme",{P,P}}, + {"get_style_ids",{P},A}, + {"get_style_name",{P,S},S}, + {"get_style_fallback",{P,S},S}, +"GtkSourceLanguage"}) +export constant GtkSourceLanguage = length(widget) + + function get_mime_types(atom sl) + object mimetypes = {} + atom x = gtk_func("gtk_source_language_get_mime_types",{P},{sl}) + while peek4u(x) > 0 do + mimetypes &= peek_string(peek4u(x)) & " " + x += 4 + end while + return mimetypes + end function + +export constant GtkSourceMarker = length(widget)+1 +widget = append(widget, {"gtk_source_marker", +{GObject}, + {"set_marker_type",{P,S}}, + {"get_marker_type",{P},S}, + {"get_line",{P},I}, + {"get_name",{P},S}, + {"get_buffer",{P},P}, + {"next",{P},P,0,GtkSourceMarker}, + {"prev",{P},P,0,GtkSourceMarker}, +"GtkSourceMarker"}) + +widget = append(widget, {"gtk_source_buffer", +{GObject,GtkTextBuffer,GObject}, + {"new",{P},P}, + {"new_with_language",{P},P}, + {"get_check_brackets",{P},B}, + {"set_check_brackets",{P,B}}, + {"set_bracket_match_style",{P,P}}, + {"get_highlight",{P},B}, + {"set_highlight",{P,B}}, + {"set_highlight_syntax",{P,B}}, + {"get_highlight_syntax",{P},B}, + {"set_language",{P,P}}, + {"get_language",{P},P,0,GtkSourceLanguage}, + {"get_escape_char",{P},S}, + {"set_escape_char",{P,S}}, + {"set_highlight_matching_brackets",{P,B}}, + {"get_highlight_matching_brackets",{P},B}, + {"set_style_scheme",{P,P}}, + {"get_style_scheme",{P},P,0,GtkSourceStyleScheme}, + {"ensure_highlight",{P,P,P}}, + {"undo",{P}}, + {"redo",{P}}, + {"can_undo",{P},B}, + {"can_redo",{P},B}, + {"begin_not_undoable_action",{P}}, + {"end_not_undoable_action",{P}}, + {"get_max_undo_levels",{P},I}, + {"set_max_undo_levels",{P,I}}, + {"get_undo_manager",{P},P,0,GtkSourceUndoManager}, + {"set_undo_manager",{P,P}}, + {"iter_has_context_class",{P,P,S},B}, + {"get_context_classes_at_iter",{P,P,P},P}, + {"iter_forward_to_context_class_toggle",{P,P,S},B}, + {"iter_backward_to_context_class_toggle",{P,P,S},B}, + {"create_marker",{P,S,S,P},P,0,GtkSourceMarker}, + {"create_source_mark",{P,S,S,P},P,0,GtkSourceMark}, + {"move_marker",{P,P,P}}, + {"delete_marker",{P,P}}, + {"get_marker",{P,S},P,0,GtkSourceMarker}, + {"get_markers_in_region",{P,P,P},A}, + {"get_first_marker",{P},P,0,GtkSourceMarker}, + {"get_last_marker",{P},P,0,GtkSourceMarker}, + {"get_iter_at_marker",{P,P,P}}, + {"get_next_marker",{P,P},P,0,GtkSourceMarker}, + {"get_prev_marker",{P,P},P,0,GtkSourceMarker}, + {"forward_iter_to_source_mark",{P,P,S},B}, + {"backward_iter_to_source_mark",{P,P,S},B}, + {"get_source_marks_at_line",{P,I,S},P,0,GSList}, + {"get_source_marks_at_iter",{P,P,S},P,0,GSList}, + {"remove_source_marks",{P,P,P,S}}, + {"change_case",{P,I,P,P}}, + {"join_lines",{P,P,P}}, + {"sort_lines",{P,P,P,I,I}}, + {"set_implicit_trailing_newline",{P,B}}, + {"get_implicit_trailing_newline",{P},B}, +"GtkSourceBuffer"}) +export constant GtkSourceBuffer = length(widget) + +widget = append(widget, {"gtk_source_gutter_renderer", +{GObject}, + {"begin",{P,P,P,P,P,P}}, + {"draw",{P,P,P,P,P,P,I}}, + {"end",{P}}, + {"get_size",{P},I}, + {"set_size",{P,I}}, + {"set_visible",{P,B}}, + {"get_visible",{P},B}, + {"get_padding",{P,I,I}}, + {"set_padding",{P,I,I}}, + {"get_alignment",{P,F,F}}, + {"set_alignment",{P,F,F}}, + {"set_alignment_mode",{P,I}}, + {"get_window_type",{P},I}, + {"get_view",{P},P,0,GtkTextView}, + {"get_alignment_mode",{P},I}, + {"get_background",{P,P},B}, + {"set_background",{P,P}}, + {"activate",{P,P,P,P}}, + {"query_activatable",{P,P,P,P},B}, + {"queue_draw",{P}}, + {"query_tooltip",{P,P,P,I,I,P},B}, + {"query_data",{P,I,I,I}}, +"GtkSourceGutterRenderer"}) +export constant GtkSourceGutterRenderer = length(widget) + +widget = append(widget, {"gtk_source_gutter", +{GObject}, + {"get_window",{},P,0,GtkWindow}, + {"insert",{P,P,I},B}, -- 3.0 + {"reorder",{P,P,I}}, + {"remove",{P,P}}, + {"queue_redraw",{P}}, + {"get_padding",{P,I,I}}, + {"set_padding",{P,I,I}}, + {"get_renderer_at_pos",{P,I,I},P,0,GtkSourceGutterRenderer}, +"GtkSourceGutter"}) +export constant GtkSourceGutter = length(widget) + +widget = append(widget, {"gtk_source_view", +{GtkTextView,GtkContainer,GtkWidget,GtkBuildable,GtkScrollable,GObject}, + {"new",{},P}, + {"get_buffer",{P},-routine_id("getSVBuffer"),0,GtkSourceBuffer}, + {"set_show_line_numbers",{P,B}}, + {"get_show_line_numbers",{P},B}, + {"set_show_right_margin",{P,B}}, + {"get_show_right_margin",{P},B}, + {"set_right_margin_position",{P,I}}, + {"get_right_margin_position",{P},I}, + {"set_highlight_current_line",{P,B}}, + {"get_highlight_current_line",{P},B}, + {"set_auto_indent",{P,B}}, + {"get_auto_indent",{P},B}, + {"set_indent_on_tab",{P,B}}, + {"get_indent_on_tab",{P},B}, + {"set_tab_width",{P,I}}, + {"get_tab_width",{P},I}, + {"set_indent_width",{P,I}}, + {"get_indent_width",{P},I}, + {"set_insert_spaces_instead_of_tabs",{P,B}}, + {"get_insert_spaces_instead_of_tabs",{P},B}, + {"indent_lines",{P,P,P}}, + {"unindent_lines",{P,P,P}}, + {"get_visual_column",{P,P},I}, + {"set_smart_home_end",{P,I}}, + {"get_smart_home_end",{P},I}, + {"set_mark_attributes",{P,S,P,I}}, + {"get_mark_attributes",{P,S,I},P}, + {"set_show_line_marks",{P,B}}, + {"get_show_line_marks",{P},B}, + {"set_draw_spaces",{P,I}}, + {"get_draw_spaces",{P},I}, + {"get_completion",{P},P}, + {"get_gutter",{P,I},P,0,GtkSourceGutter}, + {"set_background_pattern",{P,I}}, -- 3.16 + {"get_background_pattern",{P},I}, -- 3.16 + {"set_smart_backspace",{P,B}}, -- 3.18 + {"get_smart_backspace",{P},B}, -- 3.18 +"GtkSourceView"}) +export constant GtkSourceView = length(widget) + + function getSVBuffer(atom sv) + return gtk_func("gtk_text_view_get_buffer",{P},{sv}) + end function + +widget = append(widget, {"gtk_source_map", -- 3.18 +{GtkSourceView,GtkTextView,GtkContainer,GtkWidget,GObject}, + {"new",{},P}, + {"set_view",{P,P}}, + {"get_view",{P},P,0,GtkSourceView}, +"GtkSourceMap"}) +export constant GtkSourceMap = length(widget) + +widget = append(widget, {"gtk_source_language_manager", +{GObject}, + {"new",{},P}, + {"get_default",{},P}, + {"set_search_path",{P,P}}, + {"get_search_path",{P},P}, + {"get_language_ids",{P},V}, + {"get_language",{P,P},P,0,GtkSourceLanguage}, + {"guess_language",{P,P,P},P,0,GtkSourceLanguage}, +"GtkSourceLanguageManager"}) +export constant GtkSourceLanguageManager = length(widget) + +widget = append(widget, {"gtk_source_languages_manager", +{GObject}, + {"new",{},P}, + {"get_available_languages",{P},A}, + {"get_language_from_mime_type",{P,S},P,0,GtkSourceLanguage}, + {"get_lang_files_dirs",{P},A}, +"GtkSourceLanguagesManager"}) +export constant GtkSourceLanguagesManager = length(widget) + +widget = append(widget, {"gtk_source_print_job", -- doesn't currently work! +{GObject}, + {"new",{P},P}, + {"set_buffer",{P,P}}, + {"get_buffer",{P},P,0,GtkSourceBuffer}, + {"set_config",{P,P}}, + {"get_config",{P},P}, + {"setup_from_view",{P,P}}, + {"set_tabs_width",{P,I}}, + {"get_tabs_width",{P},I}, + {"set_wrap_mode",{P,I}}, + {"get_wrap_mode",{P},I}, + {"set_highlight",{P,B}}, + {"get_highlight",{P},B}, + {"set_font_desc",{P,P}}, + {"set_font",{P,S}}, + {"get_font_desc",{P},P,0,PangoFontDescription}, + {"get_font",{P},S}, + {"set_numbers_font_desc",{P,P}}, + {"set_numbers_font",{P,S}}, + {"get_numbers_font_desc",{P},P,0,PangoFontDescription}, + {"get_numbers_font",{P},S}, + {"set_print_numbers",{P,I}}, + {"get_print_numbers",{P},I}, + {"set_text_margins",{P,D,D,D,D}}, + {"get_text_margins",{P,D,D,D,D}}, + {"print",{P},P}, + {"print_range",{P,P,P},P}, + {"print_range_async",{P,P,P},B}, + {"cancel",{P}}, + {"get_print_job",{P},P}, + {"get_page",{P},I}, + {"get_page_count",{P},I}, + {"get_print_context",{P},P}, + {"set_print_header",{P,B}}, + {"get_print_header",{P},B}, + {"set_print_footer",{P,B}}, + {"get_print_footer",{P},B}, + {"set_header_footer_font_desc",{P,P}}, + {"set_header_footer_font",{P,S}}, + {"get_header_footer_font_desc",{P},P,0,PangoFontDescription}, + {"get_header_footer_font",{P},S}, + {"set_header_format",{P,S,S,S,B}}, + {"set_footer_format",{P,S,S,S,B}}, +"GtkSourcePrintJob"}) +export constant GtkSourcePrintJob = length(widget) + +widget = append(widget, {"gtk_source_style", +{GObject}, + {"new",{},P}, + {"copy",{P},P}, +"GtkSourceStyle"}) +export constant GtkSourceStyle = length(widget) + +widget = append(widget, {"gtk_source_tag_table", +{GObject}, + {"new",{},P}, + {"add_tags",{P,P}}, + {"remove_source_tags",{P}}, +"GtkSourceTagTable"}) +export constant GtkSourceTagTable = length(widget) + +widget = append(widget,{"gtk_source_completion_item", +{GObject}, + {"new",{S,S,P,S},P}, + {"new_with_markup",{S,S,P,S},P}, +"GtkSourceCompletionItem"}) +export constant GtkSourceCompletionItem = length(widget) + +widget = append(widget, {"gtk_source_completion_context", +{GObject}, + {"add_proposals",{P,P,P,B}}, + {"get_iter",{P,P},B}, + {"get_activation",{P},I}, +"GtkSourceCompletionContext"}) +export constant GtkSourceCompletionContext = length(widget) + +widget = append(widget, {"gtk_source_completion_info", +{GtkWindow,GtkBin,GtkContainer,GtkWidget,GObject}, + {"new",{},P}, + {"move_to_iter",{P,P,P}}, + {"set_widget",{P,P}}, + {"get_widget",{P},P,0,GtkWidget}, +"GtkSourceCompletionInfo"}) +export constant GtkSourceCompletionInfo = length(widget) + +widget = append(widget, {"gtk_source_completion_proposal", +{}, + {"get_label",{P},S}, + {"get_markup",{P},S}, + {"get_text",{P},S}, + {"get_icon",{P},P,0,GdkPixbuf}, + {"get_icon_name",{P},S}, + {"get_gicon",{P},P,0,GIcon}, + {"get_info",{P},S}, + {"changed",{P}}, + {"hash",{P},I}, + {"equal",{P,P},B}, +"GtkSourceCompletionProposal"}) +export constant GtkSourceCompletionProposal = length(widget) + +widget = append(widget, {"gtk_source_completion_provider", +{}, + {"get_name",{P},S}, + {"get_icon",{P},P,0,GdkPixbuf}, + {"get_icon_name",{P},S}, + {"get_gicon",{P},P,0,GIcon}, + {"populate",{P,P}}, + {"get_activation",{P},I}, + {"match",{P,P},B}, + {"get_info_widget",{P,P},P,0,GtkWidget}, + {"update_info",{P,P,P}}, + {"get_start_iter",{P,P,P,P},B}, + {"activate_proposal",{P,P,P},B}, + {"get_interactive_delay",{P},I}, + {"get_priority",{P},I}, +"GtkSourceCompletionProvider"}) +export constant GtkSourceCompletionProvider = length(widget) + +widget = append(widget, {"gtk_source_completion_words", +{GObject}, + {"new",{S,P},P}, + {"register",{P,P}}, + {"unregister",{P,P}}, +"GtkSourceCompletionWords"}) +export constant GtkSourceCompletionWords = length(widget) + +widget = append(widget, {"gtk_source_completion", +{GObject}, + {"add_provider",{P,P,X},B}, + {"remove_provider",{P,P,X},B}, + {"get_providers",{P},P,0,GList}, + {"show",{P,P,P},B}, + {"hide",{P}}, + {"get_info_window",{P},P,0,GtkSourceCompletionInfo}, + {"get_view",{P},P,0,GtkSourceView}, + {"create_context",{P,P},P,0,GtkSourceCompletionContext}, + {"move_window",{P,P}}, + {"block_interactive",{P}}, + {"unblock_interactive",{P}}, +"GtkSourceCompletion"}) +export constant GtkSourceCompletion = length(widget) + +export constant GtkSourceEncoding = length(widget)+1 +widget = append(widget, {"gtk_source_encoding", +{}, + {"get_utf8",{},P}, + {"get_current",{},P,0,GtkSourceEncoding}, + {"get_from_charset",{S},P,0,GtkSourceEncoding}, + {"to_string",{P},S}, + {"get_name",{P},S}, + {"get_charset",{P,S}}, + {"get_all",{},P,0,GSList}, + {"get_default_candidates",{},P,0,GSList}, + {"copy",{P},P,0,GtkSourceEncoding}, + {"free",{P}}, +"GtkSourceEncoding"}) + +widget = append(widget, {"gtk_source_file", +{GObject}, + {"new",{},P}, + {"get_location",{P},P,0,GFile}, + {"set_location",{P,P}}, + {"get_encoding",{P},P,0,GtkSourceEncoding}, + {"get_newline_type",{P},I}, + {"get_compression_type",{P},I}, + {"check_file_on_disk",{P}}, + {"is_local",{P},B}, + {"is_externally_modified",{P},B}, + {"is_deleted",{P},B}, + {"is_readonly",{P},B}, + {"set_mount_operation_factory",{P,P,P,P}}, +"GtkSourceFile"}) +export constant GtkSourceFile = length(widget) + +widget = append(widget, {"gtk_source_file_loader", +{GObject}, + {"new",{P,P},P}, + {"set_candidate_encodings",{P,P}}, + {"get_buffer",{P},P,0,GtkSourceBuffer}, + {"get_file",{P},P,0,GtkSourceFile}, + {"get_location",{P},P,0,GFile}, + {"get_input_stream",{P},P,0,GInputStream}, + {"load_async",{P,I,P,P,P,P,P,P}}, + {"load_finish",{P,P,X},B}, + {"get_encoding",{P},P,0,GtkSourceEncoding}, + {"get_newline_type",{P},I}, + {"get_compression_type",{P},I}, +"GtkSourceFileLoader"}) +export constant GtkSourceFileLoader = length(widget) + +widget = append(widget, {"gtk_source_file_saver", +{GObject}, + {"new",{P,P},P}, + {"get_buffer",{P},P,0,GtkSourceBuffer}, + {"get_file",{P},P,0,GtkSourceFile}, + {"get_location",{P},P,0,GFile}, + {"set_encoding",{P,P}}, + {"get_encoding",{P},P,0,GtkSourceEncoding}, + {"set_newline_type",{P,I}}, + {"get_newline_type",{P},I}, + {"set_compression_type",{P,I}}, + {"get_compression_type",{P},I}, + {"set_flags",{P,I}}, + {"get_flags",{P},I}, + {"save_async",{P,I,P,P,P,P,P,P}}, + {"save_finish",{P,P,X},B}, +"GtkSourceFileSaver"}) +export constant GtkSourceFileSaver = length(widget) + +widget = append(widget, {"gtk_source_gutter_renderer_pixbuf", +{GtkSourceGutterRenderer,GObject}, + {"new",{},P}, + {"set_pixbuf",{P,P}}, + {"get_pixbuf",{P},P,0,GdkPixbuf}, + {"set_stock_id",{P,S}}, + {"get_stock_id",{P},S}, + {"set_gicon",{P,P}}, + {"get_gicon",{P},P,0,GIcon}, + {"set_icon_name",{P,S}}, + {"get_icon_name",{P},S}, +"GtkSourceGutterRendererPixbuf"}) +export constant GtkSourceGutterRendererPixbuf = length(widget) + +widget = append(widget, {"gtk_source_gutter_renderer_text", +{GtkSourceGutterRenderer,GObject}, + {"new",{},P}, + {"set_markup",{P,S,I}}, + {"set_text",{P,S,I}}, + {"measure",{P,S,I,I}}, + {"measure_markup",{P,S,I,I}}, +"GtkSourceGutterRendererText"}) +export constant GtkSourceGutterRendererText = length(widget) + +widget = append(widget, {"gtk_source_mark_attributes", +{GObject}, + {"new",{},P}, + {"set_background",{P,P}}, + {"get_background",{P,P},B}, + {"set_stock_id",{P,S}}, + {"get_stock_id",{P},S}, + {"set_icon_name",{P,S}}, + {"get_icon_name",{P},S}, + {"set_gicon",{P,P}}, + {"get_gicon",{P},0,P,GIcon}, + {"set_pixbuf",{P,P}}, + {"get_pixbuf",{P},P,0,GdkPixbuf}, + {"render_icon",{P,P,I},P,0,GdkPixbuf}, + {"get_tooltip_text",{P,P},S}, + {"get_tooltip_markup",{P,P},S}, +"GtkSourceMarkAttriebutes"}) +export constant GtkSourceMarkAttributes = length(widget) + +widget = append(widget, {"gtk_source_print_compositor", +{GObject}, + {"new",{},P}, + {"new_from_view",{P},P}, + {"get_buffer",{P},P,0,GtkSourceBuffer}, + {"set_tab_width",{P,I}}, + {"get_tab_width",{P},I}, + {"set_wrap_mode",{P,I}}, + {"get_wrap_mode",{P},I}, + {"set_highlight_syntax",{P,B}}, + {"get_highlight_syntax",{P},B}, + {"set_print_line_numbers",{P,B}}, + {"get_print_line_numbers",{P},B}, + {"set_body_font_name",{P,S}}, + {"get_body_font_name",{P},S}, + {"set_line_numbers_font_name",{P,S}}, + {"get_line_numbers_font_name",{P},S}, + {"set_header_font_name",{P,S}}, + {"get_header_font_name",{P},S}, + {"set_footer_font_name",{P,S}}, + {"get_footer_font_name",{P},S}, + {"get_top_margin",{P,I},D}, + {"set_top_margin",{P,D,I}}, + {"get_bottom_margin",{P,I},D}, + {"set_bottom_margin",{P,D,I}}, + {"get_left_margin",{P,I},D}, + {"set_left_margin",{P,D,I}}, + {"get_right_margin",{P,I},D}, + {"set_right_margin",{P,D,I}}, + {"set_print_header",{P,B}}, + {"get_print_header",{P},B}, + {"set_print_footer",{P,B}}, + {"get_print_footer",{P},B}, + {"set_header_format",{P,B,S,S,S}}, + {"set_footer_format",{P,B,S,S,S}}, + {"get_n_pages",{P},I}, + {"paginate",{P,P},B}, + {"get_pagination_progress",{P},D}, + {"draw_page",{P,P,I}}, +"GtkSourcePrintCompositor"}) +export constant GtkSourcePrintCompositor = length(widget) + +widget = append(widget, {"gtk_source_search_settings", +{GObject}, + {"new",{},P}, + {"get_search_text",{P},S}, + {"set_search_text",{P,S}}, + {"get_case_sensitive",{P},B}, + {"set_case_sensitive",{P,B}}, + {"get_at_word_boundaries",{P},B}, + {"set_at_word_boundaries",{P,B}}, + {"get_wrap_around",{P},B}, + {"set_wrap_around",{P,B}}, + {"get_regex_enabled",{P},B}, + {"set_regex_enabled",{P,B}}, +"GtkSourceSearchSettings"}) +export constant GtkSourceSearchSettings = length(widget) + +widget = append(widget, {"gtk_source_search_context", +{GObject}, + {"new",{P,P},P}, + {"get_buffer",{P},P,0,GtkSourceBuffer}, + {"get_settings",{P},P,0,GtkSourceSearchSettings}, + {"set_settings",{P,P}}, + {"get_highlight",{P},B}, + {"set_highlight",{P,B}}, + {"get_match_style",{P},P,0,GtkSourceStyle}, + {"set_match_style",{P,P}}, + {"get_occurrences_count",{P},I}, + {"forward",{P,P,P,P},B}, + {"forward_async",{P,P,P,P,P}}, + {"forward_finish",{P,P,P,P,X},B}, + {"backward",{P,P,P,P},B}, + {"backward_async",{P,P,P,P,P}}, + {"backward_finish",{P,P,P,P,X},B}, + {"replace",{P,P,P,P,I,X},B}, + {"replace_all",{P,P,I,X},I}, + {"get_regex_error",{P},P}, +"GtkSourceSearchContext"}) +export constant GtkSourceSearchContext = length(widget) + +export constant fnGetSCPos = define_c_func(LIBSV, + "gtk_source_search_context_get_occurrence_position",{P,P,P},I) + +export function unescape_search_text(object txt) +return gtk_str_func("gtk_source_utils_unescape_search_text",{P}, +{allocate_string(txt,1)}) +end function + +export function escape_search_text(object txt) +return gtk_str_func("gtk_source_utils_escape_search_text",{P}, +{allocate_string(txt,1)}) +end function + +widget = append(widget, {"gtk_source_style_scheme_chooser_button", +{GtkButton,GtkBin,GtkContainer,GtkWidget,GObject}, + {"new",{},P,0,GtkWidget}, +"GtkSourceStyleSchemeChooserButton"}) +export constant GtkSourceStyleSchemeChooserButton = length(widget) + +widget = append(widget, {"gtk_source_style_scheme_chooser_widget", +{GtkBin,GtkContainer,GtkWidget,GObject}, + {"new",{},P,0,GtkWidget}, +"GtkStyleSchemeChooserWidget"}) +export constant GtkSourceStyleSchemeChooserWidget = length(widget) + +widget = append(widget, {"gtk_style_scheme_chooser", +{GtkWidget}, + {"get_style_scheme",{P},P,0,GtkSourceStyleScheme}, + {"set_style_scheme",{P,P}}, +"GtkStyleSchemeChooser"}) +export constant GtkStyleSchemeChooser = length(widget) + +widget = append(widget, {"gtk_style_scheme", +{GObject}, + {"get_id",{P},S}, + {"get_name",{P},S}, + {"get_description",{P},S}, + {"get_authors",{P},A}, + {"get_filename",{P},S}, + {"get_style",{P,S},P,0,GtkSourceStyle}, +"GtkStyleScheme"}) +export constant tkStyleScheme = length(widget) + +widget = append(widget, {"gtk_source_style_scheme_manager", +{GObject}, + {"new",{},P}, + {"get_default",{},P}, + {"set_search_path",{P,P}}, + {"append_search_path",{P,S}}, + {"prepend_search_path",{P,S}}, + {"get_search_path",{P},A}, + {"get_scheme_ids",{P},V}, + {"get_scheme",{P,P},P,0,GtkSourceStyleScheme}, + {"force_rescan",{P}}, +"GtkSourceStyleSchemeManager"}) +export constant GtkSourceStyleSchemeManager = length(widget) + +--------------------------------------------------------------------- + +export enum + GTK_SOURCE_DRAW_SPACES_SPACE = 1, + GTK_SOURCE_DRAW_SPACES_TAB=2, + GTK_SOURCE_DRAW_SPACES_NEWLINE=4, + GTK_SOURCE_DRAW_SPACES_NBSP = 8, + GTK_SOURCE_DRAW_SPACES_LEADING = 16, + GTK_SOURCE_DRAW_SPACES_TEXT = 32, + GTK_SOURCE_DRAW_SPACES_TRAILING = 64, + GTK_SOURCE_DRAW_SPACES_ALL=127, + SPACES = 1, -- shorthand for above; + TABS = 2, + NEWLINES = 4, + NBSP = 8, + LEADING = 16, + TEXT = 32, + TRAILING = 64, + + GTK_SOURCE_SMART_HOME_END_DISABLED = 0, + GTK_SOURCE_SMART_HOME_END_BEFORE, + GTK_SOURCE_SMART_HOME_END_AFTER, + GTK_SOURCE_SMART_HOME_END_ALWAYS, + DISABLED = 0, + BEFORE, + AFTER, + ALWAYS, + + GTK_SOURCE_VIEW_GUTTER_POSITION_LINES = 0, + GTK_SOURCE_VIEW_GUTTER_POSITION_MARKS, + LINES = 0, + MARKS, + + GTK_SOURCE_BACKGROUND_PATTERN_TYPE_NONE=0, + GTK_SOURCE_BACKGROUND_PATTERN_TYPE_GRID, + NONE = 0, + GRID, + + GTK_SOURCE_CHANGE_CASE_LOWER = 0, + GTK_SOURCE_CHANGE_CASE_UPPER, + GTK_SOURCE_CHANGE_CASE_TOGGLE, + GTK_SOURCE_CHANGE_CASE_TITLE, + + GTK_SOURCE_SORT_FLAGS_NONE = 0, + GTK_SOURCE_SORT_FLAGS_CASE_SENSITIVE, + GTK_SOURCE_SORT_FLAGS_REVERSE_ORDER, + GTK_SOURCE_SORT_FLAGS_REMOVE_DUPLICATES + + + diff --git a/eugtk/examples/GtkWebKit.plugin b/eugtk/examples/GtkWebKit.plugin new file mode 100644 index 0000000..7bdbbc7 --- /dev/null +++ b/eugtk/examples/GtkWebKit.plugin @@ -0,0 +1,498 @@ + +--------------- +namespace wk -- "Plug-in" for WebkitGTK +--------------- + +include GtkEngine.e + +----------------------------------------------------------------------- +-- A plug-in appends new widgets to the widget array, adding functions +-- from an additional library file without changing GtkEngine.e source. +-- This needed to be implemented as a plug-in because the webkit +-- library is separate from libgtk3. + +-- Many more functions remain to be added, including style selections, +-- printing options, etc. +----------------------------------------------------------------------- + +include GtkEngine.e + +export constant version = "4.12.0" + +if not equal(version,gtk:version) then + Error(,,"GtkWebKit version mismatch","should be version " & gtk:version) +end if + +ifdef WINDOWS then +export object wkdll = "libwebkit-3.0.dll" +elsedef +export object wkdll = walk_dir("/usr/lib/",routine_id("find_lib"),1) +end ifdef + +function find_lib(object path, object item) -- get the latest! +if match("libwebkit2gtk-3",item[D_NAME]) +or match("libwebkit2gtk-4",item[D_NAME]) then + return path & '/' & item[D_NAME] +end if +return 0 +end function + +atom LIBWK = open_dll(wkdll) + if LIBWK = 0 then + Error(,,"No libwebkit2gtk-3 found!", + "If you're sure you have one, set the library\nname at the top of GtkWebKit.plugin", + GTK_BUTTONS_OK) + crash("ERROR:\n****** No libwebkit2gtk-3 found!") + end if + +ifdef WK then display("WEBKIT:[]",{wkdll}) end ifdef + +LIBS = append(LIBS,LIBWK) + +export constant webkit_version = text:format("[].[].[]", + {gtk_func("webkit_get_major_version"), + gtk_func("webkit_get_minor_version"), + gtk_func("webkit_get_micro_version")}) + +widget = append(widget, {"webkit_uri_request", +{GObject}, + {"new",{S},P}, + {"get_http_headers",{P},S}, + {"get_type",{P},I}, + {"get_uri",{P},S}, + {"set_uri",{P,S}}, +"WebkitUriRequest"}) +export constant WebkitUriRequest = length(widget) + +widget = append(widget, {"webkit_back_forward_list_item", +{GObject}, + {"get_title",{P},S}, + {"get_uri",{P},S}, + {"get_original_uri",{P},S}, +"WebkitBackForwardListItem"}) +export constant WebkitBackForwardListItem = length(widget) + +widget = append(widget, {"webkit_back_forward_list", +{GObject}, + {"get_length",{P},I}, + {"get_current_item",{P},P,0,WebkitBackForwardListItem}, + {"get_back_item",{P},P,0,WebkitBackForwardListItem}, + {"get_forward_item",{P},P,0,WebkitBackForwardListItem}, + {"get_nth_item",{P,I},P,0,WebkitBackForwardListItem}, + {"get_back_list",{P},A,0,GList}, + {"get_back_list_with_limit",{P,I},P,0,GList}, + {"get_forward_list",{P},A,0,GList}, + {"get_forward_list_with_limit",{P,I},P,0,GList}, +"WebkitBackForwardList"}) +export constant WebkitBackForwardList = length(widget) + +widget = append(widget, {"webkit_uri_response", +{GObject}, + {"get_uri",{P},S}, + {"get_status_code",{P},I}, + {"get_content_length",{P},I}, + {"get_mime_type",{P},S}, + {"get_suggested_filename",{P},S}, + {"get_http_headers",{P},P},-- soup message headers; +"WebkitUriResponse"}) +export constant WebkitUriResponse = length(widget) + +widget = append(widget, {"webkit_web_page", +{GObject}, + {"get_dom_document",{P},P}, + {"get_id",{P},I}, + {"get_uri",{P},S}, + {"get_main_frame",{P},P}, + {"get_editor",{P},P}, +"WebkitWebPage"}) +export constant WebkitWebPage = length(widget) + +widget = append(widget, {"webkit_notification", +{GObject}, + {"get_id",{P},I}, + {"get_title",{P},S}, + {"get_body",{P},S}, + {"close",{P}}, +"WebkitNotification"}) +export constant WebkitNotification = length(widget) + +widget = append(widget, {"webkit_hit_test_result", +{GObject}, + {"get_context",{P},I}, + {"context_is_link",{P},B}, + {"context_is_image",{P},B}, + {"context_is_media",{P},B}, + {"context_is_editable",{P},B}, + {"context_is_selection",{P},B}, + {"get_link_uri",{P},S}, + {"get_link_title",{P},S}, + {"get_link_label",{P},S}, + {"get_image_uri",{P},S}, + {"get_media_uri",{P},S}, + {"context_is_scrollbar",{P},B}, +"WebkitHitTest"}) +export constant WebkitHitTest = length(widget) + +widget = append(widget, {"webkit_web_inspector", +{GObject}, + {"get_web_view",{P},P}, + {"get_inspected_uri",{P},S}, + {"get_can_attach",{P},B}, --? + {"is_attached",{P},B}, + {"attach",{P}}, + {"detach",{P}}, + {"show",{P}}, + {"close",{P}}, + {"get_attached_height",{P},I}, +"WebkitWebInspector"}) +export constant WebkitWebInspector = length(widget) + +widget = append(widget, {"webkit_web_context", +{GObject}, + {"get_default",{},P}, + {"clear_cache",{P}}, + {"download_uri",{P,S},P}, + {"get_cookie_manager",{P},P}, + {"get_security_manager",{P},P}, + {"get_spell_checking_enabled",{P},B}, + {"set_spell_checking_enabled",{P,B}}, + {"set_spell_checking_languages",{P,A}}, + {"set_preferred_languages",{P,A}}, + {"set_tls_errors_policy",{P,I}}, + {"get_tls_errors_policy",{P},I}, + {"allow_tls_certificate_for_host",{P,P,S}}, + {"set_web_extensions_directory",{P,S}}, + {"set_web_extensions_initialization_user_data",{P,P}}, + {"prefetch_dns",{P,S}}, + {"set_process_model",{P,P}}, + {"get_process_model",{P},P}, +"WebkitWebContext"}) +export constant WebkitWebContext = length(widget) + +widget = append(widget, {"webkit_context_menu_item", +{GObject}, + {"new",{P},-routine_id("newContextMenuItem")}, + {"get_action",{P},P}, + {"is_separator",{P},B}, + {"set_submenu",{P,P}}, + {"get_submenu",{P},P}, +"WebkitContextMenuItem"}) +export constant WebkitContextMenuItem = length(widget) + + function newContextMenuItem(atom act) + return gtk_func("webkit_context_menu_item_new_from_stock_action",{I},{act}) + end function + +widget = append(widget, {"webkit_context_menu", +{GObject}, + {"new",{},P}, + {"append",{P,P}}, + {"prepend",{P,P}}, + {"insert",{P,P,I}}, + {"move_item",{P,P,I}}, + {"get_items",{P},P,0,GList}, + {"get_n_items",{P},I}, + {"first",{P},P,0,WebkitContextMenuItem}, + {"last",{P},P,0,WebkitContextMenuItem}, + {"get_item_at_position",{P,I},P,0,WebkitContextMenuItem}, + {"remove",{P,P}}, + {"remove_all",{P}}, + {"set_user_data",{P,P}}, + {"get_user_data",{P},P}, +"WebkitContextMenu"}) +export constant WebkitContextMenu = length(widget) + +widget = append(widget, {"webkit_settings", +{GObject}, + {"new",{},P}, + {"get_auto_load_images",{P},B}, + {"set_auto_load_images",{P,B}}, + {"get_enable_frame_flattening",{P},B}, + {"set_enable_frame_flattening",{P,B}}, + {"get_enable_html5_database",{P},B}, + {"set_enable_html5_database",{P,B}}, + {"get_enable_html5_local_storage",{P},B}, + {"set_enable_html5_local_storage",{P,B}}, + {"get_enable_hyperlink_auditing",{P},B}, + {"set_enable_hyperlink_auditing",{P,B}}, + {"get_enable_java",{P},B}, + {"set_enable_java",{P,B}}, + {"get_enable_javascript",{P},B}, + {"set_enable_javascript",{P,B}}, + {"get_enable_offline_web_application_cache",{P},B}, + {"set_enable_offline_web_application_cache",{P,B}}, + {"get_enable_plugins",{P},B}, + {"set_enable_plugins",{P,B}}, + {"get_enable_xss_auditor",{P},B}, + {"set_enable_xss_auditor",{P,B}}, + {"get_javascript_can_open_windows_automatically",{P},B}, + {"set_javascript_can_open_windows_automatically",{P,B}}, + {"get_load_icons_ignoring_image_load_setting",{P},B}, + {"set_load_icons_ignoring_image_load_setting",{P,B}}, + {"get_default_font_family",{P},S}, + {"set_default_font_family",{P,S}}, + {"get_monospace_font_family",{P},S}, + {"set_monospace_font_family",{P,S}}, + {"get_serif_font_family",{P},S}, + {"set_serif_font_family",{P,S}}, + {"get_sans_serif_font_family",{P},S}, + {"set_sans_serif_font_family",{P,S}}, + {"get_cursive_font_family",{P},S}, + {"set_cursive_font_family",{P,S}}, + {"get_fantasy_font_family",{P},S}, + {"set_fantasy_font_family",{P,S}}, + {"get_pictograph_font_family",{P},S}, + {"set_pictograph_font_family",{P,S}}, + {"get_default_font_size",{P},I}, + {"set_default_font_size",{P,I}}, + {"get_default_monospace_font_size",{P},I}, + {"set_default_monospace_font_size",{P,I}}, + {"get_minimum_font_size",{P},I}, + {"set_minimum_font_size",{P,I}}, + {"get_default_charset",{P},S}, + {"set_default_charset",{P,S}}, + {"get_enable_page_cache",{P},B}, + {"set_enable_page_cache",{P,B}}, + {"get_enable_site_specific_quirks",{P},B}, + {"set_enable_site_specific_quirks",{P,B}}, + {"get_draw_compositing_indicators",{P},B}, + {"set_draw_compositing_indicators",{P,B}}, + {"get_enable_private_browsing",{P},B}, + {"set_enable_private_browsing",{P,B}}, + {"get_enable_developer_extras",{P},B}, + {"set_enable_developer_extras",{P,B}}, + {"get_enable_resizable_text_areas",{P},B}, + {"set_enable_resizable_text_areas",{P,B}}, + {"get_enable_tabs_to_links",{P},B}, + {"set_enable_tabs_to_links",{P,B}}, + {"get_enable_dns_prefetching",{P},B}, + {"set_enable_dns_prefetching",{P,B}}, + {"get_enable_caret_browsing",{P},B}, + {"set_enable_caret_browsing",{P,B}}, + {"get_enable_fullscreen",{P},B}, + {"set_enable_fullscreen",{P,B}}, + {"get_print_backgrounds",{P},B}, + {"set_print_backgrounds",{P,B}}, + {"get_enable_webaudio",{P},B}, + {"set_enable_webaudio",{P,B}}, + {"get_enable_webgl",{P},B}, + {"set_enable_webgl",{P,B}}, + {"get_allow_modal_dialogs",{P},B}, + {"set_allow_modal_dialogs",{P,B}}, + {"get_zoom_text_only",{P},B}, + {"set_zoom_text_only",{P,B}}, + {"get_user_agent",{P},S}, + {"set_user_agent",{P,S}}, + {"get_javascript_can_access_clipboard",{P},B}, + {"set_javascript_can_access_clipboard",{P,B}}, + {"set_enable_write_console_messages_to_stdout",{P,B}}, + {"get_enable_write_console_messages_to_stdout",{P},B}, + {"set_enable_developer_extras",{P,B}}, + {"get_enable_smooth_scrolling",{P},B}, + {"set_enable_smooth_scrolling",{P,B}}, + {"get_enable_accelerated_2d_canvas",{P},B}, + {"set_enable_accelerated_2d_canvas",{P,B}}, + {"get_enable_media_stream",{P},B}, + {"set_enable_media_stream",{P,B}}, + {"get_enable_spacial_navigation",{P},B}, + {"set_enable_spacial_navigation",{P,B}}, + {"get_enable_mediasource",{P},B}, + {"set_enable_mediasource",{P,B}}, + {"get_allow_file_access_from_file_urls",{P},B}, + {"set_allow_file_access_from_file_urls",{P,B}}, + {"get_media_playback_allows_inline",{P},B}, + {"set_media_playback_allows_inline",{P,B}}, + {"get_media_playback_requires_user_gesture",{P},B}, + {"set_media_playback_requires_user_gesture",{P,B}}, +"WebkitSettings"}) +export constant WebkitSettings = length(widget) + +widget = append(widget, {"webkit_window_properties", +{GObject}, + {"get_geometry",{P,P}}, + {"get_toolbar_visible",{P},B}, + {"get_statusbar_visible",{P},B}, + {"get_scrollbars_visible",{P},B}, + {"get_menubar_visible",{P},B}, + {"get_locationbar_visible",{P},B}, + {"get_resizable",{P},B}, + {"get_fullscreen",{P},B}, +"WebkitWindowProperties"}) +export constant WebkitWindowProperties = length(widget) + +widget = append(widget, {"webkit_uri_response", +{GObject}, + {"get_uri",{P},S}, + {"get_status_code",{P},I}, + {"get_content_length",{P},I}, + {"get_mime_type",{P},S}, + {"get_suggested_filename",{P},S}, + {"get_http_headers",{P},P}, -- SoupMessageHeaders; +"WebkitURIResponse"}) +export constant WebkitURIResponse = length(widget) + +widget = append(widget, {"webkit_web_resource", +{GObject}, + {"get_uri",{P},S}, + {"get_response",{P},P,0,WebkitURIResponse}, + {"get_data",{P,P,P,P}}, + {"get_data_finish",{P,P,P,P},S}, +"WebkitWebResource"}) +export constant WebkitWebResource = length(widget) + +widget = append(widget, {"webkit_find_controller", +{GObject}, + {"search",{P,S,I,I}}, + {"search_finish",{P}}, + {"search_next",{P}}, + {"search_previous",{P}}, + {"get_search_text",{P},S}, + {"count_matches",{P,S,I,I}}, + {"get_options",{P},I}, + {"get_match_count",{P},I}, + {"get_web_view",{P},P}, +"WebkitFindController"}) +export constant WebkitFindController = length(widget) + +export constant + WEBKIT_FIND_OPTIONS_NONE = 1, + WEBKIT_FIND_OPTIONS_CASE_INSENSITIVE = 2, + WEBKIT_FIND_OPTIONS_AT_WORD_STARTS = 4, + WEBKIT_FIND_OPTIONS_TREAT_MEDIAL_CAPITAL_AS_WORD_START = 8, + WEBKIT_FIND_OPTIONS_BACKWARDS = 16, + WEBKIT_FIND_OPTIONS_WRAP_AROUND = 32 + +widget = append(widget, {"webkit_web_view", +{GtkContainer,GtkWidget,GObject}, + {"new",{},P}, + {"load_uri",{P,S}}, + {"load_html",{P,S,S}}, + {"load_plain_text",{P,S}}, + {"load_alternate_html",{P,S,S,S}}, + {"load_request",{P,P}}, + {"get_context",{P},P,0,WebkitWebContext}, + {"can_go_back",{P},B}, + {"go_back",{P}}, + {"can_go_forward",{P},B}, + {"go_forward",{P}}, + {"get_title",{P},S}, + {"get_page_id",{P},I}, + {"reload",{P}}, + {"reload_bypass_cache",{P}}, + {"stop_loading",{P}}, + {"is_loading",{P},B}, + {"is_playing_audio",{P},B}, + {"get_estimated_load_progress",{P},D}, + {"get_custom_charset",{P},S}, + {"set_custom_charset",{P,S}}, + {"get_back_forward_list",{P},P,0,WebkitBackForwardList}, + {"go_to_back_forward_list_item",{P,P}}, + {"get_uri",{P},S}, + {"get_favicon",{P},P}, + {"set_settings",{P,P}}, + {"get_settings",{P},P,0,WebkitSettings}, + {"get_window_properties",{P},P,0,WebkitWindowProperties}, + {"set_zoom_level",{P,D}}, + {"get_zoom_level",{P},D}, + {"get_inspector",{P},P,0,WebkitWebInspector}, + {"can_show_mime_type",{P,S},B}, + {"save",{P,I,P,P,P}}, + {"save_to_file",{P,P,P,P,P,P}}, + {"save_to_file_finish",{P,P,P},B}, + {"download_uri",{P,S},P}, + {"set_background_color",{P,P}}, -- ? + {"get_main_resource",{P},P,0,WebkitWebResource}, + {"execute_editing_command",{P,S}}, + {"get_find_controller",{P},P,0,WebkitFindController}, +"WebkitWebView"}) +export constant WebkitWebView = length(widget) + +widget = append(widget, {"webkit_download", --? +{GObject}, + {"new",{},P}, + {"get_request",{P},P,0,WebkitUriRequest}, + {"get_destination",{P},S}, + {"set_destination",{P,S}}, + {"get_response",{P},P,0,WebkitUriResponse}, + {"cancel",{P}}, + {"get_estimated_progress",{P},D}, + {"get_elapsed_time",{P},D}, + {"get_received_data_length",{P},I}, + {"get_web_view",{P},P,0,WebkitWebView}, + {"get_allow_overwrite",{P},B}, + {"set_allow_overwrite",{P,B}}, +"WebkitDownload"}) +export constant WebkitDownload = length(widget) + +widget = append(widget, {"webkit_print_operation", -- doesn't currently work. +{GObject}, + {"new",{},P}, +"WebkitPrintOperation"}) +export constant WebkitPrintOperation = length(widget) + +widget = append(widget, {"webkit_user_content_manager", +{GObject}, + {"new",{},P}, + {"add_style_sheet",{P,P}}, + {"remove_all_stylesheets",{P}}, + {"add_script",{P,P}}, + {"remove_all_scripts",{P}}, + {"register_script_message_handler",{P,S},B}, + {"unregister_script_message_handler",{P,S}}, +"WebkitUserContentManager"}) +export constant WebkitUserContentManager = length(widget) + +export enum + WEBKIT_LOAD_STARTED = 0, + WEBKIT_LOAD_REDIRECTED, + WEBKIT_LOAD_COMMITTED, + WEBKIT_LOAD_FINISHED, + +WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION = 0, +WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK, +WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK_IN_NEW_WINDOW, +WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_LINK_TO_DISK, +WEBKIT_CONTEXT_MENU_ACTION_COPY_LINK_TO_CLIPBOARD, +WEBKIT_CONTEXT_MENU_ACTION_OPEN_IMAGE_IN_NEW_WINDOW, +WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_IMAGE_TO_DISK, +WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_TO_CLIPBOARD, +WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_URL_TO_CLIPBOARD, +WEBKIT_CONTEXT_MENU_ACTION_OPEN_FRAME_IN_NEW_WINDOW, +WEBKIT_CONTEXT_MENU_ACTION_GO_BACK, --10 +WEBKIT_CONTEXT_MENU_ACTION_GO_FORWARD, +WEBKIT_CONTEXT_MENU_ACTION_STOP, +WEBKIT_CONTEXT_MENU_ACTION_RELOAD, +WEBKIT_CONTEXT_MENU_ACTION_COPY, +WEBKIT_CONTEXT_MENU_ACTION_CUT, +WEBKIT_CONTEXT_MENU_ACTION_PASTE, +WEBKIT_CONTEXT_MENU_ACTION_DELETE, +WEBKIT_CONTEXT_MENU_ACTION_SELECT_ALL, +WEBKIT_CONTEXT_MENU_ACTION_INPUT_METHODS, +WEBKIT_CONTEXT_MENU_ACTION_UNICODE, --20 +WEBKIT_CONTEXT_MENU_ACTION_SPELLING_GUESS, +WEBKIT_CONTEXT_MENU_ACTION_NO_GUESSES_FOUND, +WEBKIT_CONTEXT_MENU_ACTION_IGNORE_SPELLING, +WEBKIT_CONTEXT_MENU_ACTION_LEARN_SPELLING, +WEBKIT_CONTEXT_MENU_ACTION_IGNORE_GRAMMAR, +WEBKIT_CONTEXT_MENU_ACTION_FONT_MENU, +WEBKIT_CONTEXT_MENU_ACTION_BOLD, +WEBKIT_CONTEXT_MENU_ACTION_ITALIC, +WEBKIT_CONTEXT_MENU_ACTION_UNDERLINE, +WEBKIT_CONTEXT_MENU_ACTION_OUTLINE, --30 +WEBKIT_CONTEXT_MENU_ACTION_INSPECT_ELEMENT, +WEBKIT_CONTEXT_MENU_ACTION_OPEN_VIDEO_IN_NEW_WINDOW, +WEBKIT_CONTEXT_MENU_ACTION_OPEN_AUDIO_IN_NEW_WINDOW, +WEBKIT_CONTEXT_MENU_ACTION_COPY_VIDEO_LINK_TO_CLIPBOARD, +WEBKIT_CONTEXT_MENU_ACTION_COPY_AUDIO_LINK_TO_CLIPBOARD, +WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_CONTROLS, +WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_LOOP, +WEBKIT_CONTEXT_MENU_ACTION_ENTER_VIDEO_FULLSCREEN, +WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PLAY, +WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PAUSE, +WEBKIT_CONTEXT_MENU_ACTION_MEDIA_MUTE, +WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_VIDEO_TO_DISK, +WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_AUDIO_TO_DISK, +WEBKIT_CONTEXT_MENU_ACTION_CUSTOM + + + diff --git a/eugtk/examples/browser.ex b/eugtk/examples/browser.ex new file mode 100644 index 0000000..6ee8212 --- /dev/null +++ b/eugtk/examples/browser.ex @@ -0,0 +1,118 @@ + +---------------------------------------------------------------------------------- +--# A simple file browser/runner; +---------------------------------------------------------------------------------- + +include GtkEngine.e +include std/sort.e +include std/datetime.e -- using this requires us to namespace gtk: functions + +chdir(login) + +constant win = create(GtkWindow,"size=750x550,border=10,sig.destroy=Quit") + gtk:set(win,"title","EuGTK Browser - " & login) + +constant panel = create(GtkBox,"orientation=VERTICAL") + gtk:add(win,panel) + +constant lbl = create(GtkLabel, + "markup='Use alt-f to search, <enter> or double-click to run!'") + gtk:add(panel,lbl) + +constant store = create(GtkListStore,{gSTR,gSTR,gINT,gSTR,gINT,gSTR}) + +constant tv = create(GtkTreeView,{ + {"model",store}, + {"reorderable",TRUE}, + {"headers clickable",TRUE}, + {"set grid lines",GTK_TREE_VIEW_GRID_LINES_BOTH}, + {"rules hint",TRUE}}) + +constant cols = { -- below is a new way to define cols and renderers in 1 line; + create(GtkColumn,"title=Name,type=text,text=1,sort_column_id=2"), --[1] + create(GtkColumn,"title=Size,type=text,text=3,sort_column_id=3"), + create(GtkColumn,"title=Date,type=text,text=4,sort_column_id=5"), --[2] + create(GtkColumn,"title=Description,type=text,markup=6,sort_column_id=6") +} +--[1] filename in col[1] is sorted by number in col[2] +--[2] date shown in col[4] is sorted on unix date in col[5] + +gtk:add(tv,cols) + +constant selection = gtk:get(tv,"selection") + set(selection,"mode",GTK_SELECTION_MULTIPLE) + +constant scroller = create(GtkScrolledWindow) + pack(panel,scroller,TRUE,TRUE,10) + gtk:add(scroller,tv) + +constant box = create(GtkButtonBox) + pack_end(panel,box) + +constant btn = create(GtkButton,"gtk-quit","Quit") + gtk:add(box,btn) + +-- load file list; +object files = dir("*.ex") + +-- convert dates to usable format; +files = apply(files,routine_id("convert_date")) +files = apply(files,routine_id("convert_filename")) + +-- load files into listview; +gtk:set(store,"data",files) + +-- set up handlers; +gtk:set(tv,"rules hint",TRUE) +gtk:set(tv,"columns autosize") +gtk:set(tv,"search column",6) +gtk:set(tv,"search equal func",_("search_func")) +connect(tv,"row-activated","show_choice") +gtk:set(store,"sort column id",2,GTK_SORT_ASCENDING) -- default startup sort; + +-- run the program! +show_all(win) +main() + +------------------------------------------------ +function convert_filename(object f, object junk) -- allow 'natural' sort order; +------------------------------------------------ +object tmp = io:read_lines(f[1]) +for i = 1 to length(tmp) do + if match("--#",tmp[i]) =1 then + f[6] = tmp[i][5..$] + end if + end for +f[1] = filebase(f[1]) -- drop extension, build index of #s; +object x = filter(f[1],"out",{'0','9'},"[]") +object n = filter(f[1],"in",{'0','9'},"[]") +f[2] = x & pad_head(n,10,'0') +return f +end function + +----------------------------------------- +function convert_date(object a, object b) -- convert dates to unix for sorting; +----------------------------------------- +object dt = datetime:new(a[4],a[5],a[6]) -- convert eu dir() date to datetime; + a[5] = to_unix(dt) -- store as UNIX timestamp for sorting purposes; + a[4] = datetime:format(dt,"%b %d %Y") -- store human-readable date for display; + a[6] = "?" +return a +end function + +------------------------------------------------------------------------------- +function search_func(atom mdl, integer col, object key, atom iter, object data) +------------------------------------------------------------------------------- +key = lower(peek_string(key)) -- key is passed as pointer to string +data = get(mdl,"value",iter,6) -- value from col 6 of liststore (description) +return not match(key,lower(data)) -- find word anywhere in description, 0 = found +end function + +------------------------------ +global function show_choice() +------------------------------ +integer row = gtk:get(selection,"selected row") +object f = gtk:get(store,"col data",row,1) +system(sprintf("eui %s &",{f}),0) -- run it; +return 1 +end function diff --git a/eugtk/examples/documentation/.httpd.css b/eugtk/examples/documentation/.httpd.css new file mode 100644 index 0000000..33137b6 --- /dev/null +++ b/eugtk/examples/documentation/.httpd.css @@ -0,0 +1,11 @@ +/* +-- ==================================================================== +-- Styling for the remote display is set here; +-- ==================================================================== +*/ + +button {width: 100%;} +button.dir {background-color: skyblue;} +button.html {background-color: orange;} + +body {background-image: linear-gradient(180deg, yellow, blue); background-repeat: no-repeat;) diff --git a/eugtk/examples/documentation/Broadway b/eugtk/examples/documentation/Broadway new file mode 100644 index 0000000..5689166 --- /dev/null +++ b/eugtk/examples/documentation/Broadway @@ -0,0 +1,41 @@ + +launchpad.net GTK+3 with the Broadway (HTML5) backend : Nicolas Delvaux + +This is a rebuild of the GTK+3 Ubuntu 12.04, 12.10, 13.04, 13.10, 14.04 and 14.10 packages with an enabled Broadway backend. +Note that this PPA is no longer necessary starting from Ubuntu 15.04, as the Broadway backend is now enabled by default. The main difference with this PPA is that the "broadwayd" binary is shipped in the "libgtk-3-bin" package when it was in a separated "broadwayd" package in the PPA. + +ADDING THIS PPA TO YOUR SYSTEM + ============================== +Run these commands in a terminal: +sudo add-apt-repository ppa:malizor/gtk-broadway + sudo apt-get update + sudo apt-get upgrade + sudo apt-get install broadwayd # For Ubuntu >= 13.10 + +HOWTO SINCE SAUCY (gtk+ >= 3.8) +=============================== +As an example, here is how to run gedit in your browser. + +In a terminal, run: + broadwayd + +In another terminal, run: + GDK_BACKEND=broadway UBUNTU_MENUPROXY= LIBOVERLAY_SCROLLBAR=0 eui test0.ex + +Finally, open you Web browser and go to http://localhost:8080/ +The "UBUNTU_MENUPROXY= LIBOVERLAY_SCROLLBAR=0" is only useful if you use the global-menu and/or overlay-scrollbars. You have to disable them for Broadway, otherwise the program will segfault. +Please see the "broadwayd" manpage for more information. + +HOWTO BEFORE SAUCY (gtk+ < 3.8) + =============================== +As an example, here is how to run gedit in your browser. +In a terminal, run: + GDK_BACKEND=broadway UBUNTU_MENUPROXY= LIBOVERLAY_SCROLLBAR=0 gedit +Finally, open you Web browser and go to http://localhost:8080/ +The "UBUNTU_MENUPROXY= LIBOVERLAY_SCROLLBAR=0" is only useful if you use the global-menu and/or overlay-scrollbars. You have to disable them for Broadway, otherwise the program will segfault. +You can customize the port by setting the BROADWAY_DISPLAY variable. + +DISCLAIMER + ========== +I provide this PPA in the hope that it will be useful and I will try to upload new versions whenever the Ubuntu package is updated. + However, I do NOT guarantee that this PPA will always be stable and up-to-date nor that packages it contains may not destroy your computer, cause the end of the world and kill kittens. AaCharis SIL CompactAaClear Sans AAAAA DarkLightAuto diff --git a/eugtk/examples/documentation/Glade.html b/eugtk/examples/documentation/Glade.html new file mode 100644 index 0000000..5e86e6e --- /dev/null +++ b/eugtk/examples/documentation/Glade.html @@ -0,0 +1,418 @@ + + + + + + + EuGTK and Glade + + + + + + + + GTK LOGO + mongoose +
+ glade +
+  Calendar program being edited in Glade +
+
+


EuGTK 4.11.11 and Glade

+

Drag and Drop interface construction

+
+ + + + + +


Overview

+ +

+It is now possible to use Glade to design your EuGTK +program interface. I've tested with Glade versions 3.16 and 3.18. +You will still have to write snippets of code in Euphoria to handle +user events - just as you would when using Visual Basic™, Delphi™, etc. +

+ +

Begin by reading Starting Glade I and II for an +introduction, thenread the rest of this page for details. +

+ +

+Glade has a preview button so that you can see, to a limited extent, what your program +will look like. Controls won't be linked (can't respond to user interaction) until you +load the glade XML into your Euphoria program and provide the 'handler' functions. +Often, these handler functions will only require a few lines of code. +

+ +

+EuGTK will try to help you with this task by supplying a ready-made template +for undeclared functions, which you copy and paste into your Euphoria code using whatever +text exitor you prefer. +

+ +

This template will appear on the terminal from which you run your +program. See the screenshot below. +

+ +

You must run programs from a terminal (x-term, for example) while +developing and testing. There's no way around this. +

+ +

+Your program begins as usual:
+template + +

 include GtkEngine.e
+ +

+ +

+Next, you tell EuGTK's built-in builder object +to load your program's XML description from the file created by Glade. The builder will +try to connect any signals for which you have declared a handler +(in the Glade Properties/Signals tabs). Finally, you call main() to start the GTK +processing loop. +

+include GtkEngine.e
+add(builder,"~/demos/examples/widgets.glade")
+main()
+

+ +

With just those three lines of code, you are now ready to run your program!

+Of course, it won't do anything, except perhaps spit out a message telling you that +you haven't bothered to write handlers for events declared in Glade. +

+ +

+You should run the program (preferably from WEE with terminal, the BEAR, Geany using + gneui.ex, or directly from an x-term). +EuGTK will prompt you with an error message and hopefully a function template for the +missing function. +You can copy and paste that into your editor, and then fill in the body of the function. +Put these functions after the call to main(). +

+ +
+hint +

+Note that when using Glade, your Euphoria code may use string identifiers to refer to +objects, rather than having to obtain a pointer (a.k.a. 'handle') to them first. +

+ +

+Glade will assign a unique identifier for widgets (which it calls the ID:). +The ID will be something like 'checkbutton1', 'checkbutton2', 'radiobutton1', etc. +

+ +

This ID property is found on the General tab of the Properties dialog. +You may change the IDs if you wish, sometimes changing them can make your code clearer. +

+ +

+Obviously, you should avoid naming two controls with the same name. +

+ +

+If you are using multiple Glade files, you will almost certainly have more than +one 'button1', etc. but this isn't a problem, because a namespace will be prepended. +See namespaces below. +

+
+ +
+ + + +


Namespaces

+

When writing a large program with multiple windows, Glade can become difficult to +navigate safely. Click on the wrong thing in Glade, and you may lose all your work. +This isn't good, so you should try to break up your program into small, safe 'modules', +each with it's own Euphoria include (.e) file and corresponding Glade (.glade) file. +

+ +

+Let's say, for example, I'm going to need a 'main' window, a pop-up 'edit' window, and +the usual "About..." dialog. +I'd create three Glade files, one named main.glade, the second edit.glade, and the third +about.glade. +After laying out these three windows using Glade, it's very likely that Glade will +have used identical names for controls in the files. 'button1', for example, might appear +in all three. You could, if you wish, wade thru all your Glade files and rename these as +necessary to prevent conflicts, but +EuGTK version 4.8.9 and up offers a less labor-intensive way. +

+ +

+EuGTK namespacing allows you to refer to these controls by name in a manner familiar to +Euphoria programmers:
+"button1" (the button1 in main.ex); "edit:button1" and "about:button1" +(buttons in the respective edit.e and about.e files).
+

	set("edit:window1","background","blue")
+
+Note that these are strings. If you wish to convert them to Euphoria objects, you can, +starting with EuGTK 4.8.9, use the new pointer() function: +
	constant win1 = pointer("edit:window1")
+
+Other files can now access the edit.e window in the normal Euphoria way: +
	set(win1,"background",...)
+

+ +

There seems to be no noticeable delay when accessing controls via the string names. +In a test which read and set label text using the constant 'handle' to the label, 20,000 + iterations per second were reported. +When using the label's name in string form, 18,900 per second were reported.

+ +
+hint +

+When using the string form, the namespace prefix will be the same as the Glade file name +(sans the .glade part) which the include file loaded into the GTK builder.

+When exported as a Eu constant or variable, the namespace prefix will be whatever +namespace the included .e file declares. To prevent confusion, it's probably best to use +identical names. IOW, code in 'foo.e' would have the namespace foo. +

+
+ +

+To keep things neatly organized, you should put your Eu code in separate files as well: +main.ex, edit.e, and about.e. +

+ +

+Your Eu file main.ex would then include the line: +

	add(builder,"main.glade")
+

+ +

And your edit.e include file would have the lines: +

+namespace edit
+include GtkEngine.e
+add(builder,"edit.glade")
+
+

+ +

+ + +To examine the namespaced names as loaded by EuGTK, add the line + with define BUILDER +to your main program prior to including GtkEngine.e, +or add -d BUILDER to the command-line. +The namespaced names will be shown on the xterm when you run your program. (as shown above) +

+ +

+Glade objects loaded by the main (.ex) program will not be namespaced. +Those items can be addressed directly without a namespace qualifier. +This is done so that small programs which don't need multiple Glade 'includes' can +use code that isn't cluttered with unnecessary namespacery.

+ +
+ +

Widget names

+Confusingly, Glade also has a Widget name: property, found under the Common tab, +which you should avoid using except under special circumstances. It isn't normally + needed. EuGTK refers to widgets created by Glade by their ID:, e.g. the main window + of a program created by Glade would have the default ID of "window1", and your EuGTK + program would access that window as "window1". +

+ +

+There are a few 'trick' uses for this Widget name property, however:
+

One possible use is to pass data to functions which handle more than one control. +For example, you might have a set of radio buttons which all call a single handler +function. That function could examine the control's 'name' to determine what to do. +If, for example, the buttons select various colors, each button could have a different +color as the name property: 'red', 'green', or 'blue', etc. +

+ +

A more complex use might be to pass function names to a central 'dispatch' function, +which could then call the desired function by converting the 'name' into a routine_id. +

+ +

+Some of the demos in the glade subfolder utilize these tricks. See, for example, the +hello.* files: hello.ex, es.e, +etc... +

+ +
+

Cautions

+The XML file created by Glade may include a "requires..." line, demanding a certain GTK +version be present. You may find it helpful to remove that line under certain conditions, +for example when designing your program on Linux with a current version of GTK/Glade, +but running it on Windows™, which lags behind the other platforms. +Just use a plain-text editor to zap the offending line. +

+ + + +


Common Problems

+

+

    +
  1. I run my program without errors but can't see anything!
    + + You must click on the 'visible' property checkbox for your main window. + This is found on the 'Common' tab under 'Widget Flags'.
    + Oh, and while you're there,
    be sure to link the main window's destroy + signal to the built-in function Quit, so that your program will clean up after itself when finished! + You must do these two things for the main window of every program you write. +
  2. + +
  3. I put buttons in a dialog, such as FileChooserDialog, but they don't do anything!
    + Set a unique 'Response ID' for each button. + This is found on the 'General' tab under 'Button Attributes'.
    + This ID is returned when the dialog closes as a result of a button being clicked. +
    +
  4. + +
  5. How do I make menu items work like check menu items or radio menu items?
    + + I don't know how to do that using Glade. + You'll have to write code in Euphoria, or <gasp!> try to edit the .glade xml directly. + +
  6. + +
  7. I want to use widget x, but can't find it on the Glade palette
    + + Some things are hard to find, and some just aren't there. + New GTK widgets introduced since GTK 3.10 are partially missing. + If you're working on the 'bleeding edge' of GTK3, you probably should be + coding by hand. + +
  8. + +
  9. How do I know how to name the function that responds to a signal?
    + + If you click on the widget's Signals tab, you'll see a list of signals that can be linked.
    + For example, a button has a 'clicked' signal. + You then click on the <type here> space adjacent to the signal name, and press the 'o' key.
    + (That's the letter o, not a zero!)
    + When you do, a suggested function handler name will be plugged in. + You can, of course, type in any global function name you prefer here. + For example, the handler name for a Quit or Exit button should usually be Quit + (no quotes)
    This will call EuGTK's built-in Quit() function when the button is clicked. +
    +
  10. + +
  11. I want to write one Eu function to handle multiple controls.
    + + Instead of accepting the default handler name, supply your own + For example, if you have 3 buttons, Glade will supply handler names: +
    • on_button1_clicked
    • on_button2_clicked
    • on_button3_clicked
    + You simply remove the 1,2,and 3 from the handler names, and name your Eu function + on_button_clicked. All 3 buttons will call that function. + It's then your job to sort them out. +
    +
  12. + +
+ +

+ +
+


Compiling, Binding, etc...

+

+As usual, you can compile, bind, or shroud your program. If you do any of these, your program +will still load the GUI description from the Glade XML file at run-time. This could be either good or bad, depending upon your perspective. +

+ +

+The benefits: +

    +
  • The GUI appearance can be adjusted without messing with the program logic
  • +
+

+ +

+The drawbacks: +

    +
  • Anyone can easily trash your nice program by changing names or removing controls in the .glade file. +
  • +
  • The .glade file must be distributed along with the .ex file +
  • +
+

+ +
+hint +

+Knowing the way some users think...
+It's almost certain that someone will see that Glade™* file,
+think "I don't care about air fresheners.." and delete it. +

+* brand name for a common type of room deodorizer in the U.S. +

+ +
+ +

+One easy solution to this problem is to copy the glade XML, paste it into a new file, +enclose it in triple quotes, and assign it to an exported constant. Below, the added code is in red, while the XML from Glade is shown in black: +

  export constant XML = """
+    <?xml version="1.0" encoding="UTF-8"?>
+    <!-- Generated with glade 3.16.1 -->
+    <interface>
+    <requires lib="gtk+" version="3.10"/>
+    ---etc---
+  """
+

+

+ +Save this new file as an include, perhaps widgets.xml, with the widgets namespace, and then your code becomes: +

+    include GtkEngine.e
+    include widgets.xml
+    add(builder,widgets:XML) -- EuGTK can add objects from either a string variable or a filename
+    main()
+
+

+ +

+Now you can bind or compile your program and the interface will be 'hard coded' into it. Changing or deleting +the widgets.xml or widgets.glade files will make no difference. No changes to your program interface can be made +without re-compiling or re-binding. +

+ +
+ + + diff --git a/eugtk/examples/documentation/HowItWorks.html b/eugtk/examples/documentation/HowItWorks.html new file mode 100644 index 0000000..672094e --- /dev/null +++ b/eugtk/examples/documentation/HowItWorks.html @@ -0,0 +1,1195 @@ + + + + + + How EuGTK Works + + + + + + + mongoose + gtk logo align= + gnome-run + +


How EuGTK Works

+
+ + + +


Overview:

+
+ +
+ +From the GTK docs: + +

+"A GTK+ user interface is constructed by nesting widgets inside widgets. +Container widgets are the inner nodes in the resulting tree of widgets: +they contain other widgets. So, for example, you might have a GtkWindow +containing a GtkFrame containing a GtkLabel. If you wanted an image instead +of a textual label inside the frame, you might replace the GtkLabel widget +with a GtkImage widget. +

+ +

+There are two major kinds of container widgets in GTK+. Both are subclasses of +the abstract GtkContainer base class. +The first type of container widget has a single child widget and derives from +GtkBin. These containers are decorators, which add some kind of functionality +to the child. For example, a GtkButton makes its child into a clickable button; + a GtkFrame draws a frame around its child and a GtkWindow places its child + widget inside a top-level window. +

+ +

+The second type of container can have more than one child; its purpose is to +manage layout. This means that these containers assign sizes and positions to +their children. For example, a GtkBox arranges its children in a horizontal +[or vertical] row, and a GtkGrid arranges the widgets it contains in a +two-dimensional grid." +

+ +
+ + +

+To reiterate the last point: GTK does not expect the programmer to specify +position and size of each widget as is required when programming for Windows™. +GTK handles these things automatically, adjusting things 'on-the-fly', as the user resizes +windows, changes fonts, etc... which makes your programs more user-friendly. +

+ +
+
+ +Quote: + +

+"Note the inherent danger of setting any fixed size - themes, translations into other languages, +different fonts, and user action can all change the appropriate size for a given widget. +So, it's basically impossible to hardcode a size that will always be correct. +" +

+ +
+
+ +

+If you are accustomed to writing programs for Windows™, you'll wonder why there's not +a complex IDE to help lay out your GTK program interface. The answer is: because it's not necessary! +You don't need to specify sizes and positions for GTK controls, GTK takes care of that task for you. +Your main job will be writing Euphoria functions, for which a plain old text editor works +just fine! You do have the option to use Glade to design your program interface if you wish. +See Glade.html. +

+ + +


Keywords

+

EuGTK allows you to program in an object-oriented style.

+

+There are only a handful of new keywords to know. You can create nice-looking, functional +programs with only the six shown here: +

    +
  • create +
    declare a new instance of a given GTK object
    +
  • + +
  • set +
    modify a property of an object
    +
  • + +
  • get +
    retrieve a property of an object
    +
  • + +
  • connect +
    instructs an instance to respond to an event (a.k.a. signal)
    +
  • + +
  • show_all +
    make a container and all objects contained therein visible
    +
  • + +
  • main +
    start the GTK main event loop, waiting for user input
    +
  • +
+

+ +

+You'll find a more complete list of keywords in functions.html +

+ + +


Create

+ +

+New instances of EuGTK containers and controls (collectively called 'widgets' in GTK) +are created by calling the create() function with a class name. +These class names are enumerated in GtkEnums.e, +and they are the same as those used by the GTK +docs. These class names are the ONLY ones you can send to +the create() function. Never try numbers or strings. No quotes. Spelling counts! +

+ +

+The create() function returns a 'handle' (a.k.a. pointer) to the newly created +instance. +That handle can (and usually should) be saved in a Euphoria constant for later access: +

+    constant win = create(GtkWindow) -- generally, a constant is best, because you won't be changing these;
+
+Parameters, if any, which follow the class name vary, and are often optional. +Refer to the demo programs and the GTK docs for details. Also, explore the new, more compact syntax options for the create() function here, as well as variants, below. +

+ +

+GtkEngine.e maintains a list of currently created GTK containers and controls, and directs calls from your Euphoria program to the appropriate +'method' based on the type of widget and whether the call is to +set or to get one of that widget's properties. +

+ + +


Properties

+ +

+Every GTK widget has a list of properties which can be written to +or read from. For example, a window has a title, a border width, +a default size, etc. +

+ +

+Widgets which display information or accept input from users have properties such as +text for labels and text entries, value for numeric widgets, and active +for widgets such as checkboxes. +

+ +

+To find out what properties exist for a given widget, refer +to the GTK docs. Remember that widgets inherit properties from ancestor widgets, so if +you don't find a property for a given widget, follow the Object Hierarchy links in the GTK docs. +As an example, you can select the font, background or text color for a window, +but these properties are actually implemented by GtkWindow's ancestor the GtkWidget, +whereas border width is actually implemented by the GtkWindow's ancestor GtkContainer. +But you don't need to be concerned about this, all you need do is tell the window what to do, and it - or its parents or grandparents - will see that it gets done.

+

+ +

+EuGTK takes care of finding these ancestor properties for you, but if you don't +read the GTK docs, you won't be aware that these properties are available! +In many cases you can just use common sense: for example, if it seems reasonable that a window +should be able to have a blue background, just try it: set(win,"background","blue"). +If you try something that isn't possible, such as setting a window's text, for example, +you will get an error message on your terminal such as: +
+

+object class 'GtkWindow' has no property named 'text' +
+

+ +
+hint +

Remember, when writing your EuGTK programs, you must run them from a terminal, +in order to see warnings such as the one above!

+
+ + +


Set

+

+The set() function takes a 'handle' to a control, plus a 'property' to +be set. Handle is almost always an atom (as assigned by the create() function), +except when you are using Glade to design your interfaces, when you often use the name of the control in string form, e.g. "button1" +or "help:window". +

+ +

+'property' is always a string! Following those are one or more parameters. The type and number of +parameters requred must be determined by looking at the GTK documentation +and the sample programs included here. + +Some examples: +

+    set(win,"title","My Program")
+    set(win,"border_width",10)
+    set(win,"default_size",300,200)
+    set("help:window","Title","Using EuGTK") -- using widget name
+     -- the window directly above is created in an include file 
+     -- which has the namespace "help"
+
+

+ +
+hint +

+Note that you can use widget names to refer to controls, rather than handles, +if you give the control its own individual name. +
(When using Glade, a name will be assigned automatically.) +

+
+ +

+For example: win = create(GtkWindow,"name=Main Window,size=400x300") +

In the above line, you have named this window, and so can refer to it as +"Main Window" in future set() or get() calls. Sometimes this can come in handy, +resulting in more-readable code. +

+ +

+If you supply too many parameters, like: +

+    set(win,"title","My Program", "well isn't that swell?",1,2,3)
+
+That won't usually cause any problem; the excess parameters are just discarded. +You'll get an error message if you get carried away and try to send more than 10. +

+ +

+Too few parameters will usually cause problems, if not crashes, because unfilled values +default to zero: +

+    set(win,"default_size")
+
+This will set the window size to 0x0 pixels, i.e: nothing, which will make it +kinda hard to see! No error message can help in this case, since such a +setting could - for some strange reason - be intentional. +

+ +

+Mismatched parameter types - sending a string where an atom or integer is expected, or vice-versa - +will usually give an error message, but +sometimes a crash (segfault) is unavoidable. Again, read the GTK docs! +

+ + +


Get

+

+The get() function takes a 'handle' to the control, plus a 'property' to +be looked up. Handle is always an atom, except when using Glade to design your +interface, in which case it is sometimes a string. And 'property' is always a string! +Some examples: +

+    get(win,"title")  -- returns a string if a title was set, 0 otherwise 
+    get(win,"border_width") -- returns an integer (pixels), 0 if unset
+    get(win,"default_size") -- returns a sequence {x,y} e.g: {300,200} or {-1,-1} if unset
+    get("prefs:spinbutton1","value")  -- returns an atom or integer
+
+Sending the wrong number of parameters to the get() function will +very likely cause problems! Sometimes a machine-level exception (signal 11). +Fortunately, this is easy to avoid, as there normally AREN'T ANY +parameters to 'get', other than the handle and the property name. +

+ + +


Conveniences

+

+A few very frequently-used functions have simpler 'shorthand' ways to call them: + + + + + + + + + + + + + + + + + + + + + +
FunctionParametersShorthandParameters
 set(x,"add",z)  + For functions on the left,

 x
and z must be atoms
+  (widget handles) 
+  or widget names as strings
 add(x,z)* For shorthand notation,

+  x
must be an atom 
 (a widget handle)
or a widget name as a string
+
 * z can be a handle
 or a {list} of handles
 set(x,"show") show(z)* 
 set(x,"show_all") show_all(z) 
 set(x,"hide") hide(z)*
 set(x,"hide all") hide_all(z)
+

+ +

+These shortcut methods not only save a bit of typing, but more importantly, allow you to send {lists} of items, rather +than calling the routine over and over, once for each item. {lists} are simply sequences of one or more +handles to widgets. For example: +

+	add(panel,{img1,btn1,btn2,btn3})
+	-- or
+	add(panel,x)  -- where x can be a {list} of handles to any number of objects, of mixed types (don't all have to be buttons!)')
+	-- or
+	add(panel,x[1..5]) -- you can send slices as well
+
+

+ +

+GTK provides two 'pack' methods: pack_start and pack_end, which are identical except for direction. +The original calls are still there, but for added convenience, I've also provided pack, which uses the - (neg.) sign to indicate pack at end. This may be helpful when packing several items in one call. +

+	pack(panel,btn1) -- pack_start (top to bottom for vert. containers, left to right for horiz.)
+	-- or
+	pack(panel,-btn1) -- pack_end (this item will go at the bottom / far right of the container)
+
+

+ + +


Variants

+

+There are some GTK widgets which have multiple ways to create +them. An image, for example, might be created from: +

    +
  • a file ~ *.jpg, .png, .gif, etc...
  • +
  • a stock item ~ "gtk-ok", "gtk-cancel", etc...
  • +
  • a pixbuf previously created or loaded from a file.
  • +
  • a themed icon ~ from one of the hundreds supplied: "face-cool", for example.
  • +
  • something else ~ a GIcon, perhaps.
  • +
  • or nothing at all
  • +
+

+ +

+EuGTK tries to figure out which you want by examining the params (if any) you send +to the create() function: +

+	constant img = create(GtkImage) 
+	--it seems you want an empty container which can hold an image to be set at a later time.
+
+	constant img = create(GtkImage,"~/demos/thumbnails/BabyTux.jpg")
+	-- looks like you want to create this from the file named, if such file exists. 
+	-- Note: cannonical_path() is automatically called to convert the filename/path to a usable form.
+
+	constant img = create(GtkImage,"gtk-ok",GTK_ICON_SIZE_DIALOG) 
+	-- looks like you want a stock image, in the size given.
+	-- Note: any name beginning with "gtk-" is considered to be a stock item
+
+	constant img = create(GtkImage,"face-smile",GTK_ICON_SIZE_DIALOG)
+	-- you want an icon, as named, from the current icon theme, in the size specified.
+	-- size can be either one of the GTK_ICON_SIZE_ enums, or can be a pixel value, 
+	-- usually between 16 and 256.
+
+	constant pix = create(GdkPixbuf,"~/demos/thumbnails/mongoose.png",80,80,TRUE)
+	constant img = create(GtkImage,pix)
+	-- by creating a pixbuf from the file, you can specify a size for the image, 
+	-- plus, you have a static pixbuf object which can be re-used. 
+	-- If you create an image directly from a file, you can't resize or re-use that image 
+
+
+

+ + +


Connecting controls to functions

+

+It should be obvious, but just to be clear, GTK programs, like Windows™ programs, +Apple™ programs, and almost every other computer program written in the last few decades, +are event driven. If you aren't sure what that means, find out before you begin designing your +nifty new program. +

+ +

+Your program will need to respond to user actions (events). The various +events emit signals, for example, a button click emits a "clicked" signal. +Your job is to connect a widget's signal to the appropriate function to handle the +event. +

+    connect(win,"destroy","Quit") -- Always do this for the main window!
+
+Where win is the handle, "destroy" [always a string] is a signal, +a.k.a. the name of an event. "Quit" is what to do in that event. The example above will +call the function Quit() when the program's main window is destroyed. +Quit() - a function exported by GtkEngine.e - then shuts down the GTK engine and frees memory it has allocated. +

+ +

+Quit() is one of very few built-in EuGTK functions you will need to connect to. +Most other connections will be made to Euphoria functions YOU write. +Any Euphoria function used for this purpose must be: +

    +
  1. A function, not a procedure
  2. +
  3. Visible to the code doing the calling
  4. +
+

+ +

+You usually do not have to write a separate line of code to connect a widget to a function. The most commonly-used widgets have a convenient way to make that connection +at the time the widget is created, which leads to cleaner and easier to maintain code: + +

+	(A) constant btn1 = create(GtkButton,"gtk-ok","Foo",42) 
+
+	(B) constant btn1 = create(GtkButton,"gtk-ok","Foo","Hello World!")
+
+	(C) constant foo = call_back(routine_id("Foo"))
+	    constant btn1 = create(GtkButton,"gtk-ok",foo,"Hello World!")
+
+ +
+(D) New in 4.11.4!
+  constant btn1 = create(GtkButton,"gtk-ok",_("Foo"),[...])
+
+  The _() function allows linking to local functions, instead of global.
+  It works better than call_back(routine_id()), since it can 
+  'look forward' to find functions which are defined 
+  further down in your code, allowing cleaner program structure.
+
+  Thanks to Greg Haberek for this function.
+
+
+

+ +

+In any of the calls above, you are making a new button with the stock OK image, connecting its default signal (which is 'clicked', in the case of a button) to +call your Euphoria function Foo(), and optionally sending some object +as the data parameter to that function. +The data item is always optional, and can contain almost anything you +want. +

+ +

+See Data passing below for examples of how to pass +various data types to your Euphoria functions. +

+ +

+If you use method (A) or (B) then your Euphoria function declaration could look like this: +

+    --------------------------------------------------------------
+    global function Foo(atom ctl, object data) -- must be global!
+    --------------------------------------------------------------
+
+If you use method (C) or (D) then you can declare your Euphoria functions as local functions, not global: +
+   -----------------------------------------------------------
+   function Foo(atom ctl, object data)
+   -----------------------------------------------------------
+
+

+ +

+The parameter ctl will be filled in with the handle of the control which +dispatched the call, and data will be the data attached to that control, +or null if no data value was provided. +

+ +

+If you compile a program which uses method (A) or (B) to link to functions, it may compile +without error, but you will get a run-time error on the terminal like the following: +
+

Error: function Foo is not in scope
+****** (make it global or link via routine_id)
+

+
+ +
+

+Use the COMPILE flag for a way to quickly detect these errors in advance, before you go to the trouble of compiling. + +

+ $ eui -d COMPILE myprogram.ex +
+

+ +

Connections, alternate methods

+

+You can also connect signals to controls by typing a separate line: +

+	(1) connect(btn1,"clicked","Foo",[...]) -- global function
+
+	(2) connect(btn1,"clicked",call_back(routine_id("Foo")),[...])
+
+	(3) connect(btn1,"clicked",_("Foo"),[...]) -- local function
+
+	(4) constant foo = call_back(routine_id("Foo"))
+	    connect(btn1,"clicked",foo,[...])
+
+
+ +You might use this method instead of the previous one +if you want to connect a signal other than the default, or if there is no default signal provided for +that control. See GTK docs for appropriate signal names, and GtkEngine.e for the implemented defaults +(around line 348 in the create() function). Again, if you plan to compile, use call_back(routine_id()) as shown in (2), (3) or (4). +

+ + +

Function Parameters

+

Different controls can pass different types and number of parameters to your Euphoria "handler" functions when activated, so be sure to check the GTK docs for the particular widget/signal you are using. The GTK docs usually show a prototype of an appropriate signal handler.

+ +Often, your Euphoria functions can ignore the parameters that GTK passes to them. +If you do not need to access these parameters, just don't bother to declare them! +

+ +
+hint +

Note that you can connect more than one signal and/or more than one function to a control. +The calls will be executed in order. + +To do this, use the alternate 'connect' syntax as shown in (1,2,3) above, +repeating the connect line for each different function or signal to be called. +

+ +
+ +

+A practical application of this might be to trap your main window's "delete-event" signal first, +perhaps calling a routine that saves your work if necessary, then allowing (or not) the "destroy" event to call the "Quit" function to end the program. +

+ +
+

+

constant win = create(GtkWindow)
+connect(win,"delete-event",_("AreYouSure")) --[1]
+connect(win,"destroy","Quit") --[2]
+-- note 1: this will be called first
+-- note 2: this may be called next, depending upon the
+-- value returned by #1
+
+-------------------------------------------------
+function AreYouSure()
+-------------------------------------------------
+if dirty then 
+-- *save it* code goes here
+end if
+return Question(win,,"OK to Quit?") != MB_YES
+end function
+
+

+
+ +

+The value returned by the first function will determine whether the succeeding function(s) will be called or skipped. Note that we use the syntax not equal MB_YES. This is so closing the popup Question dialog window without actually answering YES or NO will not kill the program. +

+ +

+If a 1 is returned from the first called function, then succeeding functions will NOT be called, and +a 0 will allow the succeeding function(s) to be called. One way to look at this so it makes sense is to think +of the return value as a report: A 1 or TRUE means "I've handled this myself, don't bother any further", while +a zero or FALSE means "I've done what I can, it's your turn now!". +

+ +
+ +

+If you find that you need to be able to disconnect a signal, +use this alternate method, and save the signal_id: +

   integer sigid = connect(btn1,"clicked",....)
+
+so that later, you can disconnect that signal by calling: +
   disconnect(btn1,sigid)
+
+Do not use this to disable a control, because it does not change the appearance +to indicate that the control is disabled. Instead, use +
   set(btn1,"sensitive",FALSE)
+
+

+ +


How to figure out which control was activated

+

+Since you can connect several controls to a single Eu function, your function may need to determine which +control is doing the calling.

+As a rule, the first parameter passed to a called Eu function will be the +handle of the control that was activated. +The second parameter is usually the data attached +when the connection was made.

+These 'rules' vary on occasion. See the GTK docs for a prototype of the respective callback routine.
+
Here are two ways to determine which control was activated: +

--------------------------------------------
+function Foo(atom ctl, atom data)
+--------------------------------------------
+-- within this function, you might choose to:
+
+
    +
  1. Match the ctl parameter to known control handles
  2. + +
    • switch ctl do
      +   case btn1 then ...
      +   case btn2 then ...

    +
    +
  3. Use the data parameter to pass a unique identifier
  4. + +
    • if data = 42 then ...
    +
    +
+ +Note:
+For control groups (such as RadioButtons), which send a 'toggled' signal, +there will be two controls responding to events, +and thus two calls to your Eu function! +
    +
  • One call being from the previously-selected button +as it is toggled to the de-activated state.
  • +
  • The other being +from the newly-selected button as it is toggled to the activated state. +
+ +You must check the 'active' property +to see which of the two you should respond to. In some cases, you may want to respond to +both , deactivating or closing one thing, and activating or showing another, for example. + +
  • if get(ctl,"active") then ... -- this is the one just clicked
+

+ + +


Data passing

+
+

+Frequently, it is convenient to be able to attach data items to an individual control, +which that control will pass to functions it calls when activated. One advantage of doing things this way +is that it allows you to write a single Eu function which can handle events from multiple controls. +Another advantage is that it makes your code easier to read and maintain.

+Depending upon the method chosen, the data can be almost anything, from a simple integer to +a complex Euphoria sequence containing strings, pointers, routine_id's, and perhaps even images +or other GTK 'widgets'. +

+ +

Method 1

+

+ Often it is enough to simply attach the data to a control's data space, as in the examples + below. This is also the cleanest and most readable method. +

+ +

+

+(1) -- passing an integer
+constant 
+  btn1 = create(GtkButton,"Justin",_("DisplayAge"),17),
+  btn2 = create(GtkButton,"Jamie",_("DisplayAge"),15)
+
+---------------------------------------------------------------
+function DisplayAge(atom ctl, integer age)
+---------------------------------------------------------------
+ printf(1,"Age = %d\n",age)
+
+Integers are passed and used directly, with no conversion needed. 
+All other data types are passed as pointers, 
+and must be 'decoded' by using the unpack() function.
+
+(2) -- passing a float
+
+ constant btn1 = create(GtkButton,"gtk-ok",_("Foo"),123.456) 
+
+ ---------------------------------------------------------------
+ function Foo(atom ctl, object data)
+ ---------------------------------------------------------------
+ atom num = unpack(data)
+ 
+ The unpack() function will return an atom
+
+(3) -- passing a string
+
+ constant btn1 = create(GtkButton,"gtk-ok",_("Foo"),"James Brown") 
+
+ ---------------------------------------------------------------
+ function Foo(atom ctl, object data) -- must be object 
+ ---------------------------------------------------------------
+ data = unpack(data)
+ 
+ The unpack() function will return a string
+
+ (4) -- passing a Euphoria sequence {} containing almost any mix of data  
+ 
+ constant 
+     btn1 = create(GtkButton,"_Pie",_("Foo"),{"Apple Pie",1.95}),
+     btn2 = create(GtkButton,"_Cake",_("Foo"),{"Carrot Cake",2.10})
+
+ ---------------------------------------------------------------
+ function Foo(atom ctl, object data) -- must be object
+ ---------------------------------------------------------------
+ data = unpack(data)
+    Info(win,"Flo's Bakery",
+        format("Two orders of [1]",data),
+        format("$[2.2]",data*2))
+
+The unpack() function will return a sequence
+
+

+

+ +

Method 2

+

+Sometimes, the best way to pass multiple data values of varying types might be with Euphoria's map functions. +One advantage of this method is that it allows you to access the values by +name, rather than by position, as shown in the method above. The disadvantage - verbosity.

+test84 +
+    object jerry = map:new()
+        map:put(jerry,"Name","Jerry")
+        map:put(jerry,"School","Central High")
+        map:put(jerry,"Age",17)
+        map:put(jerry,"Pix",create(GdkPixbuf,"~/demos/thumbnails/Jerry.jpg"))
+        -- above, we store a 'handle' to a picture of 
+        -- Jerry in the map structure
+        
+    constant btn1 = create(GtkButton,"Student 1",_("ShowDetails"),jerry)
+    
+    ----------------------------------------------------------------
+    function ShowDetails(atom ctl, atom data)
+    ----------------------------------------------------------------
+    Info(win,"Student",map:get(data,"Name"),
+        sprintf("School:\n %s\nAge:\n %d",
+            {map:get(data,"School"),
+             map:get(data,"Age")}),,map:get(data,"Pix"))
+        -- above, we use the passed 'handle' to 
+        -- display Jerry's photo  in the Info pop-up
+
+

+ +
+ +

Method 3

+

+Another way is to use each control's "data" space to pass +name/value pairs. It is possible to combine this method with one of the +others listed above to pass even more data. +

+

+A drawback to this method is that you can only pass strings, +not numbers. You can either pass the numbers as strings, e.g. "$1.95", +or use one of the above methods +instead. +

+ +flo.jpg + +
+constant pie = "~/demos/thumbnails/pie.png"
+constant cake = "~/demos/thumbnails/cake.png"
+
+constant 
+    btn1 = create(GtkButton,"gtk-quit","Quit"),
+    btn2 = create(GtkButton,pie & "#_Pie"),
+    btn3 = create(GtkButton,cake & "#_Cake")
+    connect({btn2,btn3},"clicked",_("Foo"))
+    add(box,{btn1,btn2,btn3})
+    
+    set(btn2,"data","dessert","Pumpkin Pie")
+    set(btn2,"data","price","$1.95")
+    set(btn2,"data","pix",pie)
+    
+    set(btn3,"data","dessert","Birthday Cake")
+    set(btn3,"data","price","$2.10")
+    set(btn3,"data","pix",cake)
+
+show_all(win)
+main()
+
+--------------------------------
+function Foo(atom ctl)
+--------------------------------
+Info(win,"Flo's Bakery",
+            get(ctl,"data","dessert"),
+            get(ctl,"data","price"),,,
+            get(ctl,"data","pix"))
+return 1
+end function
+
+
+

+ +

But Wait, There's More!

+

+You can pass almost any type of Euphoria variable as data attached to +a control, which means that you can also pass Euphoria routine_id's - +so your connected function can execute whatever Eu function is attached as +its data item.
+If you combine this with the ability to store and pass other information in +name/value pairs as shown in Method 3 above, you can have a single +Eu function that provides a number of different 'services' with very little code. +

+ + +


Calendarscalendar


+

The GtkCalendar widget has a variety of ways to set and get the calendar date:

+calendar + +
+get(cal,"day") => 26 -- as integers
+get(cal,"month") => 4
+get(cal,"year") => 2015
+
+set(cal,"day",23) -- changes day only
+set(cal,"month",3) -- changes month only
+set(cal,"year",1946) -- changes year only
+
+get(cal,"eu_date") => {115,4,26} -- Y in Eu format
+set(cal,"eu_date",{115,1,4}) => Jan 4, 2015
+set(cal,"eu_date",date()) => current computer date
+
+set(cal,"date",{1960,11,2}) => Nov 2, 1960 
+set(cal,"date",{44,11,15}) => Nov 15, 1944 
+
+set(cal,"date","11/25/1940") => Nov 25, 1940
+setcal,"date","1924/4/25") => Apr 25, 1924 
+
+
+
+get(cal,"datetime") => returns calendar date and current clock time in datetime format.
+get(cal,"datetime",0) => returns calendar date in datetime format with h,m,s = 0.
+
+get(cal,"date") => Tuesday, May 26, 2015 -- if no format provided,returns a string in default format shown
+get(cal,"date","%a on %A!") => "Sun on Sunday!" -- this will be right as often as the weather bureau!
+
+Format string can include the following specifiers, along with other characters of your choice:
+    %% -- a literal %
+    %a -- locale's abbreviated weekday name (e.g., Sun)
+    %A -- locale's full weekday name (e.g., Sunday)
+    %b -- locale's abbreviated month name (e.g., Jan)
+    %B -- locale's full month name (e.g., January)
+    %C -- century; like %Y, except omit last two digits (e.g., 21)
+    %d -- day of month (e.g, 01)
+    %j -- day of year (001..366)
+    %m -- month (01..12)
+    %u -- day of week (1..7); 1 is Monday
+    %w -- day of week (0..6); 0 is Sunday
+    %y -- last two digits of year (00..99)
+    %Y -- year 
+
+For example, get(cal,"date","Today is %A, day #%j of the year %Y")
+
+Results
+Today is Monday, day #126 of the year 2013 + +The calendar will normally open with the current computer date, if you don't tell it otherwise. + +You may also use a datetime function, such as: + + today = datetime:now() + gtk:set(cal,"date",today) + or + gtk:set(cal,"date",datetime:add(today,30,DAYS)) -- shows date 30 days from now + +
+

+ + +


RGBA Colors +colors


+

+GTK 3 uses a 32-bit RGBA color structure which can be a bit tricky to use, so EuGTK +implements some functions to make the process simpler. With EuGTK, you can specify colors by: +

    +
  • name: "red" --this is the preferred way, using the xcolor names + Refer to xcolors.txt for a list of names
  • +
  • hex value: #FF0000 -- #RRGGBB
  • +
  • hex string: "#FF0000" -- as above
  • +
  • decimal value: 16711680 -- seldom useful, who can remember what color this is? +
  • rgb string: "rgb(255,0,0)" -- r,g, and b colors are 0 => 255
  • +
  • rgba string: "rgba(255,0,0,0.5)" -- as above, plus alpha in the range from 0 => 1
  • +
+

+

+To retrieve colors from, for example, the GtkColorChooserDialog, use: +

 object color = get(ccd,"rgba") -- returns rgb or rgba string
+To make manipulating colors easier, there are several format options available for the above call: + +
 object color = get(ccd,"rgba",N) -- see table below for N values
+
    +
  • 0 = Euphoria sequence: {"rgb",255,0,0} or {"rgba",255,0,0,0.51}
  • +
  • 1 = hex string: "#FF0000" -- this is a string, not a hex number
  • +
  • 2 = decimal number: 16711680 -- this is a number, not a string
  • +
  • 3 = 3-element Eu sequence: {255,0,0} -- {R,G,B}, colors are 0=>255
  • +
  • 4 = 4-element Eu sequence: {255,0,0,0.51} -- {R,G,B,A} where alpha is 0=>1
  • +
  • 5 = 4-element Eu sequence: {255,0,0,130.5} -- {R,G,B,A} where alpha is 0=>255
  • +
  • 6 = rgb or rgba string: "rgb(255,0,0)" or "rgba(255,0,0,.51)" -- rgba returned if alpha != 1, otherwise rgb returned
  • +
+Note: there is no mapping back to a xcolor name from any of the above +color formats. +

+ + +


Memory Usagegoose


+ +

+eui
+A modest sized EuGTK program, when run in interpreted mode, may use a relatively large +amount of memory, (a minimum of 25 to 50 megs on my computer). This is because almost +all of the Euphoria std libraries are loaded by EuGTK.
The source code will, +however, run on both 32-bit and 64-bit machines, if they have Euphoria installed. +WEE editor, for example, uses 107 megs. when interpreted. +

+ +

+eubind
+The same program, when bound, may only require 10 or 20 megs, and the bound source will +take up perhaps 4 or 5 megs of disk space, since the binder removes the unused routines. +Bound programs run almost instantly, compared with interpreted programs.
+In addition, binding takes only a moment - often less than a second. Remember that bound +programs must be distributed in two forms - 32-bit and 64-bit versions. WEE uses 35.6 megs. +

+ +

+eushroud
+This also works nicely, producing an obfuscated .il file which loads and runs very + quickly. In addition, the .il file will be much smaller than a bound file - perhaps 1/2 + to 1/5 the size. Like bound programs, there must be both a 32-bit version and a 64-bit + version. WEE uses 22.7 megs. +

+ +

+euc
+When compiled, the program will use only 3 or 4 megs of memory, and the runtime will be +small, perhaps 1 or 2 megs, and will start even faster, but it takes quite a while to +compile. I only compile a program when I'm certain that all the bugs have been worked out. +You may prefer to distribute your program in compiled form. Just remember, you will need +to provide separate 32-bit and 64-bit versions. WEE uses only 8.3 megs! +

+ +

+Conserving Memory
+In general, each widget you create will require some amount of memory, so you should +avoid creating (or re-creating) them in loops that might run for many iterations. +Instead, create them outside the loop, and simply +hide() and show() them as required. If widgets must be created within function +calls, try to destroy() them before +returning from the call to keep from wasting memory. +

+ + +


Debuggingbug


+

+In the table below are some command-line switches you may use to get into the inner +workings of EuGTK. +All but the first are generally only needed when maintaining EuGTK itself, but there +may be times when you can use them to help you find a programming error. +Of course, you must run your program from an x-terminal in order to see the output! +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SwitchOutputComment
-d COMPILE
Caution: function Foo will not link when compiled!
+********
+
Use before compiling so you can fix links
-d CREATE
Create
+    Call: GtkWindow->new
+    Params: Int 
+    Return type: Ptr 
+    Vector: 101
+    Args: {0}
+    GtkWindow=>37278096
+
Vector is the routine_id assigned to the function "gtk_window_new" + by EuGTK's "init" procedure.

The number following the => + is the 'handle' to the newly-created window.
-d SET
Set
+    Call: GtkWindow->set_default_size
+    Params: Ptr Int Int 
+    Return type: None
+    Vector: 107
+    Args: {37278096,300,80}
+
Args are: 'handle' to the widget being 'set', and following that are + the parameters being passed, in this case, two integers, width and height. +
-d GET
Get
+    Call: GtkComboBoxEntry->get_active_text
+    Params: Ptr 
+    Return type: Str 
+    Vector: 277
+    Args: {30175312}
+    Result: Banana
+
Vectors > 0 are direct calls to GTK routines generated via define_c_func or define_c_proc.Vectors less than -1 mean that the call is to a function written in Euphoria, in which case the vector is the negated RID.
-d INIT
Init class:GtkButton...
+    set_image_position 510
+    get_image_position 511
+    set_always_show_image -1
+    get_always_show_image -1
+
The numbers represent the routine_id that Euphoria has assigned to the GTK calls. +
Use -d INITX for detailed listing.
-d INIT_ERR
ERR:GtkWindow set_titlebar -1
+ERR:GtkWindow close -1
+ERR:GtkBox set_baseline_position -1
+ERR:GtkBox get_baseline_position -1
+ERR:GtkButton set_always_show_image -1
+ERR:GtkButton get_always_show_image -1
+ERR:GtkWidget get_frame_clock -1
When the number is -1, that means the call is invalid, usually because the version + of GTK you are using does not implement that call.

+ 'always_show_image' is only available in GTK 3.6+, for example.
-d INI +
-- Ini file for test173.ex
+My Calendar={"date",{2015,4,5}}
+ColorButton={"rgba","rgb(255,255,255)"}
+MyCheckButton1={"active",1}
+FontButton={"font name","Sans"}
+
Used to display data written to settings (ini) file on x-term
-d FUNC
FUNC g_slist_nth_data 162
+    PARAMS {50331649,16777220}
+    Values {24122256,103}
Debug calls to gtk_func() and gtk_str_func()
-d PROC
PROC g_set_prgname 37
+    PARAMS {117440516}
+    Values  widgets.ex
+
Debug calls to gtk_proc
-d PIXBUF
Pixbuf from file /home/irv/Pictures/IMG_0020.JPG
+Scaled 300x300 1
+
For debugging pixbuf creation
-d PIXBUF_ERR
CAUTION: cannot create pixbuf from /home/irv/Pictures/map.pdf
+
For debugging pixbuf errors
-d BUILDERScreenshotUsed to display namespaced objects loaded from Glade
+ +

+ + +


Settingsgears


+ +

Updated for EuGTK 4.11.10

+

+The ability to very easily save selected settings from one run to the next has been added in EuGTK 4.10.0. +This includes saving the 'state' of active controls, such as spin buttons, check buttons, color buttons, +font buttons, etc. as well as saving selected properties of any GtkWidget, such as the preferred background color, +font, position or size of windows, etc., from run to run. +

+ +

+IOW, your arrangement of things at the time the program was closed will be restored next time the program is run. +Refer to test153.ex and test153.ini for some examples. Below is a sample +file, which can have any name and extension. .ini works fine, and is familiar. Note that it is plain text, +so it's easily edited, and comments are preserved when it's updated. It uses simple name (dot) property notation. +

+ +

+For commonly-used controls, there is a default property defined in GtkSettings.e, +which can be saved/loaded simply by adding the control's handle or name to a list of +controls to pass to settings:Save(). Note that controls to be saved MUST have a name! +These default states are restored when the ini file is loaded. +

+ +

+For saving other (non-default) properties, you must add one line of code to save +that property. No additional effort is required when loading the settings, +the property will be reset automatically to the saved value when the ini is loaded. +

+ +

+For saving bits of data which are NOT properties of a given widget, you can use the + widget's named data spaces (a.k.a. key/value pairs) to store almost + anything you want. For these, your program code must specifically read the + data item when it needs to use it: +
get("MainWindow","data","Foobar") => "Baz!" +

+ +


+----------------------------------------------------------------------------
+-- Following items are 'persistent', only changed by editing this file:
+----------------------------------------------------------------------------
+--!MainWindow.icon=face-smile
+--!MainWindow.border width=20
+
+--!Label1.text=Move, resize, change color, etc...
+--!ColorChooserButton.tooltip text=Pick a color for the Main Window background
+--!Font Button.tooltip text=Select font for calendar
+
+------------------------------------------------------------
+-- Following items are added by the settings:Save() command
+-- using the default properties for the controls on the list 
+-- your program provides, or by the settings:Add() command,
+-- using properties you specify.
+------------------------------------------------------------
+
+MainWindow.data.Foobar=Baz!
+MainWindow.data.Message=Thanks a lot!
+MainWindow.background=#729FCF
+MyCalendar.font=Serif Bold Italic 12
+ColorChooserButton.rgba=#729FCF
+FontButton.font name=Serif Bold Italic 12
+MyCalendar.date={2016,4,10}
+
+

+ +
+
+ hint +

+ This page edited by The Bear, + a web-page and programming editor + written in Euphoria. +

+

Updated for EuGTK version 4.12.0, Sept 15, 2016 +
All code © 2016 by Irv Mullins +

+
+
+ + + diff --git a/eugtk/examples/documentation/README.html b/eugtk/examples/documentation/README.html new file mode 100644 index 0000000..9cb3865 --- /dev/null +++ b/eugtk/examples/documentation/README.html @@ -0,0 +1,1169 @@ + + + + + + + EuGTK README + + + + + + + + mongoose + gtk logo + + +
+ t +
+  Pete Eberlein's WEE Euphoria editor +
+
+ +


EuGTK 4.12.0

+

A cross-platform language binding for Euphoria and the GTK3 graphic user interface

+
+
+ +
+ + + + + +

+This package should be up-to-date with GTK version 3.21.4. +Tested with GTK 3.18.9 on Linux Mint 18 Cinnamon 64-bit and +Gtk 3.10.8 on Mint 17.2 Rafaela 64-bit, as these are the most-popular +distros with the latest stable GTK 3 versions included. +Also, tested on Windows 7 64-bit with Gtk 3.20.2. +

+ +

+ +

+The Good News:
+GTK3 is better both in ease of use and in +the ability to produce attractive, modern program interfaces than any other GUI libraries + I've tried. GTK3, unlike most of the other GUI libraries, has functions +to handle touch screens. +

+ +

+Linux distros such as Ubuntu, Mint, Ultimate, Parsix, etc. come with GTK3 +libraries already installed. If necessary, you can install GTK3 alongside GTK2 without +problems. Apt-get will do it for you. +Or, in your package manager, look for libgtk-3-0. If you can't get libgtk-3, then it +may be time +to think about updating your ancient Linux installation. +

+ +

In addition, EuGTK 4.9.0 and up works with OS X™. +It also works on Windows™, but I cannot recommend this. +Windows has become entirely too awkward to use and maintain. +

+ +

+(Once upon a time I succeeded in nailing some jelly to a tree. +That doesn't mean I'd consider jelly-nailing to be a good career choice.) +

+ +

+The same EuGTK engine and sourcecode can be used +on any of the three platforms without change, except for possibly +missing icons on different platforms. You can supply your own icons +if appearance is important. +

+ +

+More Good News:
+Compared to other programming language/GUI combinations, +EuGTK is very simple to set up and to use. +There is only one 'include' you must add to your programs, which is 'include GtkEngine.e'. +There are only a few files that need to be available when you write, test, +run or perhaps compile your program - GtkEngine.e and GtkEnums.e. Adding, when required, +GtkPrinter.e, etc...

+No additional files are produced or needed other than the code you write and the standard +Euphoria library files. This makes project management simpler, and +if you want to ship EuGTK with your program, the required files only add about 350k to +the total package (74k if compressed!). +

+ +

+Also, EuGTK is easier to use because EuGTK adds some 'intelligence' that is missing from other +languages, (like C or Python), such as the ability to create images from a variety of sources without the +programmer having to call a different function for each source type. See variants. +

+ +

+In addition, EuGTK is easy to keep up-to date with the latest versions of GTK +because all of EuGTK is written in Euphoria, so it can easily be edited by anyone, +with no re-compiling or other tricky steps involved. +

+ +

+You'll need the latest Euphoria 4 interpreter +from OpenEuphoria.org. +I use Euphoria 4.1.0 beta. +Plus, you'll really need the latest GTK docs! Get 'em from gtk.org. +

+ +

+Just open the gzipped package (I guess you've already done that) and drag the 'demos' folder into your home folder. +All files are in the demos folder (and subfolders thereof). +Try them so you'll know what you can do +with GTK! +

+ +

+Installation
+Later, you can put these files - GtkEngine.e, GtkEnums.e, GtkPrinter.e, etc. - +into the folder with your other Euphoria includes, or just add a one-line +eu.cfg file to any directory you wish to work in, pointing to the location +of these files. My Euphoria/include folder is /usr/local/share/euphoria/include. +Moving all the Gtk***.e files from the demos folder into there works.

+ +
+hint +

+Be sure to add this eu.cfg to your home directory as well, otherwise, eu programs will +not be able to find the necessary GtkEngine.e when you start a program +from your file manager (such as caja). +

+ +

+My eu.cfg reads:
+ +~/demos + +

+ +
+ + +


Getting Started:

+ +

+First, open an x-term, cd to the demos directory, and run a program: +$> eui test0 +

+ +
+ + + +

+Running from an x-term is mandatory while you are writing your +Euphoria/GTK programs, so that you can see error messages and crash reports, +but not necessary once you have your program working and debugged. + +

************************************
+Fatal Error: no libgtk-3.so.0 found!
+************************************
+
+ +

If you get the above error message, either you do not have +libgtk-3 installed (try apt-get or your package manager), or it has +been installed in an unexpected location. Check lines 66 thru 88 at the top of +GtkEngine.e and make changes as necessary. +

+ +
+ +
+ +You may also get the above error if you are trying to run -- +32-bit Euphoria on a computer with 64-bit libraries (or vice-versa) -- + +
+ +

+Now try as many of the test programs as you can, they will help you find incompatibilities (if any) with the +version of the GTK library you are using. +

+ +

+Running these test programs is also the best way to see what GTK offers for use in your own programs. +

+

Now, get busy!

+ +
+ + +


WRITING PROGRAMS:

+

If you haven't read How it Works yet, please do so now! +

+ +

+You can use any plain text editor to create your EuGTK programs. I use +either Pete Eberlein's great WEE editor +(written in Euphoria), sometimes Pluma or Geany, + or the GtkSourceView widget, + which also works well, and could easily be expanded into a full-featured + programmer's editor.See Programmer's Resources + for an overview. +

+ +

+The WEE editor (recommended!) automatically colorizes Euphoria source code, and moves the cursor to +the file/line where a syntax error occurs. +

+ +
+hint +

+For WEE:
Pop-up help for both Euphoria and GTK keywords is available by pressing the [F1] key. See +instructions here. +

+
+ +

+In the ~/demos/resources/geany_syntax folder you will find +files to add Euphoria syntax highlighting to Geany, +as well as an add-on program by Kenneth Rhodes which moves the Geany edit cursor to the error line in your Eu program. +

+ +

+In the ~/demos/resources/gedit_syntax folder you will find +files to add Euphoria syntax highlighting to Pluma, GEdit, GtkSourceView, the BEAR, etc. +

+ +


Visual (Drag & Drop) Program design:

+ +

+It is also possible to use Glade to design your program layout. +You will need the latest version of Glade (3.16 or up). See the following programs +for demos: calendar.ex and +calendar.glade. +and clock.ex and clock.glade. +Also, please read XML/GtkBuilder. +

+ +

+Before you start coding, please read HowItWorks to get an overview, then open guide_a.html +in your browser for links to demos showing how the various controls (a.k.a. widgets) are used. +

+ +

+You'll also need the latest GTK 3.0 docs (from gtk.org), since there are perhaps +4x more methods available than I have used in the demos. Some of these methods +can be ignored, since there are easier-to-use equivalents in Euphoria itself. +

+ + + +


Error Messages:

+ +

There are three possible sources of error messages: Euphoria, GTK, and EuGTK.

+ +Euphoria gives you the line number and description of the error, but these will only appear +in a console - there will not be a pop-up error dialog - since these come directly from the Euphoria +interpreter, before GTK is running! Spelling errors, undeclared variables, and such will appear here: +

+ +
<0074>:: Errors resolving the following references:
+	'GtkBufton' (text16.ex:39) has not been declared.
+
+constant okbtn = create(GtkBufton,"gtk-ok","Foo")
+						  ^
+ +

+GTK errors, which also only appear when running from a console, +will sometimes display an enigmatic message that will take some +effort to understand. Best way to debug these errors is to comment out blocks of code, and then +uncomment one line of code at a time, and see which line triggers the error message. Then consult the GTK docs +to see what GTK is expecting vs. what you've written: +

+ +
+(test174.ex:3126): Gtk-WARNING **: Can't set a parent on a toplevel widget
+**
+Gtk:ERROR: /build/buildd/gtk+3.0-3.4.2/./gtk/gtkcontainer.c:3292:
+gtk_container_propogate_draw: assertion failed: (gtk_widget_get_parent(child) ==
+GTK_WIDGET (container))
+Aborted
+
+ +
+Above is the type of error message GTK will present, in this case I was trying +to add a dialog to a window (dialogs are 'run', not added to containers). +
+
+EuGTK itself will (hopefully) display easy-to-understand messages like the one below. +Both warnings and fatal errors are displayed here, so if your program doesn't run, +or doesn't seem to run correctly, run it from a terminal! + (x-term, mate-terminal, etc... whatever you have) +

+ +
Error: function Foo is not in scope
+****** (make it global or link via call_back(routine_id())
+ + + + + +
CAUTION!
+If you plan to compile your EuGTK program, please read +HowItWorks to see the correct way to link +controls to your Euphoria functions! +
+ +

+Another possible error occurs when you create a GTK widget with a version of libgtk-3 which +does not implement that widget. You have 3 choices in this event: use something else, create your own +custom object to simulate the new widget, or update your version of libgtk-3. +The last is often not possible, usually you will +find it easier to +update to a newer Linux distro which includes the latest libgtk-3 instead. +

+ +
+
Fatal Error: GtkMenuButton
+************ not implemented in this GTK library version
+ +

When you use a recently-implemented GTK widget in a program you plan to distribute, it is a good idea to check the +libgtk version and if necessary present an error message. Use the requires() function for this. See test193. +

+ + +

+There are several other flags you can set to display debugging info. See + Debugging section of HowItWorks.html +

+ + +


New Features

+ +Icons +

+Starting with GTK version 3.10, the old GTK stock items are deprecated, and new programs +should not use them. Instead, use named icons. This is good, because the set of stock buttons +was limited, and some were missing altogether. There's a far wider variety of named icons to choose from - except on Windows™, where there are very few. This is a problem which can be avoided by packaging your own custom icons with your program. +

+ +

You can most easily see +all the available icons by running examples/icons.ex. It now has a handy search feature, which is a great help +when choosing the buttons and menus for your nifty new programs! +

+ +

+However, using named icons means more work for the programmer, usually involving several lines of +code just to create each button. To solve this problem and make the transition to named icons easier, +this version of EuGTK adds a new, more flexible way to create GtkButtons.
+

+ +buttons + +

+

    Old Style:
+    constant btn1 = create(GtkButton,"gtk-edit",...)
+    -- button caption and icon are pre-set, not easily changed,
+    -- but nice-looking and easy to use. This is the leftmost button above.
+
+    New Style:
+    constant btn1 = create(GtkButton,"text-editor#_Edit",...)
+    -- this uses a named icon and your own label. 
+    -- Run examples/icons.ex to search for a suitable icon.
+    -- These themed icons should change appearance to match the 
+    -- current theme the user selects.
+
+

+ +

+Please note the new hashtag# syntax: +

constant btn1 = create(GtkButton,{"gtk-edit#_Edit",...}
+    -- changing the caption and hot-key as desired
+    -- icon name is first, caption second, separated by #. 
+    -- Optional underscore prepends the hot-key in caption
+    -- this button is shown above, center
+    
+    constant btn1 = create(GtkButton,"~/demos/thumbnails/4_rhombuses.gif#_Colors",...)
+    -- You can set the button image from a file (even animated!),
+    -- so you can customize your program's appearance.
+    -- You can even have "check images" that change depending 
+    -- upon their state! (see test15)
+
+ + +
+ImageMenuItems + + +image menu +

+Someone now [only temporarily, I hope] in charge of GTK decided that having images on buttons and menu items was a bad idea. +They cite some academic study which 'proved' that people are quicker at choosing the correct button out of an array of buttons if the buttons contain +nothing but boring text captions. +

+ +

+Did this same 'academic study' prove that traffic signs didn't need to be different colors and shapes? If not, why not? +

+

+So they're gone as of GTK3.14. + +I guess they don't want people with dyslexia to use their computers. +

+ +

+If you don't like images, you don't have to use 'em, but if you do like them, +don't worry too much, I can outsmart them and put those images back. See, for example, test25.

+ +
+ +

Interactive Debugger

+

+This change is actually a good idea. You can, starting with GTK3.14, enable a pop-up +GTK+ Inspector by adding one line of code just before the call to main(): +

	show_all(win)
+	set(win,"interactive debugging",TRUE)
+	main()
+
+

+ +

+This interactive debugger allows you to view the widget hierarchy and experiment with various settings +while your program is running! It also lists the applicable properties and signals for each selected widget.

+ +
+ +

New Types

+Gtk widget types have been added to EuGTK. You can now declare Euphoria objects as GTK types, +as follows: +

+ function Foo(Window w, Button b)
+
+As you can see, you just use the Gtk widget name, sans the 'Gtk' part. +It's generally not necessary nor even a good idea to use these. +They are provided mainly for use in the rare occasion where it is necessary to +register and "type cast" a Euphoria function parameter. Most objects passed as +function params already 'know' their type, as do all that are created as Eu +constants, objects, or atoms, so this is seldom necessary. +

+ +
+ +

Settings

+The ability to very easily save selected settings from one run to the next has been added in EuGTK 4.10.0. +This includes saving the state of active controls, such as spin buttons, check buttons, color buttons, +font buttons, etc. as well as saving specified properties of any GtkWidget, such as the preferred background color, +font, position and size of windows, etc., from run to run. You can do this without having to write lines of code to save, parse, and restore each setting. Just supply the name +of an .ini file and a list of control handles you wish to save/restore to the save_settings() or load_settings() functions. +

+ +

+Refer to test153.ex, test153.ini, +test173.ex, test173.ini, +test201.ex, and test201.ini for some examples. Below is a sample +file, which can have any name and extension. (.ini works fine, and is familiar) Note that the file is plain text, so it's easily edited, and comments are preserved when it is updated. + +

----------------------------------------------------------------------------
+-- Following items are 'persistent', only changed by editing this file:
+----------------------------------------------------------------------------
+--!MainWindow.icon=face-smile
+--!MainWindow.border width=20
+
+--!Label1.text=Move, resize, change color, etc...
+--!ColorChooserButton.tooltip text=Pick a color for the Main Window background
+--!Font Button.tooltip text=Select font for calendar
+
+------------------------------------------------------------
+-- Items beginning with + are added via the settings:Add()
+-- function called in your program code, as they are not a
+-- default property as defined in GtkSettings.e
+-- They can also be added by manually editing the ini file.
+
+-- Items without the leading + sign are saved automatically,
+-- by passing a list of names or handles of controls to 
+-- the settings:Save() function.
+
+-- You may also save and restore widgets named data spaces
+-- by settings:Add(ini,ctl,"data.name","value")
+-- see MainWindow.data lines in blue below.  
+------------------------------------------------------------
+
++MainWindow.data.Foobar=Baz!
++MainWindow.data.Message=Thanks a lot!
++MainWindow.background=#FCE94F
++MyCalendar.font=TakaoPGothic Bold Italic 12
+ColorChooserButton.rgba=#FCE94F
+Font Button.font name=TakaoPGothic Bold Italic 12
+MyCalendar.date={2016,6,8}
+
+

+ + + +


New Syntax

+

+In order to make programming even easier, I've added a new way to set +properties at the time a widget is created. This doesn't replace the previous set(... functions, just +allows you to use a shorter method if you wish. It may be faster than +the old method, since it can avoid multiple lookups. +

constant win = create(GtkWindow,{
+    {"title","Simple Text Viewer"},
+    {"default size",600,500},
+    {"position",GTK_WIN_POS_CENTER},
+    {"icon","~/demos/thumbnails/mongoose.png"},
+    {"connect","destroy","Quit"}})
+

+

+In simple cases, an even easier-to-use syntax is possible using key/value pairs. +See screenshot at top of page. +

constant win = create(GtkWindow,
+	"title=Hello world!,size=300x100,background=green,border=10")
+

+ +

You can freely mix these styles in your program, using whichever notation is the cleanest and clearest. +Because this last version uses Eu 4.0 key/value pairs, not all settings can be made this way. You can't, for +example, pass Eu variables or Gtk constants as part of the settings string, except for the constants TRUE, FALSE, HORIZONTAL, and VERTICAL, +which are specifically allowed. +

+


Custom Dialogs

+ +

+EuGTK 4.11.0 has a Custom dialog which allows adding almost any widget(s) to an easy-to-use pop-up dialog, +with basically one line of code. See dialogs.html and test87.ex for details. +

+ + + +


Plug & Socket

+

+A plug and socket demo (plug.ex, sock.ex) has been added, to +allow embedding widgets from one process into another process. +I haven't been able to dream up a real need to do this so far. +

+ +

To Do: find a useful program that needs this!

+
+ +
+


Plugins

+

+EuGTK 4.8.9 has a new 'plug-in' feature, added in order to +implement the GtkSourceView and WebKit widgets. +

+ +
+ +

SourceView

+ +
+SourceView +
 New GtkSourceView plugin
+
+ +

+The SourceView widget offers automatic language recognition and syntax highlighting +for a huge number of programming languages (about 110, I think). +

+ +

I've put the SourceView functions into a plugin. This loads the additional required shared library and the links to the functions contained in that library. +You only need to include the GtkSourceView.plugin when you want to use this +editor widget. +

+ +

A set of syntax files for Euphoria 4.0 by Mario Steele can be found in /demos/resources/gedit-syntax. +Just copy them as instructed in the README. +

+ +

One reason for making this a plugin is that some installations don't automatically +include the GtkSourceView library. Making the sourceview code an integral part of GtkEngine.e would cause +problems if the sourceview library could not be found. A second reason; having it separate makes it easier for me to continue adding sourceview functions. Currently only a few are implemented, but it is useful nevertheless. I use it to edit these web pages and my demo programs. See test201). +

+ +

To Do: implement code completion and search functions

+
+ +
+ +
+Webkit +
 Webkit demo
+
+ +

WebKit

+ +

EuGTK also includes a WebKit plugin, +which allows you to incorporate a web browser widget into your program. +You are free to implement - in Euphoria! - features that may +not even be available on Firefox™ or Chrome™! +

+ +

+The WebKit plugin includes a pop-up Web Inspector, similar to that in +Firefox™ and Chrome™. +

+ +

Like the SourceView, this plugin is still under development, but is quite usable already. +See examples/webkit.ex +

+ + +

To Do: implement security and script-running features

+
+ + +
+ + +


Broadway Server

+ +
+
+Broadway +
 EuGTK running on Broadway server in Firefox™ browser window
+
+
+ +

+With the latest versions of GTK, you can specify the Broadway server +(broadwayd) to run your EuGTK programs, and view them on +any connected device which has an up-to-date HTML5 web browser such as Firefox™. Neither Euphoria nor EuGTK are required on the client! +

+ +

+The Broadway server that comes with Mint 18 works GREAT!. Over 95% of the 200+ demos work +with Firefox 47.0, and most of those that fail could probably could be modified to work. +

+ +

I have had as many as 50 EuGTK programs running simultaneously in +a single Firefox browser window, while only using about 50% CPU. +

+ + +


BEAR

+
+ +bear + +
 The BEAR
+
+ +

+That's an acronym for a small program, a little over 800 lines of code, which took a couple of days +to write and test. +

+ +

Since it's written in Euphoria, the single source code file is only 21.5k in length, +

The BEAR has already been used extensively to edit these doc pages. If you look at the raw +html, you'll see how much cleaner +it is now than before :) +

+ +

Encorporating a full-fledged web browser widget similar to Firefox™, and a source-code + editor which can recognize and colorize over 100 programming languages, this allows me to + browse and edit html pages, and if those pages contain links to source code, display and + edit the source. If the source is Euphoria, you can also test run the program! + (Other languages could easily be added.) +

+ +

+The web browser panel has buttons to zoom in / out, and the editor panel +has selectable fonts, optional line numbers and the ability to make visible +"white space" characters, such as spaces and tabs. + +

+ +

+When html pages are edited, the Web view is refreshed whenever the editor +Save button is clicked, so that changes are instantly visible. +

+ +

+Modified source code is saved to temp files for the test run. +Your BEAR preferences are stored in a hidden file: +.bear.ini located in your $HOME directory. +

+ +

The BEAR requires the latest versions of both libgtksourceview-3 and libwebkit2gtk-3.

+ + +


Compared to C

+ +

+Below is a simple "Hello World!" program written in C, taken from the GTK docs +(with comments removed). Following that is the same program written in EuGTK. +

+ + + + + + + + + + + + + + + + + + + + +
+ C Code +
+
+
+#include <gtk/gtk.h>
+
+static void
+print_hello (GtkWidget *widget,
+	gpointer   data)
+{
+  g_print ("Hello World\n");
+}
+
+static gboolean
+on_delete_event (GtkWidget *widget,
+	    GdkEvent  *event,
+	    gpointer   data)
+{
+  g_print ("delete event occurred\n");
+  return TRUE;
+}
+
+int
+main (int   argc,
+	 char *argv[])
+{
+  GtkWidget *window;
+  GtkWidget *button;
+
+  gtk_init (&argc, &argv);
+
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_window_set_title (GTK_WINDOW (window), "Hello");
+  g_signal_connect (window, "delete-event", G_CALLBACK (on_delete_event), NULL);
+  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  gtk_container_set_border_width (GTK_CONTAINER (window), 10);
+  button = gtk_button_new_with_label ("Hello World");
+  g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL);
+  g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window);
+  gtk_container_add (GTK_CONTAINER (window), button);
+  gtk_widget_show (button);
+  gtk_widget_show (window);
+  gtk_main ();
+
+  return 0;
+}
+
+
Euphoria
+
-----------------------------------------------------------------
+-- Purpose:
+-- Show a window with a button; when the button is clicked, 
+-- print "Hello World" on the terminal, then exit.
+---------------------------------------------------------------------
+
+include GtkEngine.e
+
+constant window = create(GtkWindow,
+    {"title","Hello"},
+    {"border width",10},
+    {"connect","destroy","Quit"},
+    {"connect","delete-event","on_delete_event"}})
+
+constant button = create(GtkButton,
+    {"label","Hello World"},
+    {"connect","clicked","print_hello"},
+    {"connect","clicked",destroy,window}})
+    add(window,button)
+
+show_all(window)
+main()
+
+global function print_hello()
+    puts(1,"Hello World\n")
+    return FALSE
+end function
+
+global function on_delete_event()
+    puts(1,"delete event occurred\n")
+    return FALSE
+end function
+
+
+ +

Now you know why C programmers grow bald at an earlier age than others.

+ +

+Even with this simple program, you can see the difference. As C programs grow larger, +they become increasingly littered with type-casts, pointer references, etc., +while the Euphoria code remains shorter and much more readable. +

+

+For example, compare the following two equivalent lines of code: +

    +
  • gtk_window_set_title (GTK_WINDOW ( window), "Hello"); /* C */
  • +
  • set(window,"title","Hello") -- Euphoria
  • +
+The code shown in blue is required because C is not object-oriented, so you must specify the correct routine to be +called, and must tell C what type of object the window variable is. EuGTK tracks objects as they are +created, so it knows which routine to call, and what type of object it is dealing with without +the programmer having to specify each time. +

+ +

+Or to put it another way, the C code is full of distracting 'noise', while Euphoria is cleaner and quieter. Other than that, +the program structure is in other respects pretty similar, so that you can port a C or Python program to Eu in many cases without +much difficulty. I've done just that for many of the test programs in this package. +

+ +
+


Recent Changes

+ +

+4.11.5: To make space for new openGL graphics, the seldom-used Pango text and Cairo drawing functions have been moved to their own include: +GtkCairo.e. If your program uses Cairo graphics or PangoFont calls, the only change needed in your source code is to include GtkCairo.e following GtkEngine.e. See test60 for example. +

+ + +


Wee Help Mod

+ +

To add [F1] pop-up html help for +Gtk widgets, as well as Euphoria keywords, +make the change shown below to wee.exw:


+global procedure context_help()
+    sequence text, decls, word, name_space, path
+    integer pos, junk
+    object help
+
+    text = get_edit_text()
+    pos = get_pos()
+    word = word_pos(text, pos)
+    if length(word) < 2 then
+	name_space = ""
+	word = ""
+    else
+	name_space = word[2]
+	word = word[1]
+    end if
+
+-- add the following 4 lines to add pop-up GTK help:
+  if match("Gtk",word) = 1 then
+    ui_show_uri("FILE://" & canonical_path(sprintf("~/gtk3/%s.html",{word})))  
+    return
+  end if
+  -- my GTK docs are in a gtk3 folder in my home directory
+  -- adjust as necessary for your setup.	 
+
+

+ + +


Tested Platforms:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Tested with
EuphoriaGTKDistroArchPlatform
4.0.43.0.8Ultimated Edition 3.032-bit AMD Athlon II X2 220 processor, 2800mhz, 4gig
4.0.53.0.8Ultimated Edition 3.032-bit AMD Athlon 64x2 processor, 1000mhz, 873meg
4.0.53.2.0Mint 12 *32-bitPentium M processor, 1500 mhz. 487 megs
4.1.03.0.8Mint 1132-bitPentium M processor 1.5ghz, 512meg
4.1.03.4.1Luninux (Ubuntu 12.04)64-bit AMD Athlon II X2 220 processor, 2800mhz, 4gig
4.1.03.4.2Mint 13 *64-bit
4.1.03.6.0Mint 14 * 64-bit
4.1.03.6.2Manjaro xfce 0.8.3-x86-64 *64-bit
4.1.03.6.4Mint 15 Mate *64-bit
4.1.03.8.4,Mint 16 Cinnamon *64-bit
No longer testing on older platforms listed above.
Above, 14-year-old laptops
4.1.0 rev. 4467,3.10.6Parsix 4.0 (Gloria) *64-bitIntel Core 2 Quad CPU 2.33 ghz 8 gig
4.1.0 rev. 57833.8.4Mint 16 *64-bit
4.1.03.10.2SalentOS (Ubuntu 14.04) *64-bit
4.1.0 rev. 62383.10.8Mint 17 Cinnamon *64-bit
4.1.03.10.8Mint 17 Mate *64-bit
4.1.03.14.7Ubuntu Vivid 3.18.0-9-generic *64-bit
4.1.03.6.4Windows 764-bit
4.1.0 b23.10.8Mint 17 *64-bit
4.1.0 b23.14Ubuntu Vivid64-bit
4.1.0 development3.16.6Ubuntu MATE 15.10 *64-bit
4.1.0 rev. 63183.16.6Mint 17 * works fine!64-bit
4.1.0 rev. 63183.18.9Ubuntu 16 * has a few bugs64-bit
4.1.0 rev. 63183.18.9Mint 18 *64-bit
4.1.0 rev. 63183.20.2Windows™ 764-bit
* Best results
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
History
EuGTK 4.6.7Added GtkPrinter.e, an engine to handle most common printing tasks!
EuGTK 4.6.9Modified Kenneth Rhodes' gneui.ex to parse ex.err and position Geany editor at error position. +
EuGTK 4.7.0Complete re-write to make the code cleaner and hopefully faster! +
EuGTK 4.7.5Major code cleanup, new features, improved documentation, more demos!
EuGTK 4.7.6Updated GtkPrinter.e and documentation.
EuGTK 4.8.0Update for new GTK versions and bug-fix
EuGTK 4.8.1Changes and tests to work with GTK 3.10+
EuGTK 4.8.6Improved ListView functions & documentation, new button and menu options.
EuGTK 4.8.7Improved Glade compatibility, added new Glade demos.
EuGTK 4.8.9Implemented Glade namespacing, new button images
EuGTK 4.9.0Windows 7™, 64-bit tests run 85% successfully! OS X™ also reported to work.
EuGTK 4.9.5Updated GtkSettings.e, added plugin capability.
EuGTK 4.9.8Bug fixes, inproved Windows™ compatibility.
EuGTK 4.9.9Broadway server - run EuGTK programs over network! No Euphoria or GTK required on clients!
EuGTK 4.10.0Added convenient functions to save control values and states to a +config or ini type file.
EuGTK 4.10.1Added demos of GtkSourceView and GtkWebKit plugins.
EuGTK 4.11.0Updated demos and documentation. Tested new GTK 3.16 widgets and functions.
EuGTK 4.11.2Added plug/socket demo, updated plug-ins, improved GtkPrinter, fixed some memory leaks.
EuGTK 4.11.4Fixed most (hopefully, all) memory leaks, added SourceView functions.
EuGTK 4.11.5Moved Cairo functions to a separate include; graphics will use GtkGLArea in the future.
EuGTK 4.11.6Updated numerous programs & documentation, added new browser program and BEAR.ex
EuGTK 4.11.7Improved httpd.ex and webserver.ex; colorized documentation sourcecode; debugged the BEAR :)
EuGTK 4.11.8Improved httpd.ex, added GTK 3.21 functions
EuGTK 4.11.9Debugged and tested on Windows 7™; about 80% working.
EuGTK 4.11.10Windows™ debugging, improved stability of the BEAR.
EuGTK 4.11.11Broadway server works with 90% of demos! (Mint 18); more stable BEAR!
EuGTK 4.12.095% of demos run on Windows 7,
added style chooser to SourceView editor.
Disclaimer
With the many different options available, I cannot guarantee that everything +will work 'just fine' everywhere.
Different platforms, window managers, +themes, and unpredictable user-settings make this impossible.
+If you want to be sure your program will work +on a given computer, send me your program and the computer, I'll be glad to test it, +providing I can keep the computer afterward :)
+ +
+ + + + + diff --git a/eugtk/examples/documentation/ServerHelp.html b/eugtk/examples/documentation/ServerHelp.html new file mode 100644 index 0000000..9c77b58 --- /dev/null +++ b/eugtk/examples/documentation/ServerHelp.html @@ -0,0 +1,184 @@ + + + + + Eu Server + + + + + +
+ GTK Logo + OpenEuphoria Logo + server + +

EuGTK 4.12.0

+ +


Euphoria Web Server

+

version 1.1

+
+ + + + + +
+This uses a heavily modified httpd.ex (from the Eu demos) to serve up files over the local network. +

+ +

+Apache would work, but who wants to deal with all that arcane stuff?, Besides, +I'd still have to write cgi code to display the pages... so why go thru all that +just to share some files? +This solution is much simpler, and is written in Euphoria, so you can modify it as you wish! +

+ +

+Httpd.ex can work from a command line - just issue + %> eui httpd to see the options. When running from the command line, you'll need to enter +your server's IP address (use ifconfig to get that), and port, perhaps 8080, and the root (starting directory). +

+ +

+You can run more than one server at a time, just use a different port for each. For example, +set the root for port 8081 to your Music/Blues folder, and the root for port 8082 to your +Music/Opera folder - that way, listeners won't have to wade thru albums they may be allergic to:) +

+ +

+To make the server easier to use, I've added the EuGTK GUI shown above, which lets you select some options, and then starts the server running in the background + when you click the OK button. Once it's running, you just enter the IP address and port in your tablet or phone's +browser address bar to connect. e.g: 192.168.1.100:8080 +

+ + +


httpd.ex

+
    +
  • -help displays Usage
  • +
  • -bind required ip_address:port, e.g. 192.168.1.100:8080
  • +
  • -root required e.g. /home/irv/demos/documentation
  • +
  • -log optional, name of log file
  • +
  • -h optional, show hidden files in directory listing
  • +
  • -s optional, sort directory listings
  • +
  • -r optional, include full request and response in log
  • +
  • -t optional, number of tries to obtain port before giving up
  • +
+ +


webserver.ex

+
+

+ + + +Screenshot-18 + +

+The appearance of the page is controlled by a file named .httpd.css, if it exists in the +currently-browsed folder. This is done so that directory +listings from different folders can have their own individual appearances (see screenshot above). +If no .httpd.css exists in a given folder, defaults built into +httpd.ex will be used. +

+ +Screenshot-11 +

+Above, webserver.ex serving a specified file as entered on the address bar, or by clicking on a link in a previous page. +

+ +

+After closing the server, or a crash, it may take several seconds to minutes for your computer to +free the port you've used. Trying to run again too soon using the same port will result in an error (-2). +I have included a loop which will retry up to 20 times (unless overridden by the -t option), and then abort. If this happens, and you are running from the GUI, you can try hitting the OK button again. It may take +several tries, or you may have to shut down the port manually from a terminal. +

+ +
+ +
+ +
+ + + diff --git a/eugtk/examples/documentation/StartingGlade.html b/eugtk/examples/documentation/StartingGlade.html new file mode 100644 index 0000000..bafddd8 --- /dev/null +++ b/eugtk/examples/documentation/StartingGlade.html @@ -0,0 +1,271 @@ + + + + + Starting Glade Chap. 1 + + + + + +glade test 1 + +

Using Glade 1

+ + +

Getting Started

+

Step 1 - Design a Window

+

+

    +
  1. Open Glade, and create a new file +
    (File/New menu item)
    +
  2. + + +
  3. Click on the Window icon +
    (leftmost item under the Toplevels tab)
    +
    + This will add a main window to your glade program. + It will be named window1.
    +
  4. + +
  5. Next, click on the Common tab in the Window Properties pane +
    (lower right) and scroll down a bit to the Widget Flags section.
    +
  6. + +
  7. Check the Visible checkbox. +
    If you don't make the main window visible, + how are you going to be able to tell if your program + is running? :)
    +
  8. + +
  9. Save it with the extension .glade, e.g. test1.glade
  10. +
+

+ +

+This will produce a .glade xml file which describes the interface. +

+ +

+You don't need to be concerned with this xml, there's no need even +to look at it, much less edit it. The sample below is provided just +to satisfy your curiosity: +

+ +
<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.16.1 -->
+<interface>
+  <requires lib="gtk+" version="3.0"/>
+  <object class="GtkWindow" id="window1">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="title" translatable="yes">Glade Test 1</property>
+    <child>
+      <placeholder/>
+    </child>
+  </object>
+</interface>
+ +

Step 2 - Link to Euphoria

+

+Create a Euphoria program to load and run the .xml you just created: +

+
include GtkEngine.e
+
+add(builder,"~/demos/examples/glade/test1.glade") 
+
+main()
+
+ +

+Save this as test1.ex. If you keep the names the same, it will be less confusing. +

+ +

Step 3 - Test Run

+

test1 +

+You will always run from an x-terminal (mate-terminal, etc) until your program is completely finished. There is no way around this if you ever expect to get it completely debugged.

+ +

+Run the program: +

+$> eui test1 +
+

+ +
+ +
+ +
+ +

Step 4 - Adding Widgets

+

x2 +

    +
  • Add a container for a menu and button to your window
  • +
      +
    1. Go back to Glade, and select a container. +
      Box will do nicely
      +
      (see in screenshot above)
      +
    2. + +
    3. Drag and drop it into the window +
      (accept the default number of items, and click Create)
      +
    4. +
    + +
  • Add a standard menu to your window
  • +
      +
    1. Click on File +
      (in the little 3-sided box under Containers, also)
      +
    2. + +
    3. Drop it into the top panel in the window.
    4. +
    + +
  • Add a Quit button to your window
  • +
      +
    1. Click on the OK button +
      (under the Control and Display tab)
      +
    2. + +
    3. Drop that into the bottom panel of the window.
    4. + +
    5. Click on the actual button (in the window) to select it.
    6. + +
    7. Select the General tab under Button properties +
      (lower right pane)
      +
    8. + +
    9. Scroll down to the Button Content section, click Stock Button, and from the combo box select Quit
      (scroll down the list)
      +
    10. + +
    11. Click on the Signals tab in the Button properties pane.
    12. + +
    13. Select the clicked signal] +
      where it says <Type here>, enter Quit -- no quotes please
      +
    14. + +
    15. Be sure to hit enter or click on something else +
      (so that your typed entry will be saved. -- this is a quirk of Glade)
      +
    16. +
    + +
  • Save your work +
      +
    • Ctl-s, File/Save, or click on the "save the current project" toolbar icon.
    • +
    +
+ +

+ +
+ +

+test2 +You'll now have a window with a fairly complete menu and a functioning Quit button. +

+ +

+But wait!
The button works, but the File/Quit menu item doesn't! +

+ +

+Let's fix that: +

    +
  • In Glade, click on the File menu item on your new window +
    + (not the Glade File menu, your new menu) +
    +
    +
      +
    • This will select menuitem1 in the upper right Glade pane
    • +
    • Click the arrow to open the submenu (menu1)
    • +
    • Click its arrow to expand the actual menu items
    • +
    • Select imagemenuitem5 + (That will be your File/Quit menu item.) +
    • +
    +
    +
  • + +
  • From the Menu Item Properties pane (lower right) select the Signals tab.
  • +
  • Select the activate signal, and as you did with the Quit button, type in Quit.
  • +
+

+ +

+Now your File menu Quit option will...erm.. quit.

+

+ +
+

Step 5 - Connecting Euphoria Functions

+

+Let's add some actual Euphoria code next. Follow the steps directly above, but this time click on +the Help menu item, and expand the list so that you can select imagemenuitem10 (Help/About). +

    +
  • In the Signals tab, select activate and type in help_me (again, no quotes, hit enter)
  • +
  • Save your work, and run the program again.
  • +
+ +

In your terminal you should see something like:

+ +
+
+-----------------------------------------------
+-- Undeclared function in test1.glade
+-----------------------------------------------
+
+---------------------------
+global function help_me() 
+---------------------------
+
+return 1
+end function
+
+
+ +

+What to do? Copy the function prototype and paste it into your Euphoria program. +Then edit it to look like the one below: +

test3 + +
 --------------------------
+ global function help_me() 
+ --------------------------
+ Info(,,"About","My fine program!")
+ return 1
+ end function
+
+ +

+Run it again, and click on the Help/About menu item. Note that your program is still only +7 lines of code. +

+ +
+ +

+


+
On to topic two +
+

+ +
+
+ hint +

+ This page edited by The Bear, + a web-page and programming editor + written in Euphoria. +

+

Updated for EuGTK version 4.11.11, Sept 1, 2016
+ All code © 2016 by Irv Mullins +

+
+
+ + + + diff --git a/eugtk/examples/documentation/StartingGlade2.html b/eugtk/examples/documentation/StartingGlade2.html new file mode 100644 index 0000000..affe23d --- /dev/null +++ b/eugtk/examples/documentation/StartingGlade2.html @@ -0,0 +1,208 @@ + + + + + Starting Glade - Chap. 2 + + + + + +

Using Glade

+ +glade + +

Linking more functions

+

Opening a file

+ +

+Use Glade to select the File/Open menu item, which will be named imagemenuitem2
+(note that you are free to change the name of any item by typing the new name +into the ID: entry on the General tab for that item. +

+ +

+Let's do so, and change this to the more meaningful name: file_open +(as usual, no quotes). +

+ +

+Now select the Signals tab, and set the activate handler to be open_file +(ok, so I'm not being very original, too bad :p) +

+ +

Click the Save the Current Project toolbutton, and run your program again. +In your terminal you should see something resembling: +

+-------------------------------------------------
+-- Undeclared function in test1.glade
+-------------------------------------------------
+
+------------------------------
+global function open_file() 
+------------------------------
+
+return 1
+end function
+
+ +

+You should have expected that. Copy this template, paste it into your Eu program, +and fill in the blank. +

+ +

For this program, you'll also have to +add include GtkFileSelector.e to your program. +

+ +

+include GtkEngine.e
+include GtkFileSelector.e
+
+add(builder,"~/demos/examples/glade/test1.glade")
+
+main()
+
+---------------------------
+global function help_me() 
+---------------------------
+return Info(,,"About","My fine program!")
+end function
+
+----------------------------
+global function open_file() 
+----------------------------
+object fname = fileselector:Open("*.ex")
+if sequence(fname) then
+	Info(,,"You Selected",fname)
+end if
+return 1
+end function
+
+
+ +

+Click on a file, and you should see the filename displayed in +a neat pop-up box. +

+ +
+ +glade test 1 +

Adding Widgets

+

Containers

+ +

+If you recall, the original Boxgreen star we added as the first item in our window had +3 'divisions'. We filled the first (top) with a menu, and the 3rd (bottom) with +a button. The middle one was left empty, and so it doesn't show at all. +

+ +

Let's add some things to the middle. +We can't put more than one item in there; try it, you'll see. +

+ +

+We'll need a container if we want more than one thing there, so choose another +Box green star, +drop it into the empty middle space, change number of items to 2, and click create. +The default orientation is vertical, which won't do for this particular demo, so change it +to horizontal. +

+ +

+Into the left-hand panel of the Box we just added, drop an image container. It's the little house with the yellow roof in the Control and Display section of the left-hand toolbar. little house +

+ +

+In the right-hand panel, drop a label container. It's also in the Control and Display section. Under Appearance/Label: type in some text. Use markup if you like, and click the Use Markup checkbox. +Save your work, you should do this frequently. +

+ +test5 + +

+What about the image? +We'll need to pick one, so click on the little missing image +icon on your program's window, and choose one of the following: +

    +
  • A stock id from the drop-down combo
  • +
  • An icon name
    face-cool, for example
  • +
  • A file +
    Choose one from the file selector on the right.
    +
    (You'll find that if you use an image loaded from a file, + the image must be in the same folder as your program, + otherwise it's difficult, but not impossible, +for your program to find it at runtime.) +
    +
  • +
+

+ +

+Run the program again, and note that no changes or additions or adjustments were required to the 12 lines of Euphoria source code. +

+ +
+
+ +Calendar +

+Suppose we want an image more pleasing than the one above? +Just change the open_file function a bit: +

+ +

+

 -----------------------------
+ global function open_file() 
+ -----------------------------
+ fileselector:filters = {"image"}
+ object newfile = fileselector:Open("*")
+ if sequence(newfile) then
+   set("image1","from file",newfile)
+ end if
+ return 1
+ end function
+
+

+ +

+Just click on the image you prefer. I like this one! +

+ +
+

In Conclusion

+

Chapters 3...99

+ +

+Building more complex objects such as TreeViews, ListViews, etc. with Glade will involve some experimenting. +Explaining these in detail (using words) would require a whole book, which, like most such +books, would cost $99.00 plus tax, and would bore you half to death. +

+ +

+So, if you really feel that you can't handle it on your own from here, start saving your $99.00 (plus tax) for the book. You might have a long wait. +

+ +

But frankly, Glade doesn't save any time when creating these objects, since the process is somewhat tedious. You can achieve the same outcome by writing just a few +lines of code with an ordinary text editor, cutting and pasting from demo programs where applicable. Try it - this isn't rocket science! +

+ +
+ +
+
+ hint +

+ This page edited by The Bear, + a web-page and programming editor + written in Euphoria. +

+

Updated for EuGTK version 4.11.11, Sept 1, 2016
+ All code © 2016 by Irv Mullins +

+
+
+ + + diff --git a/eugtk/examples/documentation/bear.html b/eugtk/examples/documentation/bear.html new file mode 100644 index 0000000..4794b43 --- /dev/null +++ b/eugtk/examples/documentation/bear.html @@ -0,0 +1,153 @@ + + + + Bear Docs + + + + + +
+


The Bear Help file

+
+ +
+ + bear +
+  The BEAR can even view Bear videos! + +
+
+ +
+ +

Browser Controls

+ + +

+To open a page from the web, click the Network button. A dialog box +will appear for you to type in a web address: http://OpenEuphoria.org, +for example. This button will be disabled if you are not on a network. +

+

+To open a local file (.html or otherwise), click the Local button. In most cases, +the file type will be automatically recognized and placed into the appropriate +window. +

+ +
+hint + +

+The sourcecode editor does not automatically 'track' the +current web page being viewed. If you want to edit the current web page +.html, you must click on the Edit button in the Browser toolbar!

+
+ +
+ +

Source Controls

+ + + +

+Click New or Open to create or edit a text file (Euphoria source code, for example). +If the file extension is .ex, then the Execute button in the Source toolbar +will be enabled; clicking on it will run a temporary copy of the program in the Source pane. +If you are satisfied with the way the temporary copy ran, just click on the Save or SaveAs buttons +to write the updated code to disk. +

+ + + +

+The Execute button will be disabled if the code being edited is not +a Euphoria program, but the Save and SaveAs buttons will function to save +text, including .html that you may have modified. If the file is .html, then +the WebView will be reloaded to show the updated web page. +

+ +
+

Preferences

+

+Options for the source code editor are: +

    +
  • Set Editor Font
    (only monospace fonts are shown in the +font dialog, since this is primarily for editing source and html +code)
  • +
  • Use Line Numbers
  • +
  • Spaces and Tabs
    Make whitespace characters visible
  • +
+

+
+ +
+ +Navigating +

+In order to more easily edit html source code, you can highlight +words or a phrase in the web view, and select 'copy' from the pop-up menu. +Then click on the Find button in the Web Page control panel. +This will try to scroll the editor +pane to find the matching word(s). +

+ +

Avoid clicking on text that +includes markup, such as italics or bold, as those won't match a text search. +Neither will markup items such as & < >, etc., +or hidden markup such as links. +

+ +

This scheme doesn't always work perfectly, +(sometimes not at all, try clicking on the find button again), +but it's certainly +better than nothing! If you know of a better way, please let me know! +

+ +
+
+ hint +

+ This page edited by The Bear, + a web-page and programming editor + written in Euphoria. +

+

+ Updated for EuGTK version 4.11.11, Aug 15, 2016
+ All code © 2016 by Irv Mullins +

+
+
+ + + diff --git a/eugtk/examples/documentation/dialogs.html b/eugtk/examples/documentation/dialogs.html new file mode 100644 index 0000000..03194df --- /dev/null +++ b/eugtk/examples/documentation/dialogs.html @@ -0,0 +1,277 @@ + + + + + + + EuGTK Dialogs + + + + + +
+ + + gnome-run + +


EuGTK 4.12.0

+

Built-in Dialogs


+
+ + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Built-in Dialogs
+ +
+hint +

New:
+An easy-to-use Custom dialog, and non-modal dialogs! +

+
+ +

+ There are five pre-built modal dialogs in EuGTK, which you can use + in your own programs to save time and typing, while making your program + code much easier to read and maintain. They require only one line of code, + whereas using GTK's Dialogs or MessageDialogs can require many lines of code. There's also a non-modal dialog. +

+

+ Dialogs have a title, a primary text item, a secondary text item, + plus one or more buttons. +

+

+ Note that each dialog has different default titles, icons and buttons. + The primary and secondary text however, must be supplied by the programmer. +

+

+ Dialogs appearance and contents can be changed by exercising various options. See 8 below. +

+

+ All defaults can be overridden when creating a dialog. The + parameters to the dialog are shown below. All are optional.
+

    +
  1. Parent of the dialog +
    If you want the dialog to use the parent window's titlebar icon (and window theme allows), put the parent's handle here
  2. + +
  3. Title appearing on the titlebar +
    If omitted, title will be the type of dialog, e.g. Info, Error, Warning, or Question
  4. + +
  5. Primary text +
    Will be bold if there is secondary text, use markup if you wish
  6. + +
  7. Secondary text +
    Will be smaller than primary text, use markup if you wish
  8. + +
  9. Button set +
    Leave empty to use the default button set,
    +
    or use GTK_BUTTONS_ enums to change button set.
    +
    NULL (0) in this slot means don't use any buttons!
  10. + +
  11. Dialog icon +
    A GtkImage, GdkPixbuf, path to an image file, or name of stock or theme icon, + will override the default dialog icon with a custom image.
    +
    NULL in this slot means don't use a dialog icon.
    +
    Leave empty to use default Info, Warn, Error, Question icons
  12. + +
  13. Titlebar Icon +
    Name of icon, this overrides icon set by dialog.
    +
    NULL here means use parent's icon.
    +
    Leave empty to use default Info, Warn, Error, Question icons
    +
    Note: some themes refuse to show an icon on the titlebar.
  14. + +
    + +
  15. Modality +
    MODAL/NONMODAL
    +
  16. + +
  17. Addon + new in EuGTK 4.10 +
    You can pass the handle to a widget here, + and the widget will be added to the dialog. + The widget can, of course, be a container which + may contain several items. See example on the right, + which adds a GtkTextView widget to the + standard Info dialog.
    +
  18. + +
  19. X position + new in EuGTK 4.11 +
    You can pass an x position for the dialog, following the addon option
    +
  20. +
  21. Y position + new in EuGTK 4.11 +
    You can pass a y position for the dialog, following the X option
    +
  22. +
+

+
info dialog
error dialog
warn dialog
question dialog
custom dialog
+ + + + +


Creating the dialogs

+

+

    +
  • result = Info( [parent], [title], "Primary Text", "Secondary Text",
     [button type], [dialog icon], [titlebar icon], [modal], [addon], [x pos], [y pos])
  • +
  • result = Error( [parent], [title], "Primary Text", "Secondary Text",
     [button type], [dialog icon], [titlebar icon], [modal], [addon], [x pos], [y pos])
  • +
  • result = Warn( [parent], [title], "Primary Text", "Secondary Text",
     [button type], [dialog icon], [titlebar icon], [modal], [addon], [x pos], [y pos])
  • +
  • result = Question( [parent], [title], "Primary Text", "Secondary Text",
     [button type], [dialog icon], [titlebar icon], [modal], [addon], [x pos], [y pos])
  • +
  • result = Custom( [parent], [title], "Primary Text", "Secondary Text",
     [button type], [dialog icon], [titlebar icon], [modal], [addon], [x pos], [y pos])
  • +
+

+

+ Primary and Secondary text can be marked up as desired. [optional] parameters can be left empty, + defaults will be used. +

+ +
+ +


Modal Dialogs

+

Modal dialogs lock you out of doing other things until you reply to them, then return various values when dismissed via button clicks +or the titlebar 'close' button. These values are:
+

    +
  • MB_ABORT (-4) when dialog is closed using the titlebar 'close' button [X]
  • +
  • MB_OK (-5) when OK button is clicked
  • +
  • MB_CANCEL (-6) when Cancel button is clicked
  • +
  • MB_CLOSE (-7) when Close button is clicked
  • +
  • MB_YES (-8) when the Yes button is clicked
  • +
  • MB_NO (-9) when the No button is clicked
  • +
  • MB_APPLY (-10)
  • + +
+

+ +
+ + +


Non-modal dialogs

+

+ All the above built-in dialogs are by default modal, in that they capture the program focus until + they are dismissed. This is probably appropriate for most notification purposes. For places where + you need non-modal dialogs which you can leave on the screen while you work on + other windows in the same program, you'll have to do this a different way. +

+

+ Why, you ask? +

+

+ Because the reason for leaving dialogs on the screen is so they can + they interact with your code, perhaps + changing items in other windows in response to changes in dialog options. + I can't predict what those options and connections might be, so I can't provide a ready-to-use dialog. + You might start with a basic GtkDialog, and build one up yourself, but this can be a lot of work, so I've + added a pre-built Custom dialog with options. +

+ +
+ +

+ A non-modal dialog needs to be able to trigger actions before closing, + since it can remain on the screen for as long as the user wants. + Therefore, the dialog's buttons must be connected to user-written functions + prior to adding them to the dialog. +

+

+ To add buttons to a Custom dialog, use the following syntax: +

+ -- for one button
+object btn  = {{"gtk-ok",say,"OK"}} -- say is the call_back to your function Say(), and "OK" is text to send to the function.
+
+ -- or, for more than one
+object btns = { 
+	{"gtk-ok",say,"OK"},
+	{"gtk-cancel"}, -- any button not provided with a call_back will be used to cancel the dialog  (regardless of what the button caption says) 
+	{"gtk-quit","Quit"} -- this does the obvious, killing the whole program, probably not something you'd want to do from a non-modal dialog!
+}
+

+ +Next, you put the btn or btns array as the 5th parameter passed to the dialog constructor: +
	Custom(win,"Fonts Help","Instructions",help_text,btns)
+
+

+ +

+Most often, you will want to add some control(s) other than buttons to a non-modal dialog, for example, one +or more color chooser buttons, or a font chooser, etc., or perhaps some scrolling text or an image. +These would look out of place if they were added to the button area of a dialog. +

+ +

+To add these to the dialog's content area, create the item and pass the handle of this item as the Addon (9th) parameter to the dialog. +If you need several, pack them into a container and pass the handle of the container. See test200.ex. +

+ +

+It is best to limit the use of non-modal dialogs, since they tend to clutter up the screen. If you're using lots of these, +you are most likely doing something wrong. Menu options, sidebars, or moveable panes are often better substitutes. +

+ +
+
+ hint +

+ This page edited by The Bear, + a web-page and programming editor + written in Euphoria. +

+

+ Updated for EuGTK version 4.12.0, Sept 15, 2016
+ All code © 2016 by Irv Mullins +

+
+
+ + + diff --git a/eugtk/examples/documentation/favicon.ico b/eugtk/examples/documentation/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..6eebd39a9d89fc4a988b11d6b9aee70a4c4149f0 GIT binary patch literal 21230 zcmds<|8JdD9mk)p4Q>0e;*H+~@0*SYU|KRr9=xzBxiZ` zYMtr{bJy`d4BR_*Ii+0x!AC2xP^XOuUl!Zm9pQr?Yp#l{^2_dG#| zTfYANtBhB$w|#lMy>|tGkZ$|Nk9QvZE!S1XE7GCD*`=#*1+Axl{jFa-E>h!V9($=x=;KM$t@hW988w>X(QUbGU<&98$c*}u1zx~S?mXglps}?#hu&g!xcis&t zIDrEP)Oh%ZHt$`a{%mGdURpJDZ$KB{lDi1)g~%J2^^-?lis|AK=7h=7L@ku~m9}gf zWLDyF=h5>qT51VN49o?@D^+1cZL*U#OT*8+nMxNI65TXh5L*tBvbHJ-lb}?>`^a}E zVzf#n@P72*!?Z$Z*q6}IlWj0=ECU(u?&tnki7qZDhc|eNhKm*F`t^gDgLh;jHDTwm z*JHHQ5>{uWtOhi$aIhvCVp$G!1{eqkp^!zS)U@P-tCgApO#e2g ziP?IA*=QjQ2!5+=f8Vx4qo@AtqovBDr~VRKGqvOcYqyZ}=%f+sD;9hh2X1NW+<5pX z=_nO2F5G?cQYv6js8zTTTv`a`!-L;ClOI-X^C08W9H6dvmPTRUhe<&w9~-f1NfEiq zj%(G>efW=3{rr2i5VS?ahu44hQD8^LFYbBq?^WqiD-g@WPrnhkv44B}H-8GRHZAka zD}`BWP=GwV^`Rd+*b{Hp3~Mt$CzZF>=M^>c9L3U2r`KicwrzjvHzn8?{%UI1BkXzc zZ;m?JjqG~%Eu5Jdp3f)-!~%Bp&M%0R_tEF8uRb%K1U#IcIazS+I{tg+fgUjNyhSm? z5wNU-T67Gywj709;v{+&mwzglZGsnSn#^4kOCMmFTVO3+x1&Lg8MDW&$nM`q%nLj4w3hl2I9 zQ^}dfF9ajjbBk{St7jn69DE#r3kUWu9Y)yE*%kXn4eUPb%G*XPU`?2dG{vAO4+wzZ zid5bPMG`P##KpRbh&XQ z*xe^D)~sPY4P||F0}!Ze)AOlOS0bexeTXK6O0XEW{!EpVngj)%d^A5~znR-6O=gG|K0nGz;d5H2G#wC_LGiw+*uXrp`bHscg!-yuwV3(c62L$Cy^qI3Y|( zT2z9M-x^f5KxN}qt1J^Yj7yV?(~VPu?NSk{P=*eOeYy8<_kfZY(DbR_QJXCV`q0f_1c~n+_T~tUFdAEotqwq z^z!RG)Lnz87I#5>*$Zl-I~dFNVIh-p>0eP00|q7Pt&)kEx0Rn5W!`|*#djis0#$Ey zUSr(muKu2Vzs8MmX8&sa$nNf4KWSUFx2LB^z)O}aS+r=8)=Ojc4Ahr*WI+4uCDF- z*d34jeB{Iop4KW}XuGI=S?^u1b`8CZi95GE3FANi^WUlBi+SkS_zV3Vu%o@5c`xv-+La_iugh2Q$iD%$u5D zbHny)M}N_K;5^BStN*@<$A0whTOPR7{i&CmTRR1d{~M+Rm!QfAHxsZ9VVfsMndTcMpZ*=ZH*DT#l@UN5eDqA!+~rn{lb0|J0$yiX3zsHlv2xp* zLtLy%tWb2zh;f2K2X?lGDS^YSBq(@sCLl^S}c zwlAbU^p4Y%n#>ljnKM2JUfd z@#^9G2{CS!uh!o6pfLslAAwxOvE2?Z#Vv({hvT;aEVpr*GW=QOWoS|X(E*oRk4{_w zhXp9Wv|E{&I@!BTx+P{w*VEv|SjLDkDJ6ccGfWd$N_6fsHEI?Z%XSE)EEXMDxLAWK z^{IWAt5!HSqjfozl)~(&XRSmNtz4B<%3m%WFfmQEgRSb)M7QQd$l2jsiP6f7IXPT# z&9d6%Ryx$@$MkD5w3!%}CccD&>-yD9HkUT)dXSyZN4qJN=yYJ`2veX=0bcfL+7f6c zwF1IETryZOW%E8&_VPapQS_)wG}tE`*Gs@oJ2v2Rq^-oL3AC z0nU@AFn$Z?@Q13u6TqyMd{|M;d5zI$^!OsbK~rmjtXyr#>?=Y$mY?=88#|A^L2}kn zk-5_OG}XkZ2OmFKY3WgdO4V(S3elDs#;HJ75J5!7whL2|n#^^<QG+k1WEvO{LNG|=2} zW%LX(qw8TKny|sv9-AfrA~O$IGkC}*%T|q3pA=a;#`z4}RB$N|5olcY;1RQ8-&9hX zt8NzIxZL2C@PXz-<030hTcd1YI3{Y@!ZnaTxT9#LP0&FutHJa0p)of(J z2gm42-HLa;6X_IcPH+RL`I^9B5h$VNLgDpo;j^d8Oo)=a{c?t6MGsdzGy4>?C~Fdk zbovys_Ee3TtY!sV$XFRSCb<#m$P~^>=Z)D3bU3y)Z)iw#U){Vg0;p}w)f&06r-7_1 z{;1}X;&-j@j`2^D6y?dmX}K^hzn@IY?|Je&o;>Nv1yAN1w{oBFdGfnS(pN5@^yCRo zhO1oXeNUzvD}M*MyVTF5Cr@}XV$!NQuA8##x=ET83DNeZ?W9)Kysyr@2S$1Gy K_xc}yN%DW)d^|7! literal 0 HcmV?d00001 diff --git a/eugtk/examples/documentation/functions.html b/eugtk/examples/documentation/functions.html new file mode 100644 index 0000000..c7316ab --- /dev/null +++ b/eugtk/examples/documentation/functions.html @@ -0,0 +1,253 @@ + + + + + EuGTK Internals + + + + + + GTK LOGO + mongoose + gnome-run + +


EuGTK 4.12.0

+

Quick Function List

+
+ + + + + + + + +


Public functions ~ commonly-used

+
    +
  • create() returns handle to newly-created widget: win = create(GtkWindow)
  • +
  • set() sets a property for a widget: set(win,"background","blue")
  • +
  • get() gets a property: ? get(win,"background")
  • +
  • add() adds a widget to a container: add(win,panel); spaces divided equally
  • +
  • pack_start() adds at top/left
  • +
  • pack_end() adds at bottom/right
  • +
  • show() show a widget: show(btn)
  • +
  • show_all() show a container and all items contained within: show_all(win)
  • +
  • hide() hide a widget: hide(btn)
  • +
  • hide_all() hide a container and all items contained within: hide_all(win)
  • +
  • connect() connect a signal to a Eu function: connect(btn1,"clicked","FooBar",33) Note: connect() returns a sigid, usually ignored unless you plan to disconnect.
  • +
  • disconnect() disconnect a signal: disconnect(btn1,sigid)
  • +
  • main() start the GTK main processing loop: main()
  • +
  • requires() pop up an Error dialog if not available: requires("3.10","GtkRevealer")
  • +
  • destroy() destroy a widget: destroy(win)
  • +
  • unpack() convert data attached to a control back into format usable by Euphoria: unpack(data)
  • +
  • show_uri() call default handler for uri (file, http, etc...): show_uri("http://gtk.org")
  • +
  • "Quit" global call to shut down the GTK main processing loop: connect(win,"destroy","Quit")
  • +
  • pointer() obtains a handle, a.k.a. pointer, to an object loaded from Glade +constant win = pointer("help:window1")
  • +
  • _() shorthand for call_back(routine_id()), links signals to local functions, no global declarations required
  • +
  • $... shorthand for signal links e.g. $destroy=Quit
  • +
+ +

+See HowItWorks for details on the above functions, you will use some of them frequently! +

+ + +

See also: settings

+ + +


Utility functions ~ sometimes used

+
General functions
+
    +
  • has_icon(name) returns TRUE if named icon exists in current theme
  • +
  • list_icons() returns a {list} of all icon names in current theme
  • +
  • valid_icon({list}) given a list of possible icon names, returns handle to an image made from first valid name
  • +
  • valid_icon_name({list}) given a list of possible icon names, returns first valid name
  • +
  • icon_info(handle) returns a sequence: pointer to info struct, name, path, size, scale
  • +
  • class_name(handle) returns the classname from a widget handle: display(classname(win)) => "GtkWindow"
  • +
  • class_id(handle) returns the enumerated class for the handle: if classid(win) = GtkWindow then ...
  • +
  • object_name(handle) returns name if object has a name, -nil- otherwise
  • +
  • register(handle,class) registers handle as a class: register(win,GtkWindow) hardly ever needed.
  • +
  • to_sequence(GList) converts a glist pointer back into a Eu sequence: rarely used!
  • +
  • to_rgba(str) converts a color description to a pointer: ? to_rgba("skyblue")
  • +
  • from_rgba(ptr) converts a color pointer into "rgb(r,g,b)" or "rgba(r,g,b,a)"
  • +
  • pixbuf_formats() returns a list of implemented formats for pixbuf loader
  • +
+ +
+ +
Settings
+
    +
  • settings:Save()
  • +
  • settings:Load()
  • +
  • settings:Add()
  • +
+ +
+ +
Events
+
    +
  • events:id returns unique event id: ? events:id(event)
  • +
  • events:xy returns location of event
  • +
  • events:axes
  • +
  • events:time
  • +
  • events:state
  • +
  • events:window
  • +
  • events:device
  • +
  • events:clicks returns # of mouse clicks in event
  • +
  • events:scroll_dir
  • +
  • events:key returns keypressed value
  • +
  • events:button returns mouse button 1..3 when given an event: + ? events:button(event)
  • +
  • events:pending used when multitasking
  • +
  • events:main_iteration
  • +
  • events:main_iteration_do
  • +
+ +
+ +
Networking
+
    +
  • networked returns TRUE if your computer is part of a network
  • +
  • inet_connected returns TRUE if internet could be reached
  • +
  • get_net_address returns 127.0.0.1 or your current ip
  • +
+ +

See events

+ + +


Exported constants ~ available if you need them

+ +test0 screenshot + +
    +
  • version EuGTK version: "4.11.8"
  • +
  • release EuGTK release date: "Aug 1, 2014"
  • +
  • copyright EuGTK copyright: "(c) 2015 by Irv Mullins"
  • +
  • major_version for GTK 3.10.1: 3
  • +
  • minor_version for GTK 3.10.1: 10
  • +
  • micro_version for GTK 3.10.1: 1
  • +
  • user_name The user logged-in: irv
  • +
  • real_name Full name: Irv Mullins
  • +
  • host_name host name of computer: Mint17
  • +
  • host_addr host address: 192.168.1.100
  • +
  • home_dir logged-in user's home: /home/irv
  • +
  • temp_dir user's temp dir: /tmp
  • +
  • curr_dir user's currently-logged into directory
  • +
  • conf_dir user's config directory /home/irv/.conf
  • +
  • runt_dir user's runtime directory /run/user/1000
  • +
  • prg_name current program test0.ex
  • +
  • os_name Linux
  • +
  • os_distro Mint 17
  • +
  • os_version 3.13.0-24-generic
  • +
  • os_comp #46-Ubuntu SMP Thu Apr 10...
  • +
  • os_arch x86_64
  • +
  • os_term xterm
  • +
  • os_shell /bin/bash
  • +
  • eu_version version string: "4.1.0"
  • +
  • eu_revision revision # 6318
  • +
  • eu_date date compiled
  • +
  • today date program started
  • +
  • start_time time program started
  • +
    +
  • def_lang default language en-us
  • +
    +
  • CMD1 command_line[1] e.g. eui
  • +
  • CMD2 command_line[2] e.g. /home/irv/demos/test1.ex
  • +
    +
  • LGPL Text of the Lesser General Public License
  • +
  • stock_list List of GTK stock items - soon to be deprecated!
  • +
+ +

+Note 1: these constants are generated when EuGTK starts up, and are available in two different forms: +

    +
  • As individual constants
  • +
  • As key/value pairs in the gtk:info structure, + provided mainly for convenience when displaying them: +   display("[{prg_name}]",gtk:info)
  • +
+ See
test0 for an example. +

+ +

+ +


Other Stuff

+ + +Identifiers +

Below are unique identifiers used to specify storage types in List/Tree models, not only do these control how the value +is stored, but also how it is displayed: +

    +
  • gINT Store and display as an integer (rounds floats down)
  • +
  • gDBL Store and display as a double
  • +
  • gSTR Store and display as a string
  • +
  • gPTR Generic pointer - seldom used
  • +
  • gFLT Displays with six digits following the decimal point
  • +
  • gBOOL anything other than 0 displays TRUE, 0 displays FALSE
  • +
  • gPIX Stores handle to a pixbuf, displays that image
  • +
  • gCOMBO Stores handle to a GtkComboBox
  • +
+ +

Unique identifiers below save space in method prototypes; +programmer may use them when calling the three user functions which follow. +

    +
  • P = C_POINTER expected parameter is a pointer
  • +
  • I = C_INT expected parameter is an integer
  • +
  • S = E_OBJECT expected parameter is a string
  • +
  • B = C_BYTE expected parameter is boolean
  • +
  • D = C_DOUBLE expected parameter is a double
  • +
  • F = C_FLOAT expected parameter is a floating-point value
  • +
  • A = E_SEQUENCE expected parameter is an array
  • +
+ +
+User functions +

While mostly used internally by EuGTK, they may be useful +when testing or when implementing GTK methods which haven't been added to EuGTK. +

+
    +
  • gtk_func Example: gtk_func("gtk_label_set_text",{P},{allocate_string("Hello")})
  • +
  • gtk_str_func Example: puts(1,gtk_str_func("gtk_label_get_text",{P},{lbl})
  • +
  • gtk_proc Example: gtk_proc("gtk_widget_hide",{P},{win})
  • +
+ +
+ + + + diff --git a/eugtk/examples/documentation/guide_a.html b/eugtk/examples/documentation/guide_a.html new file mode 100644 index 0000000..bf0a9f0 --- /dev/null +++ b/eugtk/examples/documentation/guide_a.html @@ -0,0 +1,1558 @@ + + + + + + Alphabetical Guide + + + + + + + GTK LOGO + mongoose + + Cows from Space + + +


EuGTK 4.12.0

+

Alphabetical guide to GTK widgets

+
+
+ +Buttons below link to at least one example of each control: + + + + +
+hint + For more exhaustive - not to mention exhausting! - documentation, +see the GTK 3.0 docs

+
+ +
+ + +A
+ + +test28 + + +
    +
  • AboutDialog +test25, test28 +
    a pre-built pop-up dialog to display credits, license, etc...
    +
  • + +
  • Accelerators + test25, test80, test144 +
  • + +
  • Adjustment +test82, test83, test154 +
  • + +
  • Alignment +
    (deprecated, use 'align' and 'margin' properties instead)
    +
  • + +
  • Animated gifs test10 +
    on buttons: test102
    +
  • + +
  • AppChooserButton test123 +
    choose approprite app based on filetype
    +
  • + +
  • AppChooserDialog test115 +
    as above, but as a pop-up dialog
    +
  • + +
  • AppChooserWidget test124
  • +
    as above, but as a widget to add to your program window
    + + +
  • Arrows test93 +
    (deprecated as of GTK 3.14 - use icons instead)
    +
  • + +
  • AspectFrame test140, test161 +
    a frame which maintains its relative proportions when resized
    +
  • + +
  • Assistant test62 +
    a step-by-step guide for your users, helpful for program installation, setup, etc...
    +
  • + +
  • Auto-scrolling text test130 +
    (implemented with a timer
    +
  • + +
+ + +B
+ + +test157 + + + + + +C
+ +test116 + + +
    +
  • Cairo graphics test60, test61, + test65 +
  • + +
  • Calendar test31 +
    See Calendars
    +
  • + +
  • CellRendererCombo test121 +
    drop-down selections in lists
    +
  • + +
  • CellRendererPixbuf test35, test116 +
    display images in list rows
    +
  • + +
  • CellRendererProgress test33 +
    display progress bars in list rows
    +
  • + +
  • CellRendererSpin test148 +
    display numeric input in list rows
    +
  • + +
  • CellRendererText test33, test96 +
    display text in list rows
    +
  • + +
  • CellRendererToggle test35, test96 +
    display toggle or check buttons in list rows
    +
  • + + + + +
  • CheckButton test13, test15 +
  • + +
  • CheckMenuItem test54, test25 +
  • + +
  • Clipboard + + + +
  • + +
  • Colors see RGBA Colors +
    see also CSS below
    +
  • + +
  • ColorButton test59 +
    small button to select colors
    +
  • + +
  • ColorChooserDialog test185 +
    pop-up dialog to select colors
    +
  • + +
  • ColorChooserWidget test169 +
    widget to add to your window to select colors
    +
  • +
+ + + +
    +
  • ComboBox test116 +
    choose from a drop-down list of options
    +
  • + +
  • ComboBoxEntry test16.ex +
    as above, but includes an input box so user can type in an unlisted item
    +
  • + +
  • ComboBoxText test12 +
    as above, but easy-to-use for simple text options
    +
  • + +
  • Control 'data' fields test22 +
    associative lists to pass data via control actions
    +
  • +
+ + +test212 + + + + + +D
+ + +World Flags + + +
    +
  • Data Passing +
    attaching data items to controls, see Data Passing
    +
  • + +
  • Decorated property test110 +
    creates window without title-bar, etc. use with caution!
    +
  • + +
  • delete-event (trapping) test114 +
  • + +
  • Default buttons test4, test13, test14 +
  • + +
  • Dialogs built-in dialogs, see: dialogs.html +
  • + +
  • Display status test76 +
    (screen size, pointer location, etc.)
    +
  • + +
  • Drawing with Cairo + +
      +
    • complex demo with numerous examples: test60
    • +
    • graphics primitives: test61
    • +
    • shapes, borders and transparency: test65
    • +
    • text: test70
    • +
    +
    +
  • + +
+ +
+ + +E
+ + +entry + + +
    +
  • Entry + +
      +
    • single-line text entry widget: test7
    • +
    • selecting text: test146
    • +
    • with shared buffer: test57
    • +
    • with clickable icons: test174
    • +
    +
    +
  • + +
  • EntryCompletion test58 +
    show pop-down list of matching items
    +
  • + +
  • Error dialog see dialogs.html +
  • + +
  • EventBox
    trap events, add background colors to labels,etc..
    +
  • + +
  • Expander test131
  • +
    show/hide subsidiary info
    +
+ + +F
+ + +test136 + + +
    + +
  • FileChooserButton test120 +
    small button to pop up a file chooser
    +
  • + +
  • FileChooserDialog test23, test25 +
    pop-up dialog to select a file
    +
  • + +
  • FileChooserWidget test122 +
    to add to your window
    +
  • + +
  • FileFilter test23, test25 +
    select only certain types of files to show in the Chooser
    +
  • + +
  • Fixed + don't use this! See note below +
  • + +
  • FlowBox test202 +
    container that allows reflowing its children
    +
    requires GTK3.12+
    +
  • + +
  • Fonts test97, test133 +
    See also: fonts
    +
  • + +
  • FontChooserDialog test136 +
    pop up to select a font
    +
  • + +
  • FontSelectionDialog +
    deprecated, do not use!
    +
  • + +
  • FontButton test36, test59 +
    small button to add to your window to select a font
    +
  • + +
  • FontChooserWidget test183 +
    widget to add to your window to select a font
    +
  • + +
  • FontFilter test36 +
    use with font choosers
    +
  • + +
  • Frames + + + +
    See note below
    +
  • + +
+ +
+ + +G
+ +test34 + + + + + +H
+ +
    + +
  • HeaderBar test196 requires GTK 3.10+ +
  • + +
  • HSV (deprecated - never did work - removed) +
  • + +
+ + +I
+ + + icons + + + + + +J
+ +
    +
  • Justify property for labels test11 +
  • +
+ + +K
+
    +
  • Keyboard Accelerators test144 +
    using alt-key or ctl-key combinations
    +
  • + +
  • Keypress event processing - see examples/hangman
  • +
+ + +L
+ + +test5 + + +
    +
  • Labels + + + +
  • + +
  • Layout test38 +
    specify exact x/y positioning - avoid when possible!
    +
  • + +
  • LevelBar test187 +
    changes color based on value
    +
    requires GTK 3.6+
    +
  • + +
  • Links to web pages in labels: test103 +
  • + +
  • LinkButton test53 +
    button with web link
    +
  • + +
  • Linking to Euphoria Functions + test4 +
    See HowItWorks
    +
    linking multiple functions: test108
    +
  • + +
  • ListBox test196 +
    requires GTK 3.10+
    +
  • + + +test33 + + +
  • ListView
    + + New! simpler to use, please read ListView/TreeView + + +
  • + +
  • Locale test31 +
    customizing numbers and dates for your area
    +
  • + +
+ +
+ + +M
+ + +menus + + + + +
+ + +N
+ + + +
+ + +O
+ + + +test109 + + +
    +
  • Opacity property +test109, test209 +
    if window manager allows
    +
  • + +
  • OS Info test0, test160 +
  • + +
  • Overlay test113 +
  • + +
  • Override Color
    use "color" in most instances
    +
  • + +
  • Override Cursor test2 +
    use "cursor"
    +
  • + +
  • Override Font +
    use "font"
    +
  • + +
+ + +P
+ + + + +Q
+ + + +
+ + +R
+ + +test59 + + +
    +
  • RadioButton test14, test67, test96 +
    for selecting one item in a group of buttons
    +
  • + +
  • RadioMenuItem test54, test23, test25 +
    same, for menus
    +
  • + +
  • RadioToolButton test175 +
    for selecting one from a group of tool buttons
    +
  • + +
  • RecentChooser test125, test126 +
  • + +
  • RecentChooserDialog test73 +
    pop-up window for above
    +
  • + +
  • RecentChooserMenu test25 +
    menu version of above
    +
  • + +
  • RecentFilter test25 test125 +
    select what files are shown based on file types
    +
  • + +
  • Resizing images test27, test86 +
    using GdkPixbuf
    +
  • + +
  • Revealer test199 +
    fade in/out or slide left/right/up/down to show/hide items
    +
    requires GTK 3.10+
    +
  • + +
  • RGBA Colors see RGBA Colors +
  • + +
  • Rich Text test59 +
  • + +
+ + +S
+ + +test9 + + +
    +
  • ScaleButton test55 +
    button which changes icons based on value
    +
  • + +
  • Scale test9, test134 +
    for getting/setting numeric values
    + + + +
  • + +
  • SearchBar test167 +
    requires GTK 3.10+
    +
  • + +
  • SearchEntry test192 +
    text entry field with search and clear icons
    +
    requires GTK 3.6+
    +
  • + +
  • Search function for ListView browser.ex
  • + +
  • Screen Dimensions test76 +
  • + +
  • ScrolledWindow test48 +
    container for long lists, large pix, etc
    +
  • + +
  • Scrolling text demo test130 +
    auto-scroll some lengthy text
    +
  • + +
  • Separator test139 +
    ~ a thin horizontal or vertical divider bar
    +
  • + +
  • SeparatorMenuItem test54, test25 +
    ~ a horizontal divider for drop-down menus
    +
  • + +
  • ShowUri() +test120, test103 +
    build-in function which calls the registered handler app for most common files
    +
  • + +
  • SizeGroup test94 +
    force all widgets in the group to be identical size
    +
  • + +
  • SourceView +test201 also, read SourceView +
    view and edit source code in many languages
    +
    (must install Euphoria syntax files from ~/demos/resources)
    +
  • + +
  • SpinButton test8 +
    for numeric entry
    +
  • + +
  • Spinner examples/task.ex +
    round and round it goes....
    +
  • + +
  • Stack test156, test168 +
    requires GTK 3.10+
    +
  • + +
  • StatusIcon test101 +
    adds an icon to your screen's status bar, with optional tooltip
    +
  • + +
  • Stock Items test39 +
    (deprecated as of GTK3.10 - use named icons instead)
    +
    See README)
    +
  • + +
  • Stock Icons test141 +
    these are the replacements for stock items
    +
  • + +
  • SVG images test27 +
    the best choice if images are to be resized
    +
  • + +
  • Switch test15 +
    a simple on/off button
    +
  • + +
+ + +T
+ +
    + +
  • Table deprecated. Use GtkGrid +
  • + + +test31 + + +
  • testall + a EuGTK program which runs test programs 10 at a time. +
  • + +
  • TextBuffer + + + +
  • + + +
  • Text angle property test137 +
    rotate text in labels
    +
  • + +
  • Text justification in labels test11 +
    justify multi-line text in labels; right, left, center
    +
  • + +
  • TextTags test59 +
    creating named style tags which can be applied to text
    +
  • + +
  • TextView test112, test25, test59 +
    see note below
    +
  • + +
  • Themed Icons examples/icons.ex +
    for a list of icons see themeicons.txt
    +
  • + +
  • Timers test51, test52 +
    ~ call a function every x/1000 sec, or whenever computer is not otherwise busy
    +
  • + +
  • Title property test2.ex +
    text to appear on window titlebar
    +
  • + +
  • TitleBar
    -- new in GTK 10+ (but not worth the effort right now, wait for improvements.)
    +
  • + +
  • Titlebar icon test5 +
    see note below
    +
  • + +
  • ToggleButton test15 +
  • + +
  • ToggleToolButton test176 +
  • + +
  • ToolButtons test118, test119, test132 +
  • + +
  • ToolBars + + + +
  • + +
  • ToolPalette test132 +
    ~ show/hide groups of toolbuttons
    +
  • + +
  • Tooltips + + + +
  • + +
  • TreeView test33, test63 +
    generic container for List and Tree Views
    +
  • + +
+ + + +U,V
+ +utf + +
    + +
  • Unicode test111 +
  • + +
  • URI test85 +
    clickable links in labels
    +
  • + +
  • Versions test0 +
    display versions of EuGTK, GTK, and Euphoria
    +
  • + +
  • VolumeButton test56 +
  • + +
+ +
+ + +W
+ +
    +
  • Warning dialog see dialogs.html +
  • + +
  • Window (any of the demo programs!) +
    decorated: test110 use with great care!
    +
    opacity: test109 must be running a compositing window manager!
    +
  • + +
  • Window Size test65
  • + +
  • Window Title
    if you don't enter one, default is the program filename
    +
  • + +
+ +
+ + +X
+ + +


Notes:

+ + + +

GtkFixed

+ +

The GtkFixed widget lets you lay out things the Windows™ way, which is - no surprise - + the wrong way. +

+ +
+

+Quote from the GTK docs:

+ +"For most applications, you should not use this container! It keeps you from having to learn about the other GTK+ containers, but it results in broken applications. With GtkFixed, the following things will result in truncated text, overlapping widgets, and other display bugs: +

    +
  • Themes, which may change widget sizes.
  • +
  • Fonts other than the one you used to write the app will of course change the size of widgets containing text; keep in mind that users may use a larger font because of difficulty reading the default, or they may be using Windows or the framebuffer port of GTK+, where different fonts are available. +
  • Translation of text into other languages changes its size. Also, display of non-English text will use a different font in many cases.
  • +
+In addition, the fixed widget can't properly be mirrored in right-to-left languages such as Hebrew and Arabic. i.e. normally GTK+ will flip the interface to put labels to the right of the thing they label, but it can't do that with GtkFixed. So your application will not be usable in right-to-left languages. +

+ +

+Finally, fixed positioning makes it kind of annoying to add/remove GUI elements, since you have to reposition all the other elements. This is a long-term maintenance problem for your application. +" + +

+ +

+This is good advice. If you choose to ignore it, you'll have to do a lot of extra work, only to find that users are upset that your programs +don't work as they expect well-behaved Linux programs to work. +

+ +
+ + +

Icons

+

+
+Window Icons are the small icons that appear on the titlebar (see mongoose at far left), but where +these appear, and whether they appear at all, depends upon the theme in use. If you don't see +these in the demos, try changing your window theme. +

+ +

+Icons can be made from .jpg, .png, .gif, etc... files, gtk-stock items, or named icons from your +current theme. Run test39 to see stock items, and + examples/icons.ex to view and enumerate available theme icons +in themeicons.txt. +

+ +
+ + +

Fonts

+

+There are several ways to modify fonts. For text controls, such as labels: +

+
For the entire control:
+
+    set(ctl,"font","Courier 12") -- set font and size
+    set(ctl,"font","36") -- sets size only, keep user's font preference
+    set(ctl,"font","italic") -- italicises user's preferred font. Try also 'bold', 'bold italic', etc.
+
+

+You can specify several possible fonts. Gtk will use the first one it finds on the computer, +so put your choice as the first on the list. If you want to specify a point size, put it last +on the list (not separated with a comma!) +

+    set(ctl,"font","Century Schoolbook L, Serif, Purisa, Bitstream Charter")
+    set(ctl,"font","Purisa, Courier, Sans 18") -- first valid font will be shown in 18pt
+
+

+

+

Or, you may mark up portions of the text:
+
+   set(ctl,"markup","This is some <b>marked-up</b> <i>text</i>") -- styling text using a subset of HTML markup
+   set(ctl,"markup","<span font='Sans 24' color='red'>Hello</span>") -- selecting font style and size using markup
+
+See Pango Markup for details on the available markup attributes.
+For other controls, such as buttons, the appearance is determined by the chosen window theme, and the programmer has few options: either go along with the user's choice, or design a custom button. +

+ +

+In certain situations where you need more control, such as fonts with drop shadows, you might consider using CSS to change fonts. The CSS can be loaded either from a standard *.css file, or inline in your program. +Example: test72 and mystyle.css +

+

+The GTK docs have some detailed info on css options. +

+ +
+ +

Font Choosers

+

+When writing a program which uses a GtkFontButton, GtkFontChooser or GtkFontDialog, you will +probably want to have some control over which fonts are shown in the list of available fonts. +You can do this by writing a simple filter function to examine the font names and/or font face +names, and returning TRUE if that font should be shown in the dialog, or FALSE if not. +

+

Then set the font button or font dialog filter function to your filter routine:
+  set(btn,"filter func",_("MyFontFilter"))

+See test201 for an example. +

+ +
+ + + +test138 + +

Frames

+

In the transition to using CSS to control GTK widget appearance, some of the frame attributes have been lost, +meaning that the style settings (raised, sunken, etc) don't have any effect. +Therefore, if the exact appearance is important, you may have to use both the old-style settings plus the +new CSS styling below.

+
+ + + +

CSS

+

+Support for styling GTK apps with css is improving. You can create some +interesting effects, such as creating decorative backgrounds, rounded corners +on buttons and frames, and 'animated' buttons which change color when mouse passes +over or clicks them. +

+ +

+See test138 and test157 +for examples. +

+ +

+New in EuGTK4.11.2 you can load css directly in-line, without using a separate .css file. See test160. +

+ +

An alternative to css in some cases can be to use an ini file to control colors and styles +of specific widgets. See test153 +and test173. +

+ +
+ + + +

Colors

+

+EuGTK has greatly simplified GTK color managment. You can specify colors in +various ways - as hex values: #FF0000, quoted hex: "#FF0000", +as Red/Green/Blue strings: "rgb(255,0,0)" +or "rgba(255,0,0,0.5)" if you want to set alpha transparency. +

+ +

+The best way, however, is by name. The names used are +the xcolor names. See xcolors.txt. +Case doesn't matter. +

+ +
Gtk Widget Colors
+

+For normal GTK widgets, you can set foreground color, which generally applies to labels, fonts, etc. +and background color, which applies to windows, etc., but not labels, which have a +transparent background. Setting the background color for a container such as a GtkBox +does nothing, as these containers have a transparent background, +but setting the box's foreground color will affect any labels added to the box. +

+ +

+You can determine what will happen by examining the 'properties' of a given widget, +as well as the widget's ancestor properties - or, you can do this the easy way: just +set a color and see what happens. +

+ +

+Generally, 'color' can be used as a more-logical synonym for 'foreground' when setting widget colors. +Widget colors may also change depending upon the widget's 'state': mouse-over, pressed, selected, insensitive etc. +To set these state colors, use 'override color' and 'override background color'. +Whether or not these work depends entirely on the window manager preferences. +

+ +
Cairo Colors
+

+When you are drawing with Cairo, you have several ways to choose a drawing color: +

    +
  1. set(cr,"color","red") -- easy
  2. +
  3. set(cr,"color",#FF0000) -- hex value
  4. +
  5. set(cr,"color","#FF0000") -- quoted hex value
  6. +
  7. set(cr,"source rgb",1,0,0) -- to conform to the Cairo way. values are r,g,b in range 0=>1.0
  8. +
  9. set(cr,"source rgba",1,0,0,0.5) -- the Cairo way to set color and alpha. ranges are 0=>1.0
  10. +
+Note that you cannot use the "rgb(255,0,0)" or"rgba(255,0,0,1)" formats which work for widgets when defining colors for Cairo. +

+ +
+ + + +glade + + +

XML/GtkBuilder

+

GTK has a GtkBuilder object which can parse XML markup to create your user +interface. This means you can use Glade to build the interface 'visually', rather +than coding it by hand. You should try to update Glade so that it knows about +the latest GTK3 objects. Glade 3.16.1 seems to work ok, older versions, not so much. +

+ +

+The latest versions of EuGTK (4.9.0 and up) have improved functions for working with Glade, including +namespacing which works in a manner similar to Euphoria's namespacing, and access to Glade objects by name (in string form) rather than via pointer. +

+See EuGTK and Glade and Glade examples in ~/demos/glade. +

+ +
+ +
+ + +

Images

+

+Images can be created from almost any graphic file format: .jpg, .png, +.tiff, .gif, .xpm.... etc. simply by specifying the filename:
+

+    constant img = create(GtkImage,"~/demos/thumbnails/mongoose.png")
+ -- canonical_path() is automatically called to correct the filepath
+
+This will create an image 'widget' which can be used exactly once, +and it will be created at the same size as the original image in the file. +

+ +

Sometimes this is not what you want.

+ +

+If you need to re-use an image without having to reload it repeatedly, +or if you need to change its size, then you should load the image into +memory as a pixbuf, and create your image(s) from that pixbuf (which can be re-used). +

+    constant pix = create(GdkPixbuf,"~/demos/thumbnails/mongoose.png") 
+   -- note that this call is to GdkPixbuf, not GtkPixbuf!   
+    constant img = create(GtkImage,pix)
+
+

+ + +

Notes: When calling create(GdkPixbuf,...) +

    +
  1. If the above create() line contains only a filename +
    a pixbuf is returned at the natural size of the image file
  2. +
    +
  3. If one number follows the filename +
    the image will be scaled to +that width (original height x width ratio is retained)
  4. +
    +
  5. If two numbers follow the filename, (height x width) +
    the image will be stretched to those dimensions, predictably with ugly results, +unless you retained the h/w ration when figuring the new dimensions!
  6. +
    +
  7. If three numbers follow the filename, the third must be 1 or 0 + ~ a.k.a. TRUE or FALSE +
    if TRUE, then the original h x w ration will be maintained, and the +image will be scaled to either h or w, whichever is smaller.
    +
    if FALSE, then results will be the same as in line (3) above
  8. +
+
+ +

+In addition, images can be created from GtkStock items (deprecated), +or from named icons. +When using named icons, you can specify a size for the icon, either as one of +the GTK_ICON_SIZE enums, or in pixels, or omit the size altogether: +

+    constant oops = create(GtkImage,"face-surprise",GTK_ICON_SIZE_DIALOG) -- see GTK_ICON_SIZE_ enums
+    constant oops = create(GtkImage,"face-surprise",128) -- width in pixels
+    constant oops = create(GtkImage,"face-surprise") -- 'natural' size
+
+

+ +

+You cannot (AFAIK) load named icons into GdkPixbufs. If you need to do this, convert the icon into a .png or .jpg, +using a graphic program such as the Gimp. +

+

+In EuGTK 4.10.0+, there's a simple utility to convert .xpm image files into +Euphoria includes. When imported as a normal include.e file, the image(s) +become part of the source code, and are bound into the executable, so you can distribute +a bound, shrouded, or compiled program without having to also distribute a number +of related image files. See ~/demos/examples/xpm_include_test.ex +

+ +
+ + +

TextView

+
+

+Quote from the GTK docs:

+ +"GTK+ has an extremely powerful framework for multiline text editing." + +

+
+

+With power comes complexity, because it has to deal with multi-byte characters, +different text directions, input methods, fonts, etc... See test59. +

+

+The good news; it does work, and for most purposes, it will not be +necessary to delve into the arcane commands too deeply. +After all, you are not likely to write a full-fledged rich-text editor +in Euphoria, since there are dozens of these things already freely available. +

+ +
+ + +sourceview +

SourceView Plugin

+

+Beginning with EuGTK 4.10.0, there's a GtkSourceView plugin which can be added to +EuGTK. This will allow your program to view/edit syntax-colored source code for over 100 +different programming languages. +

+

+Only the most important parts of the SourceView widget have been 'wrapped' so far, +but the control is already quite usable. I even use it for editing these +html pages. Additional features, such as auto-completion, +searching, etc. will be added as time permits. +

+

+

+

+ +
+ +
+ + +

WebKit Plugin

+ +webkit + +

+Also, there's a plug-in for LibWebKit, which adds a web browser 'widget' to +EuGTK. This includes a pop-up 'inspector', which works very nicely. +

+ +

+

+

+ +
+
+ +
+
+ hint +

+ This page edited by The Bear, + a web-page and programming editor + written in Euphoria. +

+

+ Updated for EuGTK version 4.12.0, Sept 15, 2016
+ All code © 2016 by Irv Mullins +

+
+
+ + + diff --git a/eugtk/examples/documentation/images/bear0.png b/eugtk/examples/documentation/images/bear0.png new file mode 100644 index 0000000000000000000000000000000000000000..efd1a48c27c183bc0d068844399f344bdf1c6deb GIT binary patch literal 707879 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%0DH6fjYdx{6i)AF7%Wv%Ry16_xUZ{g7 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%0D~GNu2Vn@giW1!vdZ*7k3CQ)MNC>VosH2Bh+5 z8?HOBPREH&0ct1U=H|W$d@s*t^o{qt|{|&oINB}7q5Zd3;umJbZ-;2U$ zK^mk!Wn;hJWdl(-`)>SFYQncaRK#&smzwPX-wtUi)IA8elBi`80}kI83i$oAad*Fn z#3E%L4f{hup`kcC=h+2r3FbP7z6STmDGX)> z+|3^F2D=9ai`Y92B_d9+KaJ;RmwYwAru@!=f&2gn!k0e_gl5*C9A{zObk<-hD`tkd zM<$179Q$D)x}H|SW9X}Gg9|Y~_7<7B0W(4W?5xi$-4phjpSAC(2!0~5OqTluWG}Cs z%=N^LnIaytN$mbLe9JQ#M*;qw${-L#wyA?*`~i4*FiK%Wi4y^D8~FenLYi6dl)yO7T^=l zJj-I4uvx4oUT?`)>9J%wVg;g{wC!)FF|2FkBdDD?>EzVuA*|{DMYYEkDU^iM#-Zi^ zHh_H@#LzjAwm7Me4gA%yb5p#mPPFHM zwJ?*mN4t8PnH8YRn~&D~Q1aeZt)5Q)#A*FGgjgc)U9r!ctD`Ovmc;$$bzw+*0y|wy zNx3#w4E3=1$V>Dn`*}vnlyS#?+<}w>jMK#yPmh}v@d%9;2ljS`wKuZBEX&Q3Xz;`O z<$0N&zP^o{TX)s6#K3Hxt08aIoho}_U3#0S93L6T5uCPcwgxwtY*~X5r-Mv19<9#! z?o5m04kvdPF$N0OECbQ#?ba?9DXkRn$e1d>&Q%k0Ascpepo`AY!k7ACIcCXf9?$kJ zV||B}P^!MG#*sZ8q_2Q*NWrcyL%aFY56id(OU5GAM{+@Kj!i{qQ3xxMrgJo!WKj3C`AcEkB<((-(a}I#Qj z{$K)ePKqI7=!cJB5TL9NK!I2a8CQo3Y6{#zd4+`lL-l{&Zlzov*9l57HxSXI!_3Oe z3=E5dxjP$pA-+OQ7`?Q}de~XYO@9z}8Rmhm3$_j?^y$ss=U|_{>!SgeZ*HWh`(jVV zDoVa8y?4!8EAwwgKJ*OG`w~xguB;6mS*l;2eqo|#KmF>wgRS=*FAW>n%+w0DXWI)C ze*R;49Y{MX`edwT>MbQ4qebm`nZ85nn=Ixvxc632#MBgG_a)Wui+ z>ux$p?=-0OZaCOs(d(hwn8jiJjgUJsb$F{oU)qB8;p?aGZ`bZG3OmC;y1il_!rh8_ zAtQ?#F?Zb~@=y_Mcd|q~ynUoV`?Qm~Ao4Kac4?J;QTp#+t>JxnMSE@TDcl$DjMg&e zx@te_ZyI-d3ha}kJ=+397*Aq{gsqp(N|#*&#MBdp;n2Qt_b3^&sK7&4fM5K=2ycs&-oRj1R-C%4{jXRbM+|*ix#0w%o#ra^cvAuVkNLtqrv?63 z5$0Gbf={mt4_h5cvjr{~%1xm|(Bf#$cqD#Em*r9IXlmxnFGW6xdCKfcmq2rt?JJ$& zv$MFRElhD)h^v(Q`M__7S{u%j4oqqeUTs^a=pp?2h`~YedZI*{fbNe3if-YOTcsS0 zX`e)vK8ggVnafKByG~?xa702(qhI+QkHw@au_!6AuxN^vhP0O@fxt;eT2Ha4R9VAUB+W_$RY^VsTlu zCtiPN5=)qF0Y>+F>u}?wpvHWqnr0be<);*j9~q9nMs#>Shz;@3$qgfmONg(0;{3SM zypeL^;WX3b7W{GI*dHxWcUA71R@tRDMhqUYB?jdqw~k2yZKcMA!M;YmZ(-y9W8mX< z&C(L%vfW0%UYFL9ex#6M|-?9!`00=y1WC$)xIyVKvRT+ zy27~4MJ&S-(;Ib(-#nQv1H#J6N~IRAPbHVaJetK3>%?OS17E;B16s1Tqi)PZ;J((X zHtpy-y+~izw(%WF@x&59ZUFRtsueWB_OTp7jjs;Nk{;;e(P&5nRB1Xb|P0 z;q&E{*wsb%>G~fSl%#VT`>G=NF!1nw?``+8vvHS)oX<)7=k2q=djXI9`lA>&|EGsZ z($@7_-HhOW^pRa&z^C+c{Xyw;4D+4aPNGEAo{?|aX}b2v)8pE9lD8IPw1hj3@Ii%o zp8L2nce-?#=^O&A0TN&D&=Zzr=D#icyEXI- zbB*IAsjr1@`hIOyIWFgzP8i?2x(5=5#FW^)JDHJJB0!R+4^d&*B#Yk2WaM7vIc@Vl zol&I3i;;4Fl>a6Z_j9leDK4kuH;*|Ddw_|l(~KSq4=Gku=m_67=Bz|!Mke^hn-y}D z5GX&31mPewmQ2}oF_LoH*<3YL;=OwByoFu`^2sca)46a zW|dbAFi$xR9~i&7wU6<`xUj4Z6qyFe03HrR1+i*WYwBjC{`gdTWD^w(rkxOe(?^op zU@NP=1l~1ZGanRa)2ilv_b%?~6Ud>Xc4#&-Gz@&Y-3RxC2k>cFHtK%y#mpH;3d3Cs zB1U?}Wr3Qzf*2iw%sc>{iZ7HeTUc0l+9ZDha%JLqKw>mDGAhW*5>*Y;`qbSm9AAMm zlI|fOBq%5-EG!I#epIdiY4m`)39bsx?D*QF&?8wjf>|!=WLZGZk^pW91llk`X2$Qc zq3n=kS;-8*_T&-~SzlO)WRjyxU0lX}{{`X(82`&qOs)bIMa8Ug-5M=izpYnd3+TSU z#Rr%-Px0CHiyRGIU4g#7{2QOos@x5=2?mRci+}u(3%4=7eq&Znk=Tcmz`_OkxSLy- zbGIxTOriT)rVnCy0tKZkFJ_3IL~ahx2ER(Nub9D>&Fa_Hd)tt9B3iEm$gdjt>$3>R zZ%?00XdWug>Utci-j-CI4F|^$PrI+S6jR=`J`>e@y%XhAVQ4f*2{>^#Laj%Gdrkg) zGi1$NeP7`J;C})S=aM%8!sVU|{LjR$`%se6j#gU|oR_aIcEVRlT9I2a5EtQe$%yyO zqNA|Cos!nMJ8XLYW4Ts1RL$JeRMN1Oj8)ttz+dC@7 z>8_xY)R23@?HJnkndGIf{mIX(6ItIJH|4FE#iABROH205@!^u6Tm6TLo11QxbkY5H ze%UTg?`mmA;{D|nW6wWNyNx!xH7~i4MX7()yQ>=it|1^pP}a~g7AOL}axX-58RBmd z-Al8x8*})gT%fzXA@|1mq+_;fynyM|ILTkkpJZ?*H(7{Q%jKVB;V4j>)QwsVGjY{q z%ikYMD9vh?jhz3C6=}B8*z5Cp<1-mGyua@z;Z3O2xjF3hCSdYAhB2YkG*_|H+|SHl z%okaJ?6EP10(a6L`z5D_1S-x~pPO-dFMM%vtGrha%;@Ox{#MO;Gb2ev@FmbZ%qKCWSy+HerxvQj`S>#T; zp8fK3-th>mM)rCHH>!QGKbECz@8!=HvZFPj1MZCZXmJAF@x7n+_6B7ootxiGg-dgd zc)M*``qSu!T?6*a<7kKA=%Eu%DIcVGi;=ICc`(fZdjos`qX}^0djUuZ4iaueHQdY3 zMt}}}hpMZZo=Ss;PxN)i1qf!cxMNZJT=T?>Lw@6g!iXy=BzfTDLQ-{sD^`P1$1}Q5 zqs7tO`8UYmFz;2@8UJCyLGNMaCb`ItZzBMYi#N8liQKy>>$HANnt)uM-C4W5zW#hR zfOCCyRdR|xc?`A`k2|R7vk1_KpiC2&siUD)gh=2?;j-)`NPl1lI)tyx;4iOo zjmwvnfM~P-lzea-9jseWi%|dvP@4VzK4c2L(ZaQk-2)K@`BP3Go26=(V+FB`I6%K` zmo7EUp}V`D4v7$jNId); zdyLWMvQ(3hu@){LY_7gDd)FyAis%_seC<9$|1JUB#@5LiSNj!`9!$JA^GJFgjUpN! zM6|76tt-W(oCsxn`cODVREty!9MZ-xe|}U=WO20Ouv7lB`QNE*H7_ej_9$f_L2ggY zo~$eP1=l|D67?qI34y^6^LEV#h^K#!H+$88VD9I!7sBc4>3KP*%v06tq`A-7y^1Y| zWdF3&D3ATrzZymU&{rRfOS`m?(ZI|`6c<}UBenfQ%W>5ejt>QfFV(j%Y%Pk`_f0dD zW7(a)3>|6KBYPkB4AqsSOb%iJCm#Y8ja{b;hl&Tj)Zm_|>`jlR_?45hQommtF)#Hh z;G{V~+vfB*hiOt~yB-){bV@Y%gBfQ$F{gxyOF@)rD7TTm!?Mn2KFkmoU08fWia zkimVX$z^>T&bfyx9@4utW9F})`{lEtx7WfU_Xcr4C`)~w+` zr}ch$o)zaRf5%b5ee7r)5#L{pmKg*41ucGeF#=-viC0MC3?LmlYF`{IO!PT}8U2{K$%AgYBSJrKxANJ#J{Y}#=v zb%Na~SYZx4B0zP2y4v}Y7aWk{A_i1(!8alxOKfEYI4?zYK;K@eArSl&z?um> zKnE^3Gx#2cGQ?3Qo&>C(hB7Lo=3~%!uss+ws~0Z@SZQcFSGqi5+#r}t>Sh2oJQz|; z6pAE?*8Fnt^6Y7d z?`?CLuF?T*N|z&PA6#enc6k{7OW_#PKGr|=sKaJ`368!ki!CjvVWy~;3pejQMvFV2 z?;=-o(3}(Ww=>xntx$>*ma+I;;Ni&6@|-2RqU_C_HU?iIVyCGO{mm9#j6{0!^Zufm zh6q0q5{+p?1tW4inn3^B){rwQ)9IZUzte%19;4#;Q2^Obv%@@~U)O+%WrEFCO;i25 zji9!UVcgKxxE2$MQdT)>!k`dNi2A@+kFG%}PS(*P+c2_(q14LwmDSwBY&{A|B84NV zu3t^BGw%%uq$ntUaPVPQaNC?mUXuBYRkMl04B zjWo;O9bK6pXyh_>)k0O}r5FWjspT4u+b%oQs`g#HE=&zttCAKR*(YFSY<&GjJ{%t{TllBPVXYFkLFcnLU;i{9tYfoBjO{OuRrY z)iS8%(w`4_`{n!qL@P<~d<1CGzG|=()wP6F73mg3V(U>+OiI2+L__~eu>U1p`nM0H z|0T=35i1$F_y*iCmW{sC(QwuYU6myRLzieaVis?gD5CyKsc-^f zJ7}b5DqpCMv^v{QdMGQ#<6t_uzjk(Wo8|&01WFzCGWFsY(HrxJ0_=x%-_9miyv*tk z`X9{N4Yq?6UaU7NNhEU>LaFd5Ogf#oGQP5mda@9RI}TUml{dUvzBHJ`m7Mm3N5!Yj zWd9jZUR7nOpXQ=0wKr?wrq2vxp({;14LgN6Drs{3=*~A&32rXw{FV5aU(Zx0e7bzp z;`nRGZ@?Z)d@ zB7en8bJ_{8N`+@kf}LV4k~W^LhGn8H|9HT)GT!exx%!7yZ?=4)^sR1wPS())r=TWL zG=xi`^%fSn440rygO8H^0c_cd98uNmHQhYZd4Y}8FPC}did#RA)2cQI;#CrnausM( zv+Lz8d{%YlmfFH&1do+nb68`VDKThgAX4iWd@jm9>n+{(_%H%pF>Ew{q?>MU&X9=M zKYOGBGVAtC3hdie$l}noI`2BT3_N z55qrdRhQAn)*gxFW~x_uT(5ecuC!l_BvS*)8)xDFCnD44D+h047%w(jgDi&qJaQqw zxrQ$~%zJ!*4GQv7w!oa4lZPkra2^;=0oXlEeEqr}HU;Z>x&+I)w;*pApo;$r)&U+~ zjl<_wvrh;GO7ZeCXD`o0$!|wwTAbI7s^@_nr4rmkzzqz@e8)@N%Pk-wqN2PU@)#c< zf6!4dx(iqXd;9w!Ido|W+)DO5xe3zSK%NI4=A)yd8ZD;JzTd^gAMADz{(BHzhO03& zZN+69e|>=+EfS#aZdf(Oa3^in2E)fn4HLGk``TaW@MSQQ!CuvpW43Uve1WbozWexf zJ?A~il=hA3Hy#84w%$7K-HD=Lw()-LVEWq&8wcG8;yfuUXedK`(QtW)dis3Z zqP`S#-`vkJT(INsbML4&UGhu1Pd?G4K?~Kl@V4TTk5Nt>vKJ2TezrK~cb{V9xgvze zR*zct>_Wto1aHno%Ho%7)5j5#h97?zr5DkRl$K$Ru}eU3}N0gqiV&X>q#C=>y=ZQs8)qk@&aD2(21 zqXYu~GhLRZWRT?2v(Qy{KIFq`#~bTq>C+!LtE?mA@9Tsn9rfeBU(V>cS}9IAk`gbe zIciNjY?N6Dnz3mmuF(bU!F$R?-H$QcDvT;m$^=ZTtzrDkOQ61wdVV~8etH=UV|(x9 z&${1$UawQ7?o?G}mkm}rNf^hsZw9#dUuyl7{5$T`kYAR2?{&iWbeM$f{aRz@L&i!O z_KA5-tVp1pnXe!rQq_##DjWpFkI@rbVT3q%c$tTDetDqDOD;HB`~Ca2z#$jT$l2PU zk~)3_ruNy#QqcKz)|i4&=f-qD3olL{a}{wKg?K zA~F6**)Wt4DI;$Z#24s z%gg^h@`;Iwz+16-37efwRj#0w19GqT1eP8i9xg7BxNS)_hh{zN$pWMhP+0;McQFE= zfI#e}2Y8Uc(s;yzWAV6c-tKYdtq4EZ0f8@IvHS~`RcXB^UDrmlT)9 zyao_YBwQ#G{PfV;eaSM~0LE3%cXiKq?uGXTKz~!OBl$?6-O$!{li(ZxnqIoXNj7HY zfMa{(0aY}MbEw@WP}8$@{hI-qDqg2+fe$yX%v%zvd}btLuWMjO0C%#>H}p z>k?P?2GF6}c&$fw_DeE})01q#hoq8z%I)>T2vOcG8h}3|O+be+aESAx6ve}s{}xP<^XH5&&5^0#Dg$b-&}YrVb_Xq9 z=79##avQ?(^9@BM81@YyG@6<(_qAx{wrZ;-@k}= zi>L`uD88NVTJn^vgEdgv}MVOgu=e&h< zs(_!PYe@sgF-gtZrsMAuMc4Cwo7S5Vu~+l~x6b;8J)0Nata6)g;NVRE)CE0zuRnj6 zc=p?}te{{_A&!#{Tz^T+51z$X>tD!(5zTI?On_cNDj6U0EdWT@xHI0ef>z16A^plG zw}ejDm$906feBx2{@@^%W9#kVVZUMmF3eMCBAOm8&wc$mOgS~rT@J+j>2Z-99UiI^ z(x<;{%ud^Fizv(1bMG5dyo^6_RPHWThc%1}H-Z#Vx>QyIZF<^hoGF~}x58ihO|;1- zuLA~9D8?=-DIgO!N{v3m=9z59z%l|X%z(@QKo28Eps6y^LNIr*u=oU^4Y!P3sw!Zc z#LBv0$34ph`Y)F?c^W)W7!MtUPEV`NWx0g)xb4cf8}KMyjAe6zmy#TTVrUV-q|sGC zth2tbeugIyZ2tZ08t)+h%GD1z!hBF@2>Yi~-${QBO-C*gVjY+BogX0MS~kUkcnAnb z??D+1xqqY#b$u;%Cwz|2r@Q3}_C48IS*SBZrj04sNA!R+q4$JqhZ?2|N`*l)p4|ML z9KXBY75n@9$$I*_y0=>(+~i%)#k;`3z$}@NwFZ!1zy!+H7)gZx=xBcdkY~~IRp3zy zP1jjJMhQI#*~ahMVV!R)2{%RWsYQiqTE8W*82F~l=9>mC?(+f)h6}-3t`9{XZ!*^3a_g1Z5 zx!95*PLp$o_@$`IuH8TydxlHti*m04@{7117I<-3xCI~!Nelw8=5US!6lf|Czw|YE z2Bc3K8*s~Ey=MmzLVJC~2rO<2>?S5H82uzrQ9=btSI!oiOk|bKjZ@j^$l2!sa%_o# zuVpx#@WFRz1NCK-53|`K@@d!=Z+Lv$Tf7Td_* z&qW`|%hK@V*IIPn(S1YV^<0cRLfLvsSU+EYpagt`oESd-IFkF}z|8W&$WSkL$}bX$ zA@_9b=67Je#A&QTm^R1IMBp$Kj>p6W5tgE347$xC-pIs>u8oYb8% zlZ8Q^TVuIDG@jUcS|4gD*%@&E1|^~PiLLOdZ<<#-Mm^Mt{VUwyg=-Od%6`TJ5pb0(!wReXO{^yQNI6 zmr`n%fiuae6+~-USw88%{4_tpx6w=)$oN;!%Uio!Ra1_}+LDO9p)-#+``p@^ye=Ec zF##9iIw6>(4#m32Pa#2tG-0X9lO_zUtmM(h{&FC)zB6Eb86$~G3EUN8G4I^8K?+|_ zmku)(`v*4_fqY?~GYZxS`mZ|7i3tfHl*3H%79@{={C6PSo~W&56{H}>Pr9%K!x@l8 z1ZV{;qvBt|j5Cp3Byratoa07H=%|UA8357XFYZF%ND_vC;=G@K9n`*4R;*cch@6l$ zwH8Nels!J|NNePv*BVl;Jz+x;BM}rjg5aM7`<#8UK;;^(YE^n*{lLb-Db+V7ka|Jy zgQ*taU~j(+lwMpUSbM9oH0RYlch#WT9ytF2xbrq#v4#lKLo}le<+iaUpjcRO9e&-W zoMxQt25Md6Aa*DeP!~0;=ew_(>ws?@U~fRNEM5!+%M@V#2B?XoVRoi!0I8uQDB~)e ze48pa+5kFdPJjuuwboGqiKbOm_V)JOrxmldilv~J1t3{=B80x8bAr;%59b2ns66k* z&qyfVXiSj}Pjg{Ss^Cj-FzSL1wVyUBox7ioI;j^}UM_%n zE(InPX#gR-I0G)~X5aCTSN(AD){6nyXXC;Vu+!ZQ>GE8YvA4Vr_HFYF`((D*6a1)9 zu0`!^-}mW4Y=^buUBBniUn6>V`&@nRN_s%2k2RiFnw{MDJDg9?aQt2hb_Fyst<9ck zObQ5UA*kb4agYzdsNH|*Ws&zDPK|(NIAfbZ?PSsM#hHcm|Fi&X#$J_ma&wn`f8%$5 zF_qA}PZCJ=4UGIhn$9w+>NMQqhd!i-5Re7|Y3Y`d?gmNeknZjV>5!0=78sH4?hpa# zF6r*NuXo++hxy_x)_-R4)_(T>Z4$9a5k8|boFDSz?6&$f?;;Al1^(<*-qv+8=_XQl zpVPUezoa`o>>5&a_0-gqSaE|EpHH3-W{bvuYfMjXJIY>ezIqrIe*8)SZNJOOygq{c z%z-$-L3uS;cLD@fU#;3d?Qn_ihd&g2bm^*BTDg)+9cP;N>lt3gL?4ej!eFe@LJ}P@ z-@s-D3XZ}XO6uRWdqJyvcYD?2F%hXp3zvRI7w@?qjcoO6FJiZMvVdmK5&Y7{eDg|>kUVe6ZYQD0i-|6fWat!HqKhvJ`K`2Mk z%-G5#%BNk&F9Ec}R-njgt(;wvHL!wEMsY;9JBO!|4y3Bu)Udb|A%p?3zFNSMKuS8g zkLk()6>%q-Oth`z@Pxiy}`je&8FvBJ`F6BX{;F}liB~#p8>5G z+<{eA(Un~37S`xH4(Ko}08lO>@B~Zzw?rbf!eo4c*ZC+9;Nh`NK~jbQiyb!(p)0{h z==m2INIsl&C;xV8j3N69YKm9xTUYM;c-jIxXi{WJ`J6TZNUz9xqRA*q*$BD&D|XwoU1Z{B|)l9?#Bkh)o7vcCQM0#5&5$-GhlmS zEyjD*FHQvq0axCt_9rj?uacxmY?`I&FoTWL{s?syJPi%-VviID+$-=cLvM|bEIEm$ zkh{!n>DR4XvMEo*f-vLw)|o?uEWOaF2Tuc9*I*@*#*3k!-64>BHE3`w z&NlLiNQ*Ay)Z=LBvXd@fVWEj=@Ls-#6;+|6K7Egfh@hYg3I0}+PsdyF`;FfrNM>9{ z=giZyt{^q^8vPqidbCLe>d&0peazuag*hD|oc9Ig_HD;UudO*LO;L3Bpldp*2RV@{&li&Xo}5ccsO zd~fn8qRNn0n^O(-4KE^Fo|j)(*?yg5#Fezw_*@+0irz3DIZn9K@ybXqk)iw?A%g@v zk}gUxKY)6oM7*P_%0Tyn;kQ^mTIaom*zR?ehWRsodYh0mj*={hiTOS~TM?xIYqdTN_pm#__Aq&J%VDGZGvt@Gp(xgE=KEZy*nmqORMe8 zlGaO=U-_gu^0v%O`h3_)B{-3+AAfww`jlkixPI#zsJa>g>*I^a7Z11-dMy&4^DX3V z1i4E~bB78WH3D2!N#oLEm)Hf5I@Ir~tm-o-ki&JYSN(eL2`#PS?~@B>!aq%|jzgjl|6DKPqX zvx4B0iWZtqGDXvwFZnqG!m})JJdu;zfBN*kBhW1eG=DSU!$CGUCm!F^17jqxGtw>R zWdu)+Jw4tledX5xlXpc>b=TI`=H9xm4;YY_UhnAK(9`}yaxOL^1cA(S`R&P^Cl|0D zbm^pVJ7gsVq1ij&nC&zEL80La4l{rt3~zfpv{zD8oUdyI^}Rr{g^a2W=mY#Mp(IP1 zH;7`!kqWr2b%lb7@k(hc9-}BlFe?Zk0)!PAYN@Y9r0cOa*zF%-hURYRY26GaT z^e$tW806mWaynV|baCy;}DL)E;^Rg_ks?%$AJVYO1u#03Qxa7U}Ye z^76S0826N5ghCv|=bw4yYFxhmhVA5zaJ&tBX9PxcSGB!4PS zpYPZ1u{QKDmjL{YQpEm1H_G>6S=Qgy4?{pQiC9Ng+30l_?treGDQ`bnW(Zqug6aLL zbl7&4zTiZ?ucejiD2IX~5!)XAkn9o%~{q0SPL+B=*?XE#Cf+(|B?s|Xyvv~9u^tAIxL7rcUD(6p7>@oMd*%- zFzznSm*4vv(_o8b)a{TcGb>hWrU2lxv?1^WFHbPWf0R-{lfBw3IC7LN9PLOT2i2mb zIEPEbgRUuQmA9X1#yM#iJes=ci1(9FDb z{8`u8bKQx(sw2#7;2^Ney`v&|++Oq*}6>$^{{wh5y;x*bUZVdMTW_ zY$JW8v0J9>vD={OEWwqA3qk!H6)IV|8M8ofM4EhA^I^`+Eax0$_^hTjgk&@kq%OoV zW%~K$NdtX)wi8Z;(fX~SLXCxsMoauZ8D7IL%>tc%%$4D+W|VQc=tK6f$tE~eU|{YJ zVXaefFDtQ*S0DS;NegW|jt=_k6uZv3vFP0D-lL7k>oDVrq#~Zue=Zm!1t#UtJlHU0 zeAj$at_>MINtQZmuRy$3d}W8FEZ$Q5NyoU0yE}+>zeyS-3=0%Qxq8#KlkKet79B&1 z!`C|7;c7unPLSX*l2?oqr{Ybw%5Vcw<%PP(K4SZiWE%WmL7~~Q`)UVV2nFu~(knPo zA?mT_&ypsf(*)pJNl8hiO;%kZ=tL(uKct>o0w&~eHHb8WQd}VXvZu#v@VYO#5||vw z8Q%TQe&-EpGG73~hi>Zh^77N;vA;jyg>;iYIdEr!n=4r4eb&}=mysAhm_uO8pWM25hyvN* zyHxO`10kd6tB@~0PUOK#`*Yj<5&ELAs5aeit4^}lvGn-Su^WK+iIi|bM}aJHU!r2H z*t)?BejWjfUdgoeKLWu-aV-#p#{sB0qv-Pbdd9jITrq**LSW#r24E#Y6oOAT8ZmX%ivA4fL=vnEPBwc5`Mt|o2A`>culZ1f*QP3AeS+7f?2+M&5E&0R#4!eOKWRhCs#JN} zPqjL*KLIo$gx<9FiA53ru?;WR*?t?EV1L=i3FnPxr_fNF%#ZhqNZHuvj6Oh=5IL-{ z0q!T^(Pu)R8{1&Au2NXw`MWG*BAb}w`;(u@#*Qo1b|Qcf-pXb7S@(5{d>T4Ze|Vn0 zH!(9uf;#8yfLd?u`mEnTyWeXD$j_~Ua`HR3XB zQ*UA%$09@~_&>9vGopFsilW3|S|Ao&*we~D^6)UHLgH<>1^D^r=jLRfo$(i%<)L+% z;Md9TJ4nN<(L_6xwg2xrdLM?6Sx&JL#8UZHz^fL?&_X!XQYPN+4eM`E%Y-r4}1QbzvcMcncQ&(U0FcZPo?ai3#c1I0evgg~V^Ng^BXCuS^I{ z96^$2(f5ENGT~KIB|&trI8|VjDK!q*QNV67YRWEJWyypr?yUPUN$eMlqLJbX_3P6t z3ei3Ue)6SkdIagIs%Rf{_~XPR{x2)-azZ<@fED5pdK4J*Ng@gjIxqb7-GUoV4_AmV zZivp>b9?PO<9Kv({Iu>h?BnD;GH8Tuj9z^o&}ts?!z%X+brd4{hPI}+GK4Y~$tf+> zrIxKe5lsB&i}qEC_$9Ybci&4N4>^8}M7#kDxE*yEFGB8=<#!-XCgHxWls>v^F<}16 z|0HX_GFI5zG*_ZI)}B3Nzf<#PVFj~gqGV6<=N2n!#ENCIgi4V*MKb#~TOX<$UW-BA zh~5lR$6qMSDo;e6D=`Lhi@$&DdA4p#y5{phhyyHQwSlSK*~8JSwz#6XffqZPv09oq zrM97H_p;2uKn<_g(N-+NmN0B?J1GIsor;muCBr4zAbKw-0?B} z<~!0Sm1EvNP$+ zC*FK{{4}&`>aF>t!~?DJm-;iPo$h8-Xj!*Z*ddmjR)JZ2M4Y;#q}|OlcJ$rNAeX*l zuJw+fgzD0DhcTtvmN<&~cBJ;Jrc~Rg>ykLTW<@O%3N@Rm!CTg`SLdK>Qz&B%^av$V zqr$tA#D1-(r(AUB5fcko+{BJkNsUMaK^M2f`RR#?z&7%lK$G%~j*Z0e9qAtt zGUGev|L%z(s88f}y50+ZSAm7R0OaX*bYkv0!a4!jx`&CbW(OFxeXg5Vm{Vl`jqv}K znlp7SwD~qu%Ya8BI95T19XuV$;($s5Ob9H@%xryt`&#(VzXRN{yc=ZvE>KUXsVG># zH#fX)DV>pm@zW>X`Y z)679uOx z6X(m;wScY7O3&ucGv@qEU;LF#ER zzHd1`qYr`_+aF?0?sT%2wNZk@O5?T3*I&Z#KxkrajTpt0@mg*_wDj|AijA9Gs>&n` ztUBcUVUjoG{Vj3O$W1jZ5$cWmd3^c?K%HKAw6#5HCT_5=mYB>`4Dlem|9Mll-M!_ZTk2_jY%0lBEYSPcDU|vO zdpvJBIz7ceA(fk~@es61S8UWPpCStSCQ(zf&!M6zAtQzbd7Jck?%#t= zwrE{^RYx5gF`il_ndh#x#Tn;?7M@vdyJ6xtpjra&wmY~{`mVd^|4V0NWo2b#h^-+P zpny_x)>nWkr(c3WbsapIUaXWuMocW=x;M4HPURQQG~C+S3eLuVVU2$#B7>VYVK%l? zF#4~uT;>PM7HBRy75GsK;JpPNm9t-v-oG*c*Gb?=UK<1BccJHpb1+Ahw8btbRXGRr z+LecGp5o%-;P_CACx*XC!5E|9cPrsf#L%yC}Sf~CPu(C zW_PkUn3#BG4)_MCVN@7>v%t#N1_-qB&tAvgEB6B+1AF%uXrojS(5e}*CHQ)I@u$c> z{;_}j18$(KOl1?6Ah%jLZEZwP4$oebk@w5(_H66luoA%fYIPK5fDPjkpm<{PJCs>M zG#hB3?*Oq@T|*z3HGI@1RQLr1P*6~Q&e;f(@n9e*=qFMe?P=t0A}3UcR%9^^12cZk zc>l(!2*G<3d?EIeto88$g0MiM-&&$|Z`KDO-FXAiuVGZ())YbiTa6g%P{U~Bl7}RURt7w)@goWMel$2U^5vaVtl$%AvIATP&xECvr0(WkhE&fHMEw^QLHZNcH z=6IuY8(wgbUKt+n-8J%T(7uOvcXi}0MRiUa*O(!w8Z&fOnR%~3-kYW1jUi+prYf{U zB8DjwxcDn2kfV>HC&*-mlyiYjTv~2@e)e{_%I^(M@#|*yZ~0;hRctegJ)4(9s_&~7 zQhS-?UbZ#@TP-68H^D}FKfBj^Wfg*G?zsu z9-&gs7#Vx?6(#?+?d-RQajx3IE|pqRq>tpGP1PvNY;uplSveyIk#y5!j3n2LOMvQ7 zv^^pyGd($pi(a__ zr>p{_DVvRzqQU>{R$DCa`ZQ$7b5d`c>?X?1$Z4^Bh6;Q1ho{hr+9$3(^z+3Z0{ruY zu*vF-QRJ71ty9Jy@3MGf-{6pUNKK|3H)p;bC4oW;!R-IG4S#}Kh7)7q`q%PNd(vevb4Q>$|JPA-wvHuE1$k3#9i6VQH-BTu$jB6nC!ukPgWsrSW*4y5B8&*Z8~FVE zJfF^-Jzb|FtSARq8sz2n4h}FPsKf?<$q1B~0cp^Ig$X~ps_m|9gEt(Dw2L~FqG7-> z3xr2OtttNJ!P%ck5L#MVRsrBjGo>Xo0srP+3gbVZeB2jEWRwUM2Ksv_J{vJ95546w zPLBx{OXuLrcN5yJvnwlcreBzbKTEz&k^R@KW(b;PKn&Co{TMKK!pXeozO-P6k_dYI za@8LR1I0z%^7I&A8jixY7db~kvt*1-ulsjkt=Rni9~j?icN~38_?XKP8xvDgUk~hC zGp^CSR7WbDL|a(^gzwdQ)Wkv?g^7WI7cF6vNf;@s&NA6{c*w@2tOE zNncT@;1S^CgRjq#r)6WtPq6zr*Mk)X7ajt`q#34=;fgVbHBf}(b>Kai!d72#7NUyp z<&MCwz`?ALwxZz7(XN#+IykQ~=M&MeZ{{fR{6n*jF3AcqU;PS{j|=jk;A)%ZeFmy9 z`y+^d*5^E~SCieohYigpc#2&r0FSJH6%0sxQkP}z^S-tZ={xm)1nuQ)&sPI+OA=)wF z6az}_2{+Vdy37-0sh1#7(deB1)(^Yw1nG#ktthm9Z(HCmPbL*4uGeQ6 z$993B_oR#><%~&=Re?%IkZ7q|L-$J=v%mmT^gQ<(iFiW4vF_E|meCQ%9&HT4x4d~G z5x_)3+<&PL6|%_)GQ<9`JyBwx5oC)CiRf*hSoG20S&7L}dS8{IndDU0#M%khbhW%x zd#yNOB0|5RM8o#q%PF@vUX)D_M1Bx+h^P>t2oh zU4n2&98Ok0-8{*vyjs)nt1D)ms-1*5s`$yPBnfLme8^4g5?!-?tNx`9%?j=QC6R+R zWVROpa)|*Pa;*mA=JWSncXVkSdXcp5i-yCPJcT7>3kg0m z8+94Z_ilvVNB=e7;|Sc{W3>+BmO_FmweqH&h?rN-J1kwx}g)#9%B~%8d|0Py%6rIFK&S?#=e=>x!-ne{V(OqXj|kO7}6!|6F4D#|zoT zm-ynJGwrjf;2rhar`ZAP9$tCq(7d3nZOA8Dxky4IcZ3^*FHz&Sqy6RlLEMV6MCZ9} zjU5DH(K0thI_z$1)M`1RP&Jg8F=&b;3V|=0q*fm^^?u3a_>AyEy{J;(`xeP}NtFXZ z{~k*Qd$ig{LS;Sj@5q$d&mSz&Oi81xipXJZu?O?a!%mz;8U-2O7)bTM9)2aYR!0!S zlR!N&X0?T8jz5Cb*N3{DCf-+ai7rV@R#+5hUBLBcXlSUs)85h|C?L>WQxme}Pufq9 zhXytxKn9(_$uH4k39mYv4K_13M;3TtOlDrF%ICa2GF`5fIa)+5qn#4=pA8VVf!B(W zk+Cx*>UI|x{nsL10{&>d+#TfNIl7U3{<;a+qlmE z_X2>3!v?qqu#y?^&w$yO@bm5X3k(dH7#T>~{gc7lbrQeb-riEYWx$EF%n1AXDp>FW zboP#H_Oy01Gp?4f7`Exr;jyR7!<4G%(1OU4-9hhV+Hmr3dD^7$9SIdCJhX_IcjLO+ z+6}zw62W`M30C$zZIm-GSV7K zNWjLM50am-uHC!$6UrecAvxIHO)%q28(tGaRyALBL*wzr%CNT2O9*-qqM!&J3o3gD zr7=g6d8CU(-c)O-;`nW%of9aob#nb53M1??X!hCxCEKA>JXa1m$Vw#Hj=et<6eC)| zWG{Mm$Dg*Ir>t@Vx;Cel?VmUILUEs`aw00_4PUo&-bF!3ZkDfgruX7-P;a`0Ys#i4 zuNM)Dl^DN%9hxXeq<*|Ou>E_08c(|uKi)X%I%2AqwVDkYV z!u{uAB2G5ZWmhdnm7jlVOtG-wePMF>-s#8D=ckpp=PUd0XARY4g6kuVY(KA39W(Ib zd!q#}IPcTB&%haE;9j3Ne*Acr2Dkbk@U|T0v<-@(l>Ahw#Yaq&eV%kI%kgCG+k$su z$uwfgXhQVve+sMJ-M?M*_xI2Ul`IhCEdgKEn041p9vc@IUT;0T!T%sZvf7oTRCe3) zd#<#mw)Avv)2+F5V#xSa&ZSd|#GW?S`1fAw(my3}hOPNGt3;So5R1i) zMHIydXh)z8BI%@ii4?wg0t{GBAW+Q0GK96PW(*%HZ59i8JfxN4YC@Q2e<; z@(V)&YBbXBeY`TRDV7pTz0sKbSrQ6;KaVrDr@#`LPF|==!%Gm?_36{uK$L{ zC$mHWte5lzk^6Jl5_uu;tdKvPE}}Si%u%NbQFLtm*Cg)dZm9@qcw2YFM}5(>J25Jv z5af!Y`wPe7^Xqc|>x}ND%&&=!RZ*XDHzNyBX3D+t)Z-ZP#Rq)vk-sRFP~452`=r4W zbiC;(l?J?k+w7eP6aS5SYcfhY0tzd4!!ii;mi<m;cQWtnsii$T8Rk#fOoK!=bF;_-t8nmGY?N_Q#t}Jegk5O=Nv|e!M8CqJ zh+}=_K*B~OK(^_TXgiq5HEdVPz7;=D+^iNKCzME-Z1~13Aey7pkD)+Zo_;FVYj2`U$?-!K7W$)(3LqTB_bpD`H z{-YsU)kM62#-^zs(`B7{U3@V>?bDnm4 z2@GA{Y%DJ?*M6G$H_OlJ+7sa=-$2Ss&i{|p_k`U4;h#749}-2vet@FsAoi1whM{4* z`6yA<43L?>)B2j<@#~^K zdYJ5JQfB9#-~K$69?Ku)^ey*Yb9)A6cQaj&uWZ3^a35$2G(9_H7bYEz(;p=P#Tpm20rnSQ>*t?a*j`;PAUhN1dnZXA(I(2&6-e^4g=~Gpxl8^CT zxnae@bV}8?fgPiTy6WV2$G&fYhj~+hC;QVtjjg*#q!n5F^Aq~vvh#T6V#!P5oVx>y z{qi!AA)dZMcgWAR>4 zc6pjxX&3Jg_v6184F#|vI+!ZUhep+e5bL=Xu5*1~ z0NR4o=7g`eja?eemijy4ck6MzzE8h?Y=lRr$7r3h7p2G*nel}vi&>EKF0R#$MpDCf z{Ku>-izR}1?Zw$X9{$0SwY>RF2n;Wk;#vu{*7h|YM?p*ww;i;$DRqZd+xAoGkJxgd zJnzt&o?lk}##CuCyt{+*MVRW_Y9OrsR3xni(3smuIqPA4|HO9;W zRTpr`a+IJJsU2yFBT)txp?Jw`^whlEbl-({T)ZkT7~{U<^l}WK9N}TJAX97}Q>~`o&bmBHF~mP}vEkc4qRP+XTd7#wXak61@XA$X=GAk+ z=e58+yd_p@%B!cUQBhI#l_+PkE=7s9)K+#3={1fBS}q=8o=9Ptb)DHbk}@@Mvw@T zrluf)`|DWY7dLf!f8@&_6lB$xQS)qv!)e3izA}O@wlnjp=fb zKPoSOKledjpEToVfjRl-8@BhxAl>^VtPyN_K0?BRf(NG_`4hkpD3tRyX|Un$8enCB zu}sXbhh(4+1m*i3S-T>NUPxC^ib(yzosqVq+4fXaNhz_+KGoPV!Df&z(;LR&IUcXr z(NE{u3p-($4Ej%wrPQs|%*X8JH`iFNr45a#JJ*dzRg)Kc+H$b_`V3d`GFKi|(Oc2m z%oU;Q)6QV>+h1=Ceau%b{rxTldbMv~OO@F-O27r^jZIyaY8l!-ucDk*u+_6S9z>tl zU0orHh(P7L`GnD@Wp(q4FXA>ZnT-h>wp)p z4{_+uZDRT6vpbpNcYWQ40wIOKu*UE4N#3{|)?V!hubeI&cO}xW;{--^6`T__iM^o_ z;mr&!V;HVZc6tRN8LRrQYK!buz(*DdiK@*MrTF-vqPLugB20`zTu859|7RwL0x7Ys zsi>&dI$t|0#N@-`QdpjVd)vzSHv6yMyoI|6U(U=?X2~`qckDM+WnGXQ)2o4Ek%!Ie zIAj$HxW&NL%wDCua4ocxzWv=VRJ7teE`X#R=zv(HMkZOSy?XGpB!cobvRLJ*skysiBfOGaojl$zJ?bcA`*#6F9NSD!z#h#JyuXj+AF$#1zDQJs%-EYo5 zp)DfI212%?ihU`W&4YUAQM)===45T}*H!t`vkB$p6|BhK5q{oQwK{T;wW7~N2~~v* zeM`nKjH)4JwCG0aiyfKJN>q&+HlPq8Oc8-cM>5h%Box<->JTdzR1854NlBrwbSw?~ z_#mt;RB9cQ@*M|BmJTK>npk=&6UvYrZ)`4`68m3dHzp(~N*}|6uZ~7kbqH)*KeY2* z?66khApj>=#xXgdZQi7OBAXwW5bYJ**|g2Xap(O4_cifnO@Y{yadQRZ^rBa&Qs}+v zlU>{edSs;h!hGrfVfNPz;e?EmilIWI(u`S-zp{nykyU83)6tZbIW0_Z>BG;)cJCCW zGY-69V~>~%s(j>B6fP-tRLf^g4$ID|6fU-10BW=)uCgageji z*P4UJbeV=w&M}A^?7C#I;Yas20oZMGGh17*tG6JTlC3SX7uurNeuZDVKX9@%*z4*N z&qoWyI)fw;z*;PMY<&LvT)KZ3goLhljx?j(QRt)h?^+@PT%olvWFB9km5~t)Ndz|f z-}{&AJD^NSWDyqw8HoR6em5Y;1ByofbKX&u1vl1zF0uX%QGc|!erMn<1w|Ms!&{(Y z4&re(_$Cwv__(6=8pG8s2FLb(=a~Rz`5hF&ZID0n{ucIY7bc4{`LDFD&TXUbGq@mv z`zCOt5q@)i{N*Sq)hQ501O)eqBmm^*BEhP!t<75tO|C908*v#fV52JAVmFXTm7vCwX7WRu z|7#r+`lQ%WjBpQ~-L0^elI92NU!T32HMP$Z4H%Oy^?D8}Q5fJ}k+rD)+{)0Qyy^a= zje5ELA+xCg^L@Uv8}GMj;*>D$${dp4`afkoPh(-&wdciTcem{XKAX3O59RI)%mS$s z_77E3`6`JVvLv(Q|NV(u@+f#+_}NoetOj%xht}KcW^;Kv!o$IffRX>7%6D#Oo08pM z{8j^h2fw(J$7NX){?`8r?f#zAQ^)7SPmfHX0}MSdWx@d%SQ!P5JF)`MT@zdf)$XrWOS&V50+U zP;909h!CMiD++NF4Bo1PX)~o?`wC137{d4IPrYyd9L^!sVX7MN;uSs|H6NxKsJ36w zydey^yGwT=dg^~}_*E`vH8vDRh~P()S##^#cTW-kGkzS*QLpoE6hX1md+I=0&Gx={ z>sxvnE}VS5Jp6(rptEy*$-O>YZ1uEdE01Lc6Y|m5H@9Wu0JC==Q=^x@K9M8o_Xq~* z(gx<8{9v+rMatXD&)F-#=2CbY9} zqQ?VSOfX%|mddqe5FgrnCI+xD?R1*wzx>tmEGu>H+(p0z8OiHAjLDKH_bg#yNWcr3 z6dd4sjUS(!D`P-|z{;2mn+=fso(^RCtJO6oSVJu<&j>SwaZ%-sXcjKm^e6EoJ|~D! z9>Q#kyeO3^R$r^)Sm8j}xI_`F?DbStTXtRu?_>6*RnB@H{Bo9`FgWez@ zl@HJaB!84vgg{|^@ju~Z*Tkr55O99dM7kuwZ4X(MC)BI*LzN$32Q8LA&*%op%@BEW zNFC`5)qjvhsBJ@H*oG-X8b$)~V&8LN1|yXfHPxlkJ@ra6jQkO)uBaYt9QY=6ev7Jc zjfd;yRWvo#R#QA)*|BFc=3P88!&wFoaDw})O-n{4~egwzjiukwOvTHH95o+lLm+n z4=IKer%SdkzIB!pRNo=YAtHJ~&Mhm)Qbfp%7i%^;;Ll##(xD0_d)!bGhgX~>0^w7 zf&%EiItNBP&@hgN1{~*pU{vT#VsW`QUHM1ot0K7Jc$=CcGFq6BI9OU*f^CRpdm{^! z{yc;d7&z#+m6et0IUzyhC-ng5n>!OY)cyCz?g$RT3Yk)52TiN>SPCkkp?ie&6%`ei zUSLex3ZT0h07mfnm$i)zfM(Mq4IUjGg@qv>Xw%_=N|W`h;>q2KiHYp&Y&{k&4UMhq zdu-vnPQorJ3^QYxkBtpRMO{2o&lE7*0aDAI6ou;d5fPVZlQb_nJtItIt4U><52L}N zTFV^@ND__N#8lry3>|(1w|En1+(j5v5A3A$eLI@(emN%KoXu{pgevj1t7F{%j=JIn zxtEOvMZ?A2)?q1!H@SeJwo|`W`^^duy4@oj>ftKyrWoFDUBRD%#9Yd%sEbWKWFLWcD_z$vGOiRKYvC+dVB( zut7ZvxXrHI8}#SBKk30O+Mo-Bs8gh9v_EX6XWAeA1M@25H5`I6Q@EWJk^(Ii$)k4v z?zDC$`?e4BS1oQUc5e!OW{QPeOY{sLSA#E;yKL+AJq_u_ea^R^YCjPGTEzhZxpEMo zJbR|QF)ID4J|up+eiq_?*Lv13TzToWRzUvMy~LLM@vlr=@$S=oK_L!E#VNda=Tf5V z;O$y^C~fv$hc$vC#;f(G%}R^Pml=y>RCwutL;t6p;s?Ka{nLJbz1!E{NqkWq9u1$i z0!^Kkc-mjJ@3Y+2R`D&=iSjR9oeiIKlc$pI423s|@jyP_7R0qVt|N+59sjLl*>V<1 z(K9ZqYh%HQ`o=NW@d> zzH0EJqkj1=N*&-*%9Ol5JZC`#Be!ZCMs<AOQAa+hgy2*zdnq$ z*zRrl7>9MKrxktcf*z^Kml&gTQ9&Qn!;Au`A*O$nC#vx@zP=p6*}i1Rn#>5(q=<4E z8Z1>AX1aL?mjZfiQ%z})F*QDaR&=l;?iEx`yJ>M_#&={ma{WP(660A-lsWjfB5j>cCo=sx002lI9`v1M^G?p z)SP+v%tH|Lj{yrVP`cjOQ1*0mbb#8B_wNyOMvBtLyFEoXIT>EiEgX2SQz?elw`#8Mj+*@dT0?$7MY6 zdkSI zw#&O-mq0)P6%rcb1Lpz?rKyh($=5CW=EJ(XySsno=vwQSo=^*YR?fGc4%w;073IOCU*2?A zWhut*bqnjHvUvT?c}Akt0xy5v1!L?oD+YLqPTPfqvLaQnZw@y1&yu8KW&1(S4kTq( z@DQeG4?(BcBdQEqdZd0zRapr*u@1-OWJ@?m{yq+5d+Lbb3MoDcUNy)z7-sjLKt9Sr z4w4mFc+X7f?SD79|9rT@et#wLbY=f}-2X}8Fn8JSO=SKEEu~XzULWJJoQpmVd%IRz zo%boK!Huje%(yPE@qM5zZXb2nr_)24)}{kg)u<(kD5_V^Z!aHI8XCrr0>(aF=P#@# zP83H`;UV#+)%jlB?enNvx16EPa;sYYui}+wJsen~;CJSa*@ftMsOQecVy%IDFB_8s20+XOWf=iXN-gDtx?2CdV_ptqI>_AN2; zp=0nhO?j^7TkR$<=ZZbgt#m_O&1|_&!k?t*jfA=KPNIc~p||f7ROgf>GXbGWHTIOF9?{DP!mrOGTqZEKXiOi(sSC!F`)5n+TzC zaifn!#DJp@#3^Ay0a&X0zex0v?|)0ZV$Ii(>AnBM$6*dH>CVuTI(D!m0)>;c7)4mJ zHcO$GsJtnlGV!?zqzG{#AwEZ=FUUgg`*L*d6uCo(3Ky!{XWGJ`I#Pr?iJPi%;iVBL zRgeqqOe#&cY5O><2%?HB`=w>E-hvs)0XBh|{fbaW8(sK5H>8~|I^rUumuF`54gKY5 zvb550p~+nTieJ z2*g{Hl9D`XfoW@ai`_1OTd{$l@B(0z0O$gEMl3ZWm-WF)2K67fY|1=pO!z93q|v=6 z?gAVf=OBpmO_d(6tAPDG*f$|Kks+B-fd5=M20YAJ7YbMh7I0&j{GleQK@RS$(5-LE z&iCLPuEuB4Bg8;f$y%PBZE)P^`}0RLgrLZZD%vDtJL)APt2*e{Av9^K1Uwo)U|a)V z2R1`!B2c;5HurS83ncfzWe{A)N}9W1WGvFZ*50Maf(aEw?*Q+cE(wnx@)us}^^AQ8)s3lMR2eA#Dgor!We7GOf zQ5ASm`r#-=hS2>D4Z2)aAj3-rPzRDP<*%uCY`5(qi47lY9mlipep=Lmj

|!-OlJZ@DBEp9tY$OQIG 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∨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%0A^YAp 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

J^p#X?4}<}KEU5oUcRt=8QN@{uS* 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

dT+~oAB~bDruT1 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 literal 0 HcmV?d00001 diff --git a/eugtk/examples/documentation/images/bear1.png b/eugtk/examples/documentation/images/bear1.png new file mode 100644 index 0000000000000000000000000000000000000000..61c4773159aa03f457229bb40e473c373b5c8b86 GIT binary patch literal 13264 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Í!8%g2FRsSOo=m)N@vOd{8YMAa2njzpA+7+ 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 + + + + Pango Markup + + + + + + + gtk logo + mongoose + + test5 + +

EuGTK 4.12.0

Pango Markup

+
+ + + + + +

Markup

+

+While you can set text font, size and style for most Gtk widgets using normal +method calls, this affects all text displayed by that widget. +Changing only selected portions of the text cannot be done that way. +Instead, we can use a subset of HTML to embed changes within +the text string. +

+ +Quote from the Pango Docs (formatting added) + +
+
+

Pango Text Attribute Markup Language

+

+Frequently, you want to display some text to the user with attributes applied +to part of the text (for example, you might want bold or italicized words). +With the base Pango interfaces, you could create a PangoAttrList and apply +it to the text; the problem is that you'd need to apply attributes to some +numeric range of characters, for example "characters 12-17." This is broken +from an internationalization standpoint; once the text is translated, the +word you wanted to italicize could be in a different position. +

+ +

+The solution is to include the text attributes in the string to be translated. +Pango provides this feature with a small markup language... +

+ +

+A simple example of a marked-up string might be: +"<span foreground='blue' size='x-large'>Blue text</span> is <i>cool</i>!" +

+ +

+Pango uses #GMarkup to parse this language, which means that XML features such as numeric + character entities such as &#169; for © can be used too. +

+ +

+The root tag of a marked-up document is <markup>, but pango_parse_markup() +allows you to omit this tag, so you will most likely never need to use it. +The most general markup tag is <span>, then there are some convenience tags. +<span> has the following attributes: +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Attributes
font, font_descA font description string, such as "Sans Italic 12". + See pango_font_description_from_string() for a description of the format of the + string representation . Note that any other span attributes will override this + description. So if you have "Sans Italic" and also a style="normal" attribute, + you will get Sans normal, not italic.
font_family, faceA font family name
font_size, sizeFont size in 1024ths of a point, or one of the absolute sizes 'xx-small', + 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', or one of the + relative sizes 'smaller' or 'larger'. If you want to specify a absolute size, + it's usually easier to take advantage of the ability to specify a partial font + description using 'font'; you can use font='12.5' rather than size='12800'
font_style, styleOne of 'normal', 'oblique', 'italic'
font_weight, weightOne of 'ultralight', 'light', 'normal', 'bold', 'ultrabold', 'heavy', + or a numeric weight
font_variant, variantOne of 'normal' or 'smallcaps'
font_stretch, stretchOne of 'ultracondensed', 'extracondensed', 'condensed', 'semicondensed', + 'normal', 'semiexpanded', 'expanded', 'extraexpanded', 'ultraexpanded'
foreground, fgcolor, colorAn RGB color specification such as '#00FF00' or a color name such as 'red'
background, bgcolorAn RGB color specification such as '#00FF00' or a color name such as 'red'
underlineOne of 'none', 'single', 'double', 'low', 'error'
underline_colorThe color of underlines; an RGB color specification such as '#00FF00' or a + color name such as 'red'
riseVertical displacement, in Pango units. Can be negative for subscript, positive + for superscript.
strikethrough'true' or 'false' whether to strike through the text
strikethrough_colorThe color of strikethrough lines; an RGB color specification such as '#00FF00' + or a color name such as 'red'
fallback'true' or 'false' whether to enable fallback. If disabled, then characters + will only be used from the closest matching font on the system. No fallback will + be done to other fonts on the system that might contain the characters in the text. + Fallback is enabled by default. Most applications should not disable fallback.
langA language code, indicating the text language
letter_spacingInter-letter spacing in 1024ths of a point.
gravityOne of 'south', 'east', 'north', 'west', 'auto'.
gravity_hintOne of 'natural', 'strong', 'line'.
The following convenience tags are provided:
<b>Bold
<big>Makes font relatively larger, equivalent to <span size="larger">
<i>Italic
<s>Strikethrough
<sub>Subscript
<sup>Superscript
<small>Makes font relatively smaller, equivalent to <span size="smaller">
<tt>Monospace font
<u>Underline
+

+
+ + +
+ + + diff --git a/eugtk/examples/documentation/platforms.html b/eugtk/examples/documentation/platforms.html new file mode 100644 index 0000000..d6d9a4e --- /dev/null +++ b/eugtk/examples/documentation/platforms.html @@ -0,0 +1,141 @@ + + + + + EuGTK Platforms + + + + + +
+ GTK LOGO + mongoose + +
+ Windows 7 +
 EuGTK running on Windows 7
+
+
+

EuGTK 4.12.0

+

Platforms

+
+ + + +
+ +

+EuGTK is native for Linux
+Most modern Linux distros come with GTK3 already installed. If not, you can usually +install the GTK3 libraries easily with your package manager (apt-get or similar). +No special setup or configuration steps are involved. +

+ +

+EuGTK is also reported to work with OS X™. First, install MacPorts, and +then the GTK3 library with this command: +sudo port install gtk3 +That should eventually install the library to /opt/local/lib/libgtk-3.dylib. + I cannot test this, since I have no computer running OSX, but Pete Eberlein's + cross-platform Euphoria editor WEE runs on OS X using EuGTK for the user interface. + That's a pretty good test. +

+ +

+EuGTK works with Windows™, more or less, starting with version 4.9.0! +I have only tested this on Windows 7, 64-bit, as I have no other version of Windows +available. +

+ +

You'll need the GTK3 dll's for Windows; download them from +the download page at https://github.com/tschoonj/GTK-for- +Windows-Runtime-Environmane-Installer. Be sure to chose the correct +set, either 32-bit or 64-bit, and make sure you are running the matching version of +Euphoria (32-bit or 64-bit). I use Euphoria 4.0.1 beta 2, which seems to work fine. +Mixing 32 and 64 bit software is sure to cause strange problems, such as reports that +dll's can't be found, even though they are right there in plain sight. +

+ +

+Once you've installed the GTK3 package, you'll need to download some +Windows-compatible icons. Unzip these and put them in +C:/ProgramData/icons. +

+ +

EuGTK programs may run on any platform.
+You can even run EuGTK programs on a remote client (anything that has an HTML5 web +browser, including tablets, phones, etc.), by using broadway on the server. +Clients do not need EuGTK, Euphoria, or GTK to be installed. +

+ +

+The Broadway server can be downloaded using apt-get, or your package manager, +and it also comes 'stock' with the latest Mint 18, and perhaps some other distros as well. +

+ +

+This is still experimental, but most of the demos in this package work ok +with a web browser, and some work when browsing with a tablet. Probably the +demo programs need to listen for 'motion' events (swipes, etc) to get these +working fully, or perhaps the browsers on my tablet aren't up-to-date with HTML5? +

+ +

+If you create a 'batch' Eu program, as shown below, you can start the broadway +server, and open a firefox page with your EuGTK program running +in the browser:
+

+-- name this go.ex
+-- then start your program with:
+-- eui go test1 (where test1 is the program to run)
+include GtkEngine.e
+
+object cmd = command_line()
+system(sprintf("firefox %s:8080 & broadwayd & ",{inet_address()}),0)
+setenv("GDK_BACKEND","broadway")
+system(sprintf("%s %s",{cmd[1],cmd[3]}),0)
+system("killall broadwayd",0)
+
+

+ +
+Broadway +
 Three EuGTK demos running in a Firefox™ window +
+
+ +
+
+ +
+
+ hint +

+ This page edited by The Bear, + a web-page and programming editor + written in Euphoria. +

+

+ Updated for EuGTK version 4.12.0, Sept 15, 2016
+ All code © 2016 by Irv Mullins +

+
+
+ + + diff --git a/eugtk/examples/documentation/printing.html b/eugtk/examples/documentation/printing.html new file mode 100644 index 0000000..d529807 --- /dev/null +++ b/eugtk/examples/documentation/printing.html @@ -0,0 +1,327 @@ + + + + + EuGTK Printing + + + + + + + gtk logo + mongoose + +
+ test150 + +
 GtkPrinter
+
+ +


EuGTK 4.12.0

+

GtkPrinter support functions

+ +
+ +
+ + + + +


Introduction

+ +

+This include adds very easy-to-use printing capabilities to +EuGTK; most printing tasks require only one or two extra lines +of code. +

+ +

+It offers the ability to print documents on physical + printers as well as to print them as .pdf or .ps +(postscript), and perhaps .svg files, depending upon the +hardware and software installed on your pc. +

+ +
+ +


Setup

+ +

+When printing, font size, lines-per-page, and page length +must be taken into account. +Obviously, the larger the font, the fewer lines will fit +on a given page. +

+ +

+By default (on Linux), GtkPrinter.e will print using an Ubuntu Mono 8pt. font and print +62 lines per 8.5x11 inch (na_letter) page or 84 lines on 8.5x14 (na_legal) paper. +Other paper sizes and orientations are available from the pop-up printer dialog, +and these should also be computed automatically, as long as the font isn't changed. +Try test190. +

+ +

+Other fonts may not work so well with the default lines_per_page settings. They often take up more (or less) space, both vertically +and horizontally, than the same size Ubuntu Mono font. For these, you must set lines_per_page manually. +

+ +

Example 1: +

+        printer:font = "Ubuntu mono 10"
+        printer:lines_per_page = 65
+
+Example 2: +
      
+        printer:font = "Purisa 12"
+        printer:lines_per_page = 34
+
+

+ +

+Some options, +like the paper size and orientation, can also be changed by selections in +the pop-up printer dialogs. When paper size or orientation is changed via +the pop-up dialog, the auto_lpp will adjust for those. If you're specifying +fonts manually, or auto_lpp is FALSE, you'll have to set these in advance. +

+ +

+Your program can override many other settings exported by GtkPrinter.e, +some of the most useful being: +

    +
  • Customized page headers and/or footers + (see headers) +
  • + +
  • paper_name + default is us_letter, + see resources/papersizes.txt +
  • + +
  • lines_per_page default is 58
  • + +
  • use_line_numbers default is TRUE
  • + +
  • use_color default is TRUE; + currently, only prints Eu comments in red +
  • + +
  • font the usual font description: e.g. "Courier 12", or "Georgia bold 16"... +
  • + +
  • show_progress default is TRUE, see progress bar +
  • + +
  • orientation portrait, landscape
  • + +
  • quality draft, etc.
  • + +
  • number_up print 2-up or 4-up on a single sheet
  • + +
  • number_up_layout see GTK docs
  • + +
  • Margins top_margin, left_margin, etc.; default is .25 inch
  • + +
  • units default is GTK_UNIT_INCH
  • + +
  • scale default is 100%
  • + +
  • n_pages max number of pages to print, defaults to full document
  • + +
  • order 0 = normal (first to last page), 1 = reverse (last to first)
  • + +
  • name printer name
  • + +
  • plaintext set to TRUE to print text containing < or > or & chars
  • + +
  • wrap_at default is 0 (no wrap)
  • + +
  • tabs replace each tab with spaces or other chars, default is 2 spaces
  • + +
  • jobname shown in printer queue, defaults to filename and job #
  • + +
  • track_status default is TRUE
  • + +
  • settings_file filename to save print job settings to. +
    -- this is not the same as the GtkSettings ini file!
    +
  • + +
  • setup_file see the GTK docs
  • + +
  • parent pass the main window handle here [optional]
  • + +
  • action one of the following enums: + GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG +
    -- show printer setup dialog, then print (this is the default)
    + GTK_PRINT_OPERATION_ACTION_PRINT +
    -- print without showing any dialogs
    +
    GTK_PRINT_OPERATION_ACTION_PREVIEW +
    -- preview only, without dialogs, don't print
    +
    GTK_PRINT_OPERATION_ACTION_EXPORT +
    -- write a pdf to [export_file] without dialogs
    +
  • + +
  • export_file name to use for .pdf file
  • + +
  • confirm pop up a dialog when job is complete, default is FALSE
  • +
+ +Be sure to use the printer: namespace when modifying the above variables. +Certain other things, such as selecting a range of pages to print, or +putting a job on hold, can only be done by the user in the print setup +dialogs at this time. +

+ + +


Printing

+

+Adding print capability to your program is actually pretty easy. There are two main options: +

    +
  1. Print from a disk file
  2. +
  3. Print from in-line or generated text
  4. +
+And, there are two ways to start the print process: +
    +
  1. Connect the print_file or print_text function to a button, and attach the filename or text as the button's data item
  2. +
  3. Call the exported function PrintFile() or PrintText()
  4. +
+ +
+


Connecting to buttons

+

+Often, you can save a lot of typing by simply connecting a call to print_file or +print_text to a button, followed by the file name, file handle or text to print as the data item: +

+ +

    constant btn1 = create(GtkButton,"gtk-print",print_file,"~/demos/GtkEngine.e")-- default title will be GtkEngine.e
+    constant btn2 = create(GtkButton,"gtk-print",print_text,LGPL) 
+    constant btn3 = create(GtkButton,"gtk-print",print_file,fn) -- using a Eu file handle to a previously opened file
See
test189 and test190 for various ways to call these functions. +

+ + +


Calling via function calls

+

+If you call the print routines via a normal function call, you have the option to add +a page title to appear in the header.

    PrintFile("~/demos/GtkEngine.e") -- default title will be "GtkEngine.e"
+    PrintFile("License Terms","~/demos/license.txt") -- title will be "License Terms"
+ +See
test189 and test190 for various ways to call these functions.
    PrintText("",LGPL) -- no title
+    PrintText("Lesser General Public License",LGPL) -- prints "Lesser General Public License" as the title
+
+ +See test191 to see how to print direct to a .pdf file. +

+ + +


Headers and Footers

+

+You may wish to override the default page header and/or footer formats.
+Headers and footers are printed using text:format(), so you can choose what info shows +and in what order by using square brackets.
For example: +

 printer:header = ""  -- no header
+ printer:header = "Title: <b>[1]</b> User: [9]\n\n" -- prints page title (bold) and user name
+The numbers in the format box or boxes in the header or footer will be replaced with:
+
    +
  1. page title heading for all pages, unless there's a subtitle
  2. +
  3. page subtitle heading to use on pages after pg 1
  4. +
  5. file name
  6. +
  7. short name file name w/o path
  8. +
  9. current page number
  10. +
  11. n_pages printed
  12. +
  13. n_copies requested
  14. +
  15. today's date in date_format
  16. +
  17. user name
  18. +
  19. real name
  20. +
  21. font name used for this print job
  22. +
  23. file length (bytes) for named files only
  24. +
  25. file timestamp for named files only
  26. +
  27. export filename for pdf files
  28. +
+ +You can use these in any order and combined with other text as you wish. +If you define custom headers or footers, be sure to end the header string, and begin the footer string, with one or two '\n' to separate them from the body text!
+You may use any of the normal
markup tokens in the header and footer, including font and color specifications. +

+ +header +

+

+If you use custom headers or footers, be sure to declare them after you call + show_all(mainwindow). This way, they won't be accessed until after the GTK engine has been fully initialized. Of course, if you print from +a Eu function you have written, you can declare the header and/or footer formats at the start of the function. They won't be set until +the function is called. +

+

+The current date display format can be changed by overriding printer:date_format.The format is the same as used in std/datetime.e.

+

+ + +


Progress Bar

+

+There's a ready-to use progressbar exported by GtkPrinter.e. To use it, +just add it in the appropriate place on your window or dialog: +
+

+ pack(panel,printer:progress)
+
+The progressbar will be updated automatically. Sometimes it's nice to hide the progressbar until printing begins. +

+ +
+


Custom Tabs

+

+You can construct a custom tab and page which will be added to the print dialog. +To do so, you will need to override 3 variables in GtkPrinter.e. +

    +
  1. custom_tab_label
  2. +
  3. custom_tab_func +
    A call_back to your function which creates and returns the handle to a container (GtkBox) with one or more controls embedded.
    This will be the contents of your added page.
  4. +
  5. custom_tab_hook +
    A call_back to a function which retrieves the settings from your embedded controls and applies them as appropriate.
  6. +
+

+ +
+ + + diff --git a/eugtk/examples/documentation/style.css b/eugtk/examples/documentation/style.css new file mode 100644 index 0000000..0befaf4 --- /dev/null +++ b/eugtk/examples/documentation/style.css @@ -0,0 +1,107 @@ + +body {margin-right: 10px; margin-left: 10px;} + +h3 {color: blue;} +img {margin-right: 10px;} +p.small {font-size: small; font-style: italic;} + +em {color: red;} +em.kw {color: blue;} +em.gtk {color: magenta; } +em.str {color: green;} +em.black {color: black;} +em.blue {color: blue;} +em.green {color: green;} +em.brown {color: brown; font-style: normal;} +em.orange {color: orange;} + +button {margin-bottom: 5px; background-color: #A6F583;} +b.x {background-color: #A6F583;} + +figure {background-color: #EFEFEB;} + +table {margin: 10px;} +th {background-color: #FCFAC7;} +tr.note {background-color: yellow;} +tr.subtitle {font-size: smaller;} +td { + background-color: #F2F9FA; + padding-left: 10px; + padding-right: 10px; + font-size: smaller; + } + +td.eucode {background-color: #F2F9FA;} +td.emphasis {background-color: #FBF00A;} +td.note {background-color: yellow;} +td.ba {background-color: cyan;} +td.bb {background-color: skyblue;} +td.bc {background-color: #A3FCA3;} + +ol li {margin-bottom: 10px;} +ul li {margin-bottom: 5px;} +ul.small {font-size: small;} +ol.small {font-size: small;} + +dfn {font-size: small; color: blue;} +dd {font-size: smaller;} + +div.hdr { + display: block; + padding:3px; + border:none; + background: skyblue; + color:yellow; + font-style: italic; + } + +div.hint { + display: block; + border: thin solid black; + padding: 8px; + font-size: small; + border-radius: 20px; + margin-left: 20px; + margin-right: 20px; + background-color: #D9F9E4; + } + +div.quote { + display: block; + border: 1px dashed black; + padding: 5px; + background: #F0F0F0; + margin: 5px; + } + +div.scrn { + display: block; + border: 2px solid green; + padding: 4px; + font-size: 12pt; + color: #00FF00; + background-color: black; + width: 100%; + } + +div.urgent { + display: block; + border: 4px dashed red; + padding: 4px; + margin: 4px; + font-size: 12pt; + color: red; +} + +img {margin-left: 5px; margin-bottom: 5px;} +img.x {margin:0px;} + +figure {margin-left: 2px; margin-bottom: 2px;} +figcaption {background-color: #F2F2F2;} +footer {font-size: smaller;} + + + + + + diff --git a/eugtk/examples/documentation/treeviews.html b/eugtk/examples/documentation/treeviews.html new file mode 100644 index 0000000..41d7440 --- /dev/null +++ b/eugtk/examples/documentation/treeviews.html @@ -0,0 +1,496 @@ + + + + + TreeView/ListView + + + + + +
+ + + + test33.jpg + +


EuGTK 4.12.0

+

ListViews / TreeViews

+
+
+ +
+ + + + + +


ListView/TreeView Overview

+

+Gtk TreeViews and Listviews are used to display one or more columns of data in +a scrollable, sortable, reorderable table format. +

+ +

GTK3 uses the Model/View/Controller scheme for organizing and +displaying data. +

    +
  • In theory, this is more versatile, allowing you to display +the same data in various forms simultaneously.
  • +
  • In reality, you rarely need to do this sort of thing, and when you do, you probably know an easier way.
  • +
  • In practice, this MVC design makes even simple lists mind-bogglingly difficult to +understand and use.
  • +
+

+ +

+Don't let this deter you, however, because EuGTK handles all the twiddling with iterators +and paths, etc. that make using the List/TreeViews so difficult. You can accomplish almost anything you need to do +by cutting and pasting from example code, thereby getting some programming done instead of +sitting there wondering "what were they thinking?" +

+ +


Getting Started

+

+The first step will be to create a model in which to store your data. +The model can be thought of as a table with one or more rows of data, +arranged in one or more columns, +where each column contains one specific type of data.

+

+A model is not unlike a Euphoria sequence. Take, for example, the +following: +

sequence students { -- name, age, amt due
+	{"Sam Smith", 15, 19.95},
+	{"Sue Jones", 14, 12.99},
+	$ -- etc...
+	}
+ +In the above, col 1 contains strings, col 2 contains integers, col 3 contains floats. +Your model must mirror the number and types of +data in the sequence to be used. +

+ +


Models

+

+There are two kinds of model which come +pre-built with GTK, plus others you can supposedly devise, if you believe the GTK docs! + - Let's stick with the two easy ones:
+

    +
  • GtkListStore
  • +
  • GtkTreeStore
  • +
+You'll have noted that, just to make things even more confusing, GTK decided to call the +list model a ListStore, and the tree model a TreeStore. So we might as well give our Euphoria +object variable the name store. +

+ +

+Creating your model a.k.a. store is easy, you just need to specify a data type +for each of the columns to match the type of data to be stored there. +

+ +

+For the example Euphoria sequence shown above, (students) we do this: +

+  constant store = create(GtkListStore,{gSTR,gINT,gFLT}) -- name, age, amt due
+
+

+ +

+Note: by specifying a data type for each column, you are not only indicating what type of data +can be stored there, but also describing the way you want the data to look. IOW, you might +define the "name" column as gINT, but that would result in the name column displaying +the pointers to the students name strings, rather than the names in readable form. +Likewise, gINT, gFLT, and gDBL result in different ways to display the same numeric +contents. +Note: EuGTK implements a 'convenience' here for numbers: see floats. +

+ +

+Next, you need to load the model with your data: + +This can be done in one swell foop by simply typing: +

 set(store,"data",students)
+ +


Columns

+

+TreeView columns are created as you might expect.
+Note: there are no ListView columns, everything uses a TreeViewColumn.
+

 constant col1 = create(GtkTreeViewColumn) -- no params needed
+Each column will display a "vertical slice" of your Eu sequence.

+

+You do not need to define a column for each column of data in your original Eu sequence. +Only create a column for each item you want to see in the listview. +In addition, the columns do not have to be in the same order as the original +Eu sequence. You can specify which column in the store is to provide the values to +be displayed in each column. See connecting below. +

+ +


Cell Renderers

+

+In order to be able to display the data, each column must have a cell renderer associated with it. +Every cell in a given column displays the same type of data: string, integer, or float, + but using individual values which are gotten from the 'model' attached to the view. +

+Cell renderers are created by: +

 constant rend1 = create(GtkCellRendererText) -- no params needed
+Where the renderer can be one of several types.
+
    +
  • GtkCellRendererText
  • +
  • GtkCellRendererPixbuf
  • +
  • GtkCellRendererProgress
  • +
  • GtkCellRendererSpin
  • +
  • GtkCellRendererToggle
  • +
  • GtkCellRendererCombo
  • +
+As you can see, the names indicate different ways to display the data from the model. +For example, the CellRendererText will display strings, integers, or floats in human-readable form, +i.e. alpha-numeric characters, while the CellRendererProgress will display percentages as a variable-length bar.

+The CellRendererToggle displays boolean values as a check-box, CellRendererSpin displays a potentially +changeable numeric value, and a CellRendererPixbuf displays an image when given the handle to a GdkPixbuf. +

+ +
+ +

+You will always create a column and a renderer together, and pack the renderer into the +column. It is possible to pack more than one renderer into a single column. +

 constant col1 = create(GtkTreeViewColumn)
+	set(col1,"title","Name") -- you may set some properties of the column
+
+ constant rend1 = create(GtkCellRendererText)
+	set(rend1,"font","Courier 8") -- you may set some properties of the renderer, these affect the entire column
+	set(col1,"pack start",rend1) -- and finally, add the renderer to the column!
+
+
+

+ + + +


Connecting data to column renderers

+

+Next, you need to associate each column in the view with the column in the model where it +will find its data. +Of course, it can't be this easy. Instead, you have to tell the column to tell its +cell renderer where to find the data:
+

 set(col1,"add attribute",rend1,"text",1)
+Which means: col1 should get the text to be displayed by its cell renderer (rend1) from column #1 of the model. +In the example, this would be the name of the student. +

+ +

+Often you may have more data in your Eu sequence - and hence, in your model - than you wish to display, +and/or you may want to display the columns in a different order than they appear in the original sequence. +This "add attribute" call allows you to control that. +

+ +

+'Text' is only one attribute that the GtkCellRendererText has to offer; some of the others are +'markup', 'background', 'foreground', 'language', 'font', etc. By now, you won't be surprised to find that these +aren't called attributes by the GTK docs, instead you'll find them listed under Properties for +the various GtkCellRenderers. +

+ +But wait, there's more! +

+Just to keep things from getting boring, there are two ways to set an attribute a.k.a. property for a cell renderer. +The first, as shown below, is to tell the column to tell the renderer where to get its background for this particular +cell. +Let's assume col# 2 of the model contains color names, perhaps a different color for +each row in the list:
+

    set(col1,"add attribute",rend1,"background",2)
+

+ +

+On the other hand, suppose you tell the cell renderer directly to set a property. +This will affect all cells in the column which contains that renderer. This is done +as follows: +

    set(rend1,"background","skyblue") -- entire column will have a sky blue background
+    set(rend1,"size-points",36) -- and all text in that column will be 36 points
+
+

+ +


Finally

+

+Now you only have to create a GtkTreeView to hold the columns.
+(Here again, there is no GtkListView, everything uses a GtkTreeView)
+

    constant tv = create(GtkTreeView)
+	set(tv,"rules hint",TRUE) -- set some appearance options for the tree view:
+
+ +Then tell it which model it should use to obtain its data; and append the column(s): +
	set(tv,"model",store)
+	set(tv,"append columns",{col1...})
+
+

+ +

+And, more often than not, you'll add the view to a scrolled window and viewport, which keeps long +lists from extending past the bottom of the screen. +

+ +


Signals

+

+The normal signal to connect to is "row-activated", which will select +a row when it is double-clicked or a row is highlighted and the <enter> key is pressed. +

    connect(tv,"row-activated",call_back(routine_id("Foo")))
+
+If you are using GTK version 3.8 or above, you can choose to activate on a +single click by setting the following: +
    set(tv,"activate on single click",TRUE)
+
+

+ +


Easy Syntax! ~ new in EuGTK 4.11.2

+

+Below is the code needed to produce a listview; it isn't such a big deal, as you can see. +Refer to the simple test3.ex demo, +and the overly-fancy test33.ex demo. +

+ +

constant  store = create(GtkListStore,{gSTR,gSTR,gSTR})  -- describe type of data to be stored in each column;
+
+set(store,"data",{  -- here's the data;
+    {"Apple", "doz",5.00}, 
+    {"Cherry","lb", 3.69}, -- note: 3rd column is numeric,
+    {"Lime",  "ea",  .99}, -- but will automatically be converted 
+    {"Orange","ea", 0.79}, -- to a string by the store
+    {"Banana","lb", 1.89}
+    })
+
+constant scroller = create(GtkScrolledWindow)
+  pack(panel,scroller,TRUE,TRUE)
+
+constant  tv = create(GtkTreeView,{
+  {"model",store},    
+  {"connect","row-activated",_("ShowChoice")}}) -- see  function below
+  add(scroller,tv)
+  
+constant
+ col1 = create(GtkColumn,"title=Name,type=text,text=1,sort_column_id=1"),
+ col2 = create(GtkColumn,"title=Quantity,type=text,text=2"),
+ col3 = create(GtkColumn,"title=Price,type=text,text=3,sort_column_id=3") 
+
+set(tv,"append columns",{col1,col2,col3})
+  
+constant selection = get(tv,"selection")
+
+---------------------
+function ShowChoice() -- our function to handle selections
+---------------------
+object choice = get(selection,"selected row data")
+Info(,,choice[1],format("Price: $[3] per [2]",choice))
+return 1
+end function
+
+

+ +


Functions ~ new in EuGTK 4.8.7

+

+ Please don't bother trying to figure out the GTK docs when it comes to using a list or tree view.
You'll find yourself + ... lost in an endless maze of twisty +passages... +

+

+The stock GtkListView/GtkTreeView scheme is rediculously complex, and nearly impossible to understand. +With this version of EuGTK, I have implemented easier ways to deal with these things. +

+ +

+After you create a ListView model, you can load it with an ordinary Euphoria sequence* +and manipulate it using familiar calls. Note that there is no direct connection between the Eu +data sequence and the list view store, so changing the Eu sequence does not change the list view, +or vice-versa. To keep the two in sync, you must update as appropriate. See the hint below. +

+ +

+   constant store = create(GtkListStore,{gSTR,gSTR,gFLT})
+
+   sequence customers = {-- first, last, balance due
+	{"Sue","Jones",40.95},
+	{"Ralph","Wiggums",29.44}} 
+
+   sequence new_cust = {"Ferd","Merkle",12.50}
+
    +
  • Working with entire contents as Eu Sequence
  • +
    set(store,"data",customers) -- store Eu sequence to listview
    +
    get(store,"data") -- retrieve listview data as Eu sequence
    +
    set(store,"clear") -- clear listview, does not affect original Eu sequence
    + +
    + +
  • Working with individual rows
  • +
    get(selection,"selected row") -- returns integer row number
    +
    get(selection,"selected rows") -- returns sequence of row numbers: {2,6,23}
    + + +
    set(store,"append row",new_cust) -- add to bottom of list, invalid if view is sorted
    +
    set(store,"prepend row",new_cust -- add to top of list, invalid if view is sorted
    +
    set(store,"insert row",new_cust,pos#) -- add at pos, invalid if view is sorted +
    set(store,"remove row",row#)
    +
    set(store,"replace row",row#,new_cust) -- replace row or list of selected rows with new data
    +
+ +
+hint +

The above set() calls actually return + the modified data, which you can ignore, + or use to sync the modified data to disk, if you wish, whenever data is changed.

+
+ +
    +
  • Working with a single row/column
  • +
    set(store,"col data",row#,col#,data)
    +
    get(store,"col data",row#,col#)
    +
    +
  • Other functions
  • +
    set(store,"swap",row_a,row_b) -- trade places. row_a and row_b are integer row numbers
    +
    set(store,"move before",row_a,row_b) -- only valid if view is unsorted
    +
    set(store,"move after",row_a,row_b) -- only valid if view is unsorted
    +
    NOTE: the above return the modified sequence, could be used to save updates to disk, etc.
    + +
    + +
  • Information functions
  • +
    get(store,"n rows") -- returns current number of rows in model
    +
    get(store,"n cols") -- returns number of columns in model
    +
    get(store,"is sorted")
    +
    get(store,"sort column id") -- 1..n
    +
    get(store,"sort order") -- 0 = ascending, 1 = descending
    +
    NOTE: sort order is only valid if "is sorted" = TRUE
    +
+
+

+ +

* +Eu sequences must be conformant - IOW, each column must contain one consistent type of data: +if the first column contains strings, then all entries in column one must be strings, if a column contains numbers, for example, +age or balance due, then all entries in that column should be numbers. +

+ +

+Each view column can have an optional sort column id - this tells the view column which column in the model (store) contains the value to use in the sort. +In practical terms, this means that you could tell column #1 (names) that it should be sorted based on the value in #3 (amt_due). +You may also want to make the TreeView's headers clickable, so the user can sort each column when desired. +You can also, thru code, tell the model to sort itself by column and direction: +

 set(store,"sort column id",3,GTK_SORT_ASCENDING) 
+        -- instead of an integer column #, you can use:
+        -- GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID (-2) = no sorting 
+        -- sort directions are, as you would expect: GTK_SORT_ASCENDING | GTK_SORT_DESCENDING 
+
+

+ +

+You can also write your own custom sorting function, and tell the TreeView to use that function. +See the GTK docs on GtkTreeSortable for a prototype (GtkTreeIterCompareFunc) you can use when writing your +Euphoria function. +

+ +


Retrieving data

+To get the full data set back as a Euphoria sequence, just use: +
    get(store,"data")
+

+ +

+To get the selected data back from a ListView/TreeView, you must first obtain a GtkSelection object +from the view. Normally, this can be done at the time the view is created: +

    constant selection = get(tv,"selection") -- this tracks the changing selection(s)
+    set(selection,"mode",GTK_SELECTION_SINGLE)
+

+ +

+Then, you can get the data contained in the selected row if selection mode is + GTK_SELECTION_SINGLE or GTK_SELECTION_BROWSE; +or rows, if selection mode is GTK_SELECTION_MULTIPLE. +

+ +
 object rowlist = get(selection,"selected rows") -- this returns a Eu sequence of one or more integers, e.g. {3} or {1,3,5,6}
+ object data
+        for i = 1 to length(rowlist) do
+            data = get(store,"row data",rowlist[i]) -- use each row # to get the row's data
+            -- here, you do something with that data...
+

+ +

+Sometimes, it's convenient get the contents of a single cell in a row by calling: +

   data = get(store,"col data",row,2) -- where 2 is the column# 
+

+ +

+The above instructions apply primarily to CellRendererText renderers. +Lists using other types of CellRenderers require different methods to retrieve the contents/results of a selection. +Please refer to the alphabetical guide, the GTK docs on CellRenderer properties, and the respective demos. +

+ +


Floats

+
+test194 + + +


+The default display format for floating point numbers (gFLT) used in ListViews will probably not +be what you want - there will be too many digits following the decimal point. +In order to fix this, you can connect your own cell data function formatting routine. +See test66 for an example of how to do this.

+

+ +
+ +

+As a convenience, another way to handle common values with 2 decimal points +is to declare the column as gSTR, but to pass atoms or integers. +No cell data formatting function is needed for this special case.

+test3 + +
+ +
+
+ hint +

+ This page edited by The Bear, + a web-page and programming editor + written in Euphoria. +

+

+ Updated for EuGTK version 4.12.0, Sept 15, 2016
+ All code © 2016 by Irv Mullins +

+
+
+ + + diff --git a/eugtk/examples/eu.cfg b/eugtk/examples/eu.cfg new file mode 100644 index 0000000..12ac99d --- /dev/null +++ b/eugtk/examples/eu.cfg @@ -0,0 +1 @@ +~/demos diff --git a/eugtk/examples/examples/.httpd.css b/eugtk/examples/examples/.httpd.css new file mode 100644 index 0000000..33137b6 --- /dev/null +++ b/eugtk/examples/examples/.httpd.css @@ -0,0 +1,11 @@ +/* +-- ==================================================================== +-- Styling for the remote display is set here; +-- ==================================================================== +*/ + +button {width: 100%;} +button.dir {background-color: skyblue;} +button.html {background-color: orange;} + +body {background-image: linear-gradient(180deg, yellow, blue); background-repeat: no-repeat;) diff --git a/eugtk/examples/examples/README.html b/eugtk/examples/examples/README.html new file mode 100644 index 0000000..ab2fe48 --- /dev/null +++ b/eugtk/examples/examples/README.html @@ -0,0 +1,118 @@ + + + + + README + + + + + +
+ GTK Logo + OpenEuphoria Logo + +

EuGTK 4.11.7

+
+ +

This folder contains some more-complex examples

+ +

Click on the link below the picture to view the source code.

+ +
+worldflags.ex +
World Flags test your memory
+
+ +
+hangman.ex +
Hangman guess the word game
+
+ +
+passwords +
Password Generator requires apg
+
+ +
+webserver +
Web Server
+
+ +
+ +webkit + +
Webkit build your own browser!
+
+ +
+color codes +
Color codes
+
+ +
+ +icons + +
Icon Viewer
+
+ +
+ +browser + +
Eu Browser
+
+ +
+ +leaktest + +
Leak Test
+
+ +
+ +

Utilities

+

+

    +
  • Audio Converter + convert between various audio formats; requires ffmpeg +
  • + +
  • Convert numbers + convert between Gray, binary, hex, decimal bases +
  • + +
  • Talk + give your computer a voice (more than one, actually); requires spd-say +
  • + +
  • xpm_to_eu_include + Convert xpm data to an image as a Euphoria include file +
  • + +
+ +

+ +
+
+ hint +

+ This page edited by The Bear, + a web-page and programming editor + written in Euphoria. +

+

+ Updated for EuGTK version 4.11.10 June 15, 2016
+ All code © 2016 by Irv Mullins +

+
+
+ + + + + diff --git a/eugtk/examples/examples/audio_converter.ex b/eugtk/examples/examples/audio_converter.ex new file mode 100644 index 0000000..227ed93 --- /dev/null +++ b/eugtk/examples/examples/audio_converter.ex @@ -0,0 +1,193 @@ + +------------------------------------------------------------------------ +--# Converts audio file formats, requires ffmpeg! +------------------------------------------------------------------------ +-- formats handled are in the constant x below. +-- You can, of course, add more formats if you want. +-- Put the default input format first on the list, +-- and the default output format last, so you won't +-- have to select them each time you run this program. +------------------------------------------------------------------------ + +include GtkEngine.e +include GtkEvents.e +include std/sort.e +include std/task.e +include std/os.e + +constant x = {"wma","wav","ogg","mp3"} + +object folder, files + +constant win = create(GtkWindow) + connect(win,"destroy","Quit") + set(win,"border width",10) + set(win,"default size",600,250) + set(win,"position",GTK_WIN_POS_CENTER) + +constant panel = create(GtkBox,VERTICAL) + add(win,panel) + +constant top = create(GtkBox,HORIZONTAL) + pack(panel,top) + +constant path = create(GtkFileChooserButton, -- select music folder; + "Select a folder",GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER) + connect(path,"current-folder-changed","LoadList") + set(path,"tooltip text","Select a music folder") + pack(top,path,TRUE,TRUE) + +constant extension1 = create(GtkComboBoxText) -- input file format; + for i = 1 to length(x) do + set(extension1,"append text",x[i]) + end for + set(extension1,"tooltip text","Select input format") + set(extension1,"active",1) + pack(top,extension1) + +constant extension2 = create(GtkComboBoxText) -- output file format; + for i = 1 to length(x) do + set(extension2,"append text",x[i]) + end for + set(extension2,"tooltip text","Select output format") + set(extension2,"active",length(x)) + pack(top,extension2) + +constant scroller = create(GtkScrolledWindow) + pack(panel,scroller,TRUE,TRUE) + +constant store = create(GtkListStore,{gSTR,gINT,gINT}) -- file list; + +constant tv = create(GtkTreeView) + add(scroller,tv) + set(tv,"hover selection",TRUE) + set(tv,"headers clickable",TRUE) + set(tv,"rules hint",TRUE) + set(tv,"model",store) + +constant selection = get(tv,"selection") + set(selection,"mode",GTK_SELECTION_BROWSE) + +constant col1 = create(GtkTreeViewColumn) + constant ren1 = create(GtkCellRendererText) + set(col1,"title","Filename") + set(col1,"pack start",ren1) + set(col1,"add attribute",ren1,"markup",1) + set(col1,"sort column id",1) + set(tv,"append column",col1) + +constant col2 = create(GtkTreeViewColumn) +constant ren2 = create(GtkCellRendererToggle) + set(col2,"title","Converted") + set(col2,"pack start",ren2) + set(col2,"add attribute",ren2,"active",2) + set(tv,"append column",col2) + +constant box = create(GtkButtonBox), + btn1 = create(GtkButton,"gtk-quit","Quit"), + btn2 = create(GtkButton,"gtk-help","Help"), + btn3 = create(GtkButton,"gtk-ok","Convert") + set(box,"margin top",10) + set(btn1,"tooltip text","Click to exit") + set(btn2,"tooltip text","Click for help") + set(btn3,"tooltip text","Click to start conversion") + add(box,{btn1,btn2,btn3}) + pack(panel,-box) + +show_all(win) + +if system_exec("which ffmpeg",0) != 0 then + set(btn3,"sensitive",FALSE) + Warn(win,"Error","Cannot find ffmpeg program","Please install one!") +end if + +main() + +------------------------------------------ +global function LoadList() +------------------------------------------ +object ext_in = get(extension1,"active") + folder = get(path,"filename") + ext_in = x[ext_in] + + files = dir(folder & "/*." & ext_in) + if atom(files) then return -1 end if + + files = sort(vslice(files,1)) + set(store,"clear") + set(store,"data",files) + +return 1 +end function + +--------------------------- +global function Convert() +--------------------------- +atom iter +object in, out, + ext1 = x[get(extension1,"active")], + ext2 = x[get(extension2,"active")], + parameters = " -ab 128k " + + switch ext2 do + case "ogg" then parameters = " -acodec libvorbis -ab 128k " + case "mp3" then parameters = " -acodec libmp3lame -ab 128k " + end switch + + set(path,"sensitive",FALSE) + set(extension1,"sensitive",FALSE) + set(extension2,"sensitive",FALSE) + set(tv,"scroll to point",0,1) + + for i = 1 to length(files) do + in = filebase(files[i]) + out = filebase(files[i]) + iter = get(store,"iter from string",sprintf("%d",i-1)) + + set(store,"col data",iter,1, + sprintf("%s.%s",{in,ext1})) + while events:pending() do + main_iteration() + end while + + system_exec(sprintf("ffmpeg -y -i \"%s/%s.%s\" %s \"%s/%s.%s\"\n", + {folder,in,ext1,parameters,folder,out,ext2}),0) + + set(store,"col data",iter,1, + sprintf("%s.%s",{out,ext2})) + + set(store,"col data",iter,2,"active",TRUE) + set(tv,"scroll to point",0,(i-1)*25) + while events:pending() do + main_iteration() + end while + end for + + set(path,"sensitive",TRUE) + set(extension1,"sensitive",TRUE) + set(extension2,"sensitive",TRUE) + +return 1 +end function + +------------------------------------------------------------ +global function Help() +------------------------------------------------------------ +return Info(win,"Audio Converter", "Converts audio files",""" +_____to/from your choice of output formats + + It does not overwrite the original, + just creates a copy in the new format, + unless the input and output filenames are the same. + + Run this program from an x-term + if you want to monitor the ffmpeg progress. + + Select a directory in the box at top, + and the input and output formats using the drop-down + options on the right.""" +) +end function + + + diff --git a/eugtk/examples/examples/base_converter.ex b/eugtk/examples/examples/base_converter.ex new file mode 100644 index 0000000..e84f365 --- /dev/null +++ b/eugtk/examples/examples/base_converter.ex @@ -0,0 +1,159 @@ + +--------------------------------------------------------------- +--# Gray code/Decimal/Hex/Octal/Binary conversion program +-- I needed a Gray code generator, and it just kept growing! +-- Run with -d CODE to display Gray code table on console +---------------------------------------------------------------- + +include GtkEngine.e +include std/console.e +include std/convert.e +include std/sequence.e + +-- change MAX_BIN_DIGITS to suit yourself; the bigger the number, +-- the longer it takes to generate a Gray code list; +constant MAX_BIN_DIGITS = 16 + +-- compute largest number possible given max_bin_digits: +constant MAX_NUM = power(2,MAX_BIN_DIGITS) -1 + +constant -- define max # of digits allowed in inputs; + DMAX = length(format("[]",MAX_NUM)), + BMAX = length(format("[B]",MAX_NUM)), + HMAX = length(format("[X]",MAX_NUM)), + OMAX = length(sprintf("%o",MAX_NUM)) + +constant -- allowable sets of chars (used to filter out unwanted key presses) + BINNUM = {{'0','1'}}, + DECNUM = {{'0','9'}}, + OCTNUM = {{'0','7'}}, + HEXNUM = {{'0','9'},{'A','F'},{'a','f'}} + +constant msg = "1. Enter a value in any box \n2. press enter" +constant docs = sprintf("Converter\n\nConverts numbers between 0 and %d",MAX_NUM) + +enum BIN = 2, DEC = 10, HEX = #F, OCT = 8 + +--------------------------------------------------------------- +-- Generate Gray code table using the manual (pencil & paper) +-- method, 'cause it's easy to code and I flunked calculus ;) +--------------------------------------------------------------- +object Gray = {"0","1"} + +for i = 1 to MAX_BIN_DIGITS-1 do + Gray = Gray & reverse(Gray) -- {"0","1","1","0"} + for j = 1 to length(Gray) do + if j <= length(Gray)/2 then + Gray[j] = "0" & Gray[j] -- prepend "0" to first half, + else + Gray[j] = "1" & Gray[j] -- prepend "1" to second half + end if + end for +end for + +ifdef CODE then -- display code table on terminal; + for i = 1 to length(Gray) do + printf(1,"%d %s\n",{i-1,Gray[i]}) + end for +end ifdef + +-------------------------------------------------------------------------------------- +-- Build GUI +-------------------------------------------------------------------------------------- +constant win = create(GtkWindow, + "title=Code Converter,size=120x150,border=20,position=1,$destroy=Quit") + +constant panel = create(GtkBox,"orientation=VERTICAL") + add(win,panel) + +constant lbl1 = create(GtkLabel) + set(lbl1,"markup",docs) + add(panel,lbl1) + +constant + inpGray = BuildInput("Gray",BIN,MAX_BIN_DIGITS), + inpDec = BuildInput("Decimal",DEC,DMAX), + inpHex = BuildInput("Hex",HEX,HMAX), + inpOct = BuildInput("Octal",OCT,OMAX), + inpBin = BuildInput("Binary",BIN,BMAX) + + set(inpGray,"tooltip text","Accepts binary digits 1 or 0") + set(inpDec,"tooltip text","Accepts decimal digits 0-9, max 65,535") + set(inpHex,"tooltip text","Accepts hex digits 0-9,A-F, max FFFF") + set(inpOct,"tooltip text","Accepts octal digits 0-7, max 177777") + set(inpBin,"tooltip text","Accepts binary digits 1 or 0") + +constant lbl2 = create(GtkLabel) + add(panel,lbl2) + set(lbl2,"markup",msg) + +show_all(win) +main() + +-------------------------------------------------------------- +function BuildInput(sequence caption,integer base,integer max) +-------------------------------------------------------------- +object lbl = create(GtkLabel,caption) +object inp = create(GtkEntry) + set(inp,"font","Courier Bold 16") + set(inp,"size request",100,40) +object buf = get(inp,"buffer") + set(buf,"max length",max) + connect(buf,"inserted-text",call_back(routine_id("FilterBase")),base) + connect(inp,"activate",call_back(routine_id("UpdateDisplay"))) + add(panel,{lbl,inp}) +return inp +end function + +-------------------------------------------------- +function UpdateDisplay(atom ctl) +-------------------------------------------------- +object buf = get(ctl,"buffer") +object val = get(buf,"text") +object dec = 0 + + set(lbl2,"markup",msg) + + switch ctl do -- convert from ctl's base to decimal value; + case inpDec then dec = to_number(val) + case inpHex then dec = to_number(sprintf("#%s",{val})) + case inpOct then dec = to_number(sprintf("@%s",{val})) + case inpBin then dec = to_number(sprintf("!%s",{val})) + case inpGray then + val = pad_head(val,MAX_BIN_DIGITS,'0') + dec = find(val,Gray)-1 + end switch + + if dec > MAX_NUM then + set(lbl2,"markup","Warning - number too large!") + + else -- update the number in all input fields, converting dec to base as needed; + set(inpGray,"text",Gray[dec+1]) + set(inpDec,"text",format("[]",dec)) + set(inpHex,"text",format("[X]",dec)) + set(inpOct,"text",sprintf("%o",dec)) + set(inpBin,"text",format("[B]",dec)) + end if + +return 1 +end function + +---------------------------------------------------------------------------------------- +function FilterBase(atom buf, integer pos, object char, integer n, integer base) +---------------------------------------------------------------------------------------- +object txt = get(buf,"text") + + char = peek_string(char) + + switch base do -- if char entered isn't valid for base, delete it. + case BIN then if not char_test(char,BINNUM) then set(buf,"delete text",pos,1) end if + case OCT then if not char_test(char,OCTNUM) then set(buf,"delete text",pos,1) end if + case DEC then if not char_test(char,DECNUM) then set(buf,"delete text",pos,1) end if + case HEX then if not char_test(char,HEXNUM) then set(buf,"delete text",pos,1) end if + end switch + +return 1 +end function + + + diff --git a/eugtk/examples/examples/browser.ex b/eugtk/examples/examples/browser.ex new file mode 100644 index 0000000..25a740e --- /dev/null +++ b/eugtk/examples/examples/browser.ex @@ -0,0 +1,118 @@ + +---------------------------------------------------------------------------------- +--# A simple file browser/runner; +---------------------------------------------------------------------------------- + +include GtkEngine.e +include std/sort.e +include std/datetime.e -- using this requires us to namespace gtk: functions + +chdir(login) + +constant win = create(GtkWindow,"size=750x550,border=10,$destroy=Quit") + gtk:set(win,"title","EuGTK Browser - " & login) + +constant panel = create(GtkBox,"orientation=VERTICAL") + gtk:add(win,panel) + +constant lbl = create(GtkLabel, + "markup='Use alt-f to search, <enter> or double-click to run!'") + gtk:add(panel,lbl) + +constant store = create(GtkListStore,{gSTR,gSTR,gINT,gSTR,gINT,gSTR}) + +constant tv = create(GtkTreeView,{ + {"model",store}, + {"reorderable",TRUE}, + {"headers clickable",TRUE}, + {"set grid lines",GTK_TREE_VIEW_GRID_LINES_BOTH}, + {"rules hint",TRUE}}) + +constant cols = { -- below is a new way to define cols and renderers in 1 line; + create(GtkColumn,"title=Name,type=text,text=1,sort_column_id=2"), --[1] + create(GtkColumn,"title=Size,type=text,text=3,sort_column_id=3"), + create(GtkColumn,"title=Date,type=text,text=4,sort_column_id=5"), --[2] + create(GtkColumn,"title=Description,type=text,markup=6,sort_column_id=6") +} +--[1] filename in col[1] is sorted by number in col[2] +--[2] date shown in col[4] is sorted on unix date in col[5] + +gtk:add(tv,cols) + +constant selection = gtk:get(tv,"selection") + set(selection,"mode",GTK_SELECTION_MULTIPLE) + +constant scroller = create(GtkScrolledWindow) + pack(panel,scroller,TRUE,TRUE,10) + gtk:add(scroller,tv) + +constant box = create(GtkButtonBox) + pack_end(panel,box) + +constant btn = create(GtkButton,"gtk-quit","Quit") + gtk:add(box,btn) + +-- load file list; +object files = dir("*.ex") + +-- convert dates to usable format; +files = apply(files,routine_id("convert_date")) +files = apply(files,routine_id("convert_filename")) + +-- load files into listview; +gtk:set(store,"data",files) + +-- set up handlers; +gtk:set(tv,"rules hint",TRUE) +gtk:set(tv,"columns autosize") +gtk:set(tv,"search column",6) +gtk:set(tv,"search equal func",_("search_func")) +connect(tv,"row-activated","show_choice") +gtk:set(store,"sort column id",2,GTK_SORT_ASCENDING) -- default startup sort; + +-- run the program! +show_all(win) +main() + +------------------------------------------------ +function convert_filename(object f, object junk) -- allow 'natural' sort order; +------------------------------------------------ +object tmp = io:read_lines(f[1]) +for i = 1 to length(tmp) do + if match("--#",tmp[i]) =1 then + f[6] = tmp[i][5..$] + end if + end for +f[1] = filebase(f[1]) -- drop extension, build index of #s; +object x = filter(f[1],"out",{'0','9'},"[]") +object n = filter(f[1],"in",{'0','9'},"[]") +f[2] = x & pad_head(n,10,'0') +return f +end function + +----------------------------------------- +function convert_date(object a, object b) -- convert dates to unix for sorting; +----------------------------------------- +object dt = datetime:new(a[4],a[5],a[6]) -- convert eu dir() date to datetime; + a[5] = to_unix(dt) -- store as UNIX timestamp for sorting purposes; + a[4] = datetime:format(dt,"%b %d %Y") -- store human-readable date for display; + a[6] = "?" +return a +end function + +------------------------------------------------------------------------------- +function search_func(atom mdl, integer col, object key, atom iter, object data) +------------------------------------------------------------------------------- +key = lower(peek_string(key)) -- key is passed as pointer to string +data = get(mdl,"value",iter,6) -- value from col 6 of liststore (description) +return not match(key,lower(data)) -- find word anywhere in description, 0 = found +end function + +----------------------- +global function show_choice() +----------------------- +integer row = gtk:get(selection,"selected row") +object f = gtk:get(store,"col data",row,1) +system("eui " & f,0) -- run it; +return 1 +end function diff --git a/eugtk/examples/examples/clown.e b/eugtk/examples/examples/clown.e new file mode 100644 index 0000000..343ebe7 --- /dev/null +++ b/eugtk/examples/examples/clown.e @@ -0,0 +1,1053 @@ +namespace clown + +-- exports clown:icon as GdkPixbuf + +include GtkEngine.e + +constant clown_xpm = { +"90 90 952 2", +" c None", +". c #FF943D", +"+ c #FF933D", +"@ c #FF943E", +"# c #FF933E", +"$ c #FF953E", +"% c #FF933F", +"& c #FAAB4A", +"* c #F5CC5E", +"= c #F4D262", +"- c #F6C55B", +"; c #FCA548", +"> c #FF963F", +", c #FAAE4D", +"' c #F9B853", +") c #FAB14F", +"! c #FF9740", +"~ c #F7C158", +"{ c #F1E36C", +"] c #F9B551", +"^ c #FCA245", +"/ c #F3DA67", +"( c #F2DC68", +"_ c #FAAA4A", +": c #000000", +"< c #FF943C", +"[ c #FBA84B", +"} c #F1E16B", +"| c #FE9C43", +"1 c #FE953E", +"2 c #F2DF6A", +"3 c #FD9E43", +"4 c #9D5A25", +"5 c #321D0B", +"6 c #231509", +"7 c #523013", +"8 c #573416", +"9 c #6C5125", +"0 c #866F33", +"a c #C49F49", +"b c #F9B14E", +"c c #F5CC5F", +"d c #F6C85C", +"e c #FCA347", +"f c #F8BC55", +"g c #F5CB5E", +"h c #F9B450", +"i c #FF973F", +"j c #FF923E", +"k c #FE9B42", +"l c #FAB24F", +"m c #E2AF50", +"n c #522F14", +"o c #1B1A0C", +"p c #8B803D", +"q c #EBDE69", +"r c #F3D966", +"s c #FD9F44", +"t c #FF953D", +"u c #F7C359", +"v c #F1E16A", +"w c #B8AE53", +"x c #18160A", +"y c #211F0F", +"z c #C3B757", +"A c #F4D363", +"B c #F6C459", +"C c #A39949", +"D c #080703", +"E c #363318", +"F c #817A3A", +"G c #B29042", +"H c #B86A2C", +"I c #4D2C14", +"J c #353B44", +"K c #7A899E", +"L c #7B889E", +"M c #7A889E", +"N c #79889E", +"O c #77869B", +"P c #0B0C0E", +"Q c #090804", +"R c #A29848", +"S c #FD9C42", +"T c #FF923D", +"U c #FE9840", +"V c #F1E26B", +"W c #AFA54E", +"X c #050402", +"Y c #2B2813", +"Z c #B9AE53", +"` c #FE9D43", +" . c #5D6778", +".. c #20252B", +"+. c #040506", +"@. c #596373", +"#. c #515A69", +"$. c #432710", +"%. c #745123", +"&. c #8D853F", +"*. c #8A823E", +"=. c #746D34", +"-. c #3F3C1C", +";. c #040402", +">. c #BDB255", +",. c #FF9840", +"'. c #C1B656", +"). c #0C0C06", +"!. c #6D6631", +"~. c #F0E26C", +"{. c #D2A266", +"]. c #958A8A", +"^. c #4C5563", +"/. c #030304", +"(. c #5E6877", +"_. c #929DAF", +":. c #99A4B5", +"<. c #9DA8B8", +"[. c #9CA6B7", +"}. c #95A0B1", +"|. c #8794A8", +"1. c #1F2228", +"2. c #060708", +"3. c #333942", +"4. c #79879D", +"5. c #B78C71", +"6. c #F4A14C", +"7. c #D4C75F", +"8. c #555026", +"9. c #19170B", +"0. c #E0D364", +"a. c #F7C258", +"b. c #F7BF57", +"c. c #FCA247", +"d. c #FF943F", +"e. c #FE933D", +"f. c #FCA448", +"g. c #FCA749", +"h. c #FBA848", +"i. c #E5D766", +"j. c #1E1C0E", +"k. c #89813D", +"l. c #D3CD78", +"m. c #8E9795", +"n. c #939EB0", +"o. c #B9C0CC", +"p. c #A1A4A9", +"q. c #B1B2B3", +"r. c #FFFFFF", +"s. c #F8F9FA", +"t. c #BABDC1", +"u. c #5F6267", +"v. c #959EAC", +"w. c #7D8AA0", +"x. c #828999", +"y. c #BFB27D", +"z. c #EFE16C", +"A. c #7D7638", +"B. c #6B6530", +"C. c #F7C058", +"D. c #FF933C", +"E. c #FBAA4A", +"F. c #5C5629", +"G. c #EBDE6F", +"H. c #A7AA8B", +"I. c #7B889D", +"J. c #7F8CA1", +"K. c #B0B9C6", +"L. c #E5E8EC", +"M. c #F4F5F7", +"N. c #C3C9D3", +"O. c #8A96AA", +"P. c #909794", +"Q. c #DBD275", +"R. c #605B2B", +"S. c #060503", +"T. c #D0C45D", +"U. c #FAB14E", +"V. c #FE943E", +"W. c #FCA246", +"X. c #DFD264", +"Y. c #1A190C", +"Z. c #544F26", +"`. c #D7CF77", +" + c #899398", +".+ c #7D8BA0", +"++ c #B7BFCB", +"@+ c #FCFDFD", +"#+ c #CED3DB", +"$+ c #8895A8", +"%+ c #7E8A9D", +"&+ c #BDBB82", +"*+ c #E8DB68", +"=+ c #88803D", +"-+ c #0E0D06", +";+ c #22200F", +">+ c #E7D967", +",+ c #CBC57C", +"'+ c #7E8B9C", +")+ c #9AA5B6", +"!+ c #EBEDF0", +"~+ c #EDEDED", +"{+ c #FEFEFE", +"]+ c #F9F9FA", +"^+ c #B6BECA", +"/+ c #7B899F", +"(+ c #A9AC8A", +"_+ c #8B833E", +":+ c #EFE16B", +"<+ c #F2DE69", +"[+ c #D7CA60", +"}+ c #C2B657", +"|+ c #C3C07F", +"1+ c #7B899E", +"2+ c #7C8AA0", +"3+ c #BFC6D1", +"4+ c #FDFEFE", +"5+ c #5E5E5E", +"6+ c #A0A0A0", +"7+ c #F1F1F1", +"8+ c #686868", +"9+ c #DDE1E6", +"0+ c #9FA48E", +"a+ c #C7BC59", +"b+ c #F4D463", +"c+ c #F3D765", +"d+ c #C9C47D", +"e+ c #818FA3", +"f+ c #DDE0E6", +"g+ c #BFBFBF", +"h+ c #6B6B6B", +"i+ c #0B0B0B", +"j+ c #212121", +"k+ c #CECECE", +"l+ c #6E6E6E", +"m+ c #979797", +"n+ c #F6F6F6", +"o+ c #F3F4F6", +"p+ c #A3A78C", +"q+ c #706932", +"r+ c #B1A64F", +"s+ c #E9DC69", +"t+ c #FC923D", +"u+ c #F7C057", +"v+ c #DAD176", +"w+ c #7F8DA2", +"x+ c #DFE2E7", +"y+ c #DBDBDB", +"z+ c #333333", +"A+ c #323232", +"B+ c #444444", +"C+ c #232323", +"D+ c #545454", +"E+ c #F0F0F0", +"F+ c #C7C7C7", +"G+ c #414141", +"H+ c #010101", +"I+ c #696969", +"J+ c #ECECEC", +"K+ c #F7F8F9", +"L+ c #949FB1", +"M+ c #B6B685", +"N+ c #F6C65B", +"O+ c #FE943D", +"P+ c #BD6C2D", +"Q+ c #FE9941", +"R+ c #EADE6F", +"S+ c #8A9497", +"T+ c #D9DDE3", +"U+ c #E0E0E0", +"V+ c #181818", +"W+ c #363636", +"X+ c #D4D4D4", +"Y+ c #B7B7B7", +"Z+ c #1B1B1B", +"`+ c #383838", +" @ c #F8F8F8", +".@ c #A9A9A9", +"+@ c #040404", +"@@ c #424242", +"#@ c #B9B9B9", +"$@ c #EEEEEE", +"%@ c #E6E6E6", +"&@ c #1F1F1F", +"*@ c #E5E5E5", +"=@ c #8E9AAC", +"-@ c #D2CB7A", +";@ c #F4D362", +">@ c #FAA94A", +",@ c #D77D34", +"'@ c #FE9A41", +")@ c #F6C45A", +"!@ c #A6A98B", +"~@ c #C7CDD6", +"{@ c #585858", +"]@ c #202020", +"^@ c #F2F2F2", +"/@ c #7C7C7C", +"(@ c #6C6C6C", +"_@ c #D1D1D1", +":@ c #060606", +"<@ c #919191", +"[@ c #E3E3E3", +"}@ c #616161", +"|@ c #FDFDFD", +"1@ c #C2C2C2", +"2@ c #BBBBBB", +"3@ c #FCFCFC", +"4@ c #E8E8E8", +"5@ c #474747", +"6@ c #828FA4", +"7@ c #86919A", +"8@ c #FA913D", +"9@ c #A56028", +"0@ c #D0CA7A", +"a@ c #A8B2C0", +"b@ c #EAEAEA", +"c@ c #8B8B8B", +"d@ c #909090", +"e@ c #484848", +"f@ c #0E0E0E", +"g@ c #E4E4E4", +"h@ c #595959", +"i@ c #818181", +"j@ c #626262", +"k@ c #A8A8A8", +"l@ c #B0B0B0", +"m@ c #D4D9E0", +"n@ c #FBA548", +"o@ c #E18336", +"p@ c #FBAB4B", +"q@ c #8D9796", +"r@ c #8390A5", +"s@ c #F5F6F7", +"t@ c #BDBDBD", +"u@ c #121212", +"v@ c #EBEBEB", +"w@ c #959595", +"x@ c #858585", +"y@ c #111111", +"z@ c #505050", +"A@ c #464646", +"B@ c #DDDDDD", +"C@ c #EFEFEF", +"D@ c #6F6F6F", +"E@ c #A5AEBD", +"F@ c #DBD276", +"G@ c #B7692B", +"H@ c #C8CED7", +"I@ c #D0D0D0", +"J@ c #A3A3A3", +"K@ c #F4F4F4", +"L@ c #A2A2A2", +"M@ c #242424", +"N@ c #515151", +"O@ c #434343", +"P@ c #CDCDCD", +"Q@ c #AFAFAF", +"R@ c #F0F1F4", +"S@ c #7E8CA1", +"T@ c #A0A68E", +"U@ c #FAA648", +"V@ c #FA913C", +"W@ c #F8B954", +"X@ c #919A94", +"Y@ c #8A96A9", +"Z@ c #FCFCFD", +"`@ c #3E3E3E", +" # c #727272", +".# c #272727", +"+# c #151515", +"@# c #6D6D6D", +"## c #898989", +"$# c #0A0A0A", +"%# c #E7E7E7", +"&# c #A1A1A1", +"*# c #DCDCDC", +"=# c #B2BAC7", +"-# c #E0D673", +";# c #F2DD68", +"># c #F3D865", +",# c #FC9D44", +"'# c #FE933E", +")# c #864C1F", +"!# c #F9B651", +"~# c #C5CBD5", +"{# c #030303", +"]# c #FAFAFA", +"^# c #BABABA", +"/# c #A6A6A6", +"(# c #131313", +"_# c #101010", +":# c #666666", +"<# c #D8D8D8", +"[# c #DFDFDF", +"}# c #191919", +"|# c #525252", +"1# c #FFFAFA", +"2# c #FFE4E3", +"3# c #FFDDDB", +"4# c #FFE3E2", +"5# c #FFF2F2", +"6# c #7C899F", +"7# c #B3B486", +"8# c #FD9C43", +"9# c #E78738", +"0# c #683B19", +"a# c #FBA146", +"b# c #FAAF4D", +"c# c #AFB188", +"d# c #090909", +"e# c #797979", +"f# c #888888", +"g# c #141414", +"h# c #BCBCBC", +"i# c #0C0C0C", +"j# c #343434", +"k# c #D5D5D5", +"l# c #868686", +"m# c #FFE9E8", +"n# c #FFC4C1", +"o# c #FFBFBC", +"p# c #FFD7D5", +"q# c #FFFDFD", +"r# c #9FA9B9", +"s# c #879398", +"t# c #F0E36D", +"u# c #F1E06A", +"v# c #CD7732", +"w# c #EE8939", +"x# c #FE953D", +"y# c #8D9696", +"z# c #A2ABBB", +"A# c #FFF2F1", +"B# c #FFE0DE", +"C# c #FFDEDC", +"D# c #FFE7E6", +"E# c #6A6A6A", +"F# c #080808", +"G# c #838383", +"H# c #FEF6F6", +"I# c #FBC5C5", +"J# c #F9ADAD", +"K# c #F9B0B0", +"L# c #FBCDCD", +"M# c #FFFCFC", +"N# c #7A7A7A", +"O# c #F5F5F5", +"P# c #FFC0BD", +"Q# c #FFDCDA", +"R# c #CED4DC", +"S# c #DCD374", +"T# c #F6C75B", +"U# c #7B5438", +"V# c #AD642A", +"W# c #E4DA71", +"X# c #C6CCD5", +"Y# c #878787", +"Z# c #646464", +"`# c #FCD4D4", +" $ c #F35757", +".$ c #ED0707", +"+$ c #ED0000", +"@$ c #EE0F0F", +"#$ c #F56D6D", +"$$ c #FDE8E8", +"%$ c #5B5B5B", +"&$ c #FFC4C2", +"*$ c #F2F3F5", +"=$ c #FC9A43", +"-$ c #E29252", +";$ c #788498", +">$ c #373F48", +",$ c #F59243", +"'$ c #FBA74A", +")$ c #CCC87B", +"!$ c #E8EAEE", +"~$ c #FFF3F2", +"{$ c #F89C9C", +"]$ c #EE1414", +"^$ c #FBC0C0", +"/$ c #E9E9E9", +"($ c #B2B2B2", +"_$ c #FFDBD9", +":$ c #FFC3C0", +"<$ c #8F9BAE", +"[$ c #A4A88D", +"}$ c #F4D161", +"|$ c #F2DB67", +"1$ c #FE9942", +"2$ c #FA9849", +"3$ c #8D8C93", +"4$ c #77849A", +"5$ c #A68B7E", +"6$ c #FAAA4B", +"7$ c #B9B983", +"8$ c #F9B1B1", +"9$ c #ED0101", +"0$ c #EE0A0A", +"a$ c #FCD9D9", +"b$ c #FFEFEE", +"c$ c #FFD8D6", +"d$ c #A7B0BF", +"e$ c #929A93", +"f$ c #FE9A43", +"g$ c #FFB477", +"h$ c #FFF3E9", +"i$ c #D7DCE2", +"j$ c #6E7B90", +"k$ c #C2A18C", +"l$ c #FF9946", +"m$ c #FCA64A", +"n$ c #FBA94A", +"o$ c #FE9C44", +"p$ c #AE947C", +"q$ c #8E9AAD", +"r$ c #EF2020", +"s$ c #F34E4E", +"t$ c #FFE1E0", +"u$ c #FFCFCD", +"v$ c #FFFBFB", +"w$ c #BBC2CE", +"x$ c #838B98", +"y$ c #FF9641", +"z$ c #FFD5B4", +"A$ c #FFD4B1", +"B$ c #FFD9BB", +"C$ c #FFF2E7", +"D$ c #C1C8D2", +"E$ c #434A56", +"F$ c #FFF7F0", +"G$ c #FFCEA8", +"H$ c #FFB57B", +"I$ c #FFB173", +"J$ c #FFB77D", +"K$ c #A78C7E", +"L$ c #FFD9D7", +"M$ c #FFF0F0", +"N$ c #FBC2C2", +"O$ c #ED0303", +"P$ c #FEF0F0", +"Q$ c #E1E1E1", +"R$ c #FFF5F4", +"S$ c #FFDBDA", +"T$ c #FFD4D2", +"U$ c #FFEAE9", +"V$ c #C6CCD6", +"W$ c #FED5B5", +"X$ c #8B97AA", +"Y$ c #697589", +"Z$ c #A09594", +"`$ c #A0AABA", +" % c #F9A5A5", +".% c #CACACA", +"+% c #9D9C9C", +"@% c #CDD3DB", +"#% c #BAC1CC", +"$% c #79879C", +"%% c #E3E6EB", +"&% c #A0A9B8", +"*% c #FABBBB", +"=% c #FEEBEB", +"-% c #AFAEAE", +";% c #393838", +">% c #F7F7F7", +",% c #D9DDE4", +"'% c #FAFBFC", +")% c #FEF7F7", +"!% c #EE1111", +"~% c #F13A3A", +"{% c #A1A0A0", +"]% c #484747", +"^% c #838282", +"/% c #E6E9ED", +"(% c #3A424C", +"_% c #FEFFFF", +":% c #AFB7C4", +"<% c #333232", +"[% c #F89696", +"}% c #FBC4C4", +"|% c #060404", +"1% c #535151", +"2% c #BCC3CE", +"3% c #E0E3E8", +"4% c #2D333B", +"5% c #F5F6F8", +"6% c #747474", +"7% c #262525", +"8% c #BEBEBE", +"9% c #F56F6F", +"0% c #F89D9D", +"a% c #B4B4B4", +"b% c #301B1A", +"c% c #A34742", +"d% c #171515", +"e% c #D2D2D2", +"f% c #95A0B2", +"g% c #CBD0D9", +"h% c #D7DBE2", +"i% c #D6DAE1", +"j% c #E9EBEF", +"k% c #717171", +"l% c #8F8E8E", +"m% c #F9A8A8", +"n% c #F02626", +"o% c #5C5B5B", +"p% c #3A1C1B", +"q% c #E3645D", +"r% c #FF7068", +"s% c #542523", +"t% c #CCCCCC", +"u% c #FBFBFB", +"v% c #919DAF", +"w% c #A9B2C1", +"x% c #A0AAB9", +"y% c #727F93", +"z% c #F1F3F5", +"A% c #B1B0B0", +"B% c #FBCACA", +"C% c #F79292", +"D% c #F67A7A", +"E% c #F67D7D", +"F% c #F89A9A", +"G% c #FCD8D8", +"H% c #7E7C7C", +"I% c #292424", +"J% c #7A3632", +"K% c #F86D65", +"L% c #A44842", +"M% c #A6A5A5", +"N% c #C5CBD4", +"O% c #E3E6EA", +"P% c #576171", +"Q% c #79889D", +"R% c #E2E5EA", +"S% c #A4AEBD", +"T% c #313030", +"U% c #2C1514", +"V% c #221818", +"W% c #716F6F", +"X% c #BDBCBC", +"Y% c #331F1E", +"Z% c #7C3733", +"`% c #E2635C", +" & c #CE5A54", +".& c #999898", +"+& c #D1D5DD", +"@& c #EEF0F3", +"#& c #B4BCC9", +"$& c #863A36", +"%& c #FB6E66", +"&& c #BF544E", +"*& c #793632", +"=& c #512926", +"-& c #4B3736", +";& c #5F5E5E", +">& c #7F7E7E", +",& c #8E8D8D", +"'& c #9A9999", +")& c #979696", +"!& c #848383", +"~& c #5D5D5D", +"{& c #41302F", +"]& c #542623", +"^& c #873B37", +"/& c #CB5953", +"(& c #DA6059", +"_& c #A09F9F", +":& c #A2ACBB", +"<& c #FDFFFF", +"[& c #F1F2F5", +"}& c #96A1B3", +"|& c #4C5462", +"1& c #DADEE4", +"2& c #E4E7EC", +"3& c #C9CED7", +"4& c #72332F", +"5& c #F66C64", +"6& c #DD615A", +"7& c #D75E58", +"8& c #CC5A53", +"9& c #D45D56", +"0& c #F16A62", +"a& c #CA5952", +"b& c #B7B6B6", +"c& c #D2D6DE", +"d& c #ECEEF1", +"e& c #808EA3", +"f& c #5F6A7B", +"g& c #97A2B3", +"h& c #D0D5DD", +"i& c #C0C7D1", +"j& c #808DA2", +"k& c #8D99AC", +"l& c #783532", +"m& c #AC4B46", +"n& c #7A879E", +"o& c #576170", +"p& c #CCD2DA", +"q& c #81433F", +"r& c #F2F4F6", +"s& c #697487", +"t& c #515B6A", +"u& c #748296", +"v& c #7A879D", +"w& c #6B778A", +"x& c #6D7A8E", +"y& c #6E7B8F", +"z& c #758399", +"A& c #8592A6", +"B& c #222121", +"C& c #AB4B45", +"D& c #79605E", +"E& c #A7B1BF", +"F& c #262B32", +"G& c #2F353D", +"H& c #49515E", +"I& c #545C6B", +"J& c #505968", +"K& c #414A56", +"L& c #3E4550", +"M& c #050404", +"N& c #D55E57", +"O& c #FA6A63", +"P& c #F4645C", +"Q& c #F5655D", +"R& c #FC6C65", +"S& c #E9665F", +"T& c #999797", +"U& c #D5DAE1", +"V& c #4B5461", +"W& c #5B6475", +"X& c #0F0706", +"Y& c #FD6F67", +"Z& c #DA473F", +"`& c #BD271F", +" * c #B01911", +".* c #B72118", +"+* c #D34037", +"@* c #F3635B", +"#* c #97433E", +"$* c #EEF0F2", +"%* c #8390A4", +"&* c #707D92", +"** c #090A0C", +"=* c #210B0D", +"-* c #6E7A8D", +";* c #2F2E2E", +">* c #6C302D", +",* c #FE7068", +"'* c #EF5E56", +")* c #BA241C", +"!* c #B21C13", +"~* c #DC4A41", +"{* c #C0544E", +"]* c #716160", +"^* c #762A31", +"/* c #9C0000", +"(* c #6F0000", +"_* c #0D0000", +":* c #180000", +"<* c #A80000", +"[* c #CE2025", +"}* c #7B859B", +"|* c #4E2320", +"1* c #ED6861", +"2* c #F05F57", +"3* c #B31D14", +"4* c #D9463D", +"5* c #F26A63", +"6* c #733532", +"7* c #908E8E", +"8* c #FAFAFB", +"9* c #9AA4B5", +"0* c #AC4B57", +"a* c #D70000", +"b* c #550000", +"c* c #2E0000", +"d* c #D90000", +"e* c #C52F37", +"f* c #7B879D", +"g* c #636363", +"h* c #180B0A", +"i* c #9E4540", +"j* c #FC6F67", +"k* c #FE6F67", +"l* c #BE2920", +"m* c #B31C14", +"n* c #A52A23", +"o* c #4F3D3C", +"p* c #A15A68", +"q* c #EC0101", +"r* c #7D0000", +"s* c #950000", +"t* c #BA3C46", +"u* c #7E8BA1", +"v* c #BBBABA", +"w* c #2A1311", +"x* c #903F3A", +"y* c #D9544E", +"z* c #B21B13", +"A* c #B32720", +"B* c #872621", +"C* c #513C3A", +"D* c #B2B1B1", +"E* c #976575", +"F* c #EA0405", +"G* c #C50000", +"H* c #A10000", +"I* c #C43138", +"J* c #7E849A", +"K* c #F0F2F4", +"L* c #B8B7B7", +"M* c #0D0C0C", +"N* c #361211", +"O* c #74241F", +"P* c #952B25", +"Q* c #A32C26", +"R* c #A62C26", +"S* c #A02924", +"T* c #982822", +"U* c #872722", +"V* c #5A1A17", +"W* c #2D2020", +"X* c #CFCFCF", +"Y* c #BFC6D0", +"Z* c #A45664", +"`* c #E90404", +" = c #C60000", +".= c #9D0000", +"+= c #D31E23", +"@= c #87798C", +"#= c #9F9E9E", +"$= c #807F7F", +"%= c #676767", +"&= c #ADACAC", +"*= c #D6DBE1", +"== c #7D859B", +"-= c #B93D47", +";= c #C10000", +">= c #970000", +",= c #E40A0C", +"'= c #9D5E6D", +")= c #CCD1DA", +"!= c #8A7689", +"~= c #B80000", +"{= c #870000", +"]= c #C92B32", +"^= c #86778B", +"/= c #9BA6B6", +"(= c #E1E4E9", +"_= c #FBFBFC", +":= c #EBEDF1", +"<= c #7D8499", +"[= c #B34550", +"}= c #E90506", +"|= c #720000", +"1= c #C0343C", +"2= c #7B7183", +"3= c #9BA5B6", +"4= c #A6B0BE", +"5= c #909CAE", +"6= c #827F93", +"7= c #B04753", +"8= c #E20D0F", +"9= c #8A0000", +"0= c #600000", +"a= c #9B1F24", +"b= c #52525F", +"c= c #707D91", +"d= c #7A849A", +"e= c #956271", +"f= c #730000", +"g= c #520000", +"h= c #E00000", +"i= c #6A0101", +"j= c #15171B", +"k= c #A13740", +"l= c #AD4C58", +"m= c #916C7E", +"n= c #8C7385", +"o= c #8A7588", +"p= c #916D7E", +"q= c #986474", +"r= c #5E525F", +"s= c #5A3F4A", +"t= c #BE2228", +"u= c #650000", +"v= c #4A0000", +"w= c #940000", +"x= c #B20000", +"y= c #2B0000", +"z= c #540000", +"A= c #5D0000", +"B= c #430000", +"C= c #820000", +"D= c #E20000", +"E= c #060000", +"F= c #3B0000", +"G= c #280000", +"H= c #EB0000", +"I= c #4C0000", +"J= c #6A0000", +"K= c #780000", +"L= c #CD0000", +"M= c #110000", +"N= c #E80000", +"O= c #090000", +"P= c #E50000", +"Q= c #E90000", +"R= c #690000", +"S= c #640000", +"T= c #D60000", +"U= c #330000", +"V= c #CE0000", +"W= c #140000", +"X= c #8D0000", +"Y= c #CC0000", +"Z= c #340000", +"`= c #030000", +" - c #1C0000", +".- c #0A0000", +"+- c #800000", +"@- c #9A0000", +"#- c #0B0000", +"$- c #AF0000", +"%- c #2A0000", +"&- c #A60000", +"*- c #EC0000", +"=- c #B60000", +"-- c #0E0000", +";- c #530000", +">- c #A20000", +",- c #D30000", +"'- c #E70000", +")- c #B40000", +"!- c #6C0000", +"~- c #130000", +"{- c #240000", +"]- c #7A0000", +"^- c #EA0000", +"/- c #B70000", +"(- c #5E0000", +"_- c #040000", +":- c #070000", +"<- c #100000", +"[- c #160000", +"}- c #480000", +"|- c #590000", +"1- c #5F0000", +"2- c #510000", +"3- c #360000", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" . + + + @ ", +" # . $ % @ # + & * = - ; + ", +" @ > , ' ) ! + + ~ { { { { { ] + ", +" $ ^ / { { { ( _ + : : : : : < @ + + . . [ { { { { { { } | + + + + @ < ", +" . 1 $ . < > ( { { { { { 2 3 # 4 5 : : : : : : : : : 6 7 8 9 0 a b $ c { { { { { { { d e f c g h i . ", +" j + k ) l ; + ] { { { { { { { m n : : : : : : : : : : : : : : : : : : : : : : : o p q { { { { { { { { { { { { { r s t ", +" # $ u } { { { r v { { { { { { w x : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : y z { { { { { { { { { { { { { A + ", +" + B { { { { { { { { { { { { C D : : : : : E F G H I : : : : : : : J K L M N O P : : : : : : : : : : : : : : : : Q R { { { { { { { { { { { { { S T ", +" @ U V { { { { { { { { { { { W X : : : : Y Z { { { ` . ...: : : +.@.M M M M M #.: : : : : : $.%.&.*.=.-.;.: : : : D >.{ { { { { { { { { { { } 1 + + . ", +" + + ,.V { { { { { { { { { { '.).: : : : !.q { { { ~.{.].M M M ^./.+.(._.:.<.[.}.|.M 1.: 2.3. .4.5.6.{ { { { 7.8.: : : : 9.0.{ { { { { { { { { { { ~ a.b.c.+ d. ", +" e.@ f.g.h.} { { { { { { { { { i.j.: : : : k.{ { { { l.m.M M M M n.o.p.q.r.r.r.r.r.r.r.s.t.u.v.w.M M M x.y.z.{ { { { A.: : : : B.{ { { { { { { { { { { { { { { C.+ D. ", +" . E.r { { { { { { { { { { { { { F.: : : : A.{ { { G.H.I.M M J.K.L.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.M.N.O.M M M P.Q.{ { { { R.: : : S.T.{ { { { { { { { { { { { { { { U.. ", +" V.W.} { { { { { { { { { { { { { X.Y.: : : Z.~.{ { `. +M M .+++M.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.@+#+$+M M %+&+{ { { *+o : : : !.{ { { { { { { { { { { { { { { A + ", +" + g { { { { { { { { { { { { { { { q =+-+;+>+{ { ,+'+M M )+!+r.~+{+r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.]+^+/+M M (+z.{ { _+: : : o :+{ { { { { { { { { { { { { { <++ ", +" + ( { { { { { { { { { { { { { { { { { [+}+{ { |+1+M 2+3+4+r.r.5+6+r.r.r.r.r.r.r.r.r.r.r.r.r.r.7+8+r.r.r.r.r.r.9+$+M M 0+z.{ 0.S.: : Q a+{ { { { { { { { { { { { { { b++ ", +" + c+{ { { { { { { { { { { { { { { { { { { { d+1+M e+f+r.{+g+h+i+j+k+r.r.r.r.r.r.r.r.r.r.r.r.r.l+: m+n+r.r.r.r.r.o+}.M M p+~.{ B.q+r+s+{ { { { { { { { { { { { { { { ] t+ ", +" + u+{ { { { { { { { { { { { { { { { { { { v+'+M w+x+r.y+z+: A+B+C+: D+E+r.r.r.r.r.r.r.r.r.F+G+H+: : i+I+J+r.r.r.r.K+L+M M M+{ { { { { { { { { { { { { { { { { { { N+O+P+ ", +" # Q+r { { { { { { { { { { { { { { { { { R+S+M w.T+r.U+V+W+X+r.r.r.Y+Z+`+ @r.r.r.r.r.r.r..@+@@@#@$@%@m+Z+&@*@r.r.r.r.M.=@M 1+-@{ { { { { { { { { { { { { { { { ;@>@+ ,@ ", +" @ '@)@} { { { { { { { { { { { { { { { !@M M ~@r.r.{@]@E+r.^@/@(@k+_@:@<@r.r.r.r.r.r.[@i+}@|@1@2@3@r.4@&@5@r.r.r.r.r.!+6@M 7@R+{ { { { { { { { { { { { { { { , 8@9@ ", +" $ + U.{ { { { { { { { { { { { { { 0@M M a@r.b@c@+@d@r.r.e@: : f@g@h@z+r.r.r.r.r.r.i@f@7+j@: : 5@|@r.k@: l@r.r.r.r.r.m@M M (+{ { { { { { { { { { { { { { { n@o@ ", +" @ p@{ { { { { { { { { { { { { ~.q@M r@s@r.t@u@: 2@r.v@: : : : w@x@y@r.r.r.r.r.r.z@A@B@: : : : g+r.C@: : D@r.r.r.r.r.E@M I.F@{ { { { { { { { { { { { { r V.G@ ", +" # U } { { { { { { { { { { { { d+M M H@r.r.r.I@: J@r.K@+@: : : L@h+M@r.r.r.r.r.r.N@O@P@: : : : Q@r.J+: h@{+r.r.r.r.r.R@S@M T@{ { { { { { { { { { { { 2 U@V@ ", +" + W@{ { { { { { { { { { { { X@M Y@Z@r.r.r.r.W+`@{+r. #: : .#%@+#@#r.r.r.r.r.r.##$#%#.#: : +#$@r.&#: *#r.r.r.r.r.r.r.=#M 1+-#{ { { { { { { { ;#>#N+,#'#)# ", +" D.+ !#2 { { { { { { { { { F@M M ~#r.r.r.r.r.g+{#@#]#r.^#/#U+O@(#*@r.r.r.r.r.r.J+_#D+U+@#:#<#r.[#}#|#r.r.1#2#3#4#5#r.R@6#M 7#{ { { { { { { { 8#+ + 9#0# ", +" . '#V.a#b#{ { { { { { { c#M .+s@r.r.r.r.r.r.L@d#.#e#f#l+g#Z+F+r.r.r.r.r.r.r.r.h#i#j#k@B@k#l#(#A+$@r.m#n#o#o#o#o#p#q#r#M s#t#{ { { { { { u#e.v# ", +" w#x#{ { { { { { { y#M z#r.r.r.A#B#C#D#1#[#E#y@F#`+G#E+r.H#I#J#K#L#M#r.r.r.k#N@:@: : u@N#O#r.5#P#o#o#o#o#o#o#Q#R#M M S#{ { { { { { T#+ U# ", +" V#+ = { { { { { W#M M X#r.q#p#o#o#o#o#n#m#r.Y#Z#r.r.`# $.$+$+$+$+$@$#$$$r.r.r.7+%$&@n+r.r.r.Q#o#o#o#o#o#o#o#&$*$L M &+{ { { { { r =$-$;$>$ ", +" ,$'$} { { { { )$M M !$r.Q#o#o#o#o#o#o#P#~$n+*@r.{$.$+$+$+$+$+$+$+$+$]$^$r.r.r./$($r.r.r.r._$o#o#o#o#o#o#o#:$r.<$M [$b+}$<+|$~ 1$2$3$M 4$ ", +" N 5$# 6$/ { { { 7$M .+@+r.&$o#o#o#o#o#o#o#Q#r.r.8$9$+$+$+$+$+$+$+$+$+$+$0$a$r.r.r.r.r.r.r.r.b$o#o#o#o#o#o#o#c$r.d$M e$f$+ + + + g$h$i$2+M j$ ", +" M M k$l$$ m$n$o$p$M q$r.r.n#o#o#o#o#o#o#o#_$r.M#r$+$+$+$+$+$+$+$+$+$+$+$+$s$r.r.r.r.r.r.r.r.r.t$P#o#o#o#o#u$v$r.w$M x$y$z$A$B$C$r.r.r.D$M M E$ ", +" M M e+M.F$G$H$I$J$K$M :.r.r.L$o#o#o#o#o#o#o#M$r.N$+$+$+$+$+$+$+$+$+$+$+$+$+$O$P$r.r.r.r.O#Q$3@r.r.R$S$T$p#U$r.r.r.V$M I.W$r.r.r.r.r.r.r.Z@X$M Y$ ", +" M M o.r.r.r.r.r.r.Z$M `$r.r.v$u$o#o#o#o#P#t$r.r. %+$+$+$+$+$+$+$+$+$+$+$+$+$+$`#r.r.r.3@.%+%5@}@C@r.r.r.r.r.r.r.r.@%M M K+r.r.r.r.r.r.r.r.#%M $% ", +" M M %%r.r.r.r.r.r.&%M `$r.r.r.r.U$p#T$S$R$r.r.r.*%+$+$+$+$+$+$+$+$+$+$+$+$+$+$=%r.r.r.r.r.r.r.-%;%>%r.r.r.r.r.r.r.#+M M K+r.r.r.r.r.r.r.r.,%M M ", +" M M '%r.r.r.r.r.r.d$M :.r.r.r.r.r.r.r.r.r.r.r.r.)%!%+$+$+$+$+$+$+$+$+$+$+$+$~%r.r.r.r.r.r.r.r.{%]%^%r.r.r.r.r.r.r.V$M L {+r.r.r.r.r.r.r.r./%M M (% ", +" M 2+_%r.r.r.r.r.r.:%M <$r.r.r.r.r.r.>%8+<%y+r.r.r.[%+$+$+$+$+$+$+$+$+$+$+$O$}%r.r.r.r.r.r.r.k#|%1%E#3@r.r.r.r.r.r.2%M 6@r.r.r.r.r.r.r.r.r.3%M M 4% ", +" M M 5%r.r.r.r.r.r.D$M w.@+r.r.r.r.r.6%7%8%r.r.r.r.r.9%+$+$+$+$+$+$+$+$+$O$0%r.r.r.r.r.r.r.a%b%c%d%Q$e%r.r.r.r.r.r.d$M f%r.r.r.r.r.r.r.r.r.g%M M ", +" M M h%r.r.r.r.r.r.i%M M j%r.r.r.r.7+N@E+k%l%]#r.r.r.r.m%n%+$+$+$+$+$+$~%I#r.r.r.r.r.r.O#o%p%q%r%s%t%u%r.r.r.r.r.r.v%M w%r.r.r.r.r.r.r.r.r.x%M y% ", +" M M d$r.r.r.r.r.r.z%M M H@r.r.r.r.v@ @r.{+e#7%A%{+r.r.r.q#B%C%D%E%F%G%r.r.r.r.r.r. @H%I%J%K%r%r%L%M%r.r.r.r.r.r.M.L M N%r.r.r.r.r.r.r.r.O%L M P% ", +" Q%M /+R%r.r.r.r.r.r.<$M S%r.r.r.r.r.r.r.r.r.T%U%V%W%Q$r.r.r.r.r.r.r.r.r.r.r.7+X%:#Y%Z%`%r%r%r%r% &.&r.r.r.r.r.r.+&M M !$r.r.r.r.r.r.r.]+<$M 4$ ", +" M M $+@&r.r.r.r.r.#&M S@K+r.r.r.r.r.r.r.r.5+$&%&&&*&=&-&;&>&,&'&)&!& #~&{&]&^&/&r%r%r%r%r%r%r%(&_&r.r.r.r.r.r.:&M 6@<&r.r.r.r.r.r.[&}&M M |& ", +" M M |.1&r.r.r.r.2&M M 3&r.r.r.r.r.r.r.r.Z#4&r%r%r%r%r%5&6&7&8&8&9&q%0&r%r%r%r%r%r%r%r%r%r%r%a&b&r.r.r.r.r.o+w.M M f%c&'%r.r.d&#%e&M M f& ", +" M M M g&3+h&h&i&j&M k&|@r.r.r.r.r.r.r.{@l&r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%m&g@r.r.r.r.r.++M n&M M M M 6@S@M M M N o& ", +" M M M M M M M M M M p&r.r.r.r.r.r.r.A@$&r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%q&r.r.r.r.r.r&j&M s&t&u&M M M M M v&w&4% ", +" x&N M M M y&z&M A&5%r.r.r.r.r.r.B&C&r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%D&r.r.r.r.r.E&M M F& G&H&I&J&K& ", +" L&M M w%r.r.r.r.r.K@M&N&r%r%r%r%r%r%r%r%r%r%r%O&P&Q&R&r%r%r%r%r%r%r%r%S&T&r.r.r.r.U&M M V&: : : : ", +" : : : W&M M g%r.r.r.r.g+X&Y&r%r%r%r%r%r%r%r%R&Z&`& * * * *.*+*@*r%r%r%r%r%#*g@r.r.r.$*%*M &***: : : : : ", +" : : : : : =*-*M S@x+r.r.r.E+;*>*,*r%r%r%r%r%r%'*)* * * * * * * * *!*~*r%r%r%{*]*r.r.r.K+_.M v&^*/*(*_*: : : ", +" : : : :*<*+$[*}*M 6@L.r.r.r.*@<%|*1*r%r%r%r%2*3* * * * * * * * * * * *4*5*6*7*{+r.r.8*9*M M 0*+$+$+$a*b*: : ", +" : : c*d*+$+$+$e*f*M j&T+r.r.r.K@g*h*i*j*r%k*l* * * * * * * * * * * *m*n*o*X+r.r.r.[&v%M M p*q*+$+$+$+$+$r*: : ", +" : : s*+$+$+$+$+$t*f*M u*H@_%r.r.r.v*<%w*x*y* * * * * * * * * *z*A*B*C*D*{+r.r.r.2&k&M M E*F*+$+$+$+$+$+$G*: : ", +" : : H*+$+$+$+$+$+$I*J*M M :&K*r.r.r.|@L*N@M*N*O*P*Q*R*S*T*U*V*W*D@X*r.r.r.r.Z@Y*.+M M Z*`*+$+$+$+$+$+$+$ =: : ", +" : : .=+$+$+$+$+$+$+$+=@=M M j&i&s.r.r.r.r. @F+#=$=8+%=k%,&&=*#{+r.r.r.r._%*==@M M ==-=+$+$+$+$+$+$+$+$+$;=: : ", +" : : >=+$+$+$+$+$+$+$+$,='=M M M %*o.$*r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.]+)=v%M M M !=+=+$+$+$+$+$+$+$+$+$+$~=: : ", +" : : {=+$+$+$+$+$+$+$+$+$+$]=^=M M M L /=D$(=_=r.r.r.r.r.r.r.{+:=)=w%e&M M M <=[=}=+$+$+$+$+$+$+$+$+$+$+$H*: : ", +" : : |=+$+$+$+$+$+$+$+$+$+$+$`*1=2=M M M M M L Y@3=:&4=E@<.5=u*M M M M M 6=7=8=+$+$+$+$+$+$+$+$+$+$+$+$+$9=: : ", +" : : 0=+$+$+$+$+$+$+$+$+$+$+$+$+$+$a=b=c=M M M M M M M M M M M M M d=e=e*}=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$f=: : ", +" : : g=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$h=i=j=k=l='=m=n=!=o=p=q=r=s=t=F*+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$u=: : ", +" : : v=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$w=: x=+$+$+$+$+$+$+$+$y=z=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$A=: : ", +" : : B=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$w=: C=+$+$+$+$+$+$+$D=E=z=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$b*: : ", +" : : F=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$w=: G=H=+$+$+$+$+$+$9=: z=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$I=: : ", +" : : c*+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$J=: : K=+$+$+$+$+$L=M=: F=N=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$F=: : ", +" : : O=P=+$+$+$+$+$+$+$+$+$+$+$+$+$Q=R=: : : : S=T=+$Q=.=:*: : : U=V=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$Q=W=: : ", +" : : X=+$+$+$+$+$+$+$+$+$+$+$+$Y=Z=: : : : : : `= -_*: : : : : : .-+-N=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$@-: : : ", +" : : #-$-+$+$+$+$+$+$+$+$+$P=r*#-: : : : : : : : : : : : : : : : : %-&-*-+$+$+$+$+$+$+$+$+$+$+$+$=---: : ", +" : : `=;->-,-*-+$+$'-)-!-~-: : : : : : : : {-]- =+$+$+$+$+$+$+$^-/-(-_-: : : ", +" : : : : : :-<---: : : : : : : : : : : : [-}-|-1-1-2-3-_*: : : : : ", +" : : : : : : : : : : : : : : : : : : : : : : : : : ", +" : : : : : : : : : : : : : : ", +" : : : : : ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "} +------------------------------------------------------------------------------ +export constant icon = xpm_to_pixbuf(clown_xpm) +------------------------------------------------------------------------------ diff --git a/eugtk/examples/examples/color_codes.ex b/eugtk/examples/examples/color_codes.ex new file mode 100644 index 0000000..1277125 --- /dev/null +++ b/eugtk/examples/examples/color_codes.ex @@ -0,0 +1,185 @@ + +--------------------------------------------------------------------------- +--# Resistor color codes; +-- Note: some GTK themes have a bug which adds space around images, +-- so the resistor image may appear to be 'sliced up'. +-- This can be fixed by using css to set image padding to 0. +--------------------------------------------------------------------------- + +include GtkEngine.e +include std/locale.e +include std/convert.e +include std/filesys.e + +object resistor -- an array of images + +object valdisp = create(GtkLabel) + +constant colors1 = { -- color bands; + "Black","Brown","Red","Orange","Yellow", + "Green","Blue","Violet","Gray","White" + }, + -- multipliers; + colors2 = colors1 & {"Silver","Gold"}, + + -- tolerance; + colors3 = {"Gold","Silver","None"}, + + -- formatting string for value display; + tolerance = {" +/- 5%"," +/- 10%"," +/- 20%"}, + + -- location of the color band images; + wp = canonical_path("~/demos/resources/colorcode/") + +constant tens = create(GtkComboBoxText) + for i = 2 to length(colors1) do + gtk:set(tens,"append text",colors1[i]) + end for + +constant ones = create(GtkComboBoxText) + for i = 1 to length(colors1) do + gtk:set(ones,"append text",colors1[i]) + end for + +constant mult = create(GtkComboBoxText) + for i = 1 to length(colors2) do + gtk:set(mult,"append text",colors2[i]) + end for + +constant tol = create(GtkComboBoxText) + for i = 1 to length(colors3) do + gtk:set(tol,"append text",colors3[i]) + end for + gtk:set(tol,"active",1) + +constant update = call_back(routine_id("Update")) + + connect(tens,"changed",update) + connect(ones,"changed",update) + connect(mult,"changed",update) + connect(tol,"changed",update) + +constant win = create(GtkWindow,{ + {"title","Resistor Color Codes"}, + {"position",GTK_WIN_POS_CENTER}, + {"border width",10}, + {"resizable",FALSE}, + {"icon","~/demos/thumbnails/mongoose.png"}, + {"connect","destroy","Quit"}}) + +constant panel = create(GtkBox,VERTICAL) + add(win,panel) + +-- this creates a composite image of a resistor; +resistor = repeat(0,5) + resistor[1] = create(GtkImage,wp & "leftend.jpg") + resistor[2] = create(GtkImage,wp & "bar.jpg") + resistor[3] = create(GtkImage,wp & "bar.jpg") + resistor[4] = create(GtkImage,wp & "bar.jpg") + resistor[5] = create(GtkImage,wp & "end1.jpg") + +constant top = create(GtkBox) + add(panel,top) + add(top,resistor) + +constant bot = create(GtkBox) + add(panel,bot) + pack(bot,{tens,ones,mult,tol}) + +constant css = create(GtkCssProvider,"GtkImage {padding:0;}") + +valdisp = create(GtkEntry) + add(panel,valdisp) + +show_all(win) +main() + +----------------------------------------------------------- +function Format(integer t, integer o, integer m, integer p) +----------------------------------------------------------- +-- a utility to correctly format the value displayed; +object vs +atom v = 0 +object prec = "", fmt = "[1] [2] [3] ([4] ~ [5] [2])" + +integer i +object min_v, max_v, var, suffix + + vs = sprintf("%d%d",{t,o}) + + if m < 1 then + v = to_number(vs) + end if + + if m > 0 and m < 10 then + vs &= repeat('0',m) + v = to_number(vs) + end if + + if m = 10 then + v = to_number(vs)/10 + end if + + if m = 11 then + v = to_number(vs)/100 + end if + + if p > -1 then + prec = tolerance[p] + switch p do + case 3 then var = v * 0.20 + case 2 then var = v * 0.10 + case 1 then var = v * 0.05 + end switch + min_v = v - var + max_v = v + var + end if + + if v >= 1e6 then + return format(fmt,{v/1e6,"Meg Ω",prec,number(min_v/1e6),number(max_v/1e6)}) + + elsif v >= 1000 then + return format(fmt,{v/1000,"K Ω",prec,number(min_v/1000),number(max_v/1000)}) + + else + return format(fmt,{v,"Ω",prec,number(min_v),number(max_v)}) + + end if + +end function + +-------------------------------------------------- +function Update() -- called when values chg +-------------------------------------------------- +integer t,o,m,p + +-- get selections from combo boxes, + t = gtk:get(tens,"active") + o = gtk:get(ones,"active") -1 + m = gtk:get(mult,"active") -1 + p = gtk:get(tol,"active") + +-- set resistor color bands to match entered values; + if t > 0 then + gtk:set(resistor[2],"from file",sprintf(wp & "bar%d.jpg",t)) + end if + + if o > 0 then + gtk:set(resistor[3],"from file",sprintf(wp & "bar%d.jpg",o)) + end if + + if m > 0 then + gtk:set(resistor[4],"from file",sprintf(wp & "bar%d.jpg",m)) + end if + + if p > 0 then + gtk:set(resistor[5],"from file",sprintf(wp & "end%d.jpg",p)) + end if + +-- display value in text form; + if t > 0 and o > 0 and m > 0 then + gtk:set(valdisp,"text",Format(t,o,m,p)) + end if + +return 0 +end function diff --git a/eugtk/examples/examples/colornames.ex b/eugtk/examples/examples/colornames.ex new file mode 100644 index 0000000..d5fce9d --- /dev/null +++ b/eugtk/examples/examples/colornames.ex @@ -0,0 +1,68 @@ + +------------------------------------------------------------------------ +--# displays the x-color names and samples; +------------------------------------------------------------------------ + +include GtkEngine.e + +constant xcolors = canonical_path("~/demos/resources/xcolors.txt") + +constant win = create(GtkWindow,{ + {"icon","~/demos/thumbnails/preferences-color.svg"}, + {"default size",400,800}, + {"position",GTK_WIN_POS_CENTER}}) + connect(win,"destroy","Quit") + +constant panel = create(GtkBox,VERTICAL) + add(win,panel) + +constant scroller = create(GtkScrolledWindow) + pack(panel,scroller,TRUE,TRUE) + +constant rend1 = create(GtkCellRendererText), + col1 = create(GtkTreeViewColumn,{ + {"pack start",rend1}, + {"title","Name"}, + {"sort column id",1}, + {"add attribute",rend1,"text",1}}) + +constant rend2 = create(GtkCellRendererText), + col2 = create(GtkTreeViewColumn,{ + {"pack start",rend2}, + {"title","Color"}, + {"add attribute",rend2,"background",1}}) + +constant store = create(GtkListStore,{gSTR,gSTR,gINT}) + +sequence names = read_lines(xcolors) + set(store,"data",names) + +constant tv = add(scroller,create(GtkTreeView,{ + {"model",store}, + {"headers clickable",TRUE}, + {"grid lines",GTK_TREE_VIEW_GRID_LINES_BOTH}, + {"append columns",{col1,col2}}})) + +constant + btn1 = create(GtkButton,"gtk-quit","Quit"), + btn2 = create(GtkButton,"gtk-refresh","Restore") + set(btn2,"tooltip text","Restore original (unsorted) order") + +constant box = add(panel,create(GtkButtonBox,{ + {"layout",GTK_BUTTONBOX_SPREAD}, + {"margin top",10}, + {"margin bottom",10}})) + add(box,{btn1,btn2}) + +show_all(win) +main() + +------------------------- +global function Restore() -- returns list to original order +------------------------- + set(store,"clear") + set(store,"sort column id",UNSORTED) + set(store,"data",names) +return 1 +end function + diff --git a/eugtk/examples/examples/eu.cfg b/eugtk/examples/examples/eu.cfg new file mode 100644 index 0000000..480e3be --- /dev/null +++ b/eugtk/examples/examples/eu.cfg @@ -0,0 +1 @@ +~/demos \ No newline at end of file diff --git a/eugtk/examples/examples/hangman.ex b/eugtk/examples/examples/hangman.ex new file mode 100644 index 0000000..a3392f3 --- /dev/null +++ b/eugtk/examples/examples/hangman.ex @@ -0,0 +1,154 @@ + +------------------------------------------------------------------------ +--# Turn over the letters and guess the word game. +------------------------------------------------------------------------ +-- if you don't see yellow and green letters as you click on them, +-- try changing your theme - mint doesn't show 'em, most others do. + +include GtkEngine.e +include GtkEvents.e + +------------------------------------------------------------------------ +-- variables; +------------------------------------------------------------------------ +integer max_tries, ct = 0 + +sequence words = read_lines(locate_file("resources/words.txt")) + +object avail, blanks, current_word + +------------------------------------------------------------------------ +-- interface; +------------------------------------------------------------------------ +constant win = create(GtkWindow, -- the main window; + "border=10,position=1,$destroy=Quit,$key-press-event=LetterSelected") + +constant panel = create(GtkBox,1) + add(win,panel) + +constant display = create(GtkLabel) -- for word being guessed; + set(display,"font","bold 24") + add(panel,display) + +constant lbl1 = create(GtkLabel,"Guess the word") -- for status; + set(lbl1,"font","8") + add(panel,lbl1) + +constant grid = create(GtkGrid) -- to display button set; + add(panel,grid) + set(grid,"row spacing",2) + set(grid,"column spacing",1) + +object letters = series('a',1,26) -- build an array of buttons; +integer x = 1, y = 3, z = 0 + + for i = 1 to length(letters) do -- load the letter button grid; + letters[i] = create(GtkButton,sprintf("_%s",letters[i]),"LetterSelected",letters[i]) + set(letters[i],"border",0) set(letters[i],"margin",0) + set(grid,"attach",letters[i],x,y,1,1) + x += 1 + if x > 13 then -- move to next line; + x = 1 y += 1 + end if + end for + +new_word() -- on startup, get a random word and initialize counters; + +show_all(win) +main() + +------------------------------------------------------------------------ +procedure new_word() -- selects a random word, resets available letters; +------------------------------------------------------------------------ + current_word = words[rand(length(words))] + avail = series('a',1,32,'+') -- set of {'a'...'z'} + blanks = repeat('_',length(avail)) -- to hide unguessed letters; + ct = 0 -- number of tries; + max_tries = 2 * length(current_word)-- number of tries allowed; + + set(display,"markup",FormatWord(current_word)) + + for i = 1 to length(letters) do -- reset colors; + set(letters[i],"background","white") + set(letters[i],"sensitive",TRUE) + end for + +end procedure + +------------------------------------------------------------------------ +global function LetterSelected(atom ctl, atom event) -- event handler; +------------------------------------------------------------------------ +integer key + +-- this function is linked to both keypresses and button clicks, +-- so we first need to determine which happened; + + if is_in_range(event,{'a','z'}) then key = event -- button was clicked; + else key = events:key(event) -- was keyboard input; + end if + + if is_in_list(key,avail) then -- if in set of unused letters + ct += 1 -- new guess counts; + set(letters[key-'a'+1],"sensitive",FALSE) -- used + + if find(key,current_word) > 0 then + set(letters[key-'a'+1],"background","green") -- used in word + else + set(letters[key-'a'+1],"background","yellow")-- not in word + end if + + avail = remove_all(key,avail) -- remove the letter from available set; + + set(display,"markup",FormatWord(current_word)) + + if ct > max_tries then -- too many tries, give up; + if Question(win,"Sorry", + sprintf("The word was %s",{current_word}), + "Play again?") = MB_YES then + new_word() + else abort(0) + end if + end if + + end if + +return 1 +end function + +--------------------------------------------------------------------------- +function FormatWord(object word) -- handles display and testing for a win; +------------------------------------------------------------------------ +object result = "" + + set(lbl1,"text",sprintf("%d letter word,\n%d guesses left.", + {length(current_word),max_tries-ct})) + +-- change 'unguessed' letters to underscores, +-- using the still un-tried letters remaining; + word = transmute(word,avail,blanks) + +-- add spaces between letters (looks better!); + for i = 1 to length(word) do + result &= word[i] & ' ' + end for + +-- if no hidden letters are left, the puzzle is solved! + if not find('_',word) then + set(display,"markup",sprintf("%s",{result})) + + if Question(win,"Congratulations!",current_word, + sprintf("You guessed it in %d tries!\nYour score is %d\nPlay again?", + {ct,100*(length(current_word)/ct)})) = MB_YES then + new_word() + return FormatWord(current_word) + else + Info(win,"Thanks!","Thanks","Please play again sometime") + abort(0) + end if + + end if + +return result +end function + + diff --git a/eugtk/examples/examples/httpd.ex b/eugtk/examples/examples/httpd.ex new file mode 100755 index 0000000..7887338 --- /dev/null +++ b/eugtk/examples/examples/httpd.ex @@ -0,0 +1,403 @@ +--====================================================================-- +--# A modified version of Euphoria's httpd.ex by RDS + +-- Httpd.ex can be run stand-alone started from a command line %>eui httpd +-- If needed parameters aren't supplied, a usage message will be printed. +-- It can also be called from an Eu program using system_exec() +-- with parameters and flags included in the command line. +--====================================================================-- + +--This library is free software; you can redistribute it +--and/or modify it under the terms of the GNU Lesser General +--Public License as published by the Free Software Foundation; +--either version 2 of the License, or (at your option) any later +--version. + +--This library is distributed in the hope that it will be useful, +--but WITHOUT ANY WARRANTY; without even the implied warranty of +--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +--See the GNU Lesser General Public License for more details. + +--You should have received a copy of the GNU Lesser General Public +--License along with this library; if not, write to the Free Software +--Foundation, Inc., 59 Temple Pl, Suite 330, Boston, MA 02111-1307 USA + +include std/socket.e as sock +include std/text.e +include std/types.e +include std/sort.e +include std/convert.e +include std/sequence.e +include std/io.e +include std/os.e +include std/math.e +include std/net/url.e +include std/console.e +include std/filesys.e +include std/datetime.e +include std/map.e as m + +----------------------------------------------------------------------- +-- END STYLING +----------------------------------------------------------------------- + +object server_log = 0, show_hidden = 0, sort_listing = 0, show_request = 0 +object bind_addr = "127.0.0.1:8080" +object doc_root = "." +object image_width = "600px" + +m:map mime_types = m:new() + +sequence typs = { -- you may need to add additional types here; + { "htm", "text/html" }, + { "html", "text/html" }, + { "css", "text/css" }, + { "png", "image/png" }, + { "jpg", "image/jpeg" }, + { "jpeg", "image/jpeg" }, + { "gif", "image/gif" }, + { "bmp", "image/bmp" }, + { "png", "image/png" }, + { "svg", "image/svg+xml" }, + { "xpm", "image/x-xpixmap"}, + { "wma", "audio/x-ms-wma"}, + { "wav", "audio/x-wave"}, + { "ogg", "audio/x-vorbis+ogg"}, + { "mov", "video/quicktime"}, + { "vob", "video/mpeg"}, + { "mp3", "audio/mpeg"}, + { "mp4", "video/mp4"}, + { "mpeg", "video/mpeg"}, + { "mpg", "video/mpeg"}, + { "pdf", "application/pdf"}, + { "zip", "application/zip"}, + $ +} + +for i = 1 to length(typs) do + m:put(mime_types, typs[i][1], typs[i][2]) +end for + +constant RESPONSE_STRING = """ +HTTP/1.0 %d +Content-Type: %s +Connection: close +Content-length: %d + + +""" + +constant ERROR_404 = """ + +404 Not Found + +

404 Not Found

+

Sorry!

+

+%s was not found on this server. +

+ + +""" +------------------------------------------------------------------------ +function SortDirectoriesFirst(object a, object b) +------------------------------------------------------------------------ +return compare(b[2],a[2]) +end function +atom directories_first = routine_id("SortDirectoriesFirst") + +------------------------------------------------------------------------ +function SortIgnoreCase(object a, object b) +------------------------------------------------------------------------ +return compare(upper(a),upper(b)) +end function +atom ignore_case = routine_id("SortIgnoreCase") + + +-- Styled objects; +constant style_header = """%s""" +constant style_listing = """""" +constant style_directory = """""" +constant style_html = """""" + +------------------------------------------------------------------------ +function create_index(sequence path) -- builds an html index on-the-fly +------------------------------------------------------------------------ +sequence data = sprintf(""" + + + + Eu Server + + + + +""",{path}) + +object files = dir(path), name, tmp + +integer ct = 1 + + if atom(files) then return 0 end if + + if sort_listing then + files = custom_sort(ignore_case,files) + files = custom_sort(directories_first,files) + end if + + data &= "\n\n" + + data &= sprintf(style_header,{path}) + + for i = 1 to length(files) do + + name = files[i][D_NAME] + + if show_hidden = 0 then + if name[1] = '.' then continue end if + end if + + if find('d', files[i][D_ATTRIBUTES]) then + data &= sprintf(style_directory,{name,name}) + data &= "\n\t" + else + tmp = name + tmp = split(tmp,'.') + if length(tmp) > 1 then + tmp = tmp[1] + else + tmp = name + end if + -- try to deal with accented chars : ò, for example, in song titles + for n = 1 to length(tmp) do + if tmp[n] = 195 then + tmp = tmp[1..n-1] & sprintf("&#%d;",{tmp[n+1]+64}) & tmp[n+2..$] + end if + end for + if match("htm",lower(fileext(name))) then + data &= sprintf(style_html,{url:encode(name),name}) + else + data &= sprintf(style_listing, {url:encode(name),name}) + end if + data &= "\n\t" + end if + + if remainder(ct,4)=0 then + data &= "\n" + end if + ct += 1 + + end for + + data &= "
\n" + + return data + +end function + +------------------------------------------------------------------------------------ +procedure handle_request(sock:socket server, sequence client, sequence doc_root=".") +------------------------------------------------------------------------------------ +sock:socket client_sock = client[1] +sequence client_addr = client[2] +object command,path,content_type,fileinfo,data +object request = sock:receive(client_sock,0) +object req_time = datetime:format(datetime:now_gmt(),"%Y/%m/%d %H:%M:%S ") +integer fn, fo, len, fsize, result_code +object fname=0, t1 = 0, t2 = 0 + + if atom(request) then + return + else + request = split(request,"\r\n") + if show_request then + if string(server_log) then + append_lines(server_log,request) + else + display(request) + end if + end if + end if + + if length(request) >= 1 then + command = request[1] + end if + + if length(request) >= 2 then + path = request[2] + end if + + t1 = split(command,' ') + t1 = url:decode(t1[2]) + +object a = split(doc_root,'/') +object b = split(t1,'/') +object c = {} + +for i = 1 to length(b) do +if i > length(a) then + c = b[i..$] + exit +end if +if equal(a[i],b[i]) then +else + c = b[i..$] + exit +end if +end for + +fname = join(a,'/') & '/' & join(c,'/') + +-- for logging; + fsize = file_length(fname) + + if string(server_log) then + append_lines(server_log, + {text:format("[] [] [] []",{req_time,client_addr,fname,fsize})}) + else + display("[] [] [] []",{req_time,client_addr,fname,fsize}) + end if + +-- we need to handle directories and files differently; + + switch file_type(fname) do + + case 0 then + result_code = 404 + content_type = "text/html" + data = sprintf(ERROR_404,{filename(fname)}) + + sock:send(client_sock, sprintf(RESPONSE_STRING, { + result_code, content_type, length(data)}), 0) + sock:send(client_sock, data, 0) + + case 1 then + data = read_file(fname) + content_type = m:get(mime_types,lower(fileext(fname)),"text/plain") + result_code = 200 + if not equal("ex",fileext(fname)) then + sock:send(client_sock, sprintf(RESPONSE_STRING, { + result_code, content_type, length(data)}), 0) + end if + sock:send(client_sock, data, 0) + + + case 2 then + data = create_index(fname) + content_type = "text/html" + result_code = 200 + + sock:send(client_sock, sprintf(RESPONSE_STRING, { + result_code, content_type, length(data)}), 0) + sock:send(client_sock, data, 0) + + end switch + + +end procedure + +------------------------------------------------------------------------ +function server() +------------------------------------------------------------------------ +sequence args = command_line(), starttime + + if length(args) = 2 then + show_usage() + end if + + display(args) + +integer n_tries = 20 +integer i = 3 + while i < length(args) do + switch args[i] do + case "-h" then show_hidden = 1 + case "-s" then sort_listing = 1 + case "-r" then show_request = 1 + case "-t" then n_tries = to_number(args[i+1]) + case "-bind" then bind_addr = args[i+1] i += 1 + case "-root" then doc_root = args[i+1] i += 1 + case "-log" then server_log = args[i+1] i += 1 + case else -- fail on invalid option; + printf(1,"Unknown option: %s\n",{args[i]}) + show_usage() + abort(1) + end switch + i += 1 + end while + +integer ct = 1 +label "retry" + + chdir(doc_root) + + sock:socket server = sock:create(sock:AF_INET, sock:SOCK_STREAM, 0) + + if sock:bind(server,bind_addr) != sock:OK then -- retry a few times; + printf(1,"Could not bind %s, error=%d try=%d\n", + {bind_addr, sock:error_code(),ct}) + sleep(2) + ct += 1 + if ct >= n_tries then -- fail after too many tries; + printf(1,"Failed to bind []\n",{bind_addr}) + if string(server_log) then + append_lines(server_log, + {sprintf("Failed to bind %s\n",{bind_addr}), + sprintf("Tried %d times",ct)}) + end if + abort(ct) + end if + goto "retry" + end if + + starttime = datetime:format(datetime:now_gmt(),"%Y/%m/%d %H:%M:%S ") + + printf(1,"Listening for request on %s\n",{bind_addr}) + if string(server_log) then + append_lines(server_log, + {sprintf("-----SERVER STARTED %s",{starttime}), + sprintf("-----Listening for request on %s",{bind_addr})}) + end if + + while sock:listen(server,10) = sock:OK do + object client = sock:accept(server) + if sequence(client) then + handle_request(server,client,doc_root) + sock:close(client[1]) + end if + end while + + sock:close(server) + + return 1 +end function + +---------------------- +procedure show_usage() +---------------------- +puts(1, ` + + Usage: httpd.ex + -bind ip_address:port + -root document_root + [-h show_hidden files] + [-s sort listing] + [-r show full request in log] + [-t number of tries to obtain port] + [-log name of log file] + short options must come before long options + `) + +puts(1,"\n") +abort(0) +end procedure + +server() +------------------------ +--© 2014 by Irv Mullins +------------------------ diff --git a/eugtk/examples/examples/icon_E.e b/eugtk/examples/examples/icon_E.e new file mode 100644 index 0000000..1afc0de --- /dev/null +++ b/eugtk/examples/examples/icon_E.e @@ -0,0 +1,641 @@ + +namespace e + +-- exports e:icon + +include GtkEngine.e + +constant e_xpm = { +"176 250 379 2", +" c None", +". c #000000", +"+ c #000001", +"@ c #000102", +"# c #000103", +"$ c #000204", +"% c #000205", +"& c #000306", +"* c #000307", +"= c #000408", +"- c #000409", +"; c #00050A", +"> c #00050B", +", c #00060C", +"' c #00060D", +") c #00070E", +"! c #00070F", +"~ c #000810", +"{ c #000811", +"] c #000912", +"^ c #000913", +"/ c #000A14", +"( c #000A15", +"_ c #000B16", +": c #000B17", +"< c #000C18", +"[ c #000C19", +"} c #000D1A", +"| c #000D1B", +"1 c #000E1C", +"2 c #000E1D", +"3 c #000F1E", +"4 c #000F1F", +"5 c #001020", +"6 c #001021", +"7 c #001122", +"8 c #001123", +"9 c #001224", +"0 c #001225", +"a c #001326", +"b c #001327", +"c c #001428", +"d c #001429", +"e c #01152A", +"f c #01152B", +"g c #01162C", +"h c #01162D", +"i c #01172E", +"j c #01172F", +"k c #011830", +"l c #011831", +"m c #011932", +"n c #011933", +"o c #011A34", +"p c #011A35", +"q c #011B36", +"r c #011B37", +"s c #011C38", +"t c #011C39", +"u c #011D3A", +"v c #011D3B", +"w c #011E3C", +"x c #011E3D", +"y c #011F3E", +"z c #01203F", +"A c #012040", +"B c #012141", +"C c #012142", +"D c #012243", +"E c #012244", +"F c #012345", +"G c #012346", +"H c #012447", +"I c #012448", +"J c #012549", +"K c #01254A", +"L c #01264B", +"M c #01264C", +"N c #01274D", +"O c #01274E", +"P c #01284F", +"Q c #012850", +"R c #012951", +"S c #012952", +"T c #022A53", +"U c #022A54", +"V c #022B55", +"W c #022B56", +"X c #022C57", +"Y c #022C58", +"Z c #022D59", +"` c #022D5A", +" . c #022E5B", +".. c #022E5C", +"+. c #022F5D", +"@. c #022F5E", +"#. c #02305F", +"$. c #023060", +"%. c #023161", +"&. c #023162", +"*. c #023263", +"=. c #023264", +"-. c #023365", +";. c #023366", +">. c #023467", +",. c #023569", +"'. c #02356A", +"). c #02366B", +"!. c #02366C", +"~. c #02376D", +"{. c #02376E", +"]. c #02386F", +"^. c #023870", +"/. c #023468", +"(. c #023971", +"_. c #023972", +":. c #023A74", +"<. c #023B75", +"[. c #023B76", +"}. c #023C77", +"|. c #023C78", +"1. c #023D79", +"2. c #023A73", +"3. c #023D7A", +"4. c #023E7B", +"5. c #023E7C", +"6. c #023F7D", +"7. c #033F7D", +"8. c #03407E", +"9. c #03407F", +"0. c #034180", +"a. c #034181", +"b. c #034283", +"c. c #034384", +"d. c #034385", +"e. c #034486", +"f. c #034487", +"g. c #034588", +"h. c #034589", +"i. c #03468A", +"j. c #034282", +"k. c #03468B", +"l. c #03478D", +"m. c #03488E", +"n. c #03488F", +"o. c #034990", +"p. c #034991", +"q. c #034A92", +"r. c #034A93", +"s. c #03478C", +"t. c #034B94", +"u. c #034B95", +"v. c #034C96", +"w. c #034C97", +"x. c #034D98", +"y. c #034D99", +"z. c #034E9A", +"A. c #034E9B", +"B. c #034F9D", +"C. c #03509E", +"D. c #03509F", +"E. c #0351A0", +"F. c #0351A1", +"G. c #0352A2", +"H. c #0352A3", +"I. c #034F9C", +"J. c #070707", +"K. c #080707", +"L. c #080708", +"M. c #070807", +"N. c #070708", +"O. c #070808", +"P. c #080808", +"Q. c #080807", +"R. c #0B0C0B", +"S. c #0B0C0C", +"T. c #0B0B0B", +"U. c #0C0C0B", +"V. c #0B0B0C", +"W. c #0C0B0B", +"X. c #0C0B0C", +"Y. c #0C0C0C", +"Z. c #0F0F0F", +"`. c #0F0F10", +" + c #0F100F", +".+ c #131313", +"++ c #131312", +"@+ c #131212", +"#+ c #131213", +"$+ c #121313", +"%+ c #121213", +"&+ c #121312", +"*+ c #171616", +"=+ c #161717", +"-+ c #171617", +";+ c #171716", +">+ c #161617", +",+ c #171717", +"'+ c #161716", +")+ c #161616", +"!+ c #1A1A1B", +"~+ c #1A1A1A", +"{+ c #1B1B1A", +"]+ c #1A1B1A", +"^+ c #1B1A1A", +"/+ c #1A1B1B", +"(+ c #1B1A1B", +"_+ c #1B1B1B", +":+ c #1E1E1E", +"<+ c #1E1E1F", +"[+ c #1E1F1E", +"}+ c #1F1E1E", +"|+ c #222222", +"1+ c #212222", +"2+ c #222221", +"3+ c #222122", +"4+ c #212122", +"5+ c #212221", +"6+ c #222121", +"7+ c #212121", +"8+ c #252626", +"9+ c #262526", +"0+ c #262525", +"a+ c #252525", +"b+ c #262626", +"c+ c #252625", +"d+ c #262625", +"e+ c #252526", +"f+ c #1E1F1F", +"g+ c #2A2929", +"h+ c #292929", +"i+ c #2A2A29", +"j+ c #292A2A", +"k+ c #29292A", +"l+ c #2A2A2A", +"m+ c #292A29", +"n+ c #2E2D2D", +"o+ c #2D2D2D", +"p+ c #2D2D2E", +"q+ c #2D2E2D", +"r+ c #2E2E2D", +"s+ c #2D2E2E", +"t+ c #1F1E1F", +"u+ c #313131", +"v+ c #313130", +"w+ c #303130", +"x+ c #2A292A", +"y+ c #343434", +"z+ c #353535", +"A+ c #353534", +"B+ c #343435", +"C+ c #353434", +"D+ c #343534", +"E+ c #303131", +"F+ c #393839", +"G+ c #393938", +"H+ c #383839", +"I+ c #393838", +"J+ c #383938", +"K+ c #313231", +"L+ c #353435", +"M+ c #3C3C3C", +"N+ c #3D3D3C", +"O+ c #2E2D2E", +"P+ c #1F1F1E", +"Q+ c #1F1F1F", +"R+ c #403F40", +"S+ c #404040", +"T+ c #3C3C3D", +"U+ c #383939", +"V+ c #343535", +"W+ c #323131", +"X+ c #303031", +"Y+ c #444344", +"Z+ c #414040", +"`+ c #404140", +" @ c #3C3D3C", +".@ c #3D3C3D", +"+@ c #100F0F", +"@@ c #0572E2", +"#@ c #0571E0", +"$@ c #0570DD", +"%@ c #056FDB", +"&@ c #056ED9", +"*@ c #056CD6", +"=@ c #056BD4", +"-@ c #056AD2", +";@ c #0469CF", +">@ c #0468CD", +",@ c #0467CB", +"'@ c #0466C9", +")@ c #0465C7", +"!@ c #0464C5", +"~@ c #0463C3", +"{@ c #0462C2", +"]@ c #0461C0", +"^@ c #0461BF", +"/@ c #0460BD", +"(@ c #045FBC", +"_@ c #045EBB", +":@ c #045EBA", +"<@ c #045DB9", +"[@ c #045DB8", +"}@ c #045CB7", +"|@ c #045CB6", +"1@ c #045BB5", +"2@ c #045BB4", +"3@ c #045AB3", +"4@ c #045AB2", +"5@ c #0459B0", +"6@ c #0458AF", +"7@ c #0457AD", +"8@ c #0456AB", +"9@ c #0455A9", +"0@ c #0354A6", +"a@ c #313232", +"b@ c #0570DE", +"c@ c #056FDC", +"d@ c #056DD7", +"e@ c #0466CA", +"f@ c #0465C8", +"g@ c #0464C6", +"h@ c #0463C4", +"i@ c #0460BE", +"j@ c #0459B1", +"k@ c #0458AE", +"l@ c #0454A7", +"m@ c #0353A5", +"n@ c #056DD8", +"o@ c #056CD5", +"p@ c #056BD3", +"q@ c #0469D0", +"r@ c #0462C1", +"s@ c #0457AC", +"t@ c #0456AA", +"u@ c #0353A4", +"v@ c #393939", +"w@ c #056AD1", +"x@ c #0468CE", +"y@ c #0455A8", +"z@ c #313031", +"A@ c #383838", +"B@ c #056EDA", +"C@ c #0467CC", +"D@ c #100F10", +"E@ c #0571DF", +"F@ c #0573E3", +"G@ c #0572E1", +"H@ c #3C3D3D", +"I@ c #40403F", +"J@ c #444444", +"K@ c #434444", +"L@ c #444343", +"M@ c #484748", +"N@ c #434344", +"O@ c #484847", +"P@ c #484747", +"Q@ c #444443", +"R@ c #474848", +"S@ c #4C4B4C", +"T@ c #484848", +"U@ c #474747", +"V@ c #4B4C4B", +"W@ c #4B4B4B", +"X@ c #474847", +"Y@ c #4C4C4B", +"Z@ c #4F4F4F", +"`@ c #4B4B4C", +" # c #3D3D3D", +".# c #4C4B4B", +"+# c #474748", +"@# c #3D3C3C", +"## c #434343", +"$# c #2E2E2E", +"%# c #0F1010", +"&# c #10100F", +"*# c #313132", +"=# c #313030", +"-# c #121212", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + @ @ @ @ @ @ @ @ @ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # @ @ @ @ @ @ @ @ @ + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + @ @ @ @ @ @ # # # # # # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # # # # # # @ @ @ @ @ @ + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + @ @ @ @ # # # # $ $ $ $ $ % % % % % % % % & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & % % % % % % % % $ $ $ $ $ # # # # @ @ @ @ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ @ # # # # $ $ $ % % % % % & & & & & & & * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * & & & & & & & % % % % % $ $ $ # # # # @ @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ @ # # $ $ $ % % % & & & * * * * * = = = = = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - = = = = = = * * * * * & & & % % % $ $ $ # # @ @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ # # $ $ $ % % & & * * * = = = - - - - ; ; ; ; ; ; > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ; ; ; ; ; ; - - - - = = = * * * & & % % $ $ $ # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ # # $ $ % % & & * * = = - - ; ; > > > , , , ' ' ' ' ' ' ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ' ' ' ' ' ' , , , > > > ; ; - - = = * * & & % % $ $ # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ # # $ $ % % & * * = = - ; ; > > , ' ' ) ) ) ! ! ! ~ ~ ~ ~ ~ ~ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ~ ~ ~ ~ ~ ~ ! ! ! ) ) ) ' ' , > > ; ; - = = * * & % % $ $ # # @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ @ # # $ $ % & & * = - - ; > , , ' ) ) ! ! ~ ~ { { ] ] ] ^ ^ ^ ^ ^ ^ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / ^ ^ ^ ^ ^ ^ ] ] ] { { ~ ~ ! ! ) ) ' , , > ; - - = * & & % $ $ # # @ @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ @ # $ $ % & & * = - ; ; > , ' ) ! ~ ~ { ] ^ ^ / / ( ( _ _ _ : : : : : : < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < : : : : : : _ _ _ ( ( / / ^ ^ ] { ~ ~ ! ) ' , > ; ; - = * & & % $ $ # @ @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # # $ $ % & * * = - ; > , ' ) ! ~ { ] ^ / ( _ _ : < < [ [ } } } | | | | | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 | | | | | } } } [ [ < < : _ _ ( / ^ ] { ~ ! ) ' , > ; - = * * & % $ $ # # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # # $ $ % & * = - ; > , ' ! ~ { ] ^ ( _ : < [ } } | 1 2 2 3 3 4 4 4 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 4 4 4 3 3 2 2 1 | } } [ < : _ ( ^ ] { ~ ! ' , > ; - = * & % $ $ # # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = - ; , ' ) ~ { ] / ( _ < [ } | 2 3 4 5 5 6 7 7 8 8 9 9 0 0 0 0 0 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a 0 0 0 0 0 9 9 8 8 7 7 6 5 5 4 3 2 | } [ < _ ( / ] { ~ ) ' , ; - = * & % $ $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = - > , ' ! ~ ] ^ ( _ < } | 1 3 4 5 7 8 9 0 a a b c c d d d e e e e e f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f e e e e e d d d c c b a a 0 9 8 7 5 4 3 1 | } < _ ( ^ ] ~ ! ' , > - = * & % $ $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = ; > , ) ~ { ^ ( : < } 1 3 4 6 8 9 a b c e f g g h i j j k k k l l l l l m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m l l l l l k k k j j i h g g f e c b a 9 8 6 4 3 1 } < : ( ^ { ~ ) , > ; = * & % $ $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # # $ % & * = ; > ' ) ~ ] / ( : [ | 2 4 6 8 0 b d e g h j k l m n o o p p q q r r r r r s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s r r r r r q q p p o o n m l k j h g e d b 0 8 6 4 2 | [ : ( / ] ~ ) ' > ; = * & % $ # # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ % & * = - > , ) ~ ] / _ < } 2 4 6 8 a c e g i k l n o q r s t u v w w x x x y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y x x x w w v u t s r q o n l k i g e c a 8 6 4 2 } < _ / ] ~ ) , > - = * & % $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * = - > , ) ~ ] / : [ | 3 5 8 a c f h j m o q s u v x y y z A B C D D E E F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F F F F E E D D C B A z y y x v u s q o m j h f c 0 8 5 3 | [ : / ] ~ ) , > - = * % % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . + + + @ # # $ % & = - ; , ) ~ ] / : [ 1 4 6 9 b e h j m p r u w y z B D E G H I J K K L M M M N N N N N N O O O O O O O O N N N N N N N N N N N N N N N N N N N N M M M M L L L K K J I H G F D C A y x v t r o m j g d b 9 6 3 1 [ : / ] ~ ) , ; - * & % $ # # @ + + + . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * = ; , ' ~ ] / : [ 1 4 7 0 c f i l o r u x z B D G I K L N O P Q R S T T U U V V V V W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W V V V V U U T T S R Q P O N L J I G D B z x u r o l i f c 0 7 4 1 [ : / ] ! ' , ; = * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + + @ # # $ % & = - > ' ! { / _ [ 1 4 7 0 d g j n q t x z C F H K M O Q S U V X Y Z ` . .....+.+.+.+.+.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.+.+.+.+.+..... . .` Z Y X V U S Q O M K H F C z x t q n j g c 0 7 4 1 [ _ ^ { ! ' > - = & % $ # # @ + + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * - ; , ) ~ ^ ( < | 3 7 0 d g k o s v y B F I L O R U W Y ` ..@.#.$.%.&.*.=.=.-.-.;.;.;.;.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.;.;.;.;.-.-.=.=.*.&.%.$.#.@...` Y W U R O L I F B y v s o k g d 0 7 3 | < ( ^ ~ ) , ; - * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; > ' ~ ] ( : | 3 6 0 d g k o s x A D H L P S V Y .@.$.&.=.;.>.,.'.).!.~.~.{.{.].].].].^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.].].].].{.{.~.~.!.).'.,.>.;.=.&.$.@. .Y V S P L H D z w s o k g d 0 6 3 } : ( ] ! ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + + @ # $ % & * - ; , ) { ^ _ [ 2 5 9 c g k o t x A F J N R V Z ..#.&.-./.'.!.{.^.(._.:.<.<.[.}.}.}.|.|.|.|.|.|.1.1.1.1.1.1.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.}.}.}.}.[.[.<.:.:.2._.^.].~.).,.>.=.&.#. .Y U Q N I E A x s o k g c 9 5 1 [ _ ^ { ) , ; - * & % $ # @ + + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & = - > ' ~ ] ( < | 4 8 b f j o s x B F K P T X .#.*.>.'.~.^._.:.[.|.3.4.5.6.7.8.8.9.9.0.0.0.0.0.0.0.a.a.a.a.a.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.9.9.9.8.8.8.7.6.5.4.3.1.}.<.2.(.].!.,.;.&.#. .X S O J F A x s n j f a 7 4 | < ( ] ~ ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ # # $ & * = ; , ) { / : } 2 6 0 e i n s w A F K P U Z @.&.;.'.{.(.:.}.3.5.8.9.a.b.c.d.e.f.f.g.g.h.h.h.h.h.h.h.i.i.i.i.i.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.g.g.g.g.f.f.e.e.d.c.b.j.0.9.7.5.1.}.:.^.~.,.-.%.+.Y U P K F A w r m i d 0 6 2 } _ ^ { ) , ; = * % $ # # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ # $ % & * - > ' ! ] ( < 1 4 9 c g l q v z F K P V ` #.=./.~.(.<.1.5.8.a.c.e.g.i.k.l.m.n.n.o.p.p.p.q.q.q.q.q.q.r.r.r.r.r.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.p.p.p.p.o.o.n.n.m.l.s.i.h.f.d.b.0.7.4.|.:.^.!./.*.@.Z U P J E z v q l g b 8 4 | < ( ] ! ' > - * & % $ # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & = ; , ) ~ ^ _ } 2 6 a e j o u y D J P U ` #.-.'.].:.|.5.9.b.e.h.s.m.o.q.t.u.v.w.x.y.y.z.z.A.A.A.A.A.A.A.A.A.A.A.A.A.A.A.A.A.A.A.z.z.z.z.z.z.z.z.z.z.y.y.y.y.x.x.w.v.v.t.r.q.o.m.s.i.f.c.a.8.4.}._.~.,.*.@.Z T O I D y t o j e 0 6 2 [ _ ^ ~ ) > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; , ! { / < | 4 8 c h m r x B H N T Z #.-.'.^.<.3.7.j.e.i.l.o.r.u.x.z.A.B.C.D.E.F.F.G.G.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.G.G.G.G.G.G.G.G.G.G.F.F.F.F.E.E.D.C.B.I.A.y.x.v.t.p.m.k.g.c.0.6.|.2.{.,.*.+.Y S M G A w q l g b 8 4 | : / { ) , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ # # % & * - > ' ! ] ( [ 2 6 0 e j o u z F L R X +.*.'.].J.J.J.K.J.L.M.N.L.O.J.L.M.O.L.K.K.P.Q.N.O.Q.L.P.Q.N.M.L.Q.Q.N.N.Q.M.P.Q.K.J.Q.J.L.P.K.P.P.N.P.J.N.M.K.N.O.J.J.J.Q.L.N.L.N.Q.O.M.L.L.P.M.L.P.O.J.Q.N.P.J.{./.&...W Q K E y t o i d 0 5 1 < ( ] ! ' > - * & $ # # @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ # $ % & = - > ) ~ ^ _ } 3 7 b g l r x C I O V .&./.].<.J.R.S.T.R.U.T.T.V.V.V.V.T.W.R.U.R.T.X.T.V.T.R.V.W.V.X.S.R.W.T.X.S.T.X.V.T.V.T.T.V.T.T.R.T.T.X.V.T.T.Y.V.W.T.U.T.T.R.R.T.V.T.T.R.T.W.W.V.T.V.T.V.S.W.S.M.2.!.;.$.` T N H A v q k f a 7 2 } _ ^ ~ ' > - * & % $ # @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + + @ # $ % & = ; , ) { / < | 4 9 d i o t y F L S Z #.;.~.:.3.Q.W.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.`.Z. +Z.Z.Z. +Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.T.L.}.(.'.=.+.X Q J D y s m h c 8 4 | : / { ) , ; = & % $ # @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; , ! ] ( < 1 6 0 e k q w B I O V ..*.'.(.|.8.N.W.Z..+++@+#+$+%+.+.+&+.+#+.+#+.+%+%+++$+++.+$+.+.+#+++#+@+.+.+.+.+++.+.+.+.+#+.+.+++#+.+$+.+$+++#+++.+%+.+.+.+%+.+.+.+.+.+.+#+++#+.+@+.+++.+#+.+Z.V.P.4.<.{.>.$.Z T M F z u o i d 9 5 | < / { ) , ; = & % $ # @ + + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ! ] _ [ 2 7 b g l r y D K R Y #.;.{.<.5.j.L.W.Z.$+*+=+-+;+>+,+-+;+'+)+,+*+'+,+'+)+;+;+,+)+-+-+;+=+;+=+,+;+*+=+;+;+>+,+=+,+,+*+>+'+-+,+,+)+'+,+,+=+;+-+;+)+'+;+,+-+)+=+'+,+'+'+,+=+,+'+;+=+.+Z.T.O.7.|.(.'.*...V O H B v p k e 0 6 1 < ( ] ! , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # # $ & * - > ' ~ ^ _ } 3 8 c h n t z G N U .*.'._.1.9.e.J.T.Z.++;+!+~+~+!+{+]+^+/+!+]+(+^+!+^+_+]+^+^+^+/+]+{+_+^+/+^+!+^+/+]+^+~+~+(+~+~+]+~+!+{+!+/+]+!+/+~+~+]+{+/+]+!+]+_+!+^+~+~+]+{+/+{+~+!+~+!+)+.+`.R.Q.a.4.:.~.;.@.X Q J C x r l f a 6 2 [ ( ] ! ' ; - * % $ # @ @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & * - > ) { / : | 4 9 d j p v B H P W @.-.~.:.5.b.i.Q.R.Z..+'+^+:+:+:+:+:+<+[+[+}+:+:+:+[+:+:+:+:+:+:+:+:+:+:+:+:+[+:+:+:+:+:+:+:+<+:+:+:+:+:+:+[+[+:+:+[+:+<+:+:+<+:+:+}+}+:+:+:+<+<+[+:+:+:+<+~+=+.+Z.T.K.b.6.[.]./.$.Z S L E y s m g b 7 3 } _ ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ) { / < 1 5 0 e k q w C J R Y $./.].}.8.e.l.L.W.Z..+*+]+:+|+|+|+|+|+|+|+1+1+|+|+|+2+|+3+2+1+|+|+|+|+4+|+|+3+3+3+|+|+3+3+5+|+6+2+|+|+1+1+3+2+|+|+|+|+|+1+|+|+3+|+4+3+7+5+|+|+|+|+|+|+|+:+!+,+&+Z.T.N.d.8.|.(.,.&.` T M F y t n h c 8 3 } _ ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ! { ( < 1 6 a f l r y E L S ` &.'._.3.a.h.o.M.T.Z..+=+{+:+1+8+9+0+a+b+b+c+c+d+8+e+8+8+d+e+9+d+0+0+9+8+0+0+0+d+a+d+8+a+d+b+d+d+b+c+c+8+8+c+a+9+b+0+d+a+c+8+9+b+8+8+d+d+8+d+b+8+c+0+d+|+f+~+,+.+Z.V.P.f.0.1._.'.*. .U N G z t n h c 8 3 } _ ^ ~ ' > - * & $ # # @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ! ] ( [ 2 7 b g m s y F M U ..=.!.:.5.c.k.r.Q.R.Z..+=+/+:+1+c+g+h+h+i+j+j+k+h+h+k+k+l+g+h+m+m+h+h+i+g+h+i+l+h+j+m+k+h+h+g+m+l+m+m+h+h+h+h+i+k+l+k+m+g+h+j+g+m+g+m+k+h+h+m+m+g+j+j+0+|+:+!+;+#+Z.T.J.g.a.3.2.).=...V N G z u o i c 8 4 } : ^ ~ ' > - * & % # # @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % * = ; ' ! ] ( [ 3 7 b h n t z G O W @.;.{.[.8.e.m.v.P.V.Z..+;+!+:+|+0+g+n+o+n+o+n+o+o+p+q+o+o+p+o+o+o+o+o+o+o+n+o+o+n+o+o+p+o+o+o+o+r+p+o+q+o+q+o+n+o+o+s+p+q+o+o+o+o+p+o+o+o+p+o+o+n+o+l+b+|+[+^+,+.+Z.R.N.g.a.4.2.!.=...V O G A u o i d 8 4 | : ^ ~ ) > - * & % # # @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % * = ; ' ! ] _ } 3 8 c i o u A H P X #.>.^.|.9.g.o.x.P.T.Z..+*+~+t+|+9+h+o+u+u+v+u+u+w+u+u+u+u+v+u+u+v+u+u+o+i+m+g+m+m+i+g+j+i+h+g+m+l+l+g+k+x+h+g+j+i+x+x+m+k+g+h+g+k+j+h+g+i+i+i+m+k+j+l+9+|+:+!+)+$+Z.R.L.g.a.4.2.!.=...V O G A u o i c 8 4 | : ^ ~ ) > - * & % # # @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + @ @ # $ % * - > ' ~ ^ _ } 3 8 c i o v B I Q Y $.,.(.3.a.i.q.z.Q.T.Z..+,+/+:+|+a+h+o+u+y+z+z+z+z+A+z+A+B+C+D+D+D+u+q+h+b+8+9+9+b+b+8+8+b+9+d+9+b+9+a+d+d+c+b+b+b+9+b+b+9+9+8+b+b+d+9+b+8+b+b+d+b+9+9+b+2+:+^+,+++Z.S.Q.g.a.4.2.).=...V N G z u o i c 8 4 } : ^ ~ ' > - * & $ # # @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ % * - > ' ~ ^ _ } 4 9 d j p w C J R Z &.'.2.4.b.k.t.I.M.W.Z.&+;+~+}+|+8+j+o+E+z+F+G+H+G+G+F+I+G+J+F+z+K+n+l+b+|+|+|+|+|+2+2+|+|+1+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+2+|+2+|+2+|+|+|+|+|+|+|+|+|+|+|+:+/+*+.+`.U.L.f.0.1._.'.*. .U N G z t n h c 8 3 } _ ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ % * - > ' ~ ^ : | 4 9 d j q w C K S ` &.).:.5.c.l.u.B.Q.T.Z..+,+]+:+1+a+i+o+u+L+I+M+M+M+M+M+N+M+F+A+u+O+x+b+|+:+:+:+:+:+[+[+:+}+}+:+[+t+:+[+t+:+P+Q+:+:+:+<+:+[+P+:+:+[+:+<+:+:+:+:+<+:+t+:+}+f+[+^+,+.+Z.U.Q.e.8.|.(.,.&.` T M F y t n h c 8 3 } _ ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ~ ^ : | 4 9 e k q x D L T .*.!.<.7.d.m.v.D.M.Y.Z.@+'+~+:+|+8+m+p+u+L+G+M+R+S+S+S+T+U+V+W+o+x+c+|+<+^+/+~+{+!+{+!+/+]+_+~+(+]+^+]+]+~+/+~+~+^+^+!+]+/+~+!+(+_+]+!+^+{+(+{+^+(+!+]+!+^+]+!+;+.+`.V.L.c.7.}.]./.%.Z S L E y s m g b 7 3 } _ ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ~ ^ : | 5 0 e k q x D L T .=.~.<.7.e.n.w.D.J.W.Z..+,+/+:+|+b+k+o+X+V+J+M+S+Y+Z+N+U+z+u+o+i+b+|+:+(+;+-+-+*+=+>+,+,+>+=+'+;+=+'+>+,+>+=+-+,+-+,+-+=+=+,+,+;+-+'+'+;+,+>+>+,+'+;+=+,+'+-+)+=+.+`.T.N.j.5.<.{.;.#.Y R K D x r l f a 7 2 [ ( ] ! ' ; - * % $ # @ @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) ~ / : | 5 0 e k r y E M U ..-.~.[.8.f.o.x.F.P.X.Z..+;+^+[+|+9+h+o+u+z+J+N+S+`+ @G+V+u+q+h+b+|+<+~+=+.+$+&+$+++#+#+$+.+.+#+++.+#+.+.+.+.+$+.+$+.+.+++.+.+&+.+.+$+#+.+.+$+#+.+.+$+++.+.+.+.+.+$+Z.T.M.0.3.2.!.=.+.W P I C w q k f a 6 2 [ ( ] ! , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) ~ / : | 5 0 f l r y E M U +.-.{.}.9.g.o.y.F.Q.X.Z..+=+]+[+|+9+h+q+u+y+H+.@S+T+I+z+K+p+g+d+|+:+~+=+@+Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.+@Z.Z.`.Z.Z.Z.+@Z.Z.Z.Z.Z.Z.Z.Z.+@Z.Z.Z.Z.Z.Z. + +Z.+@Z.Z.+@Z.Z.Z.W.O.7.}.^.,.&. .U N H A v p j e 0 5 1 < / { ! , ; = & % $ # @ + + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / : 1 5 0 f l r y F M V +.;.{.}.9.g.p.z.G.J.T.Z.#+'+/+:+|+e+h+o+u+L+U+M+M+F+z+K+o+j+b+|+[+^+>+#+Z.W.S.S.X.T.Y.Y.V.W.T.R.R.T.U.X.U.T.R.T.T.U.R.T.T.T.V.U.W.S.U.R.T.W.X.R.T.S.W.R.T.T.T.R.V.R.R.V.N.4.:.{.>.$.Z S L F y t n i d 9 4 | : / { ) , ; = & % $ # @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l r y F N V +.;.].}.9.g.p.z.G.N.R.Z..+;+~+}+3+b+g+n+u+V+F+M+I+L+u+r+x+b+|+:+]+>+.+`.T.L.P.O.J.P.Q.M.N.P.O.M.P.K.J.L.N.M.Q.P.M.M.K.N.P.M.O.Q.L.N.N.K.O.L.K.L.P.O.L.N.L.Q.N.P.J.Q.K.J.K.|._.).=.@.X Q J D y s m h b 8 3 } : ^ ~ ) > - = & % $ # @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l s y F N V +.;.].|.0.h.q.z.H.K.V.Z..+,+_+}+|+9+h+o+E+z+G+G+L+u+o+x+9+|+<+]+*+.++@T.Q.@@#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@/@(@(@_@:@<@<@[@}@|@1@2@3@4@5@6@7@8@9@0@H.E.I.x.t.n.i.d.9.4.:.{./.%. .U O H B w q k f a 7 2 [ _ ^ ~ ' > - * & % # # @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l s y F N V +.;.].|.0.h.q.z.H.M.R.Z..+;+^+:+|+b+h+o+u+A+H+F+z+a@n+m+b+|+:+(+,+#+Z.W.L.#@b@c@&@d@=@-@;@>@e@f@g@h@{@]@i@/@(@_@:@<@[@}@|@1@2@3@4@j@5@6@k@7@8@9@l@m@G.D.I.y.u.o.s.f.j.6.}.(.).-.#.Y S L F z u o j e 0 6 1 [ ( ] ! ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 a f l s y F N V @.;.].|.0.h.q.A.H.P.Y.Z.&+,+{+<+1+e+h+q+u+L+I+U+z+u+O+j+b+2+:+^+*+.+Z.T.N.#@$@%@n@o@p@q@>@,@f@g@~@r@^@/@(@_@<@}@|@1@2@3@4@j@5@6@k@7@s@8@t@9@l@m@H.F.C.A.x.u.p.l.g.b.8.3.:.{./.&...W P J D y s n h c 9 4 | < / { ! , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y F N V @.>.].|.0.h.q.A.u@N.W.Z.#+'+~+P+2+8+m+p+u+B+G+v@V+u+p+l+b+6+:+(+=+.+Z.R.P.b@c@&@*@p@w@x@,@f@g@~@]@i@(@_@<@}@1@2@3@j@5@6@k@7@s@8@t@9@y@l@0@m@H.F.D.B.z.x.u.p.l.h.d.0.5.}.(.).;.$.Z T N H B w r l g b 8 3 | : / { ) , ; = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y F N V @.>.].|.0.h.q.A.u@J.W.Z.$+,+~+:+3+d+h+n+z@A+A@v@z+u+o+h+e+|+:+/+,+.+Z.S.P.$@B@d@=@w@;@C@'@g@~@]@i@(@:@[@|@2@4@5@6@k@s@8@t@9@y@l@0@0@u@H.G.F.D.B.A.y.w.t.p.l.i.e.a.7.1.:.{./.*.+.X R L F z u p k f a 6 2 } _ ^ ~ ) > - = & % $ # @ + + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y G N W @.>.^.1.a.i.r.I.u@N.X.Z..+)+]+:+|+b+g+o+u+V+I+F+z+u+o+k+b+|+:+~+-+.+Z.W.J.$@B@d@=@w@>@e@)@h@r@i@(@:@[@1@3@j@5@k@s@8@t@9@l@0@m@u@u@H.F.E.D.C.I.z.x.v.t.p.m.i.f.b.8.4.[.(.!.;.$.` V P J D y t n i d 0 5 1 [ ( ] ~ ' > - * & % $ # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y G N W @.>.^.1.a.i.r.I.u@N.V.Z.#+*+^+}+|+8+x+o+u+z+F+J+z+u+o+l+d+|+<+!+>+++Z.U.L.%@&@o@-@;@C@'@!@{@^@(@_@[@1@3@j@6@7@8@t@y@l@0@m@u@H.G.F.E.D.B.I.A.y.w.u.r.p.m.k.g.c.0.6.|.2.{.,.=.@.Y T N H B x r m h c 9 5 1 < ( ] ! ' > - * & $ # # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y G N W @.>.^.1.a.i.r.I.u@Q.T.Z.++;+~+:+|+0+m+o+E+V+U+v@z+W+o+g+8+|+[+~+*+.+D@T.P.%@n@o@w@x@,@f@h@r@i@(@<@|@2@j@6@7@8@9@y@0@m@u@H.G.F.E.D.C.I.A.z.y.w.u.r.p.n.s.h.d.j.8.4.[.(.!.>.&...X R L F A v q l g b 8 4 | : / { ! , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@L.S.Z.&+-+~+:+|+d+x+o+u+y+A@F+L+W+p+j+b+|+<+!+*+.+Z.W.Q.B@d@=@w@>@e@g@~@]@/@_@[@1@4@5@k@8@9@y@0@m@H.G.F.E.D.C.B.I.z.y.x.w.u.r.p.n.l.i.f.b.0.6.1.:.^.).-.$. .V P K E z u p k f a 7 3 } : / { ) , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@J.W.Z..+*+~+<+2+8+x+o+u+L+A@v@z+u+q+j+0+|+:+]+=+.+Z.V.K.B@d@p@q@>@'@g@~@^@(@:@}@2@j@6@7@8@9@l@m@u@G.F.E.D.C.B.I.A.y.x.w.v.t.q.o.m.k.h.e.j.9.5.|.2.{.,.=.#.Z U O J D y t o j e a 6 2 } _ ^ ~ ) , ; = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@O.R.Z..+,+^+:+|+d+x+p+u+y+J+v@A+u+q+l+c+|+}+~+,+.+Z.R.L.B@d@p@q@>@'@g@~@^@(@:@}@2@j@6@7@8@9@l@m@u@G.F.E.D.C.B.I.z.y.x.w.u.t.q.o.m.k.g.d.j.8.4.}.2.{.,.=.@.Z T O I C y t n i e 0 6 2 [ _ ^ ~ ) > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@Q.U.Z..+,+/+:+|+0+j+o+E+A+I+v@z+u+p+g+b+|+f+~+*+.+`.S.J.B@d@p@q@>@'@g@~@^@(@:@}@2@j@6@7@8@9@l@m@u@G.F.E.D.C.B.A.z.y.x.w.u.t.q.o.l.k.g.d.j.8.4.}._.~./.*.@.Y T N H C x s n i d 0 5 2 [ _ ^ ~ ' > - = & % $ # @ + + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@N.V.Z.++*+(+:+|+9+h+o+u+z+v@v@V+u+s+i+c+|+f+(+;+.+ +S.K.B@d@=@w@>@e@g@~@]@/@_@[@1@4@5@k@8@9@y@0@u@H.G.F.E.C.B.I.A.z.y.x.v.t.r.o.m.s.h.e.j.8.4.}._.{.,.*.@.Y T N H C x s n i d 9 5 1 [ ( ] ~ ' > - * & % $ # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@K.W.Z..+)+(+:+|+c+i+o+u+z+U+v@z+u+o+l+d+|+:+^+,+$+Z.S.Q.%@n@o@w@x@,@f@h@r@i@(@<@|@2@j@6@7@8@9@y@0@m@u@H.F.E.D.C.B.I.A.y.x.v.t.q.o.l.i.f.b.0.6.|.2.].,.=.#.Z T O I C y s n i d 0 5 1 [ ( ] ~ ' > - * & % $ # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@N.V.Z.++-+^+[+|+b+j+p+u+y+I+F+z+u+r+j+b+|+:+]+=+.+Z.V.Q.%@&@o@-@;@C@'@!@{@^@(@_@[@1@3@j@6@7@8@t@y@l@0@u@H.G.F.E.D.C.B.A.z.x.v.t.p.n.s.g.d.a.7.1.<.^.'.-.#.` U O I D y s n i d 0 5 1 [ ( ] ~ ' > - * & % $ # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@O.T.Z..+>+~+:+|+a+x+o+E+z+G+v@A+u+p+m+b+|+:+~+,+.+Z.V.M.$@B@d@=@w@>@e@)@h@r@i@(@:@[@1@3@j@6@k@s@8@t@y@l@0@m@u@H.G.F.D.C.I.A.y.v.t.p.m.k.f.b.9.4.[.(.!.;.%. .V P J D y t o j e 0 6 2 [ _ ] ~ ' > - * & % $ # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@J.X.Z.$+-+~+:+|+0+i+o+E+L+J+A@z+u+o+g+9+|+:+^+;+.+Z.T.K.b@%@n@o@-@;@C@'@g@~@r@i@(@:@[@|@2@4@5@6@k@s@8@t@9@y@l@0@m@u@G.F.D.B.A.y.w.t.p.l.h.d.a.6.|.2.{./.&...W Q K E z u o j e 0 6 2 [ _ ^ ~ ' > - * & % $ # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@N.R.+@.+,+(+:+2+9+h+o+u+V+A@v@z+u+q+l+8+|+:+/+;+$+Z.R.L.E@c@B@d@=@w@x@,@'@g@~@r@i@(@_@<@}@|@2@3@j@5@6@k@7@s@8@t@9@l@0@m@H.F.D.B.z.w.t.o.s.g.c.9.4.[.^.'.=.@.Y S M G A v p k f a 7 2 } _ ^ ~ ) > - = & % $ # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@K.V.+@.+-+~+:+|+8+g+s+E+A+v@G+L+u+n+i+9+|+<+]+=+$+`.V.O.#@b@%@&@*@p@q@x@,@f@g@h@r@^@/@(@_@<@[@|@1@2@3@4@j@5@6@7@s@8@t@y@l@m@H.E.B.A.w.t.o.k.f.j.7.|._.!.;.$.` T N H B w q l g b 7 3 } _ ^ ~ ) > - = & % $ # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@Q.V.Z..+>+~+:+1+d+m+o+u+D+U+F+L+u+n+l+b+|+Q+!+,+.+Z.R.N.@@E@$@B@n@o@p@q@x@,@'@)@h@{@]@^@/@(@_@:@<@}@|@1@2@3@4@j@5@6@k@s@t@y@0@u@F.C.A.w.r.m.i.d.9.4.<.].,.&...V P J C x r m h c 8 4 | : / { ) , ; = & % $ # @ + + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@Q.V.Z.#+*+^+}+|+d+x+o+u+V+I+U+z+u+r+k+c+1+:+^+,+.+Z.T.N.F@G@E@c@B@d@o@-@q@x@C@'@)@!@h@{@]@^@i@(@(@_@:@<@[@}@|@1@2@3@j@5@k@s@t@l@m@F.C.z.v.q.l.g.j.6.}.(.).=.@.X Q K E y s n h c 8 4 | : / { ) , ; = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@L.T.Z..+>+!+:+|+d+x+p+u+z+H+M+F+A+K+o+i+8+|+:+_+,+.+Z.V.O.K.M.J.J.P.J.P.P.L.P.K.P.O.L.N.K.L.Q.P.K.N.Q.K.P.L.Q.N.L.Q.Q.Q.O.J.Q.Q.Q.O.L.O.P.Q.P.L.L.L.3.:.~.>.$.Z T M F z u o i d 9 5 1 < / { ! , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@O.W. +.+;+(+:+3+d+x+o+u+z+H+M+T+v@V+u+n+g+9+3+}+^+,+#+Z.T.W.W.W.T.T.R.T.T.T.W.V.R.T.T.W.T.V.T.T.S.W.W.T.R.T.R.T.R.R.T.V.T.Y.V.R.W.T.V.R.T.T.X.W.R.Q.6.[.^.,.&. .U N H A v p j e 0 5 1 < ( ] ! , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@P.T.Z.$+,+~+<+1+e+i+o+u+z+H+T+S+H@v@C+u+p+k+b+|+<+!+=+@+Z.Z.Z.Z.`.+@Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.+@Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z. +Z.Z.Z.Z.Z.Z.Z.U.L.8.1._.).=.+.W P I C w q k f a 6 2 [ ( ] ! ' ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@J.R.Z..+,+^+:+|+c+h+o+u+C+I+M+S+S+M+v@L+u+r+h+b+2+t+~+;+.+.+.+++.+.+.+@+.+.+.+.+.+.+&+++.+$+&+$+.+.+.+$+#+$+$+++.+.+$+.+&+.+#+#+&+.+.+.+.+&+.+Z.T.O.a.4.:.~.;.#.Y Q K D x r l g a 7 2 [ _ ] ! ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@N.T.Z..+*+!+:+|+0+i+o+u+L+H+M+S+Y+S+N+A@V+u+o+g+8+|+:+]+*+-+'+-+-+>+;+,+-+,+*+;+,+,+*+=+;+'+)+>+*+,+=+=+)+>+*+)+'+*+;+,+;+,+=+'+=+>+>+,+)+'+.+Z.T.O.b.6.[.].>.$.Z S L E y s m g b 7 3 } _ ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@J.R.Z.$+)+]+:+|+d+h+o+u+L+F+M+I@J@K@S+M+F+z+u+q+i+a+|+}+{+~+]+!+~+^+~+^+(+~+{+^+~+^+!+{+]+^+~+~+(+~+]+{+]+/+~+]+/+!+^+~+~+!+(+_+~+_+(+/+{+;+.+Z.R.N.d.8.|.^.,.&.` T M F y t n h c 8 3 } _ ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@K.W.+@.+=+^+:+|+d+h+o+u+B+A@M+S+L@M@J@S+T+v@z+u+o+j+9+|+:+:+<+:+:+:+:+:+:+:+:+:+}+:+:+:+}+f+<+:+:+:+:+:+:+:+:+<+:+:+[+:+t+:+:+:+:+<+:+:+^+,+.+Z.R.O.f.0.1._.).*...U N G z u n i c 8 4 } : ^ ~ ' > - * & % # # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@M.T.Z.++'+~+:+|+d+k+n+u+L+A@ @S+N@O@P@Q@S+M+H+A+u+s+j+b+3+|+|+5+2+|+|+5+3+3+2+|+|+|+2+|+|+1+6+4+6+3+1+|+|+|+1+3+|+|+1+2+|+|+|+1+2+|+|+<+^+;+.+ +T.K.g.a.4.2.).=...V O G A u o i d 9 4 | : ^ ~ ) > - * & % # # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@K.T.Z.@+;+~+:+1+0+k+o+u+D+I+ @S+L@R@S@T@J@S+T+U+A+z@p+m+d+e+e+b+c+d+8+9+0+e+a+9+b+b+d+d+d+e+9+d+b+a+9+d+d+e+b+9+b+9+9+8+a+8+e+9+b+8+|+P+/+*+.+Z.X.Q.h.j.4.:.!.=.+.V O H A u o i d 9 4 | : ^ ~ ) > - * & % # # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@K.R. +.+'+]+:+|+b+x+o+u+z+H+M+S+J@U@V@W@T@N@S+M+F+B+u+q+h+j+j+m+h+g+k+x+g+h+h+m+g+g+k+l+x+i+i+l+h+g+x+h+j+h+j+k+k+m+x+g+m+h+g+m+x+9+2+:+!+'+.+Z.T.M.h.j.5.:.~.-.+.W O H A v o i d 9 4 | : / ~ ) > - * & % $ # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@L.W.Z.%+;+^+[+|+b+h+p+u+D+A@M+S+L@X@Y@Z@Y@O@J@S+M+J+A+u+o+o+p+o+o+o+o+n+o+o+o+o+o+o+o+n+o+o+o+o+o+o+o+p+o+o+n+o+n+o+o+o+o+o+o+o+x+b+|+:+/+-+.+Z.V.J.h.j.5.:.!.-.+.W O H A v o i d 9 4 | : / ~ ) > - * & % # # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@O.W.Z.#+,+{+[+|+d+h+q+u+A+I+M+S+J@P@`@S@M@J@S+ @U+z+u+o+i+k+j+j+j+j+m+j+j+k+j+i+m+l+g+i+g+h+h+g+h+h+x+g+x+m+i+i+l+m+h+j+k+l+x+x+l+c+|+:+~+-+.+Z.U.M.h.j.4.:.!.=.+.V O H A u o i d 9 4 | : ^ ~ ) > - * & % # # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@N.T.+@.+;+!+:+|+9+m+o+u+z+F+ #S+J@T@.#O@J@S+M+H+V+u+p+g+b+8+9+b+0+9+8+e+d+c+b+c+d+b+d+b+8+b+b+b+b+9+b+b+b+b+c+b+b+8+c+b+b+d+b+9+b+9+|+<+(+-+.+Z.R.Q.g.a.4.2.).=...V O G A u o i d 8 4 | : ^ ~ ) > - * & % # # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@M.W.Z..+-+{+:+|+9+h+p+u+z+F+M+S+J@T@+#J@`+@#U+z+u+o+k+b+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+1+1+2+|+|+|+|+|+|+|+3+|+|+|+|+|+|+:+~+*+++Z.R.L.e.9.1._.'.*. .U N G z t n h c 8 3 } : ^ ~ ' > - * & $ # # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@Q.U.Z.$+-+~+:+3+b+i+o+u+B+J+M+S+##M@J@Z+ @I+B+u+n+k+b+|+<+}+}+}+:+:+<+:+:+t+:+:+:+:+:+:+:+:+[+}+<+<+:+:+P+:+<+[+<+[+:+<+:+[+:+:+:+:+:+:+{+-+#+D@T.Q.d.8.|.^.,.&.` T M F y t n h c 8 3 } _ ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@N.U.Z..+;+~+:+3+d+l+o+u+L+A@T+I@J@J@S+ @v@L+u+n+h+9+|+[+~+]+/+^+/+~+^+!+]+!+^+~+~+{+~+^+!+(+]+!+!+]+^+]+/+{+~+(+{+~+^+]+(+{+^+{+^+(+~+(+_+,+#+`.V.N.j.5.<.{.>.$.Y R K D y s m g b 7 3 } _ ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@L.U.+@.+'+{+:+|+0+h+o+u+B+F+M+I@Y+S+H@G+z+u+q+j+8+|+<+]+,+=+-+-+*+)+-+-+*+'+*+;+,+*+,+)+-+-+,+,+*+,+'+,+>+>+*+;+,+;+=+*+'+,+*+-+-+,+;+,+=+-+.+Z.T.K.0.3.2.!.-.@.X Q J C x r l f a 6 2 [ ( ] ! ' > - * % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@L.W.Z.&+*+!+}+|+b+i+o+u+z+J+M+I@S+N+A@z+u+$#j+b+|+:+{+>+#+@+%+.+$+%+$+&+.+.+.+.+$+.+#+.+.+.+++++.+.+.+$+++.+.+.+.+.+.+.+.+.+.+.+.+.+#+++.+.+.+Z.R.Q.7.|.(.'.*...V O H B w q k e 0 6 1 [ ( ] ! , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@N.X.`.#+=+]+}+|+8+k+o+u+A+G+@#S+N+A@V+u+o+k+8+|+:+]+=+#+ +Z. +Z.Z.Z.Z.Z.Z.Z.Z.%#Z.Z.Z.`.+@Z.`.Z.Z.Z. +Z.&#+@+@`.Z.`.+@ +`.Z.Z.Z.Z.Z.Z. +Z.Z.Z.Z.W.P.4.<.{.>.$.` T M G z u o j d 9 5 1 < ( { ! , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@P.T.Z.#+=+^+:+1+b+l+o+u+D+A@ @N+U+z+u+q+j+b+|+:+]+>+%+Z.T.S.S.R.R.S.U.T.W.V.R.V.R.V.V.R.T.T.T.W.Y.V.S.R.S.X.T.V.W.T.T.R.U.V.T.R.R.R.T.W.T.R.W.T.Y.Q.|.(.).=.@.X R K E y t n h c 9 4 | : / { ) , ; = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@Q.V.Z..+,+/+<+1+a+g+n+u+z+I+M+v@B+u+p+g+8+|+[+^+*+.+Z.V.L.K.P.J.Q.L.P.M.K.Q.Q.N.O.M.L.Q.O.K.P.O.Q.P.N.P.Q.L.N.M.P.Q.O.N.M.Q.K.Q.K.M.L.O.J.J.M.J.O.M.:.{./.%. .V O I C x r l g b 8 3 } : ^ ~ ) , ; = & % $ # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@M.T.Z..+'+^+:+|+9+m+p+u+B+J+G+L+*#o+i+9+|+t+~+*+&++@T.Q.E@$@B@d@=@-@;@C@'@)@h@r@^@/@(@:@[@|@1@3@4@j@5@6@k@7@s@8@9@y@l@m@u@G.E.B.A.x.t.p.l.h.c.9.4.[.^.'.=.@.Y S M G A v p k f a 6 2 } _ ^ ~ ' > - = & % $ # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@L.V.Z.$+-+^+:+|+b+m+n+u+z+A@G+z+u+O+g+9+|+:+/+=+.+Z.V.K.b@%@n@o@-@;@C@'@g@~@r@i@(@:@[@|@2@4@5@6@k@s@8@t@9@y@l@0@m@H.G.F.D.B.A.y.v.r.o.l.h.d.0.6.|.2.~.>.&...W Q K E y t o j e 0 6 2 [ ( ] ~ ' > - * & % $ # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@P.W.Z.++,+~+}+1+9+h+O+u+L+J+v@z+u+s+k+b+|+}+~+-+.+`.T.Q.%@&@o@-@;@C@'@!@{@^@(@_@[@1@3@j@6@7@8@t@y@l@0@u@H.G.F.E.D.C.I.A.y.x.v.r.p.m.k.g.c.0.6.|.:.].,.=.@.Z T N H C x s m h c 9 5 1 < ( ] ! ' > - * & % $ # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@K.R.Z.$+,+/+}+|+e+h+p+u+C+J+U+L+u+o+j+8+|+:+!+=+.+Z.X.J.&@*@p@q@C@'@!@{@^@(@<@|@3@j@k@s@t@y@0@u@H.F.E.D.C.I.A.z.y.x.w.u.t.q.o.m.s.h.e.b.9.6.1.:.^.).;.%. .W Q L F A v q l g b 8 4 | < / { ! , ; - * & $ # # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@P.R.Z..+-+]+<+|+9+i+o+E+B+A@A@A+u+n+x+0+|+<+]+,+.+Z.V.L.d@=@w@>@'@g@{@i@(@[@1@4@6@s@9@l@m@G.F.D.B.I.z.y.x.w.v.u.r.q.p.o.m.l.k.h.e.c.a.8.5.|.:.^.!.>.&.+.Y T N I D y t o j f a 7 3 } : / { ) , ; = * & $ # # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@P.T.Z..+-+^+:+1+9+i+n+u+L+J+A@z+u+O+x+b+|+:+_+>+.+Z.T.P.*@-@x@,@)@~@^@(@<@1@4@k@8@y@m@H.E.C.I.z.y.w.v.t.r.q.p.o.n.m.s.k.i.g.e.c.j.0.7.4.|.:.(.~./.=.#. .W R L G B x s n i e 0 6 2 } : ^ { ) , ; = * % $ # # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@N.T.Z..+'+~+:+|+8+k+o+u+L+A@F+z+u+O+x+8+|+}+/+-+$+D@R.O.=@w@>@'@!@r@/@:@|@3@6@8@y@m@G.D.B.A.y.w.u.r.q.p.n.m.l.s.k.i.h.f.e.c.b.a.9.6.4.|.<._.{.'.;.&.+.Z U P K F A w r m h d 0 6 2 } _ ^ { ) , ; = * % $ # # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@L.T.Z..+,+~+:+|+b+l+o+=#D+J+F+z+u+O+h+e+|+t+~+-+.+Z.W.L.p@;@,@)@~@i@_@}@3@6@8@y@u@F.C.A.y.v.t.q.o.n.l.s.k.h.g.f.e.d.c.b.a.0.8.6.4.1.}.:.(.{.).>.*.#. .W R N I D y u q l h c 9 5 2 [ _ ^ ~ ) , ; = * % $ # # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@O.T.Z..+)+!+:+|+b+g+o+v+D+I+I+z+u+$#j+8+|+[+(+,+.+Z.R.N.-@x@e@!@r@/@:@1@j@7@9@0@G.D.I.y.v.t.p.n.m.s.i.h.g.f.d.c.b.j.a.0.9.7.6.4.1.}.:._.].!.,.-.%.+.Z V Q M H C y u p l g c 9 5 1 [ _ ^ ~ ) , ; = * & $ # # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@O.R.Z..+)+]+<+|+e+k+o+u+A+H+v@z+u+s+x+8+|+P+/+,+.+Z.V.K.q@C@f@h@]@(@[@2@6@8@l@u@E.B.y.v.t.p.n.l.k.h.g.e.d.c.b.j.a.9.8.7.6.5.3.|.}.:._.^.~.'.>.*.$...Y U P L G C y t p k g c 9 5 1 [ _ ^ { ) , ; = * & $ $ # @ + + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@N.T.Z.++>+~+:+2+e+m+r+u+L+J+v@L+u+p+l+9+|+:+!+)+++Z.U.N.q@C@)@~@^@_@}@4@k@t@0@G.C.A.x.u.q.n.l.k.h.f.e.c.b.j.a.0.9.8.7.5.4.3.|.}.<.2.(.{.!.,.;.&.#. .X T P K G B y t p k g c 9 5 2 [ _ ^ { ) , ; - * & % $ # @ + + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@P.T.Z.#+-+]+:+1+b+x+o+E+C+U+U+z+*#r+j+8+|+:+/+-+.+Z.U.L.;@,@)@~@i@_@|@4@k@9@m@F.C.z.w.t.p.n.s.i.g.e.d.b.j.a.0.9.8.7.6.5.3.1.|.[.:.2.^.{.).,.;.&.#. .X T P L G C y u p l h d 0 6 2 } : / { ! ' > - * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@J.T.Z..+'+(+<+|+b+k+p+u+C+J+I+z+u+r+m+b+|+}+^+-+.+Z.T.Q.;@,@)@{@i@:@|@j@7@9@m@F.B.y.v.r.o.m.k.h.f.e.c.b.a.0.9.8.7.6.5.4.3.|.}.[.:._.^.{.)./.;.&.#. .Y U P L H C y u q m h d 0 6 3 } : / ] ! ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@M.T.Z.$+-+]+:+|+9+m+o+u+z+F+G+z+u+p+i+b+|+:+/+=+.+Z.T.K.;@,@)@~@i@_@|@4@k@9@m@F.C.z.w.t.p.n.s.i.g.e.d.c.j.a.0.9.8.7.6.5.4.3.|.}.<.2.(.].~.'.>.=.$.+.Z V R N I E z w r n j e a 8 4 | < ( ] ~ ) > ; = * % $ # # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@L.W. +.+'+!+:+|+8+j+n+u+V+I+A@z+u+p+h+8+2+:+!+'+$+Z.T.K.q@C@)@~@^@_@}@4@k@t@0@G.C.A.x.u.q.n.l.k.h.f.e.d.b.j.a.0.9.8.7.6.5.4.3.|.}.<.2.(.{.).,.-.&.#. .X T O K G B x t o k g c 9 5 1 [ _ ^ { ) , ; = * & % $ # @ + + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@P.T.Z..+,+!+:+|+c+h+$#u+z+I+G+L+u+o+m+b+|+:+{+,+$+`.T.M.q@C@f@h@]@(@[@2@6@8@l@u@E.B.y.v.t.p.n.l.k.h.g.e.d.c.b.j.a.0.9.8.7.6.5.3.1.}.<.2.^.{.)./.=.%.+.Z V R M I D y v q m h d 0 6 3 } : / { ! ' > - * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y G O W @.>.^.1.a.i.r.I.u@N.U.Z.#+-+^+}+3+b+g+o+u+L+A@F+A+u+o+h+b+|+[+~+-+$+Z.T.L.-@x@e@!@r@/@:@1@j@7@9@0@G.D.I.y.v.t.q.o.m.s.k.h.g.f.e.d.c.b.j.a.0.9.8.6.5.3.|.[.:.(.{.)./.=.$...Y T P K G B x t o j f b 8 4 1 < ( ] ~ ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y G N W @.>.^.1.a.i.r.I.u@P.T.Z..+,+{+<+|+8+j+r+u+C+U+G+z+u+n+m+8+|+<+(+,+.++@R.J.p@;@,@)@~@i@_@}@3@6@8@y@u@F.C.A.y.v.t.q.o.n.l.s.k.i.h.g.f.e.d.c.b.j.a.0.8.6.4.1.}.:.(.{.).>.*.#. .W S N I D z v q l h d 0 6 2 [ _ ^ { ) , ; = * & $ # # @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y G N W @.>.^.1.a.i.r.I.u@P.W.Z..+)+~+:+|+e+i+O+u+z+F+G+z+u+o+k+8+|+}+(+>+.+Z.T.N.=@w@>@'@!@r@/@:@|@3@6@8@y@m@G.D.B.A.y.w.u.t.q.p.o.n.m.l.s.k.i.h.g.f.e.d.b.a.9.7.5.1.[.2.].).>.*.#.` V R M H C y t o j f a 7 3 | < / ] ! ' > - * & % $ # @ + + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y G N W @.>.^.1.a.i.r.I.u@P.T.Z.$+*+~+:+2+e+k+o+E+L+v@A@z+u+q+h+8+|+<+~+*+.+Z.T.Q.*@-@x@,@)@~@^@(@<@1@4@k@8@y@m@H.E.C.I.z.y.w.v.u.t.r.q.p.o.n.m.l.s.k.i.h.f.d.b.a.9.6.3.}.2.].).>.&.@.Z U P K E z v q l h c 9 5 1 [ _ ^ ~ ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y F N V @.>.].|.0.h.q.A.H.P.V.Z..+=+~+:+|+b+h+o+u+z+I+v@z+u+p+h+8+|+:+{+)+.+Z.T.N.d@p@q@C@'@!@{@i@_@[@1@4@6@s@9@l@u@G.F.D.B.I.A.z.x.x.w.v.u.t.r.q.p.o.n.m.s.i.g.e.b.a.8.4.|.:.^.).>.&.+.Y S N I C y t o j e a 7 3 } : / { ) , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y F N V @.>.].|.0.h.q.A.H.P.S.Z..+'+~+:+|+0+h+o+z@z+v@v@L+u+o+h+b+|+:+]+=+.+Z.T.Q.&@*@-@;@C@f@!@{@i@(@<@|@3@5@k@s@t@y@0@u@H.F.E.D.C.B.B.I.A.z.y.x.w.v.u.r.q.o.m.s.h.e.b.0.6.1.<.^.).;.%...W R L G A w q l h c 8 4 1 < ( ] ! ' > - * & % $ # @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 a f l s y F N V @.;.].|.0.h.q.A.H.J.W.Z.&+*+/+[+|+e+x+o+u+V+U+F+L+u+s+i+b+|+}+^+>+#+Z.S.O.%@n@o@-@;@,@f@!@{@^@(@:@[@1@3@j@6@7@8@t@y@l@0@m@u@H.G.G.F.E.D.C.B.I.A.y.x.v.t.p.n.s.h.d.a.7.3.<.^.).-.$.` U P J D y t o j e 0 6 2 [ _ ^ ~ ' > - = & % $ # @ + + + . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l s y F N V +.;.].|.0.h.q.z.H.P.T.Z.$+-+^+<+|+d+x+n+u+z+v@v@A+K+q+l+b+|+:+~+,+#+Z.T.P.c@B@d@=@w@x@,@f@!@~@]@/@(@:@}@1@2@4@5@6@k@7@s@8@t@9@y@l@l@0@m@u@H.G.F.D.C.I.y.w.t.p.m.i.e.j.8.3.<.].'.=.@.Y S M G A w q l g b 8 3 } : / { ) , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l s y F N V +.;.].|.0.h.q.z.H.K.T.Z..+*+/+:+|+b+m+o+z@V+A@G+z+u+q+l+9+|+}+!+*+.+Z.U.J.b@%@&@*@p@w@x@,@f@g@~@r@^@(@_@:@[@|@1@2@4@j@5@6@6@k@7@s@s@8@t@9@y@l@0@u@H.F.C.I.y.v.r.n.k.f.j.7.1.2.{./.&...V P J D y s n i d 9 5 1 < ( ] ! , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l r y F N V +.;.].}.9.g.p.z.G.M.R.Z.$+>+]+:+|+8+h+o+v+L+G+ @I+L+u+o+k+9+|+}+{+>+.++@R.Q.N.N.Q.P.O.M.L.P.M.K.Q.M.O.P.N.K.J.N.L.M.O.P.Q.M.K.P.Q.Q.Q.O.L.K.N.P.N.K.O.J.K.J.O.L.O.L.J.J.K.P.J._.!.;.#.Z S M G A v p k e a 6 2 [ _ ] ~ ' > - * & % # # @ + + . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / : 1 5 0 f l r y F M V +.;.{.}.9.g.p.z.G.N.T.+@++)+]+:+1+0+x+p+u+B+I+M+M+U+A+u+r+j+c+|+:+_+,+++Z.Y.T.T.Y.S.T.W.T.T.S.S.W.W.T.T.T.W.R.W.R.V.T.T.S.W.U.R.T.V.R.U.R.S.W.S.T.T.T.T.R.T.W.U.T.W.R.T.T.T.N.[.^.,.*...V P I C x r l g b 7 3 } _ ^ ~ ) > - = & % $ # @ + + . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) ~ / : | 5 0 f l r y E M U +.-.{.}.9.g.o.y.F.J.X.Z.++,+~+:+|+8+k+p+E+z+v@M+I@M+v@z+u+p+g+b+|+:+(+*+.+Z.Z.`.Z.Z.Z.Z.Z.Z. +Z.Z.Z.Z.Z.Z.+@Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z. +Z. ++@Z.Z.Z.Z.Z.Z.Z.Z.Z.U.P.1.2.!.;.#.Y R L E y t n h c 8 4 | : / { ) , ; = & % $ # @ + + . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) ~ / : | 5 0 e k r y E M U ..-.~.[.8.f.o.x.F.L.X.Z..+-+{+:+|+b+i+o+u+L+G+M+I@S+ @F+V+u+o+l+8+|+:+/+*+.+@+#+.+#+.+#+.+.+.+.+.+.+++.+.+.+$+@+.+.+&+.+.+.+.+.+.+++&+.+.+#+#+#+$+.+.+$+++.+.+.+.+.+.+.++@W.P.6.[.^.,.&. .U N G A u p j e 0 5 1 < / { ! , ; = & % $ # @ @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ~ ^ : | 5 0 e k q x D L T .=.~.<.7.e.n.w.D.K.U. +#+,+/+:+2+a+m+o+u+z+v@ @S+N@S+M+G+z+u+n+x+8+|+:+!+;+=+-+;+,+,+;+-+*+,+'+>+*+,+=+>+)+,+-+;+=+*+)+)+,+;+=+,+)+;+,+=+)+>+)+;+-+>+;+,+-+;+=+)+;+;+#+Z.V.P.9.1._.).=.+.W P I B w q k f a 6 1 [ ( ] ! , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ~ ^ : | 4 9 e k q x D L T .*.!.<.7.d.m.v.D.J.S.Z..+'+~+:+2+9+h+O+u+L+v@ @I@S+S+S+T+v@L+u+n+j+b+|+:+~+{+^+]+!+(+^+!+~+(+{+^+^+!+^+{+]+/+!+~+!+!+]+^+(+~+/+!+~+^+~+!+]+^+^+!+^+~+~+~+!+^+~+]+~+=+.+Z.W.P.a.5.<.~.;.#.Y Q K D x r l g a 7 2 [ ( ] ! ' > - * % $ # @ @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ % * - > ' ~ ^ : | 4 9 d j q w C K S ` &.).:.5.c.l.u.B.M.T.Z..+,+_+:+|+8+m+o+z@z+I+M+@#.@@#H@T+T+v@z+u+p+i+b+5+:+:+:+:+[+:+<+:+:+:+:+:+:+:+:+:+:+:+:+[+:+:+:+:+[+:+[+:+:+:+:+:+:+:+:+:+:+<+}+:+:+:+:+:+{+=+.+ +T.N.c.7.}.]./.%.Z S L E y s m g b 7 3 } _ ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ % * - > ' ~ ^ _ } 4 9 d j p w C J R Z &.'.2.4.b.k.t.I.L.T.+@.+*+~+:+2+d+h+q+u+D+H+v@v@A@H+H+H+I+v@H+z+u+q+g+c+|+2+1+1+2+|+|+|+|+|+|+|+|+|+|+|+|+|+4+|+|+3+|+|+3+2+|+|+|+|+|+1+|+3+1+|+|+|+1+6+2+|+|+[+{+,+.+Z.R.K.e.9.|.(.,.&.` T M F y t n h c 8 3 } _ ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + @ @ # $ % * - > ' ~ ^ _ } 3 8 c i o v B I Q Y $.,.(.3.a.i.q.z.M.V.+@%+,+^+<+|+a+j+n+u+V+z+z+z+z+A+z+z+z+L+z+z+z+E+o+x+b+d+9+8+b+a+8+a+8+b+9+8+9+9+0+9+b+c+9+d+8+9+e+e+c+a+9+8+b+0+c+0+0+b+9+0+9+8+d+9+0+d+|+[+_+=+#++@T.N.f.9.1._.'.*. .U N G z t n h c 8 3 } _ ^ ~ ' > - * & $ # # @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % * = ; ' ! ] _ } 3 8 c i o u A H P X #.>.^.|.9.g.o.x.J.S.Z..+)+!+:+|+b+h+o+u+u+u+W+u+u+u+u+K+u+u+u+u+u+*#u+p+h+j+x+i+h+x+g+g+h+h+k+g+h+g+j+x+g+h+l+k+g+x+h+j+i+m+m+x+m+h+g+i+k+k+k+h+x+m+m+x+h+e+|+:+/+=+$+Z.T.P.f.0.3._.).*...U N G z u n i c 8 4 } : ^ ~ ' > - * & $ # # @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % * = ; ' ! ] ( [ 3 7 b h n t z G O W @.;.{.[.8.e.m.v.P.W.Z..+'+_+}+1+a+j+p+n+o+s+q+r+o+o+q+q+q+o+q+o+o+q+p+p+p+p+o+o+o+o+n+s+o+o+o+o+o+o+o+o+o+o+p+n+n+q+o+o+q+o+q+o+n+o+n+q+q+o+q+o+n+o+o+o+m+b+|+}+{+'+.++@T.J.f.0.3._.).*...U N G z u n i c 8 4 } : ^ ~ ' > - * & $ # # @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ! ] ( [ 2 7 b g m s y F M U ..=.!.:.5.c.k.r.L.X.Z..+'+{+:+|+d+h+l+j+h+j+g+i+l+m+i+j+i+i+h+h+g+h+k+k+x+x+m+l+i+j+x+i+x+k+k+h+h+j+k+x+g+g+m+g+m+j+m+x+g+m+j+i+l+j+i+x+g+k+x+i+m+h+m+i+i+c+|+:+{+=+-#Z.T.Q.f.0.3._.).*...U N G z u n i c 8 4 } : ^ ~ ' > - * & $ # # @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ! { ( < 1 6 a f l r y E L S ` &.'._.3.a.h.o.O.W.Z.#+)+]+:+|+0+b+c+d+b+8+c+8+b+8+b+d+9+9+b+9+0+b+e+b+b+8+b+b+b+b+b+8+b+c+9+b+b+d+b+8+b+b+a+9+b+b+8+b+e+9+e+9+b+b+8+9+8+b+b+b+b+b+b+b+9+b+|+:+]+;+#+ +U.L.e.9.1.(.'.&. .U M F z t n h c 8 3 } _ ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ) { / < 1 5 0 e k q w C J R Y $./.].}.8.e.l.J.S.Z.-#-+(+:+2+|+|+|+|+|+|+|+2+|+|+1+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+3+2+|+|+|+|+|+3+3+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+3+|+|+|+|+|+|+|+[+]+=+.+Z.T.Q.d.8.}.^.,.%.` T M F y t m h b 8 3 } _ ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & * - > ) { / : | 4 9 d j p v B H P W @.-.~.:.5.j.i.N.W.Z.#+-+_+:+:+:+[+}+:+}+}+P+:+}+:+<+:+}+:+[+[+<+P+[+:+:+:+:+P+:+:+:+}+:+:+}+t+f+:+:+}+}+[+:+:+:+[+<+:+:+:+:+:+:+:+:+:+:+<+:+P+:+:+:+[+}+P+}+:+_+,++++@T.O.b.6.[.{.>.$.Z R K E y s m g b 7 3 [ _ ] ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # # $ & * - > ' ~ ^ _ } 3 8 c h n t z G N U .*.'._.1.9.e.N.W.Z.#+-+(+(+!+_+!+(+]+]+]+~+~+!+/+(+{+(+/+{+^+{+]+]+!+]+^+!+{+!+^+~+~+^+]+]+{+{+!+]+]+{+^+~+_+_+~+{+^+]+]+]+~+/+(+{+^+~+/+!+!+~+^+~+/+/+]+^+!+{+,+.+Z.U.M.0.3.2.!.-.@.X Q J C x r l f a 6 2 [ ( ] ! ' ; = * % $ # @ @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ! ] _ [ 2 7 b g l r y D K R Y #.;.{.<.5.j.P.V.Z..+>+=+>+=+>+;+=+,+,+,+=+=+;+,+*+,+=+=+'+,+*+=+>+,+;+>+,+'+;+=+;+'+,+;+)+=+=+'+,+'+,+,+;+,+*+-+*+;+'+,+,+=+'+'+'+*+;+)+;+,+;+,+>+-+'+=+,+,+>+=+#+Z.W.M.7.|.(.'.*...V O H B v p k e 0 6 1 < ( ] ! , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; , ! ] ( < 1 6 0 e k q w B I O V ..*.'.(.|.8.Q.S.Z..+.+#+#+@+++.+++&+.+$+&+&+.+&+#+#+.+$+.+.+.+$+$+$+.+.+$+.+.+++#+++.+.+.+.+.+.+&+.+.+.+++.+.+#+.+.+.+$+.+.+.+.+.+$+.+%+++.+$+++.+.+.+.+.+.+++.+.+Z.T.N.3.:.~.>.$.Z S M F z u o i d 9 5 | < / { ) , ; = & % $ # @ + + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + + @ # $ % & = ; , ) { / < | 4 9 d i o t y F L S Z #.;.~.:.3.J.T.Z. +Z.Z.Z.Z.Z. +Z.Z.D@`.Z.Z.Z.Z.Z.Z.Z.Z.Z.`.+@Z.Z.Z. +Z.Z.Z.Z.Z. + +Z.Z.Z.Z.`.+@+@Z.Z.+@Z. ++@`.Z.Z.&#Z.Z.Z.Z.Z.Z.Z.Z.Z.+@Z.Z.Z.Z.Z.+@`.Z.Z.Z. +Z.Z.W.J.}.^.'.*.+.W Q J D y s m h c 8 3 } : ^ { ) , - = & % $ # @ + + . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ # $ % & = - > ) ~ ^ _ } 3 7 b g l r x C I O V .&./.].<.O.T.V.T.R.R.W.T.T.U.W.T.T.T.V.W.T.X.R.V.V.S.V.U.S.T.V.T.T.T.V.R.V.W.R.W.V.T.S.S.U.U.T.T.U.V.T.V.W.U.W.V.W.T.X.V.V.V.W.R.W.R.V.V.R.T.T.R.T.X.R.T.T.X.V.V.W.O.2.!.;.$.` T N H A v q k f a 7 2 } _ ^ ~ ' > - * & % $ # @ + + . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ # # % & * - > ' ! ] ( [ 2 6 0 e j o u z F L R X +.*.'.].Q.M.M.J.P.O.L.N.Q.K.Q.M.O.Q.L.K.K.K.K.L.P.Q.O.J.J.Q.P.O.M.Q.L.P.P.N.P.L.Q.K.K.N.P.N.K.J.L.M.Q.J.N.O.P.P.J.O.M.L.Q.L.J.N.M.O.J.K.Q.K.O.Q.J.K.M.N.M.K.N.J.N.Q.{./.&...W Q K E y t o i d 0 5 1 < ( ] ! ' > - * & $ # # @ + + . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; , ! { / < | 4 8 c h m r x B H N T Z #.-.'.^.<.3.7.j.e.i.l.o.r.u.x.z.A.B.C.D.E.F.F.G.G.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.G.G.G.G.G.G.G.G.G.G.G.G.F.F.F.F.E.E.D.C.B.I.A.y.x.v.t.p.m.k.g.c.0.6.|.2.{.,.*.+.Y S M G A w q l g b 8 4 | : / { ) , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & = ; , ) ~ ^ _ } 2 6 a e j o u y D J P U ` #.-.'.].:.|.5.9.b.e.h.s.m.o.q.t.u.v.w.x.y.y.z.z.A.A.A.A.A.A.A.A.A.A.A.A.A.A.A.A.A.A.A.z.z.z.z.z.z.z.z.z.z.z.z.y.y.y.y.x.x.w.v.v.t.r.q.o.m.s.i.f.c.a.8.4.}._.~.,.*.@.Z T O I D y t o j e 0 6 2 [ _ ^ ~ ) > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ # $ % & * - > ' ! ] ( < 1 4 9 c g l q v z F K P V ` #.=./.~.(.<.1.5.8.a.c.e.g.i.k.l.m.n.n.o.p.p.p.q.q.q.q.q.q.r.r.r.r.r.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.p.p.p.p.o.o.n.n.m.l.s.i.h.f.d.b.0.7.4.|.:.^.!./.*.@.Z U P J E z v q l g b 8 4 | < ( ] ! ' > - * & % $ # @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ # # $ & * = ; , ) { / : } 2 6 0 e i n s w A F K P U Z @.&.;.'.{.(.:.}.3.5.8.9.a.b.c.d.e.f.f.g.g.h.h.h.h.h.h.h.i.i.i.i.i.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.g.g.g.g.f.f.e.e.d.c.b.j.0.9.7.5.1.}.:.^.~.,.-.%.+.Y U P K F A w r m i d 0 6 2 } _ ^ { ) , ; = * % $ # # @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & = - > ' ~ ] ( < | 4 8 b f j o s x B F K P T X .#.*.>.'.~.^._.:.[.|.3.4.5.6.7.8.8.9.9.0.0.0.0.0.0.0.a.a.a.a.a.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.9.9.9.8.8.8.7.6.5.4.3.1.}.<.2.(.].!.,.;.&.#. .X S O J F A x s n j f a 7 4 | < ( ] ~ ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + + @ # $ % & * - ; , ) { ^ _ [ 2 5 9 c g k o t x A F J N R V Z ..#.&.-./.'.!.{.^.(._.:.<.<.[.}.}.}.|.|.|.|.|.|.1.1.1.1.1.1.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.}.}.}.}.[.[.<.:.:.2._.^.].~.).,.>.=.&.#. .Y U Q N I E A x s o k g c 9 5 1 [ _ ^ { ) , ; - * & % $ # @ + + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; > ' ~ ] ( : | 3 6 0 d g k o s x A D H L P S V Y .@.$.&.=.;.>.,.'.).!.~.~.{.{.].].].].^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.].].].].{.{.~.~.!.).'.,.>.;.=.&.$.@. .Y V S P L H D z w s o k g d 0 6 3 } : ( ] ! ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * - ; , ) ~ ^ ( < | 3 7 0 d g k o s v y B F I L O R U W Y ` ..@.#.$.%.&.*.=.=.-.-.;.;.;.;.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.;.;.;.;.-.-.=.=.*.&.%.$.#.@...` Y W U R O L I F B y v s o k g d 0 7 3 | < ( ^ ~ ) , ; - * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + + @ # # $ % & = - > ' ! { / _ [ 1 4 7 0 d g j n q t x z C F H K M O Q S U V X Y Z ` . .....+.+.+.+.+.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.+.+.+.+.+..... . .` Z Y X V U S Q O M K H F C z x t q n j g c 0 7 4 1 [ _ ^ { ! ' > - = & % $ # # @ + + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * = ; , ' ~ ] / : [ 1 4 7 0 c f i l o r u x z B D G I K L N O P Q R S T T U U V V V V W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W V V V V U U T T S R Q P O N L J I G D B z x u r o l i f c 0 7 4 1 [ : / ] ! ' , ; = * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . + + + @ # # $ % & = - ; , ) ~ ] / : [ 1 4 6 9 b e h j m p r u w y z B D E G H I J K K L M M M N N N N N N O O O O O O O O N N N N N N N N N N N N N N N N N N N N N N M M M M L L L K J J I H G F D C A y x v t r o m j g d b 9 6 3 1 [ : / ] ~ ) , ; - * & % $ # # @ + + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * = - > , ) ~ ] / : [ | 3 5 8 a c f h j m o q s u v x y y z A B C D D E E F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F F F F E E D D C B A z y y x v u s q o m j h f c 0 8 5 3 | [ : / ] ~ ) , > - = * % % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ % & * = - > , ) ~ ] / _ < } 2 4 6 8 a c e g i k l n o q r s t u v w w x x x y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y x x x w w v u t s r q o n l k i g e c a 8 6 4 2 } < _ / ] ~ ) , > - = * & % $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # # $ % & * = ; > ' ) ~ ] / ( : [ | 2 4 6 8 0 b d e g h j k l m n o o p p q q r r r r r s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s r r r r r q q p p o o n m l k j h g e d b 0 8 6 4 2 | [ : ( / ] ~ ) ' > ; = * & % $ # # @ @ + + . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = ; > , ) ~ { ^ ( : < } 1 3 4 6 8 9 a b c e f g g h i j j k k k l l l l l m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m l l l l l k k k j j i h g g f e c b a 9 8 6 4 3 1 } < : ( ^ { ~ ) , > ; = * & % $ $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = - > , ' ! ~ ] ^ ( _ < } | 1 3 4 5 7 8 9 0 a a b c c d d d e e e e e f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f e e e e e d d d c c b a a 0 9 8 7 5 4 3 1 | } < _ ( ^ ] ~ ! ' , > - = * & % $ $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = - ; , ' ) ~ { ] / ( _ < [ } | 2 3 4 5 5 6 7 7 8 8 9 9 0 0 0 0 0 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a 0 0 0 0 0 9 9 8 8 7 7 6 5 5 4 3 2 | } [ < _ ( / ] { ~ ) ' , ; - = * & % $ $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # # $ $ % & * = - ; > , ' ! ~ { ] ^ ( _ : < [ } } | 1 2 2 3 3 4 4 4 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 4 4 4 3 3 2 2 1 | } } [ < : _ ( ^ ] { ~ ! ' , > ; - = * & % $ $ # # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # # $ $ % & * * = - ; > , ' ) ! ~ { ] ^ / ( _ _ : < < [ [ } } } | | | | | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 | | | | | } } } [ [ < < : _ _ ( / ^ ] { ~ ! ) ' , > ; - = * * & % $ $ # # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ @ # $ $ % & & * = - ; ; > , ' ) ! ~ ~ { ] ^ ^ / / ( ( _ _ _ : : : : : : < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < : : : : : : _ _ _ ( ( / / ^ ^ ] { ~ ~ ! ) ' , > ; ; - = * & & % $ $ # @ @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ @ # # $ $ % & & * = - - ; > , , ' ) ) ! ! ~ ~ { { ] ] ] ^ ^ ^ ^ ^ ^ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / ^ ^ ^ ^ ^ ^ ] ] ] { { ~ ~ ! ! ) ) ' , , > ; - - = * & & % $ $ # # @ @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ # # $ $ % % & * * = = - ; ; > > , ' ' ) ) ) ! ! ! ~ ~ ~ ~ ~ ~ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ~ ~ ~ ~ ~ ~ ! ! ! ) ) ) ' ' , > > ; ; - = = * * & % % $ $ # # @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ # # $ $ % % & & * * = = - - ; ; > > > , , , ' ' ' ' ' ' ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ' ' ' ' ' ' , , , > > > ; ; - - = = * * & & % % $ $ # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ # # $ $ $ % % & & * * * = = = - - - - ; ; ; ; ; ; > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ; ; ; ; ; ; - - - - = = = * * * & & % % $ $ $ # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ @ # # $ $ $ % % % & & & * * * * * = = = = = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - = = = = = = * * * * * & & & % % % $ $ $ # # @ @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ @ # # # # $ $ $ % % % % % & & & & & & & * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * & & & & & & & % % % % % $ $ $ # # # # @ @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + @ @ @ @ # # # # $ $ $ $ $ % % % % % % % % & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & % % % % % % % % $ $ $ $ $ # # # # @ @ @ @ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + @ @ @ @ @ @ # # # # # # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # # # # # # @ @ @ @ @ @ + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + @ @ @ @ @ @ @ @ @ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # @ @ @ @ @ @ @ @ @ + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "} +------------------------------------------------------------------------------ +export constant icon = create(GtkImage,xpm_to_pixbuf(e_xpm)) +------------------------------------------------------------------------------ diff --git a/eugtk/examples/examples/icon_I.e b/eugtk/examples/examples/icon_I.e new file mode 100644 index 0000000..f82d72a --- /dev/null +++ b/eugtk/examples/examples/icon_I.e @@ -0,0 +1,544 @@ + +namespace i + +-- exports i:icon + +include GtkEngine.e + +constant i_xpm = { +"130 250 282 2", +" c None", +". c #000000", +"+ c #010100", +"@ c #020200", +"# c #030300", +"$ c #040400", +"% c #050500", +"& c #060500", +"* c #070600", +"= c #080700", +"- c #090800", +"; c #0A0900", +"> c #0B0A00", +", c #0C0A00", +"' c #0D0B00", +") c #0E0C00", +"! c #0F0D00", +"~ c #100E00", +"{ c #110F00", +"] c #120F00", +"^ c #131000", +"/ c #141100", +"( c #151200", +"_ c #161300", +": c #171400", +"< c #181400", +"[ c #191500", +"} c #1A1600", +"| c #1B1700", +"1 c #1C1800", +"2 c #1D1900", +"3 c #1E1A00", +"4 c #1F1A00", +"5 c #201B00", +"6 c #211C00", +"7 c #221D00", +"8 c #231E00", +"9 c #241F00", +"0 c #251F00", +"a c #262000", +"b c #272100", +"c c #282200", +"d c #292300", +"e c #2A2401", +"f c #2B2401", +"g c #2C2501", +"h c #2D2601", +"i c #2E2701", +"j c #2F2801", +"k c #302901", +"l c #312901", +"m c #322A01", +"n c #332B01", +"o c #342C01", +"p c #352D01", +"q c #362E01", +"r c #372E01", +"s c #382F01", +"t c #393001", +"u c #3A3101", +"v c #3C3301", +"w c #3D3401", +"x c #3E3401", +"y c #3E3501", +"z c #3F3601", +"A c #403701", +"B c #423901", +"C c #433901", +"D c #443A01", +"E c #453B01", +"F c #463C01", +"G c #413801", +"H c #473D01", +"I c #483E01", +"J c #4A3F01", +"K c #4B4001", +"L c #4C4101", +"M c #4D4201", +"N c #493E01", +"O c #4E4301", +"P c #4F4301", +"Q c #514501", +"R c #524601", +"S c #534702", +"T c #544802", +"U c #554902", +"V c #3B3201", +"W c #504401", +"X c #574A02", +"Y c #594C02", +"Z c #5A4D02", +"` c #5B4E02", +" . c #5C4E02", +".. c #5D4F02", +"+. c #584B02", +"@. c #5F5102", +"#. c #605202", +"$. c #625302", +"%. c #635402", +"&. c #645502", +"*. c #655602", +"=. c #665702", +"-. c #685802", +";. c #6A5A02", +">. c #6B5B02", +",. c #6C5C02", +"'. c #6D5D02", +"). c #695902", +"!. c #6E5D02", +"~. c #705F02", +"{. c #726102", +"]. c #736202", +"^. c #746302", +"/. c #756302", +"(. c #766402", +"_. c #786602", +":. c #7A6802", +"<. c #7B6802", +"[. c #7C6902", +"}. c #7D6A02", +"|. c #7D6B03", +"1. c #716002", +"2. c #7F6D03", +"3. c #816E03", +"4. c #826F03", +"5. c #847103", +"6. c #857203", +"7. c #6F5E02", +"8. c #776502", +"9. c #7E6C03", +"0. c #877303", +"a. c #897503", +"b. c #8A7603", +"c. c #8C7803", +"d. c #8D7803", +"e. c #796702", +"f. c #887403", +"g. c #8B7703", +"h. c #8E7903", +"i. c #907B03", +"j. c #927D03", +"k. c #937D03", +"l. c #947E03", +"m. c #0B0B0B", +"n. c #0A0A0B", +"o. c #0A0B0A", +"p. c #0B0A0B", +"q. c #0B0A0A", +"r. c #0A0B0B", +"s. c #0A0A0A", +"t. c #101010", +"u. c #100F10", +"v. c #10100F", +"w. c #0F0F10", +"x. c #0F1010", +"y. c #100F0F", +"z. c #151515", +"A. c #151415", +"B. c #1B1A1A", +"C. c #1A1A1B", +"D. c #1A1B1A", +"E. c #1B1A1B", +"F. c #1A1A1A", +"G. c #0B0B0A", +"H. c #20201F", +"I. c #1F1F20", +"J. c #201F20", +"K. c #1F201F", +"L. c #201F1F", +"M. c #1F2020", +"N. c #1F1F1F", +"O. c #867203", +"P. c #252524", +"Q. c #252424", +"R. c #252425", +"S. c #252525", +"T. c #242524", +"U. c #242525", +"V. c #161515", +"W. c #564902", +"X. c #5E5002", +"Y. c #2A2A2A", +"Z. c #2A292A", +"`. c #0F100F", +" + c #2F302F", +".+ c #302F2F", +"++ c #2F2F2F", +"@+ c #30302F", +"#+ c #1A1B1B", +"$+ c #151516", +"%+ c #343535", +"&+ c #343435", +"*+ c #353535", +"=+ c #353434", +"-+ c #353435", +";+ c #353534", +">+ c #302F30", +",+ c #837003", +"'+ c #3A3A3A", +")+ c #393A3A", +"!+ c #3A393A", +"~+ c #393A39", +"{+ c #2F3030", +"]+ c #202020", +"^+ c #968003", +"/+ c #3F3F3F", +"(+ c #675802", +"_+ c #988203", +":+ c #444444", +"<+ c #444445", +"[+ c #9A8303", +"}+ c #444544", +"|+ c #4A4949", +"1+ c #49494A", +"2+ c #2A2B2A", +"3+ c #9C8503", +"4+ c #393939", +"5+ c #494A49", +"6+ c #4F4F4F", +"7+ c #4A4A49", +"8+ c #444545", +"9+ c #403F40", +"0+ c #3A3A39", +"a+ c #2F2F30", +"b+ c #957F03", +"c+ c #9D8603", +"d+ c #3F3E3F", +"e+ c #4F4F4E", +"f+ c #9E8703", +"g+ c #343534", +"h+ c #4E4E4F", +"i+ c #4A494A", +"j+ c #3F3F40", +"k+ c #8F7A03", +"l+ c #978103", +"m+ c #9F8703", +"n+ c #2A2A29", +"o+ c #454544", +"p+ c #4A4A4A", +"q+ c #454444", +"r+ c #403F3F", +"s+ c #A08803", +"t+ c #0F0F0F", +"u+ c #4E4F4E", +"v+ c #998203", +"w+ c #A18903", +"x+ c #4F4E4E", +"y+ c #2A2A2B", +"z+ c #917C03", +"A+ c #A28A03", +"B+ c #494949", +"C+ c #242425", +"D+ c #4E4F4F", +"E+ c #806D03", +"F+ c #A38B03", +"G+ c #454545", +"H+ c #3F4040", +"I+ c #9B8403", +"J+ c #494A4A", +"K+ c #3F403F", +"L+ c #2B2A2A", +"M+ c #A48C03", +"N+ c #1B1B1B", +"O+ c #4F4E4F", +"P+ c #303030", +"Q+ c #1B1B1A", +"R+ c #39393A", +"S+ c #343434", +"T+ c #454445", +"U+ c #151615", +"V+ c #3A3939", +"W+ c #3E3F3F", +"X+ c #40403F", +"Y+ c #2A2B2B", +"Z+ c #151514", +"`+ c #3F3F3E", +" @ c #4E4E4E", +".@ c #141515", +"+@ c #242424", +"@@ c #161516", +"#@ c #404040", +"$@ c #292A2A", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ # # # # # # @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + @ @ @ @ @ @ # # # # # # # # # # # # # # # # # # # # # # # # @ @ @ @ @ @ + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + @ @ @ @ # # # # $ $ $ $ $ % % % % % % % % % % % % % % % % % % $ $ $ $ $ # # # # @ @ @ @ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ @ # # # # $ $ $ % % % % % & & & & & & & & & & & & & & & & % % % % % $ $ $ # # # # @ @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ @ # # $ $ $ % % % & & & & * * * * = = = = = = = = = = = = * * * * & & & & % % % $ $ $ # # @ @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ # # $ $ $ % % & & * * * = = = - - - - - ; ; ; ; ; ; ; ; - - - - - = = = * * * & & % % $ $ $ # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ # # $ $ % % & & * * = = - - ; ; > > > , , , , , , , , , , , , , , > > > ; ; - - = = * * & & % % $ $ # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ # # $ $ % % & * * = = - ; ; > > , , ' ' ) ) ) ! ! ! ! ! ! ! ! ! ! ) ) ) ' ' , , > > ; ; - = = * * & % % $ $ # # @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ @ # # $ $ % & & * = - - ; > , , ' ) ) ! ! ~ ~ { { { { ] ] ] ] ] ] { { { { ~ ~ ! ! ) ) ' , , > ; - - = * & & % $ $ # # @ @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ @ # $ $ % & & * = - ; ; > , ' ) ! ~ ~ { ] ] ^ / / / ( ( ( ( ( ( ( ( ( ( / / / ^ ] ] { ~ ~ ! ) ' , > ; ; - = * & & % $ $ # @ @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # # $ $ % & * * = - ; > , ' ) ! ~ { ] ^ / ( _ _ : : < < [ [ [ [ [ [ [ [ < < : : _ _ ( / ^ ] { ~ ! ) ' , > ; - = * * & % $ $ # # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # # $ $ % & * = - ; > , ' ! ~ { ] ^ / _ : < [ [ } | 1 1 2 2 2 2 3 3 2 2 2 2 1 1 | } [ [ < : _ / ^ ] { ~ ! ' , > ; - = * & % $ $ # # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = - ; , ' ) ~ { ] / ( _ < [ } | 1 2 3 4 5 5 6 6 7 7 7 7 7 7 6 6 5 5 4 3 2 1 | } [ < _ ( / ] { ~ ) ' , ; - = * & % $ $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = - > , ' ! ~ ] ^ ( _ < [ | 1 3 4 5 6 7 8 9 0 0 a a a b b a a a 0 0 9 8 7 6 5 4 3 1 | [ < _ ( ^ ] ~ ! ' , > - = * & % $ $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = ; > , ) ~ { ^ ( : < } 1 3 4 6 8 9 0 b c d e f f g g h h h h g g f f e d c b 0 9 8 6 4 3 1 } < : ( ^ { ~ ) , > ; = * & % $ $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # # $ % & * = ; > ' ) ~ ] / ( : [ | 2 4 6 8 0 b d e g h i j k l l m m m m m m l l k j i h g e d b 0 8 6 4 2 | [ : ( / ] ~ ) ' > ; = * & % $ # # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ % & * = - > , ) ~ ] / _ < } 2 4 6 8 a c e g i j l n o p q r s s s t t s s s r q p o n l j i g e c a 8 6 4 2 } < _ / ] ~ ) , > - = * & % $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * = - > , ) ~ ] / : [ | 3 5 8 0 c e h j l o q r t u v w x y y z z z z y y x w v u t r q o l j h e c 0 8 5 3 | [ : / ] ~ ) , > - = * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . + + + @ # # $ % & = - ; , ) ~ ] / : [ 1 4 6 9 b e h j m p r t v x y A B C D E E F F F F E E D C B A y x v t r p m j h e b 9 6 4 1 [ : / ] ~ ) , ; - = & % $ # # @ + + + . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * = ; , ' ~ ] / : [ 1 4 7 0 c f i l o r u w y G C E H I J K L M M M M M M L K J I H E C G y w u r o l i f c 0 7 4 1 [ : / ] ~ ' , ; = * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + + @ # # $ % & = - > ' ! { / _ [ 1 4 7 0 d g j n q t w z B D H N L O P Q R S T T U U T T S R Q P O L N H D B z w t q n j g d 0 7 4 1 [ _ / { ! ' > - = & % $ # # @ + + + . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * - ; , ) ~ ^ ( < | 3 7 0 d g k o s V y G E I K O W S U X Y Z ` ......... .` Z Y X U S W O K I E G y V s o k g d 0 7 3 | < ( ^ ~ ) , ; - * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; > ' ~ ] ( : | 3 6 0 d g k o s v z C H K O R U +.Z ..@.#.$.%.&.*.*.*.*.&.%.$.#.@...Z +.U R O K H C z v s o k g d 0 6 3 | : ( ] ~ ' > ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + + @ # $ % & * - ; , ) { ^ _ [ 2 5 9 c g k o t w A E N M Q U +. .@.$.&.=.-.;.>.,.'.'.'.'.,.>.;.-.=.&.$.@. .+.U Q M N E A w t o k g c 9 5 2 [ _ ^ { ) , ; - * & % $ # @ + + + . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & = - > ' ~ ] ( < | 4 8 b f j o s w G E J P S X ` @.%.=.).,.!.~.{.].^././././.^.].{.~.!.,.).=.%.@.` X S P J E G w s o j f b 8 4 | < ( ] ~ ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ # # $ & * = ; , ) { / : } 2 6 0 e i n s v A E J P T Y ..$.=.;.'.~.].(._.:.<.[.}.|.|.}.[.<.:._.(.].~.'.;.=.$...Y T P J E A v s n i e 0 6 2 } : / { ) , ; = * & $ # # @ + + . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ # $ % & * - > ' ! ] ( < 1 4 9 c g l q V z E J P U Z @.&.-.,.1.^._.<.}.2.3.4.5.5.6.6.5.5.4.3.2.}.<._.^.1.,.-.&.@.Z U P J E z V q l g c 9 4 1 < ( ] ! ' > - * & % $ # @ + + . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & = ; , ) ~ ^ _ } 2 6 a e j o u y C N P T Z @.*.;.7.].8.<.9.3.5.0.a.b.c.d.d.d.d.c.b.a.0.5.3.9.<.8.].7.;.*.@.Z T P N C y u o j e a 6 2 } _ ^ ~ ) , ; = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; , ! { / < | 4 8 c h m r w G H M S Y @.&.;.7.^.e.|.3.6.f.g.h.i.j.k.l.l.l.l.k.j.i.h.g.f.6.3.|.e.^.7.;.&.@.Y S M H G w r m h c 8 4 | < / { ! , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ # # % & * - > ' ! ] ( [ 2 6 0 e j o u z E K Q X ..%.).7.m.n.o.p.q.r.o.m.r.n.m.r.m.r.o.n.s.n.s.s.r.m.p.n.p.q.r.q.7.).%...X Q K E z u o j e 0 6 2 [ ( ] ! ' > - * & % # # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ # $ % & = - > ) ~ ^ _ } 3 7 b g l r w B I O U ` $.-.!./.r.t.u.t.v.t.w.u.v.x.t.y.u.v.t.t.t.x.t.u.t.t.x.u.t.w.t.o./.!.-.$.` U O I B w r l g b 7 3 } _ ^ ~ ) > - = & % $ # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + + @ # $ % & = ; , ) { / < | 4 9 d i o t y E K R Y @.=.'.].:.p.u.z.z.z.z.z.A.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.t.n.:.].'.=.@.Y R K E y t o i d 9 4 | < / { ) , ; = & % $ # @ + + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; , ! ] ( < 1 6 0 e k q v G I O U .%.;.1._.|.p.t.z.B.C.D.D.E.F.C.F.F.D.D.B.F.C.B.F.F.B.F.B.F.F.z.t.G.|._.1.;.%. .U O I G v q k e 0 6 1 < ( ] ! , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ! ] _ [ 2 7 b g l r x C J Q +.@.=.!./.[.4.n.x.z.F.H.I.J.J.J.J.K.L.H.J.I.M.M.K.N.M.I.J.N.N.F.z.v.s.4.[./.!.=.@.+.Q J C x r l g b 7 2 [ _ ] ! ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # # $ & * - > ' ~ ^ _ } 3 8 c h n t z F M T ` %.;.1.e.2.O.s.w.z.F.K.P.Q.R.P.S.R.S.S.S.R.S.S.T.S.U.P.P.Q.M.F.V.t.n.O.2.e.1.;.%.` T M F z t n h c 8 3 } _ ^ ~ ' > - * & $ # # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & * - > ) { / : | 4 9 d j p V G H P W.X.*.'.^.[.4.b.G.t.z.B.L.U.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Z.Y.Y.Y.Y.Y.S.M.F.z.t.o.b.4.[.^.'.*.X.W.P H G V p j d 9 4 | : / { ) > - * & % $ # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ) { / < 1 5 0 e k q v B N Q +.#.-.7.8.9.O.d.n.`.A.F.L.R.Y. +.+ +++++++++++@+++++++.+++Y.P.J.#+$+t.m.d.O.9.8.7.-.#.+.Q N B v q k e 0 5 1 < / { ) , ; = & % $ # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ! { ( < 1 6 a f l r x D K R Z $.;.{.:.3.a.i.n.t.z.B.J.S.Y.++%+%+&+*+=+-+%+;+=+;+=+=+>+Y.S.H.#+z.x.G.i.a.3.:.{.;.$.Z R K D x r l f a 6 1 < ( { ! , ; = & % $ # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ! ] ( [ 2 7 b g m s y E L T .&.,.^.[.,+g.k.r.y.z.B.K.S.Y.++%+'+)+'+'+!+'+'+'+!+~+=+{+Y.S.]+C.z.`.m.k.g.,+[.^.,.&. .T L E y s m g b 7 2 [ ( ] ! , ; = & % $ # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % * = ; ' ! ] ( [ 3 7 b h n t z F O W.X.=.!.(.9.O.h.^+G.w.z.D.L.R.Y.@+-+)+/+/+/+/+/+/+/+/+'+%+ +Y.P.L.E.z.`.m.^+h.O.9.(.!.=.X.W.O F z t n h b 7 3 [ ( ] ! ' ; = * % $ # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % * = ; ' ! ] _ } 3 8 c i o u A H P X @.(+~._.2.f.i._+o.u.z.C.L.U.Y.>+-+)+/+:+:+<+<+:+<+/+'+*+ +Y.S.]+F.z.v.p._+i.f.2._.~.(+@.X P H A u o i c 8 3 } _ ] ! ' ; = * % $ # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + @ @ # $ % * - > ' ~ ^ _ } 3 8 c i o V G I W +.#.).1.:.3.b.j.[+q.t.z.B.I.S.Y.++&+'+/+}+|+|+1+1+:+/+'+&+++2+P.H.D.z.u.o.[+j.b.3.:.1.).#.+.W I G V o i c 8 3 } _ ^ ~ ' > - * % $ # @ @ + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ % * - > ' ~ ^ _ } 4 9 d j p v B N Q Y $.;.].<.,+g.l.3+n.x.z.F.N.U.Y..+-+4+/+:+5+6+6+7+8+9+0+%+a+2+S.H.B.z.v.s.3+l.g.,+<.].;.$.Y Q N B v p j d 9 4 } _ ^ ~ ' > - * % $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ % * - > ' ~ ^ : | 4 9 d j q v B J R Z $.>.^.[.5.d.b+c+o.x.z.F.M.T.Y.++=+'+d+<+5+e+6+1+:+/+'+;+ +Y.S.M.F.z.u.G.c+b+d.5.[.^.>.$.Z R J B v q j d 9 4 | : ^ ~ ' > - * % $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ~ ^ : | 4 9 e k q w C K S ` %.,./.|.6.h.^+f+m.w.z.C.J.S.Y..+g+'+/+<+7+h+6+i+8+j+'+=+a+Y.S.I.F.z.x.p.f+^+h.6.|./.,.%.` S K C w q k e 9 4 | : ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ~ ^ : | 5 0 e k q w C K S ` &.'./.|.O.k+l+m+p.v.z.C.N.R.n+++-+'+/+o+1+6+6+p+q+r+'+;+.+Y.S.N.F.$+u.m.m+l+k+O.|./.'.&.` S K C w q k e 0 5 | : ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) ~ / : | 5 0 e k r x D L T .*.'.(.9.0.i._+s+q.t+z.F.H.S.Y.a+&+)+/+<+i+u+6+7+q+j+'+*+++Y.S.N.B.z.u.p.s+_+i.0.9.(.'.*. .T L D x r k e 0 5 | : / ~ ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) ~ / : | 5 0 f l r x D L T ..*.!.8.2.f.i.v+w+s.x.z.D.M.T.Y..+*+!+/+8+|+x+6+i+q+r+'+=+++y+U.N.C.z.u.o.w+v+i.f.2.8.!.*...T L D x r l f 0 5 | : / ~ ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / : 1 5 0 f l r x E L U ..=.!.8.2.f.z+[+A+q.t.z.B.]+S.Y.a+-+!+/+}+B+h+6+i+}+/+'+g+a+Y.S.I.F.z.t.q.A+[+z+f.2.8.!.=...U L E x r l f 0 5 1 : / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l r x E M U ..=.7.8.2.f.z+[+A+r.u.z.B.K.C+Y.++;+0+/+:+B+D+6+7+:+/+'+%+>+Y.S.K.F.z.v.s.A+[+z+f.2.8.7.=...U M E x r l f 0 5 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l s y E M U ..=.7._.E+a.j.[+F+p.`.z.F.L.Q.n+.+;+~+/+q+|+D+6+p+G+H+)+-+a+Y.S.]+D.z.v.o.F+[+j.a.E+_.7.=...U M E y s l f 0 5 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l s y E M U ..=.7._.E+a.j.[+F+G.`.z.F.I.U.Y.a+*+4+/+:+B+D+6+p+}+/+'+;+>+Y.S.M.C.z.t.n.F+[+j.a.E+_.7.=...U M E y s l f 0 5 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 a f l s y E M U X.=.7._.E+a.j.I+F+G.t.z.C.L.S.Y..+;+)+/+}+J+e+6+p+}+/+'+;+{+Y.S.N.B.z.t.G.F+I+j.a.E+_.7.=.X.U M E y s l f a 5 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y E M U X.(+7._.E+a.j.I+F+r.u.z.B.L.P.Y..+%+'+/+<+|+6+6+p+:+K+'+;+@+L+R.H.D.V.x.G.F+I+j.a.E+_.7.(+X.U M E y s l f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y E M U X.(+7._.E+a.j.I+F+p.t.z.D.H.U.Y.a+=+'+/+}+7+6+6+i+q+K+'+*+a+Y.P.]+F.z.v.n.F+I+j.a.E+_.7.(+X.U M E y s l f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y F M W.X.(+~.e.3.b.k.3+M+m.`.z.N+M.U.Y..+%+!+/+:+B+u+6+7+:+/+'+*+a+y+S.H.C.z.t.G.M+3+k.b.3.e.~.(+X.W.M F y s l f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y F M W.X.(+~.e.3.b.k.3+M+s.t.z.D.]+R.Y.++%+'+/+<+B+6+6+|+:+9+'+&+++Y.S.J.F.z.t.r.M+3+k.b.3.e.~.(+X.W.M F y s l f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y F M W.X.(+~.e.3.b.k.3+M+n.t.z.F.K.S.Y. +&+0+/+}+7+O+6+p+<+j+'+;+P+Y.Q.I.D.z.u.q.M+3+k.b.3.e.~.(+X.W.M F y s l f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+n.x.z.Q+K.S.Y.{+=+)+/+:+7+6+6+B+8+/+'+;+.+Y.S.I.F.$+v.o.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+m.v.z.F.H.S.Y.++&+0+/+:+5+O+6+J+:+j+'+g+a+Y.S.J.F.z.w.m.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+o.t.z.D.]+P.Y.>+&+!+/+q+5+O+6+p+8+K+R+%+++Y.S.J.B.$+v.o.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+n.u.z.C.M.S.Y.++*+'+/+:+B+e+6+i+o+r+'+*+@+L+S.M.F.z.u.n.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+q.t.z.F.M.U.Y.>+*+)+/+q+|+h+6+7+8+/+'+%+@+Y.P.]+F.z.v.m.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+n.t.z.F.I.U.Y. +-+'+/+:+B+6+6+i+}+/+'+S+a+Y.S.N.#+z.`.m.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+o.`.z.F.J.S.Y. +%+0+/+q+5+6+6+p+T+r+'+=+ +Y.S.L.C.z.t.q.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+o.t.z.F.J.U.Y.++&+'+/+:+|+6+6+B+q+j+'+*+ +Y.P.K.#+U+v.o.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+p.t.z.D.H.C+Y..+&+V+/+:+7+6+6+J+q+/+)+g+a+y+S.L.C.z.t.o.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+G.t.z.F.I.C+Y.>+S+R+/+:+p+e+6+1+o+r+'+-+ +Y.S.K.F.z.u.m.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+G.w.z.F.J.S.Y.++%+'+/+:+i+u+6+p+8+/+'+g+ +2+S.I.F.z.t.q.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+q.v.z.F.]+U.Y. +&+V+/+:+p+D+6+p+:+r+'+S+@+2+S.]+D.z.t.o.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+p.t.z.D.K.S.Y.++g+'+/+:+5+u+6+7+o+K+'+&+a+Y.P.J.C.z.x.n.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+r.x.z.F.H.S.Y.++;+'+W+o+|+6+6+B+<+X+'+*+P+Y+P.J.F.z.x.p.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+s.u.z.F.L.U.Y. +=+V+/+q+5+D+6+5+}+/+!+;+a+Y.S.N.D.z.x.o.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+r.u.Z+F.N.P.Y. +S+'+`+T+5+6+6+i+o+r+V+*+@+Y.P.]+D.z.t.q.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+s.x.z.D.M.S.Y. +=+~+/+:+|+O+6+1+:+r+'+%+{+y+S.H.N+z.v.o.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+r.t.z.D.N.T.Z.++-+0+/+}+i+6+6+1+G+/+'+-+{+Y.S.L.C.z.t.n.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+p.t.z.F.J.Q.Y. +g+V+/+:+5+6+6+i+8+r+'+*+++Y.U.]+C.V.u.o.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+r.t.Z+#+H.S.Y.++=+'+/+:+B+6+6+p+8+r+'+;+++Y.C+]+F.z.t.s.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+p.t.z.#+I.T.Y..+=+'+`+<+J+ @6+p+q+X+'+*+.+Y.U.J.D.z.t.o.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+q.`.z.F.]+P.Y. +*+'+/+}+i+O+6+7+<+/+'+S+.+Y.S.H.N+z.x.r.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+G.t.z.F.M.P.Y.++*+R+/+:+|+O+6+p+}+j+'+*+ +Y.P.L.D.z.u.n.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+m.t..@Q+J.Q.Y.++&+'+/+}+J+h+6+p+q+H+'+g+{+L+S.K.B.z.x.r.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+o.t.z.B.I.S.Y.++-+0+/+q+1+6+6+7+}+r+0+%+>+Y.R.M.D.$+y.o.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+r.x.z.D.K.R.Y.++g+~+/+q+1+6+6+J+q+/+)+%+ +Y.C+H.E.V.v.q.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+n.t.z.F.H.+@Y..+*+'+/+<+7+O+6+J+}+/+'+*+a+L+R.J.F.z.x.s.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+q.v.z.D.H.S.Y. +&+!+/+:+1+D+6+i+G+/+'+%+>+Y.S.J.C.z.x.m.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+n.t.z.F.K.U.Y. +&+)+/+:+1+6+6+5+}+K+'+;+.+y+S.J.E.z.t.r.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+m.v.z.F.J.U.Y.++%+!+/+:+J+6+6+i+o+/+0+%+a+Y.R.M.F.$+x.o.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+s.v.z.Q+L.S.Y.++%+!+/+q+5+D+6+p+8+/+'+;+a+Y.R.J.Q+z.u.p.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+r.t.z.C.J.S.Y.++=+V+/+:+J+6+6+7+8+j+'+%+++y+S.M.F.@@t.p.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+s.t.z.B.N.T.Y..+=+)+/+}+B+6+6+J+:+#@'+*+.+y+R.J.B.@@v.q.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+r.t.z.B.H.S.Y.++;+)+/+:+7+ @6+p+8+/+'+-+++Y+S.K.E.$+v.G.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+q.t.z.C.I.S.Y.++S+'+/+q+1+ @6+p+q+j+'+;+ +2+S.]+F.z.t.q.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+o.x.z.F.I.T.Y..+g+0+/+:+J+6+6+J+:+j+'+-+.+Y.P.L.F.z.t.p.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+o.t.z.B.I.P.Y..+S+~+/+}+5+h+6+J+T+r+'+*+@+Y.R.L.B.z.t.m.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+o.v.z.F.M.S.Y.a+*+!+/+:+i+D+6+|+o+r+!+%+a+Y.Q.K.B.z.t.s.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+o.v.z.N+J.P.Y.++S+V+/+:+1+x+6+5+8+r+'+*+@+Y.S.I.C.z.y.o.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+p.x.z.C.L.R.Y.++&+!+/+<+i+h+6+p+:+/+0+g+.+Y+R.N.Q+z.t.m.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+p.v.z.F.J.T.Y.++S+)+/+o+p+6+6+J+G+/+'+-+@+Y.S.]+B.V.v.m.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+s.u.z.F.N.S.Y.++%+)+/+:+7+6+6+p+q+/+'+-+a+Y.S.L.#+z.t.n.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+n.x.z.D.J.C+Y.++=+~+/+<+|+6+6+i+}+/+'+%+>+Y.S.M.N+z.t.p.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+m.x.z.F.K.P.Y.++=+)+/+<+i+O+6+J+T+/+0+%+++2+S.]+C.z.t.G.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+s.x.z.#+L.S.Y.++S+)+/+:+B+x+6+p+8+H+!+%+@+y+S.K.#+z.t.o.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+n.v.z.E.]+Q.Y.++%+'+/+:+B+x+6+p+q+j+'+&+++Y.P.M.N+z.u.m.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+G.x.z.D.J.S.$@++%+'+/+}+J+u+6+i+}+K+'+%+++Y.R.]+#+z.t.n.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+s.v.z.F.]+R.Y. +*+'+/+:+|+D+6+7+}+/+'+*+.+Y.S.J.B.z.x.n.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+p.x.z.F.L.P.Y..+g+R+/+:+J+6+6+p+<+X+0+-+a+Y.S.J.B.z.x.p.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+o.t.z.B.M.R.Y.@+&+'+/+:+i+6+6+J+<+/+'+&+.+Y.P.]+F.z.t.r.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s y F O W.X.(+~.e.3.b.k.3+M+o.t.z.B.M.Q.Y.a+&+'+/+<+5+6+6+7+q+/+'+*+a+Y.S.M.C.z.t+q.M+3+k.b.3.e.~.(+X.W.O F y s m f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y F M W.X.(+~.e.3.b.k.3+M+m.`.z.F.K.U.Y.++-+V+/+:+|+x+6+i+:+r+'+;+a+L+S.H.B.z.v.o.M+3+k.b.3.e.~.(+X.W.M F y s l f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y F M W.X.(+~.e.3.b.k.3+M+G.u.z.F.H.P.$@++&+!+/+:+7+6+6+1+8+/+'+-+a+Y.S.J.C.z.t.s.M+3+k.b.3.e.~.(+X.W.M F y s l f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y F M W.X.(+~.e.3.b.k.3+M+n.w.z.F.H.S.Y..+-+V+/+q+i+6+6+J+8+r+'+-+.+Y.S.]+B.z.v.G.M+3+k.b.3.e.~.(+X.W.M F y s l f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y E M U X.(+7._.E+a.j.I+F+r.t.z.F.N.S.Y.++&+)+/+:+B+O+6+J+T+/+'+%+{+Y.S.L.F.z.w.m.F+I+j.a.E+_.7.(+X.U M E y s l f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s y E M U X.(+7._.E+a.j.I+F+n.t.z.B.K.U.Y.>+*+R+/+:+7+6+6+B+8+r+'+*+{+Y.C+M.D.z.u.q.F+I+j.a.E+_.7.(+X.U M E y s l f a 6 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 a f l s y E M U X.=.7._.E+a.j.I+F+o.t.z.B.M.R.Y.a+=+!+/+:+1+6+6+J+:+/+'+*+.+Y.P.H.F.z.u.o.F+I+j.a.E+_.7.=.X.U M E y s l f a 5 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l s y E M U ..=.7._.E+a.j.[+F+q.v.z.F.H.U.Y.++*+)+/+:+i+6+6+J+o+j+'+*+a+Y.S.]+F.z.t.p.F+[+j.a.E+_.7.=...U M E y s l f 0 5 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l s y E M U ..=.7._.E+a.j.[+F+G.u.z.F.I.P.Y.++%+'+/+T+J+6+6+J+<+K+'+*+ +Y.R.J.B.z.u.p.F+[+j.a.E+_.7.=...U M E y s l f 0 5 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l r x E M U ..=.7.8.2.f.z+[+A+o.u.z.F.K.T.Y.++;+)+/+}+i+h+6+i+G+/+'+-+P+Y.U.L.B.z.u.m.A+[+z+f.2.8.7.=...U M E x r l f 0 5 1 < / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / : 1 5 0 f l r x E L U ..=.!.8.2.f.z+[+A+G.v.z.D.M.S.Y.++S+R+/+:+i+ @6+p+G+/+'+&+.+L+P.N.B.z.t.m.A+[+z+f.2.8.!.=...U L E x r l f 0 5 1 : / { ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) ~ / : | 5 0 f l r x D L T ..*.!.8.2.f.i.v+w+o.x.z.F.M.U.Y.++%+!+/+8+7+x+6+p+}+r+0+;+++Y.U.N.E.z.t.n.w+v+i.f.2.8.!.*...T L D x r l f 0 5 | : / ~ ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) ~ / : | 5 0 e k r x D L T .*.'.(.9.0.i._+s+s.t.z.C.N.U.Y.++S+V+/+:+p+O+6+i+q+K+'+-+ +y+S.J.F.V.t.s.s+_+i.0.9.(.'.*. .T L D x r k e 0 5 | : / ~ ) > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ~ ^ : | 5 0 e k q w C K S ` &.'./.|.O.k+l+m+r.t.z.F.K.S.Y.++&+)+/+:+5+D+6+p+}+j+'+-+.+Y.S.J.B.z.t.q.m+l+k+O.|./.'.&.` S K C w q k e 0 5 | : ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ~ ^ : | 4 9 e k q w C K S ` %.,./.|.6.h.^+f+p.t.z.F.H.U.Y.a+%+)+/+:+1+6+6+1+T+/+'+*+.+y+P.J.Q+z.u.n.f+^+h.6.|./.,.%.` S K C w q k e 9 4 | : ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ % * - > ' ~ ^ : | 4 9 d j q v B J R Z $.>.^.[.5.d.b+c+q.t.z.F.M.P.Y. +;+'+/+}+B+x+6+p+}+/+'+-+P+L+S.H.C.z.t.r.c+b+d.5.[.^.>.$.Z R J B v q j d 9 4 | : ^ ~ ' > - * % $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ % * - > ' ~ ^ _ } 4 9 d j p v B N Q Y $.;.].<.,+g.l.3+o.t.z.D.K.S.Y.++;+~+`+:+i+O+6+5+:+9+'+-+++Y.S.H.#+z.x.o.3+l.g.,+<.].;.$.Y Q N B v p j d 9 4 } _ ^ ~ ' > - * % $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + @ @ # $ % * - > ' ~ ^ _ } 3 8 c i o V G I W +.#.).1.:.3.b.j.[+s.v.z.F.N.S.Y.++%+~+/+o+5+7+p+p+:+/+'+%+ +Y.S.L.F.z.t.m.[+j.b.3.:.1.).#.+.W I G V o i c 8 3 } _ ^ ~ ' > - * % $ # @ @ + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % * = ; ' ! ] _ } 3 8 c i o u A H P X @.(+~._.2.f.i._+m.x.z.F.N.T.Y.{+=+R+/+}+:+:+8+G+T+r+'+*+++2+S.]+D.z.t.q._+i.f.2._.~.(+@.X P H A u o i c 8 3 } _ ] ! ' ; = * % $ # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % * = ; ' ! ] ( [ 3 7 b h n t z F O W.X.=.!.(.9.O.h.^+s.t.z.B.]+S.Y.a+;+'+W+K+K+/+/+/+/+r+'+;+{+Y.S.]+B.z.x.n.^+h.O.9.(.!.=.X.W.O F z t n h b 7 3 [ ( ] ! ' ; = * % $ # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ! ] ( [ 2 7 b g m s y E L T .&.,.^.[.,+g.k.p.t.z.#+H.P.Y.a+S+0+'+'+0+'+'+'+'+'+'+-+.+L+U.]+F.z.x.n.k.g.,+[.^.,.&. .T L E y s m g b 7 2 [ ( ] ! , ; = & % $ # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ! { ( < 1 6 a f l r x D K R Z $.;.{.:.3.a.i.G.v.A.D.K.S.Y.++-+g+-+&+;+=+*+%+*+-+=+*+P+L+R.J.F.z.t.G.i.a.3.:.{.;.$.Z R K D x r l f a 6 1 < ( { ! , ; = & % $ # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ) { / < 1 5 0 e k q v B N Q +.#.-.7.8.9.O.d.p.t.z.Q+I.S.Y.++.+++ + +++++@+>+ +.+a+@+ +2+S.N.F.z.t.r.d.O.9.8.7.-.#.+.Q N B v q k e 0 5 1 < / { ) , ; = & % $ # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & * - > ) { / : | 4 9 d j p V G H P W.X.*.'.^.[.4.b.n.x.z.#+K.R.Y.Y.Y.Y.Y.Y.Y.Y.2+Y.2+y+Y.Y.Y.2+S.I.#+z.t.m.b.4.[.^.'.*.X.W.P H G V p j d 9 4 | : / { ) > - * & % $ # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # # $ & * - > ' ~ ^ _ } 3 8 c h n t z F M T ` %.;.1.e.2.O.o.u.z.F.J.S.P.S.U.S.S.S.R.U.T.U.U.R.R.R.S.S.S.]+F.z.x.G.O.2.e.1.;.%.` T M F z t n h c 8 3 } _ ^ ~ ' > - * & $ # # @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ! ] _ [ 2 7 b g l r x C J Q +.@.=.!./.[.4.G.t.z.D.K.N.H.J.L.L.M.H.L.I.N.H.N.M.M.M.L.J.I.]+E.z.t.p.4.[./.!.=.@.+.Q J C x r l g b 7 2 [ _ ] ! ' > - * & $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; , ! ] ( < 1 6 0 e k q v G I O U .%.;.1._.|.p.t+z.F.N+D.F.F.B.#+F.C.Q+F.Q+C.C.C.F.F.B.B.F.#+C.z.t.G.|._.1.;.%. .U O I G v q k e 0 6 1 < ( ] ! , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + + @ # $ % & = ; , ) { / < | 4 9 d i o t y E K R Y @.=.'.].:.s.t.z.z.z.z.z.V.z.z.z.z.z.z.z.z.$+z.z.z.z.z.z.$+z.U+t.r.:.].'.=.@.Y R K E y t o i d 9 4 | < / { ) , ; = & % $ # @ + + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ # $ % & = - > ) ~ ^ _ } 3 7 b g l r w B I O U ` $.-.!./.n.t.t.t.t.u.v.v.t.x.x.t.u.t.x.u.v.x.t.x.t.`.v.t.t.t.t.s./.!.-.$.` U O I B w r l g b 7 3 } _ ^ ~ ) > - = & % $ # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ # # % & * - > ' ! ] ( [ 2 6 0 e j o u z E K Q X ..%.).7.n.n.G.q.G.p.m.o.r.s.o.p.m.m.n.q.s.n.q.o.o.q.p.G.G.s.o.r.7.).%...X Q K E z u o j e 0 6 2 [ ( ] ! ' > - * & % # # @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; , ! { / < | 4 8 c h m r w G H M S Y @.&.;.7.^.e.|.3.6.f.g.h.i.j.k.l.l.l.l.k.j.i.h.g.f.6.3.|.e.^.7.;.&.@.Y S M H G w r m h c 8 4 | < / { ! , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & = ; , ) ~ ^ _ } 2 6 a e j o u y C N P T Z @.*.;.7.].8.<.9.3.5.0.a.b.c.d.d.d.d.c.b.a.0.5.3.9.<.8.].7.;.*.@.Z T P N C y u o j e a 6 2 } _ ^ ~ ) , ; = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ # $ % & * - > ' ! ] ( < 1 4 9 c g l q V z E J P U Z @.&.-.,.1.^._.<.}.2.3.4.5.5.6.6.5.5.4.3.2.}.<._.^.1.,.-.&.@.Z U P J E z V q l g c 9 4 1 < ( ] ! ' > - * & % $ # @ + + . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ # # $ & * = ; , ) { / : } 2 6 0 e i n s v A E J P T Y ..$.=.;.'.~.].(._.:.<.[.}.|.|.}.[.<.:._.(.].~.'.;.=.$...Y T P J E A v s n i e 0 6 2 } : / { ) , ; = * & $ # # @ + + . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & = - > ' ~ ] ( < | 4 8 b f j o s w G E J P S X ` @.%.=.).,.!.~.{.].^././././.^.].{.~.!.,.).=.%.@.` X S P J E G w s o j f b 8 4 | < ( ] ~ ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + + @ # $ % & * - ; , ) { ^ _ [ 2 5 9 c g k o t w A E N M Q U +. .@.$.&.=.-.;.>.,.'.'.'.'.,.>.;.-.=.&.$.@. .+.U Q M N E A w t o k g c 9 5 2 [ _ ^ { ) , ; - * & % $ # @ + + + . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; > ' ~ ] ( : | 3 6 0 d g k o s v z C H K O R U +.Z ..@.#.$.%.&.*.*.*.*.&.%.$.#.@...Z +.U R O K H C z v s o k g d 0 6 3 | : ( ] ~ ' > ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * - ; , ) ~ ^ ( < | 3 7 0 d g k o s V y G E I K O W S U X Y Z ` ......... .` Z Y X U S W O K I E G y V s o k g d 0 7 3 | < ( ^ ~ ) , ; - * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + + @ # # $ % & = - > ' ! { / _ [ 1 4 7 0 d g j n q t w z B D H N L O P Q R S T T U U T T S R Q P O L N H D B z w t q n j g d 0 7 4 1 [ _ / { ! ' > - = & % $ # # @ + + + . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * = ; , ' ~ ] / : [ 1 4 7 0 c f i l o r u w y G C E H I J K L M M M M M M L K J I H E C G y w u r o l i f c 0 7 4 1 [ : / ] ~ ' , ; = * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . + + + @ # # $ % & = - ; , ) ~ ] / : [ 1 4 6 9 b e h j m p r t v x y A B C D E E F F F F E E D C B A y x v t r p m j h e b 9 6 4 1 [ : / ] ~ ) , ; - = & % $ # # @ + + + . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * = - > , ) ~ ] / : [ | 3 5 8 0 c e h j l o q r t u v w x y y z z z z y y x w v u t r q o l j h e c 0 8 5 3 | [ : / ] ~ ) , > - = * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ % & * = - > , ) ~ ] / _ < } 2 4 6 8 a c e g i j l n o p q r s s s t t s s s r q p o n l j i g e c a 8 6 4 2 } < _ / ] ~ ) , > - = * & % $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # # $ % & * = ; > ' ) ~ ] / ( : [ | 2 4 6 8 0 b d e g h i j k l l m m m m m m l l k j i h g e d b 0 8 6 4 2 | [ : ( / ] ~ ) ' > ; = * & % $ # # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = ; > , ) ~ { ^ ( : < } 1 3 4 6 8 9 0 b c d e f f g g h h h h g g f f e d c b 0 9 8 6 4 3 1 } < : ( ^ { ~ ) , > ; = * & % $ $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = - > , ' ! ~ ] ^ ( _ < [ | 1 3 4 5 6 7 8 9 0 0 a a a b b a a a 0 0 9 8 7 6 5 4 3 1 | [ < _ ( ^ ] ~ ! ' , > - = * & % $ $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = - ; , ' ) ~ { ] / ( _ < [ } | 1 2 3 4 5 5 6 6 7 7 7 7 7 7 6 6 5 5 4 3 2 1 | } [ < _ ( / ] { ~ ) ' , ; - = * & % $ $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # # $ $ % & * = - ; > , ' ! ~ { ] ^ / _ : < [ [ } | 1 1 2 2 2 2 3 3 2 2 2 2 1 1 | } [ [ < : _ / ^ ] { ~ ! ' , > ; - = * & % $ $ # # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # # $ $ % & * * = - ; > , ' ) ! ~ { ] ^ / ( _ _ : : < < [ [ [ [ [ [ [ [ < < : : _ _ ( / ^ ] { ~ ! ) ' , > ; - = * * & % $ $ # # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ @ # $ $ % & & * = - ; ; > , ' ) ! ~ ~ { ] ] ^ / / / ( ( ( ( ( ( ( ( ( ( / / / ^ ] ] { ~ ~ ! ) ' , > ; ; - = * & & % $ $ # @ @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ @ # # $ $ % & & * = - - ; > , , ' ) ) ! ! ~ ~ { { { { ] ] ] ] ] ] { { { { ~ ~ ! ! ) ) ' , , > ; - - = * & & % $ $ # # @ @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ # # $ $ % % & * * = = - ; ; > > , , ' ' ) ) ) ! ! ! ! ! ! ! ! ! ! ) ) ) ' ' , , > > ; ; - = = * * & % % $ $ # # @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ # # $ $ % % & & * * = = - - ; ; > > > , , , , , , , , , , , , , , > > > ; ; - - = = * * & & % % $ $ # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ # # $ $ $ % % & & * * * = = = - - - - - ; ; ; ; ; ; ; ; - - - - - = = = * * * & & % % $ $ $ # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ @ # # $ $ $ % % % & & & & * * * * = = = = = = = = = = = = * * * * & & & & % % % $ $ $ # # @ @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ @ # # # # $ $ $ % % % % % & & & & & & & & & & & & & & & & % % % % % $ $ $ # # # # @ @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + @ @ @ @ # # # # $ $ $ $ $ % % % % % % % % % % % % % % % % % % $ $ $ $ $ # # # # @ @ @ @ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + @ @ @ @ @ @ # # # # # # # # # # # # # # # # # # # # # # # # @ @ @ @ @ @ + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ # # # # # # @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "} +------------------------------------------------------------------------------ +export constant icon = create(GtkImage,xpm_to_pixbuf(i_xpm)) +------------------------------------------------------------------------------ diff --git a/eugtk/examples/examples/icon_P.e b/eugtk/examples/examples/icon_P.e new file mode 100644 index 0000000..15df413 --- /dev/null +++ b/eugtk/examples/examples/icon_P.e @@ -0,0 +1,1041 @@ + +namespace p + +-- exports p:icon + +include GtkEngine.e + +constant p_xpm = { +"184 250 779 2", +" c None", +". c #000000", +"+ c #000100", +"@ c #000200", +"# c #000300", +"$ c #010400", +"% c #010500", +"& c #010600", +"* c #010700", +"= c #020800", +"- c #020900", +"; c #020A00", +"> c #020B00", +", c #030C00", +"' c #030D00", +") c #030E00", +"! c #030F00", +"~ c #041000", +"{ c #041100", +"] c #041200", +"^ c #041300", +"/ c #051400", +"( c #051500", +"_ c #051600", +": c #051700", +"< c #061800", +"[ c #061900", +"} c #061A00", +"| c #061B00", +"1 c #071C00", +"2 c #071D00", +"3 c #071E00", +"4 c #071F00", +"5 c #082000", +"6 c #082100", +"7 c #082200", +"8 c #082300", +"9 c #092400", +"0 c #092500", +"a c #092600", +"b c #092700", +"c c #0A2800", +"d c #0A2900", +"e c #0A2A00", +"f c #0A2B00", +"g c #0B2C00", +"h c #0B2D00", +"i c #0B2E00", +"j c #0B2F00", +"k c #0C3000", +"l c #0C3100", +"m c #0C3200", +"n c #0C3300", +"o c #0D3400", +"p c #0D3500", +"q c #0D3600", +"r c #0D3700", +"s c #0E3800", +"t c #0E3900", +"u c #0E3A00", +"v c #0E3B00", +"w c #0F3C00", +"x c #0F3D00", +"y c #0F3E00", +"z c #0F3F00", +"A c #104000", +"B c #104100", +"C c #104200", +"D c #104300", +"E c #114400", +"F c #114500", +"G c #114600", +"H c #114700", +"I c #124800", +"J c #124900", +"K c #124A00", +"L c #124B00", +"M c #134C00", +"N c #134D00", +"O c #134E00", +"P c #134F00", +"Q c #145000", +"R c #145100", +"S c #145200", +"T c #145300", +"U c #155400", +"V c #155500", +"W c #155600", +"X c #155700", +"Y c #165800", +"Z c #165900", +"` c #165A00", +" . c #165B00", +".. c #175C00", +"+. c #175D00", +"@. c #175E00", +"#. c #175F00", +"$. c #186000", +"%. c #186100", +"&. c #186200", +"*. c #186300", +"=. c #196400", +"-. c #196500", +";. c #196600", +">. c #196700", +",. c #1A6900", +"'. c #1A6A00", +"). c #1A6B00", +"!. c #1B6C00", +"~. c #1B6D00", +"{. c #1B6E00", +"]. c #1B6F00", +"^. c #1C7000", +"/. c #1A6800", +"(. c #1C7100", +"_. c #1C7200", +":. c #1D7400", +"<. c #1D7500", +"[. c #1D7600", +"}. c #1D7700", +"|. c #1E7800", +"1. c #1C7300", +"2. c #1E7A00", +"3. c #1E7B00", +"4. c #1F7C00", +"5. c #1F7D00", +"6. c #1F7E00", +"7. c #1F7F00", +"8. c #208000", +"9. c #208100", +"0. c #1E7900", +"a. c #208200", +"b. c #218400", +"c. c #218500", +"d. c #218600", +"e. c #218700", +"f. c #228800", +"g. c #228900", +"h. c #228A00", +"i. c #208300", +"j. c #228B00", +"k. c #238C00", +"l. c #238D00", +"m. c #238F00", +"n. c #249000", +"o. c #249100", +"p. c #249200", +"q. c #249300", +"r. c #238E00", +"s. c #259500", +"t. c #259600", +"u. c #259700", +"v. c #269800", +"w. c #269900", +"x. c #269A00", +"y. c #269B00", +"z. c #279C00", +"A. c #259400", +"B. c #279E00", +"C. c #279F00", +"D. c #28A000", +"E. c #28A100", +"F. c #28A200", +"G. c #28A300", +"H. c #29A400", +"I. c #279D00", +"J. c #080808", +"K. c #070808", +"L. c #080708", +"M. c #080807", +"N. c #070B06", +"O. c #081007", +"P. c #0A1306", +"Q. c #0B1807", +"R. c #0B1C06", +"S. c #0E2805", +"T. c #103604", +"U. c #134304", +"V. c #165103", +"W. c #195F02", +"X. c #1E7601", +"Y. c #0C0C0C", +"Z. c #0C0C0B", +"`. c #0B0C0C", +" + c #0B0C0B", +".+ c #0B0B0C", +"++ c #0C0B0C", +"@+ c #0B0B0B", +"#+ c #0A0A0A", +"$+ c #090909", +"%+ c #080909", +"&+ c #090F07", +"*+ c #134503", +"=+ c #1B6A01", +"-+ c #100F0F", +";+ c #101010", +">+ c #100F10", +",+ c #0F1010", +"'+ c #0F0F10", +")+ c #0F0F0F", +"!+ c #10100F", +"~+ c #0F100F", +"{+ c #0E0E0E", +"]+ c #0E0E0D", +"^+ c #0D0D0D", +"/+ c #0C1C06", +"(+ c #1E7701", +"_+ c #141413", +":+ c #131414", +"<+ c #141313", +"[+ c #141414", +"}+ c #131413", +"|+ c #141314", +"1+ c #131314", +"2+ c #131313", +"3+ c #131213", +"4+ c #121213", +"5+ c #121212", +"6+ c #121211", +"7+ c #111111", +"8+ c #111010", +"9+ c #0F0E0E", +"0+ c #0E0D0D", +"a+ c #0A0B0A", +"b+ c #090908", +"c+ c #0A1607", +"d+ c #144603", +"e+ c #207F01", +"f+ c #171718", +"g+ c #171817", +"h+ c #181718", +"i+ c #181817", +"j+ c #171818", +"k+ c #181717", +"l+ c #181818", +"m+ c #171717", +"n+ c #161616", +"o+ c #151515", +"p+ c #141415", +"q+ c #0E0F0E", +"r+ c #0C0D0D", +"s+ c #0F2C05", +"t+ c #1C6E01", +"u+ c #259900", +"v+ c #1B1C1C", +"w+ c #1C1B1B", +"x+ c #1B1B1C", +"y+ c #1C1B1C", +"z+ c #1C1C1B", +"A+ c #1B1C1B", +"B+ c #1C1C1C", +"C+ c #1B1B1B", +"D+ c #1B1A1B", +"E+ c #1B1B1A", +"F+ c #1A1A1A", +"G+ c #19191A", +"H+ c #191818", +"I+ c #161617", +"J+ c #101011", +"K+ c #0C0D0C", +"L+ c #0C1F06", +"M+ c #1C6F01", +"N+ c #1F201F", +"O+ c #20201F", +"P+ c #202020", +"Q+ c #201F1F", +"R+ c #1F1F1F", +"S+ c #201F20", +"T+ c #1F1F20", +"U+ c #1F2020", +"V+ c #1E1F1F", +"W+ c #1E1E1E", +"X+ c #1E1D1D", +"Y+ c #1D1C1D", +"Z+ c #1A191A", +"`+ c #191919", +" @ c #111011", +".@ c #0F3104", +"+@ c #218300", +"@@ c #232323", +"#@ c #232423", +"$@ c #232324", +"%@ c #232424", +"&@ c #242423", +"*@ c #242323", +"=@ c #242324", +"-@ c #242424", +";@ c #222223", +">@ c #232222", +",@ c #222222", +"'@ c #212122", +")@ c #222121", +"!@ c #202021", +"~@ c #1E1E1D", +"{@ c #1D1D1D", +"]@ c #181919", +"^@ c #090B07", +"/@ c #175502", +"(@ c #282727", +"_@ c #272827", +":@ c #272728", +"<@ c #272727", +"[@ c #282828", +"}@ c #282827", +"|@ c #272828", +"1@ c #282728", +"2@ c #262726", +"3@ c #262526", +"4@ c #262625", +"5@ c #252525", +"6@ c #232322", +"7@ c #212121", +"8@ c #1C1C1D", +"9@ c #1A1A19", +"0@ c #181918", +"a@ c #171617", +"b@ c #0D0C0D", +"c@ c #0A090A", +"d@ c #103005", +"e@ c #228C00", +"f@ c #2C2B2B", +"g@ c #2B2B2B", +"h@ c #2C2C2B", +"i@ c #2B2B2C", +"j@ c #2C2B2C", +"k@ c #2B2C2C", +"l@ c #2B2C2B", +"m@ c #2C2C2C", +"n@ c #2B2B2A", +"o@ c #2A2A2A", +"p@ c #2A2929", +"q@ c #292929", +"r@ c #292928", +"s@ c #252626", +"t@ c #0D0D0E", +"u@ c #0A1507", +"v@ c #207E00", +"w@ c #302F2F", +"x@ c #2F2F2F", +"y@ c #2F2F30", +"z@ c #2F3030", +"A@ c #2F302F", +"B@ c #2D2C2C", +"C@ c #2D2D2D", +"D@ c #2E2D2D", +"E@ c #2E2E2E", +"F@ c #2F2E2F", +"G@ c #2E2F2E", +"H@ c #2C2D2D", +"I@ c #2A292A", +"J@ c #1E1F1E", +"K@ c #141514", +"L@ c #111212", +"M@ c #0A1107", +"N@ c #333333", +"O@ c #343333", +"P@ c #333334", +"Q@ c #333433", +"R@ c #343433", +"S@ c #282829", +"T@ c #292829", +"U@ c #2A2B2A", +"V@ c #2C2D2C", +"W@ c #303030", +"X@ c #313132", +"Y@ c #313131", +"Z@ c #303130", +"`@ c #2E2F2F", +" # c #2E2E2D", +".# c #2A2A29", +"+# c #262626", +"@# c #252424", +"## c #1A1A1B", +"$# c #151615", +"%# c #090D07", +"&# c #1D6F01", +"*# c #373737", +"=# c #383838", +"-# c #272626", +";# c #292828", +"># c #343434", +",# c #353434", +"'# c #323232", +")# c #313232", +"!# c #313130", +"~# c #2D2D2E", +"{# c #202120", +"]# c #1F1E1E", +"^# c #1D1C1C", +"/# c #1A1919", +"(# c #0A0E08", +"_# c #1F7D01", +":# c #373837", +"<# c #3B3B3B", +"[# c #3C3B3B", +"}# c #3B3B3C", +"|# c #373738", +"1# c #2D2C2D", +"2# c #363736", +"3# c #363536", +"4# c #353435", +"5# c #313031", +"6# c #2D2E2E", +"7# c #2B2A2A", +"8# c #282928", +"9# c #242525", +"0# c #1D1E1D", +"a# c #0C0C0D", +"b# c #0C1708", +"c# c #3F3F3F", +"d# c #3F3E3F", +"e# c #3C3B3C", +"f# c #383737", +"g# c #343334", +"h# c #302F30", +"i# c #1D1E1E", +"j# c #212020", +"k# c #3B3A3B", +"l# c #3A3A3A", +"m# c #383839", +"n# c #373736", +"o# c #363635", +"p# c #353534", +"q# c #2E2E2F", +"r# c #222221", +"s# c #0E2506", +"t# c #3B3C3B", +"u# c #434343", +"v# c #424343", +"w# c #191A1A", +"x# c #1A1B1A", +"y# c #222322", +"z# c #3C3C3C", +"A# c #3C3D3C", +"B# c #3B3C3C", +"C# c #39393A", +"D# c #383837", +"E# c #353536", +"F# c #333332", +"G# c #2A2A2B", +"H# c #262525", +"I# c #161515", +"J# c #0D0E0E", +"K# c #165202", +"L# c #434344", +"M# c #141515", +"N# c #3F4040", +"O# c #3E3F3E", +"P# c #3D3D3D", +"Q# c #363636", +"R# c #303031", +"S# c #202121", +"T# c #1D1D1C", +"U# c #080C07", +"V# c #3E3F3F", +"W# c #403F3F", +"X# c #111110", +"Y# c #101110", +"Z# c #131312", +"`# c #151415", +" $ c #333434", +".$ c #414141", +"+$ c #404040", +"@$ c #3E3D3E", +"#$ c #393838", +"$$ c #343435", +"%$ c #262727", +"&$ c #1F1E1F", +"*$ c #0F0E0F", +"=$ c #0E2B05", +"-$ c #40403F", +";$ c #242425", +">$ c #383738", +",$ c #403F40", +"'$ c #3E3E3E", +")$ c #313030", +"!$ c #242524", +"~$ c #1D7301", +"{$ c #080707", +"]$ c #090808", +"^$ c #0A0A09", +"/$ c #0E0F0F", +"($ c #30302F", +"_$ c #373838", +":$ c #444444", +"<$ c #464545", +"[$ c #444443", +"}$ c #424242", +"|$ c #404140", +"1$ c #333232", +"2$ c #1A1B1B", +"3$ c #0E2A05", +"4$ c #37DD00", +"5$ c #36DB00", +"6$ c #36D800", +"7$ c #35D600", +"8$ c #34D300", +"9$ c #34D100", +"0$ c #33CF00", +"a$ c #33CD00", +"b$ c #32CB00", +"c$ c #32C900", +"d$ c #31C700", +"e$ c #31C600", +"f$ c #31C500", +"g$ c #31C400", +"h$ c #2EBA00", +"i$ c #2BAE00", +"j$ c #259401", +"k$ c #1E7002", +"l$ c #144604", +"m$ c #0C1C07", +"n$ c #0A0B0B", +"o$ c #3C3C3B", +"p$ c #3F3F40", +"q$ c #444343", +"r$ c #484847", +"s$ c #454646", +"t$ c #393938", +"u$ c #1C1D1D", +"v$ c #191819", +"w$ c #1E7801", +"x$ c #36D900", +"y$ c #33CE00", +"z$ c #33CC00", +"A$ c #30C200", +"B$ c #30C100", +"C$ c #30C000", +"D$ c #30C300", +"E$ c #32C800", +"F$ c #29A201", +"G$ c #165004", +"H$ c #0A0D07", +"I$ c #0B0A0A", +"J$ c #484848", +"K$ c #424141", +"L$ c #3D3E3D", +"M$ c #3A3A39", +"N$ c #134203", +"O$ c #34D000", +"P$ c #2FBF00", +"Q$ c #2FBE00", +"R$ c #2FBD00", +"S$ c #2FBC00", +"T$ c #2EBB00", +"U$ c #175203", +"V$ c #444344", +"W$ c #484747", +"X$ c #0A1207", +"Y$ c #35D700", +"Z$ c #35D400", +"`$ c #32CA00", +" % c #2EB900", +".% c #2EB800", +"+% c #2DB700", +"@% c #248D01", +"#% c #0B1708", +"$% c #434443", +"%% c #454444", +"&% c #404041", +"*% c #383939", +"=% c #2D2D2C", +"-% c #252425", +";% c #111112", +">% c #09090A", +",% c #1C6C01", +"'% c #35D500", +")% c #2DB500", +"!% c #2DB400", +"~% c #2CB300", +"{% c #2CB200", +"]% c #2DB600", +"^% c #0D1E07", +"/% c #151514", +"(% c #3D3D3E", +"_% c #3A3939", +":% c #323231", +"<% c #0F0F0E", +"[% c #0A0A0B", +"}% c #134303", +"|% c #34D200", +"1% c #2CB100", +"2% c #2BAF00", +"3% c #2BAD00", +"4% c #2CB000", +"5% c #2BAC00", +"6% c #0A1007", +"7% c #0D0D0C", +"8% c #191918", +"9% c #3F403F", +"0% c #434243", +"a% c #3A3B3A", +"b% c #363637", +"c% c #2B2A2B", +"d% c #0C2005", +"e% c #29A500", +"f% c #2AAB00", +"g% c #2AAA00", +"h% c #2AA900", +"i% c #218102", +"j% c #090A0A", +"k% c #353535", +"l% c #3D3C3C", +"m% c #414140", +"n% c #2AA800", +"o% c #29A700", +"p% c #29A600", +"q% c #32CE00", +"r% c #113205", +"s% c #414041", +"t% c #343535", +"u% c #212021", +"v% c #259101", +"w% c #414040", +"x% c #393939", +"y% c #29292A", +"z% c #151516", +"A% c #175A02", +"B% c #0C0B0B", +"C% c #32CC00", +"D% c #0E0E0F", +"E% c #144703", +"F% c #185304", +"G% c #131212", +"H% c #272726", +"I% c #1F1F1E", +"J% c #121312", +"K% c #103204", +"L% c #218202", +"M% c #0E0D0E", +"N% c #282929", +"O% c #3D3D3C", +"P% c #3F3E3E", +"Q% c #373637", +"R% c #232223", +"S% c #0D2105", +"T% c #29A301", +"U% c #181819", +"V% c #1C1D1C", +"W% c #252524", +"X% c #3F3F3E", +"Y% c #3B3A3A", +"Z% c #363737", +"`% c #0B1B06", +" & c #091307", +".& c #080E07", +"+& c #32CD00", +"@& c #080907", +"#& c #30C600", +"$& c #080E06", +"%& c #3A3A3B", +"&& c #091507", +"*& c #29A101", +"=& c #212120", +"-& c #070807", +";& c #217E02", +">& c #121111", +",& c #383938", +"'& c #3D3C3D", +")& c #161716", +"!& c #0C2204", +"~& c #165003", +"{& c #171616", +"]& c #2E2D2E", +"^& c #363535", +"/& c #393A3A", +"(& c #3E3E3D", +"_& c #323132", +":& c #103304", +"<& c #0B1607", +"[& c #252526", +"}& c #248C01", +"|& c #111211", +"1& c #343534", +"2& c #3C3C3D", +"3& c #303131", +"4& c #185B02", +"5& c #102E06", +"6& c #1C7001", +"7& c #207B02", +"8& c #151616", +"9& c #239000", +"0& c #0A0F08", +"a& c #0D0C0C", +"b& c #414241", +"c& c #0B2004", +"d& c #0C1A07", +"e& c #151414", +"f& c #3C3D3D", +"g& c #134302", +"h& c #238801", +"i& c #0A1508", +"j& c #434444", +"k& c #36DA00", +"l& c #174F04", +"m& c #28A101", +"n& c #174E03", +"o& c #474847", +"p& c #124103", +"q& c #070708", +"r& c #37DF00", +"s& c #37DC00", +"t& c #29A300", +"u& c #259601", +"v& c #1D7102", +"w& c #144804", +"x& c #0B1C07", +"y& c #080908", +"z& c #474748", +"A& c #090809", +"B& c #080809", +"C& c #0D2A03", +"D& c #121313", +"E& c #393839", +"F& c #1D7401", +"G& c #424241", +"H& c #0D2903", +"I& c #434342", +"J& c #3E3D3D", +"K& c #080B07", +"L& c #474747", +"M& c #222122", +"N& c #155101", +"O& c #424342", +"P& c #474647", +"Q& c #393A39", +"R& c #0D2506", +"S& c #4B4B4B", +"T& c #0E1A09", +"U& c #4B4A4B", +"V& c #252625", +"W& c #0C110B", +"X& c #1F7C01", +"Y& c #4A4B4A", +"Z& c #4E4F4E", +"`& c #292A2A", +" * c #0C100B", +".* c #1D6E02", +"+* c #4E4E4F", +"@* c #4F4F4F", +"#* c #2F2F2E", +"$* c #0C130B", +"%* c #1E7502", +"&* c #4C4B4B", +"** c #2A2B2B", +"=* c #0E180B", +"-* c #207D01", +";* c #464747", +">* c #4B4A4A", +",* c #4F4F4E", +"'* c #102E05", +")* c #212221", +"!* c #090A07", +"~* c #175303", +"{* c #102F05", +"]* c #218100", +"^* c #474746", +"/* c #0A0909", +"(* c #0C1D06", +"_* c #121112", +":* c #0F2B06", +"<* c #1B6D01", +"[* c #0A1407", +"}* c #144504", +"|* c #0D0E0D", +"1* c #1D7501", +"2* c #0B0B0A", +"3* c #090E07", +"4* c #0E2606", +"5* c #134403", +"6* c #1B6801", +"7* c #080A07", +"8* c #091207", +"9* c #0A1706", +"0* c #0E2705", +"a* c #113504", +"b* c #134204", +"c* c #1E7501", +"d* c #269E00", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + @ @ @ @ @ @ @ @ @ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + @ @ @ @ @ @ # # # # # # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # # # # # # # # @ @ @ @ @ @ @ + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + @ @ @ @ # # # # $ $ $ $ $ % % % % % % % % & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & % % % % % % % % % $ $ $ $ $ $ $ # # # # # @ @ @ @ @ + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ @ # # # # $ $ $ % % % % % & & & & & & & * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * & & & & & & & & % % % % % % $ $ $ $ # # # # # @ @ @ @ + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ @ # # $ $ $ % % % & & & * * * * * = = = = = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - = = = = = = = = * * * * * & & & & % % % % $ $ $ # # # # @ @ @ @ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ # # $ $ $ % % & & * * * = = = - - - - ; ; ; ; ; ; > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ; ; ; ; ; ; ; ; - - - - - = = = * * * & & & & % % % $ $ $ # # # @ @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ # # $ $ % % & & * * = = - - ; ; > > > , , , ' ' ' ' ' ' ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ' ' ' ' ' ' ' ' , , , , , > > > ; ; ; - - - = = * * * & & % % % $ $ # # # @ @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ # # $ $ % % & * * = = - ; ; > > , ' ' ) ) ) ! ! ! ~ ~ ~ ~ ~ ~ { { { { { { { { { { { { { { { { { { { { { { { { { { ~ ~ ~ ~ ~ ~ ~ ~ ! ! ! ! ) ) ) ' ' ' , , > > > ; ; - - = = * * & & % % $ $ $ # # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ @ # # $ $ % & & * = - - ; > , , ' ) ) ! ! ~ ~ { { ] ] ] ^ ^ ^ ^ ^ ^ / / / / / / / / / / / / / / / / / / / / / / / / / ^ ^ ^ ^ ^ ^ ^ ] ] ] ] { { { { ~ ~ ! ! ) ) ' ' , , > > ; ; - = = * * & & % % $ $ # # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ @ # $ $ % & & * = - ; ; > , ' ) ! ~ ~ { ] ^ ^ / / ( ( _ _ _ : : : : : : < < < < < < < < < < < < < < < < < < < < < < < : : : : : : : _ _ _ _ ( ( ( / / ^ ^ ] ] { { ~ ~ ! ) ) ' , , > ; ; - = = * & & % % $ $ # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # # $ $ % & * * = - ; > , ' ) ! ~ { ] ^ / ( _ _ : < < [ [ } } } | | | | | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 | | | | | | } } } } [ [ [ < < : : _ _ ( ( / ^ ^ ] { ~ ~ ! ) ' , , > ; - - = * * & % % $ $ # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # # $ $ % & * = - ; > , ' ! ~ { ] ^ ( _ : < [ } } | 1 2 2 3 3 4 4 4 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 5 5 4 4 4 3 3 3 2 2 1 1 | | } } [ < : : _ ( / ^ ^ ] { ~ ! ) ' , > > ; - = * * & % % $ $ # # @ @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = - ; , ' ) ~ { ] / ( _ < [ } | 2 3 4 5 5 6 7 7 8 8 9 9 0 0 0 0 0 a a a a a a a a a a a a a a a a a a a a 0 0 0 0 0 0 9 9 9 9 8 8 8 7 7 6 6 5 4 4 3 2 1 1 | } [ < : _ ( / ^ ] { ~ ! ) ' , > ; - = * * & % % $ # # @ @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = - > , ' ! ~ ] ^ ( _ < } | 1 3 4 5 7 8 9 0 a a b c c d d d e e e e e f f f f f f f f f f f f f f f f f f f f e e e e e e d d d c c c b b a 0 0 9 8 8 7 6 5 4 3 2 1 | } [ : _ ( / ^ { ~ ! ) ' , > ; - = * & & % $ $ # # @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = ; > , ) ~ { ^ ( : < } 1 3 4 6 8 9 a b c e f g g h i j j k k k l l l l l m m m m m m m m m m m m m m m m l l l l l l l k k k j j j i i h h g f e e d c b a 0 9 8 7 5 4 3 2 | } [ : _ ( ^ ] { ! ) ' , > ; - = * & % % $ # # @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # # $ % & * = ; > ' ) ~ ] / ( : [ | 2 4 6 8 0 b d e g h j k l m n o o p p q q r r r r r s s s s s s s s s s s s s s s s s r r r r r r q q q q p p o o n m m l k j i i g f e d c a 0 9 7 6 4 3 1 | [ < _ ( ^ ] { ! ) ' , ; - = * & & % $ $ # @ @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ % & * = - > , ) ~ ] / _ < } 2 4 6 8 a c e g i k l n o q r s t u v w w x x x y y y y z z z z z z z z z z z z z z z z z y y y y y y x x x w w v v u u t s s r q p o n l k j h g f d b a 9 8 6 4 2 1 } < : ( / ] { ! ) , > ; - = * & % $ $ # # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * = - > , ) ~ ] / : [ | 3 5 8 a c f h j m o q s u v x y z A B C D E E F F G G G G G H H H H H H H H H H H H H H G G G G G G G F F F E E D D C C B A z z y x w u t s q p n m k j h f d b a 9 7 5 3 1 } [ : ( ^ ] ~ ! ' , > - = * & % % $ # # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . + + + @ # # $ % & = - ; , ) ~ ] / : [ 1 4 6 9 b e h j m p r u w y A C E F H I J K L L M N N N O O O O O O O P P P P O O O O O O O O O O O N N N N M M M L L K K J I H H G F E C B A z x w u s q p n l j h f d b 0 7 5 3 1 } < _ ( ^ { ! ) , > ; - = * & % $ # # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * = ; , ' ~ ] / : [ 1 4 7 0 c f i l o r u x A C E H J L M O P Q R S T U U U U V V V V V W W W W W W W W W W W W W V V V V V V U U U U U U T T S R Q Q P O N L K J H G E D B z x v t r p n k i g d b 0 8 5 3 1 } < _ / ] ~ ! ' , ; - = * & % $ # # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + + @ # # $ % & = - > ' ! { / _ [ 1 4 7 0 d g j n q t x A D G I L N P R T U V X Y Z ` . .....+.+.+.+.+.@.@.@.@.@.@.@.@.@.@.@.@.@.@.+.+.+.+.+.+....... . .` ` Z Y X X W V U T S Q P N M K I G E C A x v t q o l j g e b 0 7 5 2 | [ : ( ^ { ! ) , > - = * & % $ # # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * - ; , ) ~ ^ ( < | 3 7 0 d g k o s v z C G J M P S U W Y ` ..@.#.$.%.&.*.=.=.-.-.;.;.;.;.>.>.>.>.>.>.>.>.>.>.>.>.>.;.;.;.;.;.;.-.-.-.=.=.*.*.&.&.%.$.#.@.+... .Z Y W U U S Q O L J H E C z x u r o m j g d b 9 6 4 1 } < _ ^ ] ~ ) , > - = * & % $ # # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; > ' ~ ] ( : | 3 6 0 d g k o s x B E I M Q T V Y .@.$.&.=.;.>.,.'.).!.~.~.{.{.].].].].].].^.^.^.^.^.^.].].].].].].].].].{.{.{.{.~.~.~.!.).).'.,.,./.>.-.=.*.%.$.@... .Z X U T R O L J G D A x u r o l i g d a 8 5 3 | [ _ / ] ~ ) , > - = * & % $ # # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + + @ # $ % & * - ; , ) { ^ _ [ 2 5 9 c g k o t x B G K O S V Z ..#.&.-./.'.!.{.^.(._.:.<.<.[.}.}.}.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.}.}.}.}.[.[.[.<.<.:.:.1._.(.^.].{.~.).'./.>.-.*.%.#...` X V T Q N K H E B y u r o l h e b 9 6 4 1 [ : ( ] ~ ) ' > - = * & % $ # # @ + + + . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & = - > ' ~ ] ( < | 4 8 b f j o s x C G L Q U X .#.*.>.'.~.^._.:.[.|.2.3.4.5.6.7.7.8.8.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.8.8.8.8.7.7.7.6.6.5.5.4.3.2.0.|.}.[.:.1.(.].~.).,.>.-.&.#.+.` X U R O L H E B x u q n j g d 0 7 4 2 } : ( ^ ~ ) ' > - = * & % $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ # # $ & * = ; , ) { / : } 2 6 0 e i n s w B G L Q U Z @.&.;.'.{.(.:.}.2.4.7.8.a.b.c.d.e.f.f.g.g.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.g.g.g.g.f.f.f.e.e.d.d.c.b.i.a.9.8.7.5.4.2.|.[.:._.].~.'./.-.&.#. .Y V S O L H D A w s o l h e a 8 5 2 } < ( ^ { ) ' > - = * & % $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ # $ % & * - > ' ! ] ( < 1 4 9 c g l q v A G L Q V ` #.=./.~.(.<.0.4.7.a.c.e.g.j.k.l.m.n.n.o.p.p.p.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.p.p.p.p.p.p.o.o.o.n.n.m.m.r.l.l.k.j.h.g.e.d.b.i.9.7.5.2.|.<.1.^.~.'.>.*.$...Y V S O K G C y u q m i f b 9 6 2 } < ( ^ ~ ) , > - = & % $ $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & = ; , ) ~ ^ _ } 2 6 a e j o u z E K Q U ` #.-.'.].:.|.4.8.b.e.h.l.m.o.q.s.t.u.v.w.x.x.y.y.z.z.z.z.z.z.z.z.z.z.z.z.z.z.y.y.y.y.y.y.x.x.x.w.w.w.v.v.u.t.s.s.A.q.o.n.m.l.j.g.f.c.i.9.6.3.|.<._.].)./.=.$...Y U R M I E A v r n j f c 9 6 3 | < ( ] ~ ) , ; - * & % $ # # @ + + + . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; , ! { / < | 4 8 c h m r x C I O U Z #.-.'.^.<.2.6.i.e.j.r.o.A.t.w.y.z.B.C.D.E.F.F.G.G.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.G.G.G.G.G.F.F.F.F.E.E.D.D.C.C.B.I.z.y.x.v.u.t.A.p.n.r.k.g.e.b.9.6.2.}.1.^.!./.*.#. .X T P K G B x s o k g c 9 6 3 } < ( ] ~ ) , ; - * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ # # % & * - > ' ! ] ( [ 2 6 0 e j o u A G M S X +.*.'.].J.J.J.J.K.J.J.J.J.J.J.J.J.J.J.K.J.L.J.J.J.J.K.M.J.J.J.K.L.J.J.L.J.K.J.M.K.L.J.J.L.J.J.K.J.J.L.N.O.P.Q.R.S.T.U.V.W.X.l.B.z.x.v.t.A.o.m.k.g.d.i.7.3.}.1.].).>.&.+.Z U Q M H C y t p k g c 9 6 2 } : / ] ! ' > ; = * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ # $ % & = - > ) ~ ^ _ } 3 7 b g l r x D J P V .&./.].<.J.Y.Z.Y.Z.Y.Y.`.`.`.Y.`.Y.Y.Y.Y. +`.Y.Y.Y.Y.`.Y.Y.`..+Y.++Y.Z.++`.`.Y.++++Y.Z.Y. +Y.`.Y.Y.Y.Y.++Y.++++@+@+@+@+#+#+$+%+&+S.*+=+l.z.x.u.A.o.r.j.e.i.7.3.}.1.{.,.-.$. .W S N I D y t p k g c 9 5 2 } : / { ! ' > - = & % $ # # @ + + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + + @ # $ % & = ; , ) { / < | 4 9 d i o t z G M T Z #.;.~.:.2.J.`.-+;+>+,+'+)+;+>+;+>+,+;+-+;+;+,+!+;+;+,+;+;+,+;+,+,+>+>+;+~+!+>+!+;+;+;+;+,+;+;+~+'+>+;+;+;+-+)+)+'+)+)+{+]+]+^+Y.Y.@+#+$+%+/+*+(+x.w.t.q.m.j.e.i.7.2.[.(.!.>.&...X T O J D y u p k g c 9 5 1 [ _ ^ { ) , ; - * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; , ! ] ( < 1 6 0 e k q w C J P V ..*.'.(.|.7.J.Z.;+_+:+<+[+}+|+:+}+}+[+_+<+:+_+<+:+[+:+}+|+[+[+_+:+[+[+|+|+:+|+|+[+[+:+|+|+_+[+[+:+_+|+[+_+_+1+<+<+2+2+3+4+5+6+7+8+'+)+9+0+Y.@+a+b+c+d+e+x.u.q.m.j.d.a.5.|.1.{./.*.@.Y U O J D y t o k f b 8 4 1 < ( ] ~ ) , ; = * % $ # # @ + + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ! ] _ [ 2 7 b g l r y E L S Y #.;.{.<.4.i.L.Y.;+[+f+g+h+h+i+i+j+h+i+k+h+h+f+k+j+l+g+i+h+k+g+h+h+g+l+j+l+l+j+m+k+f+h+l+f+l+l+i+h+l+l+h+g+m+i+f+m+f+m+m+n+n+o+o+p+:+3+5+7+;+)+q+r+Y.#+b+s+t+u+u.p.r.g.b.7.2.<.].'.=.@.Z U O J D y t o j e a 7 3 | : / ] ! ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # # $ & * - > ' ~ ^ _ } 3 8 c h n t A H O U .*.'._.0.8.e.J.`.;+[+l+v+w+x+x+y+z+x+A+z+B+y+B+C+v+C+w+x+y+C+z+y+B+v+A+z+C+w+v+B+z+y+C+z+z+v+w+A+v+v+x+B+C+z+x+w+A+C+D+E+F+F+G+H+l+f+I+n+o+[+2+5+J+;+{+K+@+$+L+M+x.s.n.j.d.9.4.[.^.'.=.#.Z U O I D x s n i d 0 6 2 } _ ^ { ) , ; = * & $ $ # @ + + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & * - > ) { / : | 4 9 d j p v C I Q W @.-.~.:.4.i.j.M.Y.;+[+k+z+N+O+P+O+P+Q+R+P+Q+O+S+S+N+N+O+O+T+U+N+N+Q+N+S+U+S+U+S+R+T+Q+R+Q+P+S+S+U+Q+N+R+N+U+R+U+R+R+R+V+W+W+W+X+Y+B+v+C+Z+`+l+m+n+o+|+4+ @)+^+++$+.@+@v.q.l.f.a.5.}.(.).-.#.Y T N H C w r m h c 9 5 1 < ( ] ~ ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ) { / < 1 5 0 e k q w D K S Y $./.].}.7.e.r.K.++-+[+k+C+O+@@#@$@%@$@&@$@%@#@*@=@@@*@@@&@*@*@=@=@*@@@&@#@*@@@$@=@*@*@%@=@$@=@%@#@-@%@*@&@@@#@@@*@@@@@;@>@,@'@)@!@P+R+V+~@{@B+x+F+]@l+n+o+5+7+;+^+@+^@/@u.A.m.g.i.5.}.(.).=.@.Y S M G A v p k f b 7 3 } : / { ! , ; - * & $ $ # @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ! { ( < 1 6 a f l r y F M T ` &.'._.2.a.h.o.J.Y.>+_+l+z+U+#@(@(@_@:@<@(@<@:@<@[@:@<@}@_@<@}@}@|@[@:@|@<@<@<@(@|@_@_@1@}@1@:@<@(@(@_@:@1@[@<@(@<@<@<@2@2@3@4@5@-@-@@@6@,@7@U+R+~@8@B+9@0@a@o+_+7+)+b@c@d@e@s.n.h.b.5.}.(.'.*.+.W R L F z t o i d 0 6 2 [ _ ^ ~ ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ! ] ( [ 2 7 b g m s z G N U ..=.!.:.4.c.k.A.J.++>+[+f+C+U+%@<@f@g@f@g@h@g@f@f@g@i@f@g@j@k@i@g@f@g@g@g@g@i@g@g@k@f@i@g@g@l@m@l@l@f@g@g@l@g@j@g@g@n@g@g@o@o@p@q@r@[@_@2@s@5@&@@@,@P+P+W+8@F+`+l+o+4+ @t@`.u@v@t.n.h.i.5.[.^.,.&. .V P J D x r m g c 8 4 | : / { ! , ; = * & $ # # @ + + . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % * = ; ' ! ] ( [ 3 7 b h n t A H P W @.;.{.[.7.e.m.u.J.Y.,+[+k+B+N+&@_@i@w@x@y@x@x@x@w@x@w@z@A@w@z@A@y@w@y@x@l@l@l@l@f@f@h@m@g@g@l@l@g@g@f@i@h@m@B@C@D@E@F@x@G@E@E@C@C@H@i@g@o@I@q@[@2@s@5@=@,@!@J@{@A+`+I+K@L@;+b@M@X.t.n.g.i.4.<.{.>.%.` U N H B v p j e a 6 2 [ _ ^ ~ ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % * = ; ' ! ] _ } 3 8 c i o u B I Q X #.>.^.|.8.g.o.w.J.Y.!+}+g+x+U+$@<@j@x@N@O@N@N@O@P@N@Q@R@N@N@Q@R@O@N@A@f@<@_@<@[@_@<@(@:@:@[@_@|@(@}@<@[@[@[@S@T@q@U@g@V@E@W@X@X@Y@Z@W@x@`@ #B@l@n@.#T@[@+#@#@@7@P+{@##l+$#1+J+Y.%#&#t.m.g.a.3.:.~.-.@.X S L E y s m h c 8 4 | : / { ! , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + @ @ # $ % * - > ' ~ ^ _ } 3 8 c i o v C J R Y $.,.(.2.a.j.q.y.J.Y.;+[+k+A+N+@@|@i@y@N@*#=#*#*#*#*#*#*#*#*#*#*#P@z@g@[@&@=@*@@@*@@@*@#@$@$@@@=@@@#@#@#@-@-@-@5@5@-#<@;#o@h@E@Y@>#,#>#N@'#)#!#y@`@~#B@k@I@[@2@5@*@{#]#^#/#m+[+7+^+(#_#s.r.e.8.0.(.'.*...V P I C v p k f a 6 2 [ _ ] ~ ' > - * & % $ # @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ % * - > ' ~ ^ _ } 4 9 d j p w D K S Z &.'.1.3.b.k.s.I.K.Y.-+<+k+B+U+$@|@h@A@N@:#<#[#<#}#<#<#<#<#<#|#Q@x@f@<@&@Q+P+N+Q+O+T+Q+O+N+O+S+S+S+S+U+T+P+P+P+7@'@,@$@5@+#[@I@1#W@>#|#*#2#3#4#P@N@'#5#z@6#m@7#8#|@9#;@P+0#B+l+[+J+a#b#g.q.k.c.6.[.]./.$.Z T M F z s n h c 8 4 | : / { ) , ; = & % $ # @ @ + + . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ % * - > ' ~ ^ : | 4 9 d j q w D L T ` &.).:.4.c.r.t.B.J.`.-+[+h+C+S+*@|@l@x@N@*#<#c#c#c#c#d#c#e#f#g#h#k@:@*@S+v+w+B+v+z+A+A+A+v+C+z+y+x+y+A+z+B+8@Y+8@i#]#Q+j#,@-@+#q@m@W@>#=#k#l#m#f#n#o#p#P@Y@W@q#m@h@q@+#-@r#Q+z+j+:+!+Y.s#s.o.h.i.3.:.!.=.+.W P I C v p k e 0 6 1 < ( ] ! ' ; - * % $ # @ @ + + . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ~ ^ : | 4 9 e k q x E M U .*.!.<.6.d.m.u.D.J.Y.;+|+j+w+P+&@1@g@w@P@*#t#c#u#u#v#c#t#*#O@y@k@<@*@U+B+l+f+j+i+i+l+g+i+i+f+g+g+i+k+h+l+l+l+]@`+w#x#w+^#W+P+y#5@[@m@W@>#=#z#A#B#<#C#=#D#E#>#F#Z@A@V@G#[@H#,@i#F+I#6+J##+K#t.m.e.8.|.^.,.%.Z T M F y s m g b 7 3 } _ ^ ~ ' > - * & % $ # @ + + . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ~ ^ : | 5 0 e k q x E M U .=.~.<.6.e.n.v.D.J.Y.>+[+j+z+O+-@:@k@w@R@*#<#c#u#L#c#[#|#R@y@k@(@$@S+w+l+<+_+[+<+[+|+2+:+[+1+}+[+[+[+[+}+[+p+K@M#I#I+m+]@F+B+]#7@-@[@m@W@Q@D#z#N#O#P#z#<#l#=#Q#,#Q@R#E@m@S@-@S#T#H+K@;+b@U#9.q.k.b.4.:.~.-.+.V P I B v o j d 9 5 | < / { ) , ; = & % $ # @ + + + . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) ~ / : | 5 0 e k r y F N U ..-.~.[.7.f.o.w.F.M.Y.;+[+j+z+T+-@_@j@A@N@:#<#V#u#W#t#*#N@x@j@1@=@R+B+l+[+>+,+;+>+;+;+,+~+!+;+;+;+;+;+;+;+;+J+X#Y#L@Z#2+`#I+l+x#{@!@-@[@m@W@ $D#e#N#.$+$c#@$e#l##$*#$$'#x@G#%$,@&$C+a@2+*$@+=$u.n.f.8.|.^./.$.Z S L E x r l f a 6 2 [ ( ] ! ' ; = * % $ # @ @ + + . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) ~ / : | 5 0 f l r y F N U +.-.{.}.8.g.o.x.F.J.Y.;+1+k+x+N+@@1@g@w@Q@f#<#c#-$<#*# $w@m@[@=@R+z+j+[+;+`.Y.Y.`.`.Y.Y.++`.Z.Y.Z.Y.@+Y.Y.Y.b@a#^+J#*$-+7+4+[+n+`+B+P+;$[@m@h#>#>$e#,$u#u#.$c#'$z#<##$$$)$H@8#!$7@Y+`+o+7+^+$+~$A.k.b.4.:.!.=...U O H A t n h c 8 3 } _ ^ ~ ' > - * & $ # # @ + + . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / : 1 5 0 f l r y G N V +.;.{.}.8.g.p.y.G.J.Y.;+[+h+z+O+@@<@g@w@N@*#<#c#<#*#g#w@m@|@%@Q+B+i+|+>+Y.M.J.M.L.K.J.J.J.J.J.J.J.J.J.{$J.J.J.]$$+^$#+.+a#/$;+5+o+l+B+j#-@[@m@($>#_$B#N#:$<$[$}$|$'$l#n#1$E@n@2@,@J@2$m+2+q+@+3$u.n.f.8.}.].>.#.X R J C v p j d 9 5 | : / { ) , - = & % $ # @ + + . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l r y G O V +.;.].}.8.g.p.y.G.K..+;+[+k+v+N+-@}@f@x@N@f#<#<#*#O@x@g@_@%@U+B+l+[+;+++J.4$5$6$7$8$9$0$a$b$c$d$e$f$g$g$g$h$i$F.j$k$l$m$$+n$Y./$7+[+H+B+!@-@[@m@W@g#_$o$p$q$r$s$:$+$z#t$>#W@H@8#-@P+u$v$M#7+r+%+w$q.j.i.3._.'.&.` T M E x r l f a 6 1 < ( ] ! , ; = & % $ # @ + + . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l s z G O V +.;.].|.9.h.q.y.H.J.++;+:+i+C+T+=@_@g@W@P@*#<#}#|#g#x@h@:@@@Q+A+h+[+>+Y.M.5$x$7$8$9$y$z$c$d$f$g$A$B$C$C$C$C$B$A$D$g$e$E$F$G$H$I$^+J+[+l+B+P+-@[@f@z@P@f#o$-$[$J$<$K$L$M$o#'#E@o@+#,@W+##I+5+{+I$N$t.r.d.6.<.~.-...V O G z t m h b 7 2 [ _ ] ! ' ; = * % $ # @ @ + + . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l s z G O V +.;.].|.9.h.q.y.H.{$Z.;+:+l+C+T+$@_@h@A@N@*#<#<#f#R@W@k@|@-@R+z+i+[+,+Y.J.x$7$8$O$a$b$E$f$D$B$P$Q$R$S$T$T$S$S$R$Q$C$A$g$e$c$S$U$$+^+J+[+0@B+{#-@}@h@W@O@|#t#p$V$W$q$p$B#D#O@($g@|@-@S+v+i+[+;+`.X$A.o.g.9.|.^.>.#.X Q J B v o i c 8 4 } _ ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 a f l s z G O V @.;.].|.9.h.q.z.H.J.`.,+_+l+x+T+#@:@f@A@P@|#<#<#*#Q@y@j@(@%@T+B+l+|+;+Y.M.Y$Z$9$y$`$d$g$A$P$R$T$ %.%+%+%+%+%.% %h$S$Q$C$D$f$E$b$@%#%^+;+K@H+B+P+-@[@m@W@>#|#t#,$$%%%&%P#*%4#Y@=%q@-%!@{@`+o+;%0+>%,%A.k.i.3._.'.%.Z S L D w q j e 9 5 | : / { ) > - * & % # # @ + + . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s z G O V @.>.].|.9.h.q.z.H.J.Y.~+:+i+w+S+-@:@j@h#N@*#<#[#:#P@z@h@_@*@U+v+h+[+,+Y.L.'%9$y$b$d$g$B$Q$T$ %+%)%!%~%{%{%{%~%!%]%+%h$S$P$A$f$E$b${%^%^+;+/%H+B+P+-@}@h@W@ $D#[#+$q$K$(%_%3#:%6#o@+#,@W+F+n+4+<%[%}%t.r.d.5.:.!.*. .U M F y r l f 0 6 1 < / { ) , ; = & % $ # @ + + . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s z G O V @.>.].|.9.h.q.z.H.{$Y.!+[+l+A+N+#@:@k@w@N@*#<#o$f# $h#f@|@*@R+B+h+[+'+Z.J.|%0$b$E$g$B$R$h$+%)%{%1%2%i$i$3%i$2%4%1%~%]%.%T$Q$A$f$c$z$5%6%7%7+/%8%8@P+-@[@m@W@g#=#o$9%0%V#a%b%N@`@c%<@@@R+C+m+2+)+.+d%w.n.f.7.}.{.-.+.V O G z s m g a 6 2 [ ( ] ! , ; = & % $ # @ + + . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s z H O W @.>.^.0.a.j.A.I.e%L.++!+:+j+x+O+$@1@i@A@N@*#<#<#*#P@y@f@(@$@Q+B+l+[+;+@+J.9$a$c$f$B$Q$h$+%!%1%2%3%f%g%h%h%h%g%f%3%2%{%!%+%T$Q$A$e$c$a$i%j%{+7+$#`+{@7@9#q@C@!#k%t$l%m%9%z#D# $y@h@|@-@P+B+l+[+8+Y.M.m.p.h.9.|.^.>.#.W P I A u n h b 7 3 [ ( ] ! , ; = * % $ # @ + + . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s z H O W @.>.^.0.a.j.A.I.e%J.Y.,+<+j+y+Q+@@:@g@($N@|#<#<#>$P@x@k@<@@@P+B+l+|+~+Y.J.y$`$e$A$Q$h$+%~%4%3%g%n%n%o%p%p%p%o%n%h%f%i$1%!%+%T$P$D$d$b$q%r%Y.;+2+g+v+O+-@|@j@w@Q@*#[#c#s%l%#$t%!#H@q@9#u%{@`+o+7+^+$+M+A.k.i.2.(.,.$.Y R J C v o i c 8 3 } _ ^ ! ' ; = * % $ # @ @ + . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s z H O W @.>.^.0.a.j.A.I.e%J.Y.>+:+h+z+T+#@<@l@A@N@:#<#[#|#N@y@g@_@@@N+v+l+|+;+Z.J.z$E$g$C$S$+%!%4%5%h%n%p%H.G.F.F.F.G.H.p%n%g%3%1%!%.%S$C$f$c$a$v%>%^+7+o+`+{@u%-@;#=%5#>#=#z#w%P#x%k%Y@C@y%s@7@~@/#z%L@0+c@A%t.l.b.4.1.'.&.Z S K D w p j d 9 4 } _ ^ ~ ' > - * % $ # @ @ + + . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Z.,+:+f+x+T+@@<@i@A@N@*#[#[#:# $h#k@:@&@U+v+l+_+,+B%J.`$e$A$R$ %)%1%3%h%o%H.F.D.C.B.B.B.C.E.G.e%n%g%i${%]%h$Q$A$d$b$C%Q.Y.!+}+l+v+T+&@1@k@w@ $*#<#c#P#M$E#'#E@o@3@,@W+F+n+5+D%#+E%u.m.d.5.:.).*.` T L E w q j e 9 4 | : ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.++;+[+j+C+N+@@:@i@x@ $*#<#<#>$Q@x@f@}@@@O+y+i+[+'+Y.J.c$f$C$T$+%~%i$g%n%e%F.C.I.z.y.y.y.z.B.D.F.e%n%f%2%~%.%S$B$f$`$y$F%a+9+G%n+F+W+,@3@.#D@:%3#l#(%'$l#Q#1$q#o@H%,@I%x#a@J%)+@+K%v.n.e.6.<.!.=. .U M E x q k e 0 5 | : / ~ ) > - * & $ # @ @ + + . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Y.;+:+i+z+Q+-@}@g@x@O@*#<#}#*#R@x@h@[@*@S+B+l+|+,+Y.K.d$D$Q$ %)%4%5%n%e%F.C.z.y.w.v.v.w.x.y.I.D.G.p%h%3%1%]%h$P$g$E$a$L%j%M%7+$#`+X+7@5@N%C@Y@p#t$O%P%a%Q%N@q#g@2@R%R+2$m+2+~+B%S%w.o.f.7.[.~.-...U N F y r k f 0 5 1 : / { ) > - * & $ # @ @ + + . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Y.,+[+k+w+Q+@@(@f@w@Q@*#<#[#|#P@x@m@_@$@S+B+l+[+,+Y.J.e$A$R$.%~%2%g%o%G.D.I.x.w.u.t.t.t.u.w.y.B.E.H.n%f%4%!% %Q$A$d$z$T%$+^+8+[+U%V%P+W%[@B@W@>#=#z#X%Y%Z%N@x@g@<@@@R+C+f+2+)+++`%x.o.g.8.}.{.-.+.U N G y r l f 0 5 1 < / { ) > - * & % # # @ + + . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%L.`.)+:+i+x+U+#@:@f@x@N@*#<#<#*#N@z@h@1@=@P+w+m+[+!+Y.J.e$B$S$+%{%i$h%p%F.C.z.w.u.t.s.s.s.t.u.x.z.C.G.o%g%i$~%.%R$A$e$b$T$b+Y.;+[+l+B+P+-@|@j@w@P@f#[#c#k#*#N@A@g@<@$@R+B+i+1+!+++ &y.p.g.8.}.{.;.+.V O G z s l f a 6 1 < / { ) , - * & % # # @ + + . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Y.>+[+l+y+U+@@_@i@A@N@*#<#<#*#>#x@g@|@=@P+v+i+[+,+Y.M.f$C$T$]%{%3%n%e%E.B.y.v.t.s.A.q.A.s.t.w.y.B.F.p%h%i${%+%S$B$e$`$d$J.Y.;+<+j+B+P+#@:@m@w@P@*#[#c#}#|#P@x@l@:@#@O+C+f+[+'+Y..&y.p.g.9.|.].;.+.V O G z s l f a 6 1 < / { ) , - = & % # # @ + + . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.++'+_+j+w+Q+#@<@h@y@Q@*#<#t#_$O@x@f@(@#@U+w+i+[+;+ +J.f$C$T$]%1%3%n%e%E.I.x.v.t.A.A.q.A.s.t.v.y.B.F.p%h%3%{%+%S$B$e$`$+&J.Z.;+[+k+B+S+%@|@l@x@R@*#B#c#<#*#O@A@g@}@@@T+B+h+<+!+.+@&y.p.h.9.|.].;.+.V O G z s l f a 6 1 < / { ) , - = & % # # @ + + . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%M.Y.-+|+g+y+P+#@|@f@w@N@*#<#}#|#P@h#i@_@$@T+x+j+_+;+`.J.f$C$T$]%{%3%n%e%E.B.y.v.t.s.A.q.A.s.t.w.y.B.F.p%h%i${%+%S$B$e$`$#&J.Y.;+[+l+v+T+-@:@i@h#g#_$}#d#<#Z%N@x@i@<@@@T+A+m+2+;+ +$&y.p.g.9.|.].;.+.V O G z s l f a 6 1 < / { ) , - = & % # # @ + + . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Y.;+_+j+A+R+@@:@l@x@N@*#<#<#|#N@x@g@}@*@O+x+m+|+~+Y.J.e$B$S$+%{%i$h%p%F.C.z.w.u.t.s.s.s.t.u.x.z.C.G.o%g%i$~%.%R$A$e$b$ %$+Y.J+[+l+B+P+&@1@m@($R@=#[#c#%&Z%N@x@g@<@@@R+C+h+<+)+.+&&y.p.g.8.}.{.;.+.V O G z s l f a 6 1 < / { ) , - * & % # # @ + + . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.++>+<+l+x+P+=@(@f@y@N@*#<#[#|#>#z@g@:@-@P+A+l+:+;+.+J.e$A$R$.%~%2%g%o%G.D.I.x.w.u.t.t.t.u.w.y.B.E.H.n%f%4%!% %Q$A$d$z$*&$+^+7+K@`+^#=&;$[@H@W@>#=#z#d#Y%2#N@F@g@<@@@I%C+m+2+)+@+`%x.o.g.8.}.{.-.+.U N G y r l f 0 5 1 < / { ) > - * & % # # @ + + . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Z.>+[+l+C+S+&@|@j@A@P@*#<#<#_$Q@W@f@<@*@S+w+l+[+;+Y.-&d$D$Q$ %)%4%5%n%e%F.C.z.y.w.v.v.w.w.y.I.D.G.p%h%3%1%]%h$P$g$E$a$;&j%0+>&$#/#{@7@5@q@1#!#t%,&'&'$l#Q#'#E@o@+#,@V+F+)&3+)+I$!&w.o.f.7.[.~.-...U N F y r k f 0 5 1 : / { ) > - * & $ # @ @ + + . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%K.`.;+1+j+w+O+%@}@i@($O@:#<#<#*#P@A@j@:@#@Q+C+i+[+!+Y.J.c$f$C$T$+%~%i$g%n%e%F.C.I.z.y.y.z.z.B.D.F.e%n%f%2%~%.%S$B$f$`$y$~&@+D%5+{&2$W+,@+#o@]&'#^&/&(&(%M$o#_&D@o@4@,@W+w#n+5+{+#+:&v.n.e.6.<.!.=. .U M E x q k e 0 5 | : / ~ ) > - * & $ # @ @ + + . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%K. +~+<+j+B+S+@@_@l@h#P@*#<#}#*#P@x@k@(@-@R+A+l+[+,+`.J.`$e$A$R$ %)%1%3%h%o%H.F.D.C.B.B.B.C.E.G.e%n%g%i${%]%h$Q$A$d$b$b$<&`.-+_+l+B+T+=@[@h@W@N@=#t#9%P#x%k%Y@D@q@[&r#~@G+n+L@J#j%E%u.m.d.5.:.).*.` T L E w q j e 9 4 | : ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%L.Y.>+[+j+B+S+#@_@i@w@P@*#t#<#f#N@h#l@<@#@T+B+k+_+!+++L.z$E$g$C$S$+%!%4%5%h%n%p%H.G.F.F.F.G.H.p%n%g%3%1%!%.%S$C$f$c$a$}&j%^+|&o+`+{@7@5@q@C@W@1&#$A#&%2&m#,#3&B@;#5@=&Y+8%o+7+^+$+4&t.l.b.4.1.'.&.Z S K D w p j d 9 4 } _ ^ ~ ' > - * % $ # @ @ + + . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%M.`.,+[+f+w+P+#@(@f@x@P@*#<#<#*#O@A@k@|@*@T+B+j+1+;+Y.-&y$`$e$A$Q$h$+%~%4%3%g%n%n%o%p%p%p%o%n%h%f%i$1%!%.%T$P$D$d$b$+&5&++;+[+i+B+N+%@<@h@y@N@|#t#,$9%<#:#N@y@m@[@-@P+B+l+[+;+Y.J.6&A.k.i.2.(.,.$.Y R J C v o i c 8 3 } _ ^ ! ' ; = * % $ # @ @ + . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%K.Y.;+:+h+w+T+%@[@j@x@Q@*#<#}#:#P@y@g@:@=@Q+v+j+}+~+Y.J.9$a$c$f$B$Q$h$+%!%1%2%3%f%g%h%h%h%g%f%3%2%{%!%+%T$Q$A$e$c$a$7&$+t@7+8&`+0#7@5@q@C@5#k%#$O%.$,$}#D#g#A@j@|@%@P+v+l+K@Y#K+@&9&p.h.9.|.^.>.#.W P I A u n h b 7 3 [ ( ] ! , ; = * % $ # @ + + . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.++>+|+m+v+U+=@}@g@x@N@*#<#t#f#R@W@l@}@$@O+v+j+}+;+Y.J.8$0$z$E$f$B$Q$T$.%)%~%1%2%i$i$i$i$2%4%1%~%]%.%T$Q$A$f$c$z$n%0&a&;+`#l+8@P+-%[@m@W@>#=#z#+$b&@$l#Q#)#6#I@3@,@W+F+)&G%{+I$c&w.n.f.7.}.{.-.+.V O G z s m g a 6 2 [ ( ] ! , ; = & % $ # @ + + . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Y.;+|+i+y+R+@@:@g@A@O@*#<#t#=#N@x@l@:@#@T+B+l+:+;+Y.K.'%|%0$b$E$g$B$Q$S$ %+%)%!%~%{%{%{%~%!%]%.%h$S$P$A$f$E$b$2%d&7% @e&l+B+!@-@[@h@W@>#f#z#c#u#m%f&t$4#Y@B@r@5@7@Y+`+o+7+t@$+g&t.r.d.5.:.!.*. .U M F y r l f 0 5 1 < / { ) , ; = & % $ # @ + + . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.`.,+2+j+y+P+#@(@f@($Q@|#<#B#:#R@x@l@<@@@U+v+i+|+!+Y.J.6$'%9$y$b$E$f$A$C$R$T$h$.%+%+%+%+%.% %h$S$Q$C$D$f$E$b$h&i&b@;+e&v$B+P+-@[@m@W@R@*#[#c#j&u#p$}#*#Q@($m@<@%@O+B+l+[+;+Y.J.,%A.k.i.3._.'.%.Z S L D w q j e 9 5 | : / { ) > - * & % # # @ + + . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%L.`.;+:+k+z+T+#@:@l@y@O@*#<#<#*#P@($g@<@*@P+v+h+_+;+Z.J.k&Y$Z$9$y$z$c$e$g$A$C$Q$R$S$S$S$S$S$R$P$C$A$g$d$c$h$l&>%Y.J+K@U%B+{#-@[@m@W@ $_$z#W#[$W$u#c#<#:#P@W@m@[@%@P+B+l+[+;+`.X$s.o.g.9.|.^.>.#.X Q J B v o i c 8 4 } _ ^ ~ ' > - * & $ # @ @ + + . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.++,+:+k+x+O+@@_@f@x@N@*#<#<#D#N@w@g@1@%@P+y+f+:+>+Y.J.4$k&Y$Z$|%0$z$`$E$e$g$D$A$B$C$C$C$B$A$D$g$e$E$m&n&%##+0+J+p+8%B+P+-@[@m@w@>#D#e#+$[$o&:$+$z#=#t%W@B@N%@#S#V%U%o+;+^+%+p&t.r.d.6.<.~.-...V O G z t m h b 7 2 [ _ ] ! ' ; = * % $ # @ @ + + . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%q&Z.,+<+j+A+P+$@<@i@w@N@*#<#<#D#Q@A@h@:@@@S+B+j+[+;+Z.J.r&s&k&Y$'%|%O$y$z$`$E$d$e$f$f$f$T$2%t&u&v&w&x&y&n$Y.D%L@p+H+B+j#-@[@k@W@>#_$o$p$j&z&W$:$c#z#m#,#)$H@[@-@!@T#`+o+ @b@A&w$q.j.i.3._.'.&.` T M E x r l f a 6 1 < ( { ! , ; = & % $ # @ + + . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.B%!+[+f+x+O+-@<@k@x@N@*#<#c#<#f#P@z@l@_@@@P+A+l+_+>+`.L.J.M.J.K.L.J.J.J.-&J.J.J.J.M.J.J.B&A&A&#+I$`.K+<%;+J%o+l+B+P+-@[@m@W@ $=#t#9%q$<$:$u#.$t#m#>#)$=%r@-%u%T#8%p+ @r+$+C&u.n.f.8.}.].>.#.X Q J C v p j d 9 4 | : / { ) , - = & % $ # @ + + . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%q&Y.;+_+l+y+Q+$@_@g@A@P@|#<#c#c#}#*#O@x@g@<@$@T+y+l+[+;+Z.Y.Y.Y.Y.Z.`..+Y.Y.Y.++Z.Y.Y.Z.Y.a&Y.b@{+/$)+Y#D&[+n+`+B+P+-@[@m@W@>#>$e#-$$%q$L#+$,$f&}#E&p#W@m@[@-@P+^#]@[+7+K+%+F&A.k.b.4.:.!.=...U O H A t n h c 8 3 } _ ^ ~ ' > - * & $ # # @ + + . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J. +;+<+l+A+P+#@:@l@y@P@*#<#c#u#N#}#f# $h#k@_@@@R+y+k+}+>+>+;+!+;+,+~+,+;+;+;+!+;+!+!+;+;+Y#8+ @5+4+2+K@n+i+F+{@P+-@[@m@W@>#D#<#+$G&+$c#W#z#<#*%*#|#N@m@S@@#S#B+U%`#Y#7%$+H&u.n.f.8.|.^./.$.Z S L E x r l f a 6 2 [ ( ] ! ' ; = * % $ # @ @ + + . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Y.;+}+l+z+P+*@:@l@A@N@:#<#c#I&u#p$}#*#O@x@k@(@$@S+z+l+1+1+_+:+[+_+<+:+<+|+[+[+[+}+|+[+[+[+[+p+I#n+m+v$F+B+W+7@-@[@m@W@>#=#o$+$W#J&A#<#<#m#*#t%O@O@h#H@S@&@S+v+j+[+;+Y.K&8.q.k.b.4.:.!.-.+.V P I B v o j d 9 5 | < / { ) , ; = & % $ # @ + + + . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Z.;+:+l+y+T+=@<@g@A@N@*#<#c#u#L&u#9%<#*#Q@h#f@:@%@P+z+l+l+k+h+i+j+g+i+f+k+j+j+h+k+j+l+h+l+H+`+G+F+C+Y+W+P+M&-%[@m@W@ $=#}#O%z#[#M$,&D#*#$$N@!#A@x@m@T@1@O+y+h+[+>+Y.J.N&t.m.e.8.|.^.,.%.Z T M F y s m g b 7 3 } _ ^ ~ ' > - * & % $ # @ + + . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.++;+_+l+A+U+&@<@g@w@N@*#<#c#O&P&L&u#c#<#*#O@x@g@1@@@S+w+C+B+z+B+y+C+y+A+v+v+y+w+C+y+x+B+B+B+B+{@]#R+P+,@-@+#N%m@W@>#D#l#Q&=#>$>$o#>#Q@N@Z@h#C@g@k@}@-%=@O+A+l+[+;+Y.R&s.o.h.i.3.:.!.=.+.W P I C v p k e 0 6 1 < ( ] ! ' ; - * % $ # @ @ + + . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Y.,+[+l+y+P+=@:@m@w@O@|#<#c#0%L&S&L&u#W#<#*#Q@w@i@[@@@O+Q+Q+O+R+T+Q+U+O+P+R+T+Q+U+N+R+O+P+{#!@7@,@@@@#3@|@I@1#W@>#_$>$:#o#p#>#N@'#Y@A@x@=%f@r@}@(@-@P+U+z+B+f+_+,+T&f.q.k.c.6.[.]./.$.Z T M F z s n h c 8 4 | : / { ) , ; = & % $ # @ @ + + . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Y.>+:+j+v+Q+@@<@h@w@N@*#<#c#u#P&U&S&L&u#c#<#*#O@A@h@<@$@@@@@@@@@#@%@-@%@*@&@@@=@#@@@%@=@-@!$!$V&+#<@[@o@m@6#!#>#k%R@g#Q@'#!#W@y@E@1#g@l@S@<@W%%@@@N+V%B+l+l+[+;+W&X&s.r.e.8.0._.'.*...V P I C v p k f a 6 2 [ _ ] ~ ' > - * & % $ # @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Y.>+<+i+B+N+%@<@l@W@Q@:#<#c#u#L&Y&Z&S&L&u#p$<#*#P@A@i@:@:@_@<@(@<@_@<@|@}@_@|@(@|@_@|@[@[@[@;#q@o@g@m@E@($)#_&X@Y@W@A@y@]&C@m@f@`&q@}@:@-@#@7@U+P+y+H+j+[+[+~+ *.*t.m.g.a.3.:.~.-.@.X S L E y s m h c 8 4 | : / { ) , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Y.>+[+l+A+Q+&@}@g@x@N@*#<#c#I&L&S&+*@*S&L&u#c#<#*#O@x@j@k@m@k@f@h@k@j@l@j@l@g@l@l@l@g@g@l@m@1#D@E@x@#*G@G@6#C@C@=%m@m@f@`&q@|@(@+#W%-@&@u%O+{@y+B+g+/%[+>+;+$*%*t.n.g.i.4.<.{.>.%.` U N H B v p j e a 6 2 [ _ ^ ~ ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J..+;+2+l+A+O+*@<@i@x@P@*#<#c#0%L&S&Z&@*&*L&[$W#<#*#P@W@l@j@f@i@h@j@m@i@f@l@l@g@g@h@i@j@j@i@l@h@l@g@g@g@****o@`&q@;#[@_@1@4@5@-@=@,@7@P+R+B+z+`+j+h+}+7+;+Z.=*-*t.n.h.b.5.[.^.,.&...V P J D x r m g c 8 4 | : / { ! , ; = * & $ # # @ + + . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%L.Y.;+|+j+C+Q+$@_@i@x@O@|#[#c#u#;*>*,*S&L&u#W#t#*#Q@x@g@(@}@<@(@<@(@<@(@|@_@}@|@|@(@<@}@[@:@|@_@[@<@<@<@H%H%+#+#5@;$-@#@-@,@7@P+P+W+{@B+x+]@l+o+[+[+>+Y.`.'*j.s.n.h.b.5.}.(.'.*.+.W R L F z t o i d 0 6 2 [ _ ^ ~ ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Y.!+|+m+y+U+@@|@l@w@R@:#<#c#u#L&S&S&L&u#c#o$>$N@y@l@[@=@=@$@$@=@@@-@$@#@%@-@&@&@$@@@=@=@*@=@&@*@@@@@@@6@@@>@)@)*7@P+P+O+W+{@B+A+F+]@j+l+p+[+7+'+;+B%!*~*u.A.m.g.i.5.}.(.).=.@.Y S M G A v p k f b 7 3 } : / { ! , ; - * & % $ # @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%K.Y.;+[+i+A+Q+=@<@g@z@N@*#}#c#u#P&S&z&u#N#<#>$O@h#f@1@=@U+R+T+O+N+N+R+P+T+T+T+Q+N+O+S+P+N+P+S+S+O+R+R+R+V+W+]#W+{@u$T#w+v+F+/#l+l+n+`#[+|+J+,+^+`.++{*]*v.q.l.f.a.5.}.(.).-.#.Y T N H C w r m h c 9 5 1 < ( ] ~ ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.++'+}+i+v+O+%@|@k@w@Q@*#<#c#0%^*L&u#p$<#*#O@x@g@}@@@P+x+v+y+z+A+B+y+B+z+v+A+x+A+z+y+z+A+B+v+v+x+z+w+A+E+x#F+9@/#v$H+g+i+a@o+K@_+Z#7+!+;+Y.Y./*(*.*x.s.n.j.d.9.4.[.^.'.-.#.Z U O I D x s n i d 0 6 2 } _ ^ { ) , ; = * & % $ # @ + + + . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.`.!+[+f+A+S+&@<@g@y@N@f#<#c#0%L&u#W#}#|#N@x@j@1@$@U+v+l+h+l+l+l+l+l+l+l+h+l+g+h+k+j+h+i+i+l+l+m+g+f+f+m+m+{&n+o+o+[+<+:+5+_*;+,+{+7%Y.Y.$+:*<*u+u.p.r.g.b.7.2.<.].'.=.@.Z U O J D y t o j f a 7 3 | : / ] ! ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Y.;+[+j+w+Q+-@1@g@x@N@*#<#c#u#u#p$t#:#N@A@l@(@%@O+B+j+1+:+[+[+:+[+_+:+1+[+:+[+[+|+[+:+[+|+[+_+[+1+2+2+2+3+G%5+L@7+Y#;+!+D%^+a&B%#+$+[*}*_#y.u.q.m.j.d.a.5.|.1.{./.*.@.Y U O J E y t o k f b 8 4 1 < ( ] ~ ) , ; = * % $ # # @ + + + . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Y.;+[+l+v+R+*@1@l@x@N@*#<#c#u#c#[#*#Q@y@l@_@*@N+y+l+:+;+;+,+>+-+>+;+;+;+>+!+;+;+!+;+,+,+)+;+>+'+>+)+!+)+D%<%{+|*^+r+Y.Y.@+^$J.d&U.1*x.w.t.q.m.j.e.i.7.2.[.(.!.>.&...X T O J E z u p k g c 9 5 1 [ _ ^ { ) , ; - * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.`.,+_+h+y+N+*@}@f@x@P@f#<#c#W#<#D# $W@l@(@-@U+v+l+:+!+Z.Z..+ +Y.Z.Y.Y.`.Y.`.`.Y.Y.Z.Y.Y.Y.Y.`.B%`.++@+@+2*#+#+j%$+b+3*4*5*6*l.z.x.u.A.o.r.j.e.i.7.3.}.1.{.,.-.$. .W S N I D y t p k g c 9 5 2 } : / { ! ' > - = & % $ # # @ + + + . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.++,+<+l+z+N+%@|@l@A@N@*#<#c#t#*#R@($f@[@*@S+A+f+[+;+ +M.J.J.J.J.J.L.J.J.J.J.J.J.J.L.J.J.J.J.7*&+8*9*`%0*a*b*V.W.c*l.d*I.y.w.u.A.p.m.k.g.d.i.7.3.|.:.].).>.&.@.Z U Q M H C y t p k g c 9 6 2 } : / ] ~ ' > ; = * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.B%!+:+l+A+P+*@_@f@z@N@*#<#<#*#>#x@k@_@*@O+v+l+|+>+Y.L.4$k&Y$Z$9$a$`$d$g$B$Q$T$.%)%~%1%i$5%g%n%n%p%H.G.E.D.B.I.y.x.v.t.A.p.n.r.k.g.e.b.9.6.2.}.1.^.!./.*.#. .X T P K G B x s o k g c 9 6 3 } < ( ] ~ ) , ; - * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%K.Y.;+_+m+B+O+-@(@i@w@N@|#<#<#f#O@($l@[@#@O+v+i+[+,+Z.J.k&Y$Z$O$a$c$e$A$P$T$.%)%{%2%5%g%n%p%H.F.D.B.I.y.w.v.t.s.q.o.n.r.k.h.f.d.i.9.6.3.|.<._.].)./.=.$...Y U R M I E A v r n j g c 9 6 3 | < ( ^ ~ ) , ; - * & % $ # # @ + + + . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Z.;+1+h+C+R+$@<@i@x@N@:#<#}#f#Q@($k@}@$@U+B+j+:+>+Z.J.Y$8$O$z$E$f$B$R$ %]%{%2%f%n%p%H.E.C.z.x.v.t.A.q.o.m.r.k.h.g.e.c.i.9.7.5.3.|.[.1.^.~.'.>.*.$...Y V S O K G C y u q m i f b 9 6 2 } < ( ^ ~ ) , > - = & % $ $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Y.;+<+k+C+R+#@_@g@($P@*#<#<#_$Q@y@j@1@&@T+w+j+|+;+Y.J.Z$O$a$E$g$C$S$.%!%4%5%h%p%G.D.I.x.u.s.p.n.r.k.h.g.e.c.b.a.8.6.5.3.0.}.:._.^.~.)./.-.&.#. .Y V S P L H D A w s p l h e b 8 5 2 } < ( ^ { ! ' > - = * & % $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Y.!+_+h+C+O+@@:@i@w@N@*#<#<#:#N@w@j@}@=@Q+z+l+[+;+++J.9$a$c$g$C$S$+%~%i$g%o%G.C.z.v.s.p.m.l.h.f.d.b.a.8.6.5.3.0.}.[.:._.^.{.!.'.>.-.&.$.+.` X U S O L I E B x u q n j g d a 7 4 2 } : ( ^ ~ ! ' > - = * & % $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Y.~+<+l+w+P+$@1@g@w@N@*#<#}#D#R@y@i@(@%@O+v+l+|+;+Y.J.y$`$f$C$S$+%{%i$h%e%E.I.w.s.o.r.j.f.c.a.8.6.3.0.}.[.:._.^.].~.).,.>.-.*.%.#.+.` Y V T Q N K H E B y v r o l i e b 9 6 4 1 [ : ( ] ~ ) ' > ; = * & % $ # # @ + + + . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.++;+<+h+v+T+*@<@l@x@N@*#<#<#|# $($h@_@-@R+x+l+|+;+`.J.b$e$B$R$.%{%3%n%H.D.y.t.p.r.h.e.i.8.5.2.|.<.1.(.].~.).'./.;.-.*.%.#.+. .Z X V T R O M J G D A y v s p m j g d a 8 5 3 | [ _ / ] ~ ) ' > ; = * & % $ # # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Y.;+}+g+z+U+#@_@g@($N@f#<#t#*#O@w@m@_@*@Q+z+h+<+;+Y.J.E$D$Q$ %~%i$h%H.C.x.s.n.k.e.i.8.4.0.<.1.^.~.).,.>.-.*.%.$.@...` Z X V U S Q O M J H E C z x u r p m j g e b 9 7 4 2 } < _ / ] ~ ) , > - = * & % $ # # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f m s z H P W @.>.^.0.a.j.A.I.e%J.Z.!+[+k+B+R+#@:@l@y@O@*#[#<#*#N@A@g@1@$@O+B+j+[+;+Y.J.f$C$h$)%2%h%e%C.x.A.m.h.c.9.4.|.:.(.{.)./.-.*.%.#.+. .Z X W U T S Q O M K I G E C A y v t q o l j g e b 0 7 5 3 | [ : ( ^ { ! ) , > - = * & % $ # # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s z H O W @.>.^.0.a.j.A.I.e%J.Y.!+:+i+B+T+=@_@g@A@N@*#<#<#f#N@A@g@}@&@O+v+l+:+-+`.J.A$R$+%1%f%p%D.x.s.m.g.b.7.2.[._.{.'.;.*.$.@. .Z X V U S R P N M K I H F D B z x v t r p n k i g e b 0 8 5 3 1 } < _ / ] ~ ! ' , ; - = * & % $ # # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s z H O W @.>.^.0.a.j.A.I.e%J.Y.;+<+f+B+Q+$@_@g@x@P@*#<#<#D#R@y@g@(@#@S+z+l+:+;+`.J.P$ %~%3%n%F.y.s.m.g.i.6.0.:.].'.;.&.#...Z W U S Q O M K J H G E C B z y w u s r p n l j h f d b 0 7 5 3 1 } < _ ( ^ { ~ ) ' > ; - = * & % $ # # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s z H O W @.>.^.0.a.j.A.I.e%J.Z.;+2+k+x+N+&@(@f@A@N@*#<#[#|#Q@x@f@(@-@Q+B+k+[+;+++K.R$+%4%g%H.B.u.o.j.b.6.0.1.{.,.=.$...Y V T Q O L J H F D C A z x w u s r p o m k j h f d c a 9 7 5 3 1 } [ : ( ^ ] ~ ! ' , > - = * & % % $ # # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s z G O V @.>.].|.9.h.q.z.H.L.Y.~+<+h+v+P+*@(@g@x@N@f#<#<#*#O@x@i@:@*@P+v+j+_+;+Y.K. %~%3%o%D.w.q.k.c.7.0.1.~./.*.@.Z V T P M J H E C A y w v t s q p n m l j i g f d b a 9 8 6 4 3 1 } < : ( / ] { ! ) , > ; - = * & % $ $ # # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 6 a f l s z G O V @.>.].|.9.h.q.z.H.L.Y.!+_+f+x+N+#@<@f@h#N@*#[#t#>$ $y@l@}@=@T+A+l+[+;+Z.K.+%4%g%H.I.t.m.f.9.2.:.{./.&.+.Y U Q N J G D A y w u s q o n m k j h g f d c b 0 9 7 6 4 3 1 | [ < _ ( / ] { ! ) ' , ; - = * * & % $ $ # @ @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 a f l s z G O V @.;.].|.9.h.q.z.H.K.Y.;+|+h+x+P+-@<@g@w@N@|#<#[#:#O@z@l@[@=@U+B+k+|+,+Z.J.)%i$n%E.x.q.j.b.5.[.^.,.*.+.Y U P L H D A x u s q o m k j h g e d c b 0 9 8 7 5 4 3 2 | } [ : _ ( ^ ] { ! ) ' , > ; - = * & % % $ # # @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l s z G O V +.;.].|.9.h.q.y.H.J.B%;+:+l+v+Q+&@1@i@x@O@f#<#t#|#N@A@h@(@%@Q+x+f+[+-+Y.J.{%f%e%I.t.m.e.8.0._.).=.@.Y U P K F B y u r p m k i g f d c a 0 9 8 7 6 4 3 2 1 | } [ : _ ( / ^ ] ~ ! ) ' , > ; - = * & & % $ $ # # @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l s z G O V +.;.].|.9.h.q.y.H.M.Y.;+_+g+B+Q+@@_@j@y@P@*#<#[#|#g#W@l@|@&@P+w+l+[+;+Y.J.4%h%G.y.A.k.b.5.<.{.>.%.` U P K F B x t q n k h f d b a 9 8 7 5 4 3 2 1 | } [ < : _ ( / ^ ] { ~ ! ) ' , > ; - = * * & % % $ # # @ @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / < 1 5 0 f l r y G O V +.;.].}.8.g.p.y.G.J.Y.;+1+m+A+R+-@<@g@x@N@*#<#[#|#g#($g@[@-@S+v+h+_+;+Y.J.i$o%D.v.o.g.9.0._.).=.+.W R L G B w s o l i f d a 0 8 6 5 3 2 1 | } [ < : _ ( / / ^ ] { ~ ! ) ' , , > ; - = = * & % % $ $ # # @ @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) { / : 1 5 0 f l r y G N V +.;.{.}.8.g.p.y.G.M.Y.)+|+k+v+R+-@|@g@y@O@f#<#<#:#Q@A@h@[@=@N+B+l+|+;+++J.5%e%B.t.r.d.6.[.].>.$.Z U N H C x s o k h e b 9 7 5 4 2 1 } [ < : _ ( ( / ^ ] { ~ ~ ! ) ' ' , > ; - - = * * & % % $ $ # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) ~ / : | 5 0 f l r y F N U +.-.{.}.8.g.o.x.F.J.Z.,+2+i+y+S+=@}@k@x@N@*#<#o$*#P@x@f@<@%@N+x+f+[+;+Y.L.g%G.z.A.k.b.4.:.!.=.+.W Q K E z t p l h d a 8 6 4 2 | [ < : _ ( / ^ ] { { ~ ! ) ) ' , , > ; ; - = = * & & % % $ $ # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ) ~ / : | 5 0 e k r y F N U ..-.~.[.7.f.o.w.E.-&Y.;+[+m+z+P+@@1@g@y@N@|#<#<#>$Q@($j@[@$@N+z+l+_+;+++L.n%E.w.o.g.9.0.(.,.%.` U N H B v q l h d a 8 5 2 | [ < _ ( / ^ ] { ~ ! ! ) ' ' , > > ; ; - = = * * & & % % $ $ # # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ~ ^ : | 5 0 e k q x E M U .=.~.<.6.e.n.v.D.J.Y.;+|+m+v+P+$@1@f@x@Q@*#<#<#*#Q@z@i@}@-@N+z+l+}+;+B%K.p%C.u.m.e.7.[.{.;.#.X R K E y s n j e a 8 5 2 } < _ ( ^ ] { ~ ! ) ' ' , > > ; ; - - = = * * & & % % $ $ $ # # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ~ ^ : | 4 9 e k q x E M U .*.!.<.6.d.m.u.C.J.++;+<+g+z+R+@@<@g@A@O@:#<#<#f#O@x@l@|@%@O+B+g+_+>+Y.J.e%I.s.l.c.4.:.!.=...V P I B v q l g c 9 5 2 } < _ / ] { ! ) ' ' , > ; ; - - = = * * * & & % % % $ $ # # # @ @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ % * - > ' ~ ^ : | 4 9 d j q w D L T ` &.).:.4.c.r.t.B.J.Y.;+_+j+w+P+#@[@g@x@N@*#<#<#>$Q@A@l@:@&@Q+y+j+<+;+Y.-&F.x.q.h.a.2._.,.%.` T M F z t n i d 0 6 2 } < ( ^ { ~ ) ' , > ; ; - - = = * * & & & % % % $ $ $ # # # @ @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . + + @ @ # $ % * - > ' ~ ^ _ } 4 9 d j p w D K S Z &.'.1.3.b.k.s.I.J.Y.;+|+l+C+Q+#@_@g@A@g#*#<#[#*#O@x@l@_@=@N+v+j+[+;+Y.J.D.v.n.f.8.|.^.>.#.Y R K D x r l g b 8 4 1 < _ ^ { ! ) ' > ; - - = * * & & & % % % $ $ $ # # # # @ @ @ @ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + @ @ # $ % * - > ' ~ ^ _ } 3 8 c i o v C J R Y $.,.(.2.a.j.q.y.L. +!+:+j+B+S+$@<@g@x@g#*#D#*#|#O@x@i@1@-@U+B+l+|+!+Y.M.I.t.r.d.6.<.~.-.+.V P I B u o j e 0 6 2 } : / ] ! ) , > ; - = * * & & % % $ $ $ $ # # # # @ @ @ @ + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % * = ; ' ! ] _ } 3 8 c i o u B I Q X #.>.^.|.8.g.o.w.K.Y.;+:+i+v+T+=@:@g@z@N@Q@O@g#O@R@($k@(@&@R+z+i+|+!+Y.q&y.q.k.b.3.1.).*. .U N G z t n h c 9 4 1 < ( ^ ~ ) , > ; - = * & % % % $ $ # # # # @ @ @ @ @ + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % * = ; ' ! ] ( [ 3 7 b h n t A H P W @.;.{.[.7.e.m.u.J. +>+<+f+v+T+$@(@j@y@A@z@z@x@h#y@z@g@|@-@Q+z+h+[+-+Y.J.v.o.g.9.0.(.,.%.Z S L E x r l f a 7 3 } _ / { ! ' > - = * & % % $ $ # # # # @ @ @ @ @ + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ! ] ( [ 2 7 b g m s z G N U ..=.!.:.4.b.k.A.M.Y.>+<+j+w+U+%@[@i@j@m@k@k@j@m@f@l@h@<@%@S+A+l+[+,+++J.s.r.d.6.[.{.;.@.X Q J C v p j e 0 5 1 [ ( ] ~ ' , ; = * & % % $ # # # @ @ @ @ + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ! { ( < 1 6 a f l r y F M T ` &.'._.2.a.h.o.J.B%-+:+k+A+R+@@<@_@}@[@(@:@(@[@_@1@|@<@%@R+y+l+<+;+.+K.p.j.i.3.:.!.=...U O H A t n i c 8 4 | : / { ! , > - = & % $ $ # # @ @ @ + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & = ; , ) { / < 1 5 0 e k q w D K S Y $./.].}.7.e.r.K.Y.,+[+g+A+S+-@%@%@$@%@$@#@&@#@&@-@@@-@#@S+z+l+1+'+Y.J.m.f.8.0.(.,.%.` T M F y s m g b 7 3 } : ^ { ) , ; = * & % $ # # @ @ @ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # $ % & * - > ) { / : | 4 9 d j p v C I Q W @.-.~.:.4.i.j.J.Y.;+}+i+z+P+N+R+U+P+R+P+O+P+P+P+P+U+S+P+Q+x+i+[+;+Z.J.j.b.5.<.{.;.#.X R K D w q k f a 6 2 [ ( ] ~ ' > - = & % $ # # @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ # # $ & * - > ' ~ ^ _ } 3 8 c h n t A H O U .*.'.(.0.8.e.J.Y.;+1+g+z+B+B+y+v+A+B+y+B+y+B+x+z+y+B+z+y+z+l+[+>+ +K.f.9.2._.).=...V P I B v p j d 0 5 1 < ( ] ! ' ; - * & % $ # @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ @ # $ & * - > ' ! ] _ [ 2 7 b g l r y E L S Y #.;.{.<.4.i.J.Y.-+:+g+l+h+l+h+h+l+k+m+h+l+j+l+j+k+h+g+i+l+i+[+~+Y.J.i.4.<.{.>.$.Z S M F y s m h b 8 3 } : ^ ~ ) , ; = & % $ # # @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; , ! ] ( < 1 6 0 e k q w C J P V ..*.'.(.|.6.L.Y.>+[+[+|+_+[+[+|+}+<+_+<+[+<+[+|+|+[+:+|+[+[+_+;+Y.J.7.|._.).=.+.W Q J D w q l f a 7 2 [ _ ^ ~ ' > - = & % $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . + + + @ # $ % & = ; , ) { / < | 4 9 d i o t z G M T Z #.;.~.1.2.J.Y.;+;+'+;+;+;+;+-+~+;+;+!+,+!+'+;+;+!+;+-+;+;+;+!+Y.J.2.:.~.>.$.Z U N G A u o j e 0 5 1 < ( ] ! ' > - * & % $ # @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ # $ % & = - > ) ~ ^ _ } 3 7 b g l r x D J P V .&./.{.<.J.Y.Z.Y.`.Y.Y.Y.Y.Y.Y.`.Z.++Z.Y.Y.Y.Y.Y.`.++Z.Y.Y.B%Y.M.<.{./.&. .V P J D x r l g b 7 3 } _ ^ ~ ) > - = & % $ # @ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ # # % & * - > ' ! ] ( [ 2 6 0 e j o u A G M S X +.*.,.].M.J.J.J.J.{$J.J.J.J.J.J.J.J.M.J.J.L.L.M.J.J.M.J.J.J.J.J.].,.*.+.X S M G A u o j e 0 6 2 [ ( ] ! ' > - * & % # # @ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; , ! { / < | 4 8 c h m r x C I O U Z #.=.'.].:.0.6.a.d.g.k.m.o.q.A.s.s.s.s.A.q.o.m.k.g.d.a.6.0.:.].'.=.#.Z U O I C x r m h c 8 4 | < / { ! , ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & = ; , ) ~ ^ _ } 2 6 a e j o u z E K Q U ` #.-.'.].1.}.3.7.a.c.f.h.j.l.r.r.r.r.l.j.h.f.c.a.7.3.}.1.].'.-.#.` U Q K E z u o j e a 6 2 } _ ^ ~ ) , ; = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ # $ % & * - > ' ! ] ( < 1 4 9 c g l q v A G L Q V ` #.=./.!.(.:.|.3.5.8.a.i.c.c.d.d.c.c.i.a.8.5.3.|.:.(.!./.=.#.` V Q L G A v q l g c 9 4 1 < ( ] ! ' > - * & % $ # @ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ # # $ & * = ; , ) { / : } 2 6 0 e i n s w B G L Q U Z +.&.;.'.~.^.1.[.|.2.3.4.5.6.6.5.4.3.2.|.[.1.^.~.'.;.&.+.Z U Q L G B w s n i e 0 6 2 } : / { ) , ; = * & $ # # @ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & = - > ' ~ ] ( < | 4 8 b f j o s x C G L Q U X .#.*.;.,.!.{.^._.1.:.<.<.<.<.:.1._.^.{.!.,.;.*.#. .X U Q L G C x s o j f b 8 4 | < ( ] ~ ' > - = & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . + + + @ # $ % & * - ; , ) { ^ _ [ 2 5 9 c g k o t x B G K O S V Y ..#.&.=.;./.'.).!.~.~.~.~.!.).'./.;.=.&.#...Y V S O K G B x t o k g c 9 5 2 [ _ ^ { ) , ; - * & % $ # @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % * = ; > ' ~ ] ( : | 3 6 0 d g k o s w A E I M P T V Y ` +.#.$.&.*.=.-.-.-.-.=.*.&.$.#.+.` Y V T P M I E A w s o k g d 0 6 3 | : ( ] ~ ' > ; = * % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * - ; , ) ~ ^ ( < | 3 7 0 d g k o s v z C G J M P R U V X Z ` ...+.+.+.+... .` Z X V U R P M J G C z v s o k g d 0 7 3 | < ( ^ ~ ) , ; - * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . + + + @ # # $ % & = - > ' ! { / _ [ 1 4 7 0 d g j n q t x A D F I K N P Q S T U U U V V U U U T S Q P N K I F D A x t q n j g d 0 7 4 1 [ _ / { ! ' > - = & % $ # # @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * = ; , ' ~ ] / : [ 1 4 7 0 c f i l o r u x z C E G I J L M N O O O O O O N M L J I G E C z x u r o l i f c 0 7 4 1 [ : / ] ~ ' , ; = * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . + + + @ # # $ % & = - ; , ) ~ ] / : [ 1 4 6 9 b e h j m p r t w y z B D E F G G H H H H G G F E D B z y w t r p m j h e b 9 6 4 1 [ : / ] ~ ) , ; - = & % $ # # @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # $ % & * = - > , ) ~ ] / : [ | 3 5 8 0 c e h j l o q r t u w x y z z A A A A z z y x w u t r q o l j h e c 0 8 5 3 | [ : / ] ~ ) , > - = * & % $ # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ % & * = - > , ) ~ ] / _ < } 2 4 6 8 a c e g i j l n o p q r s s s t t s s s r q p o n l j i g e c a 8 6 4 2 } < _ / ] ~ ) , > - = * & % $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # # $ % & * = ; > ' ) ~ ] / ( : [ | 2 4 6 8 0 b d e g h i j k l l m m m m m m l l k j i h g e d b 0 8 6 4 2 | [ : ( / ] ~ ) ' > ; = * & % $ # # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = ; > , ) ~ { ^ ( : < } 1 3 4 6 8 9 0 b c d e f f g g h h h h g g f f e d c b 0 9 8 6 4 3 1 } < : ( ^ { ~ ) , > ; = * & % $ $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = - > , ' ! ~ ] ^ ( _ < [ | 1 3 4 5 6 7 8 9 0 0 a a a b b a a a 0 0 9 8 7 6 5 4 3 1 | [ < _ ( ^ ] ~ ! ' , > - = * & % $ $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # $ $ % & * = - ; , ' ) ~ { ] / ( _ < [ } | 1 2 3 4 5 5 6 6 7 7 7 7 7 7 6 6 5 5 4 3 2 1 | } [ < _ ( / ] { ~ ) ' , ; - = * & % $ $ # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . + + @ @ # # $ $ % & * = - ; > , ' ! ~ { ] ^ / _ : < [ [ } | 1 1 2 2 2 2 3 3 2 2 2 2 1 1 | } [ [ < : _ / ^ ] { ~ ! ' , > ; - = * & % $ $ # # @ @ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ # # $ $ % & * * = - ; > , ' ) ! ~ { ] ^ / ( _ _ : : < < [ [ [ [ [ [ [ [ < < : : _ _ ( / ^ ] { ~ ! ) ' , > ; - = * * & % $ $ # # @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ @ # $ $ % & & * = - ; ; > , ' ) ! ~ ~ { ] ] ^ / / / ( ( ( ( ( ( ( ( ( ( / / / ^ ] ] { ~ ~ ! ) ' , > ; ; - = * & & % $ $ # @ @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + @ @ @ # # $ $ % & & * = - - ; > , , ' ) ) ! ! ~ ~ { { { { ] ] ] ] ] ] { { { { ~ ~ ! ! ) ) ' , , > ; - - = * & & % $ $ # # @ @ @ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ # # $ $ % % & * * = = - ; ; > > , , ' ' ) ) ) ! ! ! ! ! ! ! ! ! ! ) ) ) ' ' , , > > ; ; - = = * * & % % $ $ # # @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ # # $ $ % % & & * * = = - - ; ; > > > , , , , , , , , , , , , , , > > > ; ; - - = = * * & & % % $ $ # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ # # $ $ $ % % & & * * * = = = - - - - - ; ; ; ; ; ; ; ; - - - - - = = = * * * & & % % $ $ $ # # @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ @ # # $ $ $ % % % & & & & * * * * = = = = = = = = = = = = * * * * & & & & % % % $ $ $ # # @ @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + @ @ @ @ # # # # $ $ $ % % % % % & & & & & & & & & & & & & & & & % % % % % $ $ $ # # # # @ @ @ @ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + @ @ @ @ # # # # $ $ $ $ $ % % % % % % % % % % % % % % % % % % $ $ $ $ $ # # # # @ @ @ @ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + @ @ @ @ @ @ # # # # # # # # # # # # # # # # # # # # # # # # @ @ @ @ @ @ + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ # # # # # # @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "} +------------------------------------------------------------------------------ +export constant icon = create(GtkImage,xpm_to_pixbuf(p_xpm)) +------------------------------------------------------------------------------ diff --git a/eugtk/examples/examples/icons.ex b/eugtk/examples/examples/icons.ex new file mode 100644 index 0000000..7d0fd77 --- /dev/null +++ b/eugtk/examples/examples/icons.ex @@ -0,0 +1,224 @@ + +--------------------------------------------------------------- +--# Categorize, search, and display available icons. +-- tooltip for each icon displays the actual file path to that icon. +--------------------------------------------------------------- + +include GtkEngine.e +include std/sort.e +include std/wildcard.e +include std/datetime.e + +constant docs = { +`Themed Icons + +Select an icon category below, then click OK, +or enter a search string in the box at bottom, +and click Find or hit enter. +`, + +`Enter a search string here, + hit enter or click the find button`, + +` +--------------------------------------------------------- +-- NOTE: this file will be regenerated when you -- +-- run icons.ex, and will probably show different -- +-- icons from the ones I've listed here, since they -- +-- vary depending upon the window theme in use. -- +--------------------------------------------------------- + +`} + +-- load current icons in default theme; +atom theme = create(GtkIconTheme) +object contexts = get(theme,"list contexts") + +-- write icon names to a text file for later reference; +atom fn = open(locate_file("resources/themeicons.txt"),"w") +puts(fn,docs[3]) +puts(fn,datetime:format(datetime:now(),"Generated %A %B %d, %Y ")) +printf(fn,"by %s on %s\n\n",{user_name,host_name}) +object icons = repeat(0,length(contexts)) +for i = 1 to length(contexts) do + contexts[i] &= 0 + icons[i] = sort(get(theme,"list icons",contexts[i])) + contexts[i] = {contexts[i],length(icons[i])} + printf(fn,"Context: %s\n\t%d Icons:\n",contexts[i]) + for n = 1 to length(icons[i]) do + printf(fn,"\t\t %s\n",{icons[i][n]}) + end for + puts(fn,"\n") +end for +close(fn) + +constant iconwin = create(GtkWindow,{ -- window for display of icons; + {"default size", 640,600}, + {"deletable",FALSE}, + {"type hint",GDK_WINDOW_TYPE_HINT_MENU}, + {"position",GTK_WIN_POS_CENTER}, + {"icon","emblem-system"}}) + +constant iconpanel = create(GtkBox,VERTICAL) + gtk:add(iconwin,iconpanel) + +constant iscroller = create(GtkScrolledWindow) + pack(iconpanel,iscroller,TRUE,TRUE) + +constant iv = create(GtkIconView,{ + {"text column",1}, + {"pixbuf column",2}, + {"item width",90}, + {"columns",4}, + {"tooltip column",3}}) + gtk:add(iscroller,iv) + +constant istore = create(GtkListStore,{gSTR,gPIX,gSTR}) -- icon list; + set(iv,"model",istore) + +constant mainwin = create(GtkWindow,{ -- main window; + {"title","System Icons"}, + {"default size",300,400}, + {"border width",10}, + {"move",0,0}, + {"icon","emblem-system"}, + {"connect","destroy",_("Bail")}}) + +constant panel = create(GtkBox,VERTICAL) + gtk:add(mainwin,panel) + +constant lbl = create(GtkLabel) + set(lbl,"markup",docs[1]) + gtk:add(panel,lbl) + +object catstore = create(GtkListStore,{gSTR,gINT}) -- category list; + set(catstore,"data",contexts) + +constant tv = create(GtkTreeView,{ + {"model",catstore}, + {"margin bottom",5}, + {"tooltip text","Select a category, then click the OK button"}}) + pack(panel,tv,TRUE,TRUE) + +constant selection = get(tv,"selection") + set(selection,"mode",GTK_SELECTION_SINGLE) + +constant rend1 = create(GtkCellRendererText), + col1 = create(GtkTreeViewColumn,{ + {"pack start",rend1}, + {"add attribute",rend1,"text",1}, + {"title","Category"}}) + +constant rend2 = create(GtkCellRendererText), + col2 = create(GtkTreeViewColumn,{ + {"pack start",rend2}, + {"add attribute",rend2,"text",2}, + {"title","# of icons"}}) + set(tv,"append columns",{col1,col2}) + +constant btn1 = create(GtkButton,"gtk-quit",_("Bail")), + btn2 = create(GtkButton,"stock_search#_Search"), + btn3 = create(GtkButton,"gtk-ok"), + btnbox = create(GtkButtonBox) + + connect(btn2,"button-press-event",_("on_btn_down")) + connect(btn2,"clicked",_("Search")) + + connect(btn3,"button-press-event",_("on_btn_down")) + connect(btn3,"clicked",_("DisplayIcons")) + + gtk:pack(panel,-btnbox) + gtk:add(btnbox,{btn1,btn2,btn3}) + set(btn1,"tooltip markup","Click to quit") + set(btn2,"tooltip markup","Click to find all icons containing search string") + set(btn3,"tooltip markup","Click to display all icons in selected category") + +constant srch = create(GtkEntry,{ -- search entry; + {"tooltip text",docs[2]}, + {"margin bottom",10}, + {"placeholder text","Enter search string here, click find button"}}) + connect(srch,"activate",_("Search")) + pack(panel,-srch) + +show_all(mainwin) +main() + +function on_btn_down() + set(mainwin,"cursor",GDK_WATCH) +return 0 +end function + +-------------------------------- +function DisplayIcons() +-------------------------------- +atom img +atom iter = create(GtkTreeIter) +object n = get(selection,"selected row") +object cat = contexts[n][1] +object list, name, info + + set(iconwin,"title",cat) + set(istore,"clear") + list = repeat({0,0,0},length(icons[n])) + for i = 1 to length(icons[n]) do + name = icons[n][i] + info = icon_info(name) + list[i][1] = name + list[i][2] = get(theme,"load icon",name,48,13,0) + if string(info[3]) then list[i][3] = info[3] else list[i][3] = name end if -- tooltip + end for + set(istore,"data",list) + show_all(iconwin) + +set(mainwin,"cursor","default") + +return 1 +end function + +---------------------------------- +function Search() +---------------------------------- +object x = get(srch,"text") +atom img +integer ct = 0 +object list = {}, name, info + + if length(x) > 0 then + set(istore,"clear") + x = "*" & lower(x) & "*" + set(srch,"text",x) + + for i = 1 to length(contexts) do + for j = 1 to length(icons[i]) do + name = icons[i][j] + if is_match(x,name) then + info = icon_info(name) + img = get(theme,"load icon",name,48,GTK_ICON_LOOKUP_FORCE_SIZE,0) + if string(info[3]) then + list = append(list,{name,img,info[3]}) -- tooltip + end if + ct += 1 + end if + end for + end for + + set(istore,"data",list) + show_all(iconwin) + set(iconwin,"title",sprintf("Search results for %s: %d found",{x,ct})) + + end if + +set(mainwin,"cursor","default") + +return 1 +end function + +------------------------ +function Bail() +------------------------ +Info(mainwin,, + "The icon names for this theme\nhave been written to:", + "~/demos/resources/themeicons.txt") +Quit() +return 1 +end function diff --git a/eugtk/examples/examples/leak.ex b/eugtk/examples/examples/leak.ex new file mode 100644 index 0000000..e580c8b --- /dev/null +++ b/eugtk/examples/examples/leak.ex @@ -0,0 +1,56 @@ + +-------------------------------------------------------------------------------- +--# Test for memory leaks in get and set routines; +-- Run System Monitor and watch memory usage while this runs for a long time. +-- Memory usage should not change, since no new widgets are created in the loop. +-------------------------------------------------------------------------------- + +include GtkEngine.e + + +if system_exec("which gnome-system-monitor",0) = 0 then + system("gnome-system-monitor &",0) +elsif system_exec("which mate-system-monitor",0) then + system("mate-system-monitor",0) +end if + +constant docs = `Leak Test +This runs mate-system-monitor and then reads and +writes to a label, accessing it via widget name +(label2). Watch the memory usage, it should not +change even after running for a long time. +` +constant win = create(GtkWindow,"size=300x300,border=10,sig.destroy=Quit") +constant panel = create(GtkBox,"orientation=1,spacing=10") +constant lbl1 = create(GtkLabel) set(lbl1,"markup",docs) +constant lbl2 = create(GtkLabel,"text=`Hello World!`,name=Label2") +constant lbl3 = create(GtkLabel) + +integer ct = 0 + +add(win,panel) +add(panel,{lbl1,lbl2,lbl3}) + +constant tick = create(GIdle,_("T1")) -- as fast as possible! +constant tock = create(GTimeout,1000,_("T2")) -- one second intervals + +show_all(win) +set(win,"move",10,10) +main() + +---------------- +function T1() -- tests for leaks in set and get; +---------------- + ct += 1 + get("Label2","text") -- access count (discarded) + set("Label2","text",sprintf("Hello World! %d",ct)) -- update count + return 1 +end function + +--------------- +function T2()-- show max count achieved in 1 sec. +--------------- + set(lbl3,"text",sprintf("%d lookups per second",ct)) + ct = 0 -- reset count + return 1 +end function diff --git a/eugtk/examples/examples/passwords.ex b/eugtk/examples/examples/passwords.ex new file mode 100644 index 0000000..e56a933 --- /dev/null +++ b/eugtk/examples/examples/passwords.ex @@ -0,0 +1,68 @@ + +------------------------------------------------------------------------ +--# Password generator, requires apg +------------------------------------------------------------------------ + +include GtkEngine.e + +constant docs = `Password Generator +Generates 6 random passwords with pronunciation. +Hit the Generate (alt-G) button to generate a new list.` + +constant win = create(GtkWindow,{ + {"default size",300,100}, + {"border width",10}, + {"position",GTK_WIN_POS_CENTER}, + {"icon","thumbnails/passred.png"}, + {"connect","destroy","Quit"}}) + +constant panel = create(GtkBox,1) + add(win,panel) + +constant lbl = create(GtkLabel) + set(lbl,"markup",docs) + add(panel,lbl) + +constant bkgnd = create(GtkEventBox,{ + {"border width",10}, + {"background",0}}) + add(panel,bkgnd) + +constant list = create(GtkLabel) + set(list,"foreground","#18F424") + add(bkgnd,list) + +constant + btn1 = create(GtkButton,"gtk-quit","Quit"), + btn2 = create(GtkButton,"stock_repeat#_Generate","GeneratePW"), + box = create(GtkButtonBox) + pack(panel,-box) + add(box,{btn1,btn2}) + +show_all(win) + + if system_exec("which apg",0) != 0 then + Warn(win,"Error","Cannot find apg program","Please install one!") + abort(1) + else + GeneratePW() + end if + +main() + +------------------------------ +global function GeneratePW() -- call apg, format and display results; +------------------------------ +system("apg > pw.list -a 0 -M Ncl -t",0) +object results = read_lines("pw.list") +object words = " Password Pronunciation \n\n" + for i = 1 to length(results) do + words &= format(" [1] [2] \n",split(results[i],' ')) + end for + set(list,"markup",words) + set(list,"selectable",TRUE) + delete_file("pw.list") +return 1 +end function + + diff --git a/eugtk/examples/examples/talk.ex b/eugtk/examples/examples/talk.ex new file mode 100644 index 0000000..9f65e8a --- /dev/null +++ b/eugtk/examples/examples/talk.ex @@ -0,0 +1,143 @@ + +------------------------------------------------------------------------ +--# Talk, requires spd-say +------------------------------------------------------------------------ + +include GtkEngine.e + +object lang = "en", speaker = "male1", speed = 0, pitch = 0 + +constant win = create(GtkWindow,{ + {"border width",10}, + {"default size",550,300}, + {"position",GTK_WIN_POS_CENTER}}) + connect(win,"destroy","Quit") + +constant panel = create(GtkBox,VERTICAL) + add(win,panel) + +constant input = create(GtkEntry) + set(input,"text","Type some text here, or select a language below.") + add(panel,input) + + add(panel,create(GtkLabel,"- Languages - ")) + +constant box1 = create(GtkButtonBox), + a1 = create(GtkRadioButton,0,"English","Language",1), + a2 = create(GtkRadioButton,a1,"French","Language",2), + a3 = create(GtkRadioButton,a2,"Russian","Language",3), + a4 = create(GtkRadioButton,a3,"Afrikaans","Language",4) + add(box1,{a1,a2,a3,a4}) + add(panel,box1) + +constant languages = {"en","fr","ru","af","sr","fi","pt","es","it","ur", + "ko","de","is","ms","sk","sv","tr","pl","hi","oc","nn","fa","mk","ka"} + +constant language = create(GtkComboBoxText) + for i = 1 to length(languages) do + set(language,"append text",languages[i]) + end for + set(language,"active",1) + connect(language,"changed","Language") + add(panel,language) + + add(panel,create(GtkSeparator)) + add(panel,create(GtkLabel,"- Voices -")) + +constant box3 = create(GtkButtonBox), + box4 = create(GtkButtonBox), + box5 = create(GtkButtonBox), + m1 = create(GtkRadioButton,0,"Male 1","Voice","male1"), + m2 = create(GtkRadioButton,m1,"Male 2","Voice","male2"), + m3 = create(GtkRadioButton,m2,"Male 3","Voice","male3"), + f1 = create(GtkRadioButton,m3,"Female 1","Voice","female1"), + f2 = create(GtkRadioButton,f1,"Female 2","Voice","female2"), + f3 = create(GtkRadioButton,f2,"Female 3","Voice","female3"), + c1 = create(GtkRadioButton,f3,"Male Child","Voice","child_male"), + c2 = create(GtkRadioButton,c1,"Female Child","Voice","child_female") + set(box3,"homogeneous",TRUE) + set(box4,"homogeneous",TRUE) + add(box3,{m1,m2,m3}) + add(box4,{f1,f2,f3}) + add(box5,{c1,c2}) + add(panel,{box3,box4,box5}) + + add(panel,create(GtkSeparator)) + +constant lbl1 = create(GtkLabel,"- Speed -") + add(panel,lbl1) + +constant Speed = create(GtkScale,HORIZONTAL,-100,100,1) + set(Speed,"value",0) + connect(Speed,"value-changed","SetSpeed") + add(panel,Speed) + +constant lbl2 = create(GtkLabel,"- Pitch -") + add(panel,lbl2) + +constant Pitch = create(GtkScale,HORIZONTAL,-100,100,1) + set(Pitch,"value",0) + connect(Pitch,"value-changed","SetPitch") + add(panel,Pitch) + +constant box6 = create(GtkButtonBox), + btn1 = create(GtkButton,"gtk-quit","Quit"), + btn2 = create(GtkButton,"gtk-ok","Say") + add(box6,{btn1,btn2}) + pack(panel,-box6) + +show_all(win) + + if system_exec("which spd-say",0) != 0 then + Warn(win,"Error","Cannot find spd-say", + "Use apt-get or your package manager\n to install spd-say!") + abort(1) + end if + +main() + +---------------------------------------- +global function Voice(atom ctl, atom v) +---------------------------------------- + if get(ctl,"active") then speaker = unpack(v) + display(speaker) + end if +return 1 +end function + +-------------------------------------------- +global function Language(atom ctl, object l) +-------------------------------------------- + if ctl = language then + l = get(ctl,"active") + else + set(language,"active",l) + end if + atom x = create(PangoLanguage,languages[l]) + object ls = get(x,"to string") + object txt = get(x,"sample string") + set(input,"text",txt) +return 1 +end function + +----------------------------------- +global function SetSpeed(atom ctl) +----------------------------------- + speed = get(ctl,"value") +return 1 +end function + +----------------------------------- +global function SetPitch(atom ctl) +----------------------------------- + pitch = get(ctl,"value") +return 1 +end function + +--------------------- +global function Say() +--------------------- +object txt = get(input,"text") + system(sprintf(`spd-say -w -mnone -r%d -p%d -l%s -t%s "%s"`,{speed,pitch,lang,speaker,txt}),0) +return 1 +end function diff --git a/eugtk/examples/examples/task.ex b/eugtk/examples/examples/task.ex new file mode 100644 index 0000000..fcfb827 --- /dev/null +++ b/eugtk/examples/examples/task.ex @@ -0,0 +1,100 @@ +------------------------------------------------------------------------ +--# Multi-Tasking; +-- +-- This shows how to use the GtkSpinner to indicate progress while loading +-- a large file, or while doing some other lengthy process... +-- If you do not multi-task, the spinner will stop while Euphoria +-- is loading the file, which is exactly what you do NOT want to happen! +------------------------------------------------------------------------ +-- Spinner seems to be broken in Gtk3.6.4, but works fine in Gtk3.4.1 and +-- Gtk3.8.4, and later versions. + +include GtkEngine.e +include GtkEvents.e +include GtkFileSelector.e + +include std/filesys.e + +constant docs = `Spinner & Tasks +This uses Euphoria's multi-tasking functions. +If you run this from an x-term, you will see the lines +as they are read. Click the OK button to begin.` + +constant msg1 = "Reading GtkEnums.e line: %d" +constant msg2 = "Done! %d lines read." + +integer lc = 0 -- count lines read; + +atom t1 +t1 = task_create(routine_id("task1"),{}) +task_schedule(t1,{0.002,1}) +boolean t1_running = TRUE + +label "OPEN_FILE" +integer fn = open(locate_file("GtkEnums.e"),"r") -- file to read; +if fn = -1 then + fn = fileselector:Open() + if fn < 3 then + if Question(,,"Quit?") = MB_YES then Quit() else goto "OPEN_FILE" end if + end if +end if + +constant win = create(GtkWindow,"border_width=10,position=1,$destroy=Quit") + +constant panel = create(GtkBox,1) + add(win,panel) + +constant lbl1 = create(GtkLabel) + set(lbl1,"markup",docs) + +constant lbl2 = create(GtkLabel) +constant lbl3 = create(GtkLabel) + +constant spin = create(GtkSpinner) + set(spin,"size request",30,30) + + add(panel,{lbl1,lbl2,spin,lbl3}) + +constant + btn1 = create(GtkButton,"gtk-quit","Quit"), + btn2 = create(GtkButton,"gtk-ok","StartTask"), + box = create(GtkButtonBox) + add(box,{btn1,btn2}) + set(box,"margin top",15) + pack(panel,-box) + +show_all(win) +main() + +-------------------------------------------------------- +procedure task1() -- this reads and displays the file; +-------------------------------------------------------- +object line = {} +while not atom(line) do + lc += 1 -- increment line count + line = gets(fn) -- read the line + puts(1,line) -- display the line on terminal + task_yield() +end while +t1_running = FALSE +end procedure + +----------------------------------------------------------------- +global function StartTask() -- starts spin and yields to task1; +----------------------------------------------------------------- + set(spin,"start") + + while t1_running do + main_iteration_do(1) -- VITAL! (give GTK a chance to tick the clock) + set(lbl2,"markup",sprintf(msg1,lc)) -- update # of lines read + task_yield() + end while + + set(spin,"stop") + set(btn2,"sensitive",FALSE) + set(lbl2,"markup",sprintf(msg2,lc)) -- done! + +return 0 +end function + + diff --git a/eugtk/examples/examples/test_all.ex b/eugtk/examples/examples/test_all.ex new file mode 100644 index 0000000..5585e01 --- /dev/null +++ b/eugtk/examples/examples/test_all.ex @@ -0,0 +1,104 @@ + +---------------------------------------------------------------------------- +--# Test all programs in ~/demos +-- Run this with an x-term so that you can see messages re: missing files; +-- It runs 5 tests at at time, starting with the number in the box. +-- After these are run, you can click the ok button to run the next 5. + +-- You might be able to run as many as 40 or 50 programs at the same time, +-- depending upon memory and processor(s), but I can't recommend it, +-- since too many can 'freeze' the windows & mouse, leaving you no way +-- out but to hit the power switch! +---------------------------------------------------------------------------- + +include GtkEngine.e + +integer i = 0, ct = 0, step = 10 +atom tick + +chdir(canonical_path("~demos")) + +constant docs = `Testall + +Runs several tests at a time, beginning with the number +in the box below. Be sure to run this program from +an x-term, so you can see any error messages. + +If you are using a slow computer with low memory, +you may change the 'step' variable from 10 to a lower +number. +` +constant win = create(GtkWindow,"border=10,icon=thumbnails/mongoose.png,$destroy=Quit") + +constant panel = create(GtkBox,VERTICAL) + add(win,panel) + +constant lbl1 = create(GtkLabel) + set(lbl1,"markup",docs) + add(panel,lbl1) + +constant lbl2 = create(GtkLabel,{ + {"font","8"}, + {"markup"," Start # Step"}}) + add(panel,lbl2) + +constant + box = create(GtkButtonBox), + btn1 = create(GtkButton,"gtk-quit","Quit"), + btn2 = create(GtkSpinButton,0,210,1), + btn3 = create(GtkSpinButton,1,10,1), + btn4 = create(GtkButton,"gtk-ok","Start") + set(btn3,"value",10) + + pack(box,{btn1,btn2,btn3,btn4}) + pack(panel,-box) + set(btn2,"tooltip markup","Start Set the starting file number here") + set(btn3,"tooltip markup","Step Number of programs to start at each pass") + set(btn4,"tooltip markup","Click here to start the next set of tests") + +show_all(win) +main() + + +------------------------------------------------------------------------ +global function Start() +------------------------------------------------------------------------ + i = get(btn2,"value as int") + step = get(btn3,"value as int") + tick = create(GTimeout,500,call_back(routine_id("Foo"))) + puts(1,"\n") +return 1 +end function + +-------------------------- +global function Foo() +-------------------------- +object fn + fn = sprintf("test%d.ex",i) + set(lbl2,"text",filename(fn)) + if not file_exists(fn) then + printf(1,"%s not found!\n",{filename(fn)}) + set(lbl1,"text",get(lbl1,"text") & "\n" & filename(fn) & " missing!") + set(win,"background","#F8E521") + else + system_exec(sprintf("eui %s &\n",{fn})) + printf(1,"%s\n",{fn}) + end if + + i += 1 + if i > length(dir("test*.ex")) then + Info(,,"That's all, Folks!") + abort(0) + end if + + set(btn2,"value",i) + ct += 1 + if ct = step then + ct = 0 + return 0 + else + return 1 + end if +end function + + diff --git a/eugtk/examples/examples/test_missing.ex b/eugtk/examples/examples/test_missing.ex new file mode 100644 index 0000000..0a374c9 --- /dev/null +++ b/eugtk/examples/examples/test_missing.ex @@ -0,0 +1,39 @@ + +------------------------------------------------------------------------ +--# finds unused test[n].ex program names +------------------------------------------------------------------------ + +include GtkEngine.e + +constant win = create(GtkWindow,"title=Missing Tests,size=250x-1,border=10,position=1,$destroy=Quit") + +constant panel = create(GtkBox,VERTICAL) + add(win,panel) + +constant listbox = create(GtkListBox,"margin-top=10,margin bottom=10") + add(panel,listbox) + +constant box = create(GtkButtonBox) + add(box,create(GtkButton,"gtk-quit","Quit")) + pack(panel,-box) + +chdir(canonical_path("~demos")) + +boolean missing = FALSE + +for i = 0 to 211 do + if file_exists(sprintf("test%d.ex",i)) then -- skip + else printf(1,"missing test%d.ex\n",i) + add(listbox,create(GtkLabel,sprintf("test%d.ex",i))) + missing = TRUE + end if +end for + +if not missing then Info(,,"Congrats","No missing demos",,"face-cool") + +else + + show_all(win) + main() + +end if diff --git a/eugtk/examples/examples/webkit.ex b/eugtk/examples/examples/webkit.ex new file mode 100644 index 0000000..966a4ca --- /dev/null +++ b/eugtk/examples/examples/webkit.ex @@ -0,0 +1,153 @@ + +----------------------------------------------------------- +--# GtkWebKit demo, views web pages (and runs Eu program) +----------------------------------------------------------- + +include GtkEngine.e +include GtkEvents.e +include std/net/url.e +include GtkWebKit.plugin + +constant docs = """ + +Adds a web browser +to your EuGTK program! + +This demo can display source code +as well as running *.ex programs, +just click on a link! +""" + +object uri = 0 +if networked() then + uri = format("http://[]:8080",{get_net_address()}) +else + uri = "FILE:///"& canonical_path("~/demos/documentation/README.html") +end if + +constant fmt = +`Default font [] + Monospace font [] + Serif font [] + Sans font [] + Fantasy font [] + ` +constant win = create(GtkWindow,"size=1000x800,position=1,border=10,background=grey90") + connect(win,"destroy","Quit") + +constant panel = create(GtkBox,VERTICAL) + add(win,panel) + +constant view = create(WebkitWebView) + pack(panel,view,TRUE,TRUE) + +constant settings = get(view,"settings") + set(settings,{ + {"enable tabs to links",TRUE}, + {"zoom text only",TRUE}, + {"enable developer extras",TRUE}, + {"enable smooth scrolling",TRUE}, + {"enable_caret_browsing",TRUE}, + {"draw_compositing_indicators",TRUE}, + {"enable fullscreen",TRUE}, -- try these; + {"enable_resizable_text_areas",TRUE}, + {"enable_spatial_navigation",TRUE}, + $}) + +constant box = create(GtkButtonBox), + url = create(GtkEntry), + btn1 = create(GtkButton,"gtk-about",_("About")), + btn2 = create(GtkButton,"back#",_("Backward")), + btn3 = create(GtkButton,"forward#",_("Forward")), + btn4 = create(GtkButton,"gtk-quit","Quit"), + slider1 = create(GtkScale,{ + {"orientation",HORIZONTAL}, + {"range",50,200}, + {"value",100}, + {"digits",0}, + {"tooltip text","Zoom Text"}, + {"connect","change value",_("ScaleView")}}) + pack(panel,slider1) + add(box,{btn4,url,btn2,btn3,btn1}) + set(box,{ + {"layout",GTK_BUTTONBOX_END}, + {"child secondary",btn4,TRUE}}) + pack(panel,-box) + + set(url,"tooltip text","Enter URL here, hit enter.") + set(url,"width chars",80) + set(url,"text",uri) + connect(url,"activate",_("LoadURI")) + +show_all(win) + +constant img2 = get(btn2,"image") +constant img3 = get(btn3,"image") + +set(btn2,"tooltip markup","Go to previous page\n(if available)") +set(btn3,"tooltip markup","Go to next page\n(if available)") + +connect(view,"load-changed",_("UpdateState")) +set(view,"load uri",uri) + +main() + +-------------------------- +function About() +-------------------------- +object p = floor((get(win,"size")/2) + get(win,"position")) -- keep near center +return Info(,,"Webkit Plugin",docs,,,,,,p[1],p[2]) +end function + +-------------------------- +function Backward() +-------------------------- + set(view,"go back") + UpdateState(view,0) +return 1 +end function + +------------------------- +function Forward() +------------------------- + set(view,"go forward") + UpdateState(view,0) +return 1 +end function + +------------------------ +function LoadURI(atom x) +------------------------- +object uri = url:decode(get(x,"text")) + set(view,"load uri",uri) + UpdateState(view,WEBKIT_LOAD_FINISHED) + return 1 +end function + +----------------------------------------------------- +function UpdateState(atom view, integer event) +----------------------------------------------------- + set(img2,"visible",get(view,"can go back")) + set(img3,"visible",get(view,"can go forward")) + object uri + if event = WEBKIT_LOAD_FINISHED then + uri = get(view,"uri") + set(win,"title",get(view,"title")) + uri = locate_file(url:decode(uri)) + uri = uri[9..$] -- get rid of file:/// + set(url,"text",uri) + if match("ex",fileext(uri)) then + system(sprintf("eui %s & ",{uri}),2) -- run in bkgnd; + end if + end if +return 1 +end function + +----------------------------------- +function ScaleView(atom ctl) +----------------------------------- + set(view,"zoom level", get(ctl,"value") / 100) +return 0 +end function + + diff --git a/eugtk/examples/examples/webserver.ex b/eugtk/examples/examples/webserver.ex new file mode 100644 index 0000000..82248a7 --- /dev/null +++ b/eugtk/examples/examples/webserver.ex @@ -0,0 +1,165 @@ + +--# Webserver - GUI for httpd.ex + +include GtkEngine.e +include std/datetime.e +include std/net/dns.e + +export constant version = "1.0" + +------------------------------------------------------------------------ +-- I use this to serve music or other files to my Google Nexus tablet +-- or smart phone, so I can listen, look at photos, read documentation, +-- etc. while I work (or not :p) + +-- You'll need the server connected to a router, of course, +-- otherwise, you can only serve to localhost. +------------------------------------------------------------------------ + +-- try to find a working terminal to use for displaying requests; +object term = 0, +terms = {"mate-terminal","gnome-terminal","xterm",getenv("TERM")} +for i = 1 to length(terms) do + terms[i] = locate_file(terms[i]) + if file_exists(terms[i]) then + term = terms[i] + exit + end if +end for + +display(term) + +constant win = create(GtkWindow,{ + {"border width",20}, + {"default size",300,200}, + {"position",GTK_WIN_POS_CENTER}, + {"title"," EuGTK Web Server"}, + {"icon","~/demos/thumbnails/mongoose.png"}}) + connect(win,"destroy","Quit") + +constant panel = create(GtkBox,VERTICAL) +gtk:add(win,panel) + +constant addrbox = create(GtkGrid) + set(addrbox,"column spacing",5) + set(addrbox,"row spacing",5) + gtk:add(panel,addrbox) + +constant + lbl1 = create(GtkLabel,"IP:"), + ip = create(GtkEntry), + port = create(GtkSpinButton,8080,8090,1), + lbl3 = create(GtkLabel,"Root"), + root = create(GtkFileChooserButton), + lbl4 = create(GtkLabel,"Log file:"), + logf = create(GtkEntry), + sortf = create(GtkCheckButton,"_Sort"), + showreq = create(GtkCheckButton,"Show _Full Request"), + hidden = create(GtkCheckButton,"Show _Hidden Files"), + tailf = create(GtkCheckButton,"Tail -f") + + set(ip,"text",get_net_address()) + set(port,"text","8080") + set(root,"current folder",canonical_path("~/demos/documentation")) + set(root,"action",GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER) + set(logf,"text",".server.log")--or blank. I prefer to hide my server log file + set(sortf,"active",TRUE) + set(tailf,"active",TRUE) + + set(root,"tooltip markup","Choose the base folder.\nEvery subfolder below this will be served") + set(sortf,"tooltip markup","Sort the directory listings") + set(showreq,"tooltip markup","Show full request string in logs") + set(hidden,"tooltip markup","Include hidden files in those being served") + set(tailf,"tooltip markup","Pop up a window to show active connections") + + set(addrbox,"attach",lbl1,1,1,1,1) + set(addrbox,"attach",ip,2,1,1,1) + set(addrbox,"attach",port,3,1,1,1) + set(addrbox,"attach",create(GtkSeparator),1,2,4,1) + set(addrbox,"attach",lbl3,1,3,1,1) + set(addrbox,"attach",root,2,3,2,1) + set(addrbox,"attach",create(GtkSeparator),1,4,4,1) + set(addrbox,"attach",lbl4,1,5,1,1) + set(addrbox,"attach",logf,2,5,1,1) + if not atom(term) then + set(addrbox,"attach",tailf,3,5,1,1) + end if + set(addrbox,"attach",create(GtkSeparator),1,6,4,1) + set(addrbox,"attach",sortf,1,7,1,1) + set(addrbox,"attach",showreq,2,7,1,1) + set(addrbox,"attach",hidden,3,7,1,1) + +constant box = create(GtkButtonBox), + btn1 = create(GtkButton,"gtk-quit","Quit"), + btn2 = create(GtkButton,"gtk-help","Help"), + btn3 = create(GtkButton,"gtk-ok","StartServer") + set(btn2,"tooltip markup","Click here for html help") + set(btn3,"tooltip markup","Click here to start the server") + set(box,"margin top",10) + gtk:add(box,{btn1,btn2,btn3}) + pack(panel,-box) + +show_all(win) +main() + +------------------------------ +global function StartServer() +------------------------------ +object server = canonical_path("~/demos/examples/httpd.ex") +object params = sprintf("eui %s -bind %s:%s ", + {server, + remove_all(' ',get(ip,"text")), + remove_all(' ',get(port,"text")) + }) +object log = get(logf,"text") +object path = get(root,"filename") +chdir(canonical_path(path)) + +object exe = "" + + if length(path) > 0 then + params &= sprintf("-root '%s' ",{current_dir()}) + log = path & "/" & log + end if + + if length(log) > 0 then + params &= sprintf("-log %s ",{log}) + end if + + if get(sortf,"active") then + params &= " -s " + end if + + if get(hidden,"active") then + params &=" -h " + end if + + if get(showreq,"active") then + params &= " -r " + end if + + -- the following only tested on mate-terminal, others may need different params; + if get(tailf,"active") then + exe = sprintf(`%s -e "tail -f %s" --profile logview -t "Eu Server Log" & %s -e "%s" --tab --profile logview -t "Eu Server Status" --geometry=132x30 &`, + {term,log,term,params}) + else + exe = sprintf(`%s -e "%s" &`,{term,params}) + end if + + display(exe) + system(exe) + +return 1 +end function + +----------------------------- +global function Help() +----------------------------- + show_uri(sprintf("file:///%s", + {canonical_path("~/demos/documentation/ServerHelp.html")})) +return 1 +end function + +------------------------ +--© 2014 by Irv Mullins +------------------------ diff --git a/eugtk/examples/examples/worldflags.ex b/eugtk/examples/examples/worldflags.ex new file mode 100644 index 0000000..49b7338 --- /dev/null +++ b/eugtk/examples/examples/worldflags.ex @@ -0,0 +1,239 @@ + +------------------------------------------------------------------------ +--# Worldflags - match the flags and name the country +------------------------------------------------------------------------ + +include GtkEngine.e +include std/filesys.e +include std/sequence.e + +integer prev = 0, guesses = 0, correct = 0, misses = 0 +atom score = 0 +constant flagdir = canonical_path("~/demos/resources/flags/") + +---------------------------- +-- get list of flag names +---------------------------- +object flaglist = dir(flagdir & "flags-*.png") + + if atom(flaglist) then + Error(0,"Worldflags Error","Cannot find flags",flagdir,,GTK_BUTTONS_CLOSE) + abort(1) + end if + + flaglist = vslice(flaglist,D_NAME) + +-------------------------------- +-- select 8 at random, no dupes +-------------------------------- +object flagarray = {} +while length(flagarray) < 8 do + flagarray = add_item(flaglist[rand(length(flaglist))],flagarray) +end while + +--------------------------------------------- +-- shuffle the 8 and add them to list again +-- so every flag has a twin somewhere +--------------------------------------------- +flagarray &= shuffle(flagarray) + +enum HANDLE, FLAG, TUX, NAME, CAPTION, SIGID, HASH, MATCHED + +------------------------------------------- +-- create buttons from the selected flags +------------------------------------------- +object btn = {HANDLE,FLAG,TUX,NAME,CAPTION,SIGID,HASH,MATCHED} +object btns = repeat(btn,16) +object ctl, name, flag, tux, box, lbl, sigid, id +for i = 1 to 16 do + -- get rid of the file extension, and change country name to nice format; + name = proper(join(split(flagarray[i][7..$-4],'_'),' ')) + -- match flag with its twin by means of a hash on the file name; + id = hash(name,0) + -- make a button to hold the flag; + ctl = create(GtkToolButton) + flag = create(GtkImage,flagdir & flagarray[i]) + tux = create(GtkImage,"~/demos/thumbnails/BabyTux.png") + sigid = connect(ctl,"clicked",call_back(routine_id("onClick")),i) + box = create(GtkBox,1) + lbl = create(GtkLabel,{ + {"text",name}, + {"font","8"}, + {"max width chars",10}, + {"ellipsize",PANGO_ELLIPSIZE_END}}) + add(box,{tux,flag,lbl}) + set(ctl,{ + {"label widget",box}, + {"size request",80,80}}) + show({ctl,box,flag,lbl}) + btns[i] = {ctl,flag,tux,name,lbl,sigid,id,FALSE} + ifdef CHEAT then + set(ctl,"tooltip text",name) + end ifdef +end for + +---------------------- +-- make a main window +---------------------- +constant win = create(GtkWindow,{ + {"border width",10}, + {"default size",120,120}, + {"position",GTK_WIN_POS_CENTER}, + {"icon","thumbnails/preferences-desktop-locale.svg"}}) + connect(win,"destroy","Quit") + show(win) + +constant panel = create(GtkBox,1) + add(win,panel) + show(panel) + +--------------------- +-- make a grid +--------------------- +constant grid = create(GtkGrid,{ + {"row homogeneous",TRUE}, + {"column homogeneous",TRUE}}) + add(panel,grid) + show(grid) + +------------------------------- +-- attach flag buttons to grid +------------------------------- +integer i = 1 +for x = 1 to 4 do + for y = 1 to 4 do + set(grid,"attach",btns[i][HANDLE],x,y,1,1) + i += 1 + end for +end for + +constant helptxt = create(GtkLabel,{ + {"markup","Perfect score is 100"}, + {"font","8"}, + {"foreground","red"}}) + add(panel,helptxt) + show(helptxt) + +------------------------------------------ +-- show flags for 5 seconds, then hide 'em +------------------------------------------ +constant delay = create(GTimeout,5000,call_back(routine_id("hide_flags"))) + +main() + +------------------------------------------------------------------------ +function hide_flags() -- called once at start of pgm. after a delay +------------------------------------------------------------------------ + for x = 1 to 16 do + set(btns[x][FLAG],"hide") + set(btns[x][CAPTION],"hide") + set(btns[x][TUX],"show") + btns[x][MATCHED] = FALSE + end for +return 0 -- 0 kills the timer, otherwise it would fire again every 5 sec. +end function + +--------------------------------------------------------------- +function onClick(atom ctl, integer this) +--------------------------------------------------------------- + set(btns[this][TUX],"hide") + set(btns[this][FLAG],"show") + + if btns[this][MATCHED] then return 1 end if + + if prev > 0 then + if this = prev then return 1 end if -- same one clicked again, forgettaboutit! + if btns[this][HASH] != btns[prev][HASH] then -- not a match + set(btns[prev][FLAG],"hide") + set(btns[prev][CAPTION],"hide") + set(btns[prev][TUX],"show") + misses += 1 + prev = this + guesses += 1 + score -= 1 + else -- matched! + btns[prev][MATCHED] = TRUE + btns[this][MATCHED] = TRUE + guesses += 1 + correct += 1 + prev = 0 + popup_extra_credit(this) + end if + else + prev = this + end if + + set(win,"title", -- update score; + sprintf("Score: %2.1f",score)) + return 1 +end function + +------------------------------------------------------------- +function popup_extra_credit(integer x) +------------------------------------------------------------- +object dlg = create(GtkDialog,{ + {"default size",200,200}, + {"border width",10}, + {"add button","gtk-ok",1}}) + +object ca = get(dlg,"content area") +display(flagarray[x]) +object img = create(GtkImage,sprintf("~/demos/resources/flags/%s",{flagarray[x]})) +object lbl = create(GtkLabel,{ + {"font","8"}, + {"markup", + "You get 5 points for correctly matching the flags.\n" & + "For more points, please identify the country that\nflies this flag."}}) + +object sep = create(GtkSeparator) + add(ca,{img,lbl,sep}) + +object choices = {btns[x][NAME]} + while length(choices) < 3 do + choices = add_item(btns[rand(16)][NAME],choices) + end while + choices = shuffle(choices) + +object btn = repeat(0,3) + btn[1] = create(GtkRadioButton,0,choices[1]) + btn[2] = create(GtkRadioButton,btn[1],choices[2]) + btn[3] = create(GtkRadioButton,btn[2],choices[3]) + add(ca,btn) + show_all(ca) + +object choice +integer i = get(dlg,"run") + + for j = 1 to 3 do + if get(btn[j],"active") then choice = choices[j] end if + end for + + if equal(choice,btns[x][NAME]) then + score += 100/8 + show_matched_captions(0) + else + score += 5 + show_matched_captions(x) + set(helptxt,"text","Incorrect guesses are shown in red") + end if + + set(dlg,"destroy") + show_matched_captions(0) + +return 1 +end function + +------------------------------------------------------------------------ +procedure show_matched_captions(integer x) +------------------------------------------------------------------------ +for i = 1 to 16 do + if btns[i][MATCHED] then show(btns[i][CAPTION]) end if + if x > 0 then -- set miss-identified captions to red + if equal(btns[i][NAME],btns[x][NAME]) then + set(btns[i][CAPTION],"color","red") + end if + end if +end for +end procedure + + diff --git a/eugtk/examples/examples/xpm_include_test.ex b/eugtk/examples/examples/xpm_include_test.ex new file mode 100644 index 0000000..6b7d17f --- /dev/null +++ b/eugtk/examples/examples/xpm_include_test.ex @@ -0,0 +1,23 @@ + +---------------------------------------------------------------- +--# This demo includes xpm images as regular Eu sequences. + +-- If this program is bound, shrouded, or compiled, the images +-- will be bound along with it, so neither the images nor the +-- include need to be available at run-time. +----------------------------------------------------------------- + +include GtkEngine.e + +include icon_P.e -- the converted xpm images; +include icon_I.e +include icon_E.e + +constant win = create(GtkWindow,"title=XPM includes,size=100x100,position=1,border=30,$destroy=Quit") + +constant panel = create(GtkBox,HORIZONTAL) + add(win,panel) + add(panel,{p:icon,i:icon,e:icon}) + +show_all(win) +main() diff --git a/eugtk/examples/examples/xpm_to_eu_include.ex b/eugtk/examples/examples/xpm_to_eu_include.ex new file mode 100644 index 0000000..58abe38 --- /dev/null +++ b/eugtk/examples/examples/xpm_to_eu_include.ex @@ -0,0 +1,141 @@ + +-------------------------------------------------------------- +--# Utility converts xpm image file to euphoria sequence +-- which is then converted and exported as a GdkPixbuf. +-------------------------------------------------------------- + +include GtkEngine.e + +integer n +object inputfile, outputfile +object xpm_name +object work = {"include GtkEngine.e\n"} + +constant win = create(GtkWindow,"title=XPM to .e,border=10,size=200x200,position=1,sig.destroy=Quit") + +constant panel = create(GtkBox,"orientation=VERTICAL,spacing=10") + add(win,panel) + +constant lbl1 = create(GtkLabel,"Enter name of xpm file") + add(panel,lbl1) + +constant fcb = create(GtkFileChooserButton,{ + {"title","Select a file"}, + {"action",GTK_FILE_CHOOSER_ACTION_OPEN}, + {"current folder",canonical_path("~/demos/thumbnails")}, + {"tooltip text","Click to open a file chooser dialog"}, + {"signal","file-set","show_output_name"}}) + add(panel,fcb) + +constant filter = create(GtkFileFilter,{{"add pattern","*.xpm"}}) + set(fcb,"filter",filter) + +constant lbl2 = create(GtkLabel,"Output .e file or leave blank") + add(panel,lbl2) + +constant out = create(GtkEntry) + add(panel,out) + +constant img = create(GtkImage) + add(panel,img) + +constant box = create(GtkButtonBox) + pack_end(panel,box) + + add(box,create(GtkButton,"gtk-quit","Quit")) + add(box,create(GtkButton,"gtk-ok","xpm_convert")) + +show_all(win) +main() + +--------------------------------------------------------- +function ProcessXPM(object line, integer ln, object data) +--------------------------------------------------------- +integer i + + if ln = 1 then -- retain name in comment; + i = match("/*",line) + if i > 0 then + line = line[i..$] + end if + end if + + if ln = 2 then -- convert to eu constant declaration; + i = match("static char *",line) + if i > 0 then + xpm_name = line[i+14..$] + line = line[1..i-1] & "constant " & xpm_name + end if + i = match("[]",line) -- remove the brackets; + if i > 0 then + line = line[1..i-1] & line[i+2..$] + end if + end if + + line = transmute(line,{{},'\t'},{' '}) -- convert tabs to spaces; + work = append(work,line) + +return 0 +end function + +--------------------------------------------- +global function show_output_name(object ctl) +--------------------------------------------- + set(out,"text",filebase(get(ctl,"filename")) & ".e") +return 1 +end function + +----------------------------------------------------- +global function xpm_convert() +----------------------------------------------------- + + inputfile = get(fcb,"filename") + if not file_exists(inputfile) then + Error(,,inputfile,"does not exist",GTK_BUTTONS_CANCEL) + return 0 + end if + + set(img,"from file",inputfile) -- preview; + + outputfile = get(out,"text") + if length(outputfile) = 0 then + outputfile = filebase(inputfile) & ".e" + set(out,"text",outputfile) + end if + + process_lines(inputfile,routine_id("ProcessXPM")) + integer x = length(work) + + xpm_name = split(xpm_name,"[") xpm_name = xpm_name[1] + + work[$] = work[$][1..$-1] -- get rid of trailing semi-colon; + + object n = filebase(get(out,"text")) + work = prepend(work, + sprintf( +`namespace %s + +-- exports %s:icon as a GdkPixbuf +`, + {filebase(outputfile),n,n})) + + work = append(work,"------------------------------------------------------------------------------") + work = append(work,sprintf("export constant icon = xpm_to_pixbuf(%s)",{xpm_name})) + work = append(work,"------------------------------------------------------------------------------") + + write_lines(outputfile,work) + + Info(,, + sprintf("include %s",{get(out,"text")}), + sprintf("reference with namespace:\n\t%s:icon",{filebase(get(out,"text"))})) + +return 1 +end function + + + + + + + + diff --git a/eugtk/examples/glade/.httpd.css b/eugtk/examples/glade/.httpd.css new file mode 100644 index 0000000..c8424d0 --- /dev/null +++ b/eugtk/examples/glade/.httpd.css @@ -0,0 +1,10 @@ +/* +-- ==================================================================== +-- Styling for the remote display is set here; +-- ==================================================================== +*/ + th {color:yellow; background-color: blue;} + button {width: 100%;} + td {outline-style: solid; outline-width: 1px; outline-color: black; padding:2px; width: 25%;} + body {background-image: linear-gradient(180deg, orange, green); background-repeat: no-repeat;) + diff --git a/eugtk/examples/glade/Jessica-Alba.jpg b/eugtk/examples/glade/Jessica-Alba.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7aec901062fe551f19dbf141158049ef0ff178ac GIT binary patch literal 36129 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 literal 0 HcmV?d00001 diff --git a/eugtk/examples/glade/README.html b/eugtk/examples/glade/README.html new file mode 100644 index 0000000..d745078 --- /dev/null +++ b/eugtk/examples/glade/README.html @@ -0,0 +1,85 @@ + + + + + README + + + + + +
+ GTK Logo + Glade Logo +

EuGTK 4.11.10

+
+ +

Glade Demos

+

+You can use Glade to design and adjust your user interface. +You still must write some Euphoria functions to respond to user interactions with the GUI. This is no different than VisualBasic, Delphi, or other programming environments, except that EuGTK code is generally less confusing. +

+ +

+For writing that Euphoria code, either Geany or Pete Eberlein's new WEE editor (written in Euphoria and using EuGTK) +works for me. If you test-run your program from an x-term, EuGTK will generate +function prototypes for missing functions and display them on the terminal. +You can then copy and paste the prototype code into your program, and add +the necessary details. +

+ +

+Please start by reading Glade docs, +Starting Glade, and +Starting Glade II. +

+ + +widgets.ex + + +

+Some of the programs in this folder are duplicates of other demos elsewhere, but have been re-written using Glade to design the user-interface. These are provided as examples f.y.i. +

+ +

+

    +
  • main.ex +
    along with include files:
    +
    +
    • file.e
    • prefs.e
    • help.e
    +
    + +
  • calendar.ex +
    Fancy calendar with About dialog
  • + +
  • calculator.ex +
    Uses Shian Lee's math evaluator
  • + +
  • widgets.ex +
    Demos all numeric widgets

    + +
+

+

+ +

+ +
+
+ hint +

+ This page edited by The Bear, + a web-page and programming editor + written in Euphoria. +

+

+ Updated for EuGTK version 4.11.11 Sept 1, 2016
+ All code © 2016 by Irv Mullins +

+
+
+ + + + diff --git a/eugtk/examples/glade/about.e b/eugtk/examples/glade/about.e new file mode 100644 index 0000000..239147d --- /dev/null +++ b/eugtk/examples/glade/about.e @@ -0,0 +1,15 @@ +namespace about + +include GtkEngine.e + +add(builder,canonical_path("~/demos/glade/about.glade")) + +constant dlg = pointer("about:aboutdialog1") + +----------------------------------------------------------------------- +global function on_help_about_activate() +----------------------------------------------------------------------- + if get(dlg,"run") then end if + set(dlg,"hide") +return 1 +end function diff --git a/eugtk/examples/glade/about.glade b/eugtk/examples/glade/about.glade new file mode 100644 index 0000000..7b2cb59 --- /dev/null +++ b/eugtk/examples/glade/about.glade @@ -0,0 +1,36 @@ + + + + + + False + dialog + About Hello + Test of <b>Eu/Glade</b> + February 2015 + apport + lgpl-3-0 + + + False + vertical + 2 + + + False + end + + + False + True + end + 0 + + + + + + + + + diff --git a/eugtk/examples/glade/accessories-calculator.png b/eugtk/examples/glade/accessories-calculator.png new file mode 100644 index 0000000000000000000000000000000000000000..f2e903fa08c4a166a21a36d2a61aba5e5c38461a GIT binary patch literal 5347 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 0 then update_display(key) end if +end switch + return 0 +end function + +------------------------------------- +procedure do_backspace() +------------------------------------- +if length(accumulator) then + accumulator = accumulator[1..$-1] + set(disp,"text",accumulator) +end if +end procedure + +------------------------------------- +procedure clear_display() +------------------------------------- + accumulator = "" + set(disp,"text",accumulator) + parens = 0 + has_decimal = FALSE +end procedure + +------------------------------------- +procedure update_display(object key) +------------------------------------- + switch key do + case 40 then parens += 1 + case 41 then if parens > 0 then parens -= 1 end if + case 13 then adjust_parens() return + case "|" then + adjust_parens() + set(disp,"text",accumulator) + return + case "." then + if has_decimal then return end if + has_decimal = TRUE + end switch + accumulator &= key + set(disp,"text",accumulator) +end procedure + +------------------------------------------------ +procedure adjust_parens() +------------------------------------------------ + while parens > 0 do + accumulator &= ')' + parens -= 1 + end while +end procedure + +------------------------------------------------ +procedure do_calc() -- send text to math_eval() +------------------------------------------------ +object txt = accumulator + if parens then txt &= ")" end if +object results = math_eval(txt) + if atom(results) then -- valid result + results = sprintf("%g",results) + set(disp,"text",accumulator & " = " & results) + accumulator = results + else -- display the error message + Warn(,,accumulator,results,,"calc",64) + end if + +end procedure + +----------------------------------------------------------------------- +global function on_fn_clicked(Button b) +----------------------------------------------------------------------- +object name = get(b,"name") + if find('(',name) then parens += 1 end if + accumulator &= name + set(disp,"text",accumulator) +return 1 +end function + + + diff --git a/eugtk/examples/glade/calculator.glade b/eugtk/examples/glade/calculator.glade new file mode 100644 index 0000000..0a2a31e --- /dev/null +++ b/eugtk/examples/glade/calculator.glade @@ -0,0 +1,1027 @@ + + + + + True + False + 0.46000000834465027 + gtk-clear + + + 200 + True + False + True + 5 + Calc + center + accessories-calculator.png + + + + + True + False + + + 1 + 1 + True + False + False + half + True + False + 0.51999998092651367 + 0.46000000834465027 + + + + 0 + 1 + 1 + 1 + + + + + 2 + 2 + True + False + False + True + False + + + + 1 + 1 + 1 + 1 + + + + + 3 + 3 + True + False + False + True + False + + + + 2 + 1 + 1 + 1 + + + + + _4 + 4 + True + False + False + True + False + + + + 0 + 2 + 1 + 1 + + + + + _5 + 5 + True + False + False + True + False + + + + 1 + 2 + 1 + 1 + + + + + _6 + 6 + True + False + False + True + False + + + + 2 + 2 + 1 + 1 + + + + + _7 + 7 + True + False + False + True + False + + + + 0 + 3 + 1 + 1 + + + + + _8 + 8 + True + False + False + True + False + + + + 1 + 3 + 1 + 1 + + + + + _9 + 9 + True + False + False + True + False + + + + 2 + 3 + 1 + 1 + + + + + _0 + 0 + True + False + False + True + False + + + + 0 + 4 + 1 + 1 + + + + + _. + . + True + False + False + Decimal + True + False + + + + 1 + 4 + 1 + 1 + + + + + + + + + True + False + False + Plus + False + True + + + + 3 + 1 + 1 + 1 + + + + + - + - + True + False + False + Minus + True + False + + + + 3 + 2 + 1 + 1 + + + + + * + * + True + False + False + Multiply + False + + + + 3 + 3 + 1 + 1 + + + + + ÷ + / + True + False + False + Divide + False + + + + 3 + 4 + 1 + 1 + + + + + clr + True + False + False + <span color='red'>Clear</span> the display. +<span color='yellow'> ESC</span> button also works. + image1 + none + False + True + + + + 3 + 0 + 1 + 1 + + + + + True + False + 2 + 2 + + + 0 + 6 + 4 + 1 + + + + + True + False + + + True + False + 0 + 4 + 0 + + + + + 0 + 0 + 3 + 1 + + + + + mod + mod( + True + False + False + + + + 0 + 13 + 1 + 1 + + + + + frac + frac( + True + False + False + + + + 1 + 13 + 1 + 1 + + + + + floor + floor( + True + False + False + + + + 0 + 12 + 1 + 1 + + + + + ceil + ceil( + True + False + False + + + + 1 + 12 + 1 + 1 + + + + + round + round( + True + False + False + + + + 2 + 12 + 1 + 1 + + + + + intdiv + intdiv( + True + False + False + + + + 3 + 12 + 1 + 1 + + + + + True + False + 5 + 5 + + + 0 + 11 + 4 + 1 + + + + + π + PI + True + False + False + False + + + + 2 + 7 + 1 + 1 + + + + + comma + , + True + False + False + + + + 0 + 5 + 1 + 1 + + + + + = + = + True + False + False + Calculate Result + half + + + + 2 + 4 + 1 + 1 + + + + + remainder + remainder( + True + False + False + + + + 0 + 14 + 2 + 1 + + + + + () + | + True + False + False + Open/Close parens + half + True + False + + + + 3 + 5 + 1 + 1 + + + + + √ + sqrt( + True + False + False + Root + True + + + + 1 + 7 + 1 + 1 + + + + + _sin + sin( + True + False + False + Sine + True + + + + 0 + 8 + 1 + 1 + + + + + cos + cos( + True + False + False + Cosine + + + + 0 + 9 + 1 + 1 + + + + + |x| + abs( + True + False + False + Absolute value + True + False + + + + 0 + 7 + 1 + 1 + + + + + _tan + tan( + True + False + False + Tangent + True + + + + 0 + 10 + 1 + 1 + + + + + pwr + power( + True + False + False + + + + 3 + 7 + 1 + 1 + + + + + log + log( + True + False + False + Logarithm + 0.98999999999999999 + immediate + + + + 3 + 14 + 1 + 1 + + + + + sinh + sinh( + True + False + False + Hyperbolic sine + + + + 1 + 8 + 1 + 1 + + + + + cosh + cosh( + True + False + False + Hyperbolic cosine + + + + 1 + 9 + 1 + 1 + + + + + tanh + tanh( + True + False + False + Hyperbolic tangent + + + + 1 + 10 + 1 + 1 + + + + + arcsin + arcsin( + True + False + False + + + + 2 + 8 + 1 + 1 + + + + + arccos + arccos( + True + False + False + + + + 2 + 9 + 1 + 1 + + + + + arctan + arctan( + True + False + False + + + + 2 + 10 + 1 + 1 + + + + + arcsinh + arcsinh( + True + False + False + + + + 3 + 8 + 1 + 1 + + + + + arccosh + arccosh( + True + False + False + + + + 3 + 9 + 1 + 1 + + + + + arctanh + arctanh( + True + False + False + + + + 3 + 10 + 1 + 1 + + + + + fib + fib( + True + False + False + + + + 2 + 14 + 1 + 1 + + + + + True + False + 5 + 5 + + + 0 + 15 + 4 + 1 + + + + + rad2deg + rad2deg( + True + False + False + + + + 0 + 16 + 1 + 1 + + + + + deg2rad + deg2rad( + True + False + False + + + + 1 + 16 + 1 + 1 + + + + + rand + rand( + True + False + False + Random number + True + + + + 0 + 17 + 1 + 1 + + + + + rand_r + rand_range( + True + False + False + + + + 1 + 17 + 1 + 1 + + + + + trunc + trunc( + True + False + False + + + + 2 + 13 + 1 + 1 + + + + + gcd + gcd( + True + False + False + + + + 3 + 13 + 1 + 1 + + + + + shftbits + shift_bits( + True + False + False + + + + 2 + 16 + 1 + 1 + + + + + rotbits + rotate_bits( + True + False + False + + + + 3 + 16 + 1 + 1 + + + + + approx + approx( + True + False + False + + + + 3 + 17 + 1 + 1 + + + + + rnd_1 + rnd_1( + True + False + False + + + + 2 + 17 + 1 + 1 + + + + + + + + + + + + diff --git a/eugtk/examples/glade/calendar.ex b/eugtk/examples/glade/calendar.ex new file mode 100644 index 0000000..76ad8af --- /dev/null +++ b/eugtk/examples/glade/calendar.ex @@ -0,0 +1,58 @@ + +----------------------------------------------------------------------- +--# Display a nice calendar using EuGTK and Glade +----------------------------------------------------------------------- + +include GtkEngine.e + +add(builder,"~/demos/glade/calendar.glade") + +-- PATCH: Gtk 3.14 forgets to add a quit button to the about.dialog! + if minor_version = 14 then + set("aboutdialog1","add button","gtk-quit",0) + end if + +main() + +--------------------------------------------------------------------- +global function on_calendar1_day_selected_double_click() +--------------------------------------------------------------------- +return Info("window1",,"Calendar Clicked", + get("calendar1","date"),, + "~/demos/thumbnails/cal.png","x-office-calendar") +end function + +--------------------------------------------------------------------- +global function on_OK_button_clicked() +--------------------------------------------------------------------- +return Info("window1",,"Button Clicked", + sprintf("Date is %s",{get("calendar1","date")}),, + "~/demos/thumbnails/cal.png","x-office-calendar") +end function + +--------------------------------------------------------------------- +global function on_About_button_clicked() +--------------------------------------------------------------------- + set("aboutdialog1","run") + set("aboutdialog1","hide") +return 1 +end function + +--------------------------------------------------------------------- +global function check_link() +--------------------------------------------------------------------- + if networked() and inet_connected() then + return 0 -- go ahead and try the link; + else + Warn(,,"Network Error","No connection to Web!",,"~/demos/thumbnails/net0.png") + return 1 -- don't try to connect the link; +end if +end function + +--------------------------------------------------------------------- +global function on_aboutdialog1_response() +--------------------------------------------------------------------- + set("aboutdialog1","hide") +return 1 +end function + diff --git a/eugtk/examples/glade/calendar.glade b/eugtk/examples/glade/calendar.glade new file mode 100644 index 0000000..0f56f52 --- /dev/null +++ b/eugtk/examples/glade/calendar.glade @@ -0,0 +1,205 @@ + + + + + True + False + x-office-calendar + True + + + True + True + Jessica Alba + False + center + x-office-calendar + True + + + + cal1 + True + False + vertical + + + True + False + Jessica-Alba.jpg + + + True + True + 0 + + + + + calendar + True + True + False + + + + False + True + 6 + 1 + + + + + True + False + 10 + 10 + 5 + 4 + True + bottom + spread + + + gtk-quit + True + True + True + Click to <b>Quit</b> + 7 + True + True + + + + False + True + end + 0 + True + + + + + gtk-about + about_button + True + True + True + Click to show <b><i>About...</i></b> box. + 7 + True + True + + + + False + True + end + 1 + True + + + + + _OK + True + True + True + Click to pop up an <b><i>Info</i></b> dialog +with the currently selected date. + 7 + image2 + True + True + + + + False + False + end + 2 + True + + + + + False + True + end + 2 + + + + + + + About! + True + Jessica Alba + False + center-always + True + x-office-calendar + dialog + True + True + False + window1 + window1 + False + Glade Calendar Demo + vers 1.0 + © 2016 by Irv Mullins + Powered by + http://openeuphoria.org + OpenEuphoria + LGPL ~ GNU Lesser General Public License version 3.0 + +This library is free software; you can redistribute it +and/or modify it under the terms of the GNU Lesser General +Public License as published by the Free Software Foundation; +either version 2 of the License, or (at your option) any later +version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Pl, Suite 330, Boston, MA 02111-1307 USA + Irv Mullins + Donald Doc + Kay Pasa + Vince van Goo + eugtk.png + True + custom + + + + + False + False + queue + vertical + 2 + + + True + end + + + False + True + end + 0 + + + + + + diff --git a/eugtk/examples/glade/clock.ex b/eugtk/examples/glade/clock.ex new file mode 100644 index 0000000..7ba4781 --- /dev/null +++ b/eugtk/examples/glade/clock.ex @@ -0,0 +1,32 @@ + +--# Clock built with Glade + +include GtkEngine.e + +include std/datetime.e + +gtk:add(builder,"~/demos/glade/clock.glade") + +constant ticker = gtk:create(GTimeout,250,_("TickTock")) -- every 1/4 sec. + +create(GtkCssProvider,"""#clock { + font: Purisa, Comic Sans bold 30; + color: red; + text-shadow: 1px 1px 0px blue, -2px -2px yellow; + }""") + +main() + +---------------------- +function TickTock() -- update time display +---------------------- + gtk:set("display","markup",datetime:format(now(),"%a %l:%M:%S %P")) +return 1 -- return 1 to keep clock ticking! +end function + +---------------------- +global function Bail() +---------------------- +return Quit() +end function + diff --git a/eugtk/examples/glade/clock.glade b/eugtk/examples/glade/clock.glade new file mode 100644 index 0000000..d1bca97 --- /dev/null +++ b/eugtk/examples/glade/clock.glade @@ -0,0 +1,90 @@ + + + + + True + False + 0.99999999977648257 + 5 + center + clock + + + + True + False + vertical + + + True + False + + + True + False + False + <u><b>Timeout/Idle</b></u> + +Two kinds of timers are provided: the timeout, which calls a routine +you supply once each x/thousands of a second, and the idle, which +calls your routine as often as possible whenever GTK isn't attending +to other things, like user clicks, window movements, etc. + +This clock uses timeout, updating 4x per second to minimize +visible 'jitter' in the time, but using less than 10% cpu time. + +Changing the source to use idle instead will use 80-95% cpu + True + + + + + clock + True + False + 0.75 + baseline + True + False + + + + + False + True + 0 + + + + + True + False + spread + + + gtk-quit + True + True + True + True + 0.43000000715255737 + + + + False + True + 0 + + + + + True + True + end + 2 + + + + + + diff --git a/eugtk/examples/glade/colors.ex b/eugtk/examples/glade/colors.ex new file mode 100644 index 0000000..1e9287f --- /dev/null +++ b/eugtk/examples/glade/colors.ex @@ -0,0 +1,18 @@ + +--# XColors program built with Glade + +include GtkEngine.e + +add(builder,canonical_path("~/demos/glade/colors.glade")) + +constant xcolors = canonical_path("~/demos/resources/xcolors.txt") + +TreeView tv = pointer("treeview1") +ListStore st = pointer("liststore1") + +sequence names = read_lines(xcolors) +set(st,"data",names) + +main() + + diff --git a/eugtk/examples/glade/colors.glade b/eugtk/examples/glade/colors.glade new file mode 100644 index 0000000..1b3068e --- /dev/null +++ b/eugtk/examples/glade/colors.glade @@ -0,0 +1,111 @@ + + + + + + + + + + + 350 + 600 + True + False + 5 + False + center + + + + True + False + vertical + + + True + True + in + + + True + True + True + liststore1 + False + both + + + + + + 160 + Color name + True + True + True + 0 + + + + 0 + 0 + + + + + + + Color + + + + 0 + + + + + + + + + False + True + 0 + + + + + True + False + start + + + gtk-quit + True + True + True + True + True + + + + False + True + 0 + + + + + + + + False + True + 1 + + + + + + diff --git a/eugtk/examples/glade/coweat2.png b/eugtk/examples/glade/coweat2.png new file mode 100644 index 0000000000000000000000000000000000000000..a3f0c8dd5336c46d16f2910302fcc5b76084057a GIT binary patch literal 14066 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*Y< z3jh}|O_B5f03ZNKL_t(|+U>o0lw?o|RQui%O-ERH>z9tsp?GMu`EN z#@K)Xx7#bU-EITz_OU&uy9Wi5j`-k6-g0e%O#75Fspy{T#Hmqc`a4&VH zo1EZXm&CTA0LWkH-|S@qzCSs^cY&`0gTO9e3-BoLMc^yIKLNJ@zco3*-%m{wToT_# zsDE+6O|0lK)BhHDCm`4P&I3Rhcs06aZ4&E1LjKLmUPa1@{v2mt~f20jIRerlQ% zmxlJm3xFx$&aRjDN5Z`q7y$lK!8S`m#)66qUI2ywAvg(q4*1N}G!I@H;xj)!@ZQ_6 z`q-!Md1?a*y#UfcFf~o{!0c?*nf)V{a4D1}r!sa3@)!{@1nvoGO zBrfm|z`vZDrg=%crxm^f41es?_Z)qm!nOemXr2uz7iW0#eB=>~MSqV02Y~-82zlRd z4z3*qDd7032Es~Hn+GX)$J8{Rza-*Q3SR&>eC*TrJanetx$|n|*Y*;gw?NPt0>c76 z>xcYe&W7tY!DtQ|J}ft2{~|2ZxX+Nha%vj?lBl11{QBFk6PbM9&|m$3-3r zgy0uLh3N&bDX+D_N)uzXg?(V2FJ2Nq?3-(QSiEEa5Z%~;UBfI&!RzZDW?vc#DX>jA zQDN8R!+dW497~rVaPb`SJe>3IfZ0&Nvn$|*Fp!4PJee@$w|@%Ny)ikle%-|jbWQeo z0l?%0eo;G{ME}0-GCnvwP5yzbpL^HW%RPVeJ+k zTGBBALox(hhmIn?qy>+T$W<=J>zkU!-B1lMIl*gyZ^ptO&cQXKU`aT<1k)!WR3PA^ zk%lqhbSY{2jn2fV>|-|L=ice~AcPOit)=o0`Ud zA%uUnq;hhC(&PlC4b=dX6Z{eIzkycojsZ7rfx#>sT++e^5Q47*@3>g);Y*y0WYC2? z2iD6Fo(l=w(^ew_uGs{G892NQPt0m$3Bd!vdoKz91tWWP;FQhUI6f=m;+Q=;QCN-qNtxvcf0|(>C!O2bOG=^U_lC<_kZFf z99W8qLpvn%!Y)!0>?q%+32--VE$Z^C~v$H`SqV%0>OmAGpsuQZT;Eez8^o9cv}JfPxIo|jYV7X4x+!&hpp??7;!Ooj6sxZG9%?RBntDBf>q9Gmmamta zJ)gsnog0h6Rv6n!X=D>iCuXS49YKYD8=H|?`6Tc+5f|~MrZ1kly^9?Hw*o)t)+S2n z)bMB?#tJZA(jbsszp4_$9E8yHqlc$~P;GU95_C~I%Yc-*R@F2EI9bu(wGI7R-6fRy zK{2{>mk3-RZ~hQLb%AnIm#oEjjkw3BfX@Jj06%h-%|CP$&e)5R3Bl%_P8@(YWqf5{c8 zoMB1=VFlT6RTOPMEZ77Yi@*!<42cygMipEGOaSBPlznmmUG%kqVsRpgf;`4i~3q(K4=gG zC&K|Vm2zYtEZG!kX?k^O3(rWIh*FA`fSaS#kr^f2n&0m!h=*vE~lcbM5!}I%0Ft z!)o|B*~nSS^9K5|jBoBEG_$z5O(;DKQVIrbgM5FQ)Q&!mW-Xo+bk@}?5alMRrpHag zS$^(f5&rw$cH-MkP0czrJh-k;W^C1q#i+<*(37A!i? zA-hIaG^DNSsntq@D|U@BI9Q-2`>1BNssJOlA_#%B4R-A4XJSVQXCSTX9gMZ^>n#@z zlNaJ$1ARGmUol1|lcLq~-fl>_<-7u5a)LB)N4MKobTl(h`uGa%-d!m5uh1sP57#IH zVF)G0twky|k5tO$7k}Ya2Kux3xlO`NkErO9>q@Z(e*f2AHRd>0X0_7f<+tr-us@G!8aIVX-Eh7&zzq>W>dbx-&HiZ4#VlT+-7R&2 zJnPtlFvN3zbAUx*xGU;`AMdAF%y9knJMcW8nlqvrRzE<^4{5bM5Hx`uE5WWo*wF_= zc?~e&H$VJZaxWwRf-wBOX3M*wuau+NblG{?Fs|#@K=q$*0K6tiBEyL2W$Y;8$6D6! z2bv4W3phAZAcR0EMHun)2 z`g(0cuX2t-<(Qh>_Ge%q%jGEk`a<2$zy0mkw@38%e(ja%_rK@%TYNwKL(`NyZQCH5 zbvSx#5ow655TbS701%Z$zo}dG_NRN>c_FlazEs!I7IA^dK!igf1yU(|rI^oIVVLsE zu4zghdibESY?C*<iO-W(svDRb~Dn>P|VvPXk zg}9&p{ja~Ne*ZV#X#T7B-F}1bg`ch0n_sp}$;)rPg2^}Ch${_ND-EO&UKpyS-+K4U zPCL@i%MIK$%mnbq=%z$^_S?EWj7q5Ce8Tk;LPz-AK-*PAazSIQQeaAn-3lnrEYxP* z?ASngwJFNwI#*vY#@4ZZPRy=|M$;$2#B)l7`B6e6jVBy@GfU_;2ttJyX!kM<_3Ed( z$2Bk8&gu^j^P`Qt<~#Qw_s^ql8^(G4t9Ng|;i}@1CW_aY0LsYBHx^0`^{rG3@ee8Ti0iX&Ti&8sH3>9*ZmzI!v62CCj9 zB?XI16&%OPE5(7?zxWF=`r!|&^BM{cm2Lu2aMlV_h~AMuDWK)S>?#cBJ08P@I=m1@ z3$QC#;gCN}U}X8`cc0+teKSnH;d=h?gKy#JVuhK*Cs|!-@RNPVnVVZhQD9;AB;|S) zD_UH=+|-&b)Ee&wrT93I7P^L^J~@Fx@qNo+{7n-)6DsB=C&&o+29QILK{52E39eKy z;)m=4`W5t{`!Tk)bQlCQ%BxCL>tf5+O}zb|zZ|QS!mqa2_snr-W|nyL(Zl#bh&1F$ zLogi4*E=0yem)%F4d_LlQYpO>crdee_A3Q_89hsS30NsG3>eO?C5{)$ODH$s3;Qw@ zhQ`SD4I@pH{=N)1{j;6C?2bM350?;ONKkLFvRdcR@nxp|;XB;>&F^CxYE7`o5FNKS zh{Dn`njBKQrJ(|8=;tnA3z$=iVJYweg(XF&>uQ|WkfL*rHtP={S1j?`H@}Xt@e!VQ z>@Z6!HI|mEWU~%JNQ4v!c+LO)$-BRMzBoW1@T-7{fT65b=c)(sOWD0cz(QynT6gvP zDeJ;=g0uzms~#tp8VI3~rbW5Z z!;2=2)Zor{4jfsbT5IBmicBVj5X?!$0R*2ll>d+SKX$bK#w#i8U!b+oCSVq* z0uE~ZyuBYnwF#xn`azozSg7flQ%axzSbf!8=pwpJxSFig2s<6GZe zqS#lYm`{<*XV`VwDA!%TjpeFGHlL?nUdFJrD#_WkIcYI19lEX zv5KfdsqVsT)Ze%oar369!C@LuYeFbZOxvav8srK&>Wvna#U%_wtNU%mPWbs$AhZn) z@VujgNT=dGs%vIi2Fz9ATl@49JdrrBAJViWslJRpZy}|-w9b^Zc69>{D%vk~SZQjaGZf7frOq7)2Ntvj8p&(I8boHR5D8qCkV$M{Ax?f#+)vsF?0OcH%kV zUf5F5uJcm8Q)V~b2g6xXTS~eyXECMktLbYHA6kZTQ-6QHra6}vK-I-C4Q}=VZax

K>e2)o6B1J`BB0wXHyh+FQORmpNOT*1?SK&EN)Fo5j4r^I{ z4t*{^1Q7*v5U}^8Zf;R&=|MCTE}0?q=WU}y@>EpkVD<=TNvT0|a0ZNgmaAWO2Rp93 zmOaK!nk~#OIO`iA>pAxQ5i4G*;!yP1F-75JogUeQC`_ zOsPR-L=(w&wU*0Sx)?VM^)+APz*qL38vqt!q(^SeX`SzCOY?zPwVy7n8_$HMr*D3> zrEknOHR@9)*fGLS0f?7v({^#OrcuAIpgWtVENz;eS%Al9bweu=m6RFi!7`1Gc8k)$ z7!iSU18oA7dhT_X8#>q(W{dphhd#>fKl^ryeM11;ddJT(al^~_v97@7=4Ksq?KS(IF8g-2IXQQA~yBGHlJewSUyiOo4{A~D8iwIlO zi(Ju23&nmkiFF2E07uJuR?gS-03qN9hv4Dk+7*qpj};NTEd|Zo`!jlm6>P0hVvZmp zH!x+c4GPsf*mn$ucI@Ik|LRY8(=YutsdSbg2#`^g%+Sad<`(9d{_%bEr$fpOc=#~v zZ;s+z@p^`@on$sBP_DHw{VJP^iv0_^)J+Hk@L#3ij||D@P)wPU83lJY11dqtuGPq# zrA+;B0}bey6iNY)pEx%SupEUM9ds=Gj09PC^`M>3Ej%qC60rs^&_Ixp+vJ#?haDmQ zwypYmkIrZi{OG7w@h2*s5t%AY4$}w{V?$5w_HnJ3UCA7BH&L}TU>c) zISSRMv<4MIk4H1osOOTNpNCGZyc?cbP(kTB{S6K4%0%A554EXTtZ5Z|ybLF+njqzD z9eM`Mrk5Hz94!T8EnW2!H@Y&7PUOvy9dP9wC`2V<0!_}6i%=FS;7W)0{O%v~sylzV zJ>!MY#R;ZqQmg4O42|*V0Z5Hr&AUGE@459=lL%?Dy1Gg_ljCjg{s4RK_+<_* zOR8?WENxZkwUBF$FF#J@i;qzef+<7rUrfof^EExw7iyj0l8m&}xfX;hq8D-!Mr!$t z5D=w>yO)KXZ$KrjP2aRo8Ix8 zIH^tuw9#m^wSZ}A#hXrNIdb#}3r%>{+kTxl{`~t`TwElZ&63S#sZ?}ttvi3=S2@w@ zW2MnfqZfqU$gAh^)hAf~>NI~P1ivB$_pY>b^Dfu#tjJn!L|XIt4s_IkYB3)4GcEaw zKkNEjkSft`Kv)KB?b9)dp)5>{z>S-=otI~LJ!wmu2qFy--*yNrS77%wx024RtrW8? z3)giC!;rzjK>(h5^d4$;pUu0k-xIUE!)_>dk-@UZS%K) zID_U}iu(=89|`#CY?a1CGw|>X+;>E`?%jxV@C1`(DfB1*9;#OVqAS9QDEA52cL z5QcnYrODgEkY@}*NeCX30(q_gSV$&*!U$1kGMFu2t55L)wvaN#KNfi&wqj&3xwzf5Xy&A2OJSX0t}$ z;3gIq=eYj|-^Oh=x%HK=XLM{!8=Si*ZsOjrd;vpyAvvL!uAQm2ehT>KlM`HF7}!#9 zJP1imO>^R00niQx`9Ty5kf%pL?3T5n@-X!xT!-8AG^wn68vHRy?90La6AOIpA3w!q zSKWX@lF4SVZ41wJ+56aoJoV#mbNs=(xN5|sybSZRvmAeRKaV}~AfNcFKd04d(rnau z`+I&1(=-vl{LFqzC4*`!AXMxXk}R-tmS+2zjjjmlgo7g@c&b>ybHcPV!hljb z&1*)XUO()tf$U4cXg}Ql-Mh#a@?3xGYx$X*Ze#ZNL6+xE^2`HYr$3lwS3jg380mv2 z_U+@*`@e@58d~`E8cRzHgrUx^9ojd|@dHnh4g*#cN(wf?#_U0GuKNbQ2l#X>z^z41 zj?SdIC&|DwmS*2)8|Qx^kA|l^q8%y2WqtZS;@m>RgJH} zqm@vr=VZ?f)uaUp7*^7*S2Zdbtoo>TvQvR4S&F&YBt$`m_2zO+#zHoTJmj`)3dH z?N9wDN<)1#TNMhnq-49?a#@tOh(g|$BpoX18$yK7@%zi@W=#$e0G`hvw^OG|XX5Iv z&VuDE4FoB=1lVONlNG?*}5=N%>`%UKp;g2tPM}A^q?DbiN&NbkR4M4A{jo< zM)`!k3|zGtmMY8G{rZ~CsAS9!bTrS@=k$eMmiO!n4S+eI4wT}V5S&AVF9w1FYAu~d zPbCH{7IGYYYe(V|4IM*|?G_ zt5+K7XkAps=>}j+-Rz>}w_VO5*qDtf&S|OM)HEycg|t;+xG@2~c-A*OSgPq#sFjAU zkE^*_OSC*a@O}gi)ni>k{18H?XdB+fa*T|vL)(FRu8lF{_7aKT^TJMIX+2_W8=dlU z5e;sorNIy#Rp9a$8~}-=(D@7Hir&IZrijHEx-%+D0>#y}=X!)u(TIr1Y%-KAL?=Mh z7Isug6a=RZJDaley*OqPmwH7d_NB9p0h~_&l#{deVrKAh$a=ZHF;Pg{i2Q##6~1f0 zA$zZt5T_}4O<7TORpR=R#h^e#!BrOv02Y(#>tgrd;zg<}jdKr##P@4TU2`ZCvt2~? zKB=9Q(!%#orGX+Xk&5CXBH{s6Pk%Q$cRC0+rcu>K0ARUW1E}=|>mor%yhwGmd2R@Z ztB*?Q9FCc%+|cUX^Pth}2sBK9B2Jj8(*(#&qhs>wt_DrRjjEws0@Jjvycpa-ptB)V zvTUnc^)A%4&l`t+&y|TM{eIEIHlK+mSZ#JHhn`nHLP6HH*t6w2wv6l{Re(b?ds(e6 zQEjwn)ejL8qLf9e>0wzBUx+HC+h#~6+{WlS%s5}-LdrDo-GK4FK}HJ$Tt2+jsJnIb z)yMC>C;%X0CS%1R9LrV$vFqRb z%RiUmjjsq_XaLM4XH_qFcz#5ZlrFGUhcvb_Mc37F6Ch+RiSLazhxtDZ)3_Dw3X#2}aX9g%5+pv(xRF>wE!_?+Z z5-LT*YYD(O_`@j!c)|fB?@2HlkFbRPDosNtQA|VU1B4LN8x^cpA66j`UJHb) zuc}o=2#Mq5!1ov$y9S0vz>$njyp5o_it-v5riIt6Vi!hqpIbkKnIq6_LbD3Cf#++4rC z7vUFyE75My=z7sa&=I;uMTb!Hjs`>4N>uvN(M(B#7**DCqN+>Dml|t97_)OTY9KXN znZYnjeAh(<0YZqihD(K=(jl*=!Qo5rni$doI|C}j&h~>_i(CaC+@}7nG?12!v~5D) zkI!$_JpN~aNW%|+x%rv$1102XFR zL_t(6DYu?$KxiWXuy88X&szCIXMryf7H<05KG z6@{Tsptq5E82CiAKjAoVZFIhuqZ>Z2(F#>p#{srR%ev#d!g91G@MJ}2-QwTvIvSDN zTZ!;h@)ZLMl@n43N#M2!JP*TM$E}FL;rn1&rv{3MLWa@*LI~_khI+FZn}NI`<;umN z0sL5a-2*0sj$pY#yPo~OO-=LpuJ3;-20)xo@B$K|USnETPLY>T=)HxG0AGnVPM$!w zvwc1AGe9o3>qpCa@nkM48)WW_V(_aG5Co7bIsCF|IDfHR zU!a&9By?R3fLL{iP5>luT|~8t6aoeZH8Fb5(%|TBT^HYVF&zgYKpD2(S!V!MKMb#m z?)L=+fb7KqM6@_@xzSd|CxHLZI^G4)`-*-_$gxYPh)ahp!Xgs5V#sG*m%BgduLDfmJM` zT$fg>h1+UTuU09qtWd2~*m?Qo6s1Hs4wOp0Geb&2rNXm^57TP37~Z^@!O>BiLV?=J zlL#r5Qc4&?+;{P406NW-V=%-!azw9xY-+k^3DZ8{3E;N)g_gGt%RGk)rm1P3nVeuI z5^OH^FjS;<;^K`XD_{yfH#L1`RkyCE(xzc%m+K3dmQ8(mnZq+P)a!Msl?txsVT2(K z*TphT#mA>U zHAyUt$nERa04FvwGZ-gt;zcbD9|SC&sa^frQ>eQ?fULWG``b@XQ*SjWkZ~LW&qGSt4lcDkuWm^B?9c~4ICC)p zz}SG_xhpwCo4rMFuGL4`_*!LGe81th%h^soFE%at$z#X%;)fv_%hq`Y)5LNd`uh91 zde0ulw{J%#V+4`PXLS`$o`kZVCxKF=(rNb1%y4Xeo@%{LrP(B9nwW-RSW@1#QJUI3 zpCCHR6zjv0`rQdS7^I#XUaqcV&bvR_-Lg+4<110Cv^6p8xZqOiLRZn_JUysQ!ab3+ z4$K|qu_I4$&DN{9erOOYlOar@^!}gO7w-pSb*1RVW!h~*(|~^kd}qCtWG&|k5sB*+l+48 zM!HZSbKn5fY7FFZ7<%`MZ?yc4+ka;x0FY5c#gSs&k=k@7gQ(!?_>GLU)(sRLAU*FI zo=~BphRyBHAVH|BZJHgg<7{e7lgB22Lkmaw&fdGYVrY!f!W9e@x5J7KV4CSPRyvJg z+t}GGRwlEy!ZofC2}Ar^jg;%MC6}YA6sDAwAPkQy_}V0J+X8{1wgZYoH;Q-O6f~a3XRM~PS08s0KScM!}+>2C)d3Nzp+_1p5 z!D|`FjpG<82C^mJvK_M~C5CO2Di*QQX{6&|SQdV*hFhsnUtA<`T~|oCBBlH%rPN)9 zlur+ij2sqkezUrm08m=@EA#)7ktUfJntZW*gx8b(&tCrTPK~<_@yd%&@uda$bAo%f7UG1N&`Q^{^c1G zHRbu(ai`Ci3&gdISvw*aios|$tHdJ~c9P77U9T&ZD1M2{&>S;L`b8hEwd&r;hdvZ< z@O%*XyF-8WzwUG_tCljYM&G~r{W2Hu*a!fOuJ=YFH_#uoHLJu?SUQYeqPJ~rCxbHf zy1!NI&$45s!O4W+#Tl@51>go0vRzTY_|1&nE&&^hVjC(c+{EAbdHXS#(-mUzJttTF z7?C+kp!qo-(T+d<(*wLf$2kGu^;c0il?E_6zIG}4+(M*YjYxn-0suF~*LFGvXA2f~3YeF}1Me4#rjmfQ_R ztz$A@lmIX!gFqV9!waBOCLRg;GT>PBn`T1zW+6pZz-6(@wAb$?>{teyqVsSDAXozc zrAW8S*Aqfg(WVZD1Q9Ttu_@JET3u$Kd-lgb2<#SY(nTljy9`KG-F7v6A*eEw1*SIkN+A&c`lcdP4UJG<|)?BSq5Y1E$hTO_Fi>G z2ipT3hMk;6R|Xa<>PFu38Foxcb(cyH)gM2C#NSW|ig7-~lxqp5isBef)ILph%%AGw z5ibe=BnMqa%-3$KKCyNIM;icoJ^XkiII9Z)GVickfD<>87ObCNwhgub=^kXVo1H)B z|3LLlTFIyaIcLL4gG@2a=H+@jece6tyS0EynG7TJ7A;i{Z-fSqn3`2+xhE<&k# zcpon)0FpwNiH8A5A=nmw$Xv^G*O-84!Q)5*0CqwP$W;HfD+5blwdQb)dfPovfQL=p z873Us1a=AA4|b;y-8ax^w3lD58~N-0-;`YhOs%c{%|^?z(>B}C1)=H`-auOm@>AWoN z9KlZGhnI6)Es#}Zd}-s6qArTGL@pZ90LwDQcJADH`}Fkm4^G1ap7T8F=g?kyhN


w5{l4GbyR(T;w}^-03ZP~moJPNrcp%sgcvM~O)QH|#O6|{0F;Mm z7zil|f`E~ck=GqQeE8{VwOU;#IwyMh+e&q;Npc;3+^;8N>HDw^HW`vk5Vq}fvLEys zAZ*z@c7^QE53A-Jv?_SM4-o)@_$Gl638^AVq!gTx>*N)>HEz&@BU}&w$Sz-9bPIpH zUlt(T9AAFV-9Z!4Kq1JO2Knf%wgxB^id%$`27qOm2qD@#YZ!)s<77#tQe-k2eBbBz z@#6>~2DWb9dfnc=d+$Gm>hHxNjqVqu(Ww!z4ak^KlZ>QHN;Q{Sk6FK_?zK3$d5_8u z87j8}yebWEg~LIaQMrhNOI@Xzb%!`+jKFXS!r(H)m@@)h7oZY+CArX3bUo*Mfxuj6 z_8VQZzdL#-w(Pp@7G--w)K4H<%Q!OZiK46pi~6!1Q}?%RB>_+@WG~Y$TFCJ5F!_8Q z*L5*Xvt0@$gg{E&d3$MTiE6bgT~l^+0S zFjHJSHe8#p9P2t?cW7AUvgtjjNSoVve7neAFXS1|BPE*D!xTOimT4eD4=K2Q_wL<0 z_U_$#fVG_glEb#1pf?-@<~p;#r^-))#7>tkSE;mAnJwV1u*?yL)GQ`iZ~E9YNa3an z2pq!Dm&!OPpc#7r79djT?5I)-%d$wP(+DAO94AuK`d(YD7E4P@lu9KsnGCgB4coR$ zoaH(JBUQ+#LW$6;QxSpg$R$98uo4tG?hUhQmk=pSjBL$bGc*6=SvswdpTjYV#bUv6 zoOZ2)3PYp_F-!v?Qn(^RKIM?lWl5*goH%iUTCJAt>+8D-IMkKPP(2b(vP<~ld;&o9 zn&~~BOF$S>Y>knx>^_c#C6?7VSypjHhNj5lVG}BW$mtoJ?K1~iK2V7Tm&@e}w(a!C z05DCnE%Xj+7ObwWvaqng%F2rFo-G8HWtF<}0b!RK?G~7%bfp!R20?|)qqpx?VTh`O zkT&UbiqS%j<>e(xh5U84ZQtvMDJGeT32C2O$Ju7*eTJFrszwp6A7{ zyInIv_HYN=0V2z?O(&fjYJ*m3&XLY!NT<@I(`iyECjwzev)L?d-MV%6{{8!(TqoY3 zN~O~FliC&t( zvMect*dE_xCYxhyY>ZZ`MHq%e1P9x;F-?;o2&mO+WHOnnOQlk7WkvVs%H{I|No3E@ z&$nlIe2!+bNvqW&2!cwzUO!eS6s`g|cI?;>d#KECy|8exSSVSR*%u4nkg#>jW}I|q zU!VBeOQjO!a+#r_p=udW^H_Yyk7`05Z_=rohDY}?eMCUtgfyyKR-`j zUmv+#j^*X$?D+Wj)hjD2KLpGZCr&&yI5@Z`lgaFgw@NvB^k~mP48ySb@WT&(@ur(@ zN=qq?Lx&DM(*;!MT{EZvH83!+SwzM43WaUkSdO!1mI4GpfN7cx3=Gg{Gxkntl7Llzeosn_ew&d$;Im; z_uhN|^UXKkye~2fLD!65FXilC=s-}f6llB`lmXy4&W?D{lv22^ODdIW&sHfVl}d#` z_sdxcg5acSn!5oE!zko(IZ-Z`>&dL(qmMrN_vCp>c;ZAfi-jc2JRl_h?Sy`dgY9&=QrfC*OM@L5v9z6I|Vq%107^;PZ zh04Oh!XYW;m$q-;zGGx$`h9kVc+-L+C@r<>$=|!f*`o>zWct|6$b83G6h}Q zEj*t&0rM0E6m;digIHK$7|trC%0h@@v)Saxkt6i?_hXu7TlJO8XyKLohnZ?D$SQ9MyzQ2@8r7l-W`ISoLD7q_1x3GL52*c1jc<|t(2M->6AeYPi z&5j*A_Bf7{0bC(OU>Js)nVGq#YbJ+1W_nWi=QRY(I!TmMxrE6~pn2nsH|{PLi@$Cd z#xK!T8Xl9M2ms-uk3M?G)~#D_Po+{ z&Ye4V{tMf-FH181n82E*Nwr#SU-#VH-2Zs;$tS;g%PqJ3u4P%nci(;YpZI=zIZjge zv5>q3_wb`=XDm!N36?G{5q~#G{0%N-N?4rbXP*Ox8*jXEXR%m(w_zCX6+&!EfM78U z!zWs;)&tYi)Bk;WdAXUW1CR*-$R2`EY5~y$2xsCmuc;Am9LL$SXV0tq`}=>vFpT7N zqLhk5&5c&8^~^&LJ@l8=YPIe-jy*m;zH|Tn{ZI8M+KB&;1?hH?QoqL|`Chls!wX#t zaJB&GHSqDQ6*t{<)0RS^@M}P()oT54c6Rph{rmTq69P^?M8f`er=5GL{$3Tpy?ke} zj!9^Lr@z0yxO?~Rx8-uVJC#x`*L9z6Hk(T-jEbY6I0O7M^;g;0|dEF7+Uloe!WV-l4MY=6T|3bI>b8Z*j_1S z)m0(XEx@FZy&j$zNqL-Z1Qugv4A?EZSiAnOTOtOFjoj@IZV zm|=ntcUJ|iXW#u(RQkY0P!%jLz&YhQnxebLfG)wyuJowrF++`Y0x9Y=iInyJ?-opV z0x0ZC%l4|^QR~d|UbFor34qfL@_IhKSVxO+irL#MJu25BgzFK+?ohJqksIk%YtSvw kpjW-XI%(dEW`orKAAEr2zpo^ft^fc407*qoM6N<$f=AUBkN^Mx literal 0 HcmV?d00001 diff --git a/eugtk/examples/glade/en.e b/eugtk/examples/glade/en.e new file mode 100644 index 0000000..cee9497 --- /dev/null +++ b/eugtk/examples/glade/en.e @@ -0,0 +1,14 @@ +namespace en + +include GtkEngine.e + +constant flag = canonical_path("~/demos/resources/flags/flags-united_kingdom.png") + set("image1","from pixbuf",create(GdkPixbuf,flag,-1,15,1)) + +export function hello(atom ctl, Label data) + set(data,"markup","How do you do?") +return 1 +end function + + + diff --git a/eugtk/examples/glade/es.e b/eugtk/examples/glade/es.e new file mode 100644 index 0000000..f23deee --- /dev/null +++ b/eugtk/examples/glade/es.e @@ -0,0 +1,14 @@ +namespace es + +include GtkEngine.e + +constant flag = canonical_path("~/demos/resources/flags/flags-spain.png") + set("image2","from pixbuf",create(GdkPixbuf,flag,-1,15,1)) + +export function hello(atom ctl, Label data) + set(data,"markup","Hola!") +return 1 +end function + + + diff --git a/eugtk/examples/glade/eu.cfg b/eugtk/examples/glade/eu.cfg new file mode 100644 index 0000000..dd8d0cf --- /dev/null +++ b/eugtk/examples/glade/eu.cfg @@ -0,0 +1,4 @@ +~/demos + + + diff --git a/eugtk/examples/glade/eugtk.png b/eugtk/examples/glade/eugtk.png new file mode 100644 index 0000000000000000000000000000000000000000..ceb921a0077a5a9cd815521e1b019bdd2545e1d3 GIT binary patch literal 12921 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∾0NC=@#zG$x@6MI+?W$fPaLNFBwF59%AE2b!PA>t+@4FJ3hrsgu zy)~L{o1U6_;|!b*##C9u?cW)*^%n8EgcY})*Jke)a_%;(vCMJ{<$A4F@)5s}SbQeD@uFc+ zWz)^v`8J><3ESESCsN|6x~^`bo~cai=biz@oU6;IaJao+__NN02LqmA5pz^p; z=A-9)Cu!|a+aT5Mwtou1h6%6|8qj{|i;?Js#H#W{uhM+WSGJ81DSLO5tB*mK)uQ)L zXbx6x4@5>)T(^>3WODs_REBieK?yigft|s>h1!-ZO5j z2R6v#J-P5RIru^^{XPV7{2A%%*zr5Ha^CeRF?YIqI4_0 z{FH?q`jZO*0l{{m!=s5-f9iU1+fos@6(G#dc5QdJFR2)q&6#*jUTZnSQeR)+%@)Dc z#6}lzotAKB48Um5>gp<2US8g8iv#Vm^K8(Iq_9e$iK0VKp|QQiTwOR}@oRL{07M^9 zcHMkjEL6(33CfQ|pNv()??@mgfRwUoEqaY}xG>mt-L>O8Qy`+rfA}&TL>n1I@K-+5 z2ES;cub5DJZ!~kH;QBl_F{-vtZN-maDD3du(4^>AZag<7X#a^wiISfxz%?}_E^at4CgqVk z7XlM?{H-RT~TP9Osbu{}n@YsdA{J~oT>ZU2aL{*eVpP=JFdV^7xSjA}kh zH#1_HgqTaoxPi+ZRYX_KyYubhXE4PFP%@s-1d`B9p@0kZQU9Mme+JM4;X%p>CR>P4 zxSJ#(`hQ@(cLq4$WySM+^bEk7y9+n^g9%Pf*R?=`B#Y&o+DGUkUHV((TqxYGW9t!& z0zW(wh>Gp3$s-RBryBzzFi<33)HmA#(*~eGb4yGAO3(Z}R^<}h|33%B#?B6=O6a=; zR>cSGG7)1KpV~pw0d>RB)3beD?h~Wa;ir(hF^KlNg8G64NsQiEe3Tc=*>g>k3#c8qv|w zlC7<+-{wq`4FGG^mB$;fdmeQG>?kLP0*t_QA>Nc?uJefDYVFhkN0jf_CCzsm?f~f< zBGx9!Kq}G+XD?f0N}-z@O?(UJpH{*iS5}|zIDu##0RXNm3y}{ct97gy#~Uzt1Te%i zZnL)sr=Wb1;TK#ARW4X*al#oc18b7J@P{!3sbV8>^IEfc$L&n{A`ycx_+UP@mYeuy z$ps=jwY0>XH@-tw@sqEr;lKQ+hN1a_S1y8)x06E{@Yg85)`b?GBkxCbf()#Jv{vd~ z+EggO>mv+ej$`=J({F+|+QG)p$4_JO{Q}v5c<1PL5p{DzVv%(34C^7TBEGsS9Vk7c zHWqJ##x2vfOncef;T+!tjiYAc*j&UFEL)a1I8S=f(dGQcR6-Kfz8TIFd*3#@+8mJb z>GF-+B@73$4nbPQ|E0@(>~ZwruQrG?KcOAa;L`wgD)Y^;kjQ?LbFloI;o8q(9Tk1>8|N-W#N_2p5V^V|D6`dI2!80lR(YJa4; zNbO6yQr?RHzy{}7?Ct$>(W&5EepZ1er+QzTopHQ5OKJV`6|UEa^)UZscrrd&(Jwz) zxDa^W{6%>5oH3El1=UrP4I0A{X-kl9bx2zRV*YV7zT2Tu(-zj9eR5di&kPO<7#Tgp zEHS2N+I*pWGqo~tdmdx^F`>5Bs5B#Wx_OChH=v*J}nxxr#D{>eS z>-6PsMCu)OYJOS>vEE1ge_!j~9QmENJ5}*3YCFD6YO%UE%!Iv+kmh3hUFyN#I~rp^ h81#SON?LzH$US;{jl%C?1^!6{A}ua2RteSj`+qRnJ>38R literal 0 HcmV?d00001 diff --git a/eugtk/examples/glade/euphoria.gif b/eugtk/examples/glade/euphoria.gif new file mode 100644 index 0000000000000000000000000000000000000000..2864c153891fe22ffc64dcf6ec666b0bf5e4bdd4 GIT binary patch literal 11566 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 literal 0 HcmV?d00001 diff --git a/eugtk/examples/glade/file.e b/eugtk/examples/glade/file.e new file mode 100644 index 0000000..9451553 --- /dev/null +++ b/eugtk/examples/glade/file.e @@ -0,0 +1,88 @@ + +----------------- +namespace file -- used by main.ex +----------------- + +include GtkEngine.e + +ifdef WINDOWS then + add(builder,"file.glade") +elsedef + add(builder,"~/demos/glade/file.glade") +end ifdef + +set("file:chooser","do overwrite confirmation",TRUE) + +object working_file = canonical_path("~/demos/test0.ex") + +----------------------------------------------------------------------- +export function new(atom ctl, atom data) +----------------------------------------------------------------------- + set("file:chooser",{ + {"action",GTK_FILE_CHOOSER_ACTION_SAVE}, + {"current name","MyNewFile"}, + {"run"}, + {"visible",FALSE}}) +return 0 +end function + +----------------------------------------------------------------------- +export function open(atom ctl, atom data) +----------------------------------------------------------------------- + set("file:chooser",{ + {"action",GTK_FILE_CHOOSER_ACTION_OPEN}, + {"filename",working_file}, + {"run"}, + {"visible",FALSE}}) +return 0 +end function + +----------------------------------------------------------------------- +export function save(atom ctl, atom data) +----------------------------------------------------------------------- + set("file:chooser",{ + {"action",GTK_FILE_CHOOSER_ACTION_SAVE}, + {"filename",working_file}, + {"run"}, + {"visible",FALSE}}) +return 1 +end function + +----------------------------------------------------------------------- +export function saveas(atom ctl, atom data) +----------------------------------------------------------------------- +object newname + set("file:chooser",{ + {"action",GTK_FILE_CHOOSER_ACTION_SAVE}, + {"current name",""}, + {"run"}, + {"visible",FALSE}}) +return 1 +end function + +-- following routines handle file-chooser dialog buttons; +----------------------------------------------------------------------- +export function cancel(atom ctl, atom data) +----------------------------------------------------------------------- + set("file:chooser","visible",FALSE) +return 1 +end function + +----------------------------------------------------------------------- +export function ok(atom ctl, atom data) +----------------------------------------------------------------------- +object fs = get("file:chooser","filename") display(fs) + if atom(fs) then + return 0 -- no filename entered + end if + +integer act = get("file:chooser","action") + switch act do + case GTK_FILE_CHOOSER_ACTION_SAVE then + + case GTK_FILE_CHOOSER_ACTION_OPEN then + end switch + set("file:chooser","visible",FALSE) + +return 1 +end function diff --git a/eugtk/examples/glade/file.glade b/eugtk/examples/glade/file.glade new file mode 100644 index 0000000..eca2453 --- /dev/null +++ b/eugtk/examples/glade/file.glade @@ -0,0 +1,68 @@ + + + + + False + File Operations + mouse + normal + + + False + vertical + 2 + + + False + end + + + gtk-cancel + file:cancel + True + True + True + True + + + + False + True + 0 + + + + + gtk-ok + ok + True + True + True + True + + + + False + True + 1 + + + + + False + True + end + 0 + + + + + + + + + file_cancel_btn + file_ok_btn + + + diff --git a/eugtk/examples/glade/fr.e b/eugtk/examples/glade/fr.e new file mode 100644 index 0000000..8285e15 --- /dev/null +++ b/eugtk/examples/glade/fr.e @@ -0,0 +1,13 @@ +namespace fr + +include GtkEngine.e + +constant flag = canonical_path("~/demos/resources/flags/flags-france.png") + set("image3","from pixbuf",create(GdkPixbuf,flag,-1,15,1)) + +export function hello(atom ctl, Label data) + set(data,"markup","Bonjour!") +return 1 +end function + + diff --git a/eugtk/examples/glade/glade.svg b/eugtk/examples/glade/glade.svg new file mode 100644 index 0000000..969fc73 --- /dev/null +++ b/eugtk/examples/glade/glade.svg @@ -0,0 +1,1272 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + Width: 2pxBlur: 12Opacity: 60 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eugtk/examples/glade/gladetest1.ex b/eugtk/examples/glade/gladetest1.ex new file mode 100644 index 0000000..80ef136 --- /dev/null +++ b/eugtk/examples/glade/gladetest1.ex @@ -0,0 +1,27 @@ + +--# Test a few controls built with Glade + +include GtkEngine.e +include GtkFileSelector.e + +add(builder,canonical_path("~/demos/glade/gladetest1.glade")) + +main() + +----------------------------------------------------------------------- +global function help_me() +----------------------------------------------------------------------- + Info(,,"About","My fine program!") +return 1 +end function + +----------------------------------------------------------------------- +global function open_file() +----------------------------------------------------------------------- + fileselector:filters = {"image"} + object newfile = fileselector:Open("*") + if sequence(newfile) then + set("image1","from file",newfile) + end if +return 1 +end function diff --git a/eugtk/examples/glade/gladetest1.glade b/eugtk/examples/glade/gladetest1.glade new file mode 100644 index 0000000..824d5e8 --- /dev/null +++ b/eugtk/examples/glade/gladetest1.glade @@ -0,0 +1,240 @@ + + + + + True + False + test1.ex + + + True + False + vertical + 5 + + + True + False + + + True + False + _File + True + + + True + False + + + gtk-new + True + False + True + True + + + + + gtk-open + True + False + True + True + + + + + + gtk-save + True + False + True + True + + + + + gtk-save-as + True + False + True + True + + + + + True + False + + + + + gtk-quit + True + False + True + True + + + + + + + + + + True + False + _Edit + True + + + True + False + + + gtk-cut + True + False + True + True + + + + + gtk-copy + True + False + True + True + + + + + gtk-paste + True + False + True + True + + + + + gtk-delete + True + False + True + True + + + + + + + + + True + False + _View + True + + + + + True + False + _Help + True + + + True + False + + + gtk-about + True + False + True + True + True + + + + + + + + + + False + True + 0 + + + + + True + False + + + True + False + coweat2.png + 6 + + + False + True + 0 + + + + + True + False + 0.43999999761581421 + 12 + You have an unusual +<i><b>magnetic personality.</b></i> + +Don't walk too close to +metal objects which are +not fastened down. + True + 1 + + + False + True + 1 + + + + + False + True + 1 + + + + + gtk-quit + True + True + True + none + True + True + + + + False + True + 2 + + + + + + diff --git a/eugtk/examples/glade/green-terminal.png b/eugtk/examples/glade/green-terminal.png new file mode 100644 index 0000000000000000000000000000000000000000..3c97b513d5b4a951bc993c11af5bd59a97031ffc GIT binary patch literal 881 zcmV-%1CIQOP)jV-WPDc=4p{$;*oWfUF1iuh5(9 zeZiX^<{WT94=SUu?nYS?c5x@kOC~e(-s>(8Z)Ti`paC0-q8s{C^{wtIdc7Y1*Xs3p z2tc>n^&1--*Rm|zG&8vhL`1AC%U=%<4}aR*+p9f5r_*^c&+{+O&(F7Gj91FaImgP% z%7ad)^A_;EpB`?Vot%V(fYNHUP*qeMstN}DTQw8S9aYM*6aWPnjYgs>s0v`1hj@LN6b8Hy;P3J4+3c>d#E9{&6rJ9n3O^uzB&i(rtvwl>Be=M@U~n>EaQuYR;)Ijpn4&nLswzZe%4j6Zcsy1SA$U&+8EMV& z?Yn>Q_N&kF&EePZOhDS8?LanC;;=$RF*CgPhzR5HSOHn6q2Rs4k})|tBY$nckL!+A zY4h;2bO5I!k%f#bYvFx{&$am^DdB4&D*-bqSK-`0164%u&f}d! z)#H62_$kzdrf*|~04XKv7;(q{9j91gj@yNg$ka}MXGUOj#)tB!4As);cYV@(|+FTe5fqqu^W)>=!Qwm#vyXno$!|anQ~-Yhmb!ayEaXIY00000NkvXX Hu0mjfnx3UX literal 0 HcmV?d00001 diff --git a/eugtk/examples/glade/gtk-logo-rgb.gif b/eugtk/examples/glade/gtk-logo-rgb.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c6e6c32f8e331801946cbb514922c7ae308e4c4 GIT binary patch literal 6271 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 + + + + True + False + + + True + False + gtk-missing-image + + + True + False + gtk-missing-image + + + True + False + gtk-missing-image + + + True + False + gtk-missing-image + + + 250 + 150 + True + False + center + emblem-system + + + + True + False + vertical + + + True + False + + + True + False + _File + True + + + True + False + + + gtk-new + hi:sayhi + True + False + False + True + True + True + + + + + gtk-open + bi:sayhi + True + False + False + True + True + True + + + + + gtk-save + bi:saybye + True + False + False + True + False + True + + + + + gtk-save-as + True + False + False + True + False + True + + + + + True + False + + + + + gtk-quit + Quit + True + False + True + True + True + + + + + + + + + + True + False + _Greetings + True + + + True + False + + + _English + en:hello + True + False + immediate + True + image1 + False + True + + + + + + _Spanish + es:hello + True + False + True + image2 + False + True + + + + + + _French + fr:hello + True + False + True + image3 + False + True + + + + + + _Australian + au:hello + True + False + True + image4 + False + True + + + + + + _Canadian + ca:hello + True + False + True + image5 + False + True + + + + + + + + + + True + False + _Help + True + + + True + False + + + gtk-about + about:rundialog + True + False + True + True + True + + + + + + + + + + False + True + 0 + + + + + True + False + + + + + + True + True + 1 + + + + + + + + + diff --git a/eugtk/examples/glade/help.e b/eugtk/examples/glade/help.e new file mode 100644 index 0000000..4051a84 --- /dev/null +++ b/eugtk/examples/glade/help.e @@ -0,0 +1,29 @@ + +-------------- +namespace help -- used by main.ex +-------------- + +include GtkEngine.e + +ifdef WINDOWS then + add(builder,"help.glade") +elsedef + add(builder,"~/demos/glade/help.glade") +end ifdef + +-- About window1 is designed completely in Glade, all we need to do +-- here is to show or hide it as appropriate; + +----------------------------------------------------------------------- +export function show(atom ctl, atom data) +----------------------------------------------------------------------- + set("help:window1","visible",TRUE) +return 1 +end function + +----------------------------------------------------------------------- +export function close(atom ctl, atom data) +----------------------------------------------------------------------- + set("help:window1","visible",FALSE) +return 1 +end function diff --git a/eugtk/examples/glade/help.glade b/eugtk/examples/glade/help.glade new file mode 100644 index 0000000..ab6aaf6 --- /dev/null +++ b/eugtk/examples/glade/help.glade @@ -0,0 +1,92 @@ + + + + + 200 + 200 + False + About... + mouse + help-about + + + True + False + vertical + + + True + False + + + True + False + eugtk.png + 2 + + + 0 + 0 + 2 + 1 + + + + + True + False + About this program... + + + + + + 0 + 1 + 2 + 1 + + + + + False + True + 0 + + + + + True + False + 5 + 4 + 5 + immediate + end + + + gtk-close + help:close + True + True + True + True + + + + False + True + 2 + + + + + False + True + 2 + + + + + + diff --git a/eugtk/examples/glade/list.ex b/eugtk/examples/glade/list.ex new file mode 100644 index 0000000..78daa13 --- /dev/null +++ b/eugtk/examples/glade/list.ex @@ -0,0 +1,46 @@ + +--# Treeview built with Glade + +include GtkEngine.e + +add(builder,"~/demos/glade/list.glade") + + -- retrieve some objects created by Glade that we'll need; + TreeView tv = pointer("treeview1") + ListStore store = pointer("liststore1") + TreeSelection selection = get(tv,"selection") + +sequence veggies = { + "Broccoli", + "Cabbage", + "Beet greens", + "Swiss Chard", + "Collards", + "Asparagus ", + "Onions", + $} + + set(store,"data",veggies) -- easy to load the list + +main() + +------------------------------------------------------------------------ +global function on_treeview1_row_activated() +------------------------------------------------------------------------ +integer row = get(selection,"selected row") +object mdl = get(tv,"model") +object selected = get(mdl,"col data",row,1) +Info(,,selected) +return 1 +end function + +------------------------------------------------------------------------ +global function on_imagemenuitem10_activate() +------------------------------------------------------------------------ + Info("window1",,"About this program") +return 1 +end function + + + + diff --git a/eugtk/examples/glade/list.glade b/eugtk/examples/glade/list.glade new file mode 100644 index 0000000..95028dd --- /dev/null +++ b/eugtk/examples/glade/list.glade @@ -0,0 +1,281 @@ + + + + + + + + + + + + 200 + True + False + 2 + center + mongoose.png + + + + True + False + vertical + + + True + False + + + True + False + _File + True + + + True + False + + + gtk-new + True + False + False + True + True + + + + + gtk-open + True + False + False + True + True + + + + + gtk-save + True + False + False + True + True + + + + + gtk-save-as + True + False + False + True + True + + + + + True + False + + + + + gtk-quit + True + False + True + True + + + + + + + + + + True + False + _Edit + True + + + True + False + + + gtk-cut + True + False + False + True + True + + + + + gtk-copy + True + False + False + True + True + + + + + gtk-paste + True + False + False + True + True + + + + + gtk-delete + True + False + False + True + True + + + + + + + + + True + False + _View + True + + + + + True + False + _Help + True + + + True + False + + + gtk-about + True + False + True + True + + + + + + + + + + False + True + 0 + + + + + True + True + in + + + True + True + 5 + liststore1 + False + 0 + False + vertical + + + + + + + column + + + + 0 + + + + + + + + + True + True + 1 + + + + + True + False + 5 + True + center + + + gtk-quit + True + True + True + True + True + + + + False + True + 0 + + + + + gtk-ok + True + True + True + True + True + + + + False + True + 2 + + + + + False + False + 5 + end + 2 + + + + + + diff --git a/eugtk/examples/glade/main.ex b/eugtk/examples/glade/main.ex new file mode 100644 index 0000000..9e2303a --- /dev/null +++ b/eugtk/examples/glade/main.ex @@ -0,0 +1,39 @@ + +-------------------------------------------------------------------------- +--# Demo of namespaces and Glade +-------------------------------------------------------------------------- + +include GtkEngine.e +include help.e +include file.e +include pref.e + +ifdef WINDOWS then + add(builder,"main.glade") +elsedef + add(builder,"~/demos/glade/main.glade") +end ifdef + +main() + +----------------------------------------------------------------------- +global function dispatch(atom ctl, atom data) -- handles all signals; +----------------------------------------------------------------------- +atom fn = routine_id(get(ctl,"name")) + if fn != -1 then + return call_func(fn,{ctl,data}) + else + Error(,,"Invalid Function Call", + sprintf("%s=>%s",{class_name(ctl),get(ctl,"name")}),GTK_BUTTONS_OK) + end if +return 1 +end function + +-- function for main window; +function random_color(atom ctl, atom data) + set("window1","background",rand(#FFFFFF)) +return 1 +end function + + + diff --git a/eugtk/examples/glade/main.glade b/eugtk/examples/glade/main.glade new file mode 100644 index 0000000..37e4072 --- /dev/null +++ b/eugtk/examples/glade/main.glade @@ -0,0 +1,294 @@ + + + + + + True + False + preferences-desktop-personal + + + True + False + center + applications-system + + + + True + False + vertical + + + True + False + + + True + False + _File + True + + + True + False + + + gtk-new + file:new + True + False + True + True + + + + + + gtk-open + file:open + True + False + True + True + + + + + + gtk-save + file:save + True + False + True + True + True + + + + + + gtk-save-as + file:saveas + True + False + True + True + + + + + + True + False + + + + + gtk-quit + Quit + True + False + True + True + True + + + + + + + + + + True + False + _Edit + True + + + True + False + + + gtk-cut + True + False + False + True + True + + + + + gtk-copy + True + False + False + True + True + + + + + gtk-paste + True + False + False + True + True + + + + + gtk-delete + True + False + False + True + True + + + + + + + + + True + False + _Preferences + True + + + True + False + + + _Options + pref:show + True + False + True + image2 + False + True + + + + + + + + + + True + False + _Help + True + + + True + False + + + gtk-about + help:show + True + False + True + True + + + + + + + + + + False + True + 0 + + + + + True + False + coweat2.png + + + False + True + 1 + + + + + True + False + 10 + 10 + + + gtk-quit + True + True + True + True + True + + + + False + True + 0 + + + + + gtk-select-color + random_color + True + True + True + True + True + + + + False + True + 1 + + + + + gtk-about + help:show + True + True + True + True + True + + + + False + True + 2 + + + + + False + True + 2 + 2 + + + + + + diff --git a/eugtk/examples/glade/math_eval.e b/eugtk/examples/glade/math_eval.e new file mode 100644 index 0000000..0a6a672 --- /dev/null +++ b/eugtk/examples/glade/math_eval.e @@ -0,0 +1,1258 @@ +-- PROJECT: MATH_EVAL +-- VERSION: 1.1.0 3.12.2014 (created on LinuxMint 17, using Geany editor). +-- AUTHOR: Shian Lee +-- LANGUAGE: Euphoria 4.1.0 +-- LICENSE: Free. Use at your own risk. +-- -------------------------------------------------------------------------- +-- PURPOSE: a function which evaluate Euphoria's math expressions, +-- and returns atom as result, or an error message string. +-- typically used to calculate math expressions entered by the user. +-- math_eval supports functions, operators, variables & constants. +-- read the attached "math_eval.doc" user manual for details. +-- NOTE: * the code checks for errors so your program will not crash. +-- * expressions are evaluated in the same manner as Euphoria 4.1. +-- * sequences are not supported (it's used mainly in spreadsheets). +-- ========================================================================== + + + +-- current version of math_eval, used by demo programs help: +public constant + MATH_EVAL_VERSION = "Expression Calculator 1.1.0, 3.12.2014, Shian Lee." + + + +-- include Euphoria 4.1.0 library files: +include std/types.e -- useful types and constants, e.g. boolean(). +include std/math.e -- math functions and math constants, e.g. abs(). +include std/get.e -- value(). +include std/convert.e -- to_number(), set_decimal_mark(). +include std/text.e -- trim(). +include std/sequence.e -- remove_all(). + + + +-- EUPHORIA OPERATORS & CONSTANT & FUNCTIONS CONSTANTS ====================== + +-- NOTE: functions, constants, operators - are all INDEXED. if you can't +-- implement one of them then you MUST NOT REMOVE IT; it's there +-- to be implemented later. instead you should replace the calculation +-- of functions with: return err_msg(ER_NOT_IMPLEMENTED, "func-name"). +-- - this note is especially important for converting the syntax to +-- Euphoria 3.1.1. +-- - new functions/constants/operators may be appended TO THE END of a +-- list though - this will not break the existing code. + + +constant + -- parse_expr() keeps the index of functions, instead of the identifier + -- name itself, i.e. {FUNC_ID, func_ix}, e.g. "power" --> {'@', 25}; + -- FUNC_ID must be integer, not part of the syntax, e.g. '@', 999, etc: + FUNC_ID = '@', + + + -- Euphoria 4 precedence lists (Euphoria 4.1 manual - 4.1.5 Precedence Chart): + -- all items in precedence list must be of "string" type: + PRECEDENCE_LISTS = { -- [index] description: + {}, -- (place holder) -- [1] parenthesis () (highest) + {}, -- (place holder) -- [2] function calls + {}, -- (place holder) -- [3] unary- unary+ not + {"*", "/"}, -- [4] * / + {"+", "-"}, -- [5] + - + {"<", ">", "<=", ">=", "=", "!="}, -- [6] < > <= >= = != + {"and", "or", "xor"} -- [7] and or xor + }, + + + -- all items in unary operators list must be of "string" type: + UNARY_OP_LIST = {"-", "+", "not"}, + + + -- Euphoria 4 operators list (Euphoria 4.1 manual - 4.1.4 Expressions); + -- all items in op list must be of "string" type: + OP_LIST = { -- [index] description: + "*", -- [1] * PRECEDENCE_LISTS[4] + "/", -- [2] / + "+", -- [3] + PRECEDENCE_LISTS[5] + "-", -- [4] - + "<", -- [5] < PRECEDENCE_LISTS[6] + ">", -- [6] > + "<=", -- [7] <= + ">=", -- [8] >= + "=", -- [9] = + "!=", -- [10] != + "and", -- [11] and PRECEDENCE_LISTS[7] + "or", -- [12] or + "xor", -- [13] xor + "not" -- [14] not PRECEDENCE_LISTS[3] + }, + + + -- Euphoria 4 constants list (Euphoria 4.1 manual - 8.26.1 Math Constants); + -- these are two paralleled lists: constants names & constants values: + + -- all items in const list must be of "string" type: + CONST_LIST = { -- [index] + "PI", -- [1] + "QUARTPI", -- [2] + "HALFPI", -- [3] + "TWOPI", -- [4] + "PISQR", -- [5] + "INVSQ2PI", -- [6] + "PHI", -- [7] + "E", -- [8] + "LN2", -- [9] + "INVLN2", -- [10] + "LN10", -- [11] + "INVLN10", -- [12] + "SQRT2", -- [13] + "HALFSQRT2", -- [14] + "SQRT3", -- [15] + "DEGREES_TO_RADIANS", -- [16] + "RADIANS_TO_DEGREES", -- [17] + "EULER_GAMMA", -- [18] + "SQRTE", -- [19] + "PINF", -- [20] + "MINF", -- [21] + "SQRT5" -- [22] + }, + -- all items in const list values must be of atom type: + CONST_LIST_VALUES = { -- [index] + PI, -- [1] + QUARTPI, -- [2] + HALFPI, -- [3] + TWOPI, -- [4] + PISQR, -- [5] + INVSQ2PI, -- [6] + PHI, -- [7] + E, -- [8] + LN2, -- [9] + INVLN2, -- [10] + LN10, -- [11] + INVLN10, -- [12] + SQRT2, -- [13] + HALFSQRT2, -- [14] + SQRT3, -- [15] + DEGREES_TO_RADIANS, -- [16] + RADIANS_TO_DEGREES, -- [17] + EULER_GAMMA, -- [18] + SQRTE, -- [19] + PINF, -- [20] + MINF, -- [21] + SQRT5 -- [22] + }, + + + -- Euphoria 4 functions list (+ your own documented functions...); + -- all items in functions list must be of "string" type: + FUNC_LIST = { -- [index] description: + "abs", -- [1] Eu 4.1 manual - 8.25.1 Sign and Comparisons: + "sign", -- [2] + "larger_of", -- [3] + "smaller_of", -- [4] + "remainder", -- [5] Eu 4.1 manual - 8.25.2 Roundings and Remainders: + "mod", -- [6] + "trunc", -- [7] + "frac", -- [8] + "intdiv", -- [9] + "floor", -- [10] + "ceil", -- [11] + "round", -- [12] + "arctan", -- [13] Eu 4.1 manual - 8.25.3 Trigonometry: + "tan", -- [14] + "cos", -- [15] + "sin", -- [16] + "arccos", -- [17] + "arcsin", -- [18] + "atan2", -- [19] + "rad2deg", -- [20] + "deg2rad", -- [21] + "log", -- [22] Eu 4.1 manual - 8.25.4 Logarithms and Powers: + "log10", -- [23] + "exp", -- [24] + "power", -- [25] + "sqrt", -- [26] + "fib", -- [27] + "cosh", -- [28] Eu 4.1 manual - 8.25.5 Hyperbolic Trigonometry: + "sinh", -- [29] + "tanh", -- [30] + "arcsinh", -- [31] + "arccosh", -- [32] + "arctanh", -- [33] + "and_bits", -- [34] Eu 4.1 manual - 8.25.7 Bitwise Operations: + "xor_bits", -- [35] + "or_bits", -- [36] + "not_bits", -- [37] + "shift_bits", -- [38] + "rotate_bits", -- [39] + "gcd", -- [40] + "approx", -- [41] + "powof2", -- [42] + "is_even", -- [43] + "rand", -- [44] Eu 4.1 manual - 8.27 Random Numbers: + "rand_range", -- [45] + "rnd", -- [46] + "rnd_1", -- [47] + "chance", -- [48] + "roll", -- [49] + "compare", -- [50] Eu 4.1 manual - 8.15.1 Equality + -- added in version 1.1.0: + "time" -- [51] Eu 4.1 manual - 8.4.5.1 time + } + + + +-- OTHER CONSTANTS ========================================================== + +constant + -- common error messages used by err_msg(): + ER_NOT_IMPLEMENTED = "Sorry, function not implemented yet", + ER_SYNTAX_ERROR = "Syntax error in", + ER_DEV_BY_ZERO = "Division by zero in", + ER_UNDEFINED_RES = "Undefined result in", + ER_ILLEGAL_ARG = "Illegal argument in", + ER_BUG_IN_CODE = "Sorry... BUG in routine", + + -- nul (ASCII-0) can be used as end-of-string marker where needed: + NUL = 0 + + + +-- TYPES & UTILITIES ======================================================== + +-- PURPOSE: test if s is a sequence of strings, e.g. {"xyz", "..."}. +-- NOTE: string is byte-characters from 0 to 255. +type seq_of_strings(sequence s) + for i = 1 to length(s) do + if not string(s[i]) then + return FALSE + end if + end for + return TRUE +end type + + + +-- PURPOSE: test if s is a sequence of atoms and/or strings, e.g. {"4", -1.5}. +type seq_of_values(sequence s) + for i = 1 to length(s) do + if not atom(s[i]) then + if not string(s[i]) then + return FALSE + end if + end if + end for + return TRUE +end type + + + +-- PURPOSE: test if s is a sequence of two sequences of the same length. +type paralleled_seq(sequence s) + if length(s) = 2 then + if sequence(s[1]) and sequence(s[2]) then + if length(s[1]) = length(s[2]) then + return TRUE + end if + end if + end if + return FALSE +end type + + + +-- PURPOSE: identical to std/sequence.e - remove_dups(s, RD_INPLACE); just +-- much shorter, since not using sort(). See help for remove_dups(). +function remove_dups_inplace(sequence source_data) + sequence lResult = {} + + for i = 1 to length(source_data) do + if not find(source_data[i], lResult) then + lResult = append(lResult, source_data[i]) + end if + end for + return lResult +end function + + + +-- PURPOSE: construct a returned error message. +-- DETAILS: msg is the error text. +-- symbol is any element (function, operator, etc) to add. ""=none. +-- pos is position (column) of error. 0=none. +-- OUTPUT: error_occurred +-- RETURN: ascii_string; short error message. +-- EXAMPLE: st = err_msg("Arrays not supported in", "abs", 7) +-- --> st is "[Arrays not supported in 'abs' at position 7]" +-- SEEALSO: math_eval, parse_expr, set_local_variables, ER_ constants above. +constant + -- start and end of error message must be a single char: + ERR_MSG_HEAD = '[', + ERR_MSG_TAIL = ']' +boolean + error_occurred = FALSE -- reset for debug & also by set_local_variables(). +function err_msg(ascii_string msg, ascii_string symbol = "", integer pos = 0) + ascii_string pos_str = "" + + error_occurred = TRUE -- set error flag + + if length(symbol) then + symbol = " '" & symbol & "'" + end if + if pos then + pos_str = sprintf(" at position %d", pos) + end if + + return ERR_MSG_HEAD & msg & symbol & pos_str & ERR_MSG_TAIL +end function + + + +-- PURPOSE: convert a string to number. supports binary, octal, decimal, +-- hexadecimal (0b, 0t, 0d, 0x, #) with decimal marker, and number +-- in scientific notation. +-- * eui supports decimal marker only for decimal, e.g. 1.2; 5.1e+2. +-- DETAILS: s is a *trimmed* string which represents a number. +-- RETURN: object; meaningless sequence on error; result atom on success. +-- NOTE: set_decimal_mark('.') is done by set_local_variables(), for +-- compatibility with 'eui' syntax. +-- EXAMPLE: x = string_to_number("0xFF") -- x is 255 +-- SEEALSO: parse_expr, set_local_variables +function string_to_number(string s) + object r + integer len = length(s) + + -- value() don't support '_'; to_number() don't support 0b_11 case, etc: + s = remove_all('_', s) + + + -- # 16 = Hexadecimal (with lower a-f and decimal marker support): + if len and s[1] = '#' then + r = to_number(s, -1) + + -- 0b/0t/0d/0x Binary/Octal/Decimal/Hexadecimal numbers: + elsif len >= 2 and s[1] = '0' and find(s[2], "btdx") then + switch s[2] do + case 'b' then -- 0b 2 = Binary + s[2] = '!' + case 't' then -- 0t 8 = Octal + s[2] = '@' + case 'd' then -- 0d 10 = Decimal + s[2] = 32 + case 'x' then -- 0x 16 = Hexadecimal + s[2] = '#' + end switch + + r = to_number(tail(s), -1) -- ! Euphoria 3: tail(s) is s[2..len]. + + else -- Decimal or Number in scientific notation: + r = value(s, 1, GET_LONG_ANSWER) + if r[1] = GET_SUCCESS and r[3] = length(s) then + r = r[2] + end if + end if + + return r +end function + + + +-- PURPOSE: set on enter - or - reset on exit local variables. +-- DETAILS: see 'boolean reset constants' below. +-- OUTPUT: error_occurred +-- SEEALSO: math_eval, get_identifiers, string_to_number, err_msg +constant + -- boolean reset constants: + ON_ENTER = FALSE, -- set local variables + ON_EXIT = TRUE -- reset local variables +integer + prev_decimal_mark +procedure set_local_variables(boolean reset) + if reset = ON_EXIT then + -- restore previous decimal mark ('.' or ','): + if prev_decimal_mark != '.' then + if set_decimal_mark(prev_decimal_mark) then + end if + end if + + else -- reset = ON_ENTER: + -- to_number() is using '.' for compatibility with 'eui' syntax: + prev_decimal_mark = set_decimal_mark('.') + + -- error flag *must* be reset *ON_ENTER* (not on exit), since + -- math_eval() is calling itself recursively and checks this flag: + error_occurred = FALSE + end if +end procedure + + + +-- PURPOSE: convert sequence of comma-delimited-arguments to sequence of atoms. +-- DETAILS: e is sequence of comma-delimited-arguments, e.g. {5, ",", 20.1} +-- RETURN: sequence; result sequence or err_msg() string. +-- EXAMPLE: s = arguments_to_sequence({10.4, ",", -3, ",", 401}) +-- --> s is {10.4, -3, 401} +-- SEEALSO: calc_func +function arguments_to_sequence(sequence e) + sequence atoms = {} + integer len = length(e) + + -- check for valid arguments, e.g. {}, {1.3}, {5, ",", 20, ",", 3.1}: + if len = 0 then + return atoms + elsif remainder(len, 2) and atom(e[len]) then + for i = 1 to len - 1 by 2 do + if atom(e[i]) and equal(e[i + 1], ",") then + atoms = append(atoms, e[i]) + else + return err_msg(ER_ILLEGAL_ARG) + end if + end for + + return append(atoms, e[len]) + else + return err_msg(ER_ILLEGAL_ARG) + end if +end function + + + +-- CHUNK CALCULATION ======================================================== + +-- PURPOSE: if use_degrees is FALSE then Radians are passed to trigonometry +-- functions as tan(); if is TRUE then Degrees are passed to these +-- functions (therefor must be converted to Radians before use). +-- SEEALSO: math_eval, calc_func_1 +boolean + use_degrees -- output by math_eval(). + + + +-- FUNCTIONS: calc_func_0, calc_func_1, calc_func_2, calc_func_x. +-- PURPOSE: calculate a function expression with 0 to 2 or 3+ arguments. +-- DETAILS: name is name of function, e.g. "abs". +-- ix is the function index in FUNC_LIST, e.g. 1. +-- a1, a2 are the function's arguments, by standard order; +-- a is sequence of arguments in case of calc_func_x(). +-- RETURN: object; result atom or err_msg() string. +-- NOTE: calc_func_# separated into few routines for easier debugging. +-- EXAMPLE: x = calc_func_0("rnd" , 46) --> x might be 0.3343612548 +-- x = calc_func_1("abs" , 1 , -7) --> x is 7 +-- x = calc_func_2("power" , 25, 11, 3) --> x is 1331 +-- x = calc_func_x("approx", 41, {9, 8, 0.5}) --> x is 1 +-- SEEALSO: calc_func, calc_op, calc_unary_op, calc_expr +function calc_func_0(sequence name, integer ix) + atom r + + switch ix do + case 46 then -- [46] "rnd" + r = rnd() + case 47 then -- [47] "rnd_1" + r = rnd_1() + case 51 then -- [51] "time" + r = time() + case else + return err_msg(ER_ILLEGAL_ARG, name) + end switch + + return r +end function + + + +-- PURPOSE: see calc_func_0(). +-- INPUT: use_degrees +function calc_func_1(sequence name, integer ix, atom a1) + atom r + + -- first convert degrees to radians for trigonometry functions: + -- (see: Euphoria 4.1 Manual 8.25.3 Trigonometry). + if use_degrees then + switch ix do + -- [13] "arctan", [14] "tan", [15] "cos", + -- [16] "sin", [17] "arccos", [18] "arcsin", + case 13, 14, 15, 16, 17, 18 then + a1 = deg2rad(a1) + end switch + end if + + + switch ix do + case 1 then -- [1] "abs" + r = abs(a1) + case 2 then -- [2] "sign" + r = sign(a1) + case 7 then -- [7] "trunc" + r = trunc(a1) + case 8 then -- [8] "frac" + r = frac(a1) + case 10 then -- [10] "floor" + r = floor(a1) + case 11 then -- [11] "ceil" + r = ceil(a1) + case 13 then -- [13] "arctan" + r = arctan(a1) + case 14 then -- [14] "tan" + -- PI is infinite so we don't get Error/Zero result when a1 is 0/ + -- 90/180/270/etc degrees; so convert a1 to degrees and round it: + r = remainder(round(abs(rad2deg(a1)), 1000000000), 180) + -- in case of 90, 270, 450 degrees, etc, then r is infinite: + if r = 90 then + return err_msg(ER_UNDEFINED_RES, name) + -- in case of 0, 180, 360, 540 degrees, etc, then r is 0: + elsif r != 0 then + r = tan(a1) + end if + case 15 then -- [15] "cos" + r = cos(a1) + case 16 then -- [16] "sin" + r = sin(a1) + case 17 then -- [17] "arccos" + if a1 >= -1 and a1 <= 1 then + r = arccos(a1) + else + return err_msg(ER_ILLEGAL_ARG, name) + end if + case 18 then -- [18] "arcsin" + if a1 >= -1 and a1 <= 1 then + r = arcsin(a1) + else + return err_msg(ER_ILLEGAL_ARG, name) + end if + case 20 then -- [20] "rad2deg" + r = rad2deg(a1) + case 21 then -- [21] "deg2rad" + r = deg2rad(a1) + case 22 then -- [22] "log" + if a1 > 0 then + r = log(a1) + else + return err_msg(ER_UNDEFINED_RES, name) + end if + case 23 then -- [23] "log10" + if a1 > 0 then + r = log10(a1) + else + return err_msg(ER_UNDEFINED_RES, name) + end if + case 24 then -- [24] "exp" + r = exp(a1) + case 26 then -- [26] "sqrt" + if a1 >= 0 then + r = sqrt(a1) + else + return err_msg(ER_ILLEGAL_ARG, name) + end if + case 27 then -- [27] "fib" + if integer(a1) then + r = fib(a1) + else + return err_msg(ER_ILLEGAL_ARG, name) + end if + case 28 then -- [28] "cosh" + r = cosh(a1) + case 29 then -- [29] "sinh" + r = sinh(a1) + case 30 then -- [30] "tanh" + r = tanh(a1) + case 31 then -- [31] "arcsinh" + r = arcsinh(a1) + case 32 then -- [32] "arccosh" + if a1 >= 1 then + r = arccosh(a1) + else + return err_msg(ER_ILLEGAL_ARG, name) + end if + case 33 then -- [33] "arctanh" + if a1 > -1 and a1 < 1 then + r = arctanh(a1) + else + return err_msg(ER_ILLEGAL_ARG, name) + end if + case 37 then -- [37] "not_bits" + r = not_bits(a1) + case 42 then -- [42] "powof2" + r = powof2(a1) + case 43 then -- [43] "is_even" + if integer(a1) then + r = is_even(a1) + else + return err_msg(ER_ILLEGAL_ARG, name) + end if + case 44 then -- [44] "rand" + r = rand(a1) + case else + return err_msg(ER_ILLEGAL_ARG, name) + end switch + + return r +end function + + + +-- PURPOSE: see calc_func_0(). +function calc_func_2(sequence name, integer ix, atom a1, atom a2) + atom r + + -- first check for common errors: + switch ix do + -- [5] "remainder", [6] "mod", [9] "intdiv", [12] "round" + case 5, 6, 9, 12 then + if a2 = 0 then + return err_msg(ER_DEV_BY_ZERO, name) + end if + + -- [38] "shift_bits", [39] "rotate_bits", [49] "roll" + case 38, 39, 49 then + if not integer(a2) then + return err_msg(ER_ILLEGAL_ARG, name) + end if + end switch + + + switch ix do + case 3 then -- [3] "larger_of" + r = larger_of(a1, a2) + case 4 then -- [4] "smaller_of" + r = smaller_of(a1, a2) + case 5 then -- [5] "remainder" + r = remainder(a1, a2) + case 6 then -- [6] "mod" + r = mod(a1, a2) + case 9 then -- [9] "intdiv" + r = intdiv(a1, a2) + case 12 then -- [12] "round" + r = round(a1, a2) + case 19 then -- [19] "atan2" + r = atan2(a1, a2) + case 25 then -- [25] "power" + if a1 < 0 and not integer(a2) then + return err_msg(ER_UNDEFINED_RES, name) + elsif a1 = 0 and a2 < 0 then + return err_msg(ER_DEV_BY_ZERO, name) + elsif a1 = 0 and a2 = 0 then + return err_msg(ER_ILLEGAL_ARG, name) + else + r = power(a1, a2) + end if + case 34 then -- [34] "and_bits" + r = and_bits(a1, a2) + case 35 then -- [35] "xor_bits" + r = xor_bits(a1, a2) + case 36 then -- [36] "or_bits" + r = or_bits(a1, a2) + case 38 then -- [38] "shift_bits" + r = shift_bits(a1, a2) + case 39 then -- [39] "rotate_bits" + r = rotate_bits(a1, a2) + case 40 then -- [40] "gcd" + r = gcd(a1, a2) + case 45 then -- [45] "rand_range" + r = rand_range(a1, a2) + case 48 then -- [48] "chance" + r = chance(a1, a2) + case 49 then -- [49] "roll" + r = roll(a1, a2) + case 50 then -- [50] "compare" + r = compare(a1, a2) + case else + return err_msg(ER_ILLEGAL_ARG, name) + end switch + + return r +end function + + + +-- PURPOSE: see calc_func_0(). +function calc_func_x(sequence name, integer ix, sequence a) + atom r + integer len = length(a) + + if ix = 41 and len = 3 then -- [41] "approx" + r = approx(a[1], a[2], a[3]) -- (no error occurs if a[3] is negative) + else + return err_msg(ER_ILLEGAL_ARG, name) + end if + + return r +end function + + + +-- PURPOSE: calculate a function expression and return the result. +-- DETAILS: ix is the function index in FUNC_LIST. +-- 'e' is arguments for function, separated by ",". +-- RETURN: object; result atom or err_msg() string. +-- EXAMPLE: x = calc_func(25, {11, ",", 3}) --> x is 1331 +-- SEEALSO: calc_func_0, calc_op, calc_unary_op, calc_expr +function calc_func(integer ix, sequence e) + sequence name = FUNC_LIST[ix], a = arguments_to_sequence(e) + + if error_occurred then -- arguments_to_sequence() error. + return err_msg(ER_ILLEGAL_ARG, name) + else + switch length(a) do + case 0 then + return calc_func_0(name, ix) + case 1 then + return calc_func_1(name, ix, a[1]) + case 2 then + return calc_func_2(name, ix, a[1], a[2]) + case else -- 3+ arguments: + return calc_func_x(name, ix, a) + end switch + end if +end function + + + +-- PURPOSE: calculate an operator expression and return the result. +-- DETAILS: 'e' is expression with two atoms & one operator, e.g. {5, "*", -1}. +-- RETURN: object; result atom or err_msg() string. +-- EXAMPLE: x = calc_op({5, "*", -1.5}) --> x is -7.5 +-- SEEALSO: calc_func, calc_unary_op, calc_expr +function calc_op(sequence e) + sequence op = e[2] + atom r, a1, a2 + + if atom(e[1]) and atom(e[3]) then + a1 = e[1] + a2 = e[3] + else + return err_msg(ER_SYNTAX_ERROR, op) + end if + + + -- calc operator and two atoms, e.g. {2, "*", 1.5}: + switch find(op, OP_LIST) do -- [index] operator: + case 1 then -- [1] * + r = a1 * a2 + case 2 then -- [2] / + if a2 = 0 then + return err_msg(ER_DEV_BY_ZERO, op) + else + r = a1 / a2 + end if + case 3 then -- [3] + + r = a1 + a2 + case 4 then -- [4] - + r = a1 - a2 + case 5 then -- [5] < + r = (a1 < a2) + case 6 then -- [6] > + r = (a1 > a2) + case 7 then -- [7] <= + r = (a1 <= a2) + case 8 then -- [8] >= + r = (a1 >= a2) + case 9 then -- [9] = + r = (a1 = a2) + case 10 then -- [10] != + r = (a1 != a2) + case 11 then -- [11] and + r = (a1 and a2) + case 12 then -- [12] or + r = (a1 or a2) + case 13 then -- [13] xor + r = (a1 xor a2) + case else + return err_msg(ER_NOT_IMPLEMENTED, op) -- helper for debug. + end switch + + return r +end function + + + +-- PURPOSE: calculate all cases of unary-/+ and "not" in expression, only if +-- the next item is an atom. +-- DETAILS: 'e' is expression, see example below. +-- RETURN: sequence; modified expression. +-- NOTE: cases such as -(...) or -func(...) are handled in calc_expr(); +-- this function calculates atoms, e.g. '* - 15'; '( + 6'; etc. +-- EXAMPLE: s = calc_unary_op({"-", 5, "*", "-", "(", 6, "/", 2, ")"}) +-- --> s is {-5, "*", "-", "(", 6, "/", 2, ")"} +-- SEEALSO: calc_expr, calc_op, calc_func +constant + ST_CHRS = {"(", ","} +function calc_unary_op(sequence e) + integer st, en, + idx = 2, + len = 1 + length(e) + + e = {"+"} & e -- temporarily prepend an operator. + + -- calculate unary-/+/not and one atom each loop, e.g. {"*", "-", 15}: + while idx < len do + if sequence(e[idx]) then + if find(e[idx], UNARY_OP_LIST) then + st = idx - 1 + en = idx + 1 + + if sequence(e[st]) and atom(e[en]) then + if find(e[st], OP_LIST & ST_CHRS) then + switch e[idx] do + case "-" then + e[en] = -e[en] + case "not" then + e[en] = not e[en] + -- case "+" then + -- just remove the sign. + end switch + + -- remove the sign: + e = remove(e, idx) -- ! Euphoria 3: e = e[1..st] & e[en..$] + len -= 1 + end if + end if + end if + end if + + idx += 1 + end while + + -- remove temporarily prepended operator: + return tail(e) -- ! Euphoria 3: return e[2..$]. +end function + + + +-- MAIN ===================================================================== + +-- PURPOSE: calculate a full expression and return the result. +-- DETAILS: 'e' sequence is returned by parse_expr(). +-- RETURN: sequence; result atom, e.g. {-2.5}; or err_msg() string. +-- NOTE: expressions are evaluated from left-to-right, using Euphoria's +-- precedence order (see PRECEDENCE_LISTS constant). +-- EXAMPLE: s = calc_expr({1, "+", 2, "*", {FUNC_ID, 1}, "(", -11, ")"}) +-- --> s is {23} +-- i.e. s is {1 + 2 * abs(-11)} +-- SEEALSO: parse_expr, math_eval, calc_op, calc_unary_op, calc_func +function calc_expr(sequence e) + integer st, en, idx + object obj + + + -- make sure expression enclosed with parenthesis to get final result; + e = {"("} & e & {")"} + + + -- calculate all expressions found within parenthesis (precedence-1): + while TRUE do + + -- find the most inner ")": + en = find(")", e) + if en = 0 then + if find("(", e) then + return err_msg("Missing ')'") + else + exit + end if + end if + + -- find the most inner "(": + st = 0 + for i = en - 1 to 1 by -1 do + if equal(e[i], "(") then + st = i + exit + end if + end for + if st = 0 then + return err_msg("Missing '('") + end if + + + -- calculate chunks of the expression according to precedence order; + -- the idea is to shrink each chunk into atom, e.g. 5 * 10 --> 50: + for precedence = 4 to 7 do + idx = st + 1 + + while idx < en do + if atom(e[idx]) then -- atom can't be operator... + idx += 1 + elsif find(e[idx], PRECEDENCE_LISTS[precedence]) then + obj = calc_op(e[idx - 1..idx + 1]) + + -- remove two atoms and operator; keep only new atom: + if atom(obj) then + -- ! Euphoria 3: e = e[1..idx - 2] & obj & e[idx + 2..$] + e = replace(e, obj, idx - 1, idx + 1) + en -= 2 + else + return obj -- return err_msg() + end if + else + idx += 1 + end if + end while + end for -- precedence + + + -- helper for debug: + if not (equal(e[st], "(") and equal(e[en], ")")) then + return err_msg(ER_BUG_IN_CODE, "calc_expr") + + -- first: calculate a function using the result atom(s), or + -- calculate a function without arguments such as rnd(): + elsif st > 1 and sequence(e[st - 1]) and e[st - 1][1] = FUNC_ID then + obj = calc_func(e[st - 1][2], e[st + 1..en - 1]) + + -- remove the function-id and (); keep only result atom: + if atom(obj) then + -- ! Euphoria 3: e = e[1..st - 2] & obj & e[en + 1..$] + e = replace(e, obj, st - 1, en) + else + return obj -- return err_msg() + end if + + -- then: operator result must be a single atom: + elsif st + 2 = en and atom(e[st + 1]) then + -- remove the () and keep only the result atom: + -- ! Euphoria 3: e = e[1..st - 1] & e[st + 1] & e[en + 1..$] + e = replace(e, e[st + 1], st, en) + + -- when only () remains: + elsif st + 1 = en then + return err_msg("Missing expression inside", "( )") + + -- invalid syntax returned inside ( ), e.g. "1not-2" or "(1not-2)": + else + if st = 1 then -- the first '(' is prefixed to the expression. + return err_msg(ER_SYNTAX_ERROR & " expression") + else + return err_msg(ER_SYNTAX_ERROR, "( )") + end if + end if + + + -- finally, re-calc unary+/-/not for atoms, since the ( ) and + -- function name removed, i.e. for -(1 + 2) or -abs(4), etc: + e = calc_unary_op(e) + + end while -- found expression within parenthesis + + return e +end function + + + +-- PURPOSE: parse string expression into a sequence of initial arguments. +-- DETAILS: expr, var_names, var_values are same as in function math_eval(). +-- get_id = TRUE used by get_identifiers() to keep identifier names. +-- RETURN: sequence; sequence of arguments, or err_msg() string. +-- * if get_id = TRUE then arguments are only identifiers *names*. +-- EXAMPLE: s = parse_expr("( a + 5 * abs(c) )", {"a", "c"}, {11.2, -4}) +-- --> s is {"(", 11.2, "+", 5, "*", {'@', 1}, "(", -4, ")", ")"} +-- SEEALSO: math_eval, get_identifiers, calc_unary_op, calc_expr, +-- string_to_number +function parse_expr(ascii_string expr, sequence var_names, sequence var_values, + boolean get_id = FALSE) + integer idx, chr, st, en, func_ix + sequence str, e = {}, id = {} + object get_value + atom num + + + -- NUL is end-of-string marker and placeholder for 'next-chr': + expr &= NUL + + + -- parse expression into sequence: + idx = 1 + while TRUE do + + chr = expr[idx] + + -- first check for end-of-string marker: + if chr = NUL then + exit + + -- ignore and skip blanks and control characters ('\t', etc): + elsif chr <= 32 or chr = 127 then + idx += 1 + + -- append parenthesis, comma, and symbolic operators: + elsif find(chr, "(),*/+-=<>!") then + if expr[idx + 1] = '=' and find(chr, "<>!") then + -- append ambiguous operators "<=", ">=", "!=": + e = append(e, chr & '=') + idx += 2 + else + e = append(e, {chr}) + idx += 1 + end if + + -- get and append number's value, e.g. 10.5 (# for hexadecimal): + elsif (chr >= '0' and chr <= '9') or chr = '.' or chr = '#' then + st = idx + en = idx + idx += 1 + while TRUE do + chr = expr[idx] + if (chr >= '0' and chr <= '9') or + (chr >= 'a' and chr <= 'z') or + (chr >= 'A' and chr <= 'Z') or chr = '.' or chr = '_' or + ((chr = '-' or chr = '+') and find(expr[idx - 1], "eE")) + then + en = idx + idx += 1 + else + get_value = string_to_number(expr[st..en]) + if atom(get_value) then + e = append(e, get_value) + exit + else + return err_msg("Invalid number", expr[st..en], st) + end if + end if + end while + + -- get and append variable's/constant's value, operator's string, + -- and function's index: + elsif (chr >= 'a' and chr <= 'z') or + (chr >= 'A' and chr <= 'Z') or chr = '_' + then + st = idx + en = idx + idx += 1 + while TRUE do + chr = expr[idx] + if (chr >= 'a' and chr <= 'z') or + (chr >= 'A' and chr <= 'Z') or + (chr >= '0' and chr <= '9') or chr = '_' + then + en = idx + idx += 1 + else + str = expr[st..en] + + -- get_identifiers() keeps identifier name (not value): + if get_id then + id = append(id, str) + + -- append the value of variable: + elsif find(str, var_names) then + num = var_values[find(str, var_names)] + e = append(e, num) + + -- append the value of constant: + elsif find(str, CONST_LIST) then + num = CONST_LIST_VALUES[find(str, CONST_LIST)] + e = append(e, num) + + -- append operator string ("and", "or", "xor", "not"): + elsif find(str, OP_LIST) then + e = append(e, str) + + -- append the index of function, e.g. {'@', 15}: + else + func_ix = find(str, FUNC_LIST) + if func_ix then + e = append(e, {FUNC_ID, func_ix}) + else + return err_msg("Invalid identifier", str, st) + end if + end if + + exit + end if + end while + + -- unsupported character found, such as '&': + else + return err_msg("Invalid character", {chr}, idx) + end if + + end while -- idx + + + -- get_identifiers() needs only the identifiers names: + if get_id then + return id + + -- math_eval() needs the parsed expression: + else + -- do the initial unary+/-/not calculation for atoms, e.g. {"-", 15}; + -- note that -(1 + 2) or -abs(4), etc, is handled in calc_expr(): + e = calc_unary_op(e) + + return e + end if +end function + + + +-- PUBLIC FUNCTIONS ========================================================= + +-- PURPOSE: evaluate a math expression. see "math_eval.doc" user manual. +-- DETAILS: expr is any Euphoria math expression string - see example below. +-- use_deg is FALSE=Radians/TRUE=Degrees for trigonometry functions. +-- var is optional variables sequences {{...}, {...}}: +-- var[1] is var_names, it's the variable names; +-- var[2] is var_values, it's paralleled to var_names, as it is the +-- variable's value, which is an atom or a string-expression +-- representing an atom, e.g.: +-- var = { {"R", "Si" , "tol", "fact"} --> [1] var_names +-- {6 , "-(abs(-1))", 12.5 , ".3"} } --> [2] var_values +-- INPUT: error_occurred +-- OUTPUT: use_degrees +-- RETURN: object; atom as result, or err_msg() string. +-- EXAMPLE: x = math_eval("( a + 5 * abs(c) )", 0, {{"a", "c"}, {11.2, -4}}) +-- --> x is 31.2 +-- i.e. x is (11.2 + 5 * abs(-4)) +-- SEEALSO: get_identifiers, parse_expr, calc_expr, err_msg, set_local_variables +public function math_eval(ascii_string expr, boolean use_deg = FALSE, + paralleled_seq var = {{}, {}}) + object e + seq_of_strings var_names = var[1] + seq_of_values var_values = var[2] + + set_local_variables(ON_ENTER) + + + -- convert strings in 'var_values' to atoms, e.g. "-1.5*2" --> -3: + for i = 1 to length(var_names) do + var_names[i] = trim(var_names[i]) -- ( trim() works per *string* ). + + if find(var_names[i], FUNC_LIST & CONST_LIST & OP_LIST) then + e = err_msg("Illegal variable name", var_names[i]) + exit + + elsif sequence(var_values[i]) then + -- (this supports also previous variables in a string-expression): + e = math_eval(var_values[i], use_deg, { + head(var_names, i - 1), -- ! Euphoria 3: var_names[1..i - 1], + head(var_values, i - 1) -- ! Euphoria 3: var_values[1..i - 1] + }) + + if atom(e) then + var_values[i] = e + else -- e = err_msg(...): + -- ! Euphoria 3: tail(e) is e[2..$] + e = ERR_MSG_HEAD & "'" & var_names[i] & "': " & tail(e) + exit + end if + end if + end for + + + if error_occurred then + -- e = err_msg(...) + + -- parse 'expr' to its initial arguments: + else + e = parse_expr(expr, var_names, var_values) + + if error_occurred then + -- e = err_msg(...) + elsif length(e) = 0 then + e = err_msg("Empty expression") + + -- calculate the expressions: + else + use_degrees = use_deg -- output to local variable + e = calc_expr(e) + + if error_occurred then + -- e = err_msg(...) + elsif length(e) = 1 then + e = e[1] -- the final result must be a single atom + else + e = err_msg(ER_BUG_IN_CODE, "math_eval") -- helper for debug + end if + end if + end if + + + -- return atom as result; or error message string: + set_local_variables(ON_EXIT) + return e +end function + + + +-- PURPOSE: extract alphanumeric identifiers from a string expression. +-- - it can be useful for getting variable names, which is the +-- default behavior, and prompt the user for their values. +-- DETAILS: expr is same as in function math_eval(). +-- list is the identifier-list to return, or all of them. +-- INPUT: error_occurred +-- RETURN: sequence; A sequence of length two consisting of: +-- * an integer, the return status. This is any of: +-- GET_ID_SUCCESS -- expression was read successfully +-- GET_ID_FAIL -- expression is not syntactically correct +-- +-- * - if GET_ID_SUCCESS: a sequence which contains 4 sub-sequences +-- for each type of identifier; or a sequence which contains +-- only one type of identifier. see public indexes below. +-- - if GET_ID_FAIL: err_msg() string. +-- EXAMPLE: s = get_identifiers("( PI / not a + 5 * abs(c) )", GET_ID_ALL) +-- --> s is {GET_ID_SUCCESS, {{"not"}, {"abs"}, {"PI"}, {"a", "c"}}} +-- SEEALSO: math_eval, parse_expr, set_local_variables +public constant + -- return status integers: + GET_ID_SUCCESS = 0, -- expression was read successfully + GET_ID_FAIL = 1 -- expression is not syntactically correct +public constant + -- return sequence indexes (list) - from 1 to 4: + GET_ID_ALL = 0, + GET_ID_OPERATORS = 1, + GET_ID_FUNCTIONS = 2, + GET_ID_CONSTANTS = 3, + GET_ID_VARIABLES = 4 +public function get_identifiers(ascii_string expr, integer list = GET_ID_VARIABLES) + sequence e, id = repeat({}, 4) + object str + integer idx + + set_local_variables(ON_ENTER) + + + -- parse expression and keep the identifier names (not values): + e = parse_expr(expr, {}, {}, TRUE) + + + -- id is err_msg(): + if error_occurred then + id = {GET_ID_FAIL, e} + + -- id is identifiers list(s): + else + e = remove_dups_inplace(e) -- remove duplicate identifiers + + -- store identifier names in 'id': + for i = 1 to length(e) do + str = e[i] + + if find(str, OP_LIST) then -- operator name, e.g. "or" + idx = GET_ID_OPERATORS + elsif find(str, FUNC_LIST) then -- function name, e.g. "abs" + idx = GET_ID_FUNCTIONS + elsif find(str, CONST_LIST) then -- constant name, e.g. "PI" + idx = GET_ID_CONSTANTS + else -- variable name, e.g. "xyz" + idx = GET_ID_VARIABLES + end if + + id[idx] = append(id[idx], str) -- append identifier to list + end for + + -- id is all lists, or just a single list: + if list != GET_ID_ALL then + id = id[list] + end if + + id = {GET_ID_SUCCESS, id} + end if + + + -- return success or fail sequence: + set_local_variables(ON_EXIT) + return id +end function + + + +-- End of file. diff --git a/eugtk/examples/glade/mongoose.png b/eugtk/examples/glade/mongoose.png new file mode 100644 index 0000000000000000000000000000000000000000..1f65a26921f9a9e5ca891f7902ca08e73717f837 GIT binary patch literal 5167 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 DAETpi literal 0 HcmV?d00001 diff --git a/eugtk/examples/glade/paned.ex b/eugtk/examples/glade/paned.ex new file mode 100644 index 0000000..b16558d --- /dev/null +++ b/eugtk/examples/glade/paned.ex @@ -0,0 +1,24 @@ + +--# Simple paned window + +include GtkEngine.e + +add(builder,"~/demos/glade/paned.glade") + +main() + +------------------------------------------------------------------------ +global function on_button2_clicked() +------------------------------------------------------------------------ + Info("window1","Help","GtkPaned", + "Grab and slide the bar\nbetween Mongoose and license text") +return 1 +end function + + + + + + + + diff --git a/eugtk/examples/glade/paned.glade b/eugtk/examples/glade/paned.glade new file mode 100644 index 0000000..ef5942b --- /dev/null +++ b/eugtk/examples/glade/paned.glade @@ -0,0 +1,132 @@ + + + + + True + False + False + center + + + + True + False + vertical + 5 + + + True + False + euphoria.gif + + + False + True + 0 + + + + + True + True + 5 + 5 + 5 + 5 + 91 + + + True + False + mongoose.png + + + False + True + + + + + True + False + start + 5 + 5 + 5 + 5 + This library is free software; you can redistribute it +and/or modify it under the terms of the GNU Lesser General +Public License as published by the Free Software Foundation; +either version 2 of the License, or (at your option) any later +version. + 12 + False + + + + + + True + True + + + + + False + False + 10 + 1 + + + + + True + False + 5 + spread + + + gtk-quit + True + True + True + True + True + + + + False + True + 0 + + + + + + + + gtk-help + True + True + True + True + True + + + + False + True + 2 + + + + + False + True + 2 + + + + + + diff --git a/eugtk/examples/glade/pref.e b/eugtk/examples/glade/pref.e new file mode 100644 index 0000000..82f231a --- /dev/null +++ b/eugtk/examples/glade/pref.e @@ -0,0 +1,52 @@ + +----------------- +namespace pref -- used by main.ex +----------------- + +include GtkEngine.e + +ifdef WINDOWS then + add(builder,"pref.glade") +elsedef + add(builder,"~/demos/glade/pref.glade") +end ifdef + +----------------------------------------------------------------------- +export function show(atom ctl, atom data) +----------------------------------------------------------------------- + set("pref:window1","visible",TRUE) -- use the namespace:name in string form +return 1 +end function + +------------------------------------------------------------------------ +export function set_color(atom ctl, atom data) +------------------------------------------------------------------------ +if get(ctl,"active") then -- handle 3 buttons, btn name contains color name to use + set("pref:label1","color",get(ctl,"label")) +end if +return 1 +end function + +----------------------------------------------------------------------- +export function value_changed(atom scale, atom data) +----------------------------------------------------------------------- + set("pref:window1","background",get(scale,"value")) -- use the handles, not names +return 1 +end function + +----------------------------------------------------------------------- +export function apply(atom ctl, atom data) +----------------------------------------------------------------------- +-- apply settings here...then + set("pref:window1","visible",FALSE) +return 1 +end function + +----------------------------------------------------------------------- +export function cancel(atom ctl, atom data) +----------------------------------------------------------------------- +-- abandon changes, just hide me; + set("pref:window1","visible",FALSE) +return 1 +end function + diff --git a/eugtk/examples/glade/pref.glade b/eugtk/examples/glade/pref.glade new file mode 100644 index 0000000..806cd99 --- /dev/null +++ b/eugtk/examples/glade/pref.glade @@ -0,0 +1,188 @@ + + + + + + 65535 + 32767 + 1 + 10 + 1 + + + 300 + 150 + False + 10 + center-always + preferences-system + + + True + False + vertical + + + True + False + View Prefs + + + + + + False + True + 0 + + + + + True + False + 10 + 10 + 10 + 10 + 10 + + + True + False + 27 + vertical + + + Red + pref:set_color + True + True + False + <b><i>Click</i></b> to change label color + 0 + 0.50999999046325684 + True + True + + + + False + True + 0 + + + + + Green + pref:set_color + True + True + False + <b><i>Click</i></b> to change label color + 0 + 0.44999998807907104 + True + True + red + + + + False + True + 1 + + + + + Blue + pref:set_color + True + True + False + <b><i>Click</i></b> to change label color + 0 + True + True + green + + + + False + True + 2 + + + + + False + True + 0 + + + + + True + True + 1 + + + + + pref:value_changed + True + True + <b><i>Slide</i></b> to change background color + adjustment1 + False + 0 + 1 + False + False + + + + False + True + 2 + + + + + True + False + 5 + 5 + 3 + 5 + 5 + end + + + + + + gtk-cancel + pref:cancel + True + True + True + True + + + + False + True + 1 + + + + + False + True + 3 + + + + + + diff --git a/eugtk/examples/glade/prefs.glade b/eugtk/examples/glade/prefs.glade new file mode 100644 index 0000000..5f417a5 --- /dev/null +++ b/eugtk/examples/glade/prefs.glade @@ -0,0 +1,255 @@ + + + + + 65535 + 32767 + 1 + 10 + 1 + + + 300 + 150 + False + 10 + center-always + preferences-system + + + True + False + vertical + + + True + False + <u><b>View Prefs</b></u> Would go here + True + + + False + True + 0 + + + + + True + False + 10 + 10 + 10 + 10 + 10 + + + True + False + vertical + + + A + True + True + False + Inactive + 0 + True + + + False + True + 0 + + + + + B + True + True + False + Inactive + 0 + True + + + False + True + 1 + + + + + C + True + True + False + Inactive + 0 + True + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + 27 + vertical + + + Red + red + True + True + False + <b><i>Click</i></b> to change label color + 0 + 0.51999998092651367 + True + True + + + + False + True + 0 + + + + + Green + green + True + True + False + <b><i>Click</i></b> to change label color + 0 + 0.44999998807907104 + True + True + red_radio_btn + + + + False + True + 1 + + + + + Blue + blue + True + True + False + <b><i>Click</i></b> to change label color + 0 + True + True + green_radio_btn + + + + False + True + 2 + + + + + False + True + 1 + + + + + False + True + 1 + + + + + True + True + <b><i>Slide</i></b> to change background color + adjustment1 + False + 0 + 1 + False + False + + + + False + True + 2 + + + + + True + False + 5 + 5 + 3 + 5 + 5 + end + + + gtk-cancel + True + True + True + True + + + + False + True + 0 + + + + + gtk-apply + True + True + True + True + + + + False + True + 1 + + + + + False + True + 3 + + + + + + diff --git a/eugtk/examples/glade/test11.ex b/eugtk/examples/glade/test11.ex new file mode 100644 index 0000000..90e3ff5 --- /dev/null +++ b/eugtk/examples/glade/test11.ex @@ -0,0 +1,20 @@ + +--# Glade version of test11.ex + +include GtkEngine.e + +add(builder,"~/demos/glade/test11.glade") + +main() + +----------------------------------------------- +global function on_button_clicked(Button self) +----------------------------------------------- +switch get(self,"name") do + case "left" then set("label1","justify",GTK_JUSTIFY_LEFT) + case "center" then set("label1","justify",GTK_JUSTIFY_CENTER) + case "right" then set("label1","justify",GTK_JUSTIFY_RIGHT) +end switch +return 1 +end function + diff --git a/eugtk/examples/glade/test11.glade b/eugtk/examples/glade/test11.glade new file mode 100644 index 0000000..99b1d9e --- /dev/null +++ b/eugtk/examples/glade/test11.glade @@ -0,0 +1,135 @@ + + + + + + True + False + 400 + 300 + + + + True + False + vertical + + + True + False + 5 + 3 + 5 + 5 + <b>In the space</b> of one hundred and seventy-six years the Mississippi has shortened itself two hundred and forty-two miles. + +<b>Therefore</b> ... in the Old Silurian Period the Mississippi River was upward of one million three hundred thousand miles long ... + +<b>Seven hundred and forty-two years</b> from now the Mississippi will be only a mile and three-quarters long. ... + +<b>There is something fascinating about science.</b> +One gets such wholesome returns of conjecture out of such a trifling investment of fact. + + -- <b><i>Mark Twain</i></b> + True + True + + + True + True + 0 + + + + + True + False + 2 + 2 + 3 + 2 + True + spread + + + gtk-close + True + True + True + half + True + True + + + + False + False + 0 + True + + + + + gtk-justify-left + left + True + True + True + True + True + + + + False + False + 1 + + + + + gtk-justify-center + center + True + True + True + True + True + + + + False + False + 2 + True + + + + + gtk-justify-right + right + True + True + True + True + True + + + + False + False + 3 + True + + + + + False + False + end + 1 + + + + + + diff --git a/eugtk/examples/glade/test116.ex b/eugtk/examples/glade/test116.ex new file mode 100644 index 0000000..db96eee --- /dev/null +++ b/eugtk/examples/glade/test116.ex @@ -0,0 +1,27 @@ + +--# ComboBox demo, compare with demos/test116.ex + +include GtkEngine.e + +add(builder,"~/demos/glade/test116.glade") + +constant items = { + {"Fish",create(GdkPixbuf,"thumbnails/fish.svg",30,30)}, + {"Fox",create(GdkPixbuf,"thumbnails/fox.svg",30,30)}, + {"Mouse",create(GdkPixbuf,"thumbnails/mouse.svg",30,30)} +} + +set("liststore1","data",items) +set("combobox1","active",1) + +main() + +----------------------------------------------------------------------- +global function on_combobox1_changed(atom cb, atom win) +----------------------------------------------------------------------- +integer i = get(cb,"active") + set(win,"title",items[i][1]) + set(win,"icon",items[i][2]) +return 1 +end function + diff --git a/eugtk/examples/glade/test116.glade b/eugtk/examples/glade/test116.glade new file mode 100644 index 0000000..10923cb --- /dev/null +++ b/eugtk/examples/glade/test116.glade @@ -0,0 +1,73 @@ + + + + + + + + + + + + + True + False + 10 + center + -1 + -1 + coweat2.png + + + + True + False + vertical + + + True + False + <b><u>GtkComboBox</u></b> +with a little work, we can add images to a combo. + True + True + 20 + False + + + True + True + 0 + + + + + True + False + liststore1 + True + Critters + + + + + 0 + + + + + + 1 + + + + + False + True + 1 + + + + + + diff --git a/eugtk/examples/glade/test12.ex b/eugtk/examples/glade/test12.ex new file mode 100644 index 0000000..70e118a --- /dev/null +++ b/eugtk/examples/glade/test12.ex @@ -0,0 +1,30 @@ + +--# Glade version of test12.ex + +include GtkEngine.e + +add(builder,"~/demos/glade/test12.glade") + +constant fruit = { + "Apples", + "Bananas", + "Cherries", + "Grapes", + "Peaches", + "Pears" +} + +for i = 1 to length(fruit) do + set("comboboxtext1","append text",fruit[i]) +end for +set("comboboxtext1","active",1) + +main() + +----------------------------------------------------------------------- +global function on_button2_clicked() +----------------------------------------------------------------------- + Info("window1",,"Your favorite is",get("comboboxtext1","active text")) +return 1 +end function + diff --git a/eugtk/examples/glade/test12.glade b/eugtk/examples/glade/test12.glade new file mode 100644 index 0000000..9af6747 --- /dev/null +++ b/eugtk/examples/glade/test12.glade @@ -0,0 +1,90 @@ + + + + + True + False + center + + + + True + False + 10 + vertical + 5 + + + True + False + The <b><u>GtkComboBoxText</u></b> +Pick your favorite fruit + True + center + start + + + False + True + 0 + + + + + True + False + 2 + + + True + True + 1 + + + + + True + False + spread + + + gtk-quit + True + True + True + True + + + + False + True + 0 + + + + + gtk-ok + True + True + True + True + + + + False + True + 1 + + + + + False + False + end + 2 + + + + + + diff --git a/eugtk/examples/glade/test13.ex b/eugtk/examples/glade/test13.ex new file mode 100644 index 0000000..9143ed4 --- /dev/null +++ b/eugtk/examples/glade/test13.ex @@ -0,0 +1,35 @@ + +--# Glade version of test13.ex + +include GtkEngine.e + +add(builder,"~/demos/glade/test13.glade") + +constant bob = create(GdkPixbuf,"~/demos/glade/user_icon.svg") +constant bobby = create(GdkPixbuf,"~/demos/glade/user_icon.svg",24,24,1) +set("image1","from pixbuf",bobby) + +object order = {} + +main() + +----------------------------------------------------------------------- +global function on_button2_clicked(Button self) -- show order +----------------------------------------------------------------------- + Info("window1","Bob's Burgers","Your Order",flatten(order,'\n'),,bob) +return 1 +end function + +----------------------------------------------------------------------- +global function on_checkbutton_toggled(MenuItem self) -- update order +----------------------------------------------------------------------- +object item = get(self,"name") +if get(self,"active") then + order = add_item(item,order,ADD_APPEND) +else + order = remove_item(item,order) +end if +return 1 +end function + + diff --git a/eugtk/examples/glade/test13.glade b/eugtk/examples/glade/test13.glade new file mode 100644 index 0000000..d610303 --- /dev/null +++ b/eugtk/examples/glade/test13.glade @@ -0,0 +1,174 @@ + + + + + + True + False + 6 + + + True + False + 10 + Bob's Burgers + 300 + -1 + coweat2.png + + + + True + False + vertical + + + True + False + <b><u>CheckButtons</u></b> +Select your favorite item(s) + True + center + middle + + + False + True + 0 + + + + + True + False + vertical + + + _Burgers + Burgers + True + True + False + True + 0 + True + + + + False + True + 0 + + + + + _Hotdogs + Hotdogs + True + True + False + True + 0 + True + + + + False + True + 1 + + + + + _Potato chips + Chips + True + True + False + True + 0 + True + + + + False + True + 2 + + + + + _French fries + Fries + True + True + False + True + 0 + True + + + + False + True + 3 + + + + + False + True + 1 + + + + + True + False + spread + + + gtk-quit + True + True + True + half + True + True + + + + False + True + 0 + + + + + _OK + True + True + True + image1 + True + right + True + + + + False + True + 1 + + + + + False + True + 2 + + + + + + diff --git a/eugtk/examples/glade/test142.ex b/eugtk/examples/glade/test142.ex new file mode 100644 index 0000000..7b80532 --- /dev/null +++ b/eugtk/examples/glade/test142.ex @@ -0,0 +1,13 @@ + +--# GtkScale - compare with demos/test142.ex + +include GtkEngine.e + +add(builder,"~/demos/glade/test142.glade") + +for i = 0 to 100 by 10 do -- how to do this in Glade? + set("scale1","add mark",i,GTK_POS_BOTTOM,sprintf("%d",i)) +end for + +main() + diff --git a/eugtk/examples/glade/test142.glade b/eugtk/examples/glade/test142.glade new file mode 100644 index 0000000..19ead2f --- /dev/null +++ b/eugtk/examples/glade/test142.glade @@ -0,0 +1,58 @@ + + + + + 100 + 0.5 + 1 + + + True + False + 5 + mongoose.png + + + + True + False + vertical + + + True + True + 5 + 5 + adjustment1 + True + 66 + 1 + + + False + True + 0 + + + + + True + False + 5 + 6 + <b><u>Fill Level</u></b> +You can set a fill level, which the scale + can or cannot exceed, with or without + a visual indication. + True + + + False + True + 1 + + + + + + diff --git a/eugtk/examples/glade/test157.ex b/eugtk/examples/glade/test157.ex new file mode 100644 index 0000000..2b7eef1 --- /dev/null +++ b/eugtk/examples/glade/test157.ex @@ -0,0 +1,23 @@ + +--# Glade version of test157.ex + +with define BUILDER -- for demo purposes + +include GtkEngine.e + +add(builder,"~/demos/glade/test157.glade") + +constant cssfile = canonical_path("~/demos/resources/mystyle2.css") + +constant css = create(GtkCssProvider,cssfile) + + -- show css on terminal for demo purposes, if run from term + display(read_file(cssfile)) + + -- can't specify multiple fonts in Glade ?, so do it here + set("label2","font","Purisa, Birdland Aeroplane bold 48") + +main() + + + diff --git a/eugtk/examples/glade/test157.glade b/eugtk/examples/glade/test157.glade new file mode 100644 index 0000000..bde093f --- /dev/null +++ b/eugtk/examples/glade/test157.glade @@ -0,0 +1,94 @@ + + + + + window1 + 400 + 400 + True + False + + + + True + False + vertical + + + True + False + 0.85000002384185791 + 0 + 8 + <b><u>Radial Gradient</u></b> +specified in mystyle2.css + True + + + False + True + 0 + + + + + True + False + 0.80000001192092896 + 1 + Moo! + True + True + 23 + False + + + False + True + 1 + + + + + True + False + coweat2.png + + + False + True + 2 + + + + + True + False + center + + + gtk-quit + True + True + True + True + True + + + + False + True + 0 + + + + + False + True + 3 + + + + + + diff --git a/eugtk/examples/glade/test25.ex b/eugtk/examples/glade/test25.ex new file mode 100644 index 0000000..aa0bf1f --- /dev/null +++ b/eugtk/examples/glade/test25.ex @@ -0,0 +1,188 @@ + +--# File Editor, Glade version of test25.ex + +include GtkEngine.e +include GtkPrinter.e + +constant docs = `Demonstrates + menus, + file chooser, + file filters, + recent chooser, + fonts, + exec, etc` + + add(builder,"~/demos/glade/test25.glade") + +object current_font = get("fontchooserdialog1","font") + set("textview1","font",current_font) + set("fontchooserdialog1","font",current_font) + +object current_file = 0 + +-- Can't find a way to add more than one filter directly in Glade, +-- nor any way to set the filter's name, which is what shows in the +-- drop down filter selector... so we do it manually: + +FileFilter f1 = get(builder,"object","filefilter1") + set(f1,"name","Euphoria files") + set("filechooserdialog1","add filter",f1) + +FileFilter f2 = get(builder,"object","filefilter2") + set(f2,"name","All Text Files") + set("filechooserdialog1","add filter",f2) + +-- seems that Glade has no way to directly add a drop-down +-- RecentChooser to main menu so we do this the 'old fashioned' way; + +RecentFilter rcf = pointer("recentfilter1") +RecentChooserMenu rc_menu = create(GtkRecentChooserMenu,{ + {"add filter",rcf}, + {"sort type",GTK_RECENT_SORT_MRU}, + {"show icons",TRUE}, + {"local only",TRUE}, + {"show numbers",TRUE}, + {"show tips",TRUE}}) + set("recent_menu","submenu",rc_menu) + connect(rc_menu,"selection-done","open_recent",rc_menu) + +main() + +------------------------------------------------------------------------------ +global function menu_open_file(Button self, atom dialog) +------------------------------------------------------------------------------ +object fn -- storage for filename +if get(dialog,"run") = 1 -- 'ok' button's Response ID (must set in Glade) + then fn = get(dialog,"filename") -- actually, gets the full path to file + if file_exists(fn) then + LoadText(fn) + end if +end if +set(dialog,"hide") -- don't destroy this dialog, keep it for later use +return 1 +end function + +------------------------------------------------------------------------ +global function open_recent() +------------------------------------------------------------------------ +object fn = get(rc_menu,"current uri") + fn = fn[8..$] -- discard the leading FILE:/// + if file_exists(fn) then + LoadText(fn) + end if +return 1 +end function + +--------------------------------- +procedure LoadText(sequence fn) +--------------------------------- + set("window1","title",fn) + set("textbuffer1","text",read_file(fn)) + set("menu_close","sensitive",TRUE) + set("menu_open","sensitive",FALSE) + set("menu_exec","sensitive",TRUE) + set("menu_print","sensitive",TRUE) + current_file = fn +end procedure + +------------------------------------------------------------------------ +global function menu_close_file(atom self, atom data) +------------------------------------------------------------------------ + set("textbuffer1","text","") -- clear the text + set("menu_close","sensitive",FALSE) + set("menu_open","sensitive",TRUE) + set("menu_exec","sensitive",FALSE) + set("menu_print","sensitive",FALSE) +return 1 +end function + +------------------------------------------------------------------------ +global function on_menu_exec_activate() +------------------------------------------------------------------------ + system("eui " & current_file & " & ",0) -- run the current file; +return 1 +end function + +----------------------------------------------------------------------- +global function on_menu_print_activate() +----------------------------------------------------------------------- + printer:PrintFile(current_file) +return 1 +end function + +------------------------------------------------------------------------ +global function on_menu_colors_activate(atom self, atom view) +------------------------------------------------------------------------ +-- hack: +-- colors are passed in Glade 'name' field as fgnd,bkgnd (no quotes) +object params = split(get(self,"name"),',') + set(view,"foreground",params[1]) + set(view,"background",params[2]) +return 1 +end function + +------------------------------------------------------------------------------- +global function on_menu_font_activate(atom self, atom dialog) +------------------------------------------------------------------------------- + set(dialog,"filter func",call_back(routine_id("FilterFonts"))) + set(dialog,"font",current_font) + if get(dialog,"run") then + current_font = get(dialog,"font") + set("textview1","font",current_font) + set(dialog,"hide") + end if +return 1 +end function + +------------------------------------------------------------------------ +function FilterFonts(atom family) +------------------------------------------------------------------------ +sequence fontlist = { -- faces to show in font selection dialog; + "DejaVu Sans Mono","Courier 10 Pitch","Courier New","FreeSerif", + "Impact","URW Chancery L","Comic","Purisa","Arial","Arial Black", + "Sawasdee","Balmoral D","Ubuntu Mono" + } +object fontname = gtk_str_func("pango_font_family_get_name",{P},{family}) +-- process each font the dialog tries to load; +return find(fontname,fontlist) +-- return 1 if it's on our list, otherwise, return 0 to skip this font; +end function + +------------------------------------------------------------------------ +global function on_menu_normal_activate(atom self, atom view) +------------------------------------------------------------------------ +FontDescription fnt = create(PangoFontDescription,current_font) + set(fnt,"weight",PANGO_WEIGHT_NORMAL) + set(fnt,"style",PANGO_STYLE_NORMAL) + current_font = get(fnt,"to string") + set(view,"font",current_font) +return 1 +end function + +------------------------------------------------------------------------ +global function on_menu_bold_activate(atom self, atom view) +------------------------------------------------------------------------ +FontDescription fnt = create(PangoFontDescription,current_font) + set(fnt,"weight",PANGO_WEIGHT_BOLD) + current_font = get(fnt,"to string") + set(view,"font",current_font) +return 1 +end function + +------------------------------------------------------------------------ +global function on_menu_italic_activate(atom self, atom view) +------------------------------------------------------------------------ +FontDescription fnt = create(PangoFontDescription,current_font) + set(fnt,"style",PANGO_STYLE_ITALIC) + current_font = get(fnt,"to string") + set(view,"font",current_font) +return 1 +end function + +------------------------------------------------------------------------ +global function on_menu_about_activate() +------------------------------------------------------------------------ + return Info("window1"," About ", + "Simple Text\nViewer/Editor",docs,,"accessories-text-editor","gnome-help") +end function + diff --git a/eugtk/examples/glade/test25.glade b/eugtk/examples/glade/test25.glade new file mode 100644 index 0000000..d82baa2 --- /dev/null +++ b/eugtk/examples/glade/test25.glade @@ -0,0 +1,439 @@ + + + + + False + popup + True + mouse + popup-menu + + + False + vertical + 2 + + + False + end + + + gtk-cancel + True + True + True + True + True + + + False + True + 0 + + + + + gtk-ok + True + True + True + True + False + True + True + + + False + True + 1 + + + + + False + True + end + 0 + + + + + + + + + button1 + button2 + + + + True + False + + + + *.ex + *.e + + + + + text/plain + + + + False + dialog + + + + False + vertical + 2 + + + False + end + + + False + True + end + 0 + + + + + + + True + False + 4 + text-x-generic + True + 1 + + + True + False + text-x-script + True + 1 + + + True + False + green-terminal.png + True + 1 + + + True + False + text-x-generic + True + 1 + + + True + False + 20 + + + + *.ex + *.e + + + + + 600 + 500 + True + False + Simple Text Viewer + center + + + + True + False + vertical + + + True + False + + + True + False + _File + True + + + True + False + + + gtk-open + True + False + 8 + True + True + True + + + + + + gtk-close + True + False + False + True + True + True + + + + + + True + False + + + + + gtk-execute + True + False + False + True + True + True + + + + + + gtk-print + True + False + False + 1 + 5 + True + True + True + + + + + + True + False + + + + + gtk-quit + True + False + True + True + True + + + + + + + + + + True + False + Preferences + True + + + True + False + + + gtk-select-font + True + False + True + True + True + + + + + + True + False + + + + + _Normal + black,white + True + False + True + image1 + False + + + + + + _Reverse + white,black + True + False + True + image2 + False + True + + + + + + _Green on Black + #0DF517,black + True + False + True + image3 + False + True + + + + + + True + False + + + + + _Normal + bold + True + False + True + image4 + False + + + + + + + gtk-bold + italic + True + False + True + True + True + + + + + + gtk-italic + bold + True + False + True + True + True + + + + + + + + + + + True + False + _Recent Docs + True + + + + + True + False + _Help + True + + + True + False + + + gtk-about + True + False + True + True + True + + + + + + + + + + False + True + 0 + + + + + True + True + in + + + True + True + 5 + 5 + 5 + 5 + 10 + 9 + 10 + textbuffer1 + + + + + True + True + 1 + + + + + + diff --git a/eugtk/examples/glade/toolbar.ex b/eugtk/examples/glade/toolbar.ex new file mode 100644 index 0000000..2226904 --- /dev/null +++ b/eugtk/examples/glade/toolbar.ex @@ -0,0 +1,37 @@ + +--# Toolbars + +include GtkEngine.e + +add(builder,"~/demos/glade/toolbar.glade") + +constant + fish = create(GdkPixbuf,"thumbnails/fish.png",30,30), + fox = create(GdkPixbuf,"thumbnails/fox.png",30,30), + mouse = create(GdkPixbuf,"thumbnails/mouse.png",30,30), + names = {"Fish","Fox","Mouse"}, + pix = {fish,fox,mouse} + +atom item -- seems to be no way to create a toolbutton in Glade. +for i = 1 to 3 do + item = create(GtkToolButton,create(GtkImage,pix[i]),names[i],"Foo",i) + set("toolbar1","insert",item,-1) + show_all(item) +end for + +main() + +----------------------------------------------------------------------- +global function on_checkbutton1_toggled(ToggleButton self) +----------------------------------------------------------------------- + set("toolbar1","style",get(self,"active")*2) +return 1 +end function + + +-------------------------------------- +global function Foo(atom ctl) +-------------------------------------- +set("label1","text",get(ctl,"label")) +return 1 +end function diff --git a/eugtk/examples/glade/toolbar.glade b/eugtk/examples/glade/toolbar.glade new file mode 100644 index 0000000..611b404 --- /dev/null +++ b/eugtk/examples/glade/toolbar.glade @@ -0,0 +1,292 @@ + + + + + 300 + 200 + True + False + False + False + False + center + + + True + False + False + False + vertical + + + True + False + False + False + + + True + False + _File + True + + + True + False + + + gtk-new + True + False + False + immediate + True + True + True + + + + + gtk-open + True + False + False + True + True + True + + + + + gtk-save + True + False + False + True + True + True + + + + + gtk-save-as + True + False + False + True + True + True + + + + + True + False + + + + + gtk-quit + True + False + True + True + True + + + + + + + + + + True + False + False + _Edit + True + + + True + False + + + gtk-cut + True + False + True + True + True + + + + + gtk-copy + True + False + True + True + True + + + + + gtk-paste + True + False + True + True + True + + + + + gtk-delete + True + False + True + True + True + + + + + + + + + True + True + False + False + _View + True + + + + + True + False + False + _Help + True + + + True + False + + + gtk-about + True + False + True + True + True + + + + + + + + + False + False + 0 + + + + + 280 + 40 + True + False + False + False + icons + 2 + + + False + False + 1 + + + + + 220 + 40 + True + False + start + 10 + 10 + False + False + + + + + + False + True + 2 + + + + + True + False + 5 + 5 + False + False + + + Captions + True + True + False + 10 + 0 + True + + + + False + True + 0 + + + + + gtk-quit + True + True + True + True + 0.46000000834465027 + True + + + + False + False + end + 1 + True + + + + + False + False + end + 3 + + + + + + diff --git a/eugtk/examples/glade/webserver.ex b/eugtk/examples/glade/webserver.ex new file mode 100644 index 0000000..2ffd93f --- /dev/null +++ b/eugtk/examples/glade/webserver.ex @@ -0,0 +1,78 @@ + +--# Web Server built with Glade + +include GtkEngine.e + +-- You may need to change the following line if you use a terminal other +-- than gnome-terminal. This is only necessary if you want to use the +-- tail -f option to display on-going connection requests; + +constant term = "gnome-terminal --title='SERVER LOG' --window-with-profile=logview -e " + + add(builder,"webserver.glade") + set("ip","text",get_net_address()) + +main() + +-------------------------------------- +global function on_help_button_clicked() +-------------------------------------- + show_uri(sprintf("file:///%s", + {canonical_path("~/demos/documentation/ServerHelp.html")})) +return 1 +end function + +----------------------------------------------------------------------- +global function on_log_file_icon_press(atom self) +----------------------------------------------------------------------- + set(self,"text","") +return 1 +end function + +------------------------------------------------------------------------ +global function on_ok_button_clicked(atom ctl, atom data) +------------------------------------------------------------------------ +object server = canonical_path("~/demos/examples/httpd.ex") +object logfilename = get("log_file","text") + +object path = get("filechooserbutton1","filename") + if atom(path) then -- nothing chosen + Warn(,,"Must select a root file path!") + return 1 + end if + +-- build a command string to pass to httpd.ex; +object params = sprintf("eui %s -bind %s:%s ", + {server,get("ip","text"),get("port","text")}) + + if length(path) > 0 then + params &= sprintf("-root '%s' ",{canonical_path(path)}) + end if + + if length(logfilename) > 0 then + params &= sprintf("-log %s ",{logfilename}) + end if + + if get("sort","active") then + params &= " -s " + end if + + if get("show_hidden","active") then + params &=" -h " + end if + + if get("show_full_request","active") then + params &= " -r " + end if + + params &= " & " + + if get("tail_f","active") then -- open a term to tail the log + system_exec(sprintf("%s 'tail -f %s' & ",{term,logfilename}),0) + end if + + system_exec(params) + +return 1 +end function + diff --git a/eugtk/examples/glade/webserver.glade b/eugtk/examples/glade/webserver.glade new file mode 100644 index 0000000..05d2923 --- /dev/null +++ b/eugtk/examples/glade/webserver.glade @@ -0,0 +1,329 @@ + + + + + 8080 + 8090 + 8080 + 1 + 1 + + + True + False + 10 + mongoose.png + + + True + False + 5 + 5 + 17 + 5 + 5 + + + True + False + IP: + + + 0 + 0 + 1 + 1 + + + + + True + False + Root + + + 0 + 2 + 1 + 1 + + + + + True + False + Log file + + + 0 + 4 + 1 + 1 + + + + + Sort + True + True + False + Sort the directory listings + 0 + True + + + 0 + 6 + 1 + 1 + + + + + True + False + end + 5 + True + spread + + + gtk-quit + True + True + True + Click to quit + baseline + True + True + + + + False + True + 0 + + + + + gtk-help + True + True + True + baseline + True + True + + + + False + True + 1 + + + + + gtk-ok + True + True + True + Click to start the server + baseline + True + True + + + + False + True + 2 + + + + + 0 + 8 + 3 + 1 + + + + + Show Full Request + True + True + False + Show <i>full request string</i> +in logs + 0 + True + + + 1 + 6 + 1 + 1 + + + + + Show Hidden Files + True + True + False + Pop-up a terminal window to show active requests. + 0 + True + + + 2 + 6 + 1 + 1 + + + + + True + True + + + 1 + 0 + 1 + 1 + + + + + True + True + File to log requests. +Clear this if no log file is needed. + server.log + 0 + gtk-clear + False + False + + + + 1 + 4 + 1 + 1 + + + + + Tail -f + True + True + False + Pop up a window to show +active connections. + 0 + True + + + 2 + 4 + 1 + 1 + + + + + True + True + adjustment1 + 1 + True + 8080 + + + 2 + 0 + 1 + 1 + + + + + True + False + Choose the <b>base</b> folder. +This and every folder below will be visible to the server. + 6 + select-folder + False + False + False + + + 1 + 2 + 2 + 1 + + + + + True + False + 5 + 5 + + + 0 + 1 + 3 + 1 + + + + + True + False + 5 + 5 + + + 0 + 3 + 3 + 1 + + + + + True + False + 5 + 5 + + + 0 + 5 + 3 + 1 + + + + + True + False + 5 + 10 + + + 0 + 7 + 3 + 1 + + + + + + diff --git a/eugtk/examples/glade/widgets.ex b/eugtk/examples/glade/widgets.ex new file mode 100644 index 0000000..add4138 --- /dev/null +++ b/eugtk/examples/glade/widgets.ex @@ -0,0 +1,102 @@ + +--------------------------------------------------------------------------- +--# Demo of many numeric widgets built with Glade +-- would take hundreds of lines of code +-- if coded 'by hand', but only a few if the interface is designed by Glade. +--------------------------------------------------------------------------- + +include GtkEngine.e + + -- Use the following if you want to load the Glade code at runtime. + -- This will happen even if the program is bound or compiled, which means + -- that changes to the .glade file could improve (or break!) your program: + + -- add(builder,"~/demos/examples/glade/widgets.glade") + + -- Use the 2 lines below instead of the one above + -- if you prefer to load the glade XML as an include: + + include widgets.xml + add(builder,widgets:XML) + + -- If you do this, it will likewise be included each time the program is + -- interpreted, and therefore subject to the xml code being edited. + + -- HOWEVER - when your program is bound or compiled, the glade XML will be + -- bound into the program, and latter changes to the .xml will no longer + -- have any affect on your program. + +connect("window1","destroy","Quit") +main() + +-- All functions which respond to the interface MUST be declared global! +-- Controls can be referenced by string ID, rather than by handle. +-- The string ID is assigned automatically by Glade when object is created, +-- but can be changed on the Glade Properties/General tab (ID:) if you +-- prefer a more meaningful name. +-- DON'T change the Widget name: field under the Properties/Common tab! + +-------------------------------------------------------------------------------------- +global function on_radiobuttons_toggled(atom self, atom scale) +-------------------------------------------------------------------------------------- +-- Two calls to this function are made each time a radio button is clicked, +-- one as the previously-selected button is toggled 'off', and another +-- as the newly-clicked button it toggled 'on'. +-- We use the 'active' property to decide which one to respond to. + +-- Each button's 'name' field is used to pass the percentage to set. +-- There seems to be little use for that field otherwise. + +atom percent = 0 + + if get(self,"active") then + percent = to_number(get(self,"name")) + set(scale,"value",percent) + end if + +return 1 +end function + +-------------------------------------------------------------- +global function on_switch1_active_notify(atom self, atom spin) +-------------------------------------------------------------- + set("spinner1","active",get(self,"active")) -- toggle it +return 1 +end function + +-------------------------------------------------- +global function on_scale1_value_changed(atom self) +-------------------------------------------------- +atom val = get(self,"value") + set("progressbar1","fraction",val * .01) + set("levelbar1","value",val) + set("show_text","active",val != 0) +return 1 +end function + +----------------------------------------------- +global function on_show_text_toggled(atom self) +----------------------------------------------- + set("progressbar1","show text",get(self,"active")) +return 1 +end function + +-------------------------------------------- +global function on_digits_changed(atom self) +-------------------------------------------- +integer decimals = get(self,"active")-1 -- indexes are zero-based + set("value","digits",decimals) + set("scale1","digits",decimals) +return 1 +end function + +---------------------------------------- +global function on_help_about_activate() +---------------------------------------- +return Info("window1","About...","Widgets", + sprintf("This is a demo of several\nGtk numeric controls\n\n" + &"Current value %g",get("levelbar1","value")),, + "~/demos/thumbnails/applications-development.svg") +end function + + diff --git a/eugtk/examples/glade/widgets.glade b/eugtk/examples/glade/widgets.glade new file mode 100644 index 0000000..cc64698 --- /dev/null +++ b/eugtk/examples/glade/widgets.glade @@ -0,0 +1,487 @@ + + + + + 100 + 0.5 + 10 + + + True + False + center + applications-development + + + + True + False + vertical + + + True + False + 10 + 5 + center + + + True + False + <b><u>GtkRadioButtons</u></b> +Sets value in steps + 0 + + + True + False + 12 + + + True + False + <b><u>RadioButtons</u></b> +Click to set adjustment value +0 - 50% - 100% + start + center + vertical + + + Empty + 0 + True + True + False + 0 + True + True + + + + False + True + 0 + + + + + Half + 50 + True + True + False + 0 + True + True + radio_empty + + + + False + True + 1 + + + + + Full + 100 + True + True + False + 0 + True + True + radio_half + + + + False + True + 2 + + + + + + + + + + + + False + False + 0 + True + + + + + poobah + 40 + True + False + <b><u>GtkLevelBar</u></b> +Shows value of shared adjustment + vertical + 100 + True + + + True + True + 1 + + + + + 20 + 20 + True + False + <b><u>GtkSpinner</u></b> +Shows activity in progress + + + False + False + 2 + True + + + + + True + True + <b><u>GtkSwitch</u></b> +Turns spinner on/off + + + + False + True + 3 + True + + + + + gtk-quit + True + True + True + <b><u>Quit button</u></b> +What do you think <i>this</i> does? + True + True + + + + False + True + 4 + + + + + True + True + end + 0 + + + + + True + False + + + True + False + _File + True + + + True + False + + + gtk-new + True + False + False + True + True + True + + + + + gtk-open + True + False + False + True + True + True + + + + + gtk-save + True + False + False + True + True + True + + + + + gtk-save-as + True + False + False + True + True + True + + + + + True + False + + + + + gtk-quit + menu-quit + True + False + True + True + True + + + + + + + + + + True + False + False + _Edit + True + + + True + False + + + gtk-cut + True + False + True + True + + + + + gtk-copy + True + False + True + True + + + + + gtk-paste + True + False + True + True + + + + + gtk-delete + True + False + True + True + + + + + + + + + help-menu-about + True + False + False + _View + True + + + + + True + False + Click for Help/About + True + _Help + True + + + True + False + + + gtk-about + True + False + True + True + True + True + + + + + + + + + + False + True + 1 + + + + + + + + True + False + <b><u>GtkProgressBar</u></b> +Shows value of shared adjustment + 5 + 5 + + + True + True + 3 + + + + + True + False + 10 + 10 + 16 + start + + + Show text + True + True + False + <b><u>GtkCheckButton</u></b> +Show or hide progress text + 0 + True + True + + + + False + True + 0 + + + + + True + False + <b><u>ComboBoxText</u></b> +Adjust number of decimal places used in value displays + 2 + + None + One + Two + Three + + + + + False + True + 1 + True + + + + + True + True + <b><u>GtkSpinButton</u></b> +Set/show adjustment value + etched-out + digits + adjustment1 + 1 + 2 + True + + + False + True + 2 + + + + + True + True + 10 + 4 + + + + + True + True + <b><u>GtkScale</u></b> +Slide to change adustment value + 5 + 5 + adjustment1 + 1 + 2 + + + + False + True + 5 + + + + + + diff --git a/eugtk/examples/glade/widgets.png b/eugtk/examples/glade/widgets.png new file mode 100644 index 0000000000000000000000000000000000000000..036371fdb31c69bc98e08dbc1814c48718c59110 GIT binary patch literal 17038 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 Rzfb~1R7gs&f?vn){{agy9|iyb literal 0 HcmV?d00001 diff --git a/eugtk/examples/glade/widgets.xml b/eugtk/examples/glade/widgets.xml new file mode 100644 index 0000000..31a4662 --- /dev/null +++ b/eugtk/examples/glade/widgets.xml @@ -0,0 +1,498 @@ + +--------------------------------------------------------------------- +-- copy of widgets.glade, exported as a sequence. +-- usage: +-- include widgets.xml +-- add(builder,widgets:XML) +--------------------------------------------------------------------- + +namespace widgets + +export constant XML = """ + + + + + 100 + 0.5 + 10 + + + True + False + center + applications-development + + + True + False + vertical + + + True + False + 10 + 5 + center + + + True + False + <b><u>GtkRadioButtons</u></b> +Sets value in steps + 0 + + + True + False + 12 + + + True + False + <b><u>RadioButtons</u></b> +Click to set adjustment value +0 - 50% - 100% + start + center + vertical + + + Empty + 0 + True + True + False + 0 + True + True + + + + False + True + 0 + + + + + Half + 50 + True + True + False + 0 + True + True + radio_empty + + + + False + True + 1 + + + + + Full + 100 + True + True + False + 0 + True + True + radio_half + + + + False + True + 2 + + + + + + + + + + + + False + False + 0 + True + + + + + poobah + 40 + True + False + <b><u>GtkLevelBar</u></b> +Shows value of shared adjustment + vertical + 100 + True + + + True + True + 1 + + + + + 20 + 20 + True + False + <b><u>GtkSpinner</u></b> +Shows activity in progress + + + False + False + 2 + True + + + + + True + True + <b><u>GtkSwitch</u></b> +Turns spinner on/off + + + + False + True + 3 + True + + + + + gtk-quit + True + True + True + <b><u>Quit button</u></b> +What do you think <i>this</i> does? + True + True + + + + False + True + 4 + + + + + True + True + end + 0 + + + + + True + False + + + True + False + _File + True + + + True + False + + + gtk-new + True + False + False + True + True + True + + + + + gtk-open + True + False + False + True + True + True + + + + + gtk-save + True + False + False + True + True + True + + + + + gtk-save-as + True + False + False + True + True + True + + + + + True + False + + + + + gtk-quit + menu-quit + True + False + True + True + True + + + + + + + + + + True + False + False + _Edit + True + + + True + False + + + gtk-cut + True + False + True + True + + + + + gtk-copy + True + False + True + True + + + + + gtk-paste + True + False + True + True + + + + + gtk-delete + True + False + True + True + + + + + + + + + help-menu-about + True + False + False + _View + True + + + + + True + False + Click for Help/About + True + _Help + True + + + True + False + + + gtk-about + True + False + True + True + True + True + + + + + + + + + + False + True + 1 + + + + + + + + True + False + <b><u>GtkProgressBar</u></b> +Shows value of shared adjustment + 5 + 5 + + + True + True + 3 + + + + + True + False + 10 + 10 + 16 + start + + + Show text + True + True + False + <b><u>GtkCheckButton</u></b> +Show or hide progress text + 0 + True + True + + + + False + True + 0 + + + + + True + False + <b><u>ComboBoxText</u></b> +Adjust number of decimal places used in value displays + 2 + + None + One + Two + Three + + + + + False + True + 1 + True + + + + + True + True + <b><u>GtkSpinButton</u></b> +Set/show adjustment value + etched-out + digits + adjustment1 + 1 + 2 + True + + + False + True + 2 + + + + + True + True + 10 + 4 + + + + + True + True + <b><u>GtkScale</u></b> +Slide to change adustment value + 5 + 5 + adjustment1 + 1 + 2 + + + + False + True + 5 + + + + + + +""" diff --git a/eugtk/examples/glade/x2.png b/eugtk/examples/glade/x2.png new file mode 100644 index 0000000000000000000000000000000000000000..9e2f704ff4a1eaed38f81e2fc7946380b2a20ef8 GIT binary patch literal 215386 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
    uHk%vc)k<=E$k?S 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�h6jnR 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
    pL(Ns9=mblcd#_8tVi<|XBjV(*3&(Ce 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%0AF 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

    *5cH)~48Qhj_!o0`PZgIg7U1c3JMy007Pqgqia2 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 e)@O3`4!NQ=QPp4dDG>tvlKLhuRw<$%_Run sock.ex , not this file!! +--------------------------------------------------------- +-- Run eui sock.ex +-- This will open a window and show a Socket ID. +-- sock.ex will then execute plug.ex, passing +-- the Socket ID to it. +-- Plug will open a small window containing a +-- FileChooserButton. Use this to select images. +-- The selected image should be shown in the sock window. +---------------------------------------------------------- + +include GtkEngine.e + +object cmd = command_line() + +integer sock_id = 0 +if length(cmd) > 2 then + sock_id = to_number(cmd[3]) +end if + +constant win1 = create(GtkWindow,{ + {"border width",10}, + {"default size",200,50}, + {"icon","~/demos/thumbnails/applications-development.svg"}, + {"position",GTK_WIN_POS_CENTER}, + {"connect","destroy","Quit"}}) + +constant panel = create(GtkBox,VERTICAL) + add(win1,panel) + +constant filter = create(GtkFileFilter,{ + {"name","Images"}, + {"add mime type","image/*"}}) + +constant btn = create(GtkFileChooserButton,"Open") + pack_end(panel,btn) + set(btn,"add filter",filter) + connect(btn,"file-set","NewPix") + +constant plug = create(GtkPlug,sock_id) + +constant img = create(GtkImage,"~/demos/thumbnails/mongoose.png") + add(plug,img) + show_all(plug) + +show_all(win1) +main() + +------------------------ +global function NewPix() +------------------------ +object fn = get(btn,"filename") +object pb = create(GdkPixbuf,fn,500,500,1) +if file_exists(fn) then + display(fn) + set(img,"from pixbuf",pb) +end if +return 1 +end function diff --git a/eugtk/examples/resources/Jerry.map b/eugtk/examples/resources/Jerry.map new file mode 100644 index 0000000000000000000000000000000000000000..45c0d2bae76e58e2b7803b43791ac4aa318f5cbe GIT binary patch literal 275 zcmZvVyH3ME5Je4kh=dUpO+H~uBE@FL_IR@{5mkybsZy@-CN}a*VS~uerGZ}>a3Y#W zjBYWyI&+3ypYJ2U6ciFFicvBqA%-9d^I__)Z%k{&V;TcwBvC4qSmdUdiQ$R@h=vGE zGMr}=PkGEzYS>*|mnf*UBE))!Six(N+(nzc9PqL9Cj}mi%DLeUrDk zs^6c^efZXId6cM75#IqoKtusX81e1%ezVbaCzflz#*}X^Op~80$8o;D&U5r6`+xZC K#9x~JefkT&?`S3f literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/Justin.map b/eugtk/examples/resources/Justin.map new file mode 100644 index 0000000..2100ee8 --- /dev/null +++ b/eugtk/examples/resources/Justin.map @@ -0,0 +1,7 @@ +\#22name\#22 = \#22Justin Jones\#22 +\#22pix\#22 = \#22thumbnails/Justin.jpg\#22 +\#22bal\#22 = \#2212.99\#22 +\#22phone\#22 = \#22123\-456\-6789\#22 +\#22city\#22 = \#22Reno\#2C NV\#22 +\#22age\#22 = \#2214\#22 +\#22Data\#22 = {\#22Justin Jones\#22\#2C14\#2C12.99\#2C\#22Reno\#2C NV\#22\#2C\#22123\-456\-6789\#22\#2C\#22thumbnails/Justin.jpg\#22} diff --git a/eugtk/examples/resources/README.html b/eugtk/examples/resources/README.html new file mode 100644 index 0000000..7b922e2 --- /dev/null +++ b/eugtk/examples/resources/README.html @@ -0,0 +1,178 @@ + + + + + README + + + + + +

    + GTK Logo + OpenEuphoria Logo +

    EuGTK 4.11.10

    +

    Programmer's Resources

    +
    + +

    Editors

    + +

    WEE

    +

    +I now use Pete Eberlein's WEE editor frequently, since it is cross-platform and designed for Euphoria source code.
    +

    + +To set up [F1] key pop-up GTK help, follow these directions. + +

    +
    +

    Geany, gedit, pluma, GtkSourceView, etc...

    +

    +In this folder are files which will add +Euphoria and EuGTK syntax highlighting to editors above, and one-click run or compile capability to +Geany. +

    +
    +To Install:
    +
    +For programs using GTK2 -- i.e. Geany, Pluma, etc.
    +
    +sudo cp euphoria.lang /usr/share/gtksourceview-2.0/language-specs/euphoria.lang
    +sudo cp gedit_syntax.xml /usr/share/mime/packages/
    +sudo cp classic.xml /usr/share/gtksourceview-2.0/styles/
    +
    +For programs using GTK3 -- i.e. EuGTK Sourceview
    +
    +sudo cp euphoria.lang /usr/share/gtksourceview-3.0/language-specs/euphoria.lang
    +sudo cp gedit_syntax.xml /usr/share/mime/packages/
    +sudo cp classic.xml /usr/share/gtksourceview-3.0/styles/
    +
    +Actually, it doesn't hurt to do both :)
    +
    +Optional, if you prefer these styles:
    +sudo cp cobalt.xml /usr/share/gtksourceview-2.0/styles/
    +sudo cp oblivion.xml /usr/share/gtksourceview-2.0/styles/
    +sudo cp build.xml /usr/share/gtksourceview-2.0/styles/
    +
    +sudo cp cobalt.xml /usr/share/gtksourceview-3.0/styles/
    +sudo cp oblivion.xml /usr/share/gtksourceview-3.0/styles/
    +sudo cp build.xml /usr/share/gtksourceview-3.0/styles/
    +
    +
    + +

    +For Geany, enter the location of your GTK documentation in Geany's context-action-cmd +accessed from the menu: Edit=>Preferences=>Tools=>Commands +

    + +
    +

    Example:
    + +context_action_cmd=firefox -new-tab file:///home/irv/gtk3/%s.html + +

    +
    + +

    +Once that's done, you can pop up docs on GtkWidgets in +your Euphoria source code. Highlight the widget name, e.g. GtkWindow, then right-click and choose context action. +You could also set up a geany keybinding for this, such as alt-i. +In the example above, you may prefer to use -new-window instead of -new-tab, +or perhaps -search in order to use your default on-line search engine. +

    + +
    +hint +

    +If you are connected to a local network, but not the internet, links in the GTK docs may +try to load images, etc from off-site. This will slow or stop you from getting the help you need. +

    +
    + +
    +

    GtkSourceView

    +

    +Gtk has its own editor, with syntax highlighting for over 100 programming languages, +which now works as a EuGTK plugin (see test201.ex. With +EuGTK 4.11.3, I'm now using this for most editing tasks. It uses the syntax +highlighting files shown above for GTK3. +

    +

    The GtkSourceView editor is also used in Bear.ex, +which can edit and test run source code as well as view and edit html pages. +

    +
    +

    Glade

    +

    +You can use Glade to visually (drag and drop) design your interface. You'll still need to write some +'glue' code to link signals to Euphoria functions, just as you would with VisualBasic™, etc., so a text +editor such as WEE will still be necessary. See Glade.html. +

    +
    + +

    Other files here

    +

    +

      +
    • themeicons.txt +
      this is generated by icons.ex, and lists the names of icons +available in the current theme.
      +
    • + +
    • xcolors.txt +
      this is a list of color names generated by xcolors, in case you +don't have xcolors or access to the web.
      +
    • + +
    • papersizes.txt +
      a list of paper size names for possible use when setting up a print process.
      +
    • + +
    • words.txt +
      21,084 english words used by the hangman demo.
      +
    • + +
    • notebook_pages.txt +
      content for test155.ex.
      +
    • + +
    • colorcode folder +
      contains resistor images created by me using Gimp.
      +
    • + +
    • flags folder +
      contains 247 flags, all in the public domain.
      +
    • + +
    • gedit_syntax folder +
      contains Mario Steele's color coding for GEdit, Pluma, and GtkSourceView.
      +
    • + +
    • *.css files +
      various css files to support demos
      +
    • + +
    +

    +
    +
    + hint +

    + This page edited by The Bear, + a web-page and programming editor + written in Euphoria. +

    +

    + Updated for EuGTK version 4.11.11 Sept 1, 2016
    + All code © 2016 by Irv Mullins +

    +
    +
    + + + + diff --git a/eugtk/examples/resources/a.e b/eugtk/examples/resources/a.e new file mode 100644 index 0000000..374c4ce --- /dev/null +++ b/eugtk/examples/resources/a.e @@ -0,0 +1,17 @@ +namespace a + +include GtkEngine.e + +export constant color = "red" + +constant win = create(GtkWindow,{ -- this window is NOT exported + {"name","a:window"}, -- note that this name must include the namespace! + {"move",200,300}, + {"title","Window A"}}) + +show_all(win) + +export function clear() + set(win,"background",#dddddd) +return 1 +end function diff --git a/eugtk/examples/resources/apple-red.png b/eugtk/examples/resources/apple-red.png new file mode 100644 index 0000000000000000000000000000000000000000..b0a24e941859564debfe60122d4fb60ab32cacab GIT binary patch literal 3545 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 T!37SN00000NkvXXu0mjf{xHB+ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/b.e b/eugtk/examples/resources/b.e new file mode 100644 index 0000000..5fc8483 --- /dev/null +++ b/eugtk/examples/resources/b.e @@ -0,0 +1,17 @@ +namespace b + +include GtkEngine.e + +export constant color = "green" + +constant win = create(GtkWindow,{ -- not this window is NOT exported. + {"name","b:window"}, -- you must include the namespace as part of name + {"move",400,700}, + {"title","Window B"}}) + +show_all(win) + +export function clear() + set(win,"background",#dddddd) +return 1 +end function diff --git a/eugtk/examples/resources/background.jpg b/eugtk/examples/resources/background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..86c006aa466a0c5875a39087c9765b6eb79433be GIT binary patch literal 22219 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 z zCR0R9CKYtz+E*Hn;Kf}L-$)9e08Lr5QtltwOZ$aM=X4*=616k4iM{Cc@?_b5?t8SAZ_Q zk~glf4L}5y)aFqnCIk}yHDmlw1^+iHp!!Kcn}s8*@EwelLyg8^cqqBw=k`*b1)fBb zT#f#wr_OizB~CRoJRR6KV0z z$tkl#<7_L%-9Nu?7IQkfYtQRosp`nItgQZ5pQSA z$d;Lk8?~o@(w~;M=~E;H25C^6mgb=>$O@^{z9u(eb1Ff?c{vBh`oye_{aX3#ezF>L z0wVUx#DnHHniX;-K+MMvb{E8$8|6`&5vtNJB-K?qu0Y=T;gSSdpvg0su(@p_nj5KQ z)A8rE+UiN&1)J!{XmFIL#~u8uHR1eD$V>l5ay}We6@VoaTpVZh#QZ=i@GgN+vQ!=h z0x`j}(qVVb0QIsRAMB&$ABwlisC@5v;Bi$pe$)<3q4|z$O&xN+X}AR{j67MM+VYqA zL^q(U8=kau~D|3y|4TSu{I`Who3jg`sT1v^S)0{{5QuCr4di&0znQG3f>l>0r2 zKZts39r8ghIG-i))){cHP}x}w&a$Fb82#$!BfBUM=)SY>`0yq;EUB~)GrQ1X|2#6? zW&JgVCGEWTB&{|tM=N?c2>0%Ns3e#46XZn$p9f?#~Msr7*qvQ38l%Vhu__Fb&;=Snhdmv%Ya=KJs3&pQmd6%k=ih7Fv%cT z2s!ep4dd3sy_L$>??&2nDAw`uPb45X2wuhW%E^nK+*qH;XlsiI`(8-e)W4QH zo^*`Po>&W3#USM<#GQT+pj=z&{V zr^8Lf4f>_CmOL|A0>awF<7NPHA64=1jXJ`T&e@tLB_saM-j;WX^un^AV--A%PkZpg zm(=yN$|m0sm((b5HSle_)3Fgd6QNZ5?NF0zs4_ z8mg1;sx9glrl?Wsp4}XW*j!9AqdZ!iZF; zav(#C*)^F1g>w~y&wG1}p`(olNZZ?xoPs)A%l>vYh0T^>0{RE5FpWDBtJ&k8T9j7X z@m=m%aOK&X%KSl#Li8WoOkdcMnNYf zpwZzIzHyWkUp7~2i42_(OmHB8NNKDji`!DS6U~R$bf$Y~6GaB{^n#!7HXD6Euy*q2 z-8YkJv;tGJ1(36e!sI_v7@bl8pSnTJU zyJtZ4N2@Y1{P|Y;?q$AacgmjLT-?`43axBRd3^`GclVU{^@XbrX+Q!S%66Z5Y`u3U8YtW!+Aw=$^6Z> z9_>w@s7m34#L?Ig2{;?)@qb0lBJr#J-csmfDXZd2L>{ej!jS{`#bRJZ1<~si~g# z=LqvLj>c{DaINjNv|kf60BW1AuZw1PV^^*+%JfP5u~LwD|6x&Xb+Xy`)flPx_i~d z^>P0Yuzv{HKLqR_0`?C9`-g!2L%{waVE+)Xe+bw=1neII_74I3hk*S>mR54*~m!fc->mR54*~m!fc- c #FF963F", +", c #FAAE4D", +"' c #F9B853", +") c #FAB14F", +"! c #FF9740", +"~ c #F7C158", +"{ c #F1E36C", +"] c #F9B551", +"^ c #FCA245", +"/ c #F3DA67", +"( c #F2DC68", +"_ c #FAAA4A", +": c #000000", +"< c #FF943C", +"[ c #FBA84B", +"} c #F1E16B", +"| c #FE9C43", +"1 c #FE953E", +"2 c #F2DF6A", +"3 c #FD9E43", +"4 c #9D5A25", +"5 c #321D0B", +"6 c #231509", +"7 c #523013", +"8 c #573416", +"9 c #6C5125", +"0 c #866F33", +"a c #C49F49", +"b c #F9B14E", +"c c #F5CC5F", +"d c #F6C85C", +"e c #FCA347", +"f c #F8BC55", +"g c #F5CB5E", +"h c #F9B450", +"i c #FF973F", +"j c #FF923E", +"k c #FE9B42", +"l c #FAB24F", +"m c #E2AF50", +"n c #522F14", +"o c #1B1A0C", +"p c #8B803D", +"q c #EBDE69", +"r c #F3D966", +"s c #FD9F44", +"t c #FF953D", +"u c #F7C359", +"v c #F1E16A", +"w c #B8AE53", +"x c #18160A", +"y c #211F0F", +"z c #C3B757", +"A c #F4D363", +"B c #F6C459", +"C c #A39949", +"D c #080703", +"E c #363318", +"F c #817A3A", +"G c #B29042", +"H c #B86A2C", +"I c #4D2C14", +"J c #353B44", +"K c #7A899E", +"L c #7B889E", +"M c #7A889E", +"N c #79889E", +"O c #77869B", +"P c #0B0C0E", +"Q c #090804", +"R c #A29848", +"S c #FD9C42", +"T c #FF923D", +"U c #FE9840", +"V c #F1E26B", +"W c #AFA54E", +"X c #050402", +"Y c #2B2813", +"Z c #B9AE53", +"` c #FE9D43", +" . c #5D6778", +".. c #20252B", +"+. c #040506", +"@. c #596373", +"#. c #515A69", +"$. c #432710", +"%. c #745123", +"&. c #8D853F", +"*. c #8A823E", +"=. c #746D34", +"-. c #3F3C1C", +";. c #040402", +">. c #BDB255", +",. c #FF9840", +"'. c #C1B656", +"). c #0C0C06", +"!. c #6D6631", +"~. c #F0E26C", +"{. c #D2A266", +"]. c #958A8A", +"^. c #4C5563", +"/. c #030304", +"(. c #5E6877", +"_. c #929DAF", +":. c #99A4B5", +"<. c #9DA8B8", +"[. c #9CA6B7", +"}. c #95A0B1", +"|. c #8794A8", +"1. c #1F2228", +"2. c #060708", +"3. c #333942", +"4. c #79879D", +"5. c #B78C71", +"6. c #F4A14C", +"7. c #D4C75F", +"8. c #555026", +"9. c #19170B", +"0. c #E0D364", +"a. c #F7C258", +"b. c #F7BF57", +"c. c #FCA247", +"d. c #FF943F", +"e. c #FE933D", +"f. c #FCA448", +"g. c #FCA749", +"h. c #FBA848", +"i. c #E5D766", +"j. c #1E1C0E", +"k. c #89813D", +"l. c #D3CD78", +"m. c #8E9795", +"n. c #939EB0", +"o. c #B9C0CC", +"p. c #A1A4A9", +"q. c #B1B2B3", +"r. c #FFFFFF", +"s. c #F8F9FA", +"t. c #BABDC1", +"u. c #5F6267", +"v. c #959EAC", +"w. c #7D8AA0", +"x. c #828999", +"y. c #BFB27D", +"z. c #EFE16C", +"A. c #7D7638", +"B. c #6B6530", +"C. c #F7C058", +"D. c #FF933C", +"E. c #FBAA4A", +"F. c #5C5629", +"G. c #EBDE6F", +"H. c #A7AA8B", +"I. c #7B889D", +"J. c #7F8CA1", +"K. c #B0B9C6", +"L. c #E5E8EC", +"M. c #F4F5F7", +"N. c #C3C9D3", +"O. c #8A96AA", +"P. c #909794", +"Q. c #DBD275", +"R. c #605B2B", +"S. c #060503", +"T. c #D0C45D", +"U. c #FAB14E", +"V. c #FE943E", +"W. c #FCA246", +"X. c #DFD264", +"Y. c #1A190C", +"Z. c #544F26", +"`. c #D7CF77", +" + c #899398", +".+ c #7D8BA0", +"++ c #B7BFCB", +"@+ c #FCFDFD", +"#+ c #CED3DB", +"$+ c #8895A8", +"%+ c #7E8A9D", +"&+ c #BDBB82", +"*+ c #E8DB68", +"=+ c #88803D", +"-+ c #0E0D06", +";+ c #22200F", +">+ c #E7D967", +",+ c #CBC57C", +"'+ c #7E8B9C", +")+ c #9AA5B6", +"!+ c #EBEDF0", +"~+ c #EDEDED", +"{+ c #FEFEFE", +"]+ c #F9F9FA", +"^+ c #B6BECA", +"/+ c #7B899F", +"(+ c #A9AC8A", +"_+ c #8B833E", +":+ c #EFE16B", +"<+ c #F2DE69", +"[+ c #D7CA60", +"}+ c #C2B657", +"|+ c #C3C07F", +"1+ c #7B899E", +"2+ c #7C8AA0", +"3+ c #BFC6D1", +"4+ c #FDFEFE", +"5+ c #5E5E5E", +"6+ c #A0A0A0", +"7+ c #F1F1F1", +"8+ c #686868", +"9+ c #DDE1E6", +"0+ c #9FA48E", +"a+ c #C7BC59", +"b+ c #F4D463", +"c+ c #F3D765", +"d+ c #C9C47D", +"e+ c #818FA3", +"f+ c #DDE0E6", +"g+ c #BFBFBF", +"h+ c #6B6B6B", +"i+ c #0B0B0B", +"j+ c #212121", +"k+ c #CECECE", +"l+ c #6E6E6E", +"m+ c #979797", +"n+ c #F6F6F6", +"o+ c #F3F4F6", +"p+ c #A3A78C", +"q+ c #706932", +"r+ c #B1A64F", +"s+ c #E9DC69", +"t+ c #FC923D", +"u+ c #F7C057", +"v+ c #DAD176", +"w+ c #7F8DA2", +"x+ c #DFE2E7", +"y+ c #DBDBDB", +"z+ c #333333", +"A+ c #323232", +"B+ c #444444", +"C+ c #232323", +"D+ c #545454", +"E+ c #F0F0F0", +"F+ c #C7C7C7", +"G+ c #414141", +"H+ c #010101", +"I+ c #696969", +"J+ c #ECECEC", +"K+ c #F7F8F9", +"L+ c #949FB1", +"M+ c #B6B685", +"N+ c #F6C65B", +"O+ c #FE943D", +"P+ c #BD6C2D", +"Q+ c #FE9941", +"R+ c #EADE6F", +"S+ c #8A9497", +"T+ c #D9DDE3", +"U+ c #E0E0E0", +"V+ c #181818", +"W+ c #363636", +"X+ c #D4D4D4", +"Y+ c #B7B7B7", +"Z+ c #1B1B1B", +"`+ c #383838", +" @ c #F8F8F8", +".@ c #A9A9A9", +"+@ c #040404", +"@@ c #424242", +"#@ c #B9B9B9", +"$@ c #EEEEEE", +"%@ c #E6E6E6", +"&@ c #1F1F1F", +"*@ c #E5E5E5", +"=@ c #8E9AAC", +"-@ c #D2CB7A", +";@ c #F4D362", +">@ c #FAA94A", +",@ c #D77D34", +"'@ c #FE9A41", +")@ c #F6C45A", +"!@ c #A6A98B", +"~@ c #C7CDD6", +"{@ c #585858", +"]@ c #202020", +"^@ c #F2F2F2", +"/@ c #7C7C7C", +"(@ c #6C6C6C", +"_@ c #D1D1D1", +":@ c #060606", +"<@ c #919191", +"[@ c #E3E3E3", +"}@ c #616161", +"|@ c #FDFDFD", +"1@ c #C2C2C2", +"2@ c #BBBBBB", +"3@ c #FCFCFC", +"4@ c #E8E8E8", +"5@ c #474747", +"6@ c #828FA4", +"7@ c #86919A", +"8@ c #FA913D", +"9@ c #A56028", +"0@ c #D0CA7A", +"a@ c #A8B2C0", +"b@ c #EAEAEA", +"c@ c #8B8B8B", +"d@ c #909090", +"e@ c #484848", +"f@ c #0E0E0E", +"g@ c #E4E4E4", +"h@ c #595959", +"i@ c #818181", +"j@ c #626262", +"k@ c #A8A8A8", +"l@ c #B0B0B0", +"m@ c #D4D9E0", +"n@ c #FBA548", +"o@ c #E18336", +"p@ c #FBAB4B", +"q@ c #8D9796", +"r@ c #8390A5", +"s@ c #F5F6F7", +"t@ c #BDBDBD", +"u@ c #121212", +"v@ c #EBEBEB", +"w@ c #959595", +"x@ c #858585", +"y@ c #111111", +"z@ c #505050", +"A@ c #464646", +"B@ c #DDDDDD", +"C@ c #EFEFEF", +"D@ c #6F6F6F", +"E@ c #A5AEBD", +"F@ c #DBD276", +"G@ c #B7692B", +"H@ c #C8CED7", +"I@ c #D0D0D0", +"J@ c #A3A3A3", +"K@ c #F4F4F4", +"L@ c #A2A2A2", +"M@ c #242424", +"N@ c #515151", +"O@ c #434343", +"P@ c #CDCDCD", +"Q@ c #AFAFAF", +"R@ c #F0F1F4", +"S@ c #7E8CA1", +"T@ c #A0A68E", +"U@ c #FAA648", +"V@ c #FA913C", +"W@ c #F8B954", +"X@ c #919A94", +"Y@ c #8A96A9", +"Z@ c #FCFCFD", +"`@ c #3E3E3E", +" # c #727272", +".# c #272727", +"+# c #151515", +"@# c #6D6D6D", +"## c #898989", +"$# c #0A0A0A", +"%# c #E7E7E7", +"&# c #A1A1A1", +"*# c #DCDCDC", +"=# c #B2BAC7", +"-# c #E0D673", +";# c #F2DD68", +"># c #F3D865", +",# c #FC9D44", +"'# c #FE933E", +")# c #864C1F", +"!# c #F9B651", +"~# c #C5CBD5", +"{# c #030303", +"]# c #FAFAFA", +"^# c #BABABA", +"/# c #A6A6A6", +"(# c #131313", +"_# c #101010", +":# c #666666", +"<# c #D8D8D8", +"[# c #DFDFDF", +"}# c #191919", +"|# c #525252", +"1# c #FFFAFA", +"2# c #FFE4E3", +"3# c #FFDDDB", +"4# c #FFE3E2", +"5# c #FFF2F2", +"6# c #7C899F", +"7# c #B3B486", +"8# c #FD9C43", +"9# c #E78738", +"0# c #683B19", +"a# c #FBA146", +"b# c #FAAF4D", +"c# c #AFB188", +"d# c #090909", +"e# c #797979", +"f# c #888888", +"g# c #141414", +"h# c #BCBCBC", +"i# c #0C0C0C", +"j# c #343434", +"k# c #D5D5D5", +"l# c #868686", +"m# c #FFE9E8", +"n# c #FFC4C1", +"o# c #FFBFBC", +"p# c #FFD7D5", +"q# c #FFFDFD", +"r# c #9FA9B9", +"s# c #879398", +"t# c #F0E36D", +"u# c #F1E06A", +"v# c #CD7732", +"w# c #EE8939", +"x# c #FE953D", +"y# c #8D9696", +"z# c #A2ABBB", +"A# c #FFF2F1", +"B# c #FFE0DE", +"C# c #FFDEDC", +"D# c #FFE7E6", +"E# c #6A6A6A", +"F# c #080808", +"G# c #838383", +"H# c #FEF6F6", +"I# c #FBC5C5", +"J# c #F9ADAD", +"K# c #F9B0B0", +"L# c #FBCDCD", +"M# c #FFFCFC", +"N# c #7A7A7A", +"O# c #F5F5F5", +"P# c #FFC0BD", +"Q# c #FFDCDA", +"R# c #CED4DC", +"S# c #DCD374", +"T# c #F6C75B", +"U# c #7B5438", +"V# c #AD642A", +"W# c #E4DA71", +"X# c #C6CCD5", +"Y# c #878787", +"Z# c #646464", +"`# c #FCD4D4", +" $ c #F35757", +".$ c #ED0707", +"+$ c #ED0000", +"@$ c #EE0F0F", +"#$ c #F56D6D", +"$$ c #FDE8E8", +"%$ c #5B5B5B", +"&$ c #FFC4C2", +"*$ c #F2F3F5", +"=$ c #FC9A43", +"-$ c #E29252", +";$ c #788498", +">$ c #373F48", +",$ c #F59243", +"'$ c #FBA74A", +")$ c #CCC87B", +"!$ c #E8EAEE", +"~$ c #FFF3F2", +"{$ c #F89C9C", +"]$ c #EE1414", +"^$ c #FBC0C0", +"/$ c #E9E9E9", +"($ c #B2B2B2", +"_$ c #FFDBD9", +":$ c #FFC3C0", +"<$ c #8F9BAE", +"[$ c #A4A88D", +"}$ c #F4D161", +"|$ c #F2DB67", +"1$ c #FE9942", +"2$ c #FA9849", +"3$ c #8D8C93", +"4$ c #77849A", +"5$ c #A68B7E", +"6$ c #FAAA4B", +"7$ c #B9B983", +"8$ c #F9B1B1", +"9$ c #ED0101", +"0$ c #EE0A0A", +"a$ c #FCD9D9", +"b$ c #FFEFEE", +"c$ c #FFD8D6", +"d$ c #A7B0BF", +"e$ c #929A93", +"f$ c #FE9A43", +"g$ c #FFB477", +"h$ c #FFF3E9", +"i$ c #D7DCE2", +"j$ c #6E7B90", +"k$ c #C2A18C", +"l$ c #FF9946", +"m$ c #FCA64A", +"n$ c #FBA94A", +"o$ c #FE9C44", +"p$ c #AE947C", +"q$ c #8E9AAD", +"r$ c #EF2020", +"s$ c #F34E4E", +"t$ c #FFE1E0", +"u$ c #FFCFCD", +"v$ c #FFFBFB", +"w$ c #BBC2CE", +"x$ c #838B98", +"y$ c #FF9641", +"z$ c #FFD5B4", +"A$ c #FFD4B1", +"B$ c #FFD9BB", +"C$ c #FFF2E7", +"D$ c #C1C8D2", +"E$ c #434A56", +"F$ c #FFF7F0", +"G$ c #FFCEA8", +"H$ c #FFB57B", +"I$ c #FFB173", +"J$ c #FFB77D", +"K$ c #A78C7E", +"L$ c #FFD9D7", +"M$ c #FFF0F0", +"N$ c #FBC2C2", +"O$ c #ED0303", +"P$ c #FEF0F0", +"Q$ c #E1E1E1", +"R$ c #FFF5F4", +"S$ c #FFDBDA", +"T$ c #FFD4D2", +"U$ c #FFEAE9", +"V$ c #C6CCD6", +"W$ c #FED5B5", +"X$ c #8B97AA", +"Y$ c #697589", +"Z$ c #A09594", +"`$ c #A0AABA", +" % c #F9A5A5", +".% c #CACACA", +"+% c #9D9C9C", +"@% c #CDD3DB", +"#% c #BAC1CC", +"$% c #79879C", +"%% c #E3E6EB", +"&% c #A0A9B8", +"*% c #FABBBB", +"=% c #FEEBEB", +"-% c #AFAEAE", +";% c #393838", +">% c #F7F7F7", +",% c #D9DDE4", +"'% c #FAFBFC", +")% c #FEF7F7", +"!% c #EE1111", +"~% c #F13A3A", +"{% c #A1A0A0", +"]% c #484747", +"^% c #838282", +"/% c #E6E9ED", +"(% c #3A424C", +"_% c #FEFFFF", +":% c #AFB7C4", +"<% c #333232", +"[% c #F89696", +"}% c #FBC4C4", +"|% c #060404", +"1% c #535151", +"2% c #BCC3CE", +"3% c #E0E3E8", +"4% c #2D333B", +"5% c #F5F6F8", +"6% c #747474", +"7% c #262525", +"8% c #BEBEBE", +"9% c #F56F6F", +"0% c #F89D9D", +"a% c #B4B4B4", +"b% c #301B1A", +"c% c #A34742", +"d% c #171515", +"e% c #D2D2D2", +"f% c #95A0B2", +"g% c #CBD0D9", +"h% c #D7DBE2", +"i% c #D6DAE1", +"j% c #E9EBEF", +"k% c #717171", +"l% c #8F8E8E", +"m% c #F9A8A8", +"n% c #F02626", +"o% c #5C5B5B", +"p% c #3A1C1B", +"q% c #E3645D", +"r% c #FF7068", +"s% c #542523", +"t% c #CCCCCC", +"u% c #FBFBFB", +"v% c #919DAF", +"w% c #A9B2C1", +"x% c #A0AAB9", +"y% c #727F93", +"z% c #F1F3F5", +"A% c #B1B0B0", +"B% c #FBCACA", +"C% c #F79292", +"D% c #F67A7A", +"E% c #F67D7D", +"F% c #F89A9A", +"G% c #FCD8D8", +"H% c #7E7C7C", +"I% c #292424", +"J% c #7A3632", +"K% c #F86D65", +"L% c #A44842", +"M% c #A6A5A5", +"N% c #C5CBD4", +"O% c #E3E6EA", +"P% c #576171", +"Q% c #79889D", +"R% c #E2E5EA", +"S% c #A4AEBD", +"T% c #313030", +"U% c #2C1514", +"V% c #221818", +"W% c #716F6F", +"X% c #BDBCBC", +"Y% c #331F1E", +"Z% c #7C3733", +"`% c #E2635C", +" & c #CE5A54", +".& c #999898", +"+& c #D1D5DD", +"@& c #EEF0F3", +"#& c #B4BCC9", +"$& c #863A36", +"%& c #FB6E66", +"&& c #BF544E", +"*& c #793632", +"=& c #512926", +"-& c #4B3736", +";& c #5F5E5E", +">& c #7F7E7E", +",& c #8E8D8D", +"'& c #9A9999", +")& c #979696", +"!& c #848383", +"~& c #5D5D5D", +"{& c #41302F", +"]& c #542623", +"^& c #873B37", +"/& c #CB5953", +"(& c #DA6059", +"_& c #A09F9F", +":& c #A2ACBB", +"<& c #FDFFFF", +"[& c #F1F2F5", +"}& c #96A1B3", +"|& c #4C5462", +"1& c #DADEE4", +"2& c #E4E7EC", +"3& c #C9CED7", +"4& c #72332F", +"5& c #F66C64", +"6& c #DD615A", +"7& c #D75E58", +"8& c #CC5A53", +"9& c #D45D56", +"0& c #F16A62", +"a& c #CA5952", +"b& c #B7B6B6", +"c& c #D2D6DE", +"d& c #ECEEF1", +"e& c #808EA3", +"f& c #5F6A7B", +"g& c #97A2B3", +"h& c #D0D5DD", +"i& c #C0C7D1", +"j& c #808DA2", +"k& c #8D99AC", +"l& c #783532", +"m& c #AC4B46", +"n& c #7A879E", +"o& c #576170", +"p& c #CCD2DA", +"q& c #81433F", +"r& c #F2F4F6", +"s& c #697487", +"t& c #515B6A", +"u& c #748296", +"v& c #7A879D", +"w& c #6B778A", +"x& c #6D7A8E", +"y& c #6E7B8F", +"z& c #758399", +"A& c #8592A6", +"B& c #222121", +"C& c #AB4B45", +"D& c #79605E", +"E& c #A7B1BF", +"F& c #262B32", +"G& c #2F353D", +"H& c #49515E", +"I& c #545C6B", +"J& c #505968", +"K& c #414A56", +"L& c #3E4550", +"M& c #050404", +"N& c #D55E57", +"O& c #FA6A63", +"P& c #F4645C", +"Q& c #F5655D", +"R& c #FC6C65", +"S& c #E9665F", +"T& c #999797", +"U& c #D5DAE1", +"V& c #4B5461", +"W& c #5B6475", +"X& c #0F0706", +"Y& c #FD6F67", +"Z& c #DA473F", +"`& c #BD271F", +" * c #B01911", +".* c #B72118", +"+* c #D34037", +"@* c #F3635B", +"#* c #97433E", +"$* c #EEF0F2", +"%* c #8390A4", +"&* c #707D92", +"** c #090A0C", +"=* c #210B0D", +"-* c #6E7A8D", +";* c #2F2E2E", +">* c #6C302D", +",* c #FE7068", +"'* c #EF5E56", +")* c #BA241C", +"!* c #B21C13", +"~* c #DC4A41", +"{* c #C0544E", +"]* c #716160", +"^* c #762A31", +"/* c #9C0000", +"(* c #6F0000", +"_* c #0D0000", +":* c #180000", +"<* c #A80000", +"[* c #CE2025", +"}* c #7B859B", +"|* c #4E2320", +"1* c #ED6861", +"2* c #F05F57", +"3* c #B31D14", +"4* c #D9463D", +"5* c #F26A63", +"6* c #733532", +"7* c #908E8E", +"8* c #FAFAFB", +"9* c #9AA4B5", +"0* c #AC4B57", +"a* c #D70000", +"b* c #550000", +"c* c #2E0000", +"d* c #D90000", +"e* c #C52F37", +"f* c #7B879D", +"g* c #636363", +"h* c #180B0A", +"i* c #9E4540", +"j* c #FC6F67", +"k* c #FE6F67", +"l* c #BE2920", +"m* c #B31C14", +"n* c #A52A23", +"o* c #4F3D3C", +"p* c #A15A68", +"q* c #EC0101", +"r* c #7D0000", +"s* c #950000", +"t* c #BA3C46", +"u* c #7E8BA1", +"v* c #BBBABA", +"w* c #2A1311", +"x* c #903F3A", +"y* c #D9544E", +"z* c #B21B13", +"A* c #B32720", +"B* c #872621", +"C* c #513C3A", +"D* c #B2B1B1", +"E* c #976575", +"F* c #EA0405", +"G* c #C50000", +"H* c #A10000", +"I* c #C43138", +"J* c #7E849A", +"K* c #F0F2F4", +"L* c #B8B7B7", +"M* c #0D0C0C", +"N* c #361211", +"O* c #74241F", +"P* c #952B25", +"Q* c #A32C26", +"R* c #A62C26", +"S* c #A02924", +"T* c #982822", +"U* c #872722", +"V* c #5A1A17", +"W* c #2D2020", +"X* c #CFCFCF", +"Y* c #BFC6D0", +"Z* c #A45664", +"`* c #E90404", +" = c #C60000", +".= c #9D0000", +"+= c #D31E23", +"@= c #87798C", +"#= c #9F9E9E", +"$= c #807F7F", +"%= c #676767", +"&= c #ADACAC", +"*= c #D6DBE1", +"== c #7D859B", +"-= c #B93D47", +";= c #C10000", +">= c #970000", +",= c #E40A0C", +"'= c #9D5E6D", +")= c #CCD1DA", +"!= c #8A7689", +"~= c #B80000", +"{= c #870000", +"]= c #C92B32", +"^= c #86778B", +"/= c #9BA6B6", +"(= c #E1E4E9", +"_= c #FBFBFC", +":= c #EBEDF1", +"<= c #7D8499", +"[= c #B34550", +"}= c #E90506", +"|= c #720000", +"1= c #C0343C", +"2= c #7B7183", +"3= c #9BA5B6", +"4= c #A6B0BE", +"5= c #909CAE", +"6= c #827F93", +"7= c #B04753", +"8= c #E20D0F", +"9= c #8A0000", +"0= c #600000", +"a= c #9B1F24", +"b= c #52525F", +"c= c #707D91", +"d= c #7A849A", +"e= c #956271", +"f= c #730000", +"g= c #520000", +"h= c #E00000", +"i= c #6A0101", +"j= c #15171B", +"k= c #A13740", +"l= c #AD4C58", +"m= c #916C7E", +"n= c #8C7385", +"o= c #8A7588", +"p= c #916D7E", +"q= c #986474", +"r= c #5E525F", +"s= c #5A3F4A", +"t= c #BE2228", +"u= c #650000", +"v= c #4A0000", +"w= c #940000", +"x= c #B20000", +"y= c #2B0000", +"z= c #540000", +"A= c #5D0000", +"B= c #430000", +"C= c #820000", +"D= c #E20000", +"E= c #060000", +"F= c #3B0000", +"G= c #280000", +"H= c #EB0000", +"I= c #4C0000", +"J= c #6A0000", +"K= c #780000", +"L= c #CD0000", +"M= c #110000", +"N= c #E80000", +"O= c #090000", +"P= c #E50000", +"Q= c #E90000", +"R= c #690000", +"S= c #640000", +"T= c #D60000", +"U= c #330000", +"V= c #CE0000", +"W= c #140000", +"X= c #8D0000", +"Y= c #CC0000", +"Z= c #340000", +"`= c #030000", +" - c #1C0000", +".- c #0A0000", +"+- c #800000", +"@- c #9A0000", +"#- c #0B0000", +"$- c #AF0000", +"%- c #2A0000", +"&- c #A60000", +"*- c #EC0000", +"=- c #B60000", +"-- c #0E0000", +";- c #530000", +">- c #A20000", +",- c #D30000", +"'- c #E70000", +")- c #B40000", +"!- c #6C0000", +"~- c #130000", +"{- c #240000", +"]- c #7A0000", +"^- c #EA0000", +"/- c #B70000", +"(- c #5E0000", +"_- c #040000", +":- c #070000", +"<- c #100000", +"[- c #160000", +"}- c #480000", +"|- c #590000", +"1- c #5F0000", +"2- c #510000", +"3- c #360000", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" . + + + @ ", +" # . $ % @ # + & * = - ; + ", +" @ > , ' ) ! + + ~ { { { { { ] + ", +" $ ^ / { { { ( _ + : : : : : < @ + + . . [ { { { { { { } | + + + + @ < ", +" . 1 $ . < > ( { { { { { 2 3 # 4 5 : : : : : : : : : 6 7 8 9 0 a b $ c { { { { { { { d e f c g h i . ", +" j + k ) l ; + ] { { { { { { { m n : : : : : : : : : : : : : : : : : : : : : : : o p q { { { { { { { { { { { { { r s t ", +" # $ u } { { { r v { { { { { { w x : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : y z { { { { { { { { { { { { { A + ", +" + B { { { { { { { { { { { { C D : : : : : E F G H I : : : : : : : J K L M N O P : : : : : : : : : : : : : : : : Q R { { { { { { { { { { { { { S T ", +" @ U V { { { { { { { { { { { W X : : : : Y Z { { { ` . ...: : : +.@.M M M M M #.: : : : : : $.%.&.*.=.-.;.: : : : D >.{ { { { { { { { { { { } 1 + + . ", +" + + ,.V { { { { { { { { { { '.).: : : : !.q { { { ~.{.].M M M ^./.+.(._.:.<.[.}.|.M 1.: 2.3. .4.5.6.{ { { { 7.8.: : : : 9.0.{ { { { { { { { { { { ~ a.b.c.+ d. ", +" e.@ f.g.h.} { { { { { { { { { i.j.: : : : k.{ { { { l.m.M M M M n.o.p.q.r.r.r.r.r.r.r.s.t.u.v.w.M M M x.y.z.{ { { { A.: : : : B.{ { { { { { { { { { { { { { { C.+ D. ", +" . E.r { { { { { { { { { { { { { F.: : : : A.{ { { G.H.I.M M J.K.L.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.M.N.O.M M M P.Q.{ { { { R.: : : S.T.{ { { { { { { { { { { { { { { U.. ", +" V.W.} { { { { { { { { { { { { { X.Y.: : : Z.~.{ { `. +M M .+++M.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.@+#+$+M M %+&+{ { { *+o : : : !.{ { { { { { { { { { { { { { { A + ", +" + g { { { { { { { { { { { { { { { q =+-+;+>+{ { ,+'+M M )+!+r.~+{+r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.]+^+/+M M (+z.{ { _+: : : o :+{ { { { { { { { { { { { { { <++ ", +" + ( { { { { { { { { { { { { { { { { { [+}+{ { |+1+M 2+3+4+r.r.5+6+r.r.r.r.r.r.r.r.r.r.r.r.r.r.7+8+r.r.r.r.r.r.9+$+M M 0+z.{ 0.S.: : Q a+{ { { { { { { { { { { { { { b++ ", +" + c+{ { { { { { { { { { { { { { { { { { { { d+1+M e+f+r.{+g+h+i+j+k+r.r.r.r.r.r.r.r.r.r.r.r.r.l+: m+n+r.r.r.r.r.o+}.M M p+~.{ B.q+r+s+{ { { { { { { { { { { { { { { ] t+ ", +" + u+{ { { { { { { { { { { { { { { { { { { v+'+M w+x+r.y+z+: A+B+C+: D+E+r.r.r.r.r.r.r.r.r.F+G+H+: : i+I+J+r.r.r.r.K+L+M M M+{ { { { { { { { { { { { { { { { { { { N+O+P+ ", +" # Q+r { { { { { { { { { { { { { { { { { R+S+M w.T+r.U+V+W+X+r.r.r.Y+Z+`+ @r.r.r.r.r.r.r..@+@@@#@$@%@m+Z+&@*@r.r.r.r.M.=@M 1+-@{ { { { { { { { { { { { { { { { ;@>@+ ,@ ", +" @ '@)@} { { { { { { { { { { { { { { { !@M M ~@r.r.{@]@E+r.^@/@(@k+_@:@<@r.r.r.r.r.r.[@i+}@|@1@2@3@r.4@&@5@r.r.r.r.r.!+6@M 7@R+{ { { { { { { { { { { { { { { , 8@9@ ", +" $ + U.{ { { { { { { { { { { { { { 0@M M a@r.b@c@+@d@r.r.e@: : f@g@h@z+r.r.r.r.r.r.i@f@7+j@: : 5@|@r.k@: l@r.r.r.r.r.m@M M (+{ { { { { { { { { { { { { { { n@o@ ", +" @ p@{ { { { { { { { { { { { { ~.q@M r@s@r.t@u@: 2@r.v@: : : : w@x@y@r.r.r.r.r.r.z@A@B@: : : : g+r.C@: : D@r.r.r.r.r.E@M I.F@{ { { { { { { { { { { { { r V.G@ ", +" # U } { { { { { { { { { { { { d+M M H@r.r.r.I@: J@r.K@+@: : : L@h+M@r.r.r.r.r.r.N@O@P@: : : : Q@r.J+: h@{+r.r.r.r.r.R@S@M T@{ { { { { { { { { { { { 2 U@V@ ", +" + W@{ { { { { { { { { { { { X@M Y@Z@r.r.r.r.W+`@{+r. #: : .#%@+#@#r.r.r.r.r.r.##$#%#.#: : +#$@r.&#: *#r.r.r.r.r.r.r.=#M 1+-#{ { { { { { { { ;#>#N+,#'#)# ", +" D.+ !#2 { { { { { { { { { F@M M ~#r.r.r.r.r.g+{#@#]#r.^#/#U+O@(#*@r.r.r.r.r.r.J+_#D+U+@#:#<#r.[#}#|#r.r.1#2#3#4#5#r.R@6#M 7#{ { { { { { { { 8#+ + 9#0# ", +" . '#V.a#b#{ { { { { { { c#M .+s@r.r.r.r.r.r.L@d#.#e#f#l+g#Z+F+r.r.r.r.r.r.r.r.h#i#j#k@B@k#l#(#A+$@r.m#n#o#o#o#o#p#q#r#M s#t#{ { { { { { u#e.v# ", +" w#x#{ { { { { { { y#M z#r.r.r.A#B#C#D#1#[#E#y@F#`+G#E+r.H#I#J#K#L#M#r.r.r.k#N@:@: : u@N#O#r.5#P#o#o#o#o#o#o#Q#R#M M S#{ { { { { { T#+ U# ", +" V#+ = { { { { { W#M M X#r.q#p#o#o#o#o#n#m#r.Y#Z#r.r.`# $.$+$+$+$+$@$#$$$r.r.r.7+%$&@n+r.r.r.Q#o#o#o#o#o#o#o#&$*$L M &+{ { { { { r =$-$;$>$ ", +" ,$'$} { { { { )$M M !$r.Q#o#o#o#o#o#o#P#~$n+*@r.{$.$+$+$+$+$+$+$+$+$]$^$r.r.r./$($r.r.r.r._$o#o#o#o#o#o#o#:$r.<$M [$b+}$<+|$~ 1$2$3$M 4$ ", +" N 5$# 6$/ { { { 7$M .+@+r.&$o#o#o#o#o#o#o#Q#r.r.8$9$+$+$+$+$+$+$+$+$+$+$0$a$r.r.r.r.r.r.r.r.b$o#o#o#o#o#o#o#c$r.d$M e$f$+ + + + g$h$i$2+M j$ ", +" M M k$l$$ m$n$o$p$M q$r.r.n#o#o#o#o#o#o#o#_$r.M#r$+$+$+$+$+$+$+$+$+$+$+$+$s$r.r.r.r.r.r.r.r.r.t$P#o#o#o#o#u$v$r.w$M x$y$z$A$B$C$r.r.r.D$M M E$ ", +" M M e+M.F$G$H$I$J$K$M :.r.r.L$o#o#o#o#o#o#o#M$r.N$+$+$+$+$+$+$+$+$+$+$+$+$+$O$P$r.r.r.r.O#Q$3@r.r.R$S$T$p#U$r.r.r.V$M I.W$r.r.r.r.r.r.r.Z@X$M Y$ ", +" M M o.r.r.r.r.r.r.Z$M `$r.r.v$u$o#o#o#o#P#t$r.r. %+$+$+$+$+$+$+$+$+$+$+$+$+$+$`#r.r.r.3@.%+%5@}@C@r.r.r.r.r.r.r.r.@%M M K+r.r.r.r.r.r.r.r.#%M $% ", +" M M %%r.r.r.r.r.r.&%M `$r.r.r.r.U$p#T$S$R$r.r.r.*%+$+$+$+$+$+$+$+$+$+$+$+$+$+$=%r.r.r.r.r.r.r.-%;%>%r.r.r.r.r.r.r.#+M M K+r.r.r.r.r.r.r.r.,%M M ", +" M M '%r.r.r.r.r.r.d$M :.r.r.r.r.r.r.r.r.r.r.r.r.)%!%+$+$+$+$+$+$+$+$+$+$+$+$~%r.r.r.r.r.r.r.r.{%]%^%r.r.r.r.r.r.r.V$M L {+r.r.r.r.r.r.r.r./%M M (% ", +" M 2+_%r.r.r.r.r.r.:%M <$r.r.r.r.r.r.>%8+<%y+r.r.r.[%+$+$+$+$+$+$+$+$+$+$+$O$}%r.r.r.r.r.r.r.k#|%1%E#3@r.r.r.r.r.r.2%M 6@r.r.r.r.r.r.r.r.r.3%M M 4% ", +" M M 5%r.r.r.r.r.r.D$M w.@+r.r.r.r.r.6%7%8%r.r.r.r.r.9%+$+$+$+$+$+$+$+$+$O$0%r.r.r.r.r.r.r.a%b%c%d%Q$e%r.r.r.r.r.r.d$M f%r.r.r.r.r.r.r.r.r.g%M M ", +" M M h%r.r.r.r.r.r.i%M M j%r.r.r.r.7+N@E+k%l%]#r.r.r.r.m%n%+$+$+$+$+$+$~%I#r.r.r.r.r.r.O#o%p%q%r%s%t%u%r.r.r.r.r.r.v%M w%r.r.r.r.r.r.r.r.r.x%M y% ", +" M M d$r.r.r.r.r.r.z%M M H@r.r.r.r.v@ @r.{+e#7%A%{+r.r.r.q#B%C%D%E%F%G%r.r.r.r.r.r. @H%I%J%K%r%r%L%M%r.r.r.r.r.r.M.L M N%r.r.r.r.r.r.r.r.O%L M P% ", +" Q%M /+R%r.r.r.r.r.r.<$M S%r.r.r.r.r.r.r.r.r.T%U%V%W%Q$r.r.r.r.r.r.r.r.r.r.r.7+X%:#Y%Z%`%r%r%r%r% &.&r.r.r.r.r.r.+&M M !$r.r.r.r.r.r.r.]+<$M 4$ ", +" M M $+@&r.r.r.r.r.#&M S@K+r.r.r.r.r.r.r.r.5+$&%&&&*&=&-&;&>&,&'&)&!& #~&{&]&^&/&r%r%r%r%r%r%r%(&_&r.r.r.r.r.r.:&M 6@<&r.r.r.r.r.r.[&}&M M |& ", +" M M |.1&r.r.r.r.2&M M 3&r.r.r.r.r.r.r.r.Z#4&r%r%r%r%r%5&6&7&8&8&9&q%0&r%r%r%r%r%r%r%r%r%r%r%a&b&r.r.r.r.r.o+w.M M f%c&'%r.r.d&#%e&M M f& ", +" M M M g&3+h&h&i&j&M k&|@r.r.r.r.r.r.r.{@l&r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%m&g@r.r.r.r.r.++M n&M M M M 6@S@M M M N o& ", +" M M M M M M M M M M p&r.r.r.r.r.r.r.A@$&r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%q&r.r.r.r.r.r&j&M s&t&u&M M M M M v&w&4% ", +" x&N M M M y&z&M A&5%r.r.r.r.r.r.B&C&r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%r%D&r.r.r.r.r.E&M M F& G&H&I&J&K& ", +" L&M M w%r.r.r.r.r.K@M&N&r%r%r%r%r%r%r%r%r%r%r%O&P&Q&R&r%r%r%r%r%r%r%r%S&T&r.r.r.r.U&M M V&: : : : ", +" : : : W&M M g%r.r.r.r.g+X&Y&r%r%r%r%r%r%r%r%R&Z&`& * * * *.*+*@*r%r%r%r%r%#*g@r.r.r.$*%*M &***: : : : : ", +" : : : : : =*-*M S@x+r.r.r.E+;*>*,*r%r%r%r%r%r%'*)* * * * * * * * *!*~*r%r%r%{*]*r.r.r.K+_.M v&^*/*(*_*: : : ", +" : : : :*<*+$[*}*M 6@L.r.r.r.*@<%|*1*r%r%r%r%2*3* * * * * * * * * * * *4*5*6*7*{+r.r.8*9*M M 0*+$+$+$a*b*: : ", +" : : c*d*+$+$+$e*f*M j&T+r.r.r.K@g*h*i*j*r%k*l* * * * * * * * * * * *m*n*o*X+r.r.r.[&v%M M p*q*+$+$+$+$+$r*: : ", +" : : s*+$+$+$+$+$t*f*M u*H@_%r.r.r.v*<%w*x*y* * * * * * * * * *z*A*B*C*D*{+r.r.r.2&k&M M E*F*+$+$+$+$+$+$G*: : ", +" : : H*+$+$+$+$+$+$I*J*M M :&K*r.r.r.|@L*N@M*N*O*P*Q*R*S*T*U*V*W*D@X*r.r.r.r.Z@Y*.+M M Z*`*+$+$+$+$+$+$+$ =: : ", +" : : .=+$+$+$+$+$+$+$+=@=M M j&i&s.r.r.r.r. @F+#=$=8+%=k%,&&=*#{+r.r.r.r._%*==@M M ==-=+$+$+$+$+$+$+$+$+$;=: : ", +" : : >=+$+$+$+$+$+$+$+$,='=M M M %*o.$*r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.]+)=v%M M M !=+=+$+$+$+$+$+$+$+$+$+$~=: : ", +" : : {=+$+$+$+$+$+$+$+$+$+$]=^=M M M L /=D$(=_=r.r.r.r.r.r.r.{+:=)=w%e&M M M <=[=}=+$+$+$+$+$+$+$+$+$+$+$H*: : ", +" : : |=+$+$+$+$+$+$+$+$+$+$+$`*1=2=M M M M M L Y@3=:&4=E@<.5=u*M M M M M 6=7=8=+$+$+$+$+$+$+$+$+$+$+$+$+$9=: : ", +" : : 0=+$+$+$+$+$+$+$+$+$+$+$+$+$+$a=b=c=M M M M M M M M M M M M M d=e=e*}=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$f=: : ", +" : : g=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$h=i=j=k=l='=m=n=!=o=p=q=r=s=t=F*+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$u=: : ", +" : : v=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$w=: x=+$+$+$+$+$+$+$+$y=z=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$A=: : ", +" : : B=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$w=: C=+$+$+$+$+$+$+$D=E=z=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$b*: : ", +" : : F=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$w=: G=H=+$+$+$+$+$+$9=: z=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$I=: : ", +" : : c*+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$J=: : K=+$+$+$+$+$L=M=: F=N=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$F=: : ", +" : : O=P=+$+$+$+$+$+$+$+$+$+$+$+$+$Q=R=: : : : S=T=+$Q=.=:*: : : U=V=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$Q=W=: : ", +" : : X=+$+$+$+$+$+$+$+$+$+$+$+$Y=Z=: : : : : : `= -_*: : : : : : .-+-N=+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$@-: : : ", +" : : #-$-+$+$+$+$+$+$+$+$+$P=r*#-: : : : : : : : : : : : : : : : : %-&-*-+$+$+$+$+$+$+$+$+$+$+$+$=---: : ", +" : : `=;->-,-*-+$+$'-)-!-~-: : : : : : : : {-]- =+$+$+$+$+$+$+$^-/-(-_-: : : ", +" : : : : : :-<---: : : : : : : : : : : : [-}-|-1-1-2-3-_*: : : : : ", +" : : : : : : : : : : : : : : : : : : : : : : : : : ", +" : : : : : : : : : : : : : : ", +" : : : : : ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "} +export atom clown = xpm_to_pixbuf(clown_xpm) diff --git a/eugtk/examples/resources/colorcode/README.html b/eugtk/examples/resources/colorcode/README.html new file mode 100644 index 0000000..1631aa9 --- /dev/null +++ b/eugtk/examples/resources/colorcode/README.html @@ -0,0 +1,20 @@ + + +Color Codes + + + +RCC + +
    +

    Resistor Color Codes

    +
    + +

    + The images in this folder were created by me, using Gimp. + No copyright applies... +

    + + + + diff --git a/eugtk/examples/resources/colorcode/bar.jpg b/eugtk/examples/resources/colorcode/bar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..637f622309fb85a076067a065d846144c23de7a0 GIT binary patch literal 613 zcmex=LJ%Z3brs zR%R9!7G_o;!OF_Y#?HgR4g~z%+?+gu{6a#4{DOkQVlv{wB2uD)f)a`nQnIr0^76vs zN-9cnDl&5Nav(z(fm+$w*!eg(_~b+cMdU~Z{|_(-axkPYNHQ}jF)#@-G7B>PKf)lz zz{tQ1@&*F1vU9L8vH<1G1b~t(96YS7a7jicW2_&bW3|mth%#c+jov0^F7a&Sx)yA zzC3qgL8mz9MVG_~Aeu2#QT58}IMv(98B3a~V%k*?zPvSkQu@rQjz_|q?kVa%Qkb_j z;p=K))uSK$awbjr%cFQJ@L~84HKEjvZGxxP7iK?snyoi+^3*lE{1ykto<9CMBGh=Y zHrt<7-#JfCZLSNg?v7U1jx6b!vo`gTsp<9X#N}yfqN2jWTwRk7TuNPl;DADg|Nl(@ DmkO%3 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/colorcode/bar0.jpg b/eugtk/examples/resources/colorcode/bar0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d0869514538f12f11da4149b5fc23c19fc154186 GIT binary patch literal 644 zcmex=LJ%Z3brs z4mLJ+HdYRHc6Lrq4lW)MULJ049!Vi#ei2zIc{y1r85so?J#_^o9c39A4RcK$149!N z6M1z@TMHu_J!2CikRgnmoSZz|JQBRT5=M$Libf=Z{|6WZIT%tHB$*kN7?=bZnFSgD zA7PLH`2pw)B*4zf#sQSE5MW?rVq)RoVTa2yGBdFX3W)@PivG+i_#0i8>vVR-)m8TKHI+D@zSuiUDblQ$DTK1 zQE9Sk{#x``J4H5n?#VsT3a{?G^L?HR qQ*(HE@Zz0WM<+|~YF0BZd}dxcSQdB9~*STfZAzX<@S9L=Ku literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/colorcode/bar1.jpg b/eugtk/examples/resources/colorcode/bar1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..02a4f2212809c78ec69faecdba872bbde68c72d3 GIT binary patch literal 583 zcmex=LJ%Z3brs z4mLJ+HdYRHc6Lrq4lW)MULJ049!Vi#ei2zIc{y1r85so?J#_^o9c39A4RcK$149!N z6M1z@TMHu_J!2CikRgnmoSZz|JQBRT5=M$Libf=Z{|6WZIT%tHB$*kN7?=bZnFSgD zA7PLL`2pk&1Yl)nV_^bHnF}y5GBL4mv2nxY7@3$^1x11uvIq%_iirn?Bwk`;51u&r zqN1{)v6FMrq>Tp;0X0ehjblbOk%57cg%xC^gdnqWIYy!T!IEY~5M@4t9sZ18lm*2Q=C)^A$3b8YhK95%zXo!?&TeYk(lbfewf z)O*rDkDXMPjSNf+WY=u6%=mFt&&lv|NvYJPA2aUVS@logbk?t5s|!T)SYslp-E?f1 z6v`I3?zG97$MI$PGp#!8URj01 zVY{TShGu?IyqD2*V+ROdJE`V&YR9a{))sS5KGW`b^Qc^X=53f{@}#oRjcF&!0zh~f Ww^!%PO|nxYfmpKv6q@$`Zvp^E2CLJ%Z3brs z4mLJ+HdYRHc6Lrq4lW)MULJ049!Vi#ei2zIc{y1r85so?J#_^o9c39A4RcK$149!N z6M1z@TMHu_J!2CikRgnmoSZz|JQBRT5=M$Libf=Z{|6WZIT%tHB$*kN7?=bZnFSgD zA7PMYU}RusU}j`M09H13MkZz!prn}q10xe7I|n-_Toxq5Dkvfvl*lF)7@Rb5;YD^K z@sOg)mxL8n9G#OJCoKZ%lLVRx3K}H9!pg)9vQJi!fr$yoM3Q1+WM&Z*5;0c(e~Wt#LJ%Z3brs z4mLJ+HdYRHc6Lrq4lW)MULJ049!Vi#ei2zIc{y1r85so?J#_^o9c39A4RcK$149!N z6M1z@TMHu_J!2CikRgnmoSZz|JQBRT5=M$Libf=Z{|6WZIT%tHB$*kN7?=bZnFSgD zA7PLL`2pk&1Yl!jXJi6O84EBlGBL4ova!SE7@3$^Sp-D_gV=;b#T0`R7hV*144F9j z61%XHVNv5Gka-Z}kj-OZW@TanO34Z`FflVQBijWuPmo1OgthViEe0NDMxe8p1sUua z-ai1^$b9gZ%GSPFbFb7tt(qL^{E;tTbNMC~4ioi_7bd=1pFA}?G)G5sQmRncclG%_srZ-s?^%b>ugI)l_Mf40{kqNmvdix-np)UumE-Z{n3YnlM`>~J z(j{}Jn@l=2OUKIOoUmDLQ}^aig`ekS=KN>idOfMgrFM41<^t2=#Cyhx_hMV4qSpl) z3kg~J8+(PElW~dPB9d=jsw!5o%>c&>|Nol+ DXeG&S literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/colorcode/bar2.jpg b/eugtk/examples/resources/colorcode/bar2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ee21883554a2438e92794b954211ad07c6205481 GIT binary patch literal 612 zcmex=LJ%Z3brs z4mLJ+HdYRHc6Lrq4lW)MULJ049!Vi#ei2zIc{y1r85so?J#_^o9c39A4RcK$149!N z6M1z@TMHu_J!2CikRgnmoSZz|JQBRT5=M$Libf=Z{|6WZIT%tHB$*kN7?=bZnFSgD zA7PLJ`hkHNh!KF5g^itw87OBc0F-29=Hy_8OENMsvkC>V2#Sb`i3f%xPF{G4U0Bg6 zc;d#3hDFUF;}{v3m=MZA`dFD*7@66Ca`J)uze~W>K8K_&3 zS&+e=;r#=!m5*k{_P;53CtaJqtvagTWcowJlYef%*2+6#G`aIsueIgATIVgyJ()?i zn-1^D{o1SJzAd7hci(2~iBcv{E&nq#&P*w`UK+jU$j|NxnNb_Jt*xs*`omFM`sJ-6 zeb?qMKNGj}m_1sv?rUf4YqN{zZ!S9*(zbunnM?7{<6D$`(j%^Y*ZwUTcHy$--^Gir zsaG6%uXb)UZEy) zlI3QfPx&oz%+`F~$!~c#p(>P@3(B7KJ33kRQnQ-%Qm%w8A!;edOBS5$d+9U->}dx3 G|2F}+cD+sj literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/colorcode/bar3.jpg b/eugtk/examples/resources/colorcode/bar3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6b3265962fdda726912c77d4db954b949f986611 GIT binary patch literal 621 zcmex=LJ%Z3brs z4mLJ+HdYRHc6Lrq4lW)MULJ049!Vi#ei2zIc{y1r85so?J#_^o9c39A4RcK$149!N z6M1z@TMHu_J!2CikRgnmoSZz|JQBRT5=M$Libf=Z{|6WZIT%tHB$*kN7?=bZnFSgD zA7PMYU}Ruo26_VlSXi0a*cq9ClEwlIj7&_doNVlHSw?0iRzV>V(I6IKvB2QO$qO&C ziyMYayrk&pR5a<(WuPWWP@pg)8_2-I#LC7Dl#&-@U}9nh+6Om|0q6`S77^BkO3H@+ zZ!z!y^)U%D3o_U+qPP+xcpu5_=$s) zm;4n^eZ0*u?E2>Q%su5B?LKXKCsX(F-jUy@PVXrEectaxkHu5vV9sEZOqo-OA^r=6 zXH70{GuJvQYFKfhxa#$@lHHcIsjjmNHs|SPZC?|bA6YB)+VHvg#QAk=GN%0L*Ivo3 z-5Gl2w`Wr5#FTR%Rinzg{XT7*dQCGn)y&)d>YH;X-ygM_AveS9NyduH`$TF2t!7W_ z(BpG<5ocG<*rFKUw)Xv*tHz$&95)wVwCYZgHn$aCxjUoj!4nh5f+C~G9mh8XZ;b7I V=vZdn%54zh5e8?2LrDJrO#tM_y^sI^ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/colorcode/bar4.jpg b/eugtk/examples/resources/colorcode/bar4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..57715e52f43b61740499b7cd71a0ac9967edd315 GIT binary patch literal 646 zcmex=LJ%Z3brs z4mLJ+HdYRHc6Lrq4lW)MULJ049!Vi#ei2zIc{y1r85so?J#_^o9c39A4RcK$149!N z6M1z@TMHu_J!2CikRgnmoSZz|JQBRT5=M$Libf=Z{|6WZIT%tHB$*kN7?=bZnFSgD zA7PLL`2pk&1Yl!jXJGbYwOw6n-g2EzVfkBBvqKd%_FS4x>e~W>K z8K_;5S&+e=;r#=!vgR#w74A9j7v29N$<69$|Dn_zi|~NwyZkQhd=Z`gYGrSpxO?f+ zi4|M#{t5O9@>m|uF7Y|^+4Y9Ej#M8yyw~hs>hFoNnWus;Zmtrn)hp<8@WgHL<$4wpT(u&Kae&I6vDwW6iU)bK5(weO%`Ep?a-w@0rDK z{nFc_Mawm7dN;lNq-1P%#V<8?LW~S65VQGicer{=VR2EA+KyvypHC_lJ!YP7GkIoi qia0wX5Hp>%=)5!KP1MGFB2qwXa&X0ow5;P50U&%C5_IhUZvp@sip((p literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/colorcode/bar5.jpg b/eugtk/examples/resources/colorcode/bar5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3f5a6e7b28ff3a91ec732bdf63f73dcfd6aa5790 GIT binary patch literal 658 zcmex=LJ%Z3brs z4mLJ+HdYRHc6Lrq4lW)MULJ049!Vi#ei2zIc{y1r85so?J#_^o9c39A4RcK$149!N z6M1z@TMHu_J!2CikRgnmoSZz|JQBRT5=M$Libf=Z{|6WZIT%tHB$*kN7?=bZnFSgD zA7PLL`2pk&1Yl)jXJi3NnF#>pm^s+kIpK1QOw6n-fHUaGS*+~E0?8E(rjY@09Y zQz`o94L((ZOV7A$v)lwS~kah_ZsWd`Pa(sbWC5a8SK&) zzobvoC3gKKKdp=}HzzJyb-HL-=+d_f=7gLqm{=3ETKHY?rkSUdZ zteo}B&UA}S@zqM-{=`qKw#rrMm{jQ0jo&VJP2H1rWm?)s&u7A$=3OfmopW;Y+DD~( zHg5KJm3CLX;Z-kIIr-_u@Sx>ywjEx6qT|fHPpYqHuGz%hTmZy{Nq0(kqrHtcY*nm} zw)OEX?45m{<(YO*&bLJ%Z3brs z4mLJ+HdYRHc6Lrq4lW)MULJ049!Vi#ei2zIc{y1r85so?J#_^o9c39A4RcK$149!N z6M1z@TMHu_J!2CikRgnmoSZz|JQBRT5=M$Libf=Z{|6WZIT%tHB$*kN7?=bZnFSgD zA7PMWU}Rth`T_~Cvaz!;1EmZF7#Nut*}2%5;gXC@%q*;eLLxzl!lGj0PJzK83oo%N zPMo~)qT!^2KrIr$00D&w5@2ItW(CTq2{JG;Gc&QWBBVfu35u`^u?ZU%HmU?B9=!Pf z76T76BhYcof(-Ty_YZ*7O7!he|L2wWSN>kr;g5NB)tQ@oPd-0fUwLT}XXec_Q@8oc zdntzbyq&n~_45z69DA~p>Yk>(&;9#2TKK!Rd3FAKgJ&+;ho_wXXg_ zHg~b}oDtt_Lu36XiQg57p3Byud#+X2<@}0tJ-?PWx*qX+=X&{WoMSPs^P6tZ!y{k( wH@#iNUA*8T>&^=Y+XXip1t*=I@NNMRFI3}ob22t_-qj4mEi=I3$N&E(0D6LJ%Z3brs z4mLJ+HdYRHc6Lrq4lW)MULJ049!Vi#ei2zIc{y1r85so?J#_^o9c39A4RcK$149!N z6M1z@TMHu_J!2CikRgnmoSZz|JQBRT5=M$Libf=Z{|6WZIT%tHB$*kN7?=bZnFSgD zA7PMUU}Rthc>@7h+1Qy`n1FKn0zeP4u<|f5!zCG+m|2AcMMQ%VS%k&J1A{{*PF{HN zlA$BJ;z6JWNer_XSlF0ZL1rlnGBC0*F*38ljbZ?rCCI`mBCK4fV%WIw;Qw0;Jj{$h zmoW=6*fZQe08+@V>std&d5Sao<;?(bPC&U)5XleSHM{L%gH+7nq( z%WrOKmbiALy0yLJ_IIfp{RJD|&8~Z7bE4-*(NwE|w9WIk`0xo&vSe9nks0-K_K#M% zpZUBs3;n0OyZK~wg4PY8O}lTYmTzfaJTtYZ`1+*%6E7{bPs!CPEnBUB{$}d#@+I*a z)<(BIz0N6Z?v(a=E3)pA(NT>L*M!UNE5GeoJ1wZS?DM2beJO?Q*1Q7IbGu?X=TA5{ zXWnt$+niH1y?hIMZ=dsg5-xFf&y#uH+d6d59d;3Wp2#QTJ}+h2(KPE_O=rqWISouS V+#>tlE!Zr3*U1MGMDqV{0s!}zy_5g| literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/colorcode/bar8.jpg b/eugtk/examples/resources/colorcode/bar8.jpg new file mode 100644 index 0000000000000000000000000000000000000000..edd4d9805d8507bed93f7a674c7879631a76178c GIT binary patch literal 648 zcmex=LJ%Z3brs z4mLJ+HdYRHc6Lrq4lW)MULJ049!Vi#ei2zIc{y1r85so?J#_^o9c39A4RcK$149!N z6M1z@TMHu_J!2CikRgnmoSZz|JQBRT5=M$Libf=Z{|6WZIT%tHB$*kN7?=bZnFSgD zA7PLL`2pk&1Yl)jXJi3NSqLyNGBL4maC5@t7@3$^SwsSZ1cih}#ex$TvayRRI)_Z0 zyz$~CB^5&>$4OH*T?XouU}RuMF_M7+s1IbFoFD@uGb@T5&`cIVArWIm<^Q)Bc$gW1 zZetc?uxEJx0Br4{m;4;2o8BL-|EhSd;>i3{nmvoxSeC?OWcEB)@`mG8{SH6c&l<_bg5^h|TETLx>F%%1ut@RFC_qRHR3pPBDJ z>(Em7?3-LhO6KfaIGWh@B1OR{V%P0T< literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/colorcode/bar9.jpg b/eugtk/examples/resources/colorcode/bar9.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d77ddd1295eae30d49dfb969c46c8e82fa34be5b GIT binary patch literal 654 zcmex=LJ%Z3brs z4mLJ+HdYRHc6Lrq4lW)MULJ049!Vi#ei2zIc{y1r85so?J#_^o9c39A4RcK$149!N z6M1z@TMHu_J!2CikRgnmoSZz|JQBRT5=M$Libf=Z{|6WZIT%tHB$*kN7?=bZnFSgD zA7Ky&`GJuE8L+dm0VPZY7#Nut**Q2_;j)ZO%q*;IfNl~JYJbKhn&5f$e)Q_fdzN+n7IiD1-Y(dkXPR^Pmd@c@UYFKguXb6jIq^-9r&ah(>2seJ zd2Cv-dda8!%lX!)_MBH)C%<~ep7-K&pXFw63ES;y9e!!`I?m<;e*31_&pZ_D6{)nO z_>5#qpTAa$ndfcJAY-ZSD9h8|ioTXET)v3Ax#1$~!2`Qf3pd#tIj%byuD@c(?8nwS z=6Sx;?|JvAQhn#`jHU+LJ%Z3brs z4mLJ+HdYRHc6Lrq4lW)MULJ049!Vi#ei2zIc{y1r85so?J#_^o9c39A4RcK$149!N z6M1z@TMHu_J!2CikRgnmoSZz|JQBRT5=M$Libf=Z{|6WZIT%tHdYBoN7?=bZnFSgD zA7PLI`hkIo8A!kZD;ql#GYcaJP}W|6fsu)YfrE>Uiy11<2$W+LWD^n=5j6}95))Sp zNt`%&;igOMO2NsE7mbWf9YYH@9z68ODdhvu04bosK*Nzt2U^C$%E$(kQxpW+473_3 z0<)WunMsgEL`hM|(5P_X|62?^AX!0XK?Zw<`ww7>;ItjHPvQEwXIK86{a1KwZ}sfp z-{wEh?A# z*n8iGMY(KXfe?i<)2ZJ^%AOcdMCyy(~ViIaSJgjMormHrzxRYdDdwva_liobbBV6H_0xATUuFN56|u29Zb~2Zothf+T78R* z#FrwO)1nPvFW8$tyUT3$LhI4tTZV~mEu_l7O`TmL_e-ZQYAxfm>%9+ycZ)N#Ut;Ya{N78m?Y<`J%e)2eq4` z9qWqoQ+{a5{CjNBSNJSC-b?Lc(?gzTwq>c;uXjImUL~7kwC{ZK?31-iR!s@*wikR| z7ZZPx=gW1A)UWe8`cFUJZ~0R4yr@wq0E+IzO`H^rB=P`?%{{-=1Ex)_a}H z%DvK)ORRsN{&!4UHr%}P^gr%jq6X2gXO!$Pein1Cq^j-ggo86CU$}V7@y!0allOnp zSjOZM@;mZw|2K_*x`p#6PE=c5%+2>e#sBEt8~+&+4|vS)-o5ePu@r`>E=$(Rd475~ zj{owY+S3u<%cMp7lALSrbj?}O=GZJCbK}etoy{yV-CwM` zzx2pP@Mk@m9v)_TY-4cl&PeN%GXrL=WZXY-g4&`~t9Vsjp`#{OB36C@CvujvlKiD? lJ?*<%4G1&u0@d=}DAGw=;(UwY!7=54XJ9k15%T|U0stELHCX@v literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/colorcode/end2.jpg b/eugtk/examples/resources/colorcode/end2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b1732194cbdfdcb91dc659ef6f515a2fea2295fb GIT binary patch literal 1432 zcmex=LJ%Z3brs z4mLJ+HdYRHc6Lrq4lW)MULJ049!Vi#ei2zIc{y1r85so?J#_^o9c39A4RcK$149!N z6M1z@TMHu_J!2CikRgnmoSZz|JQBRT5=M$Libf=Z{|6WZIT%tHdYBoN7?=bZnFSgD zA7PLI`GJvv8Hizkm5rT|iG_n1DC;P|z{teR#L2y5~gV= z9fK!MUU-RJDWq`YMI+ywPCN`j)iXbBc z6B837Gb`M7MrI~K77-z(!bW8ynt+keH=w+Am@p1nnm&+y#V>YFeB-v0CazWbN{_?1^4oLsV}NynvZ zOWVJe(ESJ8wRXAdc>JMNcyg-V^5@4r>i7Brqn(Fy~xK+ZdF#C*a?U~-_nN{ny zC;h!*z4Lxb^?wG{`G@94emIkMhb{NO>TdoDpqXbc2WNgddv@7^GdU-1k&e^KF>9W7ifs;|i7f;8Xiu}8E{+de<-Iqn) zdB01RYp&tcw(d+{Gs&BhD=p2Gi|15Z73Tao#Thf%a4i>TW>?Pl(*Z&O#6o|tOBxG1kZ z|Eunwo;9U0_tf@3iEj*M-M6!CI$N#Lndk1SWX+t}lKh?BGue&q^~~MBV$lpv!Qda8 zchA2Qu;8z=?XgZX*>hsn6DHbSFE9SxuBcSI?%nh6(h4lIR8=!R`A;u778@%V-?R4U zrYkO+v)*X~W1an}&&Rnjen)=xK&aVy9=hilPqOZOQ1s37|v;$x+S*22%~J&ZR9 zX%}r+tYdPkH!J$`QQqk)V$U0%G~M}Nb6jZ0j2ZtK+r;6GbQ;9=8HXU3*Ui_z(&abzX<@g&PX`` literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/colorcode/end3.jpg b/eugtk/examples/resources/colorcode/end3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..41c8258c135a03c584cdc81fa2a27cc25b6867d1 GIT binary patch literal 1266 zcmex=LJ%Z3brs z4mLJ+HdYRHc6Lrq4lW)MULJ049!Vi#ei2zIc{y1r85so?J#_^o9c39A4RcK$149!N z6M1z@TMHu_J!2CikRgnmoSZz|JQBRT5=M$Libf=Z{|6WZIT%tHdYBoN7?=bZnFSgD zA7PLI`hkIo8A!kZD;ql_6AK43P}W(1fsu)cg_DDgof9h0$iytj!YU*pEGnjG7#Nf| znN2)6Wa7e$m)Mnz9Sa{Rs~CkIJoLfT$t5W{rE%j!pdpe#!%-|?U|?isVPykK$q522 z2icCW9_TC)CKf{_MWg?>7bS5t+|&9GW$wbzgr*v z;r?@rc(1LW7X6J|KY#a&`_F#}ZCbEHckPWoTtBCHZG36f{lpgWXWh!FOZmE`SXnnLc26;1ow!$2YMo1D)ve;$Ub2?`7gof|>`6KLF;pdH z@!6tk$BX^$igz|ffL+e~Z1=W@Wp_e1^G9svk36uv?$Wy3O@W&;v~ISqiD=hVT50|& z^mc)lS>=huES+b#XS&gpq5Hnr@I-tDe!iLb>HU#oTdFE)GY)$DPxsmgw1TKZIX zjcL}mruBr03dx#jYpfP$nRsWyhiU0a*D_CKTKb%Pb-pko`wn^k&a5k5dg=JN zn0Md5wjEl%QX(Q_v*xm9*#(zYl$a^!n>~HMS^vm_sZV)@-_DK*IcO|*;oC9Wg>M^u zJ@wrtL_I{)*p=1T?!=4ZdpeXP9aJL|P@Z2J7|3zup`xnfgmU%B2Y>_4+I zuDttNrO#~BYl5X`X1i(vx#vFRT#uObS}dsR^0mGhCEnir*QY$SOurPi>h+1KvoG#2 zcb@-M{fESw(&#-t{~31df3fmpe$L^g7tf!IIrq(O!_6&xK1Y^2yC<_7)xDAV&tT|k z$tf88ZSxL$L#Kt`cz#FKU@u->FviN{`hp zrG1ySomti~>C&z)V5(yLwDjX#8NVYR#gCN~S_>aJyUDT4y3IrHc;R$EwY?`Jd||Tw zH;+upb2dB4dgGm>!fx5awiciAPCn+`XS}%c#yoZLV}21Db36Yt_}o_!Pu`Kz^roEG z;_OM=M01F-@sbyhyzv)?YJc1JaJl48ZO&4~jSr6J?lo-;?M6*->R zpS)v#NKt8m?dp_W7CVl2Jz5r7={ft!nN@159P$sG5Oy?LxA?)rMIOs$af@1llNF<} onDb4?ZpAkXeF!tnfoh$LJ%Z3brs z4mLJ+HdYRHc6Lrq4lW)MULJ049!Vi#ei2zIc{y1r85so?J#_^o9c39A4RcK$149!N z6M1z@TMHu_J!2CikRgnmoSZz|JQBRT5=M$Libf=Z{|6WZIT%tHGMO2b7?=bZnFSgD zA7PMYU}RthdV`Sx4p`aPSr|E(fs*C|Kp(QOv2n1n!ekklm|0i_g+u~_64``B#SAC2 ziz^z1EWGq6ICSEni>8H*8$SRwN`g!T0+=o!&BDsW1~OAdkdc9rg&9eP0cfP42&0hl z|62?^%#1*{F$*%-Gu%IbtOmyBKIrg4WUcL`6K};MxP@1wy_Guk>se^V>hM;s8B>;* zZnXQb>0NZ)rph~qgkG!P6T3X8+I2It#OtKmhfDu#`aRq{S&eYJ-0Vh9J||mjAe$h*&8{7%{Q#9 z9|Z0SFI|%rG+p`qhO=*ON`-p}7JOXmef4(8m1}>OYOUUVrhA@k)VDo9mDb$kHgj1U zUf#9tz51b^MMzu;qx%Qgelx_esC;v|^6q??ZsOO_9fna`P12?dCvfFGviZ3?W`4mP z_xa}8li%q%z(fiky-+@79}W^r;3@Wf^424aRZKVj^~5c2lh#IUEsj1lb-B^cOaB?_ z{D0g1<~cTX&+%Q)uWrmfKFRCyj4jXHE^Y4$`&6^?5Q6t{GXIJO_63y>Kw+)Vz_92` zHU(EDM3?@%@QX>Y>y4Jk%{z0G zw95+B=WbEgyA;Sh^N?-Qk$d~DYAyCLSv6gL>c;-I&oAar`p+P|DA(lHT7TvFB~k~U z6fgI@_cT=L#__|IU;IyOGyHI`R`^rwcE^HB-U~5u&VCbjhVE+Mngoe{o3KpFdrq5f jeOq{mp)ay{YuqcjoZ}S%lNj7U6bMg-D1?*s|8D{S_~Khs literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/colorcode/rcc.jpg b/eugtk/examples/resources/colorcode/rcc.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7def803d7c87fbb9a95d07e2a6bf56023f3e0032 GIT binary patch literal 11525 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 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/css_multiplebgs.css b/eugtk/examples/resources/css_multiplebgs.css new file mode 100644 index 0000000..00ab416 --- /dev/null +++ b/eugtk/examples/resources/css_multiplebgs.css @@ -0,0 +1,142 @@ +/* You can edit the text in this window to change the + * appearance of this Window. + * Be careful, if you screw it up, nothing might be visible + * anymore. :) + */ + +/* This CSS resets all properties to their defaults values + * and overrides all user settings and the theme in use */ + +@import url("cssview.css"); + +#canvas { + transition-property: background-color, background-image; + transition-duration: 0.5s; + + background-color: #4870bc; +} + +/* The gradients below are adapted versions of Lea Verou's CSS3 patterns, + * licensed under the MIT license: + * Copyright (c) 2011 Lea Verou, http://lea.verou.me/ + * + * See https://github.com/LeaVerou/CSS3-Patterns-Gallery + */ + +/********** + * Bricks * + **********/ + +@define-color brick_hi #d42; +@define-color brick_lo #b42; +@define-color brick_hi_backdrop #888; +@define-color brick_lo_backdrop #999; + +#bricks { + background-color: #999; + background-image: linear-gradient(205deg, @brick_lo, @brick_lo 23px, transparent 23px), + linear-gradient(25deg, @brick_hi, @brick_hi 23px, transparent 23px), + linear-gradient(205deg, @brick_lo, @brick_lo 23px, transparent 23px), + linear-gradient(25deg, @brick_hi, @brick_hi 23px, transparent 23px); + background-size: 58px 58px; + background-position: 0px 6px, 4px 31px, 29px 35px, 34px 2px; +} + +#bricks:backdrop { + background-color: #444; + background-image: linear-gradient(205deg, @brick_lo_backdrop, @brick_lo_backdrop 23px, transparent 23px), + linear-gradient(25deg, @brick_hi_backdrop, @brick_hi_backdrop 23px, transparent 23px), + linear-gradient(205deg, @brick_lo_backdrop, @brick_lo_backdrop 23px, transparent 23px), + linear-gradient(25deg, @brick_hi_backdrop, @brick_hi_backdrop 23px, transparent 23px); + background-size: 58px 58px; + background-position: 0px 6px, 4px 31px, 29px 35px, 34px 2px; +} + + +/********** + * Tartan * + **********/ + +@define-color tartan_bg #662e2c; +@define-color tartan_bg_backdrop #333; + +#tartan { + background-color: @tartan_bg; + background-image: repeating-linear-gradient(transparent, transparent 50px, rgba(0,0,0,.4) 50px, + rgba(0,0,0,.4) 53px, transparent 53px, transparent 63px, + rgba(0,0,0,.4) 63px, rgba(0,0,0,.4) 66px, transparent 66px, + transparent 116px, rgba(0,0,0,.5) 116px, rgba(0,0,0,.5) 166px, + rgba(255,255,255,.2) 166px, rgba(255,255,255,.2) 169px, rgba(0,0,0,.5) 169px, + rgba(0,0,0,.5) 179px, rgba(255,255,255,.2) 179px, rgba(255,255,255,.2) 182px, + rgba(0,0,0,.5) 182px, rgba(0,0,0,.5) 232px, transparent 232px), + repeating-linear-gradient(90deg, transparent, transparent 50px, rgba(0,0,0,.4) 50px, rgba(0,0,0,.4) 53px, + transparent 53px, transparent 63px, rgba(0,0,0,.4) 63px, rgba(0,0,0,.4) 66px, + transparent 66px, transparent 116px, rgba(0,0,0,.5) 116px, rgba(0,0,0,.5) 166px, + rgba(255,255,255,.2) 166px, rgba(255,255,255,.2) 169px, rgba(0,0,0,.5) 169px, + rgba(0,0,0,.5) 179px, rgba(255,255,255,.2) 179px, rgba(255,255,255,.2) 182px, + rgba(0,0,0,.5) 182px, rgba(0,0,0,.5) 232px, transparent 232px), + repeating-linear-gradient(-55deg, transparent, transparent 1px, rgba(0,0,0,.2) 1px, rgba(0,0,0,.2) 4px, + transparent 4px, transparent 19px, rgba(0,0,0,.2) 19px, + rgba(0,0,0,.2) 24px, transparent 24px, transparent 51px, rgba(0,0,0,.2) 51px, + rgba(0,0,0,.2) 54px, transparent 54px, transparent 74px); +} + +#tartan:backdrop { + background-color: @tartan_bg_backdrop; +} + +/*********** + * Stripes * + ***********/ + +@define-color base_bg #4870bc; +@define-color backdrop_bg #555; + +#stripes { + background-color: @base_bg; + background-image: linear-gradient(to left, transparent, rgba(255,255,255,.07) 50%, transparent 50%), + linear-gradient(to left, transparent, rgba(255,255,255,.13) 50%, transparent 50%), + linear-gradient(to left, transparent, transparent 50%, rgba(255,255,255,.17) 50%), + linear-gradient(to left, transparent, transparent 50%, rgba(255,255,255,.19) 50%); + background-size: 29px, 59px, 73px, 109px; +} + +#stripes:backdrop { + background-color: @backdrop_bg; +} + +/*************** + * Lined Paper * + ***************/ + +#lined_paper { + background-color: #fff; + background-image: linear-gradient(90deg, transparent 79px, alpha(#f98195, 0.40) 79px, #f98195 80px, alpha(#f98195, 0.40) 81px, transparent 81px), + linear-gradient(alpha(#77c5cf, 0.60), alpha(#77c5cf, 0.60) 1px, transparent 1px); + background-size: 100% 36px; +} + +#lined_paper:backdrop { + background-color: #f1f2f4; + background-image: linear-gradient(90deg, transparent 79px, alpha(#999, 0.40) 79px, #999 80px, alpha(#999, 0.40) 81px, transparent 81px), + linear-gradient(alpha(#bbb, 0.60), alpha(#bbb, 0.60) 1px, transparent 1px); +} + +/************ + * Info Box * + ************/ + +#Info { + background-image: url("background.jpg"); + } + +#Info_label { + color: white; + font: Purisa, Comic Sans 24; + +} + + + + + diff --git a/eugtk/examples/resources/css_pixbufs.css b/eugtk/examples/resources/css_pixbufs.css new file mode 100644 index 0000000..830a5a7 --- /dev/null +++ b/eugtk/examples/resources/css_pixbufs.css @@ -0,0 +1,76 @@ +/* You can edit the text in this window to change the + * appearance of this Window. + * Be careful, if you screw it up, nothing might be visible + * anymore. :) + */ + +/* This CSS resets all properties to their defaults values + * and overrides all user settings and the theme in use */ +@import url("../resources/reset.css"); +@import url("../resources/cssview.css"); + +@keyframes move-the-image { +0% { background-position: 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 0% 0%; } +3.125% { background-position: 55.19% 76.11%, 72.14% 64.79%, 76.11% 44.81%, 64.79% 27.86%, 44.81% 23.89%, 27.86% 35.21%, 23.89% 55.19%, 35.21% 72.14%, 0% 0%; } +6.25% { background-position: 60.79% 76.04%, 76.04% 60.79%, 76.04% 39.21%, 60.79% 23.96%, 39.21% 23.96%, 23.96% 39.21%, 23.96% 60.79%, 39.21% 76.04%, 0% 0%; } +9.375% { background-position: 66.46% 74.64%, 79.06% 55.78%, 74.64% 33.54%, 55.78% 20.94%, 33.54% 25.36%, 20.94% 44.22%, 25.36% 66.46%, 44.22% 79.06%, 0% 0%; } +12.5% { background-position: 71.84% 71.84%, 80.89% 50.00%, 71.84% 28.16%, 50.00% 19.11%, 28.16% 28.16%, 19.11% 50.00%, 28.16% 71.84%, 50.00% 80.89%, 0% 0%; } +15.625% { background-position: 76.55% 67.74%, 81.32% 43.77%, 67.74% 23.45%, 43.77% 18.68%, 23.45% 32.26%, 18.68% 56.23%, 32.26% 76.55%, 56.23% 81.32%, 0% 0%; } +18.75% { background-position: 80.21% 62.51%, 80.21% 37.49%, 62.51% 19.79%, 37.49% 19.79%, 19.79% 37.49%, 19.79% 62.51%, 37.49% 80.21%, 62.51% 80.21%, 0% 0%; } +21.875% { background-position: 82.54% 56.47%, 77.58% 31.57%, 56.47% 17.46%, 31.57% 22.42%, 17.46% 43.53%, 22.42% 68.43%, 43.53% 82.54%, 68.43% 77.58%, 0% 0%; } +25% { background-position: 83.33% 50.00%, 73.57% 26.43%, 50.00% 16.67%, 26.43% 26.43%, 16.67% 50.00%, 26.43% 73.57%, 50.00% 83.33%, 73.57% 73.57%, 0% 0%; } +28.125% { background-position: 82.54% 43.53%, 68.43% 22.42%, 43.53% 17.46%, 22.42% 31.57%, 17.46% 56.47%, 31.57% 77.58%, 56.47% 82.54%, 77.58% 68.43%, 0% 0%; } +31.25% { background-position: 80.21% 37.49%, 62.51% 19.79%, 37.49% 19.79%, 19.79% 37.49%, 19.79% 62.51%, 37.49% 80.21%, 62.51% 80.21%, 80.21% 62.51%, 0% 0%; } +34.375% { background-position: 76.55% 32.26%, 56.23% 18.68%, 32.26% 23.45%, 18.68% 43.77%, 23.45% 67.74%, 43.77% 81.32%, 67.74% 76.55%, 81.32% 56.23%, 0% 0%; } +37.5% { background-position: 71.84% 28.16%, 50.00% 19.11%, 28.16% 28.16%, 19.11% 50.00%, 28.16% 71.84%, 50.00% 80.89%, 71.84% 71.84%, 80.89% 50.00%, 0% 0%; } +40.625% { background-position: 66.46% 25.36%, 44.22% 20.94%, 25.36% 33.54%, 20.94% 55.78%, 33.54% 74.64%, 55.78% 79.06%, 74.64% 66.46%, 79.06% 44.22%, 0% 0%; } +43.75% { background-position: 60.79% 23.96%, 39.21% 23.96%, 23.96% 39.21%, 23.96% 60.79%, 39.21% 76.04%, 60.79% 76.04%, 76.04% 60.79%, 76.04% 39.21%, 0% 0%; } +46.875% { background-position: 55.19% 23.89%, 35.21% 27.86%, 23.89% 44.81%, 27.86% 64.79%, 44.81% 76.11%, 64.79% 72.14%, 76.11% 55.19%, 72.14% 35.21%, 0% 0%; } +50% { background-position: 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 0% 0%; } +53.125% { background-position: 45.44% 27.07%, 30.57% 37.01%, 27.07% 54.56%, 37.01% 69.43%, 54.56% 72.93%, 69.43% 62.99%, 72.93% 45.44%, 62.99% 30.57%, 0% 0%; } +56.25% { background-position: 41.65% 29.85%, 29.85% 41.65%, 29.85% 58.35%, 41.65% 70.15%, 58.35% 70.15%, 70.15% 58.35%, 70.15% 41.65%, 58.35% 29.85%, 0% 0%; } +59.375% { background-position: 38.68% 33.06%, 30.02% 46.03%, 33.06% 61.32%, 46.03% 69.98%, 61.32% 66.94%, 69.98% 53.97%, 66.94% 38.68%, 53.97% 30.02%, 0% 0%; } +62.5% { background-position: 36.49% 36.49%, 30.89% 50.00%, 36.49% 63.51%, 50.00% 69.11%, 63.51% 63.51%, 69.11% 50.00%, 63.51% 36.49%, 50.00% 30.89%, 0% 0%; } +65.625% { background-position: 34.97% 39.96%, 32.28% 53.53%, 39.96% 65.03%, 53.53% 67.72%, 65.03% 60.04%, 67.72% 46.47%, 60.04% 34.97%, 46.47% 32.28%, 0% 0%; } +68.75% { background-position: 34.02% 43.38%, 34.02% 56.62%, 43.38% 65.98%, 56.62% 65.98%, 65.98% 56.62%, 65.98% 43.38%, 56.62% 34.02%, 43.38% 34.02%, 0% 0%; } +71.875% { background-position: 33.50% 46.72%, 36.01% 59.35%, 46.72% 66.50%, 59.35% 63.99%, 66.50% 53.28%, 63.99% 40.65%, 53.28% 33.50%, 40.65% 36.01%, 0% 0%; } +75% { background-position: 33.33% 50.00%, 38.21% 61.79%, 50.00% 66.67%, 61.79% 61.79%, 66.67% 50.00%, 61.79% 38.21%, 50.00% 33.33%, 38.21% 38.21%, 0% 0%; } +78.125% { background-position: 33.50% 53.28%, 40.65% 63.99%, 53.28% 66.50%, 63.99% 59.35%, 66.50% 46.72%, 59.35% 36.01%, 46.72% 33.50%, 36.01% 40.65%, 0% 0%; } +81.25% { background-position: 34.02% 56.62%, 43.38% 65.98%, 56.62% 65.98%, 65.98% 56.62%, 65.98% 43.38%, 56.62% 34.02%, 43.38% 34.02%, 34.02% 43.38%, 0% 0%; } +84.375% { background-position: 34.97% 60.04%, 46.47% 67.72%, 60.04% 65.03%, 67.72% 53.53%, 65.03% 39.96%, 53.53% 32.28%, 39.96% 34.97%, 32.28% 46.47%, 0% 0%; } +87.5% { background-position: 36.49% 63.51%, 50.00% 69.11%, 63.51% 63.51%, 69.11% 50.00%, 63.51% 36.49%, 50.00% 30.89%, 36.49% 36.49%, 30.89% 50.00%, 0% 0%; } +90.625% { background-position: 38.68% 66.94%, 53.97% 69.98%, 66.94% 61.32%, 69.98% 46.03%, 61.32% 33.06%, 46.03% 30.02%, 33.06% 38.68%, 30.02% 53.97%, 0% 0%; } +93.75% { background-position: 41.65% 70.15%, 58.35% 70.15%, 70.15% 58.35%, 70.15% 41.65%, 58.35% 29.85%, 41.65% 29.85%, 29.85% 41.65%, 29.85% 58.35%, 0% 0%; } +96.875% { background-position: 45.44% 72.93%, 62.99% 69.43%, 72.93% 54.56%, 69.43% 37.01%, 54.56% 27.07%, 37.01% 30.57%, 27.07% 45.44%, 30.57% 62.99%, 0% 0%; } +100% { background-position: 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 0% 0%; } +} + +@keyframes size-the-image { + 0% { background-size: 96px, 12px, 96px, 12px, 96px, 12px, 96px, 12px, auto } + 100% { background-size: 12px, 96px, 12px, 96px, 12px, 96px, 12px, 96px, auto } +} + +GtkWindow { + background-image: url("../resources/apple-red.png"), + url("../resources/gnome-applets.png"), + url("../resources/gnome-calendar.png"), + url("../resources/gnome-foot.png"), + url("../resources/gnome-gmush.png"), + url("../resources/gnome-gimp.png"), + url("../resources/gnome-gsame.png"), + url("../resources/gnu-keys.png"), + url("../resources/background.jpg"); + background-position: 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 0% 0%; + background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, repeat; + animation: move-the-image infinite linear 3s, size-the-image infinite alternate ease-in-out 0.75s; +} + +/* Make the text editor has a nice style */ +.view, .scrollbar, .pane-separator { + color: black; + background-color: rgba(255,255,255,0.5); +} + +.view:selected { + background-color: rgba(127,127,255,0.5); +} diff --git a/eugtk/examples/resources/cssview.css b/eugtk/examples/resources/cssview.css new file mode 100644 index 0000000..5060c39 --- /dev/null +++ b/eugtk/examples/resources/cssview.css @@ -0,0 +1,41 @@ +/* Make the text editor has a nice style */ +.view { + color: #2e3436; + font: Monospace; + background-color: alpha(white, 0.30); +} + +.view:selected { + color: white; + background-color: #4a90d9; +} + +.scrollbar.trough, +.scrollbars-junction { + background-color: alpha(white, 0.80); +} + +.scrollbar.slider { + border-width: 3px; + border-style: solid; + border-radius: 10px; + border-color: transparent; + background-clip: padding-box; + background-color: #999; +} + +.scrollbar.slider:prelight { + background-color: #555; +} + +.pane-separator { + background-color: alpha(white, 0.80); + background-image: linear-gradient(transparent, transparent 1px, #999 1px, #999 4px, transparent 4px); + background-size: 40px auto; + background-repeat: no-repeat; + background-position: center; +} + +.pane-separator:prelight { + background-image: linear-gradient(transparent, transparent 1px, #555 1px, #555 4px, transparent 4px); +} diff --git a/eugtk/examples/resources/eu.cfg b/eugtk/examples/resources/eu.cfg new file mode 100644 index 0000000..12ac99d --- /dev/null +++ b/eugtk/examples/resources/eu.cfg @@ -0,0 +1 @@ +~/demos diff --git a/eugtk/examples/resources/flags/README.html b/eugtk/examples/resources/flags/README.html new file mode 100644 index 0000000..f5173b5 --- /dev/null +++ b/eugtk/examples/resources/flags/README.html @@ -0,0 +1,19 @@ + + +Flags + + + +US Flag + +
    +

    World Flags

    +
    + +

    + All these flag images are in the public domain. +

    + + + + \ No newline at end of file diff --git a/eugtk/examples/resources/flags/flags-afghanistan.png b/eugtk/examples/resources/flags/flags-afghanistan.png new file mode 100644 index 0000000000000000000000000000000000000000..1414cdeb4807447953e29570a170c34ded7dbd8b GIT binary patch literal 1420 zcmV;71#|j|P)bj1NtknDmj^Nt69Qp5%Pzm;X8Q&3C>d01At&ZlHOQWA3>h4sTiHpn$meA@3}u z4bU1uYo!g)8bE8M4bU1uYo!g)8bE8M4bXCNlhcVHNm?S1+SNr7V|h6x+qMyLyD`_+ zGIRVmL6-~1=FRxeox^|jEJ`AgG9(@F-eL!R7%0EZxTT>1b4?8ZlGO@|g2CY+zqOV4 z>?|1-6dAa}gdY^c}M`7nP6l{5x zh1m)2{&qJ2!K;@@iZNupOxC7))zh@9;myz2At(}=MHS!+67CrUpkU?WWHmLAyM7(k zmS)UN_1M?612DhuSCr`}`h*#hknv=dnuzKdAY_Ux{5_67noI857SP??eN$;Eax6*7 z3)_(cA>=@aySBVWG91NVx8IyAnXq-VBhDFFxH761BA{Xp(BEq##Ac=$`f>-w&7FvO*%WQ)!qi>~`Z&SC%lLMFk8jseg2O|^Wk05k_uzbbD}vKP z$-0+tz21hgsuam#RSi?MI$&Aj3JlAN3AwKlAMzsWlFXevLBchdMrYUIdAaJ@*Ell-t zK+^5U^==0Sqn+&KD=^|<{<~g8lSF;XR(uzKL?%Q=Q6*UqE~B`74a4*j__~*HV-vp1 zKjS}r2C2pZVYMh#E`^os1rmW7lwv*p!9Ems2xs@pWLMW=%q>A5FF=gx(do=&6 zS_oeqB9iF=bA*HxBRM{Y><-_drSKn+(NzVW7)1>oWIxx45|Rm?aUtk*NMbsfi`AGPcnc00tTy<(Ee+xBC1{rJD0zLv+G3`CcJnKd`$2{KZ(EQ(dXxr zSyO{3NrZ=nh~1b(T4Ez-^=gV+yQu8^go(X-8D>CLK7mv`ja7kIn@3{Gj})_DZQX?6 z4G=ophal<5daMN{&&bSA2Qe(oAvQUOUdm?S=;*BwYCVmm<~BGCrj@1OsG+L!Loy3X zh)+)=y!{S|$thwUFVV3vocm5N^3_|IY)R%mJ(Uu)lr==c2VLkZD)7}0FprDOigKc^ z0Yp(GtG*7Lc4m6d6ZvM4#Q1osuu|I*ijR!&&(1e)UWE$^h>wf_ps%b%kR%f0-L1P+nfHmzkGcoSayYs+V7sKKq@G6axdJy{C&~ zNJe9F3P;?p`Hfx*4u5$L|C&%|@!xZ~(&6884{2mQnf=b-!_At8&yvy8gHBg%Vz}IJ z%Z}qf1_RF)W;UrFwgV2<2@4M5A4Nt!oan6$b_t;Lo?Z)xLO+5DU#TU-_1u;HWWfWe;+sW%{@Mts4$_*Y%>=w>^ zD9_JjShN3VtCHG-U(*_$A6lP%qawPY!)@P!nGfyd3zJwF_P?#3QrXzZrfkRE^MfJ5 zaL#2n)59{N>kPl_)KT>0H+`$lz9FVU)8F*4$cY!cL6_@_4s@JnTFhv0flngCK#GC+ fZ9^j)elCN+5z~CP{3;J%cr$pq`njxgN@xNAp)IAH literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-albania.png b/eugtk/examples/resources/flags/flags-albania.png new file mode 100644 index 0000000000000000000000000000000000000000..619cd6db718a720a22874a8ea3b5fcafb22cbdc7 GIT binary patch literal 1731 zcmV;!20ZzRP)hcAa7KMC2c7U2o({5)K-p~KGAX!Dyn!W5*1aDppBxm zs?-WKA`KDZp^trofLhV=)K)^G4=5002@*hDBAYm1C$TrRcWv+N&d#~?!5b4*j@39* zEfW4ct!8%4{O3F0_nrTo5pVb0;P?_F+by8oYy_a)0@}?+0NO2}-E0J)-2&Q;m*-%o zOv<42=n@Km8LJ6};2+IJUeA`8vxcv#fE}v9PA}qSuK>V%y1_fT&WEPKY13qrRNUov zuqP;yI>(?~mRWU%8LPQLg}G_YH3N<|=DC023@3FRfIg}CKsQ*hhS4lR<9M~X$aD2F zGd5efZpLOjS1d~n8w|NbAiytv( z4S%fv8-T4cpdchWyaL|~N&tLjGZN=G=QO*65*dzz^;u@EW|LHm1SR%H{p|E3ib7(5 zzoZooC1pl}5%7B{|;`IAv0HS3lwD zWR_m3xG(I&0uFdHtMO#*EL)||o>n#-Ny;2a$^h&MN^F%rPu9-zW>&)i7Pv3$qE{-O zPG;F%{e)8{%~Nu|O>lQm!V`kAEMYWDxK{e~2*tcJ08E*TiZfhHxl2>e0TpMMGN1Q` z9-*)fMze&Xko>N=neX}?c}mW=1pb^>_*+_KmtUk)DE`@8;G_SVG0F1GuEuKTZc-uN z4?0IQ?-qa-9xES*KOzFT+*p6%GeqO;6c%`IMm zZ+TIka`P>Lk4(yI*%H0N%3PN(z7u5%BmL38C z$ANf&yMwE**Smub4#We1L$vOZC%Fb-+GKPJg$15UW|*^@?v^WD58XmBXEjeHGgzQg zD5fuIl6jD806L}OSXSdLo$z?nM=T_j)(Ws5D$WoK$>UKUZ|Q_%S&dG){(!DV?oF`f zEEQ*XDXs9XuA?1%Xd3GpYlkY}3HYWL@nG0Zw@?&wbb*j_28^4Ok?I8ZRws!N?2Y<3 zZBzEg11JO|EjM>L1TYemPzd(N1Dv)gd!s%g1ou`a8L3V%p0g3kJp&rf5emVCN!eFB z$G)ham(mJ1s*rKhq(>@VNvo?~dr#QKyftiB0Uw)`2g7a-*UKC(Uc)vOk~&90tQEp5 zC)bvm;drJ#%cN;CZkik{ZU!K6mY+qvyr&x+OlE;)gLBa&UHtvNZt$ykfSbJnk1kFD zurKQ8k;N&ttAJq@ust%VS&iQ(Gn}`YonFMV9b5QL zWdeYIb#LQ|rL(-F>ui=Dzm5ml#cNOVfQmFBhz4Oeaj+e3wATIRoCvYP@e6 zY!V)0I^jCGoUG@p=5{}(;Vd<0c_{4Rp~W*ym?i+*RKN?RAzn!5DGEtJNXD{+Yg(_? zpW2Muy_h+t`GzWR=Ox*3wdC3ZzUCDOg=E5{Xy=H8r0NVkQgNFXu|@ifW(kiiO|3jU zz=Ub?*wPe_6ngo#A9L1bjGL4cN0(4&=dd_#^J2E;xEBC92cTOh3J8v83BQQ@`AVw? zl&xmkW-K_v%gqYID&Xzbw%J97Rlv*53SCl?I>%4K9{O9hciLtgNy>a(6|Txzu14-n zuHVy9bJNQjJc-bDm*4XPM_a?ZOKmj})_V9dZ z2-W&;BqR!WzBI(cVb7WiT;2~4ZTK!Qqyk<{=egC3xLyTZuL5rMB3?}A8Opi7{}*yE zfh*yj>LdWKbPcylLcUG#O8HUP)y~@kZO(u%0$=)XgBt;8w}5uD5rB3JXg3=HXt#iN Z^B+jNj4zMgE-U~5002ovPDHLkV1j9#9OwW5 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-alderney.png b/eugtk/examples/resources/flags/flags-alderney.png new file mode 100644 index 0000000000000000000000000000000000000000..cac0b30a8017ed918ecc364dd2875f5137f0e066 GIT binary patch literal 1351 zcmV-N1-SZ&P)1K~!jg?U`F_6jd0UUu zAE=@MZUeZjq5*CLxUHfAZUeZjq5*CLxGlr2g;V7kKg`yM_@LpWq%0*};Sf%j!td-^ zKwtV7dU_PkF42frYMj1k(cKT(p*d{daneZ~=M0civUB%L9+=R@#dHBJEx4#l(q5>N z&`>T&b_;Z0oUL0s(KKhG)3F?|eMg*lBuRH#QR0Evctr~VnsWEh*&E^7u;9rB8gt`4 zY-x@=h2_i+`0Vq|oI3U{?MjjmlA0<(wG`aQdU?T|PCk2;ueCv@h7{vsf~XSst6yZp z({J02X8#UQO3`-iL#`Vd=0P8kqXs=WMX=n%>M64b%}9;B_z;(%dsaL8gooksil zk8mP7#YiGy>ni)ce}%04mWU6IoijKU9wl8SS#`Ud#)k?pU{O`6v9~?X5iSR^i7h1;d8o z$_+`tH#UczvekggWf~(Rg8mH5X!Y_zQz3C#)K4`Ch6JNo7z}GvdNryIoedL1 z2rn36foTe^$L!71w$5$<(Nc(n1V?Ie>^eSzUm6Vb2{LFjGzGbov}of3=>k6u zjG`9=9oHc>1a{X$w&sAzX~~(q&a`TQWfo`|&C`<1g9Z0?8LYYxWbOJ8;!Kvrxje#z z)`Cf;(y55)bo~KUxBkURPy@0Bg?~^$;I083l4gOnjLFpVI$M^7X}wm!$}9AKLA_=m zq#_zrwihb47ebb)@aYiC>3?~?c3O~U<^||T768~dFGQ6`$1)UNQ_QeA&!zSC6u|!QhMDEPfrTES;tI``B|}gd3*Crd*KA7fe3AnE?Yr9*w9+QWjlG zZQ?as`D{N6D5ZF8MVQ8g@M|VVw!_1wH9<}cjk3QpOI}kvUg2l=niAH1oTmJyMHG$l zfQN0b4kLuH6VLt-5JIqW#Z&ZNv3Mk+(N>dZ^Wj1EB{Ni8;2nZPeL3DbG=k3~$P5eo zA)Us?b+&&zICLC-e*Gup^AV<$YAgwBwC#POEct~Z+) z96ru{lQf=KC^+9E`R=qLmr(?K^)zq)kG90_=+5u{QFjRntFOEM>=FE-8)#r3Jf@5WwbQQP*xn@+_mc$C;yHw536p5C{M0IDA86;Iphqs=Ee0 z%SxIW`4q^X<`U3T~!qcB)E5aUQp0G$Zbd@#tI7g*rR?s>dR zUEKL_L>1&fn4Seh5n#zISj3jWlCOHC%*bEgl;Yv5%$zQ7~FRjlMPQ0m~fGx31B&&1(?tequf9J zHxNmIev6=Zb%vY8&sBnAuH^H>ar8VGK>&1IFa>gk-mlyg=u-*z%}#YwKdS4&rzaz| zr5@S+ZO|vKg9Iib&I80EK*F?9lC1=#U-W3+qFf1*YA*v^sAgmPw;|MW(22mU zb{>yj8y78%o{k=jlwU`{=^}a(1hj^T))I@D0O1I4ioQ5_N$EMm|M03s}9 z$7xUqV)>p0A_PqU+5~7r6M!}W+Ry}`O@KBu0caDTjX%=92ezfevzGt>002ovPDHLk FV1n~KtqlMG literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-american_samoa.png b/eugtk/examples/resources/flags/flags-american_samoa.png new file mode 100644 index 0000000000000000000000000000000000000000..dde4110a26f20eeb680bcc3bdd0e50f250a21638 GIT binary patch literal 2331 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 Ab^rhX literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-angola.png b/eugtk/examples/resources/flags/flags-angola.png new file mode 100644 index 0000000000000000000000000000000000000000..9191ba5802809a112738efb7b2e35ebdc02616a1 GIT binary patch literal 1192 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 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-argentina.png b/eugtk/examples/resources/flags/flags-argentina.png new file mode 100644 index 0000000000000000000000000000000000000000..22c009475596ea49d3acfe1304413d05c4ba9472 GIT binary patch literal 727 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6i|^kNKr^; zNlq$*TTWuSLVlWpV^Ml)UP)$NVyK0^4g&*|p{I*uNJit^8PR!{9Yh@ZZR?JB>P*tA zRjE~Me8A4>xc$Jiguo9+?F8g&E-acBw&lsipbfK^&+SRSar93Aubcz!?s8}MKHmGk zBCqnuk4sFKt}rfPU9ytdgWDsReS+A8Wqb;{3cj)qQ4X`L8n!f;%-i}cFu%F+h`acA z^N796=A1VOb-X0oV7jGzzEydl)Pay$j}(*5emPF;{ovzic|M|~uVa>GoxtT6Igho= zqx_iHq)Q&wpC2eP!)x=o;}P5yc4=1=Ci&l}``TCX{l?76n;BN;96J2fd{Kb$+@6b< z6`y|Lv+4eIed*TEJwHyGrJ5;qBu#oZPgp;Fd&5dCv(>6kH!YdPpINovvNGGUl6mce zX)_MFPVB?wh7d~?)iYz*P zXzH}x$`4j{EVy{^mg2nUg2(KBAJxbr!E&rL8I&A%Y#&`ba?vD4%yQbPIR24Za zo+_~QR)yEjOGV`@litbg(lNO1duuOaS$6x?`+{N|(Y8$%PT^hmE@n@9w@zDk`{E5N zO;-Qm|9LgsKw7N)`H{7JsgV~gYdkMi`>noSZpG30hN=6vv`?zWC&PVN0&1Lf0^L1_ zz8Zabc)4{;vqt|v+XZMbR?3jcnE8qU7PUY5*KEI&x8jZXT44HO@O1TaS?83{1OPL( BLX!Xh literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-armenia.png b/eugtk/examples/resources/flags/flags-armenia.png new file mode 100644 index 0000000000000000000000000000000000000000..4d52ac1db1c3262234a11868a29d0e8452f38bb1 GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`uxr;B4q zM&sL?hJptScvu`Q|D0^`d0}C&?SgL8?Dr;C<k8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10vAa{K~!jg?U+4i6JZ#DpGz+Pw!sd8qGC}jD3yvsH5Qr{sf~h@ zpn`*=2(BH(Ne4yT#lgj0aJWI*pxB&Je^3YiK+s^Jww#sHlqSu^q%KmV(p-?{d+FUh z!Q=6?DB`q~S{at-5C4TC*&5B4xR^_|k|44+CJ29HlU4E0I!(0i*?_@q7TS@-gM!IkyQszXS9eZ>~u@h@wwS4@*0UqGz_{q#Z=@ z4?$@GY4ofyDeWMN=XZb~Kw3Z=KY+A=G@cLe8?vs3q3$9!oB#j-07*qoM6N<$f{tPx AumAu6 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-australia.png b/eugtk/examples/resources/flags/flags-australia.png new file mode 100644 index 0000000000000000000000000000000000000000..221022c3889195ed297ebd6a3f894b55a862f053 GIT binary patch literal 1974 zcmV;n2TAyeP)q}j*w@#Qs_`s#t%QNMWbn19y zl*Gi77>#{nG8!N@b}H%Vvq(>$MQrR;$$D&_9yoEL8UM>|WbfEd(mg$F-V8^MKz=?! zLB7<~tfR5f2p67|(`cNznIXd_aS=EyeqwX0s&8O`D$B2HCq;ngOz1qGgmyIeYdjX5G4J030|_PkQ=!9zQmTU*DXP zA}s)yE(u#12;1oU?@Ll6%kz~a2T)eF5`dVPb5c-+vDqH-gc~z|Jgg&xvIEQ!=%+?fCmUVP~g+rY2#2 zbv0yWvd<-oE&se^)jGfu^X9p-d-o!2Z54QVsrl@)tIwP}EC)nJdQ)G&L2$mi8`9EX z;X()uq~_pv%*ZlhFmw!4WH59vd-egYUi}q(eT72ki!b2w&q?}f1C1rKiH!6X<%mk9 zM5R)Sk^$)J8^p)Q5pQob{r!U$=l&4@C#MMg?u3N6 z6A&=@xt*8Ez`?_Lr4hK1?QNy zt()xZ>zGWVrwfzGOm_Bl0s{-Vc=6xh=_wqB_U?r*zhv#swcIJ1&g#|v7WH^|I8a*p zA*H1siaPL^%}`$cGbJTI@yRDul$JK~@ZqCp2jJ+@7<9TA-g;{y==H*J`1EP|jvgmX zy`JEh3YwZapWA>TnwmNZ3p-3&+BqQ;CnpQXVQ+7oq8Fp{x=3kp_=vI!g^Z98H|*_g zu(!7%B*YDcLR@2F$Bt`cXJ2Qu6ff6m{h^}+5)y=l$nxcUx91dp-FlDQ+#91Ru!PwR zxw$t82-we=GcDleCNxC8{T2!fS-EZGj*!_5Uw?fIgP{Y1p@Y16`35E?p# z(9kJkQ8Dg_4uFr3;~$qLp`q@ChPnen3F_k`{{CRR5ghFKfDgtQj1u~V5d=WPJ4UHcD5jx3K{;gAqGB z1$A}z0kE@E(9mF%WPntxbvG!v5OQ|5CoWD;T$~;GMUlqn+XbXrMbC_`1li& z`vsEf0J&T?Y{8MnUNqx&H#m}`FWY(e^KQ^8{274pHekH@ANhZjX`Va%3IG5A07*qo IM6N<$g18&5mjD0& literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-austria.png b/eugtk/examples/resources/flags/flags-austria.png new file mode 100644 index 0000000000000000000000000000000000000000..9cbf18b959450bd42821dbe50eab934498ca65a3 GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`uxr;B4q zM&sL?j=T*4Jgkm(oMs>NIn7;<$?RI3@Hx--{CB%z-LlsVYZ*%#t}$3SWHZPvFm2$w zAmzZG!MlKYi?MNR^K4`RwhN3=%rC&|%YO0dUB{vasN@zuQx=C)xSHxdpc@!GUHx3v IIVCg!0JNb?4FCWD literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-azerbaijan.png b/eugtk/examples/resources/flags/flags-azerbaijan.png new file mode 100644 index 0000000000000000000000000000000000000000..39205758b83d3fd968ba06d38e7693516546f5a2 GIT binary patch literal 638 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6axd}Z%-G; zkc`H+)9o{Y14Y{RPv7%h>UPFNkN+1E)=Zot*2>W|*+SEaT~NH;$?=6=$LtpifFhG8 zg=H*U)Ev~l;EHQWfvA?3^XhH9x<~oesGe-wl$cUG2}Al<}lo1x^;tL3+tARj2YY+$;=nTE*xW9pu3>=bGNbXUfx}k+K=*W zD}M2eqmw&*W&Xd^>SxST5A`f@+C2G+)#i?=Hq_KxUtvgci-XEA&7(8A5T-G@y GGywqMaT?kH literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-azores.png b/eugtk/examples/resources/flags/flags-azores.png new file mode 100644 index 0000000000000000000000000000000000000000..6f65f291e307fcdb659e25db123f29204a871f98 GIT binary patch literal 1584 zcmV-02G9A4P)1zYpWSxb-L}weS)fG9&rln@UZJwU?Mn1I3PO}(H&jfQ|I#PDIQe6+T-W!vs<+x^~| z*%=Ru2rd?O*l|4ccbj*2-~aPG`@S>(nGxDozpi64Pdwhsj<>g(UB(ci)dH+$Apold zSdIOk1G_d(veGp{^r(;K%`wKl3{cmTBH{@0{1?quXf&0Q6;Pc@;7d>83Hgv}9C#M{ z@FwH<<`P!uGo6wE;zJ%LPSmk_|6cZtzr^bOdx=KE#DDczq0e+m0%+(+5xh6guH9cz zQ&YvR-CyDBO3}DJX@x%1DG6X^&WSjbV)OlNEDZ;Fa$66=xmjjoPAl}8PDubqCPPR+ z$!Pm_B99M~_-F^-U*1W?&1}Z`g6=z(Cqg=Y}fQcKt@n zy9cPhZ;F$?mAv=+BGkh5n?_N{(ZBXIes7$M@gTL{2roZ+nDMBcmSx=>KlCw?!Tq@W ztMGVh%<^@^lw1ZiP3N^ALj+DOrEhtbWBXi8BvhdAuaoF{j-Ix2oE>i@nGN7_YS=Og zf*>-N@$>D#T|B+6697fdBj?k&+&*H_2$MqxaQbecb=3ybOwPx@HbSwq!WR+yCG+#M zxNe#!H$`wcG6;gmfun0VezqF`9XFcu4wkQ62SD$=&(pK%eX4x5WHYnmCqCig=y7!2 z^jnf^QnCVWlqy%0C5pFZW# zmv1mT6Rqg{*P`q#;FMJSUIkIO{>jk@s;VODY4k!0QM8#-<4Vfh0s=<|Z$lu5&ip4j z!-DK~Zt31mbxo})^Ow{s@9QcKTM|W+(6ubOZbuMA1mVX1seC?<(^+h(XJQk~O%H%F z4Y~}P45*+hpyi3{Ds%Zd*7m(vrls;ID}cU^0p5IW6s4e}Dlig}nT!>X>^1~J#38wv zh`Bj@x|Nede?L3W)ma9=dx_|ULqy~|Sku)@esmAj?kuT{#`H{qM7luGUzF1ru#wEz zaj*QKvTm@bW6=PKNdQ|eY7tXsPc%6PpQO{DlLr?idt-j5@`*o(#fnkx&{SpAb4d?OuY%C7inVL}< z8k5P%I)1MWr$fN)5=a%o_`=%>uX(0&F6Y5e003>F5guHBoFO$h zj^!>E1tlh9Dvg2S(mr)IhtnxCIGjUP1gbnbUbl^c?xZ%n1%Lf2YMSoB9|%>{}$N=-9+8&4DO_00m74p}^O>&yh@P3{Pl;?mmbhN@UYXTy8IcU_)g}-vowl zhDs4AXdXtUms}osxc3MEXGZgMw7Q7r^E8DPLtU_PWp5JG-V0QFl5Bq<&L0ypV-cCj zm`Y;mgjwYbV_E=P`-f3fm2(&J1ZyRZ4P?+WC(SBnm~x zc~=jbXN6hi3}adV@pJ?6bORTn(ALvS-=>AP!~aVb0KbfB0hh#+u<{vNTFaeB99IB9V+5AAq4!036A5!A0KjozCIb^Q zYO#wNEQn0WNwPE>0!rU$ZpyMg5eu4H**+jzR7XT2hgT+mFIV=`Pnkry3@73%D z{62+j7J8q9QewfRDBJ_CGcW`nx1he!Y$9RqF96`tV|QGL^_WW}j5h%QH4k8Z4Ti_e zBofBEfE;h9VD1xCh4dy8rg#AWiGEn#fk;$eB4J7s0B+-#cU&1hq;vs5bx84by_<#E zCmJHjqD4TC>2w?4b`yka9bLCHj#dEx{mFWc4*H07_+uTRT>wC&Da7~vXNAKq*Mi!MhKj zg12@mEWm=p(fk4|IUc`VfJFroHw9Q&B6B6c(jqBWfW>8UAySjrTqyY;q;_JBB64&4 P00000NkvXXu0mjfkfR!S literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-bahrain.png b/eugtk/examples/resources/flags/flags-bahrain.png new file mode 100644 index 0000000000000000000000000000000000000000..c43a9b7dc06563e92c8797add66510bde2a07f4f GIT binary patch literal 730 zcmV<00ww*4P)2=0nc;znHg0PgA&_!{C;=+X?O z|7JoGQ)!`?*P#q>$7CnE_++C_<;Y24Ojf zejZUuvp{aZzx3bj!nGXqwsru%GD=Kxir=_<2U&lJxY0yhKjtiTVOR{vdVToC7Z9^W zjDEK`N{~TnK-_3T%ogF7R*(tOw2Pco8LdGMC zezZd}1ybR|Tc|)RRFDdfqAzWbjzKv}5Ug&%wQT%7_)aCu3R?~seB6VuY=p12A+yUH zky(Qf0L1lU)TbXIKKjL3=EATAq0|rHEmq*omyxsuR~co<4Tydm!Y$Ycme-NTF||B7 zGzLhC-rM(ZpDm$Z`#>V83uOa3)itzdEJTM5ihi_nO;zCL{d>6e@Byyho}%bSJ7iNp zrWv{~Hz6zs!@Ye9NiDF9!LzRiaK~%1B&C)og*68xr)`M&GW@0INIPAwGD;|)0j9$e zgiQJikQrd=A*gIX7KHGeWq5NXj80A|deVyW84$jyp;KNp^2Y;IQ^4RTOg;up`xs)& z0j7KoUoAwqgiTqAks4s)Qk291lh@)`7b6shpvhNbq*K7e%TbmwXwvmKYYvcEhHzsG zttT^=_JIWJLS(S>34Un>aihsuMhWsDWZEMsG6PI~CZ}wG=?^8(0qTOpo#N=%)c^nh M07*qoM6N<$f+h|*s{jB1 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-bangladesh.png b/eugtk/examples/resources/flags/flags-bangladesh.png new file mode 100644 index 0000000000000000000000000000000000000000..357321042d8809eac581914923f85c706b7de5c2 GIT binary patch literal 771 zcmV+e1N{7nP)y4CXlQrrp3evGlz2q%Ap*yl^^ zuEz*Wfm+r;)iUs8r-|pqG(1hE5L|P>Kp-)_5a9G$^PkT;rohc|7PF-kLLoTpv=j^X zE42pRy>Z%lc>pLx5>rb7UcdEF@nQ~3Ekz2zkig7BfLn`oWIK3|173_5?>!v<8ByBW zRHOi=mg>0lHB^ex*OYkt!N-W(olYPFaAvKEtF;D6tb8Q#Xx@h%@n2I&02CsLd)0s< z)P{z<7?aC1KsOT!fQu_3wuki9y0Fr~t_E)xC<91KiECeYDwT_YaiV3_O3DB#uEY+; zDxFy8JrR@vj5xfz^{^X*b2L&1;I=pHbSgWNDEoYnl>v-);k@R|vE`QlcaEOF4l4tg zEATVq%%L3lqs#=G#%MEx|IOXZ9umY0J;t6)-T)pzVCIxs__5-002ovPDHLkV1kdq BT}c1{ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-barbados.png b/eugtk/examples/resources/flags/flags-barbados.png new file mode 100644 index 0000000000000000000000000000000000000000..91edc6cf751cc395210996f372c8bd18fefb2f78 GIT binary patch literal 815 zcmV+~1JL}5P)I?8$lR`pH0-T@uD#h3#AJE0fL|hK}GT4K`m79 zRu3M8LXh6$tyq*I`3D4#RtxQ+;HBbKu*QNQ8bwf%Vl*a@E_w)w(cSd0&DNm79x^)= z_klpzd3W}mcV@m!R^i1&o-*_K?RQ?cAD6YyFF&3zJkwRyJ^@^1@9{sw2|%_1**F2n zHXs`(0NDm);{+hvfNZ1&kk6YRnMe&_c|FbYdRnFhDr7!<=Ic2CFFUKHc@VY&3yqvJ$2pcFX_g{s_K$NVb@9|Sh9SbCiLd}%E*Kh*(-n*{yLeHw*L4F%rxF;38Pw=h z0{zAy^LdzEyr3%>V`w~%OW;NoS_3A7b*x1*jD?d7hE7RpIsnsi8iyxWmhSN6is?BG zfTX4~7&>JvoMbJUVKP`J(xTV^20E(gZczbqVE!660HKjuwig;K-S$EQp^;hu{55VX zsO}b(fex|tLHMu0hcQ0@8+%!Hk1hf5R4TW0g=@P01&DVEJuYy8bzu?M$6WaoK z_P7#&)vXLa&#qY6{96xJHqC3RTbUxQ9oY6?AmB3}6`t1!&uc|(!|%@S)Y^eW z`ke+u#3ehWAO t$TlDwCji+7Wa9)N+kkAG0Aw4G&2I$>#a^myYt#S$002ovPDHLkV1m8}W3&JO literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-belgium.png b/eugtk/examples/resources/flags/flags-belgium.png new file mode 100644 index 0000000000000000000000000000000000000000..44e687fc094477d0e6a275d03d70f926a2c6fc9d GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6j0GbPZ!6K zjK;SYHgYm0iX3>bd}?*XjhogBlXslG%f+V@G0*$Y2SpX;mI;^7$ZVeRz3hJe_0!2K zzkI#>{Ac9rIWs?JJ=}khL3TlA1K$M`2lfo91gTe~DWM4fn&Duu literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-belize.png b/eugtk/examples/resources/flags/flags-belize.png new file mode 100644 index 0000000000000000000000000000000000000000..7146a672fc7542a09423a1683b724051974e0884 GIT binary patch literal 3329 zcmV+c4gT_pP)b{0-2ea#M@d9MRA_ha-SkBxHMb2A{s3g`ckz zFPRrjmL_i37x8h<$=;(mU3C&&vx~ah#h6Ny#A`&#$82<`_=8!z+Nn z&x`z>%aN$sXy|Gn-8%tOqnInAYJR=&-}$!d8p}p4qrSbG6Xl<=Jn>)nvT#2~NH@I600lE|g*Iw+|QP;X4KuGBFq5|0QX0 z1{NGxK%^)Ty+}=P^av2b^zcmH`))nBp`!aH4c2M^MmaKQ>S@F&a4PXj9vG zW&A578~GKhjMQZ2kqezVD|VZUR)H(Q+uDHsOkza%5Y@i2Ij}l zN9-1p{nAT_I}`+j=&2YiBG>#Sjp`;s8$*$bN`Caz~ig1NGM>-nyDa!!^;k#>T=O;5b|Wq zljyzlbak|&>pDa4wbR7ZBru_MCc1$r{09S(`zaAh-1w$N(wCCJq_zN_{XPy|m591i zN4Qf~#%mK^W5=8w2#o$zUip^y^4m@6{7n!tX;7cYmb@T zzyB@f;wr|bD+mhdKqwUB2wp*fS1+GcZKZp#gTPiJ;WM1 zg+lbPCPI=&po<;Pg4HkLcDp(M#U2bl8;3+BrM6DW^w&Q3NC1ygKAK$`t1lyUau7Z42E60_=~76rb>86XhW|n%_Gg}KHNm$+u#J(^l{ml` z_dX`nI~qZ08!n*;om@;=aXELYJ2<>!3n%`(jy(k*(;g%xx9~XoukB~bs4&!CvY$?X z8R;e@Vj-_idKFuD50j#%AQFl&KJf%GNr@Pn&f~I(=q#*5)n=xv;x=!pp65@oAMp0` zACf8!Wsc8G{=W1IFYA7fyvRXwa})i8gEUzBL8+$p!a3r`WgriXW^TefiUw{|Tz7*F znH!LZh0I7dc_e^Gdq8aH54peX!ZuplZnG(C7XY(Xte~@D5_RXJ=`Q`A{F^tiAw@2h za;^0u$(efUPn|+OVFK88k-PsGAp=e-Yi!tj{gC-95Ze0)iyKWuSRxsVmk?r#0ASh3 zWpoYPq@%BcV0G|)4i5^Cj=^U$M&Op$bFBIp39e8MHJ@U7)N}w8KE4=6PNKTqhFxPq zYKSLx>SDCE7KFAQgc3b|`T&$-C-t=<#3d!-6OhWtDVa!pLkNgVAtGrU&#ry}A79`5 z-(3CWYC_yvzHB{-= zJ*V%Hg~oO(0KfcVIU1*uX`f8P<#yd)cRHN_s8lKj2L};}L^R*M%kx{dkg?=f+-R~u z@>)g(9%al}Imu6`5eUS%TrQMKB?5uqzKtKT^x#t5ZZ{iqHV)zNpzvrD{IPsBHF_%1 z{YJKr-;Pi)R8wznZ)`RjcDo(DUQbwRD(&qZT&nD&vT+b`mk<5X8=2g>iI5mOPLUC} z+l^Q(Mx|0=wGMS~)!0>heCZ$pU-b|U4+@VWpuD~VfHyMUz~Qu$;GZyLT_TZSu~?AF zWJsk_R4NtUT`u732B@vRg|E8>NoN_Ah3%XZZs%fY2r6%1WHK3Yx%_`Q53qQ|Vpayt zXWujXhH!XLcqG8r1vS_mKZN|InornqejC}xvhT0E-EI^L1y^hHk;!C~)ZV0A?4tB? z9(~OX4BBkColbgs8gZ!OXfwS?YiBDmnGBIggiJQ{lCwR3J14(6NKkYMjI50)k}W{PD&MJXib-ExmU+<-W;a zLpGK{CDM+5oDKyjvms%CBCX5?xaMvMShZC0u(uJgIy2{s07 zr1GwS?q1tZCjh`-b8eA2#>m#JtyEt5hRA>jy864g)pCQP^MAv)M~>fgJBPaVBC(4R zVn-8y0F%&yTHBAy1s!HN-Mu>c2OFtRXr#kXg2e?dzcL+VgqBO6*C9Z_%CN=!rC|pt z+7wJW6Mxuy(o_1L{|t$Q0!sF+B0gM8UR53+9(|h*Z#UT!vuQEkMUEFKnz3|sb<*eT zrJ%fk+lq^P-;qabPXxGK)X2JdD&bjNbt>XbG1$87cp0SRo6j*NCX2+tRNg%ECd=*P zd2-pW0Vu2OAnCb1I9;9yG0G-1sWA_7whj+;YwcQ-Y4 zjnvll;;VAu?~Y?);LmU;I1#GcNW>BXg<;fH*OA*D(iM%@Ys16rixHSeJ2UwIDDXx@b7M0ajfR${dT!UWV-=ZDiY%0iN>EGHv|YYVjl#_7 z+Vd<-TF9yVd%XSGcOE+r51}ZU9v=w6jK5^C%6Ar}`flFJd<*wKYWll&@4+I8CqQW? zNGC%e5a1B0xmjaF<0xnKuU6i_HO|;OgSDzf#E+XoP*^m;uop##tu@wfb1--PA->tM zjL0Aj8nuo|nTycnp5v>F`}wNlB2Jf+*E9Y|ZJU$$@C3qx{Q#(}YsDqC65$`t&Vrp> zZ@A8@q02E2sM#es&B!|~YzW&xRil}?>kkcUZ(vya0@i*z2hNs~78l6B%~*xXON}WZ zg>9F%GgF*GhEFK(n=(SI=Y<6{;aUD1igHAFn>pF)HU2L{FVwaxcH;^G&;u=vBoS#-wo>-L1P+nfHmzkGcoSayYs+V7sKKq@G6j0H8PZ!6K zjK;T@778{8FtA*l&toPfKUGab>1Y76X#jthoz< MUHx3vIVCg!0ORmi$N&HU literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-bermuda.png b/eugtk/examples/resources/flags/flags-bermuda.png new file mode 100644 index 0000000000000000000000000000000000000000..85ad6e3c2c5d1669df7b1da5a7165e3bfc5b559a GIT binary patch literal 2382 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 AMgRZ+ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-bhutan.png b/eugtk/examples/resources/flags/flags-bhutan.png new file mode 100644 index 0000000000000000000000000000000000000000..5f2dc04f9414d1cf5896e575687b48d52e80cc06 GIT binary patch literal 2661 zcmV-r3YztaP)h&h1u?4ajjp6B2%dYJ;UjezApG@E`+^!mmFU*!L`{*gAsVX+{bwkwab$mV_hGAga zHmYq?R0l{b?Vwj4N373~mUk0xYQ+k?M4)((Y-b-%E<=aWxM=(}-vpxp1%2V4$X1R* z)!^Bu{y?dapJ^L8`(D(80_#uABLpCwXk`2M( z>k%A>HvQuJ2CU%<&t_~AyiVzLh%;#-7I-5Cj<_zua?c{Pf6h&cR zU;xuJ2?c!Ew#|V92N>S8iIY$Mo!ibF#m70-EC|cev1SIiWO#q~DF6zJmm_Kq@y;7j zRh6Mwj9e~9XFQ4{2&k%xAPCIP&Jyu7$UX89FKZscyY{eX8EmgFA=x&TARsL-@3X8~ z35e$iO*Og*M*9&(k?!tprl+S#rINgM`~~FNIDW5)BuO*}0~{SYgEh1hsiTWZwMKC< zMN)7xzVlX+x9>;e(i~XxQy^LIq|~w>U5?WnZbMa7^7%Y|zlX%Jzu;-=V_2Ag7m}13 zZiGD_z`fx*#tt1~lW38zR%sRmI^8ltxj?F1p*=ZG%+i+?f6X^RTg?%TwvwJcg4^xJ zvMhqZAYENOggds=n?B9_=_cIS8XL27^gsSErDJ0Z53Hy7>Pu|fFvP&!_hPliXgz+2 zt%*q@rgrhbZz4UgKmOqArFU_vnhZ*Uc$3c2$pWF44#MFuwr!(p7RI`5*tIHpsX(Y& zLXljEl>%nDh~)J#c+Y(lt5x)tR_etfp-d8SnHwNn#S&O3`LIG;=@LefM1i{MP%`6m z1+!_NbpmIf;Ae0KKo5Nn~4a-}W(LdvC$A9UR9& z*L6}a9U#)EQR(hS5kvwF1>bAO2%b1hao5dsZylj<@Bs0NqXe{T#DM915HhCw6}A(P4A_xq7$8Ka?~C1$8;8i)e!u3r3pKfz!Sm&--r$KS)7oW=8n zuToAgGVteLt(eYLD}nyj8m}(RAUE~ka(NI%k$Szx%$W(qq3ejnViXDm1VJFs9L7Do zg%F@93bHKYa=B0xg+e}0G%-b&R^!yOPvS|=uBgscGay%$XawFvtaA{@ahRGsf+WI? z15nDG;^1hRa9an0pJM~nOBXe^^nwsbz*^VsB z1cO0@$z!V_@hmHDz*0?ON!mueq~i6rq9_WsR-!#Uj`6(4k}eZ{^KC_2qYBUc4FJ<| z=#$+nb`O$@#W4&6aq4w$Oq{+TMopA)*%ltIeEVAQPB0p@81%kEwrmlJb`Xg~kmMlt z%XzZ9KT7J(yIFMmFBm5a0+YUGihDmyy(+zEOZ_9CV%wL#Li*K%IJ!sBb;y?)OqmyhclQ0RWEx8;_5o9Uo-_kXV?ZxM?d(j(|C^iNN05 z*tv5ja|d5U76sDH5rj=63``!qBE6SofTB70Js0-d$$BSw^L@C&eay|wpe^O_+9pz{ z89kRJlU}5j&(U+k4(8|Qk%xxiO#}Xi=grUF#3a3mNk)K-=%)OcFH&09MI)DC@7M1K zVDy3eE=T@(T(SX%ql9N7{ zOE$nI2@Lp8P_#<8+P1M|Z$S5SFflcaD2n(kot}`7rl0+QMZrbpx)E?3%u1P->;f%M z{N}QRhF^S&#ZZ_xp8h9W?)WrAgM$=*@+X3qHQQTUax1Kxa3a4Rxn(;Qd6>C{JOlmx z3=R#En>vGUDNXR_KSH)FCO3}Y`rz&4G!r|WWY^yxy`rPb5G7JgQNrE_K;+ z{f|pBAg6>W`}UBk#rXJVzrm@KCz*ThX)Mzq5DXEim1utAceu|*ix3KGuPcc0`P3f6`Fu(D7!jC?*qKRBC%Qm2+NxiR==Y8R+!9{=2hcAffaB? T^1aBd00000NkvXXu0mjfD-L1P+nfHmzkGcoSayYs+V7sKKq@G6i^W_NKr^; zNlq$*YjSB~N`BG14gMqqEwNC@24>^FbR3OIEG|2 zzMbx!EgUG}aNb94a=P%vB?s9(mkY|9&dw7N4?HLq^Wt1@y`%WLBTHj!*&^e5kxoPOJE z$2xy4*7to9KB2x`KO2MOml_|qYZ?)8>Og<2-1T6Y4d*}oIvaiL{Es_3uRSilo3?A0 zv)bBI9*GU#=TFknI~rO4ZSJWRj@c&Xn#_+a>|}bHFR$@cdCj`KhcQ+szWlUR)1Jqr zTWXx}DP;P&(`qFLW_f-3bAxx&cDV;}J5P5nzTP=C_6Fa_xUEzE+GxyUOy;zR<*Lkj z`tjRR%YAmI&p#D&d&VNad2vji$qm1oT2rs=W9qYIuwQa1*Z5z4bCR;(`g-DpxP84Ji+$#bkf3VTNzZeBeXqVE z?^M0o?cpI7$BakkY!^=C-N+`eS1Nerl5diCat=K*QaNlF|BCVVW3#l33HskoiuzoO z3e*d8?rIN}d>QNTo+&Kp-I6WM8qW1hB@CI2nK+4m%;r1`vJ@W&v;xx(gQu&X%Q~lo FCIHV`DJ=j1 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-bonaire.png b/eugtk/examples/resources/flags/flags-bonaire.png new file mode 100644 index 0000000000000000000000000000000000000000..dba10cffb98dba89489750481adb45db52d56844 GIT binary patch literal 1410 zcmV-|1%3L7P)yf=f-%?+>S_@I!8|1bO+bLPR1Y6Q zS{f|Sn+0DEjK&aa<@)jk4j*0s7t;(#0sf9DSSZ!f0?EnC;G=IqCGa)2WGmF?&rnvT z10G!i(ty?&qZwBq0C(>~Vxj?jbPV_l_#SgWqx$dx4jfnkeDwxo03854fBrnyjJoCb z!_Avuw}%KHxdF$3DF8-CN3q-OJbn5!=D$c9(p{9->!qQg0YyW*u6Un;Kl~z0KJPh9UmVjJw2TV4;}=s z=+`eecn~HhgNFM1`%x5ySFc{J8vN%^sI7&#xG2I08xRN70zWl3ud1rz(4j;6D{F36 zXF730cet*uj+~qv{CRpPwfoA%VfcLABxc!;Kqo`7+ek zLwdS8lg$P-HEO@10VXB@@OV7f?RMV2eH%9T>@1u)qfTuKyh^_gxB}?EtXwV^ilS&= zX7%;PvzC`@=GeDypZ@kSsAtb0Gt)%y{|#{IE+7yH(AwIH)9IwJuuwZVHwW9d>(97; zJ-mOfx%||rQ&dz`(Ae0B$Kx>spP5m2lj-0K`a>jN_k1upIVtV!?egv0H%U%T)($!x zB3W7b2aA*xk!{;FtqmJC$n^BIbaZsc$B!R>dnS4EL}bq%k(QRQjxwvOm41rd-QA?7 zrfQpQZN|1?hyu6%i*RBx==qE#NHyk?_yQjWv3mDhT%nUZ0jZdFGsSUqh-Q&A< zsapEKv~#E0%gbAQ2?A`|w22olUg*x>)&?0F7Qu&N06=bTE?2K!)gL^4TAit|Q2hvB zR$X0PI2;as{P>~ikB`IAqZWdPV?a+&5ApHwxLi6fOt)K27zcv?LfvjR85tSezI|KM z*MyQ*D-;6&E?l@kUS1y4)6>C&!^1%>pU=mUBS$DME?(UGx}l`i3e^CQ$3tmpDO ze}8}Ip`_J{#DJyM+uO_L&6{azYFg}t6-rvI)fxbB{``479#3SUq}7Us0T6j8X}MMl zK0mL19V^NjfQhvMQ3)ljRwUq24JEBsxbRUAC9PJd;HHI=Rx1>EQ$tCsWduGu3)R&o zhmuz7cknR_C9T$S@K}eEmTM{el#>8tPOCx!RcHBi?KqMhmscSUq{Uz9_j|r Q6aWAK07*qoM6N<$f|0U?TL1t6 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-bosnia_and_herzegovina.png b/eugtk/examples/resources/flags/flags-bosnia_and_herzegovina.png new file mode 100644 index 0000000000000000000000000000000000000000..34699b7aaf145d7d50be17ba6a5108791bb79fd1 GIT binary patch literal 1277 zcmVmV z!T3+{aChR(v?aXyVkq&;{c*5YvG_@Ms_Gulshv$~>;X7lbClhh5 zU8}DMV@ij`0(!KAtloIiv?=a8bb+Gs765d5TQU!%(LXTD(q$yWVgUg2<~lJprsrB) zAD-^cruPGVUFqs~;jOPzF$gwdEG0Uk2v{0ApY(TrBst>*27~d2$>r%r3sA^n5 z?oa05tVoF{0!k~}xP0{vL&Kwda&Jo09Hi% z^IWWP6BGn^H}7R`_qs~4{EU!9K#%tEWgp<<%IR;{vTxf;R>d!%YKcsT~17-@!?1*QPnB}`u`dxb6Y7z z8>;gdEsHzA7az<4}2#_sH#W-(yEr+qAXP8FD1G)j8!4co`JOJ0 zAsLNtZ#eQgISQ~`jNPOz@_?Z=bt$s|C!T5zw#Lz%aC30mqV>V?1BmquUU18Z_2m!3s&>w-#SFD pfA4P{aH~IoDTC1$8~)8u|9GlsxW_{$cc4=lJYD@<);T3K0RY(VU84X1 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-brazil.png b/eugtk/examples/resources/flags/flags-brazil.png new file mode 100644 index 0000000000000000000000000000000000000000..3d720c99798aa70081b535ff6a9178a83964f844 GIT binary patch literal 1951 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%0AS;~XV`ak4=824_8-HD^OMr+ z@K9=Yva7m_3X_|x_~)6Ol0~P>g-WTyyQ71L5bced-VS0B*%>YNqPUJ|uL}WxkARLEG o9a<@1_l`s+)q*ivR!s07*qoM6N<$f?lxR#ZsKAL7OmDaENnwhD&ueqXWF5wPHY$BrUi0lju1G9X7e@qUHfOU2KuHW~4 zU7zckIp;q6Irsa%?{h>Cr_B|-H>^PF>P)pt!@~9P>^OE8K@bp$L_9@{pX^;9NA$UU zl<(LFfXf?`xITOmQ2Z;NYZlvsNF?H&36b3XPbl7t=283W75w*phwuMvM5=J){Pi3*?YKsh*1VIC zimK={j~L8Y0z-e6$%>Ql^Lcb00E##G098_y9s_8X2~ z$ZXZO@+vjMrtd-|3SB8odpVp>hj~)9K5gp!vZk^mIuU50?R4SD<4ed^>g;c`OXg|WbxL_-{=J5Fp?%sR++{NhZ>q1nR z7r_Cp+)gXv(UkwN2U{x(zFi*6 zg&$tW&&#RZ!3PJpa&7ZC=BA&dc;;dp#|)?IwNuy)>T9fj{(j;X9N=+zovDmeB5t#; zSB8g>bZ`bAP4Caf#luKCID@?#;_z~_2f*4+$NBX2`1(l!@N%;!e%pA~EQ)5vV9D<48 z`Wm~gY++~oPQnAiQ93DccC=>dOWo+x-J8P4wUk$@Y0~PkkV=RO^Wwm!2_XDKG#%l&OT;I*nP{{oHb)tg>FHsID+ePs~mf?BeW%rF&Kg27^J^ z^ZOn_6eAMe-7-hGnU*CO42D+q8w>{FQDK#!)-;*YMEMJrJ^xU*gSzW?&}2OTK;AhJ z+vuMEq#C?GU)^TNJRwoC5#R1pL3k>2*J_a9XsP zp_83g!H5~Vd01ElK-VB0I@fp#D>4}$KAlCA7NB&ur0ZKP|0_b2uk*)E zZ#sI2v6Sh_&K2S7<;dE3gPAlk)XcCeDN`|K&ffq135f8Vf{T+iQDI(28mv-tAU>Vi zx<-?Xja)=TL>cL-1E}?N^l%-ChwT6oa@P~xvma+~{(`3>49n6X_y=hzRQ-;lB$SjS zA8P81Hioa4BQJzD)8M&;9CUgEZSRf$&nT}_bNWg)r>|t2rT6IS!PGx#@WRc9ggH2q zE$rpy<6}fB)mX{o+$&5)Z!pl$??rA%&T~5B4mOrHjEfk=J&WcQ&n>DZx2XErrukpj z0fE0+wz32PUVAB=A6AdSLMlO}QBhG_!I^7`+{wx!Po2o!g3I{Wc++H~#YNtcgp_mW zv^oa&7|i_G`9yb(rmjxH{LjvE?83b^+m_3uhy>v;ESq*vu<&CuORzm<_E*R)s%FjB zD_p*lM@~T{4z_X@zuAY6ruPRxXVCHWiLcpyay!L!#nd;}<7A^iZBP^3H5iLVORi@o z5ZUDgW(}S}Y*Z`?8--aL*X|au;l~7Sr4~{AM1_r&B~f8sYToetI02^p<8EnB;wXaR#j~S_O>!pp0uUg3NT@K2wyK9 zg`2_#L%o`!l^ZDEz8A;Xq2#~%CSyOp%BQXsxIR;HMot-%79Zk=RWH*!ydy!s?4*4A zUW!(3AkzOFDW87Kf@2Rk7@uw`^K9ETR+gsU#ZOd>{m))Xt84I5_D3Re;=O4D7&Rb> z)%#Yne%E>|0xfXXJF;%~Ivzwlz*W+R?fX?UY7N-g$e8&`PgcwxXjZS2y_M;AWlaMT zi85xT-XNfKvE`?=<5)h+SU`0tft(3%(~zEp`=-^bH3TyE%S%+%HV`)~81I~PGfS`_ zAe3+S-{Hq&$<(MC>EE*>4pH4vOc;ae@^z{=ennhNC;GlIn#)NA)Tx`0NW?U0^+bhv zVQJC4>KQp@#Qb{)nGegUsnt?gtRug;j$;=xxb<*9KVScrzMcD`)u;*b^26C#$?25S zRA@`+>aFB)u@w!CIg@YCP zS`|gh)={zh5Ka?b;=%YSyuI=AKk^2*tr|m2lpg>UyAM&cY#kOJ?l`Vn!3Xh0>_3}M zW0MXCTRD*-9wr(*df^`R4Na}KZ_L0NlB#y%Wfh2Uwn=+&(Qua60* zvZjHwygQt^zZw_Y4%ll(a5v3{$$hgqqdHAj$KfR3=)#~u4P;gvqOdZLiM9?T@aqn!*o1G5YPVO(1jh1V*jDNWtTp=NA4e2!g=YgNdBJlFfH3Vi`T4 z6aIU@qw3%Z3P1b=&$Ab>k`1JxQQNBQ^tedAT|U~RtahHsrCi?&2VUgJDWfvAu8|Su z8b)bt2ED?g*fMV}^}5OIIlqTczfjgsAIsv6=h%NXy-hdXT5f@4enj-joQdzCD=owI zn~f}g;>>$nE*b4)k;wFk#m&FthKAsslV+v^3IoG9elZJ)Sd2t0Mk)~_`SVk2bR0OF zPHs^(1A2DEsYeLTlmCVKZaNEo`j95Ao(7GMs#*=MPByHX6T{m1gAunlv%X4SdIi3~ z>att1Rqx)+?^eX8x~CLpib1*HKNvN zsa7@O;$+RRz5(ptG@;oJsBdT@F};L99|fLne=nf;Ait8@x<Prj;fyEoo@x{*T7z_e(nUv{qk*uB@V>a0>2VYiI zk0eLaZRJOsFQEA|bOgpw^iRj{l6t?CZk^n5b+R$#l~<`5HS1^2{N8N0H)-|!cIy%Q z&ZOa{upuPS)r@l1et(rYYfhUYw1QyVJzEbZQd!eL&k#?ujwNOkGx)8YX2H)Im4-v- zGPrp25iYhmIw&2Cx2#NsH)H zR&KeG1_@d5TvJ#q77^&9AiT2@xuuj7m$FPdr9HSfSrgt_Nsy0%t4aB!KX~$7d6}h@ zkU&=x4aO(rv>VRu>05`tO9g^KM0Z~uGPyn1GwP5?MLaBb=1#6{o8|0nWrTND5**-4 zQbq~4(~1C$6Ce_acynxbhD7`GAit6`S08XarQo@p4)9hmYhq9AZDm|d%;(^_bTo~+ zcI7Rk5~jyR&@aM=q>K`dUA)JG{K|Ia0S5H!$h4Qc8@<6B4>^1FKI3~9a_*W9Rt60p z$EJggEi3o?Qeox6{jyjwlWTXF_EYC1{jac#vRxA^!uySsaqR8 zb6$;N^9Lgli<^(q#hW=C+P0L}wjH2RDo{Nw80>6t+H#vz+YacLO<>N#4M-$LUGk)| zo+Y23XXh^|7!0j9x}A*-NkQuIm0>~dtujM{+?YM-1)LqNY0~OZ)i+@w74!D^NPhn8 zU)b5m%;XggR!oWQMog41^$l8@w0de(jr5D~;mDU0=^fs|OkN@p(?7B!Z;y`v0kk>; z)wLRwE_Qr6e+VmP4KmXs0Dc`5nK&#Q733{s;{LX!k_3D<4p24 zR+fx?u?ype1k=!H>{Dfp22WQzMh^&L|Hc+HSgq1;68PYc8JS$&S+raI#VtRB{nkm+&Fc<_xqUO6qgFzr6IUj|C6~O^U#d>(hTB^@) zCM~B5zb>ALtmNFk`-n(iJLCgr6Fp`j4-2b^3iC2^g4*ko6yQL7I&Uxk1y#M#Z0zjo z!sZW0w2G-eEvVLLdG-Cn9KUD`G+4fil{L@(L+=*=i;a z`_k0*o8x-0Zov?9xTtSABcgEGkn`t!DShKe(M%L};KJN|$EM`nbG~ z;qUC`;>|~9vwAf#kKHH#z|l@lSSL3#D{lGMzp-dTJo*;rFt@0htp^i%TwX_Hh$ptz z&8u}IrI5jI?Igd2{;5+paqQwfa?>)23NRq?h{4;pHy&Og2r@tHq#_QTtfExp1%N>i zNXjT-+u!~Q2O|y2q@1~$-KNrN342=^VL|Q$byRRQ zF~8Mi=ChE9#dP*_Hr);Wb~6{f!O*6xv%HR_uleEO>4mOQg;*p;YH3A5VG&;(ETE{? zy3KM{G7Cb3+)On1)W8xEvO*AxMa+Dqr-=qnU&-du?cC>fx{IF+b6$-y(cqp_scpKj zPa(6E^6umpOf-1p*Gw{U%AVWCkZ6D29NWVb6g_@1%lK{qJqjBGGr~*J7-amI;y{&J zf`^+Ub6<@jz(+wsQa*c5r&3;}er_8g|KVQ>TUWls;NJdb8OJW%W6_3qQ*6E^UhL(^ zkg0 zV-N&t>l=xQ^5gL4SBMPuG?N#LMMQV^=A8+VSXxLBfEraJ-b#BmEFQ*^xB9iBL2so4 z)8irt4RS}T)8nJdqEWCQtp8vRd_JKSvslS3h#lC8Nh3qi=?oYIfvQ>!9X%a+`Nhuc z+ZfkOgJo6qT)$gLppSyC{w}Q=2UAAvx#Wg(6{?< zGk47ylX8m=_vV|AN7KEFvdzI~<(4yY#?L$|G9E!^M{Cyn=S8N+MK;r=V1PfL>u7a) zX01BK4@Z&!;|`lLx*Hqc8-|;rd1tijQ(lEku3E7xyNK&xv$Bh@Mm`_80sH8GDa zelBLKRajcf(6@Jyklg%U$6ye+ez$-f$M0feWl4C8khH-du;lY!S-SaxSyZO5w3cm$ zlE^KtCL-9wOrKo2lgF^>yC^ABnbI0GT25ZR&+&^{czf8>siQL`N#~Kutg-Nk;N`jd zID9_CBrga?s@r-n5uMIJL{|@Fmd!TGt<)k$&)W0%XwXezW1_+H*K?lh^nmfkB_zO& zppFU>k_-Mav?daX@bhw{TW6y;n2=oXmoHHq?c^*ANd#*J|GnvJGUD2UR3fIUzpIf3 zGfT+Mt1z}r$O=Is7Bla)UJU8|r#JZfgEpO-mIw=SXWnbQu(y$MH7TE+$5W`OYv1#- zmRm6YwcbV=%q-#X`OH=iCZ0v?z)rk5u7~M~%z?A%X7<6NPKl_nW9$7+fKf>3O+3+j8=oSLqqj%mfC5!1klbEZcIC(uz8s#i}_md^~fYSz1cgV-|cC&u_PkR%mbU zMoQ}~c~mK)cX$Vme>K_cysPRPS+n&jn|I%6bJw~!StHUkYK4|(qa_Rmfn6t3IDRpU zl&r^SnsoeoTn|>hJE+|l;2-x(`FhVSk~2%l&Z}fV&yH;Va74Rri|W)(Z29>nmu}_q z$Nf@VoUB>;PJbqk3Tsmy;PjPjcAZEeC99OOs(M}-9>T`=hPC^cGQXsTFLqw%R%#LH m56bAEw5NZB4({GR%vo)X>K4%b8KO5WOMG}DV_iT z02FjZSad;kbZBpK090>cX<>69N?~hnVsl_E7ajlr37ttqK~!jg?U;L1lyw@%Kl8qG zVHk$X3=G3XK}FnV2$gibpylPr(S)`OrYEgTNm+H<%s9F2v8?UvuBoea(gTI1t63>- zZDP5SnU^#@uAwqxDuSTghC4IBFfjA(A7!U9bRY}Z(`WvfGiRRf@Ao|K^ZPx|^U5xz zrb_)cY(Q=>V7EKT$k@f}uOCK|Bs$~WcOPfWfo!U?vH%EKxR7HL)0j2ujZSR<=FLmw zr4&6iOPAnjX`%my4d`a%-O%ReMrb*G8jHz9-P>=Y)%uW`Ih+0amoji*@GV;;DoRh@ z`}28DI86C{$@nEEVzycdN=?0GYjhXk{K_rp=g#HwqmNRUl0th~851WC;mn!mc;bmk z2!gEJ;xd_xMT;iz#hQ^AmfTO{#~%~3dp85NZ9}ftvuoF>Tj)yn5K?Dv=E=*03E91m zwxS{|W-~RLHlfj|c;%Iu96FRiY;0(kg=1n29Q<%TPdDzNY{vZrOr46^Vj&G%60VXG5)%h;`t%AiGLjHQ;pT#Z zjAhHFaAc(!|M|%{jvQg|zI{YxXCnp#uzmXpOs40_$?5s058ng;psuc&Igf2+LB0`P z?tVI|tFgqzQN3{^J}Nmczx)8ljy;3f9Nwvz$rQ%X-ShZ;@jG07_#uK)Q!y75;6G&w z<>d|BbI%55&)!6BZSybUoHxjS_`{w(XE}1DkhL$b=Wg3!t}ImZ~*OHcLDI`o1e36Sq=>iEx(9UT|p+@sNUUx z()9H2mBId*ncdrfY+<+TZWZ#<^z?2S+7BQ8-uLe6^fa=Q(5(!(Rg7RkPcDD`9nc$D zynHAwV;R!5kHj~fssu8Sknl(zq;H<3N0R6#4&d)k7Ti?3PXxdr)$(5cPWt&cQ394W zKL7?aIvL|=U}s1$5t=q61l%%#t1cC@qLRJRmWM3t-X&x|d>E(I3V@Hvgm(P+Zt0Na z-3b)k9!3Y+5j#L=a&cCrBU~TNV08ln?3MTjNJI*4Ad2|3sJvcY-rd`~G(G*>0BFaL z?{*a+>*fzYLZVr&q^edVUgx9`Jpc_-87~#?@=EjZ7lo2R3KVmN8^VC`zTAw!%V6($a7oJ4V=w z73?+M$x|8cce@Xe$v`KxVN?5%*Py0Vr39dVP!yx@dXQ5`-bdg32}hkl*d--Sh2nWFS_@>=`b0O)iYwr-tAZtfByA_8g3%fk{EM}1BX{kClb&{I|x~{2y;OJ@{kZ}r%xs`zJl#r9zn0ybS(lh8I5uuiffeE znu+jCPvk4Iwd+C1XpU*yoCizuU_7`$&E{WCMMz4jXMs}_*I zErrz7gf2ut!YFUWrC0G)haVlH$jpAXQ(jkv+wI0Kco?m2rAYAOtRe_W=KTmS?A*DK zoScP(hWgW(n~TM4rg86HB6t3a_4*XXr@X<13sqg%?AH_)+L$n5EsGbwgTv8A@cj9h zEf!P*2VzT}!n&x7?AkupYrPhyz-{g(rWuZf=--ER~nNn+#1&xnhAfxNtP zC?X<=*}a?SEnBGFyqVbNAN5WLi6*&+Oq6l?QW0%6l@zu#GCs6{f_5!UYBlin#p#tc zEa=f$z#AU^Qy5z-cK|R|UV+)@p|U1|1+y}7IqYPg_>hw&dw4Lko;I1l2bcXB5&IB3 zUc7lVxcMudUV#j)$Av*`<78V99j$JzsGU6hrTA&Me8rIt$-N@j;vbFZ?30Un3fonW7s21Q9pyF$)Zn*p~V zP^s`G%;msfFc2LbjVOxvebkTK>UL^8N{SU4#tJIHepBr}kpV@=B@&En=+zzgDkK8k zZOBED>gs9$1VLa@tbuk(K;a`p+u_1f;oUvZ>oY*3Q89LyoLWUPM)g~0v@%{hA3}t` z0f)mufz?7)Wd)bYJlwCV#xBVz)l4TbGJ-D#G*VoA<8t2X%V5^pAZ8@2=4kmdynC*a z+|oldh)Rr3Im2BJ>Vm=<*j~mvf*OP5WOQf(j|`p8IKv_enlhL+vxfF|cc=Oy+_CbP zbEj*hJ!ay*JJu7XYeD8bL7?wUV!|d+U^|CRa8js}Qzo@iAXA`5L0ZB*rbLdx?6;io zpn62-as0w2bLeR2V|cH=1Ns@OsH>~xO0}9Z=Uoi(`wPSTs`$g8rHnP2zy05Bf&Ez? zzl>o%3bc-8l$MrLR^!80#V$seZ`=&^>I|r?31Il>ah$$-H_<^SF-0{}_|-v1#R*J` zNy1mq5u?$wB5^eF`p>wSzn-b1n%I9*g-v*tW=64ThnAvZN2hD_`a9qn>sFbFQvH?a z5F4eH5FHNnO>#t0V)zg@pPYc(qM@){i%ocz$Db(iYJBh2N8r0Wwfr3au{@6yIG5@M zk@gPo^X;Ir#!X2D)HOo0@@@_mzvQ*^(1$YM8o|MSESwj`&>>|EGL}(twHiVB8}ct0 z$lhw_>ec!#>Gin){1BN;=5^cqWAvFL&>26)dH6pFz)$7Z0QB?*dYWGY(9;{}Y5oTo W>%Ts5*b)Q)0000+E(5MvDQYfN;(hAf@P#Vh7Qp8b#9c*tPcbfwrNoZn7ocP+r z&f2>>GduJ3k98a$A(y?jl>DUqW2O0Kp6}Ut-uIjNR*E)`6xkwF@54Wo)= zTOnabYp`Qg*wJc)b#$~fjVO{3qF)UV=02=wRl<6|KJDxWwb2C?Jhu9UhVa{SZbXF3~FN zSoJx@W!vil+=6Rw9ldTmdA5?4;sx?>myLSfI#^Qu9<&3 zl9c?SbSTtL$D|yDQ$uU(Lh-Id@!kr6FdGKMC6+WD5(7&0m@I{*i}MHsiYZ-oKNE5b zl5*k3`UYy>c^@s!!|a>O$eBF(^au9Dj<4=+PU4<4iz!n&(Zj_srl2%g0v}FMtn)Z$75LSC{XR%||2&?6S z^}sn8&=;pBas73E0wvcIC|kkR*WPwcap?|+dFy*C@wOjhPFw~d5VinegDnuY4YrLf zZ0fR7(8v3^e*}bP~&o51`NdSQzI+NBaFJUPH#wUu&q7L`nUJ7{_TChOU$0(rDRDy>5UrM9V)9geuC7q&NX8(d~P>a zytcy>8MToholN-y>y04s%!D zMQ*{Bn5iDN|K&A~x3#hGCl4}n@gma3jpf+Z9fWt)GO@fEfSqr=O~bnNOerp6YEj{N z>5*hFvNj9FQ;wRp8pV4Pk~#?_si)P(ld}-&7B;GYf`bZce)%pxd;FigoIa8I=_>WF zbP_0EMNaM%F8h2Zwo7At?!?})o*B~!t^WrAovp3Z{^}XBGc(A}yL`yHB*#ot$4p3D z-4mD1$V&?~T+ZQLh1JD%Jd(^*)yW;sOdLq$OD-CAhPe9&FLK$$xm-6dn--&s&UlQj zaHw}|yrUEC%SKLgbg*a5)A+&>#-?X5Cl=HBarQW7U+*VSd;x9Lran3@6E1R6qkoev%EXuSr+Uz(_bjLaJ=}|uU^c~jC%3(&C#JzXsb4!~OS%PVW zHw?p6PtR#$RuGkM@X53{GAxrQ3HK<;_UJ9Gdtmm54jDI2dOlc#9x zwPGBwbfzd8DU!^?Za?lh79A10N1TLV3wGCq`Q7tDipw7)D=VF{;v9beo9|G&`@fMYnN8Qn8b(N>(bNH$q&V^aC`$aO!r@w* z(k+LH2%Cr9ekLdyPeob?*=H}zk^}{F(fKM!ae zahe>M+eKy2Ag|HGGuQYSvs$NnlY>~D43LwJ1WF1iEx(7Ea{_~oNtyuwhAD8U6334T+P{F7H6Hf*qRc;(M*3A2 z?tBYj2)egA=sqa($KxTsd$pIlHXo(cwy=hI4`M=&M#++C1Onw0m#xC*pORbyPO|k) z!Txm$Wy>8L*#WJ2I*x-X-L(q3DQFZXJB=uhEK4OTuJY%1BfP11@;^&YnkHFJ#3ktl z?5+^hy{M4g=;DyuVEJ#M=>;cE4ion*3t|#xy@IdBLG}+#K6=F>ufxd)dYCu#;~YJQ z><@*c8xV~N+%Ab-??THToLDl<|2`;Qf!-uxG%8?%nrpM8#>Nv>@IMk|%+)p@ZP2ON zY)~0AXg`*mx5gt9fs?d;Eoj;<5&5rz)aW1;88a-1*aB;w$(RD03G)RRWBZR20(RFW zx=TgSVAFOJ-54I(BWl1v!Y2f(1Kj7iDH4eaf?EtKY791PG^pEm;V~Ii1BQzu%{G-A z^-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`vMr;B4q zM&sM-j)Dyi0?dwloE;8wMHAZQy1LotMI8*Oi!?Sqe#}pHfoTKZ1t|yi4BiFITi7lz zMlru&Sj$+_u&wX=OWt>DfUIi_Ru0(=s0zQ{4bLw~N7DjR_}A$eM_jUR7s$~Jp00i_ I>zopr01d%VSO5S3 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-burkina_faso.png b/eugtk/examples/resources/flags/flags-burkina_faso.png new file mode 100644 index 0000000000000000000000000000000000000000..ad2792dd1df359a42738cf43141145eba69ace87 GIT binary patch literal 566 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6axd}W=|K# zkc`H+Gi?2&9U0v2zo|0pV|49iDU3={ZsBERXPD?A=(ag~fByT|M{wxwL6 zQ(c>1zEzm8;lTdL^Lbn>lUOxGKf9jXleJXy+1tzKddkjREz*5#uNJ_);v?e~rmPx< ztqoH04!R4Dv7-oOHpEyeu2Jz~Ejo2_aWCV{lN)+Ho++_+a~ZY z(JFhx*$D@qPyg@NaC>ILquS|z{GPvToi5cD-~H!T7>m34)HeNSKYiEmxG$C(<}*(B zuK(Q~*jJt|`f6{Jx9s=X346mI*i=@$`Rk+fT%W&*f%~W8Rwwy}JgE!5`J!2^cHEWU zk1zVnuzU0Llmmh3T}vlxd8>!kl`K2a(7$>5y3#xBH~MbZWbIA*TQV_C=%SC3nV2%b_1}?h;+4j^%b@kp7gQy@WhGrEm6Kn}N>_M~PNzNeUa} zVW5nSK{N9$T%sN8m2W_L);xO%0=hrWqTi?6QT2_JRQaOn7_*B1#LWlp!IUKwjBc0B zMBNxR4qt{&rIB=C{m<7_%*#N$b2qTTcN3}s{Yc!ML+@9UCFLg3Oy>1XoH7-)yDkq; z>6_j5Lb>%Gd4{9JsG}GXHqgV7GEVQVh87WP@wd;u8Uz8|AAV2&&vu|n>?^5qxatJ6 zuB21;z;i+OsDQSZ6#X+c3`-}IILLW`f!Glo7 z=>c$BZT?r2Oh(lEGwJ_XE~NFm~m_vmX1c*M^fH= z=?azeGZDY5^y)+X@<5_yrw}oHGCj1B?PL$@>S;J~oZ7tyeC|C|{S!#oxsi}jKbDl6 z?H001Hgmk@ydPP0f&hR>WjJewF5z|k&n4x~mKLg4e@N{ofA<(o?K{6EE@wG{O6Bt& zPEn*PV?A~IK7S%o8Bue7N9?L42t9jB+U6Tiv+~A=)Y}{VO{sGPJi?Ti@vIxR6pb=M zQr=v2nTq+D*eeVOy?c?cZ4G_ieBDFO;d%&wLe|4WW;v8k<)W21tu~a2@g(ltNXVF< zNZ!wEZ(v2q77A<5b~cr+5dff3MzC(!Ql`X=my|ngEmW`FigxA<)I&V?765yX<$w!j zPsxy!x0cWEGUO^zn^ZBIo8%uLHAOc91k zPqvL%#7e zqSG$vGmr@QQvjf>={94v?tQyTP*T2RIlnpKer}iEP9@^YVh@`LMHuEc7BI0)gnTm> zuCGA#k4x=*1_MEagPRguhypZfT} z=(OX|hESTM#uzQf{AxV+Y(@{ed$wxKBl}{EkyAEAg+m+CZVJqZpNdu$>0#Gh1av1j zJ@z$LCoQ6n#J>LA-LsUJUt`vUMLvD}<;*q)zVr&?`gxu*E%ruMm2Trm^~pem92f#L z%06rumd@muae;`bLmaO;Pgcq1fSd=qJq4!eCva-)fv1){xZ885#vWjrenPi>b(sK- zGJ=mstYcU5TFIlV)7F9^b3LtPzMGQ1&{}p2L*{y%HqVn{q%xdc$!qy|#5%8?DSyx< z0;a@_=j7M}Ub{ifMVBcXGmY9k`?)!329`tloxX?VP(C*&&7gMAe#*v7qq*pEmtyG% zFPfq++TtA$5TOWT&Ctb6k9|#2?rd>4KWq2=&Hoo0f`B4M_xPoVy~>EA#sp5MfA%sN zQFGsRH%q-#!;$Kfth}+621k=`SI_&aF-Zc#6``z7TEws8ej#b(Y;DE3Zabzw@AH4u zf(1c9_x?NRSEM1R)siZQt4^@0bQ_J12OhHL{`L4{0>Ts_WGAKZM%*tY9XLf1C=KmY&$07*qoM6N<$ Ef*nb|&j0`b literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-cambodia.png b/eugtk/examples/resources/flags/flags-cambodia.png new file mode 100644 index 0000000000000000000000000000000000000000..cdbd0adbf5290922f03cfaea065c41e27132b79d GIT binary patch literal 1447 zcmV;Y1z7rtP)UqIMBls1>@f zF0MPpg|1xOT^Fu&<;IOm!PRx+M$mu3jUZA%kb+RH7Oj=Ejn&qqZ4#52OwL`T#*cnn z?(LMhV16(#ob%@8$&Yj1^PUg^e@T90DQ*L}t(pOD1Guf40d51ht(pOD1Guf40d51h zE%7IRxYh{@B$^7QE!;vtJO|ed2v1Dli$+q|a0*M5k#zwa=4$c67 zPtTt7!I2R>jg5H1VS>ZMd&YX(+fj7gNxZ5K#DG8|LH)UND8b;aG5Yc2cX64*B7^>tLk zKuU?dxryTQp+q7-6aypG#R|kN#xQGacDbCL$ z08djBrPWomXcQ}z0-#(hR^ElPH%G@CA@L*Nx8q7tD(_p55Tf$%eg6p|Kv58iQaLfU z3Y`$*=NPAXovH!8BS$ziIf-HzP%0q;0qk@dPeTLJG?AKyA|>TQ0VNQixV(%%9#(w390fC_*j^4Rby|Gy< zD`(yEr+qAXP8FD1G)j8!4dbsh%#5 zAsLNtr`!4;a$sn?U)LJsk=3QAcEagUenC?DrGr;{PaZvJu;F!s{eihhFU~*sXu-N8 z69k+t^)3mDe(+Alr{KWRB|FVu*(U4ntp2s6{A}cl`Pw394*$KpV&jRv?m5N(b>wB^ z_J~`lGu&|X|8d)Z@di_l55qPFY2gOl1IJhrxHlLg3GLh=?X@HE;r5U6j=Tb;VI5YM z!Hv=iIqLh=>{YSR#(|om$K5#k*7Xv$W9DYiz4;9Q+b>|1|Tg^9&QC zW_;0_!F$R&d9!1K=X$1vmD&M(jx*otX&axDbl?oIKFi2@;nCMkT~9wh|CHY^_v)|6w)I=;Id3snOgywBy47Q!-M**Y-G$q^^n*@3ueWiq x`(Jmx^GKVA$>{?zZ9WWGy$%hHpWhkn7~*6zFK$;7k^#mdgQu&X%Q~loCIByy+du#S literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-canada.png b/eugtk/examples/resources/flags/flags-canada.png new file mode 100644 index 0000000000000000000000000000000000000000..9b4ef572656acca544c4b580d1992e33f6bc436c GIT binary patch literal 838 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 gwSd`#H0jNZZ;H7xr(JRg1GOV literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-chile.png b/eugtk/examples/resources/flags/flags-chile.png new file mode 100644 index 0000000000000000000000000000000000000000..35afe4fb7caede38c57710887c25fe8670771dae GIT binary patch literal 584 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*axcH;^G&;u=vBoS#-wo>-L1P+nfHmzkGcoSayYs+V7sKKq@G6axd}QBN1g zkc`H+(``MN5@p)!qcSCa1YS#!=a6z);TYh|;^geg>m-rU?9F=d*|h+HCzr0=xDw)uaEQLH}c}!@NDbC$mJrJTU#bEZFw=}#mg%PEU##7 z>wj`ZOlp<%s|DA!4t$>P&hp*E`bm*wnvC0yRLumW2(L5 z$QE7H?df`v!B>j4hfUPxw7SF`-b0VRJ=XlxSGn9%%l@LK)PbyP2?))k42Kw{-DhE2uM$*D3g|9M=s lXVhWX%3w+?5i0+Hxi>j=`_E@vl7X?#;OXk;vd$@?2>{fC>azd< literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-christmas_island.png b/eugtk/examples/resources/flags/flags-christmas_island.png new file mode 100644 index 0000000000000000000000000000000000000000..3bc2523f317bdb7c72cfd7591fc3e4e4bf3acb78 GIT binary patch literal 2155 zcmV-x2$c7UP)|f9IS%d$D)dUVDx2V5n^{mlzr#DYwK< zsiHz@QbbJ&dMO6y2LP^um#vy4amm-1)5JJFQ ze8KkO^%{KJ%ehP+*4JY1o?UDT&F^i;^UZwopKs=ynPbWI&~}l%>LV1_0BIql^z1C! zi=+)C=|4dO!cdTySubQ~gzOau$*4G=w7WYQRTgNb^$8J%f(&3roP-)y6a3p6jQ-3i zb8xD8b&kdoubGmKJo-nZsf@szo9O>+?qvFP+xUBz!fRDgN}S0T&Jgl{7nm_S-5=J_ z`Sv>WUeBaDIMuuxRPfm(cFv9BR;=0FB)|~S)=~n0evG~|3nt6IDW}JP<_OHr5NxZ6 zB{z@~2ml~7mFovr(Yg0g^c&fe<>!>LtHTDsI={h^EF)?CgaQl^Z7(9QyN=$Ii*7yb zO)-D$Pzc20K5m_(T)a}9P>#W=P!%=e0P6d-CsU~mu2w@;z~6=m)*zqO#BK>Y@Kj@^ea zE#{p`q;Wvz$#W_OkgLMhSsE|TiD8o!Q1I1lP1cdut@7NDXY+%NGwB=9 z`TSDfs5T^`?L|Z`&BC77iQ?|Rr9q|2m59vo9)((;iA#aX48bFL2Ga&-z9lNLziWcY z5t6kCh(rxGeY2E@AIQgHAHOlJJBMp;t>?z!cgD`?zQHIl<@C~ED(Jl)I^SN0c6cRE6zOzpH_z_nu*~CU z?d)o|QI~I|bekKG>Tx2>rn$W{d}wJNklN4jl`%6#Xn ziY~w@gH3|3=O#bHPlQ*2h3*jnFNP(4a^B8@qb^SL-YkCN?b-tQeg|u73t3w2d8ZJn@QRZ$3l*V}9i7!tp`dUMy?%QZ@!CgmBa`yl~O zmufs&qVr0t%JwE3x&<9?S^`c-Y8iRul3e=3Ix)>;X|->{dZvK=T?%=sV9_`il#Tg1 zb@}noPj&u1Ho@yvF*X;NY(C@QmshL}9!ZQuKtZ09s&Ws7c}@;}+(pw>Yp=xr{CAL7 zc3q~l(8adjPW-5Pt}Tb!B_nRmNnUT#t8GhnTMWZgH0t))S)0^cptS>rc& ztxe&F=PV9<6vF~UV+Q+oF2}CQRM!3@rAA)(LnBfWpFeBMrFhiMY?jO9sS=ZzDe>!O z8#$x%_P|JB*7{8D^~N)UWH{{`d}2@OHFz|`0(^D(Gz>$a%YwDF z1^i}5V?sk&mWB^RRt`q*ohl>Pn}OdmHnIc)w*pm}@nsRy74{sR1Eul)4|K~M=#C3g z?h+I^1f3cLViKWoQfjIUUxvWU*s}f8ghq3|;Fgh(u762&XyYW0A(51ifw* zAq2hs`h+IgUX^!tEF&k&PR*u+baX~6cbDPNXn1Z9U#VytF1s3y4{BMK$>;4p9{j~d zIaBb&~>k8=Is zDukvctZOL(dir!E3Fgnv;+f}9ajE6@e*8$6*tLAZ7b;P6LfE`L=3ej>_1NY-(&$RD4G5E9{3RFj4Q)sUnl{F$f!6^_KJhZ&d3*2 h006}`K=#Uy_z#VE?`!711@Qm?002ovPDHLkV1haZ7{UMm literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-cocos_(keeling)_islands.png b/eugtk/examples/resources/flags/flags-cocos_(keeling)_islands.png new file mode 100644 index 0000000000000000000000000000000000000000..b89a132a1438df9b3abb5acbde958d6184745940 GIT binary patch literal 1717 zcmV;m21@yfP)9c zA<6_FU+v>a`|{$sa3)gyWD~E9D(C;H@eBFzSA! z#tM6$fwV-puo5PR>XTCdQX*hcq_gr-JKTEYEPrwh?zh1AH=K1_r$L~?pdnC!do2*6 z!f+L;t@`8?fNj%VD^K5s@fnbo38jtj&jV<;!^&~aHseBI!ywXv<O>pNQ~n^bFu>NHA9dh z=RYk|pPV}1?cC?of+ZM^mV)guT&{*tBgC3v^Cd_MlgR@_4}%G2C~D}>sq~HY=OKBF z{`Sh05zc}gIX_8ZFv2M1J5A8g2KjYj2OhS;M^~IOTKR$IuWC{M-)`%dQ4=)Qa#JRJ zUFa-F4};rH9Ssd&R3N)XJ}aW(ISV9&!m0il|A3%6b}*w%uDQeWaQ= zz#;D~mSEAMrO_~FtlTu`Dy7dtAKR3XfpSy;lwwV1+R1}VcDNBn*MnGXId^-PSlBV*nJ(cs>I)TA`Bu-aJSjJ@9v2=C&AQ_ zur?MZg~HBjpcZ+UK!^%Q7Ql>AP*Edw!&KNm$F-d|8jw5&jxKOrz%5y@x4^YszKkpX|DLu^TVOiTYZC z^~q^@)DAEI3CGLidGjUMbqy3dke=gNuqYG4qdV8vSoQB7h}*2?vwX1W4BDG)aAt*^ z;j}~vdU}J^1|<(+)=6>l9@{&Dp%dlKP*;ns9rDkCsf*C^^L+6N^)hR;^SRju8KwGV zC;}$_mJ8tT_w+x*5c}N|^jC1e#py4;0A`>Lol#5*7|J z?}Jt6(TOz4jo}E-uhhU(UEErFaco*+$6uF}Sa=YeTr7@>C${B^@$!b*W8mUSXL(P>WQCUZ zvmvhr62rWc3skx{)T(<$vrUZK-U11JEGF0NP;aPlGg_ujz4pxIj_cantn|B2io@f{ z-gcYRYJ1%G$wOynsW;bHZ+IsO(x=1eWnlDhmHQ>DSK8>RhI6~gJohJuZc4W5r*dfX zpaOnb0Gl0dXtW?MM0|2zV>Ceg4{-jT=Qe)J>wZ__T24#!eV>)hP-X2tw(#2md|4nV zH3u6e!!$o=K~MN?0h-!jr{-;vszAmf{~1J2`1RGszC!UQ984SzmsWv$W*RytXMBah z{q3-?2~;E#^y+xm`kY#)i`-&^J=a~2jIRh_A?d#F#)-`?A!&-}tVaO~1K*0mKT4O>ab*6_QvjA)3Z5c3A%7co~#Gg0GUr+e|&DPj1L80Lbqg*PfMJre6LB>si;c-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`v0r;B4q zM&sKXj=YBgL|hO4V`I+IS}1klgqYzP!wXB)RyDDtoOv`qu%IYhKfmVu+wDF%R~e(2 zUofm?ENQsLVC9g_AiKb{f$xHp1A7MV0_H7j7r@fFzZj2ws`x50Hxf literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-comoros.png b/eugtk/examples/resources/flags/flags-comoros.png new file mode 100644 index 0000000000000000000000000000000000000000..ec06d658dcdf7f5962884f1207f2eef7cf9e2c08 GIT binary patch literal 1459 zcmV;k1x)&hP)W{|SYRqhGnwvD6x@aPb-~;lYB2NN`a@=v;^Y7Om z)~}8Oy*us!@%7)`_v!t4_&)w*AN?>>ES@qzf=b{?M1JPJnzw5cIMu5Ox0bLV2QWJ2 zeA*mKNrM)>T^?>tA;rzw%DxEJ*Cukj=gG+ik8qn^G7j8|rMO;8mrW54O(A8(e6Q}0 zpr|f^V_lJmp;Q!N9y;MIE*W38#IWsJJnh!;nGIg8cy%Tf8|o7H`EC@#I7k=vLh{81vvO(!jBZmmzw?%Wt^fV=N7m^vD5NKT? zLze%=^N)<HN$0C@Y zUclFDz9S_z6@Z_rOWFI|hYZ>W={9wdr<=#Llq{@H>oDDk9J^dbQRzDBI%;Nd`N~R=DMJ`v+&|UxVj*+o4cQx2Z4Q|n47Y+?z0Dq#oAr&P0~s=(2by2wU}c4kNZZ)DLrZr7v)xQ$R1(=~ zIRHGRokVR%4R?*5Qe{CDxM%LA*R1z?fJB49hNBh=svM|XffXMJ+?Mkre}2O~bFcJ! zXW?#CiU_v`-X4TxKz_A@k|Tp;-5!IM|AX6Y(BZPvX=vxAX@$sSGU7B^A`~jBTh9ZK zotnd*<)4t5l1)`hB`#rj!;<<0HkDaee9?h&?Ai_ta~*E&YvE#R6?1j-iB`ujYho_C z#Am6x^B3KwE;1%$(b!YZmCjnv-bBd1XlGNIh2*}mHP=VNrw5U*{y0co$7O6Tt4H+X z21GWMSn`KV-~L*AllOr`riQO zgkb9lIS+S$s75foifCR8ew_aw2S#*&Xv;$AUk9$lQ0fUeo(>Qr5sa@P4lW3ToY3Ru z0MRxBp?@v7wBgbdavnH9h(<83LbT+CSx)Ftiq>3&{?#DFhFeQm_#0dV=mpd7lfnQ1 N002ovPDHLkV1iAuvcdoW literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-cook_islands.png b/eugtk/examples/resources/flags/flags-cook_islands.png new file mode 100644 index 0000000000000000000000000000000000000000..2c2b862a45e907f67da0620bd0ee27f97548bf4d GIT binary patch literal 2798 zcmVf&j`t>7*GfY)1&30@KvAPaQ!&LM5CvjVKtV=PWRQ8d9}J5?=AP(z?)&lV zwSH@_#oqhB_D1kv;p)2XKI@UuP$McXi?`MU^Xt7lS|WVkn~0~q2|!Wcx7aWGwnZNR zHB|-n&M?E~@)>j%&q3q8tF7|;s}No?9ZcH1l@tVrVrylSovP6?u=uEfbD zR&2{UkG|6gjQo74lviNI=I=X2zat0%!lN=6c&dbR<|BBpcnwd!3C60o9+9V(vSrm6 z9ALbCFUH&V>X1gGjeb2QlYz(cIV~MU`U-FI4;;hXSc@Ac7U8qTsZ|yC z7;ny1n8{St$2>6Uq0zv0xvP}R z(mX5*GB6AFN5#&TpmXt=%FSU=!!|tD#UYL2vya!R94mCxh{nC ztU?TQ#f-8u#&wKEtIr0J!w};Zjl%AikZk102O9EJZ`gs(lDTx#Q6>Mk@c~9+Ok`8h zS+fNBUM3WkRPd?aMXvnv5UHsSQd6B*YG1yY)@*ET4J90hn__OF4S- zASc%z8M+5HJ;ABt`*7-fB1b-%%=DFksHrM&>FfEty(JVyc@fucr&C&11-#hz!)**H ztElD+Zx=?*4xq5Ooa3KOW6tUz+#D@9@x!l8#t}W<_jS7_{zvKy(Js^{HTkoVM4hKm zA5v6O0YG7KIXeR)xElGek!@*N73Z&|0I)M4g2Li*07ecn;%U@}Y}$3{mEpVW3g~B{ z$DPw&09?NL0Jo(_UlyY!#47Tf+A|Y}Aw2=Gp5RMtQf`yB0*6`tEf(OlK}NjiF&wdq zJQep+d3@j)YK!KQGGsgeeeYkV_W5%j`yHlOYQ?s@6+C#-|xOg0)x~8^qtmY0OJ#7`f-1r8Qoh_-Ws3dc} z4`sPe_*^`IsSk?~|7Mr{xEP6PHw-qtPu`wGeDv@ZC(K9juj9Wq8MGzzv{i7LcL;3_ zB{r-W)#l{k#kRN}ox!GEm&h+DMWQDrGqQ35ykyU3rN)H zfkT2WyH6)HuuaV0fANyTt zvwuAw`&}WwpcH{Xz}9!iG-=c5V=2)Svu~>_E)Kn^Ei32I`KL}Y9xvnN_3 zR*`45=WuStJZfj^zjG_*5$|~nL#!gt?1|Py#%4Ac7XtK@sPog2`F!>7i73@plm3o3 zIl<@HXynZ6e(~hym$WJ9FEN?)d*e&C`i3La)5YYdF9xRFI9zv&Jq!Aws36;_7;R@vQCK)B(-v{t zurEU+6gYa}Ub_QVR@LCW^Ct$n?IA8X7p+;7=(%@0&Pi8^bW_3JwnvkGx?0K@*?-z# znRb+j+vynDe~PY_a-%UpU0q#WO<^&Q)^4RjMa+lKx)U6p(xPZvp2S2lLOxhLk_{_H zArc8G2oB}Rp%Yvk=ED5_u?=iB)D$TwENf$mt)nSz;j`0Wq|Wr>hN&%sFA7?fd|Rom zsb#BgIQ?CHiHgfYW0DKT2R~y}%B@DWJJvcQk`dzW)cPxJOSn5p5y=SIvDUfKm;f{H zc6EY(6|vthr@OwGV`pRV+Hkg0G<`R{!ORK$$jC0D@9Vo8jCKCYXFHLTmEpVH)3G$u zL0zms$c0yba@$JCg+$a;73kAThwpYzZ}7w?gQoq)PK(q5YHI5^dnt)QeI=+U$sWZ~wxtsj0=(P!lb6C9)qE6aV81RFvdM zOwDJ2t8atG=g)M>L$IFmifT@V#Zz8UO-y1A8QFyt6qRw(cLo7I?l_M$!+E3`0Y2`W z^qoOLQ5hN8g~TN0P*M52Z*z3%0ssgE0`!M&Co(Pzfk1%USSfwY^_ViQ522Tn3B8=m zWM@nIn(N^Lk1L7WgyvgL|@N)fh(D8d6nV%aF-?0k|2o7+H~! zt5NBA@BE4ITMt^T`Hw04)2(Z^@K0mtkvaO;nuJ-Ac8vy zIowIeY4BTn_(!gQ&ZNs9f`2vtFTmeDfxnyo0St5jR-|^%umAu607*qoM6N<$g3>%n A5dZ)H literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-costa_rica.png b/eugtk/examples/resources/flags/flags-costa_rica.png new file mode 100644 index 0000000000000000000000000000000000000000..a818ec8508f2219b9f3fd642c597cbd3ea050685 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`uvr;B4q zM&sLCj=T*H0!IVH*k?Rw@{mc&ocNLNvQ|db&yy+FKJNJ~ab_i}3F`%>Sxgy>XMZqc zzrV}lw~QgmA(%mTfuwvw?R6x+W`o!T5eM!Jt_2V+eTyLKK;k|88>%Ks`Y~>40O>Zi bJHXF)iFclkD91{mTNpfD{an^LB{Ts57U@!~ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-cote_d'ivoire.png b/eugtk/examples/resources/flags/flags-cote_d'ivoire.png new file mode 100644 index 0000000000000000000000000000000000000000..b8faecf0e5456bb934368ce3f2e8fccffc1c7f9f GIT binary patch literal 278 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 N002ovPDHLkV1gA=B@+Mu literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-czech_republic.png b/eugtk/examples/resources/flags/flags-czech_republic.png new file mode 100644 index 0000000000000000000000000000000000000000..b68045bb3840f67812e732da82c2bd08ed8dc0e6 GIT binary patch literal 982 zcmV;{11bE8P)HRZ>UKbRkXh|DF*AN+yB zANYf!wh&nnYa#hV`9uD?B!n>JN7)~2OJu`3+8Nfe#kBACwe8MrySv@)_xI}$sqbiW z+kL;EukrZruIu}L^}6@n_qq=|PuDMPhkr)ThRj{e_8gh4^6`6$kt$?4N zds}f8ySez#gQjUBGYK_h0RWL`f}`$7tUq*x&q_d4CZTM(b5@=F(~CNML9SPNaXM@) znKun7Cr3auF^1g$y;wZSiHp^&E4fT_o8Qb#LS?i8dY#`wKkgDaux$PeBx!7KL&h7R zmq?{Kef248_Fv$`=Psi&2{qyk(DU{7bEDErB9&(Of|=N)QT1u5tP`iwDrd`UShe>& z^&dNo$Rt!&8=w~m4p3gzKzJa|iUl*V+igZ%)^vvMY+6-u-+RT%J?E)wY%}uGrZH>- z^m@ZlZdErB2u4`3FrRUbzjqr<`_|GljY}1;aTU9H?rk+|Ox8@<0KH%&#+@hcQ2ZfW zi}G=fvzs|?#Dv|qZd7_HEOJxjX%RItBc^YFUjIOx`_Dems`TJmluxeHA!_uHEcxYf z_vw2Ii`-PyHd!%#5X(N0X}=$3cQGIPzE~9ju&98wy`L!QsAFO(ZpHXPgcdL*8R1C# zOI$%&eD_}#QnFET4@#%!9kr^?)fT@WvrSc1wh843%jf!anCKLqWu6)Fp+; zx&WJ|vZMPwySltMG}VYqLSfrY-8|U*BfyG z1rZ-*at*U$|Hi>-#sxUl6h)o&Z1XoF{X>VP85OX&zl$=tmg(`J*?EK;wt!qU$=^e1-ODTN7`R9B^j|Q zk8pN?iK#dxN*!x^K3SbdIQ#0pFC1=v#iUf!>MWM{4!i^?Z@WZHC;$Ke07*qoM6N<$ Eg4pHD$p8QV literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-democratic_republic_of_the_congo.png b/eugtk/examples/resources/flags/flags-democratic_republic_of_the_congo.png new file mode 100644 index 0000000000000000000000000000000000000000..739c239dc84721d135495db8c10821eaa46bda90 GIT binary patch literal 2075 zcmV+$2;}#PP)aR4JAEhQolW zN0KASCE2~*{&67)NiKJLmoYQ_{&%y_KKuQB_qpf!?MI-*F!(>vB-<%Ub6#a?>QMl^ z)gsRA3i9{tYtWUQP)kY9dS;9~2ta4Oh;zHljiVAkXaNXYeY5N(!k2`uQPY_UKCM9a|<-?QfU52 z#?X3?7lPdbQezr9H)A5X|2WFU*7QjG4qHi4%`6>P#-g!1ut**FJOb`LGS~OZ7@hs! z7xW64o&EuesPbg`e*Rp&G!mX8BCFiS;>>cEWNjru@t}Lb^{$M&LPl>L`0pC@3ixvR zRI(Flx!9Uc_Q%J+_q`xm?4o$gZkCVVf<4-ep+eJ#GOpb+zUJV)1+@b5lB>v0s0I9+ z%Vhfr{_XscIp<+Y5_~+Bv5!^Ro46JTu;f3z`BcJLuF!Sa#PbA*|Ecfx zzknbZ%p3hT*5ZB~tuuk>?P}MYn630qD`DR++P4I*} z4~x{%=QWGe!B1MkW#D?|1%#5 zPd-_ORgzYpEn9l9s>8mqE5 z@l?h>B*BN;AmG{&Mf1nEx2?fSxy!&lPb1-R4MBph+efgr`UU=au>hZO`zi_;z?1jx z2cSz=*iiEaHrM`+g=2T}QuanHatDR?z86*i_GmZD$8Vu{%x|rhTRHH2V@L& z;QQ~ClxSdoS|jOK8iE3@P8;h_KS%lbB0BY`KJV#w4;U9;$En92;ka`W&wjayTF=;? zYZ=x{luca5wA3R!a_H}za6b@|(FDcAlB}&P&Me0&x1qNRxcACj-zTGcLz)TzF%E3A zRg!0Gh!$v3<9VZY5oLA7v}$ny@9j5$W#hKctR_-^;pu+Q^}>wz7-OyHPmUEq8MR0q zEE>CmrQ^y-ifTshfTs6l+4KmGMd{&;W8x7(6G3=UZ=TNOSeO2Lx06K;uL~ry%VBt0!zA!+HsHXgMh1d|N@iW}rpf?9Zq~ zjWo~=k%~+CtU2?d=`YklBSJGq9;75^eNP*G!DgN#)dbIyosJuFz zQpa+tTe8CP8Swz7rXHm<=T#=zP65z%($C(!HRcMBdq5{;p^7EjU-;pMDU>)?aMGO@ z5x)@&pik(yO`+{8lWpsGos9uoY?~J)t4SKvP#D8><$x_1t{CzTl4FNNB(S`h<=ZGVTfmy)E8ObubF-vIi8j@RFnas4GU=y+3t0!gzpY(*M! zl0l~)MR{Ej>ua9F)oBZ>h;Y;^fIFe1;p=W&cgm=Z=DN4UU;41mS5Z<8e1^n3^#!c0 zeu1ysM?|8AuyhNG_5~debwkH1CZXe0A1S|8iApmt5cuHAOkQy;qwdCik*pys$>Z(;7b3GU_!;zNYtr>1~{I?rAejWyNT&Q7vxHohh>JrY+N;5qFG6@~ix}oE= z{-NVgm+Uzl`de304eaw&5+C=st%0E9P*+H;u#{+EFVaZL{|MoE zYb5{XJJ8V)9CRG&3K)P84avXmhK}*w(6Kf&=s48XX8?i>i8H&QqsG)FsDF^s~3Yf{sI7{{!Z(O;b-1?`!}7002ovPDHLk FV1o9W^mzaP literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-denmark.png b/eugtk/examples/resources/flags/flags-denmark.png new file mode 100644 index 0000000000000000000000000000000000000000..b0dbee4634f723638b6ce1528e1dd8ed599ef7d3 GIT binary patch literal 395 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6axbzho_5U zNJit^8HRpNfg-HW8M`!Gt|vIEi-@QlJ9UWn#zv;?50y&fk6k--?${&sk}YCtAt%%~ zI`p<$e|Vnevtx5Zwc6x8&!(=j-^u)q^TCgQ-((U#Z;RL;cRxf>+V>?x@B@QKKOQ_1 zY3RQxlOVJ4;*@E+36mLf7-#b&aNkH_h(4gke1pkM@_^WelMLG$eAzaz<`^~TCR~0w zm*@7B8xya^O~02RVg1Sd)bp&rcjaVQ)PL-MA{=3Blj~KUZvN=U#jC0e@$XH)J}y4u zlI(SLz7FRvQMv2-2i~v$@Fz#g@ZyZM^-LIsW7;1r|A1X(or*}uOS2=ufMf7<^>bP0 Hl+XkKqu`pi literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-djibouti.png b/eugtk/examples/resources/flags/flags-djibouti.png new file mode 100644 index 0000000000000000000000000000000000000000..d0fe548be2ea15ddaa3ce34464c488c5203f06b5 GIT binary patch literal 1065 zcmV+^1lIeBP)~Hf;dF^nCC5hY;LeAA1pqh#X5t0z zhV!V#!83UDb}f~n;^)2jt6r=pLv1QiQ#Nf&JHgjD7?i(X~&m8u1}M7K(eDk|$c zrtD0&yqK z0$f%zCSyvDSho4+gC_z21n?-KGqIE>TeQ7sAqCF_xRh+c_bVFrqZ%c<`R0S?0$j31 zn~9}7j}kh~q@j8Nwhf04)!c9`Yci^+tY%6z*O19eRc-A!(BEHI!^V%yXc(wBw zCpu~uDU0g90n^iP@gl@xQkt8N;NePvZ=-n(t1$;gc>$piL?XMdM@C?L90ms9)F}uA z;QVu~up3=QpFKYkpBhvC8nX<^oPOvV(I(EX>V8 zIxS5=s+i_#=mS1qo4^tN{-~-I%J3()N%*CRI=h}=N8o9{k>X95I*Tk(6mt@N>>C%tM@ zH=YRieQTbsU^jnmFL+U2DpCa`3Y%P6?B#ai8<}N2MT!8;D$pMpW^j1~!)~qr6YCP- z2!}7?6I@jWNEZK*mC09X7BG{ZqbqogU^XN(kMC41Af_dFbFqiXr}w?c<2w}#P|ZBO z;g9(!dK1HGj@wx>C@a7g4mV?Cyc4=k+Q|5k$yfFj@Kb7*u3$Hz+_GPJeCN3WR`N04 zSa_eQ%^!S@<3D=@?3gO=Eq%!F>SvhF!F?>|zqA2Z!e->JFL^gKNT!r+bS7VEdyxEv j*MrxHsH=_6(h&Xy%~$XuYeHa$00000NkvXXu0mjfv-#m_ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-dominica.png b/eugtk/examples/resources/flags/flags-dominica.png new file mode 100644 index 0000000000000000000000000000000000000000..0c0f6ccdffeae04e9e975041a5d5cc2d077d6bbb GIT binary patch literal 1259 zcmVmqQna{MlD#Yt+fTpp%zOiExX;_ zIqdviY^f3xubdfU_PzYGv)?oCe23X@1y3wfgedQ^ZUDBtEqQInc>wl*d5E>k?g2n- zZVnR%8EUluph^Zr4G^_T21E@IwMqs=4G^_T21E@Iwe+Y0muDp_tZD#aBV$ovAi{nX z9=Wcc;rACjQ8 zxFN6MUmD}`r$?|Q9G?^15VWpG{rH4+9N-+01O< zK{g!rkP50i#qE6=(!wC_D~6^vQZqgT`HNJ#@bIxw$~+SZw4Tne=dR!rRCpaVfi^+s zw9d)RH8Al&9i=dYpnb_jI_(V@`b?Jmyq86O9-qIYq=b39hA?WqAn}4Pf%La=@Zkr| z0l*LffU@2=dj{J$GulgM^}?%QJ~nLdC$0@xfg9iq=)9A#d1=1RFonr;y)c)1=d{o% zdl=EJD+xlsDDY~d#Rry+GZ1_U=yyCDY>I6?sWG)6Xt?My6?5|3i6^O)Wpt#EQ}6X4 zDFFY<$x38JRPj$_{aT+T`dgpDz*x)@3v#@WM5DZXTCR_XI)n>6d!X1sY&rYb!fG zIlzGh7R%dRW-ASVYTx7QGyCX_Y~HJ7%x2Fe$Bn>FXx z(vmi*>dZ1*6~~$aGRh-$p@YMggJ%mWL=1pymCm*vmm3QP=KR{A@eoR>K%1c5(?{Rk zYr!v8wGZ@YV+_tYN4DIeg95o>#ht%T=T?>YvsXw->a#Y?1*stM5Y0QE4E*PC%SYWT z{bh(D3ba{y){L9j!X;Pba-wdGL)|9Z+-lk?JXU0M>V2K>8*12l-@>5L!r2GZWqb}E zNz)ng*mRS{hu`Fx>q<@u7Y#wum$;f>WmAk@?Kv8~7%P@n(4Po?NQE*6`xBDgDU&J( zUjA+z(=C?6{uz?@ra`5Um<7f5_8bXMusdaja`O=4K49mfIO&*ROLrb9_JU-tfTI*X z8VMn3@-$vqX!2IQ`OjbWFDlZNm_6~jV=ycVB1K z{p*S!_`e%)MdOyw!R!bC4^~%2g;DxnpkzSQ08y)CK-2(Ht7Jgb08y)CK-2(H>kqxe Vm6YB3m9zi=002ovPDHLkV1nLcLKOf2 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-dominican_republic.png b/eugtk/examples/resources/flags/flags-dominican_republic.png new file mode 100644 index 0000000000000000000000000000000000000000..5e4785358c49441ad253387182a9618e230110f9 GIT binary patch literal 844 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6i|@_NKr^; zNlq$*OMY%X7a9W&O$&nLLfDcr6n2pMGVe~IjKnszWMn@sUip8 zPh((UYWH+;49RGGJL9x>NT5u^{_6A^zCL5cw#AeBmbEO{a=~okmj<3&8f>nunw~DY zT&r4jb1rt9xw7bLt#Y04rJ*J2>FP5cXH9$$xj*KpnkzUrF>Ov^+MJz#+4atI?z;br z{rThOV!r1ZSMFUBJaYH*@0}MS_P*@-{;*hV-93>MmQ@?3{tN73*um~lv0rC6X;xXI^=*(m1Diak;i@IU;1})x`zc$F3btj zHl2EOi-}p+HOI{QUy(QJ9b$VY|C**9GVPW{?H2>lrG6n-kGy!VId4x*fAnXAqUF5_ z<@+^MMPjeFvcC9p!S((VljiugnUQ@#v4Q6%PUwE%V6N?|sw1-^`Fo#`pUIW(Afalu z9L*Dt-hSae!>W11C-BXxV=}94POoput=#kLb6bD$UZtr=*b076>sZ^mA;M?M`!z@3 zeHT7a7O>^Dg52(z2}(ZWBJd^O2(VWp|@J zC(KP{-5-XnlijZqjimX}Xh(Cu_RI%1!jr z=-&RG+qy8OPsZp|(aKxf#Tz#M)YQp*IpwM7!q--hYv=#iCvik}b7zo~b=nt Qm|z(^UHx3vIVCg!0KKedU;qFB literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-east_timor.png b/eugtk/examples/resources/flags/flags-east_timor.png new file mode 100644 index 0000000000000000000000000000000000000000..60dd53ccb96ccc9a982a21b6c9882262495c65a9 GIT binary patch literal 1393 zcmV-%1&;cOP)62{SB2recDb8b_SO;2a2an{L7CT*v;v zXz#kao-an~YOmcev|YQ;tIKoGJ^eo4-|v2Xp1Tuvubrbm=gmYL)|rk7fWG^wIqa}z zaic{`ww{Dz0``7?!H-Y?6;C>lFY5&5WXnn%CSWhX*>)L!hR)_!GYO7>(mg$HiI4#R zKU|O*^lNN-F#~(Pi2t%q(3d=Mi6G1XfFFOA@eXOM-{2r~wFzAY<@fZ>h6n=y&RvrE z>zYc%DhD%*M5JXRvRfxOl6Zmf#?SzOpDrt0{adBteg~F$!dNz_Ab07IMhOws0D$vu zg`VC~)~|FRnn5ZQk(P@n9Xi^L#EFb2F%1A{>rm+OjIyE3fhd4^&R8}8D4nUF4HFsw z(B7rsz8YX-nFCQ25Ja#q6OryVp>ze&hT|_ZUQEgWfD69`xYRw$WUMkF zm<42a5Q1@38Ycv9Gl?Ht<>2_63$d7mu=apQ$Lms&yHd-A+cp4T{YnR)zO@jmCENsp zFmzgD;Dm}ExI+r#jG+ONB;oVLUIMOLF_Xr9PHg`*0T}Jo={uw%Uzz&ZAR0ARS6Ab7 zIwRV%v$I3TU!1+khFyOm2O<;5k|U72$HLrgX2cnHP;DGAG{EoobL!M7BuNUjRaRC~ zQ&SVx@2l3ERMdFzD+YIw0JGMZSoF3P`(1`VGbJ!o*4f!fad9z6j~>P8bkfw+#KD6H zX=rGO=zHdzk4LIK_+;Z!VxBAD+-+grGiF4|uuD=gtN{fD1+=%f1E44hHk*yMwl<22 zilPowR%GY%_i}OAqeojE)bZA<_|8wA+F+>G>-C0?Z8jSK_4V~J2m0=3KWnQz-0(%8 zoO!mu!krctJa56|h%BDTAi{vMvNBp*TO&I5_V!LVSj#Vd9)9@`uHTFuVaE!QMf)r` zN|Ik2LJF)_EBp8Fr@6VA#fuk5bac5~6c!dHR9qqm)qo{SmQY?^&eEkz$ZcA+wBJ6@ZrNWHa5l_ z?Gts%J!72EfQhRAntLTadp8%m&3N)^|JbtFe{t$WeLPVO=Oxw)B+j*h4om)|#& zlkYg0VKtb%4#Qt-3>;Ud^m~SwyTQ`ZQd(MC49}&@W@y@PhojyC(MY!kBDZD0rUx@P z_C^k7)4!9~H5h8r7(A(>t9M*q+?liiTOP{b$m`*gS9)~3u2Gbp7kFufU=akpVAl&f@)@^YLFCi@MsMrZc}qSO)CaGMfX>&g0rKmFwT6czK^B zAp>@8oz33TY`pa<>R@_DeLU0tGdW?pe<=A6)N%A!TCs(800000NkvXXu0mjfc72R= literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-ecuador.png b/eugtk/examples/resources/flags/flags-ecuador.png new file mode 100644 index 0000000000000000000000000000000000000000..474480d4a5f6e657862bfa5a3d47ed8d12bb666f GIT binary patch literal 1338 zcmV-A1;zS_P)OAYdmw6wIe-Q9M# zdz_v5yf7yE2h2<&`@5Zs@0n-b@0<6Xj8q^P6IfdiU6kpoK8i6(*RDVBEV?? zr&AH&G=S4l?OaREyga`7E<(V`ZzJe>p0;KmJGy6)ZG0@Y2}oxJ&m9f3 zkX4zQO5pXokPL~ta|VZwk7JZ|;_-R{{wltCH%ByV50_-eEMS`O^vgOoC%m{_E=(a< z%*m{7^)NA=XL$53v2XxkN|f{x9nB`+eWal(R+HHzAdyy?N;T3N`IA&eaO@KW+11VF z?yZQB#)%Ve(pG2i>VAcmM!1z|BUU{|IAB_hX8j>JHdBkLs`QTpc;o#l{CH^#V*G@M#9qw{pxc2%b6S zB2a>Td-riQ>E-gIn^S$y+|*96nDTA*}yYVYz^4u*9DAr>Tp;h7J`u zAK|{xS{5Y_J+WT4MSDpY3WNQP6iNmy4F=2VO`ceHnn+E_YCQX1gEN!RFKr+i&EX5S zFlIC{xbP5^OVmc1h&8S!FkzyEVSX@a7nVJppkczsE*G`x43FqRGQJo+tE!o)dzOj# zOZ=W`!xL?0Rk@4FIfK>hGB#8{V3PnvhMsL@A`u^kFwi||IyxITzB@>lKLx;KAxKCu z@CP)uY}Jt@JIFv)_aCukp&#~sOv+fsA5&FqaCtd*t(RK4jy2&aZi73 zBEHtc+MP|*)SEP2xyqbUMf>t1<+6R_plw^=#+_gj>=>J6q|uKe$wY^f zOvrJ%qGQNrj+-;pc465k;ESK~96phxv-5N2lp;d&BL<5INkvf=3IUBn56-ic6I>Xy zeg^m_w$z&6Rbo67AQVs-8XDsEd>X%+rd$>Xqd=%S$I%z3xIaEhQ3^76V-8Ku+ks|> z0KxiLlDXh^0*$-avaua)kqT%$Z`s?$Jo@I2Vwm< zEV1c5OM5O&T0$2Z9o`{^vMrc$6*4-T0%w>U@SwYVtX!So=fx)h3CSqXs*NyduEH&H zWXu{X@vN_ag76ddBw0|~Fy$%$OkDKcTFIK?Je|2&&QEp&f46=@(a35YEYp&f-#mcy zR@0+DTD^!NOi7XC|5Vz7p7jOwg|I3qX2KOr)TmnF-`91?R9r$ftY(vb3w2cf54e|8 w5#Tg{)2Rq>8o=pP1UL=gbSeUz25>rm0sX4K8|&mGT>t<807*qoM6N<$f?YIZGynhq literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-egypt.png b/eugtk/examples/resources/flags/flags-egypt.png new file mode 100644 index 0000000000000000000000000000000000000000..11b7cf3e76fbef86bfb415b366d391397c74b24c GIT binary patch literal 713 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6axd3o2QFo zNJit^8TiZ88$(Fx9eA0fk z_sCj1=bvF;J~DJ9J`0alJo%=Xuk10akM)KNUJDrn7Uk84x-TfI+q8*yv;2aS|G#dM z4rXuAd9~%AUeqnN=?f2U*SLLPmED6zw!|-z@psy5jAsQMVNfcGPkzj|twwwmXT`!I zhQs;}oO{hR_IJgeU`T8cN%+QH8ZY?k{fYN)g6pcAellg>V`6G4G*RvNDI4(hpv(@L zHH>vH?@#*4#31OfIKxYzkbT9Qq-W2?<+Wlyaxg^SX!^so;)p>A-^PfbBRm1T&)J_9 zc3)3?DYtNYcebs|=KC497*8ww>0HXW^agwJL_To2tVX1Q>~rqVV|Lfq6r zLUDUXbUoKThsm}Vcvjgxu zhquZdSkk=q{hY1mG@COR8B8kpg&r78Uzo)cDSVm7sne--tzF;3qEiZ!pPYGQQ=VHX z-Mhb8GVz!2A(mjb3ry3tEAAFM`dGwMFMIoKk1nepdlJ$l1m22SwDah_KR-bjJ*uuS s25~Q0#y25K!BomdKI;Vst0529MXaE2J literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-el_salvador.png b/eugtk/examples/resources/flags/flags-el_salvador.png new file mode 100644 index 0000000000000000000000000000000000000000..fba8b04775fe4d3292d3eb22bc51e9f54cc3943a GIT binary patch literal 768 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6axcOt*47) zNJit^nWw!&3MCxQ?=?QxWBlNWigME}=hPD_rxb(>uQo5a#d1l>uqvQCN+i&6wwT}* zy<4u_oKY;DVG-Qswgn4kxOAQ05O_TELQT)-E7s-DzQzC9ccA)TWA(d-j~~~?^xlmX zyDbqLc>?ZsTGs_@S_!W2St<%u}UT*f#ih)H43p{2;e%d42286H-5B z9gJn4DY(>XfmMUxv+q&5xpT`mtYI>J9ByzgPHC>!rLvED^_xQl-UqK*lE*&7dxPk+ zJ7?8v=5Z9Q-8-)@R?nn=^6k5cX=0P+6RNgE4Y?f}{-6HIpc&38CJ96$ibNPsK(~7oi>^%7Xs6=$6 z!Su!|ptWTVWm6VjWc7=$JGSw&`-QtpExKbwbh@A1vXbzwc|A92$A8w+YG9wGy@5Yb1Q-7`Ek1J*TwCVji^~mLbK-r~5$BmveKhOwWv^0ise8ytYONamTgc$s`KIW$6nSI(Zi}~^c`^6!wD*X%p uvz+~BzT+$+YLD?L=qmKeI-sP1e~jhVpInx44Lt@-tqh*7elF{r5}E)+(om8B literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-equatorial_guinea.png b/eugtk/examples/resources/flags/flags-equatorial_guinea.png new file mode 100644 index 0000000000000000000000000000000000000000..8c211a62e78c9e007fd6805898f7afedf44aaa68 GIT binary patch literal 1156 zcmV-~1bh35P)C-jR1ixd_4d?}5R|m+1|?2N(qC=+A!w z00@R(;%4X|_d*B@1^_S=uBK=B&|-(=1dCQTJoN(I!yhbl*j>$%m4&9N=o&hVnxi3T zs%j+iEM38mP*u}%`{<75X&sGj=f=>{oC_hP=Xxw!$&KJ~R8?9oAKgj$#U6`or8D>m zs+zYPKDv|ERF21<#6suHxz|b~7RjKdd-Hhw4+DV3Vom!RnPT8TOWHTzzG)Tbc9&w2 zv^_}C$S9GiNdoQ1n2HyYyxjq65_3TX_e)nO-TWD{Y$jhRNLMLkG712o@?nLBJvOX) zONY>U>2u=YcBa|H+J~NCc6Js3v%Hc)?@t&K?I`yZ^H}BknJA@1#sL6qwdZsG^^L61 z5JGo%H?dd@fMhaBC>&z_n)Lvf&1TBW%QMwUiL7)t7kgtoQ|Bd?nALoaf5cB!a}_o1 zHSBHLi`(x;lJx((WUamX#TR2oT`y4$A)L8-2B+J}1JTtelPhS;Yok6;pDmS?$ZF)5 z`fu~}SG`u4e5y*{^}NF;E%T&SvkeNk3k0WH5lhr>ZbLjxw0iHV5` zR8__HXa)HXmJ*3XkR%DK)k-uP#o=&dLrW7G2arl5R9sw4V`C%nc${!JOj%hO^6IrT zH8r6q3bHIySXh{;QcCFB3Ij|}PZJ0P@cDcU3=EJ=Cb8S?*lae6ii(hBIbEH!NIQUS zCGyPK>Vk;Hl>TDq|3F#+Y#aKGFMmHm-fVI?oOC7SZ@`Y=Woq3YBjrHxkYWJO4gSh$ z_c0{(&*k#b9nAqef9q#XT{)3c#e>EGUL3f{$*Z4YQnj!4?iQ8|pvM0rCt6No)Ui9$ zlSKpA+273Z)>AoKJS-BxuD%~Q+IkuTxm!HkA%ItW=lQU$Hs_0n1p?UZZQ$^=FGRQq zVO{{v-m@HPuM_1Wgt-9T?5XEq$JZiVgdhRz>;9g1uYV(0MGVsZuJ3re^IOp#!uSiW Wu4Kyl;`FVi?K*AJ zq;1k9O-NcdNz)`wys^DIJNLnd3Gt?_z2123B>X?loqOlp-#z!tJ!eL|xN@T%98e4n zDE6%|ykEk8;L?Td(>K@c&m50mxBWdgIDgCGC5A15V)KAv&$SR5+mFo?Iw&TfsZ=a*NIW(1&C$J;HB7h)LOS8L1_4x?cJwK~~m z*>VoX%WE{+X{KrOqger{)kxOz#Kss#F{jb88KcgT-Rl;xQX zn#}`>=hiDK{;X_oiW&kSml-l&FQeaeNPe=)#KQ^9dk#*k#S0>;FL+cQn;yddR8Cl) zy+JcLpm=73rkt2lN1ReK0w7mv^jnez_mAP_6t)c2=Y1-hd=~tA43V;^y%J}U<@8sx zSOs=$=I_Uf56`Vv3ua5)hQ+=9JW^Q5B1(5he6}Qvi-x#6xNy6t{ z^dXnbH_OPSn$ve@0Z4v2BzGJ61PN@AMz zwgigf?TvZHv;ahlMRsb={=5ZqB6e|+ve*dxk41RbDX<`Fwz@gtaQ6N**?Y%9H9omU zQdc# z;V{(~Y?^X#I2TSkBjWm_%}tEl0f(tTNU{I5q?m`Rt4TV#o7C3 zmk-pF6@q;$dno1$4CM-pWZN6+UpE(M`$Gx$T7#_!PJg2neeT^ZJWKoEN;r!Q=A^^O z?O8;-rTxz(M61P|5{!PQ6?L%rF~B$uZ*;Dvm=D<2yOA@kZ5KV(^qVt+^50XWz7XPe zD^gzy8T)0tqBasZS6jlzea8Qo!bXDhtrbM8MIUt-{dNobX!9no9m(#G^fHtW*w))m zDU)r=xYGi#N?@yiiJc_*sVd=SpXl|tn;v#3-IoCcZnq-&xheqWbbNxGt(0_my(>>K zU*M(Qe#TNQvmf+*npsKAv9#P%CUtv=9TSuvNm72)r{$grCLT}sFT8jCA?Q8lNPtI)&X{aWc_-KSb5FxuX?n(_l*b?Yt5_M1#KIO+% zpazq`s^_z_dmTgh0^3*jQBKSvzim(#RTdXX%Yt8x;pG+OhZ2nartwt@{RFREx1M4? zU`Njlgno1C294^XPAJYogC2I!!#*NO{1JZ!7|V$yJ9;)y%m?heZXH$c($~f3{KLq2 zGR^iieGKIa?CQRr$i4K5QLX0Wj5?NT;pN^win)N-R^?Ih^8Gf}G|NhvEHCx;Q_L0E z-IYT-mq!v*PqPAWrnQZ2y&Ea!1K#Ldjd3o&)VH1*1~8IsXIn0w^xl;{SaD_lAu%HW zC)+w0$`vT)3%t3!`--1*t)>KUynP`<=W^)-%ev;%rg_x`0FHGmIlt0}mR@_QY?@cO zN3OnxV!l8zAMp0#6(6`k*x4Nu>h%}(PEd7!q^vW3o#+1--J3RaiPd`^00000NkvXX Hu0mjfhLIRL literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-estonia.png b/eugtk/examples/resources/flags/flags-estonia.png new file mode 100644 index 0000000000000000000000000000000000000000..0119241bbd4e3fe1b2e4fbabc27d9bcdcd928d21 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`vMr;B4q zM&sM-j=T*HB1bOlX9@jrNO7N->M09kUJS O3-L1P+nfHmzkGcoSayYs+V7sKKq@G6wn|BPZ!6K zjK;S!V>6;tWscRWTY64gmO1;{8hP*F@Lxx*R^M$+PLM4NO=)&2wP15fJX&RVAyPzb z+vc8!>|Bc;v`+CmzNf%Ilxw$;Sz7zzxoekNMP6UC)bsk+!)r2csVuQnKi<8=_^@8t zs)^bwopBD{@yeywUz6 zx_-{iZ@0oaSLrcan$;ToIo54KC;x-0J+nSP46C)-zf*L6t)!$VZ>NZnndiau__Vs> z)p6x^cTRn+*qUMUk&$QZwgrl*l?PKSbLRyfOa9uEYqDYe3#o%Cm0`VYM=oS_0~IZI zPzda7Ic9zPT+nvaCBIG22_#GNhFFSKo)J@=u!1F_W^teHG?DptE!R{lsoFHWTq4ig zd0w2ac+)5Cecblvb2c^c|Bb&S|LU05%91Mmg0!a${kPv=crU-;_qE*_9zN=S7kxZ( zpXqYvndu%`W_EEep4i^M9&&4X$4b9zS8bHKW(VDlt@)PvtERbx^;d+SX!==EP3P*y z-CeVl8|{A8GRO42yY%;Dh3@>2+Jh6LYg?u=DNh8NxAmNY^6Op(pgTWCEbck}`lXg^ zQlzHaWtDlQ{lR0ooJEh#Xd(~M+Cep|Du_}4=3gZVLiX2m(%+PA1pyr$B3_M1TP=M`ml zuD#})7PI7Id}GHX#pMp`^98!6usyhSjPKmKH|MLYu1v6yvpE&-^~|2Bd&;uw<{2zf zK`XZ2n^5=T$vZu^va*!QrP~Y`yjM=r`M=e^?#Yo3L&g(PUR4!W>lf_PUar}5{KuD< z;idVuZ>tu(dwVgzGWpLP=D*Dvo(HF~Ip62|AMjm9{_VSzi&Ouuo__R@jJ)MxZ*zUg z&g2?~?IOf8q;Y`Tt${ RUw{P$gQu&X%Q~loCIE|N7$E=v literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-falkland_islands.png b/eugtk/examples/resources/flags/flags-falkland_islands.png new file mode 100644 index 0000000000000000000000000000000000000000..cdb9a50489e9aefce9b490928b65d3264ab1f854 GIT binary patch literal 2563 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 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-fiji.png b/eugtk/examples/resources/flags/flags-fiji.png new file mode 100644 index 0000000000000000000000000000000000000000..db49555d21e0dab8f949196a05401291ccff2b54 GIT binary patch literal 2237 zcmV;u2txOXP)5wV~w0-|Uer4c0>7oy3r zN{wiVN5uuBCPpYxLR=fSR#6mcJRXdViLFu;jT)^Htu=AO7z~1X1VI!WM7DuhSZAhx zG~yQZG0`ID`1$Ldd*APSf4}eC_wK!KBsU^HGIx%TMds{;R$s^b_&p@2p2Tc6^Egrx zrZXV@0Oi|K0O&9!oYQZNB0Og6V`BiOjUB+sU=OO};xX0M(>XqtsqMNwG3I$A)aB%o z8#ErxuEW^bD%kv|2^{-88ZY+_&uoycot-$67|Am2P0A+3VAJo{_?}J0A#~U?8^cnB z?4=)}nlOsu*-I%5kD;-oj3NDe$=<)1sL4YS1c}As5{ZQO-g%vKQ6acTFGibw3XhZo z+>@6hb#fr>$c1NEie(64vD^5d#u~@eBpM2f$qO1!)%JbZDCBJTcpTqu{}4Y*CCbjWdWVzC>w6EXt4p_?%6}Zp1+DRA?C&y@jx-quHB|TjD~3`*`!?-i0jv>({K?b`+!0^h7~HkPtn27;#=o%4fx)S6Jb>XCulX z{Q&sKfpbKyN~J=hfBw~pK)8ERS*>T{!tG2iHesK-k*4x0a{GrSit_3lgZ_n~q!3A_4=t@MQ37utx?xe=vqDxBv(%zM z-I?bg%K!+*e7A2)SbDp}Z*8ouXbwk-d&>|hN801al+3WEOt)k?( z16>N8XsS?R+f#$JzaE*lflEhia4u9mUF<$&mcG4wEE4hq@f+C9NuE6kpHXY|r=j$%M#H`)> zv-^NC>*7Qus=t~`xw0PJRT~=Y>ag}RP`u9xV}=tdgMuJmE&2il1XfWf5x?IM9&Q-< zdH|OWEFm&17?a+BdfsXZM$JOevm3SB5*YH&AGvf*{fN-z{1W=Sy^4&B*O7a<<8@#& zuB&1w+wdg=H*O|t^#p!5xR>a}9%fL963-j$sa)nm{rp~-SNownA4_!=n9cIe&=3eFq`YlryNEBk2V#FktNPSNL>EI4G(=bnvJZQn=9q74MP9w%$%JfaU| zvHP1$(FV+4yM(fuQuMWYOlA`+r_QJMPkleAbJ=|OZ!G>|IT4`|OnGBEU=XD%?AkDc z-HGqw(%v5JH{X#LG#=g2)3|=QhIO938Tfv(=;H6^+RZWsPhQXa%Tmx8>QPM!#pi4) zat}AE{_p`wb_UYor;66=*3}CKr4@3cfU=!6ZqBaFeVrUTVm6!6SLnH2a~n;KMzpRh zY(yW7mDQ-@)}q;U7^lgg&jMmFnVN{4 zIf1T*Cx48&%guJM<+B|KGWk>QePkJY5fKC#4R*Go?{8EoMHLTiE7IznVpWlDv#RQI`-~dfZj{|$+XQp0)kA=g(@?7d3gi} z2V*ahb9XacaN~Q*t93ZpTch{?BhvdmoIF+c`K0@NDDBdhuQGCwN~P!x_qMuTJx7Dm z4J+>m?sRY2-)(Km0I6I-hK(P`v-9ZW?A+Xbt{{`Hedlq-XEK7&vPs=$9)Y_^?HoC- z_n~5MIwR#$geD`mN*%cx@ETHUWsCLNoB;rWtphm$!%@$XW23F6__v`*E!1k02Hd5x z?_er_p+=i}2Rsj68qnGav^FmdXzc`Ao0kT(b^@)-L1P+nfHmzkGcoSayYs+V7sKKq@G6j0F_PZ!6K zjK;S!H*y{}5MkZl^V=jZW@o`;R;F_-vlMfGIc#z?JHfJUQ_tP%mL2{RmF8}0dMM4e zxP0pcdp;H+F3qJWe#d_1E+NT`w`K44Dw{7}z?vb_AhsZoA*#WRF@sTx6-hwt zH-lna{JZBLp8wvQ85g$p?W|L?em#)gDS5Duzr4YA@?XIKbZwf+_jj4!{2Ce&pFDFh u!xn~KrVC6aTn^k9G#GRp-~u<-L1P+nfHmzkGcoSayYs+V7sKKq@G6j0GrPZ!6K zjK;SY40)XbMGjox4&w;AA@HGg!{SC(UXKJvF=6f*6(>18wHIXWntk}Mb$8_*zs+;| zz30w!9an&eZMvcs`?n?}CW~dxq2kW)t2EjI-EYF!(Z;G%RDZa=6SOyC9P^ aY59fa9E;pLGlYN+WbkzLb6Mw<&;$Tu7hJgj literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-french_polynesia.png b/eugtk/examples/resources/flags/flags-french_polynesia.png new file mode 100644 index 0000000000000000000000000000000000000000..d8289e26798d1342fd536fcb3270b54ebe077586 GIT binary patch literal 1252 zcmV0nAQP zfY|_MCn>;e0J9@P-b;(R5)`_wFKPjDLf@vx;c7F4?%+G`VdA?Vn5kODmiPCQ9XtW6 z_drH*LXi@;0`C6;so8L*0kX?zKN7pmHC0--MPjn17fMG~)%_I}4f$?u`(-3%0C< znYIW3QjeeH(w9TvX@HS4V9$Z#SE287h&(bJ&sYJf0v)eI=N_)z-^$OY*Msj1ShN7%d<)0@Vk=;U*Ry!>&t^zXe8G5kma;+2L=& zvja)hv1n5ZE2gv&=En_1G*&=+BlH~w&ko|DOr+2pC^L||7X5JnrH!D>urwILKV1Wo z9Xj{Iz}JQ%8Yn;qAun79k0GgZ=y4S?OJR1DRn4CwAAW=A_Ie_zHc*1-ORJDn4H3Kn z{!VbXAvkOtB1YB$@d&s#fV>1ODTsgtp=sO_JCPNc(DXF6byZ|<-$ros0mE|&Svf_Z zY6w>uJY5b-5F(SHYaoo7D+3E54F-?@ePnUDOtY>|Il^f zkq9f+R1lt=#G>g4S2?UITo^}6F$@t5T>*l_zdcK)Gli}z52z+U!(Bf!=YQw=U_Tko zGzP3s;aa9LcJ+Hg4z}@GjqkODHKwXY+*5R5;!jYqo=a5oU*#=Q_9?^}l}Gu0?W zW1FFZJSR4*L|3n$+4&f|4t_-8rJso9$6jQK{eLb1V0>zxAKPx@^#!oXf{m4KB1)W|p$Tj$5*0;RjE;rz-JHVX zcCur$huZQSamLu$beIh**laS=Uky1>!@;JDL}MBabt{;fQE2P&Q;_GN>8(08ROBTR$DA!OP1l*6juKH+=A&`a z99HtO9X#G1BqGU8(d7AnMV_PpvjNObQh?b2W+y4YYyh*96ks-h+4&P=JEs^Jq!*h2 O0000Ir?q_FhZq_rezfXQU$@Q70{NzSK-EgI$b$LqLrx0^n#o;~G1KQVcbhyeh% zI=cvo&tm^~r-Zrf=?NU&n}vs)vjz9W=|)y;ETW;gjq0!RSQZrqj2O1L@Ebznvrxz# zt9DuMOe{xe-)7_`T$IA_Ezk!^Ms|XL8 zJ!vgTodW=TXL@qE`g7b|l(cs|V3=WCot1dGyNu!9x!aA=WJ0NsGt=9h`leQ*l0L$0 zwmv0E{0u&d$k0H_D{JWL(F#Xfe_s_Bt4eTj`u9+D=KNKnlk+f}hw*fCCOJ1PrWNH=fXdUA@c9Ak%il;_`&}Fy?C9#%QQy?cvZyeUvq~@; zO)LxzWYyAzy!HBGx_Wio@9x8BGEYiNk`>Ua(UZ6$idVv4qF_rB8r{ero2HhVL?`88 zcsTO*$uKa;hiPlrkPwU7$AgChLzC8$ToZ(mJ$~gz2L)dqL#^`QURR&+tVg30?yp?$ z;B0dnRke-WxP5O*T9R#oPD%xO!+>ywkpogjN*w!+`~r-e28WDB%;sSW-ee%j3IK#; zMz67pL&->qBPMbI^8$R?xxd1qGNzI|NVEq$4mD>kU^JOgdAf4qbfZP`)4_9N0Klob t^8_x>L?)B{XKPBf2Rti0R~7Iy@DFGsjwV(7lbHYj002ovPDHLkV1hPARiOX? literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-gabon.png b/eugtk/examples/resources/flags/flags-gabon.png new file mode 100644 index 0000000000000000000000000000000000000000..c3cbd940fba6de4391a50742870ed03fcf8d52c1 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`uvr;B4q zM&sM-j=T*H49t#vf*p>$Y8#rRcpkK~q?~zNCX(~(b;P>I(Q4aXF|1`QX}HE<<&e!F zyTG)8?}C&Adj{_U<}DxXqVo&VKrFTkj8V)lP!#t5-BaCcjIIT$@GZOC8TQ3(*Ijgh PZej3r^>bP0l+XkK-L1P+nfHmzkGcoSayYs+V7sKKq@G6j0F&PZ!6K zjK;Uu4FwM+2(UhkX`7^GYwGB16QHPI%9X@q{!!4|-e}*Wds;VcR))vKo-X$3ow>C^ zjd2TByzH37Pd4k|-`{igHte#mTg$w~zLDhu(<~Ui{d{j0yH_2f?t+zXD^eNfdNSxP cz=nS^YZMAf8m=x;1-g;J)78&qol`;+07O#P+_IMl!hk?;ipwVDW zyuMOmN+n==n)wd;q*MZCW=PNYIB|!FmK63_o%Aq~uLC9~fc<@{1FR>5o3z`&_BPc4fq=BT zd;$^)X_sGRd6}*sGVrDFz$d_m+go+fibdW%3N`&R0aIDDKghsufnfsN7T`9+1h_50 zZH5VOTY%g6aC4(B+VwTCwblKeg9Bi3QH>q|KFrT63x=1M-uFbKP^oF)x4^(BK)xTK z>(mUX*Qw{$$8T{*xVQkWu0%sbvR@&efahm%`f_xM!OW$gXTkP$Lw)pX}y0-Y!6R@@>+Ts@3EO35KdJ+j>W25(6tln`x z-@TQsX}lh^lYfxVwC?ld^Q>ujTcB73yk5$9EGF!8b96ZQ{ti?sk{@FqR4NoR6e0~4 zu^4IedU@R^fVlz;LmWn=(;~}{k7WD!FwJVU_dHImfNGUunkH$meA8*NwOXW^0dED2 zjfumE?+zkHMu1?DmvJWu1}SDIJsuBfW+4932-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`u>r;B4q zM&sL?j=Tp9cvu{lYt?6@2Iz41RHm>WeD!4h^)qjF-dN1Mh3x`k6!Qy)wTvYV*BGoE zvKeF-m^ScTxEC*;a6R4ui;R>5dq#HsU$*tg%0Ys>3&5t`Vm#Z#^7njWh%nF<44$rj JF6*2UngHbgQDXoA literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-ghana.png b/eugtk/examples/resources/flags/flags-ghana.png new file mode 100644 index 0000000000000000000000000000000000000000..f6f96f014549057b1426a5aa5239a951c2101b3f GIT binary patch literal 576 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*oc5!lIL8@MUQTpt6Hc~*_)R!UgJrF6#@Zm= zTb@lJEv$--dTTtIj^y7Co#Z0@e)k8v)s4ml^DE!aG&b%z@oIA{k0IMO25C`-=!Rad z2HgX0tOvvr7BeMqZwO@EzZj^CY z)#uVB&9L^n+`L;m_T|^gp7)W|l-t7hW9R2HdJ;bbYF3tPsQ=M;-Rr&4^qXv6=VciV zJZWJ(-TiFduFHBGw&xz)QM;j9<*8+gl|Ld%U-G+mYrD~eJcCy;& zF;5D#R#Md7V!x~}jS0w@6u5gzH#^6B#_;XBYjXE4jCvhgmJ{;ekH_&#d+zMispYUL z{rLJ3 z@@;7rTas+GCr=rOE*Z)`T)?`sMz}R7dfB8qiWOC1?Z;Ca>K$K4pTA=g2z2a5J0)*U tCTs0i_a7Lb1y=||4x^bC12k06s^2iGx6yx6^92~&44$rjF6*2UngG<^<^BKw literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-gibraltar.png b/eugtk/examples/resources/flags/flags-gibraltar.png new file mode 100644 index 0000000000000000000000000000000000000000..1e3f7bb2f418a71ac96bfec9fe61454a5a139cb6 GIT binary patch literal 1356 zcmV-S1+)5zP)ZVN3SDYm=NZM)Y__tM>+ z86UcoEos!4d^3q~l1XOHoG;)1{O8R1{_~AwS(e3JY_ih;oVL530M&^}^Z7iAqF|aP z0J1D&7zPy;6}Drsoq(aiLAsuJ3UA9YtY{Pf$?s>pw~uvazNK#dd|UA-ZEbCBA}8oM z@G&`6;o5s2f`1OZoyREVCa`)gVUFpTV>(7;7?wOhDjLP*^>XF?{S;~fgpQwL?y8j{ z;US4$1%BE34AD@C#-2WgTb3~4t|ajC9)fSYiBWn5Dm0DOciv+3lXmXQWSQH0h4Aua z_~*@I?dfks!V}*Fm3_O2#ABRqs3Dw6V60wApm{Ni(pmKMIC^@Vh2t3l&5JQsuOysG zaK532NIZtJZ1kqJRef|%TY2LUN8a=Dxx z(Ci@~smg37!!egK<;!BxPM&u1WXs4o=2F;9hNNnbMzdv>n8!^Di;#AkfWjTeEemN1 zDJ)_hw;j;L^?;$Ci{$lj^#1E4U6Tqg38WJV#z#gts{+Nz*dHr3*7o)xX&TAW_@t|X ziycStEnGl_&r99%Rv|cr5sPzS?o7>=_Yjn;gT+==gy6G^rfC4NH#U`w`0 z{K(gs)m60Si)=?@!*HDVyB{zzzmfXgJA@G+Y#AK=;~GCdy8}=6rQ1HAhZTDEZ^s3F zmH74a)OGry2YIyf2!ZCsB4CQu0bQRTCH%^3Q`e)#0%L|jWo^xj@!7}-K2@Pc(WZQj z2llgW=L@1Biq!#u+FAnX>C4&WSss>#M`nz_Jj=tT?Qe;qRRDaiT|k%8Je}VFKqiqyZ>Xhd&x_N> zH9qn%)pd0uU?TN5wK(=~u&XJKWWw6eY^NZg76%3$nK;sH5os#om1QE=b^JG+X@rif z0^vG~%wCHXXH@FDB+{?Lh|8Hml&<1+WadP@Mf5ofBL@v%O864aRDdHtM**sDO2onz z>JW}44-OIl;Hrmw-bn=a_5oU;7|o95@bIEXH%av zM+h*gAlqPJY5yE6+8iN3>xY&V3dK<{a?aL)V@ePpHP=F#fLTfBNcao7d+K{f{NwNd O0000-L1P+nfHmzkGcoSayYs+V7sKKq@G6axdJwx^3@ zNJit^nTp(p97K-aKe;Hd;9`QHOW4s(2@%`xm>aG-tDh(w@`0P(grYX9@Q?n*xWd2-vA*DDvWUhrVZU^HQT z{wy(KsYPCa+(VvhhCq=^Nrn$>4oSZEc3^VgUJ!Wt>A71RrBDW`K~!jg?U_qx6Hyq2PhuX8H7XP}sRk>QY8O6ArJxjSi&zk$ zE~LB0dm7Ty>$K;6jiJDhMJZK9Sl=QIm?8*w#)piAidsY2xHDnPgm) z2(8f00sEy_WFp(~p8=FGn z;d8Kq@4yA4$cLw4u$p1n;DBXgHSBwLVby^anATO1mX?KqR3DIfF@nh1eq_AI3|SgmTvGr zXNj7z?bw1^_e~g=R}ihc7?QU^Ac-_U29Kg)A0b~P{G`s)+ zehoYZJM5!Ye<6}y0Y08UU~2~oDVC-u*c$3l_v$uPjS`ZcfW$oy^_vIgc9-<~Pt;1XIsh&h1KSYeY>$e^_H@o`FwP>Q4c}$Pk{a(AafEo(^si$l+gUwpgs?fa}mdcFx7R6*f0<0z)H#A=E`_Q41{0sEy_W_ygcEILEXrdX4}9 N002ovPDHLkV1gYHc1ZvL literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-grenada.png b/eugtk/examples/resources/flags/flags-grenada.png new file mode 100644 index 0000000000000000000000000000000000000000..c25402ec4c48aa4b080983ad9cc9271a81439768 GIT binary patch literal 2013 zcmV<32O{{1P)b)CV~WoyV>*O|1oUALs!GS|8#s8d0dDg$9qL}24p zK@jx5!M*34{c+KifcN!4-S@8p_j!JA&+qpv-6^&rbmGSoI!X7Ur23Y&A z3k$|06hy5EnF?f*9-oeAj=j={z0w!aoTSI6F%`%W%?So6Rswhl*zdp_QkvOirZ9-LI zlRst;P!$+HXu>}xBIseL#uQX}0NEwbzt4=IR}u6o{riF|4={aIWT?i3pa=h$$ne3~ zl?M$x00OZ*c~Xz_f(b*mjJqRrjG78$2KJk8f4f>ji(<%@>G{4D>uNtzq8icOaVH4# zZGz4vBEI+toI?QAdA{$4IWy2tDp;@0b(wk1{?_VjR(|6KJMZhoq|?C9zC?IrkprLS z(DoNQFa5oD&hPUsv)3oGw=JI)N7wODU;2Uzxls71FP#-f*Ri)PAFpqIj}GeReJ&%< zHWX7;TS4Pk{DKI%5NI5Wr>eGsXB&#?a~Xq<4J**kjU`ZZtdi%>7SrzzPVmb_zuU-j zXN##iR>`@sgs|p>eF~^5{Qf`b{CQw0yBxjzu&@V&>9>)3vP8bOudQTjV-Z81=)*GROt5J@p7qDedHPHVy)IL%vAi&4{Y5a94mG2e&o0kfEu<89;kp|$VPvYktx%~3dJxoR6>UV;6lz=H&q`D&) z$0zG}r+Yby8hfg$r~>bFFURr8I;uNzHB}xo^nfp7WGapq&#$EBayADZ=-}bh@mar5 z_3IcuXvEtcxHA~@WYS;sV#u6*s+<@}V&^{#X`QewgqT1G4_KQr&bHivsEM~u*m&eb z8Bf%e(&e-O;B1oU+HU1Wy&jXpkICWZM!lY{?N*#kf%WKeT6m(alt)gKEvWJk!T>4) zzxiq#CpVtsp_K7pLxbYTU@EJQR=l0O6@k4%@e1@+o7wZ3gH=bX zI5LP|8zN z08EbvG}qekogG^k|)B3R;Nq{U%Yy$eP3-s)=;5`37=X0Ky=-Fk_ zq`(m=f`-7!kt9?VMlH$ zq;L0PE%npow6MF`q3KDmrE`>5k9W`ce^`l7w2Buc+?4YekpXnmdRn%)KugGG*@hS?JT`;nZ<1eC-T}dNTM) zYXKuuahl7j>49s|DeNxnq4Tj*ypT6Aukw*X6jWZw8=&*CQ|vD6!Ju)GRx<-UnR$h_ zM^E#{s!N*R1OaS%KX0tMMBAgMc{1~gW^`i?fzqT&4wQV(nw0BW$P*Gd77u@Tu$j8i zM0Pgc7jsP@Y7bau@^YxGm2;aK7ESptVol0*&TVSoP+2R>Ox~#JL~H<)PT}SIyXn|` zn&)!{5f(pryA45r=W_<>*nFCo@9&Q45hrW|2m(BlJxu%NQ@m2tb=Opc0W6ZtD@9$j zZ$8B{*~1YnN>~OcPoAKDV*`gPTF5j%Xpeo~ zG1@$j&%n4u#(OP-9wGBgkB~cp9-#<%+(JaphFwqM~~1gL39?Ckq-@F^#~2sn2-_`q(p_Gn&8Sq zphsxrLjyXCI*Vtl(Bw8KT2$Qa5+ff-7%~-H7emi6X32~kHs1brwT00ml&R3a&y4i} vKcYoNzPUg>LXko=s3=pyobS6~PAL2rL>kcTs2rvw00000NkvXXu0mjfT`}8{ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-guam.png b/eugtk/examples/resources/flags/flags-guam.png new file mode 100644 index 0000000000000000000000000000000000000000..91604b434ffb49d40681989d54527a32b49a04ce GIT binary patch literal 1068 zcmV+{1k?M8P)^V1ZwS(}(YZDZSnh_M(8 zMbS_wYBjdtB?+s?dYjTd6{9D6~>jjimvtAti2`nzD&$(oJ?_ zHk;XWmxnWx>;C;$#M}w z(8=>|X5_(mQ-Bd|7t5+HTuLNW&f2B`C4UQS1&}Quo2>w{1!N;NK#h|jYNur?$O};E zWEnEQ;|ph)I!j&zDFH%`!BGA@nn`V)YcKZk_Sz-UI${IV*=f2Tf!RnC zUe(84BhIbt1hct2#H(~#Tf(%Pvm%wm1~_j1#D%91@axJYMpMJ&(-Y{)3809I%Gfin zaKgNdg1Ao1d~f4?k;xjs}Q9n zb|?60@Oh3!6HK2u&D2+4(^8k>%#ZCn+mj`mvbg@u8fvJ>%V|(0oiN?kS!pak`J)yDbQow mEQupB8&S57$(1-IAK+hrmMx_|yoHbe0000LkFDa!g(xONUE|FTO6xLKw zE!srUMp^`|S{JiX0!s+)z1&SE6-88rMp%~pOk_CLP&mp6_T!k-%mn3_WAo!VEp8aJ zmhZb4&a->J#d{u}j|1l@&HYiG1?E^)alg}M-m;K82V&p)AAb0{pgRH7g~DSjS)b$fNYEavIS&g1duHt8=(Obi3I6%dVU^#dYhM*_Rr7hbedQ! zMlP2V<|Hh@;P4>6!#-O6Y?(jH<-z8CMEB!n09yWTVeiqs1c!s7w8RBy>u4jV&r(@Y zNoVH`G%e1$h8hYBTA5XEaQxbKDoQKJYH8X!+C*uI2@nd07>$fzDYUWAw~w7Wt5MYn zV4RZLjikbj45~;_OoK7YZBNO?A zud#sxC98Q5{foLS^~942tTw9%H8BAKg8`Nlx!G2^?dORF#pFUMu%Tx&xD|~mZw+sf zz0_^0V~NvE;8j3`nwS8SiAgf~3|7m(x7yd&$KCE8Ooet7lNqzq!KdjNzGYKbEmpF6 zj(9RILQPD7vSnqsi(OpkyZ}HX^qdWqCFl+->gr{D)#jM|I6?K&dfGeN@pxSiY+zntUt>S)s1qY8b(SGg}SI?iN zuJI7VdKsFtl#W~XSi519C@pcX0Klr1<@8?cou73y6cj+g-z3uH7eWL4j`AP)8<%e& z86$vf0ofPXu-T`OA+@1CS00003#T literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-guernsey.png b/eugtk/examples/resources/flags/flags-guernsey.png new file mode 100644 index 0000000000000000000000000000000000000000..b38f6522f2070d30c77167236f614c08e0e1c03e GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6axd}M^6{W zkc`H+GdFrO8;Ts;e_A!{ig5Mh8;)~Y7A>&Y#qp2#?pzVUaK|~W1*HP9CGYPm?6A;Q zVpT5;n6vIs=EZxlj{+t}x%BRQCVD1+7kB0R+MfzLy&q{V716n1W9hti)34S0j=r+{ zCH8#xniZ^@gO;`zvITH2cy?drOn2gvd=}i$n_BroVRdefLxDu& z)Hkyacu6)LK4H=S@m+JT7mvKFNB)`*c0H? za(4f5V^+iO-z$Xgq#N|BXeHeWZa8oDaPRH)OWME0)W~0uyssVXU}tbdTk*-<^`h7R zNuJ4)@z-`;TM>3jK<3Kz8QXjF5SoV-4IOm$9GahF%|F9OK`c&l$%UBy z@8MD&`oHbA0_h3n|Nifg>%ab`tnTiSwV)7!ggoyFz7E0tZuR?tDTKk()z4*}Q$iB} DXr2oo literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-guinea-bissau.png b/eugtk/examples/resources/flags/flags-guinea-bissau.png new file mode 100644 index 0000000000000000000000000000000000000000..6b13db9bf5a8e6a3e66e360ac853197f7fca562e GIT binary patch literal 582 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6axd}VNVyw zkc`H+)9w9lJIFZPpDUc?B6P(;Qh-q{Ah4}0<$?DBbBCTcvOifw?=v(mShL1MH)#4L zRz(2?EwO|KMovzqpUu*@bp!;A^4Rq3RqsgqTfP4I^IZDsxBSYA`Db1fee~Co@7e#g z)OW#B)+HMmm*62XEe`mZ{`2F8|Mma14XF-O9U0F~rORAf zWpn?l`o7~SA6Xjmo*K-5m;aMtVzk0ik?xr`!Y50fERlP=VUp~V;zgHN#29zPFf#CU z<-e@kH|^Zb4|%U2M?U>vYwR+=u2d_Toz+i2DmnGYJ{HptPmc!wTQT>>?0nOI)m(o* zc`(n%7shTygP21G068Lqar1|l4)sc*?Ez*|v_>SLK{#G6lPfQOh> Y&Gs^0JukN~1{miIp00i_>zopr0CxTI3;+NC literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-guinea.png b/eugtk/examples/resources/flags/flags-guinea.png new file mode 100644 index 0000000000000000000000000000000000000000..927670653d1b56259dccd6491afc3ed382135ded GIT binary patch literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*oc5!lIL8@MUQTpt6Hc~)EvpiiK zLoyoQUNGc!a%4Dgp}AF(kw-^BFVdQ&MBb@085Nr-2eap literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-guyana.png b/eugtk/examples/resources/flags/flags-guyana.png new file mode 100644 index 0000000000000000000000000000000000000000..59ad9ac37a54de7de75d1431948b53b236616161 GIT binary patch literal 1485 zcmV;;1v2`HP)+FB{flCVg*U72=T+A_>O z_g)`nv6f0ZGk01_|Ic&J_nqIIZ#(CRCzdVM?pfvJfcGRPdM+~FBmk|bsE93FwlII$ zqwJKcamf-5-G7hv+(txVuF0Yuj|KoJD_zW|+jmf0Tuh_a%}!au)l|*zp0lGo&Fo1W zn=nKBI@HT2fiC=-ile|x#fLBP%F0b(ECit0=ZV3PC2Bg)prMWOwDpr{m@q>FXjdbw z_jgbi@dL1EK`x(ddW@;FpGDZ0fT;+8Hh(v}nqtdD>Nt(6jcpi700~uv`q&)sa8*;W zSp^$b*;w(M4TJ3ggu{t&l!9p@0Pa8!RZT~6$r8W1Poik*s5p^{t^okhsYco0@8C$p z2f)I4W-80=OrK%|42b;u5sos1qYTWG0PqC+*xg)%OO`l%=`W(HGNO*8t3d%Iv_E`> z3crUwO~H~YSi3TxH(#`3G$cPqSnov?IuQ;hm?r~pIppQr=2~2`#KHFCgw^N>xRRc( z3jm;7RoEEl;86G~0Q2XV*|DyGS<_4dO(Cpv}8|BlgpYyj#=>Tt5)8AIUkepe+*knV#}n^2{}^%@J0fB*HVW|uIBsJ zdICyVH%HRdumJ${X$lp75BtMc04SMh;`8-(N@fm>h5>`*&5kdVGRU0{fG-+ke``H1 zSz=#HJ-%o#12@uFN&pf%67jLY-$ADu#bksv%kz2fH7hx0G4z0WGr*2SF=-=X!CccWKwqk37v`tS?hPx7(eTmKV_lf zEgKG72GP)8rilp0(s*P%2*QYlMs4RAT=AD{v(Gc6nXCZ-2%}LM=;q5{4+m(h-}KN*XRf=58a#yZ&}Ct+maFBn_8{v}=~-N;KIs{qErCYUt0k^D&e$fUG}ZO z05U3#o&RY}l*R@HkaltO;(;+&9K8lW%H{D3`^I#6JP9DB28r`~Zkh%OlLic{MdobP n&DkO|?wh0-?`?A9y;1TXk$|DUdh#$H00000NkvXXu0mjf=?I~F literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-haiti.png b/eugtk/examples/resources/flags/flags-haiti.png new file mode 100644 index 0000000000000000000000000000000000000000..4379dfc116e48bed1f24bab822ede5d70c0757d3 GIT binary patch literal 772 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6axcOqo<2w zNJit^ncf~Dff5b-t^JF0WPHz_RN{T>8Zm+UVB`)1sasn%Xsk-TnXTwDdx5XOjctd- z0>2yxI$>Z?60EDURA8;zBKC}|mA=L=@4P-^aqjUwvs|AH^XEFx>I%%C$NaFj`|(cW6Nx&TSW}YOCg>_i8#m-I-kiah!hPZxk3zJASsKGlrcH*-C&VWBo@3v@DVenO z!jsSIEX+%ok1{P-v!nW3*0d70^ZTN&sWY(ZN&hYXu4BEs;Hi?Rm*K6P89%D5r=O3H zDvRIpSy51TW~sR%UF29xXbGf-UTa*dA`^^{B|(xRLs#iH*PzewzFTlPUxL%##7hx z%2!Uz@lY+)PLNYTYV)oQ{u*sy0^v~7X|IOc>LJg*(>he)$rnu zR=70pt72HPX;)Fp#BF|THmf5*-R5~cXxEA4vX())blP7{ybR3X@!4XnSZ?JX+*vE;o!>Wm0>jgXCeLN;B3RTG{jW6s|Nik(8yS&> vZ9*Te%-nyhND_B6_ewf!Yse|GJ0QQ`@6^Lfs!5i>6wBc0>gTe~DWM4fAT>`w literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-herm.png b/eugtk/examples/resources/flags/flags-herm.png new file mode 100644 index 0000000000000000000000000000000000000000..7098c98d50df089e77f230cb6ea0c011d94458ac GIT binary patch literal 1306 zcmV+#1?BpQP)Y69;Z9OkYA_e^5@cM*>cpX zX>B>r71|M+X;9ky1vYcc9L+y;>MmMQmcxg24z7(**(|;2n1uAV2Q< z!|jyr!5?_Xv*x}2dp_Ui^LgH%_w#(e&-Zx*=UJRc@Wc5@>^YQ1QTcSK;bC(mOD6iU?GIfzIy#V)lyNLvIEILbfJYYU zEhG&nEYVSOO$UJS#WP&YPh#U+-=XyHd!V9zegY>>Ol8p`EsGb2V=|2+Jlx-Nsy&F< z*%jm#wD)TGtL~!fI9Sy~)_Y%3`SrWJH2e4a7Bv`xh>lhf6{X_jNeeMCflQk=%A>+P zg&4ndKL<`F4hoKP)bdYX5V!tw!{Z~a^3#s>9M0TAr0)8VMU6%+yLUHHP|$|K5JX{N z8-gHsL;oYAxY@mW>yclcr>J~7v*PQ}X{`L+0w+tXBqc&{pnFp6gnIP)G7Ne5;0&Y1o04Mu!Zc`CEcHg8L*iNk&Q(0k z^yS%nv?q<=AT{Yp3e@hi1AzML0_AnxY)i?ZD%ZrTbAEL@r?=P1h7FNKLavlwXQSBn-MR=YmVTBj31|NN+a@?1BIcuS5SNrs_VL$nIt4}t z_Y*$q22RO6B!q=pc=?3`ocMeru@f3cq>Tid_aQhHg- z(Tr-hoKvf2GPcDgSx@$lp?UK{X=vzS{CFi571EoPyRq0qSiN&Cv)|vxg+HHk#f1SY z6_xJI14B+5xfoS10dfnF8=-L1P+nfHmzkGcoSayYs+V7sKKq@G6axdJtfz}( zNJit^nH#+h2S~W>59z)VrKGtuz_mof$4D$FY5x<3>^kthh)YKMk#Iw?h6qN zQ4PnKE-;xie!sVmZFLVw!3Bou=UdC)h_Py#6jtb~-UK!tFw@F_&&dByo>t@l=9+zU#k5}>HUF(VFTFb+YJ8wx q;Ku%gU6_s(YYeqb;S|ZlQb3 z?D)qfONhk8WM_wje*fBeZ)Sd<`DEtJo44ZffOLaLIFi)>R;OEl)c{tfTY%L7R;OEl z)c{uKp%5Tv^gt;pwWPLX0wlMG^f?Rh)z;&ytw$X=)DjMxB}IGr$lb9YTTU+k!sk!X zS+m;;l;qz5k|&+qFZaYR9zZE7MW|}BQDQvFE|@l}5?g*BjBtqP-8&e%hEVJ{MvhN5 z3Xp68l7wg08~{Rp9;0z$8AdP&fI7&UF(B~*Bnib=_`oi?hZo6{4uI0PgzR-Y5wZ+G z=*-D`I|_l2lQTReT!7NIgsiIdAjH4=WOTL!w0f72%k7*w={oj-L$Q~ZVJ|8rc>E~g`t$dlEB%cn*s}8y$}1ASBqq!B-t#L;VF~)}7Mdz& zkg?!BoMR_oghDh_6yqHCBxx_dPV>@AQYTMC&hiqza0dH;A$VraM%WY#ErPHq02sPP z;Oosq10Cprb~?6yo-o|R3jk6kJwx`ood84w?dUDd*zyYyik*&KTWGCXjLn;a;wwb& zx`W<)1Igt^`ztm!q`fka)TgE)98N-~e&^QmHwj-lmuO7DBmn^Fm5a!D>)rTv_`+!b zq_hkoS1u8(tL5&I14yZEoFm8KoG=x+XAWJz{e*wRDxw{Jgz7|ZZ8ifh9@8d5{_3@~ zES`}OuPf) zktCdtJ%QXa2Vr**JYGxW@6g&&ai>U=_{|3ED(M{jH8@2Mk* z2HMTVGxh8M(I{O<4--0h9HFXY%wJCK_I>0ZJb_X&0DECSkY$v@*m{6a>_BXdAiZ*- z>3B(*Z>CO}j(6?m`=+;s79rYj8Ks~IAtcmcqX3Xx9-@JEBzGDqPfX$VniZz9nJ+*H zG8e5x$Tq^4&S7-jLGIBL{dNoL;1LAtYB973lFN;uYqWl}45d#onTuAU^eIL-9Ptk( zGh(^`=lF@(diemj`{O>s7tY|VS|4xg*tG>D2{aAiOd(_5Qfztov4af*BATgurV6lS z=aK%}+wpDB%sB{$BR;|D*tLZ_2fhcuU%iHm1@B|;KRCX>cJmsBZms~+20^u~oSbcY zag46GSIp&(&GLdl{MBn|ty&!K^Kbr)mUrf2M8fg5&i&t+g%^*huR&o`NPYGN)Iq~h z`WB&dMfowLU5JELj%+uS7coL^}gXtM^d+Gh}7D1y~JWb-D#u4PbS;1y~JW dbsl*E{{Xgaw0~4$M-l)4002ovPDHLkV1oWasgVEx literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-hungary.png b/eugtk/examples/resources/flags/flags-hungary.png new file mode 100644 index 0000000000000000000000000000000000000000..71df0600d4314382e80629d31e677125a8f1c5a5 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`vMr;B4q zM&sM-j)Dyi0?dwl>@yDVuPSI?>gr~n7j-bCF7kfq`HdTc*)w<-FmGYIz!=5+f?+LV zNy9Y;D~D_b*#&E7zT|zk21&rQf$xHp14Mo49{>D;bR0VW?)t%@X>{po7SI_Cp00i_ I>zopr0F4z-L1P+nfHmzkGcoSayYs+V7sKKq@G6axdJkEe@c zNJit^nH#+h2Z*%&ztOELx#WUsut3Z$^9-)M(hc3-igRmN55{U(gui%li9O@{7CzBk zFO`ohZH|<2xscF)?ch1p=84rW;y>0T7wvrhSUS(?(So|)yxx1dx~IR8Vfb+C^}}3) z8$06poGb3?F)X+y`RL`(yJbrxs&g34q#AS&xG`^Fy^+DNjX|3CfLOv}#v4pICJfOH zy=)2G8w?M>7JlvPb=2wIR&#OQCEfb3X9msKP`Tx5g=VSgJe7WM^-t;|B=h^&x`lmM5Qi!@}+bYnZ$!@v)Mf?DX*b=9+zqQSNtGZkVlEFJ8Di zl#lP8frQVD`PUhC?A`j|cWh36{iA<%r%rmZxe6w#7BCg<3}#|9znRnZv7#$8Dn#r4 zijZ3~mL09IQJw88$g$((Q$N?t&Y2CfXDhA@nHTg@_wvi0qMfaoeVN;R8A@zD3|=Ts z?OM31c*$jX&FSV55g-0$n;HrStlf4pWtv2@)o;TkgXW z22#E!Ql_m4yRCHP2+NAARxV0*PKv!@tJ@QKE}DoRKVI6`_bOu+P~oMluNFd;wE|M1g($1{66|fQsTOG?{@5YvuWqfQ#owYOdYQ`1I2#T zcITCQC~eem@;$?%GTG|rBi6X}-5FQ>E!GJ3+dBn{goG-})%yT>y}v$I#fo%`t4!X- zVOm&y;Ne5fufNL6%HtQWDlXaWeCw?>L&;yoi5>kfOOD;UmmU^Af78~lK`qlZb8y;o z1H=E@_x%(6?A1j+F(yEr+qAXP8FD1G)j8!4co3Qrfu zkc`H+Hyi~U90Zsh`PgS1*e|4`YxHa5Wv-ylXMWBrUw1Um)=~>V zn71&!V2on?!myU1sv(R4BE6QsAZ=N2$!084XgY8GVzB>i#TFd;@_-7^4Gf;HelF{r G5}E+6&`gE^ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-iran.png b/eugtk/examples/resources/flags/flags-iran.png new file mode 100644 index 0000000000000000000000000000000000000000..54a7074c6be4be2e992281eaadc2de104aec1d3c GIT binary patch literal 1618 zcmV-Y2CeytP)kR-7!X z%);MewqAOZ#jL%^##?Xm9sB`iVPuUWN2Az^CYD14W-vC;-9^){>U!LpMcGZ5Bojr7 zsuplow@&@*o}*K@?xV!=AAYO3z%a5lkTos?$l5^GxC|g`16kuTfUFH7l24b?40hSbj(_Lc~az!yYzwqk&0-RmL_~_z--u^$q}V%^bCS<(y{0auL7V`n?`TK9(VwvWqMf=Xu{h1R-dR zJf`ddS}WEoD{P;A^W}eEKW73=4R-Qdkn%M2tlMGl-87U zC7RP$`QwK_1CTcz0IK;4XiYC1(DA!C(xzbLxlvi+PltcOk|w=iKrLS;h(ng9uF&yM z=!FB?Bafx&1*R;Q*2u#$Oca_AgJa6M5|!KxwOpB3t=AaBz?K$%uu z3Udsi5!Kub>*Zyp>;gGy(+m5UhUDs0gSuO#?p85{B#1*C!(z4k3#RM>b8d~3agV&2 z!!|5#*VhpUYWXs@v>1d#Y{TML^BX7~6Kl=2>8o_deR9&~&fF~=X(IrQMrlQ(P-kiC z3e{Yhyy@VLyNDnTbyAezQ(Jtz{^zzrV|=_iSEE6Qf34SO#82vfs`H=PKi9|qs`+#J zLTjDPaX60AL6DfSZICh(8=0&EIt)QdyvL969zO;t6D|XoX$y|O|DNdGJB&&Nb#em0 z==pP0r-Qk$fU~)os-ILxfF6(OJbHxx;sy5g>l5C-ejWeC3p$S;p~vGiEu|a4;OSHH z_wEty>>y`nlkZ+i_60~l>>k-K}B;N?pIgp`PnlV9-iCAqtI z8EtK)X(`<~z-l&8{XWsVcPP)B%>2sp60YCJT3-Gyz5IWX>IiUd-zM7M$Gv}_(X(fh zPhj-y8Sef2MEm_vDG*o}Si!pPtsy-l>ci}S@707SdHguA=gYip_7 z$!;qQ=qO4|nCZWVPY@~yk^s(~E>diNLPq+c_02b0Rw}4o4{V$G=!p36kldGF0uXn* z$uquB^!`1$jg2#2YgD(39uBeB*U$JULiPLTFvMP2neeLHMOYR(46&A$P`;nsJ2*&| zz_m3D$06=^5w?vwJtf@RBY)@4S>H;bd>_?r<9z=4IghH-Ni#wyM3=o!uF*AeJY!beG3vo=`Y9UJ{v{K|YHwk|D0oCiF$79UJ zMRXibhOZh9iT3uenoVS_hB`e>)_Nfl(I~>4oyA&PWAyE}pf#dc1i+l12d#-a9pX+0 z;W)@r31?%2(evlY3m6WOb93m?2y1nf`0$Xp-6rmIuvb~4%ZcdG z5zfX2(cxiYer}F%cNZN5*sH4vuM}pZ!T8lHWWA2rXiRuns}a0;gRE3AJ_ewMLxhy5 zUJs*GLWd!S>w=W1ZkM>#!oG2XxYe3yMnC>Yd~$+w^X54($svc_cqSsTb2mjPsLAZuI(khOuVap42_2i|+Uv`4g& QfF?|KX32XVNggj3g7%4 z_CCkQ`~LQMAKrVs-;^HPIza|wk}V(`BYpI=H**z4TH$B>_%iLVsqSQ!kBa=fEncgM5_IQHrmSGOL)X|)ke zsGRL;;<>LMRnw>+d^zu2LTI?Ye`X-)C#I=D@{xEn+@rf=+5+4hY^NmO&OYZR0BYVe zG82z*xUCM~k15tHT|V#ZW%m;ve(fgLY$2{C0ElWTYpizNJ#`N-6dGeFG)8ULJt}Rh zXz;jb^t|R>;2V32D_CmDA(~KeE>(q5zlPwXkz#In|CbT1Wa2LLd;>vhyg)O5b`EHPVv<;we~ zoG#l*=hzSjR&S=-QKpOBVxa40=%xPy8*NSsbF6wTnRYUMH>i}BmUhaPkck3h^c`UQ zA0S&mHbwy10WW11!Q9ckS!papZ+--fcsSCr2qf`07*qoM6N<$ Ef~C!idH?_b literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-ireland.png b/eugtk/examples/resources/flags/flags-ireland.png new file mode 100644 index 0000000000000000000000000000000000000000..5372185539a18a75993daa0110d6df7cbd9f4537 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6j0GrPZ!6K zjK;SY5;>g$B@SHh=Z-k=KW#%Jt4@+2^By@hfjHLN8J*nhiQERq_%`3&w|U0-+S~fe zKbNlj^7qd3uMw~3%zT{naQ{UH*#(&md>2d{*fXRSFq`mRV4TJFg29)$q+uDOmBVGy ar0tiT=Qv#$a_|q(fefCmelF{r5}E+iYF{$| literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-isle_of_man.png b/eugtk/examples/resources/flags/flags-isle_of_man.png new file mode 100644 index 0000000000000000000000000000000000000000..3415b22b70efe6792e110e3d38bb056120b3da52 GIT binary patch literal 1101 zcmV-T1hV^yP)~B7f320 zRNK&6)aa>dnqKr`ym--GnkL3XYtoCFn$&2FHJajA8fr_M+5#;fsb!0ztR=uM4Q$;n zcG!g-51NfjMLjt49^B{nzWL8Q^UM1&^NtiKaI5@}F^CorO*R100;0(VAX-2)*#JZf zh$b6=XaUh=0}w4B8qETTswqIUu!@mZ6?r9vydRDwaPL=x@3*NiV)orkr!usIZE-~khh zE4k!_V~p(aaNqHxQ0-#Udy+zXK2;Cx#q`BlEUJ{Q8*+q^YMM#(Ji*}BMdlmaByNW& zk1T7Usoe-DQ&uURHeh@40C(O!g01H<7M5a+UA@Nqg(&utowRlD=El95qh!yNgYcY6 zrLzRr;4)9Wf04G?kXD+QG`lk3xxT=7B+8BR-yz@f6AvuX>JJh(8;Kk;17NJ%29y4D zjReTG+fh#U(S0-UM~il7x(hfHtIV7^j&<}jkB&^yIv1i`HIkWrFU zhm74_gCQKzQZ0?90oX878d$)gm^0e#l8Iy}Oe7M)R$EA4UNqeoY^tTby`9yWfR<`$ zG@SwlVBe39yV_^v4fLITolQkk3|;7@`oObzKlqB;;1c5&i3*>OoY~u2s%1FpilV0Q zKleCqpBU!q#Z#2mzd%K22U|aVhjYzUs8$J6EKX%Csf&;90i0`fv-h=E@cDirzOsdS z_cofEn(#-%m=5lz$~DgDl>uy$K5DuKaJ|Sz=dq(qOiUolGIooLq26AUcpQ(%Lr>2$ zB&0@iZHu}&X}Sii<%hOL9(ESv_j>vM!&7veyhceP#pRDKlX&ocj8zq=zgk%u8`RB7 z((Av#q{Tq+*dhFZev-o$cJ+=RYrMz*8+4ljo0eCYpB?py+rA@@Iq{i9Is>Gt>Q- zDC^$G#K-wqbb9ewi_oQ5iN#p@{A-?H$PwlsEP%M0B48Y)(|bph0w8b-cr6At1}oVf z7G>}|y1famC90-~Sj=o*UKMfsG{UBUEE$jmKRjfAjAR4I1|V8MG}!<|3y9`70wp$& T@FV6c00000NkvXXu0mjfwvPnY literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-israel.png b/eugtk/examples/resources/flags/flags-israel.png new file mode 100644 index 0000000000000000000000000000000000000000..8f834f3b8d430ac6edaafb55b20e7b812b693177 GIT binary patch literal 738 zcmV<80v-K{P)VGrcA>6P+k1-Sr zLCXw_Ruex1h=}&eP4Xpjgt$tpn(^DZRm~v8Rq`crv{!Ckgc>>iF5oT!(NoOPo8bR& z49b5m`FHX=CML%EyT*PtLX}^QP!s^5Xa+(-FVe~WGmTJw#}wKK2@PO;wC`N`$y5}n z$3@({5dZ*~mW|CaxcH;^G&;u=vBoS#-wo>-L1P+nfHmzkGcoSayYs+V7sKKq@G6j0GDPZ!6K zjK;SY40)LX84g_F=eu$9VgqBy93`_Gkr5M$#0(0!)eao-kMoFP^u2s{NBq8IqxVlY z&f`1&+2{H5pHbUi=dLR5G5of<^}ic)Ny9QmD~HPrvI{aB_%4_@uxCguU^d~sz&MNT f1%oeX(tj9!_HZ@x`Ur#oUCH3->gTe~DWM4f`tM&{ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-jamaica.png b/eugtk/examples/resources/flags/flags-jamaica.png new file mode 100644 index 0000000000000000000000000000000000000000..b4c0693a1d625194903e33b58996828f24ec4c39 GIT binary patch literal 2020 zcmVK~!jg-I{xFRMj2FKXbM||`_ug~P?{|K}pZ^fjHYH9!;1ZEeSWQhw z8>6i*Ns#ygA~;CWJ(k>=xH!(9paVX+BsztmI#f4X+he5YTmp4H#?MG*V31+%CqKhV zVua%c*VG~)eE55$d+$CRwU~5v~_mKfjf%lrG%w!UL&&!dQ~C_*BzYdKhwFfu3G9@6iAS-&zK*7eH)`nr|P}v!l|& zspd$3XrC}1PUc7xXjDEMk7yj2XziE7?HtYdd|JVzU&y&dwV&4FCuWg~DecdnM@H7KF35aEi+lu=X2#8Cruoq6XQT zVP$Ugpo$-I$WMId+wvRWEhc1ug3Juqw+-gbRP%#Q9eXcMV@p=fN+xL;8F*?+^v{*TizL-i%8cJGe6HMb^!0vsb{egmHSA#B|szZoM@cRkdu^$=>`eOn)S8O=-!S5MahNM zQ1~2#yG7KE_7IBCSuh2=*plANZEnF!dzT!wz4Lyc)J=i`3T8}~_YF%Ht9c1DNeX}? z$K-h3))`n`hA4wm(J?8%RgWRHeT+0zH~O#fG}0qWCr^(d$}qVx?VnD-N0px2Kl~@0 z{MY2^0hlxcRy+!oe}Sddlmnl5P*zi)=`3<u<<2mwfR@4 z-wg-~f@i)D1sfsMZL?R~W2AVDU7&)yV*AKX*X{c#eiS~ys#EtSO*5TWKdN{ z7)9k48tvXif(lZn43M8;CB>wU2<`ol|0?YJ9Y_;UKVbvzNt5^c3udeN0hf-F|4ilG zE57FfZiv)LteVr#%GvFjoWSXiVNEX7H~2WVuLgt~;l&)-@Ra=BkHkl|aJKm|8>C>C zX^^dpnwb}^PV){9!OMH#=cVBCGArbh0r!7Np5bTSuIBB-I^L*`=Z^u%2P)7BuwqsR ztLL_9@`C58VRbH?uO0t*UKwDDkk|C5pODx1kvP>H$&N}3?E%gRD@crRke^{C!!0vB z?1WeM!S)hx414H20^>H|p|8ki0@E#OzH2CmomCc&Uo(x~F@O+&tduU+&u=B%?QG!U zCvxWK-xXtzaZ>}#(ePTnyhnG(->ycnt1A98I~7t87dA|uhtr`q55P}fhkg&ILt`3{ z^$mEV0AkH*-ZrRbM}>udwA>o!f(n);_K=g-LX<&06JBY8HTm%OQO*ZPH6T6~cE1SA zAJBFvYn;NK>bP6(WLQCr(aH07w(zxS>Jwr~g8fIdC&U^9JkkDRExrMXsw{~rS zg7MY}+%RCQ>X5^iW7vCfDud2j^Qn7+DcD6$YAX*XX%nqVl}L|ha0=_5L>jF==*so_ zpz6d1LhYs& z0hIwY-A0Pa6R7`!)d(s`H}{jj$V$@nP`k;d6aNQXWe1-lOqK`$0000EPN9f(W&WP(rN+w~An)&<PIFz?MHR=Vx`66<0#p}J9Z!Jj0;=N)P+dTEYGe;AIXQfPyMe+^ z21VNe0QfBfdelVI&C94Y8m0D;Cg9uh8ooS!hWz>mxaIPHKco442wdsGrHT7!zI|0n zFHQ7H@aN$XK8-!W-ix_YUDtAN5baMNpr)Z-P_y3=Dj@sjJw7IqDC}g;biE!m(fRxl zf_JWwoBfS20sF6(ur>UU!s>cCh44_E!a5lt0)Av1q`L-D%H}A%+F&DMTXU#04GOO^ zLLP(Li6rgj0icx4VLOqe@hU?XV9(COSxB+5a28UqXXoi$?oYsVv3l_qiuM5wSsA|- z!u78!fTq!y)NepOy(#SG0ib9fAfMi(GN}Txuir6oQf5#E9Dm+r;-t)=3MlOEGjUR8 zRQ+y{DnO5fnK&skr~)puMwmD$GpGWBcW*FpQf5#E1Y+IrTOlU$pZKj10uJG8&qwW&i*H07*qoM6N<$f{1x9qW}N^ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-jersey.png b/eugtk/examples/resources/flags/flags-jersey.png new file mode 100644 index 0000000000000000000000000000000000000000..504acaee830beeb6cfc1b89311d92f45c47be800 GIT binary patch literal 2154 zcmV-w2$lDVP)f}&6@MhG!rGB|3Sq_JkwqLECsqiL)t4H=?Aj)b8aN?m*;TRT)?Mjxd^3+uHF=uJKo`(B|2ofk0I!W(u#N08A{-gGH$*$yd(YmP; zTgA?xdsoa)e}JKQ6?ZQCy8>_v_P-s$w5$kkbBnAY)xdrvZ7CvZ#CO9cT3xyX$r#EC&`us7Ad_9x+R5Wd zKe>`3E>S9T%C?ut-5@kkOpn}hb?e({496JNYi8CRS z7R?<A;U_-wrw{J*||85oVu?qw?2_i2e1`FQFZWxNp4J@*Xh z$Ewhb84-?4@?U{a;QZ*Uf9JheCo5N`r($@efasjDcRj!Kj}K{>GY^-_$D?*Fhx(Zr z-WW@!K}q||TNsct@h<(&4~}74T7;*eS#}=PfWH1O(#WA*aii-2fY83Zu|InX{f3o@ z3A)?Q-p`rJ-@T`KvX7GMf}5D@Du$}ZF!E5~$4Rih`+ILsW6YqhX1j1Yb0VJZ- zB(7OZpM$$l4<0D1)4sc!hS9m$_aDCf>|0OIBdZfLV+#6>FQ70a@Y%+4^d;Lt zl4x1_ONOplj@Q(R`FF*1R2`5ft5OobY(DYJ<|C+j<_O(m0k{R%g^T`Nyyk+eT#>9t zzv)F{e)xSp+gOg%?PmCz<#g;jh3!i8k-#8S8!+xB;Ya*6xZOcK{E4XHBx zzyNd}K8|Tg5uR)EQCIcL#86R$X7u+$^Pq>|IB^D3UV(gX0Doh|u({xYy@8+s@Y&ii z=a4?%J`{rgen+d=oE*g3iAH>?QS9qRSwXe7{`=4h|C z$0LPqx5sbBdlakNeDyyU(`W^qj9;E5< zO^54zt^aK}`?;)K)F&X^druJj9iN013(+l}i=b3QoMHq)$07*qoM6N<$f?2{DApigX literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-jordan.png b/eugtk/examples/resources/flags/flags-jordan.png new file mode 100644 index 0000000000000000000000000000000000000000..24712104a81492a0028d5096f3ef0273925a3398 GIT binary patch literal 1021 zcmVe`jWPXLska*-K1K;%o1&UPq;oXQvr&+^FH921S1djCT7rKzxov7fjUQMMG8IPO-Df0j*PFoG|lz5lbUag6`m`q9X`4#t0_H4 zR_QQvY>H=zgtQu5_cR&7hFF>tW}Z4F=0#3{;#pI#m7}y9Ikv{jQAK#F!P8Yu0@lV- zT$%qNeV6{gvaAVz`Le7J+`Ps0Wi8y<@ijyL_WL2>8U8)jSQZbD9jB{l8GRQn`6lBQ z+Xe_(b|mn;=Pox^uBT`7PKr(ho9gJ|X?t3Y1KWXP5uv_O@2nqNz`pQ~lj8lysTvSZ*1$0{Z{%LT_3~Z0?&p zzjenG(Z|1@rmJx&PkuY=Njx`GqGA*kZ>i-V_qqz~KJR3-2K{4tS0GM^E9of+6 zUbB(G`wv}AAgl{r#@x=gjW}e)k zedvu1euVcFTTRd|LjsP!o#3a1Is-~LUWq-cfbNt+Yr*7dMYs-ATpLi7puJw>NQ1_p z6pm3Z#gzfqvI?z*B-gUxJy3O&`Jf~?+Mw}sy+$$QCnaMx;A%yL)`CfQD!ij!itW1? zPy~k;=yc3WFciM2J}kBj_-lHUy#7ZF r@SW|sMLAci^8I@zkK$8j)Jypv2K-&bMUUbj00000NkvXXu0mjfXNS~% literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-kazakhstan.png b/eugtk/examples/resources/flags/flags-kazakhstan.png new file mode 100644 index 0000000000000000000000000000000000000000..424d9e7b9cff5bdc6ac9183f95077f7a36ba01e8 GIT binary patch literal 1860 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 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-kiribati.png b/eugtk/examples/resources/flags/flags-kiribati.png new file mode 100644 index 0000000000000000000000000000000000000000..0bb318e1097657a756d38d6eb14a4819af2787d2 GIT binary patch literal 1654 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 by?u;b&kX{+-~adwj2;G0S3j3^P6WKa@F zTJivjL`4Mz36u)8qNoIkQZ6DwNCl}6poj-(K|D|qpnwn;mDFmhHjuXAT9METp+!+> z(+1mdZO6Ob*}2ag9;Sqgsyyv@h3fy~(absj^Plg0-~W6g&Nr`Byn!M6O`zXc6QJJ& z`i(UK`c0tUSQDV%1p1A>2_UL@L0~vV*m=KbtfBx~;kV3pcnCM6diw&hkzwy!rgCE& zIg()R=&m-aRa#0@Affh|c}NBJzGbvc5pq06xEbaS4`G1)!3*e{BFr7$s)?{F%UJJP z!QAN~2UAoau=aEy78q{{5V}IYCdAsaLVTi1?Td4yXDT?iF0KZ(k_8apd~}iIM3w3% z7Ko15ac)^c8&5!i`Svc_L{vn@ElY?>PCjc;J@6{ojDdN52jP^PA4FM~Az>=?tpRyk z!~N9cazIKs(MD_R*e%M$>= z-oJ!#O-S;bjs1aTw22rwkdiO!#K&vIC##SMjBP&VZVzodMun2#=S{Q?G2L&DQ2qD< z?N6>ph2;cmIRfa4>VXBaGZtbn#re=OqMo5`h>0F^@$VnP`N$H+HXk%a@~lH}cnE9n z3igLDpjsN?Q5XHHnD!m(F}C?czp10V-iuJ)5wH}sgL4>@0of}Cl^ffH(+$Fh2hg{M zh)Rw&mH>)u)or~U-p{De zE|1A)4T7IGv2N(VSVDHjLK{nH9oUF5=|dvOW=w>WBgbNhB;ME7(fr;^Majzm1>un< z$ulG0f5`+YObBMkvLK@`Kr)_~}!i+*i@ zxwDJ%ByuDHz})GfLWv4B;@{eZI}{*C6U^;hqF>jEo~Waidr!CLIY0%H&fR0QKed7I zXHCcp1&k@5>=l#joLQKkDgWX-#-tA&NqX8s1sdktid$hmXW-p4Lip$a!crH->?KMm zgO!_Fg`b}*@__0}?3VXB6FA1g#`&|3< zJP1%x?-eLTfbd9z;3tFF`&#ImBBEn1LV|nu49Qb9vX{*NZi3{HwRGa&*Kxlzi*PgI zC+k%9wow-}TDNZ`{#~^Us^vIAVJa%`UnV-{Qa?C{97)l}610hk^!Wwa~YO z2wjmpUqKG141E0@=Jsxp@k2@Qqd`<4(cc{69U4VN|3_9B0R!JSNA!q`vAv6SMT~J> zfT(34Aw6Z2Jnf)jfidZ0OcuR?yrYqxwul~e3s3O0ga3n}QYb>1cY$hN^aJ)UAumgd zF-u{+r-kw*!cxd)Q6=)04hdlA#K-F-C#qO`+jQ<4N3Kgrp0P{u08nB>M0F*~m*k5& z;e!pdjWOA*LGb+{5Rja*2_9?^PB%zSI)EUWZV(-Fsl2yE`_A=L-q#}jL$$QcL)jgn z9D-joF?V>Z9K0O!`VPq{hww-PIh2x}wMhSBgRY2A7UR|p9lH07V7;@0cW51?CDgwE zz^e2FyN8F7qbc2QUxvBUBlz(k`H~KiAo*Jba)^$)h(<;>YY_jbN_eE4>+k=f_txt5 zkO;EBTcj^k5E|r*I>||gyrYrN8KkExM31?cyF9!@>ky_w#pQnaf1%Wt*rgx`ifW(& zfv^?%a(UJe{WcYmw2#bto(yEr+qAXP8FD1G)j8!4dbd!8DwEBpmtM%(bl`v{ zM~rCm7DEA18x5OB0_&2V?X5Rr`3Z3`%9ZTk|CptQtOGxk@N)_L6PPA}E+`lYG-n$1D zR&~CPnb<7(TwG~eoy@;J-T00#!TH-xh~4dfeWYe#nZi-UfAR^%*h1Nk@#wq`sY5#7 R=K+%ggQu&X%Q~loCIDr}_WS?< literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-latvia.png b/eugtk/examples/resources/flags/flags-latvia.png new file mode 100644 index 0000000000000000000000000000000000000000..bda76b988a5f2820df7c57ddea4457044036202b GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6j0G*PZ!6K zjK;S&9C?`xMO*{D+!*CJZr@y#Qs&{zT*e`H%xPkw*k1R8XT9q#mF)Tce2>nXRm@x1 zE-*$hzhGF)SkiEf!O9_xsEBxPoH$FpCSA1JG< m-_;oPj|HTXcL7#|{xTXI;of83cQXshF#bI literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-lebanon.png b/eugtk/examples/resources/flags/flags-lebanon.png new file mode 100644 index 0000000000000000000000000000000000000000..fa845645d9ed22d4f0587afb556d87849ba26779 GIT binary patch literal 1242 zcmV<01SR{4P)5- zb2H1r9@!%snbD18ncIgYdt_P6;*2rb9A?I7vJXCna~aXeo@R)Ez;rMs)d@w4N-f3G zLMdk-w$u>t8~5HU_W$wRbME=w-#zEtbCN3!xQhh$a5QQIsGXz$wE@&lQh?e3Y9}c` zZ2+~C6reVM+R>V-wyM_oWo?AQF_UWj10Yn&AHi;sb?kXj-Sxd%2to)UBq4<2XMv`G zm-Rn?$o1$T8cE{4g-@}`Q^vehx6&x6B4B&lL3Xs)Ah^@Dgv92VEBJWHGvr&c6k}0z z5sbt~d8P4le(+yFAdrwSrsx2WBski0mIGIQBsLybj7d=e291tTY?zLak9572cNc8N zW6of<%|)R#n;cU*wbxoWn*HvEkTkb-flZYW1uVX@HX9@O;B^d%M62!$K3Zb)0{!EEr;X2a}&N4azyqK zFcgbW)v}*`-qVS)MfNQSs^)IsrCDppvt*JY$v04C z6EH3WyE;#>JfoPFTUYqt;$a43VWRQaUE3_S=Tm5P^0lu4Q;MDqxy#sFS}E%~Ao~>9 z=RM7qrs~AvR$z6~9ln89N?~4_n~p(W;@aHQT%z$9k9(FQ0ek+cWwy=5iSl=3+a1a# zAQT&>vT-k8T|GmdC6h4`$2UAcfz^pt(vYSz<22f-?K{u-6bLyc2W^k+WME_ne>6yW z)_gfI}`XZZW zJ}}*giO4nrf}>%M^wjg^9cgRmi z$VXf7Z|eLPaOkZZEZfEmgKgS5WfRaJ4bnB_M<6J16eSKl0E=tinDC|n&aKcV7BTe^cT5s!g+v@dogu*5kr{F$ zB_bvN54gvZ6reVM+DQsf8$j(O1*i?6c9H_r22eZy07FrwtVM_|9RL6T07*qoM6N<$ Ef|j#Dt^fc4 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-lesotho.png b/eugtk/examples/resources/flags/flags-lesotho.png new file mode 100644 index 0000000000000000000000000000000000000000..cda4fd2053a57f13049393062f05bb589ddd0fc8 GIT binary patch literal 712 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6axd3tEY=& zNJit^nT8pU0%Y3j-*31ipdzBUWkCW<@d5>lGQMRBd3WcOyn6C1sKCQ&x?F@_@WW|A zUg?fG)+u7`O)HwaO3DIbq@@1bFF9Oz{p(-$&j)Ys|Nimbso@xb%v>Q#H?Hr>=|=kjN` zY$Diyys)UKNr6M4|9IjowRSEC9v?N~RUukSGNn|7I5+8ZPdlyJ&b2YO@nS~H*)(Q` z8Gg$HLZ>>nrn6poUCQ*~x`n;{^1FHJcU`L(&VTmc_~_5T@MPDz9NC?WY|V_ava)~6 zKQVX&io7b@Z8Y@>>yG{Vmj|u<^7P679v?O5?c29++VX@&g0H=#rpD)J(nJ&A-$kF= z+uKtj#h!ky%+z)~<-6hX%L699Dw92LY~#INy70A?&H3g;i5xfXT(8d1kXuJS~#wKhDt5-p+0!#cN|{cc@Ut#@2RW*y@Mx-tpajE7q3y;Mp^` zwpn+M2MDlysFlyp&yQFe21E=DvDbmdbG0&^dTPYS$Csk%81uva+pp&<4)|xUXMXe7 p{2*G~xiIcv-O-L1P+nfHmzkGcoSayYs+V7sKKq@G6axd3iKmNW zNJe9F%7qg@&O4}O)YWz$eD>SAXe&S00h0@S5*Y@Mm>XEIhSN{fc2Bp2elGF0+T7%=3Zf-evBy#?%zD4Q>X0sM8l9f<#`SIfEG)6`X=7#?E z=7S;b^A4VLnmg~^LTiVUOkGAwJdY0T;Q@iPDlVQgXMA`L=C$#Bm)oD100ck2{?3zBQfzd)jXTAuXvd~cWZ zaVM;0Tgx+50tD{W|2n2{;`q^o)D>q8N^d&yls*c)$K%D-w53$Bm+=}yfl+w6MbS6D z=J;zRZHrjM+ol9$ubJigcdq1-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`vFr;B4q zM&sKHfualo3pIB0Y(owBSjQ z{sW!`k5Ux9c&aBa9`x!#PcFDsdr<@hMX3!+V;Y)Jn^tSqnRy;^oYHAo&lq>9xfuZ6d<7I*cF^+!2bZ)7-wfo0cyS- zl(jzQD<=SLos^u#*K}6t40YWnX#B*`HdCmkI5?0)sn_I}L-cI=j-mWy_2cCABMvFs zi**2HG8Vbc(ZL+Gs$#7SKFg7H)E=?lc7kXeBFEX1P< zRQpA++yXwI;^IV|d;v!HL0>PNJq@?+z=d-#vKJN$aDE(8Ntn84@Zzb1<~Cuu0xF(< zZr)Au=w;)BH}ekm55j?A*pq5Jzj+IzBXIc|Og)KZ4n{fk33rN%P0W`HyF82RP$FBf4fV6-#ZUAWkY1{zP0@Anvqy?mL z14s)<;|7oxkj4!lEg+2>Kw3Z=H-NN&G#ww{A1(o)S$-h`o&W#<07*qoM6N<$f``v4 AtN;K2 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-lithuania.png b/eugtk/examples/resources/flags/flags-lithuania.png new file mode 100644 index 0000000000000000000000000000000000000000..3c6818ae8fab734a34f5525884fb3e4303313204 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`vKr;B4q zM&sL?3k6#O1XvF~R$y*&P~?#9R59Q>l<{%7@{FpjdCQ+i-M@d}pOr&4gX{v+2EGeY z4(u7c3z)aCU0{r2e!-AC^SrZpz~OiYAbTxiNy9Y;RHc{qzWvMQjxGu{;1>I>95%6X TcGo-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`vUr;B4q zM&sM-j=U`n0JUqnKYX ztYs`|xW-`Rkj)^wVC~G8(sv@!1Wg|d*R8jx{ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-macau.png b/eugtk/examples/resources/flags/flags-macau.png new file mode 100644 index 0000000000000000000000000000000000000000..581907f6d75c1070c0f3ea7382311ec0261e8f36 GIT binary patch literal 1381 zcmV-r1)BPaP)d3ectyx?|UTPJ)rYHmTWYD(Ml)4XaJ*?PJqz> zMk}2FqXCSTp$VvShNyFfj6}d>$U`Na*H;hll4lrzvwjz!-62gaTL< zjZ7uZ!?+@pPfFEcsMI!1e>fvy%$t)3fNy;CZ*4_M*b>OKL~)p-3%{2Jw7skfRWWgD z{~=E8KZL57*j`rkL|cbBO0H$mPqL-({B!Ro+i9ge%!&FNRN2FHj5?Un7R%UUck)%! zTddA=vv=J_JPs#zO9m}lcXGD7lgY@;f^CjD%6seX(z4pem9ZQ~BWkiy#ZJ?NT2Df|i7kO)#QKG_}3uqGR-O%`?^IUis=KIw=~jRzmv7DViZ|M({*}BhwzP$5{bpobd6mVHDs9Q zcJ=A#EUmp=$dZi3WWt-1M@60+S(1or8ovz(IDYwCj<n9#@zJVcV#lgAm}CX3DRJLWWSMnt5AD9YB2dLFfzCibhg(lS zan5Qolcicwz`{o4Q!vPVPVh=-RMWMFH%cd3OtoM}S z8y{n6YJyl?(5sizx8xWF!t=c~E3I;XE*}4}LhuC0}o{QN>k2VYY)8 z%GV^t*Y|zhJeZtFim%5dtP^}NIl+b7H`rWK&cAJ9b>PZCAHnHxGSLzwv=t6chnbAb zP+d@j-SW>)bD_vIJtKocgNGDciT%`nhn|rDZ*1Pd3cHhhTlQbt{}G<#ekjNnoo$Rg z6dOFG@Jei69=ntEo|V)Umr_^k1)wwFqchOYHUB;Qp!-J nV6@T+FdD#Ur4wK@fYJIB^JuSgjv+lY00000NkvXXu0mjfhN_M7 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-macedonia.png b/eugtk/examples/resources/flags/flags-macedonia.png new file mode 100644 index 0000000000000000000000000000000000000000..18be55ff0b7d98c1dd943d3bc669a10c66abe69b GIT binary patch literal 1836 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 T7_Pe$00000NkvXXu0mjf*6(B| literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-malawi.png b/eugtk/examples/resources/flags/flags-malawi.png new file mode 100644 index 0000000000000000000000000000000000000000..bd4bc537257bff9cdeda163358ed32564ea4beff GIT binary patch literal 932 zcmV;V16%xwP)k8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H110hL7K~!jg?Uy}o97O;?-^}dn-tC>S0G$QFu_De&qJR~O)P$};uUEY)_Qvx;|7D$AkgJ8o~ z+_D7^UG?0Y1T+2#yebv1h=hwe=c4YBAo$r;>;{LZ#{^(rD26J<68O#>@V%KZ4vycv zou%Gv11zhIw~`Jkx=#Z9)%NxF~c6s1R zrlI-os__5{!AX^|mM?JIO}XbvObGnq4O`x@8yr;#1P%{F0AGuwLNG5Bi&FEN)M#-y z*W0SY=aUilT=`eDrf59CX_fJ5cfb#}AQOW1dJ8}H1`m9sdwi14b3&yoDGk7;Gdy$^ z-&DJNYYvdW>r%6ADDixtbAAtwZEqTLmQNq@>=PYV znoBz8hMBMzJe$t2?F|=nkE{K~f4%v?b4GQz+F#^??y>C+o6fKoJU7gQOFHMc(#=WJ zV1P_WR`nbsZ`lcs`?lnXx13LMuJn(Q3i0$wYEmJ%(m%%eB1H=}HO&cJ#Ky2Cou?1q&28b;Xn>Ijff!K)mzIy*izYZVy z9nc1dEfAYFKx~27v;krZ#HI}pTOc-VfY<`DX#>O-h|M2Z3owb%u5Bs+0000IRN=Qb&X_sgR9{VNMw% zjx3H$6HP`maWN`0=?5cz@GZuE+XqROXyO(Z=S!5$2s2w4+lWp;0=3LxC#)M)*M*=E z`m$0>ub)cd=q(K^IV6|g*XOzS{?GqD=RD`0D^bxZBao2^o5;tb5&HBcfa(ock!<24 zg)SPbJ=7FC$<6d}cBquozn1Z3Ulq})v|s`E4_{yKwW&Z#W(|1liBlYU`Y0NWO#5It z-w#^paX&z5{wPL$fRDO%68iTpv{Dp+89DjFl7HU2aP=u*-U_fce8wAfCy7QSUOE0E zhtKbtjX6AK0P0ExxZo-wH_HdWpA)&P%A8`{pFOXDtCsZ(l%5(A8c>qw;q}^Y0eJrC zs~qdz9yibP&uS_yE`rlK0CEg|W}=#;3=mDiT77rVS73g~!JG7cOnN^<-hB2~ zc41yUMt;uU*mi!$kT-uezLZg{0L$H8o+|4F;LQ`y#m$)rX7X13*R&5l%&IIO4b~pQ z5iQyJTa>N4#_rO7-fP>JP=M$~P|<+0b=Qz2nW<0)=Ukf2Sqt2J*!d(c zRi7akPUrL9N0|&7QY<|+BrxCx09S6VjT@f~8u+-YhW*>Rc=@r@bK>=z`*^>7AIE;G zCKA;u3J~1|RKF8cG$8ioW0i0_Mty(-)g9y*e6%?$=EU2a733Iv9H{QVs1Kw_Zt78- z0{d7!PG=^n;qs09<`p3NKtxO4Gw&z`$9yZvNDEVCak1y2KF0mo^j$BUlUH7F zl^=h9kVsU^R7lV8*cxP6A{b7eSHQv0nL8T5os!T1fX?4anG9x9Tl@>VH}_M%-i8!z)s|29IAGy>B){GkkFk{djTHz29=09d>OktKf~5aZ%V5f?{_7E_B5 zRKF8Ux&jsp(cc2nNMV7{{{o^>{S=U7SzfLHHKTe1mKQbt;y-^*l#aRpVU00000NkvXXu0mjf*AD}) literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-maldives.png b/eugtk/examples/resources/flags/flags-maldives.png new file mode 100644 index 0000000000000000000000000000000000000000..66e9dc59b1da144bd92affd40dd3428a0effd868 GIT binary patch literal 656 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6axbjucwP+ zNJit^8NMDOi4qO-GfizZblxfY8Z3Req3PK{5f$Nup&u?NehYAUpeU;E6#Gg@tK>vC zyM9o~3#Af)gSJ1}AMrbh1#-?b4CKr@`EJ^dB^l>RxShq^ZvKs%_H*84xwgvrwQ2Vs zCii~-m&MLs>=or8CF_7e%+lE|9>v(~X>458sv~Xu>|MiaJBP-D32WaU3DVN+wqD1a za!lD*c^?0RD%MK}k2+1hwn}VOcXLhGI-$s!&%ge1HxstMx&6OJp#W#Wt?6eEw}r`F zxt~^R?REP_vYMT~*NPJ?5?tlNdig59s=H?`FaI&I!#jh4>3xH=XgKF|bEXS|FNObp zQV>|Mea9(uE_#0a zW9g9DaM=IvhxLv^OBwh5yOoe^&E^p6*$R{l+{g6&7(2s`qIF%b53*f-+`qu)K=)G3 zHhUlD4^M8@o_iv?BJ2nM#OV*#K8%w)Yjb@5?Bhwljc1*^?vcUp;Pn~X+mD|)X(t#| zDw^))lbQWeKfhzmnTd~2KTAvPIITKWqRlZWzy0oC+nnQeAOAW}>y`BXD6jPL!QJxi z-O0?8xPHkz_{p#?{6LR&$vzv8<=&?XcKoc5!lIL8@MUQTpt6Hc~)EGdx`! zLoyoQUf9U#caU zqI=~pvjw1Mg~t;KbLh*2~7ap?p`|p literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-malta.png b/eugtk/examples/resources/flags/flags-malta.png new file mode 100644 index 0000000000000000000000000000000000000000..ae23c03f45a2f731ecbfc41fb43f968a0808302a GIT binary patch literal 600 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6axd}RZkbk zkc`H+(>7)c2g)3`|E_lij~JA3l;1uTo6PrE1nr1n8ub^ea?zj@x*&D(lS>B-+irca-1 zrs&?v>tF9b-`FIft>ELi+&vp+Y>(DUVUyTq{YFpUD0trT`<73fb~pc@&t{OtXgZUz z?d`cAzrP=jNf8lwaGjC8nw{Z>#j~fo%|)^W@9(QwCegNLf32^r=f@@nhWeL0%Yv>& z`cGhTczsm+oBnmT?xh*6>Hcz;|Liz=Ho7z{{Q3=xSBC<{8#ec{UHrRS>M>_B!y5MB zgJ)j6{9bito?ftZ`Mk4d`HvLV=iGm^a<94@?$5H&5slz9w(0vZrcposh7P|L5e@o`3H#?@7pd#PrJX#d-#Y=4*Dn z{%0@BY}i)Bx_?`V64NV&JiZ^-k16^a_Hq=AQteLX$9+*9Sp!QAztXLKc9KC{mKVnQ-G;}!PC{xWt~$( F69DK%1L6Px literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-marshall_islands.png b/eugtk/examples/resources/flags/flags-marshall_islands.png new file mode 100644 index 0000000000000000000000000000000000000000..4c6d97ad41174fad4c51f2d75963c468102ddd24 GIT binary patch literal 2427 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 Z;5oZL9ASF>Y(w002ovPDHLkV1i(I?`Z%4 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-mauritius.png b/eugtk/examples/resources/flags/flags-mauritius.png new file mode 100644 index 0000000000000000000000000000000000000000..4aae116bcf463c54a1b99d98b6c4f3418c783bef GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6j0FuPZ!6K zjK;S&HgX;c5NS=Ezb9zJl~asN=MtW4Oj|dxHAca8+Xk=MqD&_x;tS84A3Wd4KK=T? z@5k%3-mGEX!m|Js|J%DqT~=|cS&wC__Gtzy2V|UmyXvfJL?qh<#wcX`|IGPI^B4Wy mekab#N$Wq0Q3KxvWXvafh-YfFcfKXitqh*7elF{r5}E*w&u1?H literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-mexico.png b/eugtk/examples/resources/flags/flags-mexico.png new file mode 100644 index 0000000000000000000000000000000000000000..4b139d9590ec9b5a885c8544ff42b3e7d8c6264d GIT binary patch literal 1124 zcmV-q1e^PbP)z9TU7wSfBlAbl(w)!p-_-A!iP*Ya5z68#%wAW zGIcs#ATIGiUEGX`ON_=n7~cHgZF>;o9@J#nV$6iN2vKL$=mwo>m{jDe(2hb|D3sEB z`{iHY8~5HA`}+gV`Q?{$?mg$I%Fdn0g*MmOO)k9fI{}(Y z5Mbf_S>CyDnPP`aHYZuPKqf1Yh+p1#hHO;JqGejaH8=KqYRBFryEz!^tfBo{EY)-NTNCrpQ*$&|k-zB%V3-81v z+oFhPE<~ZJ5Lby2d$|Rh)yTC^hvd?dFMz>ugvDhaLOe!O%VVVCYh;oU>{bKy4flY? zKrSti5V9;T1?AF`K0rJkA(`AFmrVgF3Pq8q=WPu3d-2V#)7ehdH0Lf%rYCY)#Tpz!PASOs${Ss4wjiPch{y>z5IyLs1T5k9@(Ph$nHZ(}@ORwT= zJ%pvo&2n&>t6vXFttWi|OOX{_Zj(r+giGEKS#>dSRV%1;wAAmT#AG2Xs0jJ}e0b(K zhmZF0z>!|`nhbkOrT-mDehz4B>0&FHW~H-*&o6yJHr>R4P)w}-aT*Wqp|ay9o*P$K z*|3nZ$9RLvy$;Mr815xO|20 zy`#h&MYs-CqdV45qooQVEiy9x34+EXwVw1Vz-p=B{sT`DTk}$Bt>EMnPg0;NVs7p> zGm$7iZg-GMW?&~naKpo+&pyMRomJY~dMUA0Nv$W(QTV>*c7FP81Tl3RyZaaygK?f; zpP)B!hxZqZ474}1)O4IvPLW%8JWQ{~dGO#-In?Ai2dMQ9>fH}Bzc4|EX^juuJ8bDn zxVw?&WlIddpr%HbLl6aK=Wk**m!mB#lS56u%TR@*fm0{m<<=i#O!+3Mt8F7$|0edd zmb%0=-fz$0=KzSN{+i ztzJ$g`QHPyT0O3+{Qx-aZUk}^==4bcx%(F%h2{l7rPEQMqyYIh!F+&x0Hp<#CLcg) q0j0?YP+CA~@&S|%g5yy3hC@ zOGAKc0NH5>kPRR^4FR$NWTzoOHh}C%5fDXi=@%K5{}^3H(O>iM`DZ#O$|-vL91b0< z$iM&u-vP4=3Q+_%X27yS=BF*roy`yg>%W)EP%0}Tk+vp4RfA2B2?Ka%q@82On*ca; ze@J^)rL!YI)4=s$_-G3seAu!Tq%CJl0>V(+^qBWQvdB$peEppXKx+!}DMPIb)W=^YVAmVKNhQAFzzCLr6UvS+(ZyXDbz zMq}>oG6l6pV$md#4QS7$=uBCptq@HuiNX@M3g|k-4HZLESj@QC2{5jj*h?mP(+9xR zRTAdr`^!Ix5CNBG70%{1mbVC+S4{F*ht5uD?sHMpi14~G;}ast1PQ1G3iC4_K^Rfc zlYBAY^6^(`2Hq^P`^8nhT}biiZN~4{|2!Yy)H)iM3aRKi69tdd4vQo6FB7+~ zap2_Joc|%ih&D)%w!{GM0_zR)t{xF&f&}Oq^zRD!=KCs91pV1_#N7q17A#iF5&c~k zS@qih2*Qx0C2lt;tO;64ooQXc^;YS-d6JG)2_27kT!l)Wu9juisvec7OxhN=Ll;(Q zdpe?9kC>V*(34nZeCDEy00%1Lme9S|=`3y)euE{T{IZ z^o4+$cm0C+??#w_s_*i`GerUq()T!A9JeX0`S_mBsnZraAE{8B(inVV3B#!SY2BYj z*jD(d$7+}c9Dc*$y-|%)F-FRYaKkc_xmHr?Ii4S`khGxYi=q;E2bdd=b~XcTHy9La z*GR@VcgW#q zOLT2R+MfrB0swjiZFm1FjdKCn0J75%AR9n-8Ukbk$WB9mYyjE$-wXH+MEp8<;IFEQ P00000NkvXXu0mjfy0-D6 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-monaco.png b/eugtk/examples/resources/flags/flags-monaco.png new file mode 100644 index 0000000000000000000000000000000000000000..0be5952483c7a94e919cda654e3d14a025beb62c GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`uxr;B4q zM&sKXj)Dyi0?dwl>@yDR7t+x+`nB;gSJ3A(Kj)RNJDO+fpxq$1K-7W%0@nie4Au+G zTbN!jMlpV2Sj$k=5XJzJUdvyQwk)`0GZrZ{owt55*nhWT3l4pGKn3Uq22WQ%mvv4F FO#qHFPa6OL literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-mongolia.png b/eugtk/examples/resources/flags/flags-mongolia.png new file mode 100644 index 0000000000000000000000000000000000000000..7ee158d2087bfb41a2c352182e57718839db354a GIT binary patch literal 964 zcmV;#13UbQP)uoT{B29;1duJC zvBOw4AZ-C@)3gEhdfiSPsnN6n-JdCh)AD|qI!zgn`&i>{RrouicI!!;rVMb$BJ{k# z-jKaAXvzSqN0Z;J=>9xxx1PkYn+ck~p2PaUQ2N1Xx1PjlDg*Sap!&cfe3HFWGd=?Z z4Bsf>jA%?nFnz$MI%y>!Eg53B)ZG%{jMST-@C;ph6e2^3u;fyN1J1^GJHNeABUfhU zKCq+#_Igcl--fr=8{DyQKFZF0U`YeQ#}fY&Me#cqJu4{v&?P7w^C3eQ!Uh9`4RU3Dg{CAS61+I< zV-FhCD*+0G3$o{ROj)AK$%<|z4F)(Pn&BHI0E%Z^)MLrO*A-+>y%Ww~b(p)B_aP6i>SeN^UK&Cwlo;o9AETsZLrHCOlr9@-Qk1X~_`V1M<7-tDU=)Tl^grvvUf> z8nF6o&@fg!)43`Ce_{=o+Svtw)d$gx0Amn6(08QTc5z7%Yk;W=R-X&VjYgDjIV{|C zP}A8df!HS4wKv2Yizt5OksFQZ-Cs*WS7O8(kl$Tzg8e5egpVxpI~7)cb{<2qCE#o_ zsArPeKN5et0twE#>|6z74XE6;um%nGkU{nu^n#%FcXr+au_aLY*~SD=s_%J))#9|FtG2WQ(vlnx1 z5t9b71{5YdFn)m m0m}xYEg)@{4M($?xqs}0000J;o zm+DS+$>UW1ws=EX4G2^7WePS zZKXGn_)IUrvd1s^eM9nbKt@JyIVV5aLq`$0686pUOCFZ@+oeEKjb)(7LIy)^rJfe# zu|6^s>{>%}v1lg_6?tk3whg;bz{p^z=t72F3D`K@E;Vfg%qwz0h%v&Fr}>!>%@{8C zaYr)b-5PnfCOhJoS?m+dXpRajd18#n0fG6n6qDXPl!i_znk#-a$9-Y&QB85JX0X^N z-s6b(IQokNip?56s&Q8hznY`DqEkvJ({}4g1#tH|B1Se;^r#}IGvwny@%#=b_=o%W zNBTgdcy6c74W~2osFDqph~e%{TMp93R}E%>3er=ie>;O^f)v8uMhR2E0LB|7QV5p8 z@OLwaS5Rqf6K@ZaCPC|im|&IBo6AryxHV6`kn_pj9aOPhKG&LsC$`8wEpbzdc%i!4 zfC<)5$uM;lh=OLwfyng2*?`$6D$-6$_g{v!MVmvha3Fp@TLNksKBjUfc zjY7&SkTwD;gVG2^z#7HR2=0_)PDlKH{;xbZe~lZXb-XrQuZFl&4pE^V8L^2_w)QEJ zGzZu*hXG;Fz(FViv*%{nwJGMl8HQl*r%eJ$1<)cA zHyYGwD}q6>Rdch>d2jm|>z~bVh!JbYZ*XmINU>Fewa%+k?28(zA8`c4%Qb99;wT^( z)lQA7uwCVxp8FTieEtZRZyx2s-{+}fhN@8Q)PNC3fjEHSlC8PV08c(KGD$}tDy z>orf@cZrSK@$}Mbx28VeBjf80IFJyrizTv^{-8E(6(~Ta6h3T-8xel)(P?FF-nbNd z+{oJH?`RtCj}?3siMtW|bB%~0kLK7LWlDm7~b7)pZsbHt5RD2pOshchGZ*u~4D?R)Dc;`0-m7s9$XUneY5^k1Tt;?zO#R^w zcHA-j_%uu9*Hmv7$WGcam|OrUK`I#iqrm;KZX^1XM{>dCZ2$(fcIs!^mGMY6u4E8QHAPecGI3_V}+T~`y{Dk#4UWIf1wP=3`A z-YO|=}rK;b^I2G zt_gIFp9JWdK-b6s#49p$dubuQ^*00XYdL-`@03tixV;|x|G|F%*C_!o76hou00000 LNkvXXu0mjf8+VHG literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-montserrat.png b/eugtk/examples/resources/flags/flags-montserrat.png new file mode 100644 index 0000000000000000000000000000000000000000..6cd06491c563cf775c59215d3bbdf1d5ab049ff8 GIT binary patch literal 2161 zcmV-%2#)uOP)i?Wn>^rX>Mm^Z*3qgAWd&>baQ2La$$6C zT)!It000zpMObt}b#!QNasX6sVrgM>AWC6tZ(?&`Ef*dD00*H-L_t(&f$f-ER8-d) z$A9NAGNQuZAU6r37BQJYMWZ!AQLKTYLRZzXD^aKyh*0D~7qorIr8LW~RV!2<1jT?i z(AWsEEf_7V77ZwBQ?JZag@8kXa+~2c++n5B4?+~5KO00*AU-~b;zT75 zk)arhiwWr$n*Y5Z+$&#Utj7| zQ?VN@At_14g$ut$p>Thym_p&sh1^a2s`3-QiCD{cl?r8PDGotFR980<8oGywhy&>L zZQo1h%t7+xgHxw&Qe0e4@}G9Iysn6^w{4^G(@*hAPiOvoZ?0Z_pWC-sf!qCR4r@D>3e>nTx zdRAe;RkGinnOrmaHFtR6NZr-eB`gB)pZ6$P- zm!pk}!cbCz`v)KJxk~`?zd1QP=KwcPNK9p>q>K8Ze3otwp*J^&+pqr={p0n_+}*_| zAFNn01GPGlsHlY)4F;;VY~jw5CD_fJNoVG1ev+(3qq#poNTa#W?AhD7bg2@lw>Lh8 zg?R4TMa_;K`0w4ywZE)l#fljg^|{|s#a0Sar!((Io>X`AakaUDx!dB<`!BUf`=J4H z`B*YDH<6bYhlhtFEd>RreSK-n&gPZOW9*&s4*p>W2JQTJXf*fn_uoN6LN*%;_Qq*bSeA&YREbmfm}Y;qGTV(M=IdsI-csz>+G#Kf~5AUMLHtD>eX}5Xc7qz zpHE+NGuo&q%7TL#w{RgX8F?&BRFj-sfYJE;X=OB;NKP(b=FE@y;)^nDy}X!~pU5Nq2fv-sT+0e&_3AlhCplQFyL1ATO>H!Hcd^WE7LGm5{mRX~#EU0RM3bEzjjO8z z&3SpKl}eh=oWbM7XC%p1u=r;gl$Y0;o$Pm%m)8*(n9PQw5( zg4sQ}jO?Qu%+eanfN!KSbRFGD1snXvPNu<5ZbsBVM3rg|y*eG0;o+2rg&|wEjJiFa z@kYYGNliVAg;#|KDVR*8rk=&u_xBVO{FhN49(d>GGWqafbcYTxJ#oExLQnZ9Gkc;F zIX{o)uVt6P$+GoDY|PF^tx#Y%f1Zga^Z3XZK+wtzv|61-f`g&e>Ie?rO=RQ|nwr{? zuUm&wqhZXfS!Tr#HU{&1^}OZdMNGjlPE}rp_C||x6JYa*-UZAd=-4U>di$RQ!!PdV z%d)%N^5_AZ8gN_&v(`Q=-`Lg0!FThXt36;Fv<4;^?qL*b2^jk|v~+^K4fHkjt7Gn) zYZV5Jer!Q=H)wgQG=p5jtF+rmu^sd6`q0zbFGlR{GfUelE<@fGSBR*-0YHGm70y(O zC_4<4>DqDg>!u13*JdrjCHo)7*vWoumbO(GAZckQr1Wn9bPFbwWBQO+3zW7R5p3kZ zXeM?x5Tboh$Amz>(mVsK;uWZEccV{yaJ{uP3A}16BA;ZUuMZkW*#IWQ$6oqs`DB{v z2Dv^Df>jt$_8$W^&eI+}XcX~#MZn8bpw-?M3`QEIk0x`k&ztX$hUr=w*A#16jdz6$KMIhq5SpJxJ z6P?a5Bu%S03O|V;2rOUjOJIm2J>61{d|b+{TQ!zxS)&2NiPbEEFN&82jC2Ac%}WDD nI)Rbqr2!+Iz)16dZ@~Wm?QGK$LieZ{00000NkvXXu0mjfTV(vP literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-morocco.png b/eugtk/examples/resources/flags/flags-morocco.png new file mode 100644 index 0000000000000000000000000000000000000000..4d1a29d96fffd005a1d59920ae1e224af1996df7 GIT binary patch literal 1011 zcmVklH3_bnB{)3XNuIlQn66IEn4| z<*@EBX}|^hMOr@B9Q@?*=Y9S4YjI)ram76xLpOl#j0ETg(4CP0-2l2X5}+GEcSZtq z1L%%c0aX=HRe??fy#g*eAs3xcCxTu9E3RN=Oz1=)q3gnXQu6C~0tM{dkhnt6z0lTx z#pIAq&Ze8QS+oYaF!Tv1X9Y+FQnBLdTZvkhz)&eFIg_cHhfq)+HyJh*NfG~kphf+8 zF`zM#=EL3N^)j0BREqI+Z8#eAwM#P|Q#(WI0l)qb!p!n}Tk9OtH=Z6;}|Nf{&Uh z=9cPIXAjcITFkA~`JkD?>iCr1c!#0b1Z+y5D^oTPZ1wnJLb7^1&)A+%@oJORr}8Wm z6~*fv)~0MWWqfA@u`Pk0(;m8O#F8Co>CO(3W{TCifDo!pnIa{}x776YbCZE(S-dJv7?VpX5?~98nrUu-UA(sjkhiV?DuKAph z={u(6gb=*vIXtr5<;#-Ar9zTMHDuf{BWH`H0q0XbN2&wn*A*xBho8IUWo2__O>wk3 z;78k!11%l_ZZF_$J;jXp_rgt!1oJy7+-^J@VJws2|2d=Y0=fZoXCy#3fbNV0=myZ8 hkpSHQx^vG9_zUeiH45dQrP}}i002ovPDHLkV1g*a$ua-{ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-mozambique.png b/eugtk/examples/resources/flags/flags-mozambique.png new file mode 100644 index 0000000000000000000000000000000000000000..b3a467e70eeb0e4f337cdcb8408c2a8716204551 GIT binary patch literal 1289 zcmV+k1@`)hP)3jRWi#I&97ZY1nZ_iWcQ z>%?sRN>Iaba=`GBh&%g?9*Km8zmcaz!mA&nPKgIz{uwP254HX^QY0Sw1HdSe5V|re z^mr$wR*d64YmIqaEH5Ty-%iBx;>TLtY!FufQ?5$ko<0WNS~2Z$4IL4Ipe%BFRXLZ- zb7rK_nL>_tg7w8QQdUl4%2x?oGf(|Kp@(PChFL;G>ixObB7u+s)ZLBc<|*x1YXH z@=uDWCitEIDxY}=7}f%u2zmI^KLNmvm2UR>hxp1nNWbRe)0E<PQG(nH750`s*yJ9j0=#N@uS|{RWxO-<5HT67_p@j{W9mQ?10-Hw3Jb$ell42N6PJ zGS?g>_`6eMKBOD z7lDqB4r*#@sH&<$5CocPZqJ{o7RLMlFShZYl3b)zybe%Xr`r@g&=ixbpT9G zPNFCZqA1ea+e=G#A6p>C3<&3t>Q3q=I3++&$jf$bKdK<`^EqB& zFKbqtNVRy_xZX$Oma808N2oQ&jzF?nK9VT`E`@x!wIKV_o}wbt!J3!H0m%8=#uL9U zA#c?cOc^QwyOx#k;TbQ3@@hhXH}Lfp-{pxz!-ng*Q`5 zLdpsf^4z;TC`+8Je42^n`D~rN`X8C7DUk81oAKjWX#Ut+1(s4Dk}ZVy+?^GnWqBbb z2R_EKyl`f#odFWs54azhb~kxDT!_m2uzVzOKZj!>DjInWgJiCo-`ipjC4i;WN8#7~ zSW1(>%g5t^1(@%ak0fCMjAHpn5)!~jmX9Q^07kQXBrydL6^*tSP)IF*QM8NOWwlhwj1dx$U*< z+V1XrV@!O}J<;~E*w5R$fBv8U_kQ=g`w7do)aoRN_2G7EyhjtY-HZ_DvM9@LiM5Ae z%s7CYg$r0{w_r^*^VW+SdHUhi0IXbQN0NlN3C5cl1z<9XR9D@}8_#cGA~Z>NzrvU= zgf-R7+b`e6p51rE+cR#Mrn{lE*g;F{FelD-5}DLcRh_Tv+VLq70^<>mooHidEXY!) zjqZLW5zaA1vKMZzj&^ZTu9c&Q?!&8u`Qcm__pHljiPOe2kE})0HMVXppy|?I^t%0g zbl_f0lE~HTBT+YVs-skduEgUUb7sm4a1V|1L2V1y+DBQtB8#Pq(%D&=PkXnA!+SOp z4y)At)P*z0N<(umU46bpdB=c636I`i#F2fQ$xKg4r~&l4{nR(P=#(eXq2}XSdMm!T7{P;K0(`5d*If_XV zuvulcRTR>2!G&28DKB%<*5x5ZmS|}m2H;dA}^nu&FE$L4bEZyNn>rucr^wRDh=IXu3{hQe$W3Djs`a1?e`K^4s&sbu1t= zBZWh+Y@%xCZTQC{D1mUIyko|+(;$GV>b&~S1rWgF3$bQJ7FXLw__bw#*WUky;jv)6 zJ>$lV0s#Iq>OQsq%)jN{c(FhBRtdzkSRJ1Is(-S`nB}r;%{%+O;*8K%vUq;A?HDtE z#z>%07*qoM6N<$f|c4vDgXcg literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-namibia.png b/eugtk/examples/resources/flags/flags-namibia.png new file mode 100644 index 0000000000000000000000000000000000000000..cb95d6ca697f8ef8b1e7630a03c9cef689520680 GIT binary patch literal 2178 zcmV-|2z~d7P)Qce%SH21W5Qo z8LwYC`QG==^V~U4zW2LNMEp5g!z+%3+=Q6W!F)8<7u0HsH}0ljp0 zC_{UD@Yl%ExH(#(yqQVPoX@FFzpnHCSJnV)3mFL?4`tG*KcT5tQ5cs@VQey*+B&^- zUP%K22Xtc7f>Aixo1@IQP4?`iC^K$1OG|G9Y|S21Qf1n#4-<;LwVb5z;k-M<6HRR$ z1>hw=v_` zyYg-9OeN$kP9$^K6l!kW7p!eHCP23l_)ne#3FD4nVx(f}_x{L?>)15mFg|X1+{(8T zTu4I%kML&gykXc_$f!DViJXvS)ZEJ!tZU?8i*sxQR)GT%HFOTJGF6fse25CA3AyE# z9KYF)Y5gwJyZr;os%7jx??q9C86E6P@Kh9%de@CL$NU5r2jJS)k}V5IGu*EO>Z)q; zqt{cM{55EVA6cy58HV%fa3r=?oXWf2umJ$w6$PZs+reM91hH@We(cSwpS!*-?R6@Y zQo1@9F)C?1^=h3aszF2|nD(X*v7v*pG?P-9a*mw2%c;%E6Qm1Z?BswVVIdYn`%_h? zBur@&6~J6;eKEPF6$Oi zB@;8_r?m_^81b}upz#s#eJz)_UcZ5{SWWnl(^}UIN(iRAO98un@#bNrT(1H7h%Jv`8OG7In5q4AF#xZ&hVlz2EW}V}slmxOXi(XpV=+Hi_l=DHa z3=UoCM1@lN()F*?yW;1OjgMQNUd>CyA{GSqfE=a+5BegaUAVJ|Dt?hz^tcE?)zM-^AhNWp8OAimg-L4F0s|rf0`&yR{+Jj`DBJfVxu3?NDt#oN?I%b(x#O~a336XgiXN8} zlA6TcyD2*DZSXGeY%`wDh3rr7O7iI*WUq>6*I94kj`=a5<8OGhDdl#7U8BwWbarC< zl0dq5XiHsQ5x<75q~c#`x_8(BA|nY7b0^X!Vk#mNWBzgH1fi)Lc&IGbSwp9j;8$n8 zNY8QxV9y0lcAoL(R=z#GR!zlPu556h)I>t`G=IY1_rpjcrexQSZ61vZ4t zt0S%(K11f!k-X{>W*%S5!TZ{Os2iivyMQ*_Y|F_iv1)Q%A1@cSFAk)0J9}!g^2nLH zoXV7QdKdU2A`@fU%%6fo*d#)f8K%0i~6#B((3f*?(U1|t4G?bsGI1`ih-YVKu| z6S9n|GnWMGie*yTM$W)))_9PJ*nIsvB2I6mqE5J}1~I@wZo(HKgPHNxlTh+u(%*Fs zC7Z&mPY)DHi;;S`a<4p>sVQqn$+=>Hs-Ga(0HL8|Lx|1fIDR%8yQ%M>2G(BrhN!dK zsje4p>a#T40BZ{w@nJ*xaI~;cQXA&}Jy9es!oiv3 zi^S3#$7OS|4Sth)wTjgj_Yi&lOKMcYO>GFh46wJBvu@sS-WzJTQ1X9R4C#krZ6wA{ z4qPqHWb%nP(u;(f+7vn)Fm7-+lEO#eU?Zpc!ZjYu`P?A6oW#Zw=hfj@2MwoIT~GA+ zovcjXO`W=4u(mEVX@H}hIU5&@WUPN@)XEz27AI1?X*U{`fb`>cti}Z39J>IcHnvZL@<4<4>2KsKq#5Ek)(_Rs10DM5S|*)TA^fXVnB5*K0a-;+nR)yz*xVC#(^(D48BmjqGT&*k``murw64q6@;a2Waq781}L><5d9V$p(#IfLb#Ab zjNQ!fw2hj9SSIB_W*W18UPpela8p|n(N$|-!2|hXC^;u}9sBP7WQh7&96^u6h6p8F zn`Rqes8F)C(c1t+hmx(0UIw&8DB0TRWI#)XlC8~u0rg0753`Ll_W%F@07*qoM6N<$ Ef)ykb;Q#;t literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-nauru.png b/eugtk/examples/resources/flags/flags-nauru.png new file mode 100644 index 0000000000000000000000000000000000000000..e4d5be18394554d876056ca9aaffa7c892c7f9c5 GIT binary patch literal 734 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6axcOw5N+> zNJit^8MfKMfims$XFThjWpYbMXsMyc3-726Tvi0XXQS3A#I9;>*tn$Sl31>Zr*Ec@Z`Pz;TO3bbiYYGMbLY1X`#El#=f{7_ z^Bq5MVzIKx8Oe)Gi!L$?=qgCrG7!bAVQ5=A-Q47_YMMpVw=64$v(p`}-!A=buVXH= z{gtf?o8|pSX_F@&jyL^t?=!=a?fcDtU1?h*)X~Ch@iy#O+npZXorSm7x*TdO+g;kC zXW6~)?X(KH*$K7T;tkd1Zk6AD)kYt+a`k5H`4P(#|1LQ*b@J}*?Kky98460GC(Jw2 z*}}Xg_lf7S&0Qz79KBU1_@qnn^G@pW4_tc{Xe`i*Ra>oA{t$V*&@nVuF69p6C%$#y~PUV|9$WMJa<>cjpQb6+?By2d{Ibn&zUYR&z~{ZKj2s8ik8(%TSAzQ2DSRE z>$raTvdOcrUnZOs)s&0x$y&IS;n!VTm!%4qjk~94Uv;bB8I)R;HgSc>lKXdM&i(iC z)^|J}$^F}2i|5y`h`O&6ruN4(?69kvIQx72gj;9KpRHhx^nb`M9DYN4+Rl=LoCmI* zlk?j>_2y5P+pJUFu6chryqxD`$+YO}dl>da-%UI6K5KQv@(HC(ejCc88A8fG{_R{N sT+lSjysqh)y~`H{7w!(X&y0WAoU4}G*E+kD0n;Lbr>mdKI;Vst0I|tExc~qF literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-nepal.png b/eugtk/examples/resources/flags/flags-nepal.png new file mode 100644 index 0000000000000000000000000000000000000000..6cfc702050a8f9962a5e1882005009db757984e9 GIT binary patch literal 1843 zcmV-32h8}1P)!y z?LY`03Hfpy+joDMWOa>865s2n+VhX)bI*Ox@BP{5ocG)-n7%C+aBB9VZvGE30SkbC z38`icwwS@dbo+B6a7;+GQ%IFDn1Z5Bj{$tG!v*kN;DV59nUG2hnyM($YrvYu583W0 zC)?AK4!j8*7gF6fc+#SS>9b#^chs}5Za2%XpCMNB&jkJ{q*^DWiXS9>hGY7CgGKXF zcl^9>#cX@`mF8C0E`j)z>)|_^Xg=kC1A36!jTS zSOa>sPf6H(Zc46vz#EP-ay>U}Kq+7sQcX5i zp7HeSSDez}Vo%*WJb&#J7R@^q_=k{claMOOAbp0@@4s=Z=I8s@&#JGkbYDjfP$r}*7gCMVQJ>)i8DJSTGU%eP#F8{~8p*RH z!fZyE&Ar!RhGzlrcW3$L8SVDUKw-7OA5~kdbIW09L*d+HA-mc%vPp_UNUh_Tx zd@Q8eE~K(WC7S^dWI)%&8Zru&knwCj)(PW?Nly#vY@Ilcw8eRhe(l$^o&5Wq18RQq zZ=U5q%`RrQ)tG?i2pq7M8kIyO1R0?Dd^n0r$XUOZ?Gl-CoU7-E+S!(j1CnhsJq;uTZTwE`0py{=@ z`aHnwwi@==zD@qkvzRphTmt8cwL&UOM9OtSFn!xkfXxSL-(rlXx%WcMkW_5*zCq%& zDVUQIY5VvLw~ijCtIjdt!K$p8tjl_YN^2Itd0>TRFFFxv5|I$rfX{O&ZV1lU(1owR z_=R9!>LgAji~`VrKLD#Vd(n-EgAaf{@6{RJPSy^8oa#7TpO^_?88BZ+Rjk>I`aZXG zqR$4T`Z{^tQO1hwg;ZHH0rmiY)KiR*YN%!}x~gZ)yV0*|&E|8n!&%02*-vr7nz;n{ zK(iP9-XLvJ;jU)^VKxWV12$h5JDg=qbTrEcOl$e0+$wwLa z@@h;e$@txFAaD}=oui!lJ1+xl6;k~;TH^H}#DK0k2e;lofjRjOPq~DkyRnJ3k4^_Q zC;B~O$beh#9i#Fq57Sj$6ZQsAy^C`XK1So#(Ct6L-%Y8boGF3#j2nei ztMwMFHz89XZSj0k^PZr)u_>gp=IO>dZVXw);di}w&C53D!Je0`8-!FZ=qXrlLJaUY z8mOAHh~`7@;jX#_n%3Lidcsci!U9?jAH`&~h7B68dD-eb#6ulUfb~MEHAW>6DIo^5 z9{Y&Se^+50pG)(*f1~-}5!@I5!{v3GiJx>YU6*RP_2J3hT_7A*t(&dRLriUV0IU;I zy<|`h5fQc!a=!Qq?hDl!+_7?@9d0d z5R2wzbHia~w0{clGa=QlA_}M@QG3H{@%#8qLj^P2>j2gYsa}cJ*k43cUvXRfJ~p~4 zc(|<=;6)+ThG>p|CwdpbA7(EgR_ovV9w^h}YG(04v hTBO;F_7BG3{{_%(Nb|ceTOt4e002ovPDHLkV1jk{Y)t?F literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-netherlands.png b/eugtk/examples/resources/flags/flags-netherlands.png new file mode 100644 index 0000000000000000000000000000000000000000..ceb7320a9b57afb9dcdfedbb3bb05e3d067ecd49 GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`vEr;B4q zM&sM-hN3MFA}j}QUv_kA6FT#dwOd|NG-rBK-Q=@X{n>TWzh5(~Wh`m9#$e@;%^-L1P+nfHmzkGcoSayYs+V7sKKq@G6axd}NlzEY zkc`H+GdFrO1e}3M5{E<%mzb>ly&KYjD&`7z9!H*cwk!IFCwC0A5t&t*uc zxA$LJqW(y68*^3l?iFFz89Y?BZFsw^rR@&ihPP^~SF`6|4`SKI9JI3T-1+zQch~g0 zB$gdM-`IB1QP2G7xpPVk>FK6XYrjbyPYMhRTXyqaoP%b6%|EH7fBx>N`7c!x>$>-z z%FH*;n*7Hzx7waAjM8{I(dS#>dh^2Ar;A@|H_lHEOJ{4 z3(M&rR;O}XcC!<*3D3;Vob%21-hOlTJ?DFcyDQdn%)<>)6glwj-}%iO1+=sp z=#5>QXR+bwAM$y~oX6J373TBiNB<;#&zWBBln!!sZ=S`o#tN#o{~n3G0>9m_;`*|- z*ZtoVk|ynCZfPQ@fB!=SL11mvWNzlY$ZSo3)q>2{1aKo|Av3cMQMoA*)tu=BYqJ?1 zKHF+BEJY$uKZ0`VB+Aytb0_N8bbM8dzpo4VN1{2r^BGi5_7*!=IoWeKDT3oawWIOb zXxi?S5s>~TMjhCN)YXMA?*7|~rC5d}WaWFD_{l>25AH#Kt%zdHeCpCN0eE3i2)9nJ zBYegfvmJ-e7(-EV1k;Ya&AqKVab55d!|RkTip6lR3Lj4=at=n3wr>$`E)FIgy16)zwr3$J;|%B`qcK$1 z5SWpI|67UJIV&l;UBi@x2idysEbWHQZ=l5f5eV2OKD?1h?bxz9jCG^CsE*%(u|<#X zYwPihSq6eYtxnIy!b;`_IrrKG^KLisW2a7&D4M-dvFmxE%vHv_f zlP}QGX|zi6N(VVWpACB;2=?mjV)sRLpa+NIXX5r=I`t=Vahx&{|Gfz)MvVl(aIdOY z0Xk~xC|w+f%-0A1eF-QhPXwUwW;Jo!vMDa@`JZoVxBMxHo$dz+q@1g?*oPpBVh;gK z(U$;nKVS0`2uv{BMj{c|zdV>Jcdr6)d2}dikKdxJ%j{B+malu&Y@@E0)*fqLChSF` zG~FY5VrPE*E|JtLwM@SG2?CI+8);GT0K!#wwPlu8BGe_)B0Gg#O5xOI5Fq4|lf?~H zYLV5qfB=727FVhMcWp;;X{|+mY*qkE3+|58ZE1wrMqMqf-2d?LZ~o!)W?9w)PMdFH zO>FWlFc8A02a$olsN4F%3xLs#^{SL4;-X2bPdn!rrZlHXO7yl^J_1hpNZS9>r{27fR zuf%G&cp{FFu|9O^Td9oSLCL&m>>TXzc=ykoxi9b2*~v3sP^;6U7&Ve7Gg26_eG~Or zc}Qd8I2{wnE3q1kMv?!IX^PNs<~>ziqDY$em)IRW#_u#LlWzyf!;28LH&;Jc&GwgO zAeY(Ebp8^>VGGcuWicY*Wv;D>XTrKul$6!=>8zxzj^L->Aw8!E1ObnjWvDNFz_6eI zDpsy%Me#>mJ-Un#wfBGv+8rtz@LqtLx)#cY`=SV&%3FncllvtKxs;@hGr63(it#~S z7@Jxi9fssSUbtnY68pKF=Qd}eYv}m_)E!+zE6;7rVE(Ffs%x8(`}saP3^o4k0^;*A z=2M@QhhNebK7IZr#;?vM_v4ZQ2Y*QJ$0YsvvCfa+OJ*Gr}tU<*GkrWX8Cc~6pzgVzK=*uZ~1OBB*0)NFxU(UFxUwU zHbVjob^?RVkN|_7z}LacU5S^w@@x69X#rM*y0Id(|KW@&Y*GMUFK3dY)hy|(V2QDu z-L1P+nfHmzkGcoSayYs+V7sKKq@G6i^XANKr^; zNlq$*UuJS*QDS;&V){J(|3E1rkd$L-Nk)DVgL7g|YLbF)etuD^$ies17#Nrqdb&7< zWHi2=>Fp5`DABOr`f-9)|FQ5{i<7;6$|z4{Y1UNoT)afXYlT6V(ivZG^Pq0Cz}aTG zi_8>L9Mc-7E#e4ES!OEYrTTM5pqhJ0iJYb1_1k*4w%DdW{97i@cc;JqaQ*p*S}}F2 zH#Qoc5S!2|=di6I=L^Fo)|AEU6Lb}%Z5whJZ@yqm;XdKUuMq8E*0n4%D6e_r4Slu! z^$J^rmMpo`do*kMLPa|V3z3us%Vk&VPJCGYH^D%dbA3QmP|xmV6W6@4nP`>7taGON zWo6;?D`%YU{Ps_}q{a}jxZ!#&|IFE6FI~9NbWy0iS*unp+G4Vhec}9nl6iMC z4uwV?Sy{YRWp*$_hntg4ZOQBhhfLc2V^r&Z>jio}>Ob^v=lVTWb^Vt09Mf0#I3!Fv z*{L5ACYw-RD$AF?(nGd#`ohZpJQq(Wt=?!6wp!GE-HwCb^}GJ%7c^r}1yu|;nKoTy d1}2!Z@}8S7d+_8Ht^_7!22WQ%mvv4FO#l%?aNGa@ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-niger.png b/eugtk/examples/resources/flags/flags-niger.png new file mode 100644 index 0000000000000000000000000000000000000000..0c18eede44eaf82785c53b97985b30d792274606 GIT binary patch literal 509 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6axcem8Xki zNJit^>4x5i9VFWBFEguZ6j4lADB0D`74#^;QD$qjc;WYOi!>eCzoP#dtx8r|btSNO zckha57m;CFG$G4dy4^3EdwCFRgm5vGed*JJ5yrGtkc$dr_##}a@;4~lzF+^;mYeJb(IV=+87tbxi?)@y2M=bb-l)B&y#;F z9jY2c-%l`_E%K6aO%!wGabMf%cv;yXjw8dwCr|B>p%2=>YTgx&Xq9K@+EL@xX5^eDW`;C8-uiL jgYE%0c9@Wn`~&vi0vS{1t#}~=j4B3CS3j3^P6w literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-nigeria.png b/eugtk/examples/resources/flags/flags-nigeria.png new file mode 100644 index 0000000000000000000000000000000000000000..2fccae354506e7ec9a4dcaf58c271020f9f3cf92 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6j0F=PZ!6K zjK;SY966g3B@R3Yzdhriz@wMj+ZAnYI`_93G#73;!p?t4ETQM^v$B8ZlH``Z&S`%f z^!)SZd8c3RyJBg)IX>@?vD5-)6W$Aqv)EoR_%fF?EMv5CxXd8CAhUt*f{6or25HjI Z*b`22Xs`48o(*&#gQu&X%Q~loCID3GVIlwk literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-niue.png b/eugtk/examples/resources/flags/flags-niue.png new file mode 100644 index 0000000000000000000000000000000000000000..cbd435befd02d8403e06bc405311a5be64b32b1c GIT binary patch literal 1735 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 C+X8n0 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-north_korea.png b/eugtk/examples/resources/flags/flags-north_korea.png new file mode 100644 index 0000000000000000000000000000000000000000..950ca890a73d58408348e012842ad759248147be GIT binary patch literal 934 zcmV;X16lluP))N^*TBdfeOF#{fbgpE`lumxIXjy@J%# zh?QeOta$tYLUpAn5>~-(fFQur-3htv47lP#sF5h1tdRCYB4nyOW*qd=<7H5wQHZQj(F$*h)01Mi5itP9m73< zD=C5dTpN%|fri4Mp|IYJcwCFqP#AnwCB*tVa7BftByJWA1{8th<-+^04}3-WKhKq0 zo8dm&k`^o}HY#Ze%48sN_r)IS8M3NvKKf34~ zq9~A#9Mr{9Q`1HzEy1_})A|cpnEoV z2fnOSS1z}=0E&X-g6Ye>BHF-us5IR<3lD#!;{R0tXxg&O^BX495n zx&i+ij^7pLwR_f~WM7SC|03gXvIf|lfZb#busZ>}al8S40LU8n$L|lw+5i9m07*qo IM6N<$f|5C_761SM literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-northern_mariana_islands.png b/eugtk/examples/resources/flags/flags-northern_mariana_islands.png new file mode 100644 index 0000000000000000000000000000000000000000..323ebb99de9571ec2423a3cdca0ec2e831886ef3 GIT binary patch literal 2843 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 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-norway.png b/eugtk/examples/resources/flags/flags-norway.png new file mode 100644 index 0000000000000000000000000000000000000000..fb5d31fa2d5c871b170b3be6d4853566d5cb503d GIT binary patch literal 448 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6axdJt*47) zNJit^nH#+h2S~W>Z<&%L(2~a}ub|*H&FLWD+SyGP7S3H$E#(FJtl~owGS#(1$O9JC8*TOPUr;zuwJ~7cYUbw!7B_wdeE*vI-1z_DAIb@>{>o4Fo$4$9`%Lgj zmp;FKcKQmLomTFd2b=2Gn;zJg_(yO8$aKFOt1|Bvyw^LZb9zf$)9pXv8bU=Z)3(Px z^*uG$%qx6)^!ooVZN;94R)`)yHG9gd=R2>hR}=ne8YZH`fZLIeng1}ARyv5UlD=gL P3~dHaS3j3^P6-L1P+nfHmzkGcoSayYs+V7sKKq@G6axbjkEe@c zNJit^8K<*_9c3E!&%C+BjxXy<@QPdRixwzobSW)bwBTz3zuXu8FH6MN2ZemNYyC>ghRez01;GPk_e*355!Yx}G zOq>~Wf`09+d2IIW-J55-jF;Z$|NmZ+Yk_am>^0xRofvM{JH2t?o%*JYA(P!clzHie zc)P?|?|)k_d;MZd?3Va#`iBg@}UGpD@YW-M@^K7RS^ zZJOJs8OqxWT!>hznHsyPd-}`V9D}rPfzvjfW&HZuMI*zx?5Wkdy9YzGcDOO$f4QN) z^l88PjX+_=r?SsJD|xPGzUIU+W3fAjdHRw+Md=v=Cf>e1K{K+Z?p>=^E%lyb>fs-o z#Z`bZ8V%O64oW1SP03Vk$>j-P;34p9!Xa1!#5&duR+UQ%ZPOgs#p Lu6{1-oD!M1ljwEP)i*>!4lcSaGz9k&#d>LDm& zkk}-o6oVEYcHIYQf*vEnTnd)ONCF=w17ksUdfG5bDlE!U#FyF(Wt-8>v1w^mElenB zZV!=Vqcr!H6)>C3wC!udZnjg? zQA3;uQ_V;pJ01Hw060Hzo}r1Mm}5smBlwzpjQux;WtD}7 z$_BRmzD>6lDF%2Cc*)7i0pR-RbxpC>Oe@9=BPaKqL{(LeUpmgj{}Z~k2sfZ{Ya_eA z-wlAOs`QQa#S~XtR!eJ5E9>p+m(<^WbUQ9RipYF`q9{!LHpSX6)&g)Zc#n<0Zj3qJ zX>(HPsN~#_=g2Z<5m6(|zn-VMy_!4zJDRnF;6-q=bMxZh0fzq_))YS;9>+KABRCu6 z)<3r}HJhk9RYlo1Wx6#9{RDQE?pjjL&Cb=;j{ljT=I&+|-YhUQF{Eh`{S=`ypukqJ zq+IxAp{{m3e|q9t_&!Fc0iT}noi-8FYQW{cFGtlG(haoNwdEilY~g z(l^@2UMT!CNE+OLk+4tG^0^tBR$8It>K8R(N z1xJnpr_G5Y$3d~Zm^3Ag`m^<17`~uOhcpA=LrN^)ny)KD8@4>PfJ7 zq!(9cguE z={IQ%c#mzhjqSzT$+zY&<_<#7Lrl(0a%1cU;kj@^`%5|lM3XfC49Oy8fNTM>Nf{tp gfNW9*$QB@*w=hE=rhNEIBme*a07*qoM6N<$g6a-L1P+nfHmzkGcoSayYs+V7sKKq@G6axcOtEY=& zNJit^nftw^6J?IgxBmRNhqJSjWzsRRS4rHLJfk+Jtgv68C-gynLQqDV-lc`E6B_Sxyrb@$r8 zKfPD2Z1Zcwbq99kPht;x0~zue?@6$JfH7x8@Fxha-jV*FXa5&wxnMqq3Hv`NMel9Z zfBJjHX`yV^&>5l+%$|SvaV*=Wpspo!&A+cRXX!i){-}8GZ&lyoVtsAV&>1<63yd3Y zJP>i(`}+SJ8-|FZT0m9@ub<)zpA7+-T@IBZ@5Hn#geqDK&u2yN?|*){Vs>Sx@lCg- zS41}HDlBOH*|=O{lltv*65rPxO80$ybo=)VhXp~wtvTF2U)E;K+H+`vZD;2`QKrS$ z6f_Uyo=ZHo-$Rgp_AFO z!%Q<~ox!79E$1hxo!{H{jEOBLUel)JeAtDU1G%^5THD{<6d(6GN@WTaLpnya6f$yhcx%lsH7TvPGfeWn6v6zwlYuy_WH=xlQf+dbR?wxP* z-AX0DF(Qp``E8;;Y^Ufv==ZkUc4go=x4!g$&WP>7q3jp+wRElaqa@A3o{RFp8dIC2A8gF z{H}tBXU}VF>rTF+<(pU}a!;>Mant^`wU0foguMHky{QGra`|?BhmTys7N&nolK)Et u0^@L!y5fVDuO4p`Yj{x;fbVhf57L_-??^~gXAlIYS_V&7KbLh*2~7ZW=2!p# literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-palestine.png b/eugtk/examples/resources/flags/flags-palestine.png new file mode 100644 index 0000000000000000000000000000000000000000..4c2cff23e71bf9b547f5889f703ba41ba97dba2d GIT binary patch literal 749 zcmVkc~qJ@aWfPx@F14a{rcXq)`a+|$n zcRn(CV7n=vdFSuj8C)>abpX5e<0YpH2Q&-26>c$x39%P~acUP5H~{o&Cdy71wF?RB z!(KGoaLMv1T}Wt{_t%|H9Mx?q7ZMr*Fu*V&^6;2OBPErZIy#Ib*!u;?U>VMXf^pQ?W z``fR%H~3P%my`<$EpPDOo;<~m7cY}=AtBNUw{Z0qRzH4A-98_$lZ{}{Rv4gd?jhRUflwF?P+Rc9DK<73%SxY`MTS5LO# fLsso4@F4yHr0tnIg>|^l00000NkvXXu0mjfAg(=i literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-panama.png b/eugtk/examples/resources/flags/flags-panama.png new file mode 100644 index 0000000000000000000000000000000000000000..e4f70ac61e0adf54c67d204c1c65d0d68015a37e GIT binary patch literal 766 zcmVk8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10((hBK~!jg?U~O@6k!<0KTrFkNVFVvi%L6$du}12yo6n&FocjG zZ&K7>&?)ke{sTeiA?>7TnnKN0-SW7ORX}OT6HUn3XTMHjV;kR zw&+$C6&wi|o;DeoPP>&wg`l02XP3Sa3J3tH>>4xkD*#L-vs9F!%a9rxAgQk|6CDj(SRf*j))Oea&;RYnFIoc~kr8Xc-S$qeMzW zwgPx=B^W6U(cfB&$geg5`ir>u?LbkJ;J_;rK{!$#rrOwzh%oTdbUWLYP?Uhqu|=9< z28p&9Z*Lu^DQ3_)zTkGYEy4C2kSkd9PJX84WYwnj`_DhoTvtgrAb;ukXSC-4+XCE1 zTY pdCOPUx0Q1ZFanXpj@3$4Pd1wRmb1)cYrTIJAgL60PO%y$R+2=CFdR0@U#H4 zXNYvqkfR!&7LXZ@lNpUWs$pwSP@C2FACcgC)@`Q wscwo|cTZ^!@6AWRO?&~`0krW2Xa~^d2a$WWLhqv6od5s;07*qoM6N<$g5~N_@&Et; literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-papua_new_guinea.png b/eugtk/examples/resources/flags/flags-papua_new_guinea.png new file mode 100644 index 0000000000000000000000000000000000000000..20638375400c6f557606c24279b44dbd63be503c GIT binary patch literal 1879 zcmV-d2dMaoP)$0jWWz9(}$_RAznjYY+J-Lbf~>gc0fnvVD|Z)GMi9htx^5tt$@>w>S&kx&SvX;d!()V~NF~UELg{=n3YvE}${=?<2h*NK3RuP;FG6LUL ztN50u5(&W>CZDrWn+*^_4x4EI6v^C@5LJsO-i-lZX%PER!Lu^21KJ&lv0tlXKP{~! zN=m>qR!MFS`j)ava+exnCLtNBzLsU_?hJw(Cf}9O$0cgJ(gnwxX@Rlh9wL42l2%ey z0stfgUh-7ZtyUqISq*{+-Y0YD<084JK;0{8mTa-N-6qZ{jQ-49{G61TfN3;J3J1MQ zdBWu>>G|M#o%-*ma8>5%=n)YtkgM%&c2k2-_5?`(t+<}1tOPVSHxmd1xO(*}kXO_f zJ(YaNQ;l1&Uk&PNgQj045Xw|`eM02ct^m2H{khAUa>tGxbaZsw|7`-l%}mk}ALgT6 z;XPZ3LH(=gnTxl;DpKj?B_{4K8uJhQFG#?_;--P_?rzSUIm717n_0VdEnQt*2!g=C zzyOwI5wi?_uf>_P48H7Ak>{ue&k6%9n7ZM@OhNkZ60tujBreIw)fTQLg$q>sOhEJq zBnM>DAG;8}Cb{!8Zb)rm=vcg1dHc0)|MfKJUBR}>PwT_be-Zg91aNxiJG)<$W zrDfJ}cTJs_lcPNEuHbuW82=m_{eMe-;vEI|3X|#=vNOhd8Vqtt5&bVB*B6^~8X z&)k+sf9xW5K_T{`g0kGeU2ozFSxmmK|csXPJkWw{eCoU=0)a~ zk>wpNPMs*zSmZ6zND4&%pb)(vlZ!}XhNSz84R6cht~1GwifDK3-3R7<1+A^EMG>5a zs;V45e0bLXBc{RYQ)9e7HAciN?&t!@4oO5mkn?A+0O5`-p2rMEe&Qwcoc(rrUJ>l= z?WMD`lcAv@TLD+DTuEJB9c^uGbar-f_Uu^zu3fuEG#Z^T{sS$+pY>GHrmWzysMw&R z)LM8S*NOj0=9BLRki!^Hf+E!4A!k% z$H2gVt)QV$i1G1plF1|&FJ7d*z1<#rN;hR)6&8UuoxsyNpZ0n&rtBSsvuZ#xnIsqt za`fm?Mn*;uMfp%AL7GB!3=GJ$eY zt|?oV25jBB^#Mz4F<@Zvo6H2;?rDP2l92{i*`t@wwxRL(;{!+s{G+4mf*(lrM z!}RN^S;zffAA`kUHdFSINdOc!Wgn>oOk;}@-L1P+nfHmzkGcoSayYs+V7sKKq@G6i^W#NKr^; zNlq$5Kw?p1dTCn^#9 zukARf8a6RP)-!=Z{^OnyG><% zoT410q#f`POSiszvHswaE8T|;mISS2cu*;~?|pZL#QcV|&7Lbm4#lp!^!c;x{^;n8 zis}shcPf)lPVidl^J>QYhM7qd=cQN93D?hD;(jAT{pObsjDFt)j0?|n#++Nxf6>{1 zgXx#}y$5=APl~QQcvsi|@Acy?$JGm_KYRJx#9M$xZR#1e3sIk6|5RRgrZ&-T)#f
    f(H4`i-xD!pnW0R+YWEorm}M)wN$$`}%2< zr|RbPhHDRYNUO|Y+4_rX^FxiO?6MNwjX~=c#C$g2bdmFg?59X>b_wf>N%^beSDMCr zlihjb$rFj=yUGRszF1tIabd}%o16h&8^1oXJojXI=ceT|tG>^e7X9?wRZh0NyT^AH z$Ss}XsrtG4K*_=b&;A65EaYIn^j~h@--dIts&=J!ewb?P;waT^W7yJGyV2F-P4t4~ v@Q43-U7y9dv%mQ9pV6#gOM?kcqMk9Ma8DhFN%T`-dSUQ%^>bP0l+XkK7=|)9 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-people's_republic_of_china.png b/eugtk/examples/resources/flags/flags-people's_republic_of_china.png new file mode 100644 index 0000000000000000000000000000000000000000..c0f3e22556c81e667e6a2e1266b707bf712be5c3 GIT binary patch literal 807 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*o_Ww0PAxm=*xRcFhVi~Ir`0vs>6xeBZnX^M9c znBCB;RL8-sy;W>$fI;Vs(?@g6Zq_FkcFwsMfA-kT8MUYO?!0;b_nR};%62mHfiek8 z-ZAX*3~exAWNbajvUrQVSlBD=gh%U+FZ@~R^3Yz`pu*&x?TG-1#hh-I3rp&_U#7%6 z-Df&Ay{4z=QfZGw%Ta5+ugk@>`*Vc+-&j3}yF8s?^P~jX?t*29*FBzO>iCE=OnlA! z^F4x7UxwWd-}1c~$ zUn%PNcBAj#qY3919m}u0GC$g-d(w`1Yxi9UV`$hSk{n)p=jMW^+dphh`MJ;e!@j@M z^JlJJ;&E+L=np>GYKKjlKYlGZac%cCCGqz=YsL9fwpF~i$dc-5SdjAjPyQ~p8|sVg zt33^qrT2HPW15rIG2y{})1M~cNnblz4K0>OZFe<4Rb022G3|pzjwS0X%`oRMx!YIf zn@Yvz9z0Z^8?{oVSxFSWG7Yvx>LWDYhw{h9A#(KeluoF)zl3z_Y;UnwRY`dwir7bQiUOJce{l4N|(SV>898=UermJY3cov?oc2{mg z?REVyXR|obpxI^mp5J|Lh3$;*YWIor{inN=;VxszWbO;H4(7x$iyyH5VQATLGUIf{ S(F9-L1P+nfHmzkGcoSayYs+V7sKKq@G6j0GrPZ!6K zjK;SY3^|z+L>L|}-`zb~!fQiwcW2BS1&QM<@7OK~+1GHCGxj|;TmSc?b+_f6{LR+$ zr&-zeKi{K&ed)QGGv5|Ho_~=+c0pzX-vtu~_6(^7%qF}S7-zA)VDM!wX;{W+<#3ra aY5Ql=9FblrXV(B7$l&Sf=d#Wzp$PztcwHs{ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-philippines.png b/eugtk/examples/resources/flags/flags-philippines.png new file mode 100644 index 0000000000000000000000000000000000000000..41541bd4debc22d460fda59aaa5fdf874a683d56 GIT binary patch literal 1491 zcmV;^1uXiBP)b;G2s=EC=E8!#)PMdfGC&{Fs4YL`hiC%lu{l-Ed(rOfj+j~Zg<;m zyWP$lKWr(K&RW3T*$Tf;voq)1{LjgqJLlfBYTN!wS(sNwTR`V=M2U!8tn@N<>2WSQ zn`5oVa+HV&KucRE^K(nt{kt>Pnk*%h0No3=6hPSgOC>q^X9xt1SZlKcB_bleA_!a! z-59cvGnYL~TV71%t(F+ei#{3v9ZrmzFTgekfH5OdIkP>RDHAedsm&5J^d>;SJ_PZX zg3$^0SiI{XHsej;Ybfi*BZ`D8^amw^W=JbSD7m05u@2 zVWY2ukJgm%+wp3vv{}NP1l$KAux@7sE4ExfH}2c5U-Li-xXsaX^~_j#g6f90XlSyO zhe`l|%hS%xRVVqQv@X(`EakqIckvY={8Wwi(il}t6Cmw>L9hn&X2f?8u!FQCt*1b5g5WKry}aB0 z?Xel0{UMw2qlQ?eJ7Sow0mhYg;ECr^aU&u5O{Df~(BjaBe~EbZAT7timWcN3wjO@E zA*|SPfpt48c(|3tdQ4}4N}Yyye?>Z7C`TsfF3_7nf=I^=#9x9+{jisxO;hA9c!k2e z@eCdqzNY9;n9cxk!LfwAo7Abl|^el!xePIvGCMi8ZYPzj^{HF$t$G7>np@ilU$zYs~i5vNxI#CH&*b}iTv zL*?NXs$PLB(H&cn@ILE6L9p&EDK`q$D{auRa3wNPu{DBd!7nR%5s} zgmn`4HV9N=+*;c8mAHqtKQXS)L41cm_cCQdCS}{R88ad^;sN|u>^**o4n`Xo{?K(; z;y_D8Y4Mo9MZF87%#KEOUEhrVa=D3p?C7-!iuVBGFGIzT#BhFM>ZCol6KO3$B~L^p zjqCMXT1%kQ4FiUw;z!X`ScG%YGIU@6J9G`Z7m%iX7&mf20zDnHBvj^l)SyXy4laQv zs@H79wP{CW)J6fj*-deMi|9?L0Z$`=Yux=A6nh5vOQEwK_2j&;19#l4rfPN$t!3w< zp*v!j?*$w~k%q01l!fiZv#5kuQHgJ08*vIXa3bQ~4)(OLgZhdNb17?bzYiY5?FHOB zP$}=B92rQk1{}k|J_tld*@vJ8W+R?Gz5R5Z>NVf+_l%FxJzkTM`yZySfO_gHlsz4^ zWW-wtwxm!Q++Kl7n}sq0h~Cu0Cs^yEYVKlMPMo$xc%(2-K>VmX*8|^0T8@T3dx@`y z8YnhUj*M=b<|D;a&0j)ieg7_d%`i+sXMi;R7}luu^f@kNO@8Ephpy(RG<=6qw;to>;_l|?ZCsmn zaOM4(bliNjT4J}chg#w)RNE(v1uYQ(-PeqB(K4C}i(;!V%7oT{0neZfTNOI;2K?vC zsha&MfvOv^)Mg32{vy+`?PqQ-TZ;sGABR1PbQeNKs~>01N<4e_$6Ax6*a6xru24B^ t5rM1MVy(w=w8mZgxct`C$1-?;e*jK^R!N(}c|QOE002ovPDHLkV1liSwub-! literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-pitcairn_islands.png b/eugtk/examples/resources/flags/flags-pitcairn_islands.png new file mode 100644 index 0000000000000000000000000000000000000000..96796a3521a151ae12bc4a33f229b6eefc414ab2 GIT binary patch literal 3164 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 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-poland.png b/eugtk/examples/resources/flags/flags-poland.png new file mode 100644 index 0000000000000000000000000000000000000000..9fb194aa525a252b968af5704d7ba6a84eae65af GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`uxr;B4q zM&sKXj)Dyi0?dwlyeAIs=h~xV^lRf~uAt9nX3pFxw)-o?T865IFa}!(?FP98q7M8Q zxE8QyuwG!^!t{bMit!6rdYj#WpYyf{muyB7!=dHYF9!RKLTpvmY8O`k-N4}K>gTe~ HDWM4f9C1*W literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-portugal.png b/eugtk/examples/resources/flags/flags-portugal.png new file mode 100644 index 0000000000000000000000000000000000000000..228ea9a208cadb0baa910b0a4d79c65c40286b7c GIT binary patch literal 1649 zcmV-%29EiOP)vDet!)|XtV+NLpz zLR+akpjM?)O8QXI6p1HZ5DyW8NW8!sywHb2g@h`hDpk^|iK0{$ZVHMVg|>!m;@C;- z__Fq1y!ZR;&hP>VWFZpo+Jl6DuXE1)zyCMiIhr{m@SP(D+swgI>(g_e=O?$j&Q=i3 z7GO5J2AD0tY<3MWTY%Z@8ep~nv)MJkYyoDotpxP+V-+vW8p*vsUTsbB_h{c__9j3%Re+-HQ=~6&8bH+EEit0jWVOI5l? z9jEWj@xSuSKoLzdXfz7cJQYgrJmF%VP$5rC+Mr;sP;q7mWwV5`SsL~XMWsw#OrbU; z3PFu4r&hbs&qLEu0=^;@cyv(b>BmJZ7P#;eJHoOJC9jZwg|E($bhJ;!BRrNm^N77fS}}JVy=gb zC^2^CN2sbw&w7E2Z-2tc=l65q&>#TyZ+ym)+d3~eDh~2Ys`;|1!!6qcS(bj|0 z(Guu)Hn^F$bKx%zzWJD36%qXA2Ynq&pSUm$&>r{{d3;DHNpGQB;!V!(rYPLu#hgb z33zt?MM>gN-`TB9bku8nd+!>9!8X~Zm8)wW_7*+NYYPa9K*s+Jr_Y`z?DufymzN3n z?417bdn~NvFp}@GVwCVGP6DenTEQ09F^#Id#oD?-q@Z@W&Hv1n6Celz7K^}I66_8G zx1`~c-5lL;Bh;;U-CmNJ3ekQqnS2GG+m3D+I2~5@mBaLwt0+p4sS&#b3Qff5^k1e)l~r zvc$D_Yy?-_EbR+W9B9&Bm2s!7*n%)V=j~>H|CNq5!R3OLNYLPuT9{ufM42)y0N4zJ z)YYq4WQo~@G|zqaH@x>z9E&V*>-`JtSy=`^jw%=e41M9kr3gsboqrqbsNzytVKP!g zy4_|%&CzztP0y4BYMv*k??V70FDw3_1iNSdS3I#@E$`xG};<2ZYpsK35QEmP#{qdrb7_&vGXm=Uz_7H-3=V@vD3p*Ln6OoyDw<_mT%sV`oz!boyuL?7%GsymjU>DjCVa za?Z`SDg#8~w;0J-H;vDz8u5d@sF4bW_byfsD0UrP6L|FJ5jM}*UOGwuz*J!mJ*_HF z3^l3Mb-p%Kq~%?r)qf159i-8yV{bIrP;C@PMo66)MLBpKQAuJeOVkXVwImFk3*f8n z{2tJ80sur^=Z)S)PCQoS&FKJBl^}LqBWkZRtonG)?=YOXk`TU~z?Cvka~9V7Yv?bP zs4j_&eAI)>q|f2581N5{In%s4x>Xv{l&{YEfTw;@#LkWg_O+t1J086`NxOD_s5@~OU2pO5kvB84C^LcM(TaV*3NhYrKaBensV{FFzKi53${ukIa vVAlY%1(?mQ0cHy@n_UCU7GO62_Xhk8ZzMY7L^}<@00000NkvXXu0mjfLW3Kg literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-puerto_rico.png b/eugtk/examples/resources/flags/flags-puerto_rico.png new file mode 100644 index 0000000000000000000000000000000000000000..c56f2ea70ec141c5f86fd20eb711f3cac3124885 GIT binary patch literal 1101 zcmV-T1hV^yP)(}$x}DjXo$YqNx7|5&&OhJone(5EwDzSlVt?lzioMs!MkLBdgug}%z=d?gWGQh4 zsH`4pr@3Pni^jUGjLA|G3IMQ)C{;I4u)C+3*`Xn;;JKt2Oe?!6LFe5DMFhzh$!5oT+!7)ASC$kbco_QA15w_5mU^AT~FZ+YaA4MWEMOjb7L^3tD*kk7}cK!IMN#C zP??vNPu+4(R(lmqL%sj<13o{Ki;1T+x4)#;!)@2mUlvk5S?ZnEj|k{w$eD z^x>tVe3|nNGXUtk6=nUwz_@!{PKjUpqPiMaqCskVkFxptA!bDU$;5A%xB~1pIR3ty ziWlwVI1^`hLcoYmP=74Q@wVjt)}G)X4Lwb~ed}vvp|5KhC1DpRdDc$r4mX~e|1aUY zD-kLW2N?Dmf4eOj>!zu5H>I~P8Lmq!2}gk+dmePy+JfOPte)1y(4E(Fd ztY2j;=U1XZHedgQ%NLhXdGn;@{U0<4SU6XvC|_pSD|n^R&-|J(T3SO00q?%5Eh~&i zMgLiT`hEos-A!p50YF0@@I`G7iwkVLzTeM??_tr>#dc2ByIHl%NAH04UvBxl3`>N{ zRyg?fm-u@GdASnL71;QpYw~x&+&r09297t1W?IdNhK^3c~R7mfa$O-p0t1m8zZ@+a1JtcvrM;u|89+? zFNZS+%>t(D=IEpXru+7ILIK%uKq9VyY&s${PCzyulClG2^D#O5+QExt^Fhgb7wUG4 T%ZRAm00000NkvXXu0mjfP{sX< literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-qatar.png b/eugtk/examples/resources/flags/flags-qatar.png new file mode 100644 index 0000000000000000000000000000000000000000..ed05b981ab47334055da15875702633339c67cda GIT binary patch literal 417 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6axdJoTrOp zNJit^=^L{SC5W{8FVTPf=+&DGsx5tYo!B&49c5agycL`EWT$Ykx)yXU2;lJYbZve1 zKI8+VpO3!feP)?Dy+6L$O2bQWjSAEqlpH5qrpcC+ZN zbCh*@bKrFF4W=!O5mOhQTJLysf!BnNqox|tQ+Q9Yt?td4AgUtWa@KT(bB8QQ?3R<+ z3L%xGLZD=7^QMDY%F-#UC)pB-L1P+nfHmzkGcoSayYs+V7sKKq@G6axd(T~8Os zkc`H+GxmE+C(5+TtBS8ydA>Bu^}>Q~&OAfM*0e5_*;YGV3W-nu$J~{7GJ)OPdiGJj z(tzz93!9x;>Um;?7Aj~>2|8-ra^s29Ek%V^sXY(ou0L44tob|l_dWBg-|v0D*Z0Fq zex{Wl9G|?+6s!6!eqb`whMTiC-juRFyz6arbnf@-$;o$ndQ0ssu4!D6b{jfkDh&JV@&z!R)Kx6j946R*EAAVW| zP7!06bdvkl?YBNYUp8+nJaz1trm*neE!%He|1vo0~I3 zwjQ~4%iPR-|K@#iPLo#s%#3R7m+zO9m=GCT+rQ`rXZv_Uw;}^$RzpeRv_aVSD+>d-qi3 z`VU>W5WVT9G*e?a|FyKu<}$K>554~DW42mKFPm*wd}B>qa$@2P7p36MY7VFc=<9;IGuUqaeGG8)4G_;T0qv5qN|!Ryt(mHm(Yx}yL${tdd2(vyHMXE~?K{`fl!b1pP1oMI zyZYd}cdR>OIz3WmZ`*e4w`A6;?+#10UOjdG;7l| zujj>!69#JRn)H|C{O*!-&O<)W`Jdz@39$H}i_d4Dg7cvuq27RK?)oPQ+C&o@FntP^ zLqTSw@gFDH_#)}=0{T^eHlorT3K-w(;YT|J@wQ9y?I^kLcZP=+6)@51 zz2S`r;$6!nb>b?yA2Kx^*YpA=JH0bM+%AlN>k7FaH)}q&sRbPD@@{g5gz?EYu8{w! zc04q(fJ5CLelRGAFS{gPUnT!@w(g9k6fjl64@lxmF3Hzc$^TM69-2_VbdUFywqFV2 ziw=obS1J6uwd<^g7BJHrU^x_|PswGv1&72ds}z3QJsv<4NvSfS-T>c9MYkkA=a4vVQ2Zk=7g`z70`9v> zW9f*ZOP9-ZvNnn15sDY(@gP{h{rwu}4l6o^@#aE=(xt}WLFi5Jfqso8X?(`UoHrVZ z2Z0sv(16BQhZP-ypC`_Sjk#b@x?GS8{h!%Y0T17-@#T!7T@Y`tTbT0(Wuqt;y3N%6 z(jOVrI4g}$TbSYI;i1j~9=%25%sq;rG=9#Y9BCdN>bL|R8`Ah}S|NCAkDV$L4;xs~ zl3eHxr>1lG_^`(3!gwoLCO+31Jk(IY6T=#x-mPep#G7Tz=MAh_Yw)ncOW?^7ozqio z=#uz&2{UY9nPs`qI_8Ee;Mj=HN7DFM$vg8c#={L(z*D#CoSJGw@;_QDS|T1cuv4wa z!!`vxJ*u;Kmn^<~wTL-qV5cp?)ZIKY2H+$9!$Xwc_wz}$EP@P8IC=lzR^N&zq2rgP$UVf>}MhtK#I t51_p~q4VaXEWUU#kGT-R$@&`)@HZB^YpC9p(hmRt002ovPDHLkV1j7k^Tq%G literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-romania.png b/eugtk/examples/resources/flags/flags-romania.png new file mode 100644 index 0000000000000000000000000000000000000000..e72279d6304550f43c237d5d5732265051eb8e71 GIT binary patch literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*(yEr+qAXP8FD1G)j8!4coS)MMA zAsLNtFBtMN1u`7Cz|ZZ-#1;|Iuq*gL2OC?<9A*^*!v_tmn9<7NGK1`b%m%&-CJyWwQVW<(crP%{Vtc{h g%Usg1j5KL8>*ZV#Nt@Fr0$s`A>FVdQ&MBb@0CBxrmH+?% literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-russia.png b/eugtk/examples/resources/flags/flags-russia.png new file mode 100644 index 0000000000000000000000000000000000000000..78aa43c4b5e8ea0b3b926a1a1e6c45740b04d5ea GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*oc5!lIL8@MUQTpt6Hc~)E#hxyX zAsLNtuWuAQ;J|a(!20+5H$9DyIyoy|Z7DDRyuqJ6gLeV*7PbqFQOqwG)-skfTw}0u z$YzjT@YW~)Lnbb{vtQWaVG2zf_%28}z|FbE|5%2@>(1-#|A5vrc)I$ztaD0e0su+c BQD^`F literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-rwanda.png b/eugtk/examples/resources/flags/flags-rwanda.png new file mode 100644 index 0000000000000000000000000000000000000000..9d48ddc91c70c5d7714d168b3df33638962a01ec GIT binary patch literal 1066 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 CJc<4Q literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-saint_helena.png b/eugtk/examples/resources/flags/flags-saint_helena.png new file mode 100644 index 0000000000000000000000000000000000000000..b6fc220a130f1206d9ab5118912bae9657ecbff8 GIT binary patch literal 2114 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 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-saint_lucia.png b/eugtk/examples/resources/flags/flags-saint_lucia.png new file mode 100644 index 0000000000000000000000000000000000000000..5d85b839e45291d65bf0bf3b1f1d03b48afa24f3 GIT binary patch literal 1004 zcmVh^gAm|}N zNpjg!FAIX61U+g&Jn7ks9(r12LA<{yW<(GYyeB#Aso)_QD5ZFrcub{xaFaG&!@6tV zdx!ep@{;`T&&U7%c^||`{QAc}Cpb*q1?Y~S0Ca91G7Unep|b?N0Lq07i{K+UnKIkwIc^Z_X3&u}i2KjryfXdQ5(NiH@ z*B!69u1oY(h|1Eu>T=Wrs5>^DP6yxj$7{at)9G}yJPwrt2$=?}#rcW$AB7Nt)#AKz zIZ_IsT*z?NicSS^)`}{ZBc%Z9j!nPcr`zrRP+5tLU$c;hr=O_MnmbXPziv!**MGR(-ZB#ekaaiKEz@^#QL2B5fVbMd|sU# zDFJX)eiri~)^8vD!1dc-VE}lZH3hR;1#nn?ikHINT|51+-?_VXn&PFfGC7h8U?e}An}UtU zDa`NK%`{=-af;1NHF6{sK;5zF^?H;qZn0eW{(-h!2vfeeMX%SBek+s;pjyiD{_Sg? z-k(1Brp43y7VqD_mM%xq0F2~kA@-6~;=iBcRKj2(_ENeWNdr)KY(DS2;l@(%zjNGJ z3i!P9M(Qz;2q4QB|KShk`QksM?qrXlqHl*30CTf(t|VWPjDGszT*>Gst|VVclOrhr zZe26k-+g{;`Sy38bL*O%W|eZ;{k8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10-Z@jK~!jg?U+4FBT*EFpNSR|jhcvvnTUw<-)ASNIPP6mldj0qY)GF#}zO`^gQ=Uf)%sV3*1%YAw8 zJ(+Vy--@7@xxjvTCVU9|EDOqv`ETqE# zB+?Now$?CSu{9FuNKLK;A_g3m{On!#0&slW!A`#M6zt^tIKJ%wVDGw@L!nb3VnDpE zt{2VPQ&6!r7R|_qbDY9)0}hJa>=$}!VkdV#wsS`H_jba(A6APw@1}xSy1DxOM)v@z?o%PHB(SSuPm|{$5_d)nI z7&lHSS3Inx2OGxL(u0&M9^yi^{|E6tU^Cm##e?1uzj)Bu%=SymkvHILTb{HAL0XQQR(QcU#iPA`8}ev23&OQuU0cPX!+Mb!|LZB3@mmbn zb%IhTy9~vQBrVvqU=yqB0wrlxweXN$WVYL^KC42R0RVG?9p8H>H6W~)R4xy=A4FUO eTmw`KP|a`d0>^YRubpB50000-L1P+nfHmzkGcoSayYs+V7sKKq@G6axcOu&0Y- zNJit^>Gm1Ii4yJe|E%636lJe1 zm@UgvIzi7>&}A2^a8GN3V<1;i1pZxr{V*mSl z7B}h_cPgx$+CIs?fAidSD?P3z* zKHbyHA|cH=AtEB|Ws2r9?FAw0J{f(yC{eDxjJd#a?vebnl8>tvGamT%FOFf~6K}3B zR{p1>4?He2w0dH`?sf06eEEh2_fJ1@={eac;kZA1Z!UYrN~SWlUzVjQ<{KY6zO(n7 z^mD@Pg1F6`AHCZdEB@FlKDViPi-?2g`ohvz8Veou`O_}f&z*iY^VrS_XEU>StbM#0 zpX?L!Obd%RmG|`Rqg%_0*WamI=5j_W%8q6I-Ac!}%P(JlT_Ae8{?7eNkC(-)4Acpo z!c{hF8vnr@zvS5Uc{_f1+&F&r2WJ^8`;=3Wj?rsB`0vZK5L#!_}y{vdpzHcI6BWKd%IZ>&e}^!DPHS^Aqdb8prgs$?rbI zAOE6gVf7^a)vw^>KhN&2GSbvGly#^oJR7m)@WTML6w|&d+aA8FuGDt%RK9Zd2BQbJ xM>4yDu0pSD!8P0Tj!nfCULqz@;s;-R`~ZZui!m zn-4~!54`Q}Jh0!(WM0mE^UMGI=bSl$uIoBaF{04|MpFvFXaS=s1z@y*(Ubx(TEJ*Z z0T?Y{G=>H+(BI8Kf47ke#s)ARyN>VPIU^N}3qaR(P8{#x{MpkOxg8OTy&1ZG^*Fuv zt}r+hBpkX8fTwOQ4O6^KZ&}WwWm}4=gQ=Jg`|ZpjI?sO1Yuop-?3pr7o%|j_5O`_R z4$|o~KONdlB9Y|zb=!;PRMY@m?nca#fZunJ%=jZFSB&EnM_mfM28MK@^u5VfDt%EL^w}fWh!E4W7vbcPn@k z-1qZ0e12d*k> z!=+;d^($xvghnFt1_!8bs3SQZ<50&g&R^^yIx5pP%gLoXIm*g(QX^yB>KVuP;2pNM zucx~0UG5L{5)K4e^zv-Z-R)w{>=gxZEZA4zmam5oJHBF`V;Va*yv~hFd-2`8LPJXf zmjiCbbtfm~jYwLWE%q~@t5gPW@#<=UBZE~mR&BsH>SxTZu&!klyVhc^WAi#EM-yuajm+k#xRWKapK7avU$m{nCl+&e(k7O+*=emz(=wwK zOCZ7S^>4Fn#Vdu<#3X!rA+G}pN)|zhfvjK|Q+e1QCp{5nL30LY$in%tHg-9$A}TrD zl8h(^Nm{FMW?~#SzesPe6Kz7Fy`zg6A(d|ry@xn96_f~a?FZ;merIjoD?m5dkTO@0 zvJcRNnV8akbc;whS3&b+jdFPmA)5qEp{~k-69tbXQ)z-4HNZ5F%J8TYXZj-JHY-xd zg)WBBEhz+fIN!PjYJ#d4Q9g@iT0o*Agp!ZCdY z;aCr?jUs`t!g;?NQ!0&Fb1~8M1_%P^`ajn^Bk{tUALo5k%t-NJM21nzR$`6ZW;7TO!>e*gqTs8`sgp}C+4!KH^#nu>+mQV&)Ow4kBr%uLUWoBGdXswa^s7*ICv*V zO>mU-wB-y;wV~Ljp*m|2RJ9PQ1*!na4(O1pX50}aixo|(r73uW%elq0*AAg2v-Bfi zi7T{EwK1pM#*tqw*ii9%+)Rwz1u;!c%1qL|1I=2McTE6+Pdf9u4iMBF=IAj*1JT?K6bl}%IX$uwl;igdldZ2~)RIE;*w|9v%6Cg&=4PO-NXLQUb@Ml-@Q>U52bT~QUIj@ rj21AOQUFE^7)>bvqXmrSsSn_9vic^#`-0Z~00000NkvXXu0mjfuLrT& literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-sao_tome_and_principe.png b/eugtk/examples/resources/flags/flags-sao_tome_and_principe.png new file mode 100644 index 0000000000000000000000000000000000000000..a40ba76d3ba6a1a3e489905a15715a5c359389bd GIT binary patch literal 898 zcmV-|1AY97P)c!F1X%s5t<_jMF1;SbfGl*3Hf=_r9ZL^lb z1_A)SB@TC=^Q^TnVQ253iI{NlotdQ;CS(QwwO1CLoGq+;kY%kUMe~7UgJY#fcXqw* z@;HaiK?^vMg&h6abH6uDn9w>}82KP)z+WA)pkdnh`5>o-Bm;B}@NgxJoe%bX#jXU0 zt^pn-qn8~0IWW*0rU^d1|B2)6-}TU=JFhaz;aL~)^C9VtU1eDqKj4}YYCC92xJ zg$Grz`L|&8YCA*-F*Y6mxQUWRRb9WWW()qulOR_4O~Tp+(Ao)niPHP&IeM+DqSsm< zFw_G$>}nLLLv^pa{q+bIA66=Q#$gAZ-UCeJpYZ_wY$EhKJ&gx6I6y5PHxM4AZ~HH` zK04=d>#atE18g;0sJJn&>RERQz)7kp$I&?!s7ivQD2>YCjH39LvbX|#o(Il1(fhY! zbgrUQ)z4`{)ei99nbTAOLJ^=j0KDm=qdCB?A5iRoV=c>Y27YK-w9Ewz_X1X)j^SQ9 z#{xxVu;|1FY9392GaKi;O!f{i6{k=coH3N~fLsS~fUk2FmNFsFa`Z=*14=K)P<$$p zZ!JtXundmZWpMj!2{N;c3U!{@cL&6sBDy;SWDI;boYS-n0lGT`#GS@UdjFHt0nb{J z7_T$%aqu7Zbii1B8bcRSdTU|AE(a{RMD(;LAsYMtkR7rdkTe6q>jKv7#*TX_Sq|vG zl*DAU@#9{~jsrrCX}msH7;!I!06?@{#QiJAYjfp5e(^N!H*Kt?uz~co37GK~R@_VZ Y4JTB=_>bN#F8}}l07*qoM6N<$f)sO%ApigX literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-sark.png b/eugtk/examples/resources/flags/flags-sark.png new file mode 100644 index 0000000000000000000000000000000000000000..fb05536a6a87c0c960bfccc8f746b3a20e53755d GIT binary patch literal 1640 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 J%Q~loCICcY?z8{^ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-serbia.png b/eugtk/examples/resources/flags/flags-serbia.png new file mode 100644 index 0000000000000000000000000000000000000000..d58979ea07bfed1ef89092d8a7a96aabf07c5b93 GIT binary patch literal 1632 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 s8NR-Fq-c8FiRM*si- literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-sierra_leone.png b/eugtk/examples/resources/flags/flags-sierra_leone.png new file mode 100644 index 0000000000000000000000000000000000000000..3ebe04d143114e28ebdc5d823fb9c02c5dc34b3e GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*oc5!lIL8@MUQTpt6Hc~)E)t)Yn zAsLNtuR97hI0!I1@+opSirw4Lu-4VhJ}>HENL}Rh>hl{n2D4}IE@0lmc7ZX9`31vT z#*&6>3|0==46+N>&V0%HZVi%vX#?K{DF=x9Qk(evf^-}@|N6h+n7DpZD#$|&p00i_ I>zopr0M(ID9{>OV literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-singapore.png b/eugtk/examples/resources/flags/flags-singapore.png new file mode 100644 index 0000000000000000000000000000000000000000..181b7359acc9156002228a030912d6f09bd9a93f GIT binary patch literal 937 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6wo|1PZ!6K zjK;S!{4-=iWsckDm!*}Pb!T2S^A&VfaM{MW^3t>*FU=#(6Be|%xUg&$=j2%W$n_Wd zk!vDV0)jRjU#=bQ!0Vx9lxym^b*U!z~jt zkp=_bNAhKYx%sZQLtAIhI{50hT%yE{W@QiSejoiqW;HXf@gA_K>Nt}A{9@L8cFm1d zc@zIW%6_uACtUea;g@G>Zx&v3NNr9y%b=ux?em?f`UeddPRx0I?A8B|FK7L-dbE7^ zg;n1t{C=kOGrpexoEgI(^Mf8ON1pocIjR5u&*`p{%odY_6-6gI zZ&H<8{bPO7?|$nS`lbutu0FWee(xj8nJ1lGoc+xn`25+sRGr^W+hK-U)Y-WAx8}~# zDm%7FXWwteMVl^_2mC%SC>Hn9;mw^utIG`$rVKl`w9Ni>o!fEsdhKtzOA5s6xd==)>7XIa+7N&T^Jk!e4(Gw;N6#*TfroYw5!dc)T2V2!tR zUe(3j>SrWgo|_zT|F6iL!cM{0bJ^GY5Z`fe_oMg(Yhlaa*y_Z!OyB3TN0|Q>+^7+C zms`S}PbfRzIpnQ_x5|Y7woNM-r)~8-wKVmv=!g1KpKKm@-f7pICcmtyAkgWid?%;o zQ!|_6nzE_;nGP|8aIa9~aoF0BMI3Y48|DfgUC#eXjiPMFVdQ&MBb@0MSOT A$^ZZW literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-sint_eustatius.png b/eugtk/examples/resources/flags/flags-sint_eustatius.png new file mode 100644 index 0000000000000000000000000000000000000000..9d60a04c9be04d079782445206dab1197adb3922 GIT binary patch literal 2061 zcmV+o2=e!dP)9ZE#g9W@YM+L{k)_5;2W%#t^6tiy zoi7p$C>~wa3Bt+qOp5os&}#xH(n$a>h9Lzn1wqAWS+kb~@Xo?gZz!A5o9XEu)NerV z3E=dvtDcR2xA5@R!qVF=V61t6oC02OfqHmFfN=XY_LlE#s2{A{#ZbRWZ&1N>+jYr} z2y|4FYX3JAj%`EKR70;`V6hPP#cr~F4|4SBI40|lQDQfHjFU%pfGTxXIdUjFxrB*_ zHzE9dVfAYG<{QY(g?HZte}9H$q;M%akIu5M%(=PC^j3@x30!^ZY8gGC~_Mww;zL#%Tg|0S<656FQ@&5d>B6- z^77!Fcc61;qf^Z`sM%+fgM#3#w~Ri|K8sI5K7Zb_l(Mq5ObNX1E}F*6kSoz$zroh( z&l!@H0h$I;QSj!QFltm|r<(0hy%p@oK(vF}J>dHiSYn`0AK0-24jzOB3+Qwri}WwE zIrsAkObvL7uc~}q%GYIAVSl}rk7X8xM-v!wWIKd}Kx!)FO?I<}e{5Euw6R=}AvFl7qr z)hoQXWd#+5$t>5!QTue^e9P7W*2B(iYW6U=&OB0DPD zx7rpVh0tVBkfQkqAf*JoPJbyuN)%zFl7y59A&e_*SsB>v(7(TNp2x0d~A3O8^$IPTEjg3JZ*es3_i_JcxMZWRrel z!()i+A4^EPE_7?xmEeF*1X=!3K2 z9IfYmLOH-A|Jq~-kUDj-`l9Wpt)2vodw#Mw%^$u@!~9(-0Otq(gclw+lNILQ>{vx8 z=>ra{)^I0y!?m!Fb#Ja)L_`Qs#R%zQ|STBGHnx>~(3r#32Ad=T32k?nG46GdNOB(4_}AeIS$;*_>NT?Yjb^>wC5~JRTa|5m))bLGQ%_itMI$^ zGeDbQLI{^+JU1H&f{;-Ey3QSCsb8IaigtCG!-j1&NN419*!U4KETrS*6Dw!;Yh3LxDP1DZpT z-OSLM#`pix+`wP750n;zn zE^HcoX>4;Et2?zDV=?AwXcGv{$nS4dj#Fv&Gv;iVSD?!}kz`}Ljx!IVtUGgZD(g<+ rUB88M&!P)}krJyxO3&Rr?=$=#Gmp`%%kz~P00000NkvXXu0mjf8OPgW literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-sint_maarten.png b/eugtk/examples/resources/flags/flags-sint_maarten.png new file mode 100644 index 0000000000000000000000000000000000000000..2b8928c392e249d6d905f371726317c0f9b7d2ca GIT binary patch literal 1299 zcmV+u1?>8XP))e)h{1d%V7XUPdjC)|C8 zeAK1t008n)mste>#iF@Pb8iNtbfQ6N`ltRh0}?Zl-MWi#&O6p2*NW zQk4$$$t20iF?5PT)AZfNiz*7rDOXPDGV=^@II!Liai^e*Zc9JERqw*5SozB+akKta zhIZ{FVKjlmv2|qYWBZk(gN@T%`iSrpxn+Ty~O105!`M!{r&x1ym*n&w4cKHIl`se zU}_3z2QH{yY$NJ2?GS8ddipwB{C;M)mJ+;k3!AkJq0>`aTg$DH5t4cXGZSMZ9DCsE zPlUq>Or|r)@@uLW3<(2=gY~$)#cQyg?0Fc#OzZ|Jxf&u7=8Yyyra}yJ0iN1XMMFaa zvMe(?I!Z8J078JlfGqD~INXP$MBQS2eZw?2cj55_*J?jm^Y9gjr0R(1ykNER%JDV| z?)%U`u@kq~&xx)ce)mie*;0ntY^J9DbFkS+=qC}nrysdUESBKt(I04R{CY!e9?~vC zDRG0#zPG8f?MM2?0v#QMCa0LN?_l(~J=m}Qigjv|twtG|n&3zyH)r3)W;#f*p=Hqp z+-@&TP2b{ndo|lsHvH=*I353zk(qX!CC^Z(uL1VMXb3tx!Rds(dqLMlB=IA6!daTSgxJMl()skEE~Ohl6}5Kr!=Ki$|&mb1Zi&WqOWgQqirmoMg9!MfHt6)K>RinQJLa`B#OBRXao)d zRSOn$xvtUD(nBCHw{~5xBCGN}03Z;Uqot(>m+RVUl+%pNmvk8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H11CL2WK~!jg?U`R_Q&$|vKR3;7l2+S_X$R6M#!?54SqW~8wR8>% z43P?hir~K|=fi~drNf7oGDIKjo2*dTMn*x(7(-NA=9E@ntOK>sLJ6_eVwEbZO1C!6 z(&YGX!8OTMxF`2=TAB|W!o9z9&hLA_`Q1O~UQGxgSi`tf3s6nL0M!CiQ!qfa0M!%> zP%S_;1p`zIP|cb*z%4auXb6Ufg&zp9*9kZ@CvaB;yDSZ8`l^;+vJLS2VRqK|k7F@tXn=>lNTNseq;?<6vuQAQFLB zuOJkH@^YxEGAd&kB`oEm*;Xvy21|VIOal%dhN2=E9W~0mqQck?292uNwhij)pt~Dh zzXrgYUO5$D*?^pD!2bQv+??BSVj^?9r|17U#40vG)3SDqkHe))Fg*=VocT z>;wW(U2Xg>ADBIdLM$5)jm^T29dP%qv7@syvxDDn+y)~N^9fuo#@$s`(>jLbi{QxE z3)rnM3W!b4^4~|FP;3%g(p>y}>m^gs-#DsQu|4@Bw^Jy@$k>d8 zRA;bU0jZQ=w0IMgm66cgTrT~Xd!7IQ-&7u=?Qwt~hU0`ceM?NQjD)`k()a1#9O%5yZC?!lpDjM(j(2NDzq-UU(c%w?YdRjW z#LbEuJU!pd!4p^PQEvlMi=pd7ll)rwIc(VQc3<|v1B`g8iEBClDO`y5c3L|IC8aup z^b3*GX9oGc>udbN)O4j5cn=Y0n6e6=OhLLm|F|3ge%y)DG4Q$pyveRDh1 z?5Tikyx#Y}Hd{eBW56n6&3_jt7@%5!Y6=FZ7NDAf0jdS4X3ZP$24`_rNJ3(tmjD0& M07*qoM6N<$f@7oHi~s-t literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-slovenia.png b/eugtk/examples/resources/flags/flags-slovenia.png new file mode 100644 index 0000000000000000000000000000000000000000..6743329247813d75bc70e77ae1ac1a9b96b8e365 GIT binary patch literal 723 zcmV;^0xbQBP)zX0=fwU=oZjT*9S0FH_U&jbMxseFW=2DJ@4TG zLt9|~j=h{4>1SI{A^^?c5Gv0BZfSvCSEqPet}~SVz^A44xSk-FStMU_$gQ)OyL14f zFBhb9=E`D2;%ylcavTzKGF68t%`}wh6+v zeUn=Y)B?mUlE$xzS#D*a1@H}klmuaS)^~u~2nc~4X>W;|2BX6cqr(m{v%O|ZAR6`C zF;JB60!dSljz@TK@et{F1b~wVa~!|%jHD@i7YrJ~sXIz(?K> z=Gv_%e6%vY3I>hxgU|-)a^dLUU+d#X2G|_)#c54Z9s%>~GIytn^rm9iQHcsrQEPI?@3@KP`xYiZw@e8tp+bNc7OibM7RnwwsS^+2qi}GFI2QjzF z;mRBc!DPl^#ZW#>{{{bSy<(U=?CJN@MGIa3dq5aKw}5WK0J;Tq)Aa$w;?|wve}mmj z7(lmxZo&Y%1#}Yz&@G^wFo13W-Gl*j3+N^cpj$vU-vKiagQ2JutE&J2002ovPDHLk FV1htbIi>&r literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-solomon_islands.png b/eugtk/examples/resources/flags/flags-solomon_islands.png new file mode 100644 index 0000000000000000000000000000000000000000..de9bc9ab9f07d1d55b41c7634aaac8f6d3052917 GIT binary patch literal 2062 zcmV+p2=VucP)0A+Owv#g_rtLF~%xYNESKi-di);AtLB!UC#`DShcX>nVe;sFY8iEZM&jSU(F zuRI@wLM~vjIlAn8+87fPhU$Imu@9L&B8N@WchXDU;Iy?_1rmd?kBuJy+T*5dST5QZqI8WjA`=@t&Y(M5r4kgr}!k|%bWy5E15bv$VW1|$IM};IJY34IU`OuZ5A7B zII8FMv|x&=?_2HwkXR=TH}LkRi|os-;#zeZ5&Z+nE2(!oXpmOH=!H4dG+J2u`*0sg z@eZSZ6MvhwlQ*9`F0o&%RI((~NMV)2&6jr&IywiqBXY2goWk4P_twWm4>?WZ@3s@7 zsdL(_c7ZKF1+w*o7Ms0`DGUW2o&!3oym>Ra@FO{C6BB>m0x67iRADvAAj zZ#HKKdLkaUrvy49atm*cpC)le3Srt>r_E*;*pjVfYjz-34~5^Q%K*$C z-<$Ps55}NTpz)Jal^R7!Wi!!h&QMiv_Fh3Z(W#o*@LC#gMI4pb3#$|?&NPx==}{Hm zN0$NEeY_HbMnTdahXJ4z1!k>1+oR%N9dwqY8QbX-SmU(W>;j27TDD~Cu-Llaw?}J0 z>f!6y?00tj?84hUw%-S;T1cL;jf{EgB;t#2DTqr8CgIqFi3bnYfT)oMu2r|OYS(2} z%pUMyBYMcxffv{|BbjG(E?IX7Y&)T4({UYUt8d2fC;+{*3L+NeP}^w1Vzm>bRZ!hv z@r?)fpjEZ<`72-X&I>>yQ9N%z>F77e4AV4Q3rCFz-tjfWSqM7 zz|KtRpU)RD$@JB=_hoYkq~vNyIHvbm)?MiM9Izy|pT|8!^w;v%l&}Z#LZfVD^Ym1* z=6@y;Us9uB?pMKle&nHu2RbN$fg%2k>Z?H?AX3-V^{CM=m>4rKu-gty?sthVW+v0$ z&_3hr4oE$vWy4V&ZC3C0b#HN&z}Rpd=}SiwYEU_UEWO#ns~_jNeGgbUX8>x|oePxB z?%;X^*bNYK584rtV_F*h2_H`@>6Vtw?;Pk-TzMCtv%F0?8UMC{#`U#_=fR z0!^(p1}!+ojXL-H{rspQ|HYqP%93RL zYOP58cSinqtw*vhL9z(;HTh9lXJ+)m9L!b+{>skJN%Nz^*qd{c*VmmTvWt7d_-6{q zTkrwzMILmDcR1k7JT1{XLLP~DxMvXzGpdMOdXnk}3sXNj#em*wE|xXA{rJE6wJb|3 z0-)90aozig7C!my*SsHj0GUhH%WjJ-%QSML?9m9ni&yUf-ttnPVp3v~7}Bf4X>&N> zpJz0z{ZUV|xyNeV9R(g=hrK~1T3J11Hw(vqhg@i%8RhkImSzT#bM?_?-4&k);Kg5+ zkP?%~Fw=F3eb<=){&GZ5Q^)_sJTiP10F`KE#pJy#p15C<^@@5q%MKX%snpL`L-`b+ z1mM?US4fRbWVoqZV&8o(fKLzWX?)DG?#crNKqYrmM^Xb@R`z`)Tf zk7w3h>2?5~4=E)zHi?nF%Ov(a=L1-CSWiRSzRYuz1P24H0GGIqoy5fNG{vG2=Q^YMQS)U`Z$S$D;407RLM#S=1E z5w!=UyuH?MHOX0-W#CZJlU3{P=r91oP37!}O=3(~iNv1qvp=g38L553v+jx{0CK_3 zq6rzSirRxpY_Ij2W*IB93>+*}_qc-(8)pE9_PS0=OcG=JT$VIAP@rbjAp@NsbbuS(-LD=kv}UB8mWFtv+jyG sD&(5;Rids%#_I14?7#GMXWf-L1P+nfHmzkGcoSayYs+V7sKKq@G6axd}Sx*tk6a9dhy6uU97CfByARPv1v7|ID1PrAXLb3&tva#n-;qmrezhiMOv2vTZ_C*D@64BOGGk66AN_gr7=6+ZlvAtkw{{D-;d{u&c xD?IMnbOs6SX0q~qqkBf)p0!RIUub^jvKOm#`a6$jA~5zDJYD@<);T3K0RXVj@2vm; literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-south_africa.png b/eugtk/examples/resources/flags/flags-south_africa.png new file mode 100644 index 0000000000000000000000000000000000000000..a69d748e59a33106b66b48c1320ab18754efa3b4 GIT binary patch literal 1822 zcmV+(2jTdMP)r++9h4jQEj)1rrYvUC-q zLNRQVBpini(f5aKNX~)rT&E2p^RrCjJ@onge9(59cg~%pcxE;ReJlt9>YO}u<(ahnqpK@19CdttW0I0Ka&@Ekox7&>O>&|fI8WtujzzDsLKK3>o#p!V~fA(CI z3K2!5j>yGJQKiiut_GJYOzDOmabMM-sn(W&%P&sYNs=V$zCO#}n(MgZ);XlcCIO(D zlSS0BmH2ur40X1JE9a0R9$sfN{q&Y^Xmjak8H|$UeA#JZf8#N%gAPj5^H7OOga|E> z3zwkI%pR_WL1&m!4-JC!4@N(O2QMa5(~--iA+_v4>G4MXwCYh7%qbYP`Rz9Pwr^$N z-6NsNHVlZ1Z^txqxPr;k*{L#ogW0X+OQ&8|AnTxmSDQY>Vz*M3o{vVULeOZ?mMub) zTY&rX2BZN;7^d+5A?`nh$?AZTTu>`PC;F&N?BRPlJGHh196qJ2fQ{X4{JH5kIfhg+ z5|RN>rlz5*s6?{$<7qh?j(G%)D1qs-7C873cvW_z*^YoNV7vAWMJ|mj3{DZh{$OD!9=R zLse@b%>(ilP*crSUxL@8r5pAf1w$;{o<3|#R=cS-nh^zwI$L~D?}n)$s0tX%k~`p) z%`mc@25278v!=C>21m^JjyDKFRlr! z$wD#J2~0Keb~;yKy0<{k0>tXzrD~`e^BEtK1h#f%@O)P$LpN~Qk0mGpZl=$mECFuD zh0ufrxLKFN*A?Jq-wa(-fYtZH_G*Y5^8+96PoTQBfDTur?7tr=$Ola-jtw%uP(Zm?aS5?rw#PbhxHcL zJyTDI*&ck>Aw;PVpr!(z{|V?K0uK&fHnOQb4~s`5J7{W5BCo8fp*$T}TVAbk7+(mgo=!^I&rHSM_^x|A$Gm>{tJ`{lg2bPak*=!G zco!KeEO{6N&E^obO zX47+@&~tGxblHXh<^BsPJkdE<_AxiWZAmHYt$d7mX@MTPc*Vu$Uw_J9-Z>w_G{c9o zs-4!GA$vENZ=A*6%E!1fC3Dnf=^bR_ zuRh_((dl<#YQh4jL?zEIcz`Vn9zZ1q-1hyol_!3Cl0Mt?yd*Ut0g7(TU~lE)6wH`4 zYBPU3!1`zEd9SuRT)9mO*A(Dt7bPVLcD>QUQ@?A#J}@*XNrsdE0?LA4mwGQ(6aWAK M07*qoM6N<$f-I(E9{>OV literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-south_georgia_and_the_south_sandwich_islands.png b/eugtk/examples/resources/flags/flags-south_georgia_and_the_south_sandwich_islands.png new file mode 100644 index 0000000000000000000000000000000000000000..fe4d8995bcdb2d7b1bd4fea99d738d8aa2e11a89 GIT binary patch literal 2975 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 V6)TEt3+ey>002ovPDHLkV1iZ>d;I_a literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-south_korea.png b/eugtk/examples/resources/flags/flags-south_korea.png new file mode 100644 index 0000000000000000000000000000000000000000..4e1e4ef93a9f4dae4de5275e4f4b100cbb0a14ce GIT binary patch literal 2170 zcmV-=2!;2FP)X0u5RnxTu3h&!{gnlb8vA}&%$DH+=CcG#6c z>IjP;2$i;%cYkbfWed`K1vAX0w?u6=#^u zX0qGul$4Z20O;z~tGu~*2{1W1Nzu{KBoGM5WHM2Ddiu-jxw$#s&Mb$yxj8bKOe7Ep zC_O!$dV70GAP`V&Y%D!_@`M*BuU9~;)xzm?;>3v)xO3+YIy*a&nVAWf%LSE6h5r8j zH(QpApufK#DwPT^Uc5kNW+pm2JJH?UjmpYOjE;`t`0?ZXh`B0u>Cz^h-FzSFE6L)=xCalnBc_8Nr1h3_YwfAt*xc{`g#IDxw*M?{rYuc7>2fP z-AXevGt2V4xIadZuiaVDX1{YTJ8pVF(XTOOBuOvNU<6gRFT+se7G@ zx|=Ag-B7F5 zuvjd(a^(t)MkAV=n{oQ|X~f6JWAobCIk({F5f~bR#6O;a^kZM{fq?<2)oRFOGIVuyAtNILMMXu> z>-C)G;QSq+*Xv=k+0fY7h_SITR8>_i8az8S4Qrm3cklqfKA(nd?{C0P&-mDqlary- z=`c1nhQ`K5*lae=!2^JRk7Hu77&@H}adC0bXf%uV8E?J}_Sthj^b6p9I)(8+Tt-w` zzK^Ywv7CXXsrLDNHtCkS?DtseYKbGvd^_x)>_0fXh0l*=W;?xEu z+QVX3%S8aIBtU>L2onMkYNI~F9F`WruwDVfdc~4<0#Fx~gb9IY6}m)| zwgIkyKom`Ui!HNLFU=2vB>3XJ4{$kr`KQY=4898A2-T`Mx=I54y)YOIU|H73#xM-D`KfQ@*sJ(iTH>PL04&SGU@*Yz_44NCC4kH2f?lsj zSy>rsYHAkk^Q-KiB3v5G+p&2_1q=?KIIyU#wzd{!Wo6Lo^>Dddy!bf_pwsD)kdOe4 zMuV7`7*tnR!)!MD^b3^;(f->aNG1GtaH&LutH1v>A|ij}V;dM4fL^ahOiT z5}?!RIM3m?06jfDxNzYDghC-kMn+IoRRx2=0FTFm!ooth-EN;TpCoU>*Jm_X7s6eH zbs-{reMW;%k~jI-+-^4t3k%`#cyRXYSyWY3VPs?kLZJ}N&CTfP>G69WzXWi(T*%4E zK}kso^78VKl9B?W(FnKOjpE{B3=R%1sebCVI9xkZj197Nemk`>G7Q(w6eD$8+@f~7 z-43VIiPF+i%+AijXfz@vB?Wu->_JIM3376B{C_3Fy^=mZc8>mZYlyt8e_l*IFh)m5@#xVbJbwHbm6esq&(B9oON+lDajOfwnid}%9HhFsIs!mO zqw%e$#f?TI0ie3NIwGRClNKjhSQxR{Y$TCL)~qlxpQL?jg^_s_6ci8u(&=>6(9l2t zC@U+AZr{F5N~Mze`uh0Lz7~CbeWX+>sjI7tva+%W05vo;(5X|W2mom`8eY6BQXI|5 z$aw3;(Tt3Y6)BFs^W|~ghoS83Y#cgt2+`5eh>wp)P*4zGD$YnwPKL+h!T$aG@$lh8 w?B2bbH`l5qMgL#$!+(U<+JUvkJ1@Y$0UYD!;z`sa1^@s607*qoM6N<$f=EFL%>V!Z literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-spain.png b/eugtk/examples/resources/flags/flags-spain.png new file mode 100644 index 0000000000000000000000000000000000000000..b7a52083053f351952df394f745db1a9959d53f4 GIT binary patch literal 1091 zcmV-J1ibr+P)P`$j~v9o|x&R|E{t15cIfV_{=+WcAvd}?VIR5 z5_*9@!zB=q{CS$_3TTFoKhQ*XJDh&?0&THD$K;*B_5{?{?xEdT<(jD>C3r%;q(5$i5Y*4D#FbpV`1*Qjz6RS*(?|Sob3|j$Co~;r&b%JuHfTzu1uGwOkC@*c! zQ+TwGwRVd?CTEDr73Ag==^In5twBkK;juP)kL;Z(uoYly$;0~PNdg@$oIF)W>!=Xw zE)wY}5?;>`+1}yVzT5QnjxqG&4>WIPcnzHFB2c=0VYVMssptb^xyl$|Zo@Zz0E&#&v z!ha_{DM1SakS0V+Wuzg%?WJbG+R`ME)-s)4d*@ti>uEGKA0|0F21sr$1kuB-NGpvH zP>?$GoTjodiq~JqD7kr{ugq6hqx_x!j7rrp!>S#WA{yTZ>~k6cR12u45kR$oY8nAl3#g_MK(&Bs{sr38VZw0uMBD%X002ov JPDHLkV1nG^0FVFx literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-sri_lanka.png b/eugtk/examples/resources/flags/flags-sri_lanka.png new file mode 100644 index 0000000000000000000000000000000000000000..599a39ab6b76f4fa39b512517ef1b20b3d4ab9d9 GIT binary patch literal 1991 zcmV;&2RQhNP)v_b^bmk5f?RKz^Bth`-;FC0$!Zh z*vZdDOB~O-AV8u{!19eCv+u7}+n&`F?gNITefGF9G zel^R9N?u{WO(o#pp>1m!K>)qv zZ>rsvA)sgPGBfL}l;pATw;6bYCYkA)aQeaq`@b->R&U$FuTH=wX7b)iyvNr<^98PiW)j=#>q*9O>f32Tz zcbRh5!^o4j7U+TGcG!1Hnk0Tk5&TR=Tb*c0FS!Lj zqU2Cn@nBXZ+Iq_L9mpU`4i|pikJ?^k?m`SL=>y!aKC}n{zMz3GWB?$D4sU$#F?#ne zGxEhH5MVi>5{T)vZOhU#w!#O$-Nw*oQ;Z&+XV;e&k-aur(no44NXM|osh{p5HRVnd zT7m#?&_a}J8Jb5mdE}V|jIvB-MkT%@Pw$>AbK_C;g2LpRU1&)kwZfFY&EUqFI7USR0ebeVkiX@}wgftc zG<*?*P)C*SPiE=bnI}F{AQ01Q136Gy@i2Sdod80M5a3Zw#MM~T(q7KKGK}LucuSd{ zJz4ak#N2ocHKudymGj76d;Ng~2*h;sviodu(+P<76$!>G2%?SbwJ@s^W>sYHaEc=* zrjWh0aNe>zhbTEn$~`832X=q$CRhL5O@49Xta8&eAl6r;ci#%R`2df8WdVRdROiTv z$@=606rbg4@<46dE4!=pZh8bvpNSJ2DB=qnl(HT=cNW<3#L~UP+yyK{L`!*H_1$y= z90$y@M7}7~yJv;rBPlFhSii3=Acz~U?7~C@v*Jz%HvJWFY=Ll3nT{b1qav~Ou@y4Y zK>%#4k%+Y!UNPn6`d{N@=K>A)XI-Yj&;k+QQBCsme)N)zcQqUI1`Qk=EL}wO*K}a* zicX#C!lRlD9Z4~DsuS5~5nL^_EM9JNZGY1vz^q6VGhW&UHA>4KE}z`W@DoeC`|1#t zyi)I1$|@*+i)umUt(SH(|9+Id1DVOZEM98EGFzAc#b?p=i5xdC z#_rk2tcsXbk!nF{*#FntD-wmZq$H(v`wD`?@aIz$(;kwOA&9&~m4JQECFtB)Kuh1fQV$X{tN$i+3~4B?P)jj#S9RIO_=&C@oQhVr*`Rhy)ao3Tp#cOo8C==sObObbH@7z!TrPB; z1a10cS43l_JCv|B^U5<44Ty}56J|47=@N0Wy`}{0^W~8>yX4K)-bz(ci*Ay zi{vQQFjK(W5orHvK@@BFTfmzUclZnl?BB^H2M7QF002ovPDHLkV1gcEMA`rV literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-suriname.png b/eugtk/examples/resources/flags/flags-suriname.png new file mode 100644 index 0000000000000000000000000000000000000000..8cfd1c6bd595dc1bc4a7a5b73590df50316bedcb GIT binary patch literal 626 zcmV-&0*(ENP)ANY7((VCKH+KB2rqa(oODJ%>Atf?iuEr-@W&o z!{sX0i<%hAkp_^KH9#6bTGjw*0BKnRqyeO*zSO>cl!lO$(puX_D9(z#0g1D%cb}vo zB&8~2^I|z5HPr(kY^J3UWVe8~*uh)uNFoRuQ0m~7WDQ72eK?s9abIeL&g|@Hb9)Hgof2T<~p#`u0nDr>+SsvyG5S zX$q@#a!cnAj<-Kd(Af3Sp?Yw97&4j!b*KnxkI!uI-8K62AW#LoH|@vA%I2$qQ3H}M zLNasLz#!2zc6=H;KDs}^$h`hFs162Y)PQX164W5kRhNsj4)U}P@>G|L1Sc*y7;lY@ z8sL@NT?pTDA888wy+Rde&L zJrtFOkW}o?1Y>VN;^?#z??X|0LnP+121o-)%NigJAT4WvG=Q}304n>L#m)c+(EtDd M07*qoM6N<$g89b~761SM literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-swaziland.png b/eugtk/examples/resources/flags/flags-swaziland.png new file mode 100644 index 0000000000000000000000000000000000000000..7f374d9d9fb1608bb1987bf895a423af6d4e4bca GIT binary patch literal 1855 zcmV-F2f+A=P)e*>e{$XvaRj1 zgf=AOr3HcwBZY+UVq-Aa_}%yJLq`J^-qpKKOFBHDnb*aj{VctY=iNQ<`jR$ST5{Mq}2N zKmt$zRkj4I<-HYPu(%j!K>@w<^SFIJnwy*X)uBW9Cnkt`z4&^2@m{`6yt5NsB(f&D z)?@~JVzY5pZ=}mLL@ewFz-F^CGBSc%txmEZb2{lfew@U)bEsr_Rkf{Z0A`Iw9Hph4 zcaBp2rJrCa+Q!_>EpGSynaV9{+S}VR_V2%Nfg8tk&o8t8?2q z_g)7jB_;TLK8lNr2~KrzXZsV_W4b?v&_?H$+*gh%C?*5?iqDf@T}>hsVt#m-$k-U# zWpar01C8eBN(LRV$mBG|kRC{&F@Pv7Jwl>}*4yR$?Za*W4j(>@-|y$hkt5XBY~|Xe z*D;lpk?+3EOlXLo|7;%)hl5BYf+&gv0s&5(IDw)ljE|3V?AS5l@i^gdn4?FJvUl%Z zHkaF>q!xGAJ7@@VGpa_vtpWR^t=J#_F;V9*t`}Y)eD*Bj&6}u{<J(3a0(Nq}>JLRdMpFWg>C#M02p|g9ri$_t`BZ)SPf_<;wM?gD);F#_#u2 zP*6ZD7GrjH7OT|?fYaNMFnThoWW|fVltVKB#G(iX-p;)I-L%W$3uB} z`4ay2zbef z-sXVe6k73~m?;9HkixM_g&+ub_jyqiQ=S6|f`C@5B^r&ANF)I6p3AaKG#X9vFNqRL z4CMQMzNjqnMzEQ|+(*ct>*E2ri-$BHV23^B7e;LA&Rz)xYmF*;KQ%zsd(?7 zs9gf_L5cXFgfIwoz5wp3Dn=(K@AhAk18Qq=yWJc-c#x*1CdS9dIdI?r4u=DPmX;PG zk;t++V3FRp-op9hex&}`T^)PN|+cJVdmIZD$wT0{XHH8uS1+BM`A)bVw7b(}tZn)>?sjCNOFd4;iOo0wzr^-7Bf`lbS6?Q)Yu)D7hYkfVx9Uf+8 zHuc(D#B4U>a=Fq5ARdeH{);a%|I$ln{*xdxVN?u-OySh?l^2*9eT3cJ$wQE<({=E(dH=chUeQ)n-NnD%9;gO;u+H!OGM^8`6_J)QA zPM$o;jvYGyxO3wMozFc-;_bJQR#46TFRbYsp__$;IE#wt3kI3=`EYx^D2hVircG3o zl<>=@CVcJfC_O!BSh^4{gG{*Mth t{vxx^*$6-L1P+nfHmzkGcoSayYs+V7sKKq@G6j0G#PZ!6K zjK;S!HgYyQNVtXOu_*>eSoHb6;z>xKs>jSxrkCJnRE$e`-L1P+nfHmzkGcoSayYs+V7sKKq@G6axdJg{O;S zNJit^nYLa>0z_KhcWVk=WSr?GkR2%gKq%+U-Imm46GbjZpHo}5)$<`+i~~z_;<0lq zMvpe1=-2khOUNtYd0&@%XlFaWT;-h^+gE>XTXyi5(cc}@`Mxe;Uf#y#Anvf3=>qEo z3;hGrIV>$^PA-?&X19J*Pu6c`LoXRY#^wFqv+my8YIom-KSbrc(BdP7|2S4KlrWlT zF~l-L1P+nfHmzkGcoSayYs+V7sKKq@G6axbjqo<2w zNJit^>Gm1Ig);8M5NX*mnPuxEB|XU{4+8EO9dmlQ;K2)pbFz0>Ufyt&ky&cx z5p`v4Y?O@7(SM2x2YE90v?OFCH|@2a6z5x%=M=T;$@jzWC)}6j|8(-Sb=}S*w|3VU zr*v#w%DTjmaS0w`;~@i+|7`7&YZ>dd)xDncTmSt+U5AG&jwRLkUca+b=h<})nX6mg zW^!+M^JYTnw$ih6y|3L&yLt2CHgU->t#>yZ|1BS1=zohrN7P*NH}AaXc7}qo%nG$n z&BBv8RUME2KbrMbnxXx;Uh4jXL4}i#Wbia>?4CYjcUik&_J-<}Uqm!2OXX_n&W6?Q ze_!>-Y0C6q{>qZa?-pFH-J@Ce@a47WJ@&_IuP;BQUTOY!#_NwC8@ErDZ=M_1f3r8d zX3ZN$11llL`v0txKXOjJY5b}n%BI|`{e4?{Ow&&q^53={84+|EbD$~`uT#Y&5}P7*98XNGqrC8 s2Daoc2C;;`0|v=V9^4){iO=GnFHKQjcA+8-m|_?_UHx3vIVCg!0MmUMAOHXW literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-tajikistan.png b/eugtk/examples/resources/flags/flags-tajikistan.png new file mode 100644 index 0000000000000000000000000000000000000000..f7df79069eb74714f1eb4513fa8e7fada06c88e3 GIT binary patch literal 688 zcmV;h0#E&kP)3mC1lj_$@djuM(8e2}EkGM@fVKc_yaCz*wDAUL3(&?`YyEElHM&3L zrHFe2qU}L^@D!@gPJho8)+N1$wOiM$JzkUR&YrdH9}+h=tlhe5ZT!cnB=#becaT5`bXG*#PH#hg~|h{JRC{3u>Tn9 zADl>YR0MmFn+42ZspH;6W&_2opaflLW(>_nNPk3iBNPxx&+uzN@1`FA5*{*?Tb z$fkY=K%TrAnaab=-9bD=fUC3G^ev8SaQF(6#`tTJhOCKe>FMg@rUq1>fGLchZ$eq) zU>BrsKrjvE6)-uuu04m&9wbdTdILwVCGH+T?S0sq6Bs(5*oJBFrq0-#7e^ywvXi5KKw;mpKQeB{;JP3+vGOD*gY$ zI)s;@bW3(j@rsNNaN7zeO{lLx{0q8OdEx-!CCJP|VGgEmLQr%j$*lpq%d*7_WeCeM z08Nt*Zr5yL(I@9;$94bT>#jW`{R6#qbpA!wqgi9~~M1cDgF=*Hf<(b2c9 zZ+HID(t?hy-LAXs^XHTM{(g7QbG_?5Le^*V6~-tJ8GO8D>tI@nKdPNN>!WC!i&ncF z*BWB7PA-`k1cg$|bqXX0`iR!mBU8G=&GFNH39U8e447@`W9PU|vc*{HCqDPFZo3P+ zBfivcWy~0mCMc}W=q5M42VF#K?~*Bg)5XazeM4S%Oc*dXwU-^XPO`*6RD1taA7#5- zIGn?KgpFzg%z{jXwVRjCHxMFPONY$btxisV>mP77UPi3}3yog3+d7$~4@R}7k9*m; z+l|ws&WlUbk3s`7bTU;LT`V^{quO8BLaeTJ@zoFNqz*7^n#hql%jhy-QJROXRyz|S zsmn6#Ki*6AUN@dzby7E^2vioBsK_&uB94+fz@`gPYqhh~SzfcE;&K0EA@NeauVU0S|pXby7E`3e>DMQ?|;4KJpH= z2d$K}uGh|h3Hl)QRy&K+JW=h^A3^fAxHx}Fz0~JFoWkLH3lB`uN3{=o7E#h#Mpw|P zjR7y3TvS`_Waz^G+yX(^al}JIlNWzLoz%@~0^8Q5Q?w!tT_p9kKqf`kHt?x)LG-v0 zHDHoH$aY&N3yt2W_VeW+c{NThTnP>^nHWz!X5dh*#C?-vsULGZM|o=rj*xWQu_I!D z0K8UV?qyW872}dkcbrR_0Xkq+ zdJp9p-J}WO-?g_-Vaq-bdq40ZC;s8qFE)$7?l&Y}U22SKSN)SIXxYTq?%9LRC&hrN zqMu#kI+<;VeVc!CK0raOlRukPy5E6iPp7i4O5(1}aOyHT-s#F=b9*6P**M5_7*!3> z0|kM%|ijGG6E7W)7<5N-+UT@e2h=M|q zf7^qyK5yOMK{O_@e{WJ$torPOZL5bnrba9 zm=k-To%7Blzqy(#zAV-Dxk+3GB(s#fiB1RWR+^|UHe)h|Q}@b7s@n_M*Oh~eda2*a zfCh|2DG4xrs>tCwiN|NfQa|f{l+`VjT=h>@ZJ++QqX8pTN|xuE*j#8P)eyGWC7amT z_Bu`7FQ7ziPagj>V5CdQN2bS4;f!l8g)J2{2PUev&tTkUfEJ}BfFmTazO|J19M7t< zM%CADVQg~)JANv#={0cw-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`uvr;B4q zM&sLCj=T*H0!IVHSY-qoeAgtUPW;GsSu3OJ=gE|7<#&HeoLR|g!g_&e7E=b}*&htq z@9*;XEn|ps2xib-ASs_9d;T_puh}4WLBxSOgKGgqOWz`hI*@n||AwlGl75U^8bG>@ c?GEs7oyz+u`^f%wpj#L`UHx3vIVCg!0Fk^?c>n+a literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-togo.png b/eugtk/examples/resources/flags/flags-togo.png new file mode 100644 index 0000000000000000000000000000000000000000..c9974dac00b21ea458c14ae510239c1ff1165bd8 GIT binary patch literal 774 zcmV+h1Nr=kP)#LMXZQ8_=q|?l}2n2OZ zCuwu%5HjEDGBfw`ou9dLF2lWR-ll^Qqw5^#+qah0@>PMS7NEusfLef>iUJUtWL6$z zR1|>s+zB`~cCd0Gp`rlfSOlJ)L#$j#C_4bY(FI3WC*%WBmOhpvmiyqE{X4;l0-WJa z2p$FbWXg2TCQll-qLZrZ8=z&f_;T_BlJ}oL@F)=dt&oCk#o~cNNYZ*gL|+RymjjdM2Mxv73jhBIY8s{n zZeZfrS>)$R@Ad5aF^umxj?~jvjP%&EY!~?T@-@bzz0k5b!@b;x34Dy5!s6E{W^z_w z+6MVXCwQmBa9wDYq30HvNLh(#0LsC=#qrWivRJg}Z-r}1n3uXYtWrH&1{m7lpNQTTbj3$7bMqdi2ZsT@@F*|4 z5qfY94I6?;Y%YB?uK6D#O80Jj@4txY%R|ND0YFPH;M3tg%#XZ4Lq~wQBukck16E7T zzXA1t9RRfeHFf~h0@QGC?|7MY0k|~4uQFS{8gTj>unV9DsQWEo2S6=AjU52B05x?V zfH;&0Q9F>r;mi^H98k~L0Z&;9+*K1XugFaSW+9*X`!FQRyqE5O%Rima?eY~8vZ9v-f!skuUwgex{ZdJ8A^w<0V^ zH}Ch4&qWf)q!d7_orFXpMs##2Iywf4ldwf3w4f~a3SQfF-RAwat`)?wY4?EJx5ts6 z{~2U57vdyr2n*8TOzCCBt^LR5{b7w1!x|}Zd|Cmjs?;!>Ef5Ht|H61~!yu}QzJ-^& zaZ#HeuLrQoK|3q6*)s1601Aa4tE6;@MHW;PwBd`lFHue&0NQ&v7J$#^Q93AyW#>my!L?1HP>C%@ZIb#2fMP;gk+q?F2S&UWer52Qe`*%_{jq zq9R7oQvD5L9{88Bk8V=TD(BoD5EHWs2M(mb!^0J2WesR*`o*Th-Mdq$sAz^pqqBLR zl!WLJ)V*^No-*nszYx8FT`f1~-Pt(=sZ@->Ku@UE1B*Hs3?`J9H?T^&kY^KzP*d6r zSFzb{->GSi1ONb)st;zf1w0=0KENfJsr@)v*a88ctS8eO1g!G&ma-cx+mf={mw}|gim@Bcr zQ_DM<#Dw~zjhsy$02IOO-bPMa0e)Tv)W6$^hu3I0jjNC^0|8bAO`x&z0wPzAaUPqk z0E`|1A0P5=YmMR#T0W|C$m9VaJb0XyKdk@)0UvpJNkqY;Bel5vUOnXgdLn-&L`9B* zPgp|$Gy*7s;bm5nV6NT3DF}^oj4C~cW#@d#YjyYB=)6!1SThq*t6#}r%0ccBMu~-PBac1sH#nX@7MD1HmL`@A_qIPUU?+tIe{b*Of?4;=? zpO*9ozC3(sNhS}FuL4dg!Cjkv!`U~RS=Z%k$k_5LQGV6}WTy7xlVUY-JIfUjq2tI( zvwes|1uFq^xA)@xH@;`}9_EswmwtkW)V>oXVgdH0ccG%74Ng2ep~cV3fc+U=cKO&X z0FMWhWOtxEZ)rc1Eyk-mdk_*Z$=Kd50o+_>P*d8B!rj;G9+-%5&f?aH6q$z-Z62O3>34zqfq7?wGKmRNSL&u`xid8_ zgibGl_5Xjn5CFo1b@;TTd0Fl9Y#12wM0!yYI{W>=OHWC%9)GEc~5oyZQD;6CcGN#Na=P)Vqw$h=|w#0000-L1P+nfHmzkGcoSayYs+V7sKKq@G6axdJy{C&~ zNJit^8HQYk3`E-EuQn+J3EX?MD~11dGYb~_xH>3Rq@SSdG~c_ zc7$=`OUnfD~rv30l3 z^Ih%`Z0`8jP{Jtq#G2>l^~H^X%S~3fo)NvL&&b&z=8*igxMD}lr3Aa{#r0;ZV@{Zc zF)A(92wJ5l&T&t_Q9-%r)AEeqkN@~4Fk~>AfSl&Ww1D-32g4QyDUfz$kj*L#Q4GB- j4%`bSf)w3juV8SR;`xC=_`!W(cr$pq`njxgN@xNA5xJ|s literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-trinidad_and_tobago.png b/eugtk/examples/resources/flags/flags-trinidad_and_tobago.png new file mode 100644 index 0000000000000000000000000000000000000000..39f3f600f8e2e186baabd5ce4dbdde83bd045530 GIT binary patch literal 2298 zcmVa>sNC zjCQA|J$0Sa<8(SbbDKKdrq1h`?&x&7P3Jnh_Vlc_4VQ*n8V>ovVdJp2v@RaI47ym%3* zSigQfX0w^7s3fjTq9hA+b#-ye zEw|usI9L)BO?v%b2)kkJ0$L6%WB}*h+Rf1SA3^l_SigQfZEbDD#KcGz>Fw>sU@$N| zJWOy@1Zk$7gzNJb%yb|j`}d1a_L>;H<3Yq3FYDH=!)CLQkdPo*=+voG=yW>lb~~~# z6{&xHlgP4y1u-2+$o~6{tG44%@vv&uDg;3wH8oYT*wD}rdcB^$zCL7fImz$5 z#&y-kfSV2^WdHxcd20vun(yMfFo9O9MGyqCva%!#j*gC!pPx@pPY*#MOVGag66)=n z18O>u_*?)06My>$XDV;!(kCwBZzm@wN3y8X>7=l*5Sz^gG8rpgd79XJb_B|E zK=FkE08Ae14|h=`!Mxta3va>?QzkB7?2O5T0#=AzMth!KQceZ0mfGb05CoH z5g!=0GIhEirBX?4Z7nr5HIg@&nVDhBmM!euxf6icd%weqmwySeD{g&N5PY{%{lt|P z`6n*oGBpyBe=`bA95ppH3=Iv@+uJK?6HyeYtE*$#vSsAu<)K=eg(58(x7h-IalYSS zUXT<3fPd1%_yIHFH|HWx)KFPjiPPz%ySrQRW{r)FgoK1(Fc?r~u0**e6L*6J(dV11 z|9L}l0083j4C4n55q87Zk!x3AG#c@Gy$FIJc|)t!ipS%jq@)BzS~6ibX5*@FLG*g( z;(y+lRR92@_Y&i#MwF{FP^70&R8)jgsl;NjNY?1=?8M=4U^E($YZF;&xao2TQ`58c zKX1%B004YGTy;&zwJT6&WuVjPh>eY#AUV+5~D_yy@uS}TvAd}sH>|(6s7&J9Y21Y6DLkkU0sbr6GxP>2)Fq# zz6%p`vNRXW@4v|J=c9+7!13x^0BqmBoqhZE5gHmQS;Ay8QBhIB>o8 z{vAI2!DEO%A3B{5tJO+$bhKpt(W6H(7z~Vzj1YWXB0oFdNqO|ker+>nLjWvfL^cXz4zWjrcjWw`wgNhr4M1V!GcXB=PfquoA1Iuagmgi z6a+yaGc!{%|LobbGvw&8V*5gi>(TU#3&Hf)g0 zce~w`m6g%b(gHz2Bs}*RaX-2@VE(SkP(F3?^yOmZqq9UtM$*#KLP<%9Wd7vjBo!4E z96WdsfcT$2!15=591w3;t(BPWAL6ueE7SHtR4Ntq_4QO$RY~U0%*?QP^JaGK+66%D z{dbc1(i8J8R^~nn%mKa&6O5Z0i742BLKDZPO`8}P7~uHv3|IH#Zkm z_8Jt)Nw}L1&$(E+ssX^K#mYf5;Tvv5k)WZvx*CVWK~GPQWDT>~j8dsYr_-U#%0QX5 z3fG}lm_xC0)dK(!r=}S{U?wbQ9dd0V8#ivm|KUBOaa9? z0N`@5($Gq1Tr8@!S>)yAk(87~Lqmh)Vx_mYm%hF}s;a6`XyS-0FT{Pwf`8)5&p9lP za^COf!v}wcQ3&Y}tc;NurwW8|^t06x20 zT)K3rWWFE>6crWWbUF!%izWTgZdB{O{C0cM1pwf9V<#Uz@HqJW7z_riRx4_?S~9<< zr-%Ifd`3q{S+XpOwAyzFzv+fAT)QX(0C4Ww$KYKLA$l*7laoVxdpq&*@sjy{eSPTl zdIkpv30@jb>i$0xQK{BoCFEj`u UGAW>|_y7O^07*qoM6N<$f+JvDqyPW_ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-tristan_da_cunha.png b/eugtk/examples/resources/flags/flags-tristan_da_cunha.png new file mode 100644 index 0000000000000000000000000000000000000000..2aca060d3a5355131ad90590676a007b220cbc57 GIT binary patch literal 3390 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 U>m9xV`~Uy|07*qoM6N<$g4+yLBme*a literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-tunisia.png b/eugtk/examples/resources/flags/flags-tunisia.png new file mode 100644 index 0000000000000000000000000000000000000000..af724381da60eddcd04eb12682d4053cab702fb2 GIT binary patch literal 960 zcmV;x13&zUP)E^E66-eOe2aH< z5&|){6x}q*e)vei?wy2|FK%zMEaKDVd7xxS8UQU6BwBk9F}ehRrqz|CPM-7H1A_-q zaIl)-yjkAcf#YDs>S()lm+;p00N4$$h)|dTSr7;it-S|;7Vgu@Q^vF?1%UVi05PT%t*`*+^H)+Q&XT@z z1FQBK0B%bXfWGICB1%Ve?|Jre&a*1p3%K1}b-j}>DFEzW=51s0gpTL+jkt+s^Z~_~ z+cpw?bce{X13>$Ct_6c6R#%d3eDhb&TuKT6>kj~M95T1=cJ3?$nqd%qbcf=^TOy|p zlRAAK05{p%t!FOfPlGvk1aKT$f3D#JLx)hfugYu6e)vSwstONCXxXB!#k($c>;-yp zKY(^G3B`lI6!tem{&v_u5Xsly;huaX)@9KD=ulJ%fd5H7{=a|^Ky?7s@&Tw0pjtiv i)d5t?2cSBDYW)B_GMXgXv&Dpa)+Jlqkp^?7^@MA0!IGSeDG{Av9evb9Heq?(XdLAO*vQ zyW@-=#reI>cjkQGfBt)R&U}XqTh>Zg#W1u5&_*|awgB4b2GABj8{Gif0%)TfKwAK9 zIL$H<0&YVl_<}renHdmATnG;hBjj*G^7%C@qcy4xFz(%jgvJK&h529-5~9W<9uIs^ zp2OSHiqOEI+H#sh7TOCC!Ggq_jj&do2MCE87e`$P_B%ir28Qj0VC+foG&RH1`~ZkV zR14RN1sTBS<{Ca^7;_yeyfQPA_z!sYXOsz4D-=L zus^yF+vTd*6IBxTcK{JA;IlW$Vj+hU5JlA@h*bbs7To5INd4gi2tlylfvMW7s&mI8 zZUYPjc~Q$h*zZ_yVa8^I>BvEtPaK1(v;@Rxm>VDjlGlgHbJdVSi@#Ma&t8C#CHemY z3bsKaSdcdMUA78>?>=Dsz;X2=tO8Pp2If{lI1F$cLe9?^FFFh880A;2n`HkG<^#u%1&Xn?>(&57gXntg`#FC`0c@pusE=|!NYS9Q*KQ1lM)wzfw#GWLhfVC+e%g-q35qtY$1b-eXP zyf=$KM?kCsjJtRIi!nAUxU5Y0Uv$P_mE%BoPPT=HzkH2;M1& literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-turkmenistan.png b/eugtk/examples/resources/flags/flags-turkmenistan.png new file mode 100644 index 0000000000000000000000000000000000000000..b29c3634accda6d64aa3a1682b6fcd380672c84a GIT binary patch literal 2303 zcmVH|pw3WO4th9r>04z_DM zUhd|*&D=YCADpB_u_q>VLY&{*z30rC^Zn;L=ljk#Be4BepBcDyvcQ9*V^p##MnRdW z8?nY3TAjrM%R1So#b)exF%k-DOxILgCxlT@Fg%yE@1otbg~T;2Xv?!?J&UU6QOT)z zoljbmc^?~7-KTylQkbpXJ;YV* z+-E-r1PY*vE&!Q>eaJ^%;KL19@Z8W4a<|8ehlgp9LxdWyr7&Eb>K}5a9Y>ZVb{{>! zfASfkvdTT1uE%t2cK06S+goqt+9fOJ*sR$TD1apRM3N>#Nuy>8Jn+Hqcw}RmaD9~@ zfA{;u*MFVd_&9ZjO}x2^<4-@F(Wz+h=+5VP{PufkOVrQ3 zb+bTZ!-^ly)Yw*bxlNnE%0?L^Qg&!!iMIJeR9d%ej8V8g?Amcis%0iNIYe71b&CYs6a( z{P741GWwBbIMNUFQx}>tHr{MdEh@C9YV;wWy8av2ZX>Bhd35LV-2K#Jj280%xSn^~ zecm4#;Qs4wo@3KyN8l0|t7#DQC2)PzW4t2=msaBpbfm%PX5&7>-Xl zkg12Kk|p0!l`X|Q43z0D>tr+$*9uLW2-%)XbG&X^ z*7R4|mfwxLBSGnWtsq3P<4whG@Bv zByU;|0LbfQZt2-TQ#8RyAxF=GE^b`8j%_Q~@%l#}^3^~565XnuFB=016rgB@i8ohS zoYvr9(3gx->QPzK{UOgCUXA&#!`iYAK&-7cV=C-=9)CahHp^Q&xZyLG)7`RwHwTXL zt5;v*A0NDn_bIIXlLQJNiyp}ZI@O|#V~Q*A4hwwY;sZ)(?8Vm7g+8d}ID z=rGim9;GimI;RHwzXa|9ZCZ`V;TVy6^VENy8^WrJr;G zBP2U?%4rSV_bB)deGxbu6X@4q!nbkp(I-`+4JPBJdZFe$X9O>SkVk$vM$LnlE2A6< zI~XAmLGTg05OLjPofzjPTBu}I{FVzf?YSdR0739ECKa+ViBZMH48?g=PSLPRB(ral zAGBxbH>;#25i%O8cxI@(*a=($#)(}$9T5rnHSk>;Q$E9CjYL-?Di*eHGO38*b4DgO z9|$gqsV0)*vMgt^r>s#+z~lXsh~XlR?V{@pRuT&oAX`&Nv{rG3 zV%#VC)!|Aa^{!ua25fQvW=|SXmu7ViV;>w5%_q~ z=R^fO)>K0bdnCh`m5)F zxb(uHD!Rm5su%^CRRd9S)eLdhWMx-`LxXuPSL;|Bj-$qHBK0N_G59!qF%l?1t6HPj z7ePx{*j0%wTEkRB4pztOPW6)`Hbz0Aevt*tuM=V59x$XwNVHWcry~GNBt?v`t!C^? zOR3z|K~9;f2~=__THPgh9F9mXlfzLeAs_YrwcLL57jdmcRGn84|N0}eUtGh>dt=B? z_oHW3LhYYkY3p1G^Z>^bFbWC{4_(ieb)O@i>Y;D%lk9kK7b8t~pk(^EW$^&!U7eIO z8WQtQfIttZojBe)W{Jw^e#9fk+4JHc$EpUQ19`f>^HbcCL1^R^;5b$95<3n9)U_K- zq{nD%26b=`U%9)Ty+=CPxcN$w2^C9mG4n;5KUO!KPn`7w3C9#!`08Q)^o+qsHHkX9 zlPm7nh*fB2aBPUDzx5=S9XW*O%<5Z|#DC^DV8e>C z&%&^WbeW5(&%ZPnW+8y*3K)|Lb!`TP(I_j5r*Cx0jtYh2k<-fL^NCscZQ*znCFW4y zSwW6CgjI*I=Fpfb6IMNp$@v%mPckdN^<05UR;4jjCfTW@L>){+!ZAg1193ceem;GG Z{{nmhbM8rqHk1GW002ovPDHLkV1fuPJx~Au literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-turks_and_caicos_islands.png b/eugtk/examples/resources/flags/flags-turks_and_caicos_islands.png new file mode 100644 index 0000000000000000000000000000000000000000..ad8cafe65f1103cdfbcd741fd079abd26d742038 GIT binary patch literal 2029 zcmVRVNExaN=lGyfgz7 z19V1RGfBj1Wg`@AM+C^V9`dj-ES6p}GV~M| zpW$H~KKu&LR29-*Pyj$^YAWYe=y>tPKRz^W)279|o)p5(?OSp7_A)6ikKnbH4~==; zh`pbFib12neCQCPM+Z<;^g}8twhY~Y(Q1cn z4o?v;WgR4B<3_G+*nlZ1iGijj;^Lm7zW%qQr!Pkk1dqi9K_ESSIseR_PuSMgSWlcl zT~@}F(o*ChA?WoV4`V5wA!^qhVB59ngqBrcyK)6XR1`OhiWoJ@m%O}}ICUxmwK~jg zVYNDp(|=7N(|VkywX0D*_Z(3M1FFPCT3fr&Y71Dqw%{?8m3Q6M8Dj+(3}lqrey)YLG&qJqf6LS!lx zrKRW5XtFqZ)caQ-{%Zh$*?f!SAC<7Vb{xUwAK++j#}FM&dwxFtesZ$2wVXZsDjH4r z{}j_`!Z};Ei638mha2l(W{g%#RDC_lxHy`cEF>o8vVMIrX7jCYr8rlRfBnSq<8{>3 zn8U(~B zs^e{h3*gZmFkC#%W^Yb^cM<%qa^E8O|B6B}fUA2lNdmjw$EC6I&{WSBq3-Hx`i({a z{4^SZVq-nhp}@5#uyo%n=BnFW8e3}$<%Nx3xHMMo>FV8>mNsNSP;9KnU4R1DE`U;g z31w#?=C%M-W9)>6*pZ1~=>}yWl$47^t0g9n2c`TKm#3FMs12!9{$yus(dm`|(0%$e z4LTizW;5g7%%*LAJgTq7)YUaHbLLnS3OP2Di3XjHo^$62f9*B?78Xm!FOGfVeLz>2 zoUgu|NUI`**3cH_#F%LB6u5XnLAM!t+Xd=-2C$ED05X>}?^^^D5@umAWTDe7!P(P8 zmQC%HkHmU8H08aha?c>DL* z2MUF29RNT)awHYKK9#X!l~~KmF+@dSegAzTj=V>9UWXvPR5j!glgqV+H&7xVdh8V=bysER|NnhNg_Z06w%SY zqq6dId?F%Hmz6R3;6XYL9AIYF2A8$WUAM35(gg82Ia z2gg^*DDG4aop0)y#>pCo%eo`RfVw&}?T)91jz9WBLQsnM`9O8s-DkdSU_NzqW|wtG zi~*7)a=LaRgHC~Ft3azH2T?$j;EKYJmM(!or@+aJ6Obe~y1--1dDzL_-;dGyJcceg zPG1p86c8i{ho1~%mz+!83FPkYcT00b8F2l&jeTYF@RtSQ7bsv4kYV?gG2Uh)P!`1A zvUyy;ZgWd>#B_l>C=_sb-&mds+RaI;1QNuB2pGG5#tXU@>~{C`Mw|fvDwT}gzn?&Y zIuC&3rY&s$^$o1nLASL=qyYeOxx|iNP6lA-AFknWc=icz#2Rp$JE?pA{c^Q8stY_0o*3Zm1iZ}?1H7Gpw|QcKw-fL-PYm#O0^a63Z@_;50uaTI0op2m00000 LNkvXXu0mjfm!QDZ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-tuvalu.png b/eugtk/examples/resources/flags/flags-tuvalu.png new file mode 100644 index 0000000000000000000000000000000000000000..54379041f8c372473aedc35d4f4ad948fb80730b GIT binary patch literal 2562 zcmV+d3jOtoP) z`;Q)?YWqF_JZDeg`*9PQzF<$Ade26Ov-}fo@%3G{R4i49S4`lW zv}Xtj^z5{=kU&qqeLI>ZWjSb{UW|I&DDKF~z%}Xtw3YQtjmuzKTt*j!)p3mV+<{VN zXeLtt?9I&O>zoUuELp<1++&o*ucc=H5&Sp*mC?fjIdkv@mT&rsO&{hUiY*_b>mic~ z%zrwPB?F-Hg#;QLRrKHY7V5Dh0Ql(O8D2{Kj4GX>O*>r$Cs`d4n$M97W_%s zwaJfj4Utrs`XReEu}Wv)sig;rEz#hXk&30Vn!J(Ixw35!PAUZ(mPGMmdMsffUadL{ z3-Ka5HJZ5GFS#`56*Q9`Bs4o6_1F=VX={0G&Msyx+V?*T9>5^F(qMIGeDAFYNQ`pd zjfc!E^$EBhhrh{V$WIs9uxJ4jOHT9KvSf7okKmuOoDo9CbajolKjNFjtW8KnM!{Dyl_ z$?GwTj+7eiWS~nnXX;u%b0~y?ueA_rTpfAyt!e)>{BV-exJ0bgI=oiS=hE=u z-1u_*OP-d{pkAny3QUD1l*T2ZKk*CRi()zCKa_+wkKXh>U{T^zb`jtpGhr50_^1lG zWDG_?;)L!o0L&<UL$TI7HUV?z1$@LZmo7J=BHr+nc$3MW2~<6R-tZ`;h6 zk1vv&U(v!)Zhi$3Pi*Db=~9%z0R$g<2j4aERBYP8=+upzUO%1*V?yl;_C|OsFYtW7 zIjCfM0EW69WtwlIEe{mxBgk(U)*)Lq0z5TNq^+OACtGLI*T;?euaA*8ayq($U(sjl zDpJB8V&vStHx2$8a`P(~HGLZiNtqao7J9`_B{Vx7MQ;!4V&<|fK*vXGC*i4ax|R5; zHv6*q!VY$puSRF_X65RB(Grv2GJFR=!%HEX$@C@I|AA6lo{otW`Qn{`?9>)8lb{_&!QDu4DMd)1>Y?ft^PM z03=Bwb=L_7Pe|p9?+bA7^&%)e8UHP>Q@!gDe|T-B-L|ix(j3s?xnq0nXd#p74tz;o zWDNRar}5gkkyl*?Gd^xF#pN}(ytr#9F0UafHjUV22dJrS#C_T$gyv-6IJj$)Vn-kd zBH^x?cquP7moLgV->qkX+YLuqJv01P;OBS_wY(aG=!(wl!>;mG%`Zg$U(qP4*;T%Z z>Z?`3EUHK=OQOQm5BMFQ1=>O{Wf_7X+WJP(8I$OQ!Rm%wFjH;rV;k$y1gI5N4AXo9 zK!4|->F0E|LwaE@S@cz%v-KSWBSxzW>k9XBs&+iSs`Iw79(^3Hw|Me^=T7=NpCnA3 z#hQXctI*T_}Nr_dGv$H%A5jme+o{y8f)~45^2>_@t1rqL- z$z@X@W=YxVJPCojU61mpcS;ip&c})L*iTwn5*PG$H=Ap)y4l)2dJ8<#dkbOeEC9Tf z#mw+sfkH61I{*9X7(Tl^&(_~ovZ+PzH=@T9;3Ti5&=5{qSrU>YBaR0UL;0*GuuA_55*;(^jnTfuD6X1cRz@OU<6>Gb2gq1<#ze#F$8!ki}6twHIrE-1!hsj z!T~Y(JLYoP*z`4tzvI6Nay~_A;~+%jloEO{F7>x~IA|H-b_5wB0unVA zFADYd@_3*1NLNdr!RpFHpH1w!w2Uhze*m<`0i4o}za{_OUIyJ1l|1VokB_PV0Ie~Y z?WG&gS-hJTD2OZ{@F*!oY3M91zfI^!scQ?}o&#zvz1go_XzTCSF0us=AW1Tg)jV<2 z;Gtust}S%?761rxK0|KZXj}Wnx}Q}w^S1f!5d>73{K&d81GxE@Tn5qgw)yV%9MIkP Y527us_#)3i_y7O^07*qoM6N<$f|%LU?EnA( literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-uganda.png b/eugtk/examples/resources/flags/flags-uganda.png new file mode 100644 index 0000000000000000000000000000000000000000..5f041c2ba7e2476a5b9d6e83165aa3b6a763e05d GIT binary patch literal 847 zcmV-V1F-ywP)U6WBYTuV&x=9W?2ddtUq?6gn>u-6@e#0R zbHm#^n6DK@L6U&_Yu8a(S@~CgZ|@-XY;GQCd<0Of4_2ouUxy|_aJU>e%p78IX%R$) z=dji30@eC>ph4y_N$Hgv1$8c$!~EPlELIB=$pkicHgQ4E;a+Q3;h5#AqO-}DKW2+Q z$-rG5e=6we>_Rvk#>UPDLK7j}bXrj#ox_LdJQ`oV24f8GR2{E4uyNS}tDja2YDG~n z8Jv@fc6cUxiL7bHl$K1M3y2v(D%Zmz}dw}(VHYm6dVZ>=|ovAOQaKNhZ^-g?IY4D--07Sk|c=>)33&D zB4Uh@-|wenB1u~tTh#KPg`PZqLh)Ffl8Gew{eEJM@qBnqT8%9TZu? z+WHz|u^2Q>&iX!`bCt7!lL002ovPDHLkV1gQeYaajr literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-ukraine.png b/eugtk/examples/resources/flags/flags-ukraine.png new file mode 100644 index 0000000000000000000000000000000000000000..2303a0938fb4b9794f552f93e04065896c387cf0 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*)10`FEDRmdchdQ_=RCD zLsdf-L1P+nfHmzkGcoSayYs+V7sKKq@G6j0G*PZ!6K zjK;Uu9eEE2@Eo}CH1h+f}w`Hsoz1|1>o_AtX(aB$Xw?8&a`2SD+@toyi z7epMmGq@J8ny_AAn#GjC=*zgJVHrb|!{=Fg7Iur%Cl&wZ)@Z=0D(w&Nx~=OzB;5JO hghhWagYE)L#^|?f;Ya4LH3vG6!PC{xWt~$(6979oUFZM+ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-united_kingdom.png b/eugtk/examples/resources/flags/flags-united_kingdom.png new file mode 100644 index 0000000000000000000000000000000000000000..f9439642a26463ea1d666e33f4718c5ecb2aca7a GIT binary patch literal 2870 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 U;=@5dEdT%j07*qoM6N<$f_7(-X8-^I literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-united_states.png b/eugtk/examples/resources/flags/flags-united_states.png new file mode 100644 index 0000000000000000000000000000000000000000..cfa82c11112e9109bf8a06fdf9dc7ad07d8fe64a GIT binary patch literal 1921 zcmV-{2Y&d8P)N$!1Bin_WneY=E#99H0^m5F|-K zix?1M4TP`SNy(0=Blbg5ngR5P=khG!PO($agl` zY&N@_?7g>ttX^bBWQG}f)57!LnK|d(_jm3&@B7;$;4Rj;!ORT%c{JF3qkrbQ5CPH$ zJ1H&7L6SrO9EmoTEyyDw-U2|J)kIlQ4sNGiUpRNhcaHp|?)~AkrJ<#|7EA9Ru`*`FUe_;GVJiI4{e~ z?5W>FRbvOrB#V^H%OTPm{jZ6+9t6C_n$=spZ{kx;mok;79tQ{Bi{ zbJ7PpsXX7Lk4>_K-Dbt-4_-CKPo|Aw(<9T2QFskxh$Rh>mvuW^*Dqi~;R^&q5!_BY zd$uj-z9pNfsc%D;M0UQsgdM*>$Q$qe1AtebEMj2F0OtJkR{%_#G?Gng<}smg1EFv) z0A^P*iQ`8Zq3@aqUll<|q79QtA|*M2FU~gLNVL(>)x%w*(>YaDPn^Y!&mSbi<0c&G zBM=M|2!=^Zbsz`=HT7*c5^cz`NJ_Gu)8}F_eEuM1MY(K$W|7fazYzg%v9@s51QySk zM1JWO6h&p&5Er{&DJH*k3qF4kTbzZzzVR53ZulL?zo-LX_bbJmIp4_h+x`r|!v)#Q zoiUzSOJ74(H8MPIcK-4aW|qCi58UxQm*p{1=T(sbPE}pvo%hR86ct$#X=(4`y^kvJ z`Gd%kNH7%P?e~w-)Y^qCi9{8ZcmMVo?VYiEFG(U5l^0PI6;;)~j1gepfmn?0<_2ny z95Phs)eye!14erX^F-+kO4seuYry6;MXcWV2QDJb*QA5U%tQH&n>=BH%67Qj!zM&GNG6!;>hANSGMeyM6$9es&k9l+75dgNVolmMek;0YR0m#krvT5}^CeMHA zf1(IVILAE=V7FNb_C)yP*jZ{XwPUwg=?sLZJl{xVO%qnLiEwX}&py9ERZTO|s7h2( zsjh3`;L$4DI=V@Sw-D%#@JV?U7aDxnZB}~wqIjbbCiVplmiojRQw25e1Qb+gFfzhlh&Fi(F`EXWP>YdAxW!Rkh8WscvN9tO@Mi zSVD`hi({v18R2pBrya2v{TUhHY;6l4AN@B`MMV?^np*voe_l&_XE&lK5DdjmMpK&~ zQ4~;Bjs1tu(CUk|M^O|wSJ%RapPoilHAGRMxjnX-K7Wvb1>a}V@_a*uUX3eizzC0< zrStPx_v#*cLcOFUC$PHgem4H*0~%U7ktLDm9-G5Ee<|n0>6j&cXnH1tT#0Ob^8f(e z^nsKW<+673AN3m0pZ^P7VT3GZ6QeRx^@`r!8DzrPp?dF+Dk|xNQy7$T`CVXmnhQtL z(n#C-WHD)NEo~TCCG(pD@9=P>;=CRsdt3&Gj-TU)sR^tfnPQ~Qt0Dsw7fxaE>`7!7 zy@;x6cy4pDV>xfD4Ul<;f(Q2 zS@1HNrZLRp;@8jrh^&V;&~xr0jTPm_sr(jnD-6)q(G5U+oEc|Q0v8*7`ow`L0|-a@ z@CRbo!I>0W)85(rjpO(@GmbH$dp?4BXUL;8q(nIsu~*PA*z=Q=foaZP4fh zj7CmhxxnZg4CPiAFggLFk^SYTjn2VPZgl~p6EK>aegpmkM#tF(q&SN^00000NkvXX Hu0mjfm2ixp literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-united_states_virgin_islands.png b/eugtk/examples/resources/flags/flags-united_states_virgin_islands.png new file mode 100644 index 0000000000000000000000000000000000000000..6131497a78ded715b56fefb9d7012c9e4db6eb3f GIT binary patch literal 3415 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 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-uruguay.png b/eugtk/examples/resources/flags/flags-uruguay.png new file mode 100644 index 0000000000000000000000000000000000000000..af0b7ed709007b419646dca673e0833804dc5b26 GIT binary patch literal 1287 zcmV+i1^D`jP)110j04JI7l#Z7@u9!{M*rXUBU70T}Q#(%J69SyaKky&KuN=jh+A zy&sIyaK-mngiaMn1L*Q}V6|GAZOx|2mCo58wo~)!7f5P1>cbX#T5nQWZbDHM06N-l z;4CP|WHODabG5afje9Oky^BX6X$uq-mhkyUn`mkJk*5}KLkZV&?YGY$)ub7KH$u;uf~|4E=c3O2L1QjIC^jmRn_Z|htA^lhd>K6$CkB{nnq6<*`{F|Gk$NcbuDY6OY2E7Vva-aHa7$&n{hsro~yjau31gw=tX384O1# zaL5>>KDxXHa4@zbMr#n*|6Hk>5DO(xiY>;HO`7{SaY7Cu&7Kg zAOD)9E#U3BN!zb)U@>&?U{D}QP+F*PKcHc^Neo2$knU`OcRk#i!kC&}Pe`q=%%n_5gRw}N?P2JWumsGVCvLA4#WhU_{lB0 z?%ota2ywXXV-XDagb+e#nkE`fADw9Vf1YtahLRBo_^{h^r}B9`aV8bO|B;mcDJs?O zI-k-zK;pUjlnx-}TVN&ty#?rv6d6`i`V5$v1N0W4Hz^;0q5hOdZwd1xX2jJ9Es!9p;oX4&qWme+p%BS)v%{6iq|6-a3b0Q zW8)iK09+75r>-HFP9e-W;$ao}%mAXQf{4PA&kW$O7HX#dU!#g9TT}(pSI*;3-oVrM zYu>zrUr){o<_Cu2I^Zk2a^DH+o-m+l8p?|`{% zK72vNc975`m|FP^%XM)q8o{%|r+wbi-Vk;`kYHoyF3nI&P{KB+v%&rXT-ObB0RF$L zHW?WJwE#6T0BQkhWB}9x)W`s+1*nk$Pzz9_etkYm?LZ2 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-vanuatu.png b/eugtk/examples/resources/flags/flags-vanuatu.png new file mode 100644 index 0000000000000000000000000000000000000000..df90beff7d183b0d1ff04bfe72e2df9721b76273 GIT binary patch literal 1790 zcmV2ro-d9btUcckF055nj(a35swbOcT~_ zfk#)uAIJSC2k6nvwL8hxqQd842SXcnG4p$+!+;!^ISDikzA6Qe7s^dHo7~4aY}S*j zMG>uN;r2J=PyjJuI6OZa`Z#6dk)u%j0=)Ghh{h4ZP*iR;l9_I#;!xDEIUH)79t15q z+?NlJ-34(m^5j>gFlRCB`Nn@if@MUFJ0HQk z6>zZ3ZbMuiq|4(U@UN;}#X;@RJK^W4vIaJOEWiE*S(1=J7r=~(l8mqS%irHkH=EqYC^Oyk z)uM=sKp_>h2h5&gqjuU{M_h%gh!x$sZ+qL}r?-|5^s~mczR{{Wf+* z<#r>5X+{dR2oh2)2q?VO#&feBl>KS4d3OV<3S%y_;7nHe`LLHurdDyXx@FWDRw$SP z#dknV}_&Du=el;`+hEn0ud; z6wQb{3mbR3x#^*rR&SWp1D=`%cisS+Dy8(BTj7zFQeykyP*j|%jcyST7Q$C<8f6t; zR}V2^xK#`|R})jOGerJqtGM(+U8KaT;^e1sqUy6ap{f3BS}VDI5ZhNFgiDs%62y}; z5mELtU)!0bNe@_D=wRA-gVd`}Q16CS#SRi;HS*_G1F+%QXeN!c(r(u~*Iz^JhvSwX8^%NI(+;KHujdJxOKsPz&ivDzCm*j}UP8L<7U3keMb& z@A8TW_;evc69T^8@8J`dhlTe$m^`-zvvJ0&t`qdmP#KYD0bt)xo_0SVSO_e9O|CE_ zE(97pFz&%>UM!Ac@46WNIBue;uz7a_Rtv<%DExNRc{6H3s01ki?{0L!EBrTvWI62d!s>V6$(Nv_GQco94kl)Uvs>sq z4l(}K2o!8XWXq>ev=n|k6kwQWha0k?e`4r7?I5&^fM8o<`+k;N<{y6Qm2sZgwG*IiLEly)g-q#z zfYx|BOy~m_C56qg&O%cuY}4VIOc?G2J#zN$I}&mhP!$-O24j0ev^C5wbuM(ykB1wx gA@%J2BUD@X2Mnz&OX{(iJ^%m!07*qoM6N<$f|K7jy#N3J literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-vatican_city.png b/eugtk/examples/resources/flags/flags-vatican_city.png new file mode 100644 index 0000000000000000000000000000000000000000..a5f7587b3319734c553fad86e77bcfc58032cb20 GIT binary patch literal 1045 zcmV+w1nT>VP)0>z$=H%HXxJj+ zG7<{LCrva#V`Btfd{7Z)!V+VOW>1=#7=jWB;13ef=_1MaF&icNFyk0F$)yy5ljB{dgKYzeEpZm%8-jkfGQ^TmNHnwwMermN>{RCL`MfIz_;QtLRfNTNT zXaQsk$VLkwTR=8i0NDbv(E`ZaJe$5tHhov7g4_TTp)*W`&d5}d6F^ZEMlXEG>>nBC z=JQ+}IZZyFm!U$rj7>*BJ<0ng-=Ms(f~x9JE6OS43ha6EIpHqCCLsLl_k4S0l-CYE z#>UnyY-p(G;kH&bdp*?I>S$;=J)uh@m}}j<^VZ9BZQIGK$KDm0xcshNoG2Ww8ETAYUGI^CUpsQ^i zw`Q_<+;I_VVm^X_K!Eo4b|R4oEgmmTEnO7K8~80|MP2%twT1;8&R&|`+gON3a5QgX z&kGkssEL^XlgUIN5MXR<48PwGKrWYMaJQR8D#M}iNos1W09^eth_C-848|%EYT}N; z%F0Uoem})xkxXid@zZ`9-3qGL&)KsdlT0R26op6j9TE2MAn+78_4b=6ne!xQy~sBP?I^NtQmz~a&r?+qSiquoi$Qptn$Mp0Vg z0_^JDPbATU68?>U`8^6(((KHwjo zKYsi^{F?r6NDa{8^U2&E&~Amb09pXq0q141Gg)KrULQCtmu#|RN zy1Sj(of&UrBQdC$Sthi7?&kF7{oZ_kzWHZF{G{Jx0wdk*!hz-@4z|{#8@JQW?MM0R zfoVebRgp+q1vY9?^2;f+!p!sK=mR$m8=^nhbxfG2U z929Zp1!M+PiRvkKSxpbA06sfn@X7ZQ8=bIWj*1pH`K9IxnnPx`>LN5?@?EDv_0pTJ znmdwIHT&9S>WdAoCS|lS1<8}3=W+%g@AgpOGg-GormT4Ut$|brcs&wlLQv%rZ0VTG z@kAk`VVIV4k^Z3=QI~`E0fR-!1ewbC85|10m}XL$XE47Y!L}c#5t#cBkJRLH;(|u^ zh@Y?9-Xc19hP)gH9(nu}4}UHJms8Ms-sHn(iQ+7S)BSD+M>LAFReWv@!yz+bN_6z< z7~^a#rk23EIdQrMBqH%1dOJQ~XAmUGpwJZ5S4QZF=&Y_!Aj`@>>D_Upsu7Btp|d(| z119%7LJa2%RxLDX+NPjOCL7A&*EWUO)ppvoo>Tx2&jV#t5dXnJcu=D-KS{6^44;pH zTgB@Ytawbd(`#C|p`RBol(-U>$m(&Td$VyzRVsZ+99ar0SH|q}m{!C@-wX+6eKny2 zu;smWZDYlMI(Iur`%KI7C|rvr0dQx?JhQxl%}>{`wy~UN-#8AyN3YyVc}XT7m&~Vo zx`?a#-=0kuX%ArjJq0YduL#31+4OEZdyn+-`i43Hg6D=)_jx@Edyn)HS9P{NUymdS z4!4FmaO_fA{iQX4!rTm2FDqxoqEdDr4k1f|k!X_TFST&${4m*>4gi+F+(KPd4kOVd zvLvV~_44R~08{-QT2BvgWhi~)SEgjeYv~ZKtIDRkFUJ1ner8ttcymW5x^5C4RO#xA z5{>Jqnt`erMB_SLeNo0#oj{?Rj_zyt^DQ4-hCa9~*CY+`aET00UMQ*mf&_KiV z92%bZ7Q-+J6uAk7NBE$e4cQIg55S|5?ogw=Mf?|{lcCPD~ad}ar{{oD#uv!+2aWu`%5e-RoKn({oTYgR>W}S)vOTPJvZR%UIJ` zP9kZty{U^`hkC7&CN`$?*Ax$u5LU^ikc43K`|b2xis8?5(Ru$##M>^5LGlL6Rmz-}f3u-ky$Oa@@L b0lWDF#3Y(Hw;oe>00000NkvXXu0mjfpb|?Y literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-vietnam.png b/eugtk/examples/resources/flags/flags-vietnam.png new file mode 100644 index 0000000000000000000000000000000000000000..e624ad313f59dd34eb581dce1f091430b8aeeae6 GIT binary patch literal 812 zcmV+{1JnG8P)nfvkLsfYg~Akp#jtas0j_A7C=pC0OiZ2MH|whO(}ua0ClYnb*)Y* zfz|+R#e}wEQc6IC>c!G?8&byZTw6ay5*=g_a5wZRrvae>X5Z_eAu&K&a3E*8tG}GF zAuTu*QfLfNS9?di-@PE9F`!S#Q%wWkb^&3=MeJn*;D(puV;CQ#eOHv`;?fL4=3`ePM*y!EIylJBcSpSNl}u0Krs)_K6^DPSB<;e10! z{Y3V&SpY!&M8^4s4&!jj*LHnh1Dq=X7uzY6_v7%K2f}#-JcmPhKaPv-6r3ynM!pTl z@=Q?4T1bDcKzjDLEzbHC!S&l2H1d+q%DOP!1sZt?#Z4WxTx{&RwOkCvO`U1y0mcz< zm-uS~somj=T$|GFG-_W}#)@tUEDzw-(RYS%%1%mP2576JfAEY`c2WW{K%93VXRVRT z%UKKJd@$bzff%3;7|~iTHgJI)RL5@uIS~0b&v*auD7||E<0uLMFuz5S`t%z@qIIuM z^^3+_8}kSd=Nu@@-S9V$6%^L>PUiu@IEtdMuERW5I`@=i3*sF6X~5iob|`x`hw@$m zmpe%~rQVFrDG9jTNus=$fM;{}>arvN158+FB8ppSR1Y*@Sk~bI)dLO1tu(ANF_1F? zrUpc2T{QC&3a`>=o{oO#**q0*>*OUwW?hB~8E1l=0C*GX_oIzrFpU5|gtP2C5dIqs q4G0aO7C=pC0JQ*WLIbD;Q1ch=YRo#YU0vk>0000axcH;^G&;u=vBoS#-wo>-L1P+nfHmzkGcoSayYs+V7sKKq@G6axd(Do+>3 zkc`H+Gh)3(5+&N!&yBoOn#yzcs%h|Lkwx(We;YZtw+J(zocee!s_9 z@02x<&kO4veX{MV&v?zaw?|ajZ1vk`*by4i(Q;>3Rc)_r!kfj4BbNdU1 zv>i1wfB4BdetJIZnyNhSq#f7OGuzg(O1!f9D7`&EDSQIcKiBL@{PQQgc)Q)^@ZFf` zw5Winjcm1_HfQ#xKQHTXDLVPNDAF@(Vaz<9J?yV$@|Q2#TkF4OpP=fczA5rQ7VG_d zV7OU*mgD7#Ma3sp+;X!iQr{aHJbT-We*%Jyrzbm}`@H;!_3l9ZSZ0T~_#Po%W!BG( z9(Uvu)~#eMk=1>7;;m3W(F|-I_@d7_wRl^JNt%9 zR~z>%ymE;rdOahfRRwW}E; z-E6A`YhP(I1SK-wyjZqm(V^6@+rBDqkoqIe^yseb3SIF720_(Ko=)=f6V$GBnEgtO z+?%VfAh)yk)-AS%kQk4$^S+y+W(5hUsdctWU1)RH{l0x`Lq)pztDj{GU!~5x+tszj ztYi7ENo$JLgN5vB6~(e#s?BpU+iGmq|M+ssHBK@nPm-tk=jrQ>SKPch%M@5Y*InCT z9;Pr|WTH$>o8j_LwFv^6=g%MN4u5%e(_^<6 PG|u4Z>gTe~DWM4fMXg%` literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-western_sahara.png b/eugtk/examples/resources/flags/flags-western_sahara.png new file mode 100644 index 0000000000000000000000000000000000000000..7f4f6ce8dc4fbd4402ed45ebd0c87b2246b16a95 GIT binary patch literal 986 zcmV<0110>4P)ER%j!Ts4!4xy3MxJhfJbeJ7+ue zy5kQHY-j&JJkRsK?>X-|<1k3f;X_{w9AWOF2dDv#3Kk*?{jU!Pfnx%Nh(iDSmjl3Y zK|(~K|MSFt;G_T{qWCKSfPKJeK=*&O2w}zm0Cods(S8Uq0|2N7&ZF%R{uuy(6R49@ zn4-w?wF9^yw>ZU+?P)7;QAtCJpvX@pa9L^7EJv}IO~6&apuQF%Bs7>CfOjqz(Qp_^ zl2ZE6z5e-Fm=HNmC;83I=+e>@_fGWoGUD}OvRcV|nD254GY=|U&xSo72CA!(LLpi8V?G}rYHL||;|AH4m5lfFBr72) zRJov!w6)RibP^2)31#CO>_`?{@Rf;o$q%uWHJXh3b2n??XdG$H(K=Eox}M;&uaIv{)$W?#5)bsx2oj zss@m`Y86X6J2B?w&iH$JK><30f#91r07$_gX?b}>0s#y;IciFgjcNhRD=lSdM+ZiW zC1#DzWWrogL7=k}X>t-N8l|MKkGxBl`1b0RT2d5|)JEtR^UBI7^m;L5XUDA_^Z9sd zx3l>6Z7hclq0h(wATm5GWELbn1I%_ih3)OK%mbKhHWuH#%ix(a1iHGW&x=|DNzH() z@^T7VThW`%ihF0vRyg4RvevDm;PGShnVD*9`mZDuz{@3YVjqN*KLgD=j7l4Pg>Z5& zgcWzrP83}PUljcud99cS1pz!?2B-GGq*h)9O(AP6J4)cZ3nE&288}5;OHY@>IgOf! zH~~Ca0d+ees!{Xsk0sz)30HPNRLlR15hH*{tKr%0ApigX07*qo IM6N<$f|>`fqW}N^ literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-yemen.png b/eugtk/examples/resources/flags/flags-yemen.png new file mode 100644 index 0000000000000000000000000000000000000000..8358e3c05aff231e676281ac07ef12229debdf32 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBM!3HFm*-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`u>r;B4q zM&sM-j)I3B1XwoO8gq1ha8L5emZ*y1cD(-Q*`EFX&mEPMU0~Y4cR|X5J%e`v^A@%X zj8V)l7}heDG?bNXH?P=?Byf$v$|0KpqW;{OFKqe90!RkjVt-J|9w=$g0`d=or>mdK II;Vst0K=(Jr2qf` literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/flags/flags-zambia.png b/eugtk/examples/resources/flags/flags-zambia.png new file mode 100644 index 0000000000000000000000000000000000000000..8931a4fe2759c3cd21914c75aec6e0a3a0bd4ca9 GIT binary patch literal 650 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 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/geany_syntax/README.html b/eugtk/examples/resources/geany_syntax/README.html new file mode 100644 index 0000000..8f974ee --- /dev/null +++ b/eugtk/examples/resources/geany_syntax/README.html @@ -0,0 +1,41 @@ + + +Eu Syntax files + + + + +
    +

    Euphoria Syntax for Geany

    +
    + +Geany + +

    +These files allow you to do syntax highlighting for the Euphoria programming language. +

    + +
    To Install:
    +

    +For Geany I have included Kenneth Rhodes' gneui.ex program which allows Geany to jump to the +location of an error. To use it, just set your Geany Build Command in the Execute box to:
    +eui gneui.ex ./%f
    +and move gneui.ex to your working directory. +

    + +In the ~/demos/resources folder you will find two config files to trick Geany, Pluma, etc. +into thinking your Euphoria files are Lua source code, thus giving you syntax highlighting: +
    +Copy filetype_extensions.conf into ~/.config/geany/
    +Copy filetypes.lua into ~/.config/geany/filedefs
    +
    + +

    + + + + + + + + diff --git a/eugtk/examples/resources/geany_syntax/compileflag.jpg b/eugtk/examples/resources/geany_syntax/compileflag.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e60b4f586d7ce5400901b5ac29c636771a5a4210 GIT binary patch literal 33210 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 literal 0 HcmV?d00001 diff --git a/eugtk/examples/resources/geany_syntax/filetype_extensions.conf b/eugtk/examples/resources/geany_syntax/filetype_extensions.conf new file mode 100644 index 0000000..216112d --- /dev/null +++ b/eugtk/examples/resources/geany_syntax/filetype_extensions.conf @@ -0,0 +1,69 @@ +# Filetype extension configuration file for Geany +# Insert as many items as you want, seperate them with a ";". +# See Geany's main documentation for details. + +## Copy this file into ~/.config/geany/ + +[Extensions] +Abc=*.abc;*.abp; +ActionScript=*.as; +Ada=*.adb;*.ads; +ASM=*.asm; +CAML=*.ml;*.mli; +C=*.c;*.h; +C++=*.cpp;*.cxx;*.c++;*.cc;*.h;*.hpp;*.hxx;*.h++;*.hh;*.C;*.H; +C#=*.cs; +CMake=CMakeLists.txt;*.cmake;*.ctest; +COBOL=*.cob;*.cpy;*.cbl;*.cobol; +Conf=*.conf;*.ini;config;*rc;*.cfg;*.desktop;control; +CSS=*.css; +Cython=*.pyx;*.pxd;*.pxi; +D=*.d;*.di; +Diff=*.diff;*.patch;*.rej;*.debdiff;*.dpatch; +Docbook=*.docbook; +Erlang=*.erl; +F77=*.f;*.for;*.ftn;*.f77; +Ferite=*.fe; +Forth=*.fs;*.fth; +Fortran=*.f90;*.f95;*.f03; +FreeBasic=*.bas;*.bi; +Genie=*.gs; +GLSL=*.glsl;*.frag;*.vert; +Haskell=*.hs;*.lhs; +Haxe=*.hx; +HTML=*.htm;*.html;*.shtml;*.hta;*.htd;*.htt;*.cfm; +Java=*.java;*.jsp; +Javascript=*.js; +LaTeX=*.tex;*.sty;*.idx;*.ltx;*.latex; +Lisp=*.lisp; +Lua=*.e;*.eu;*.exu;*.exw;*.ex; +Make=*.mak;*.mk;GNUmakefile;makefile;Makefile;makefile.*;Makefile.*; +Markdown=*.mdml;*.markdown;*.md;*.mkd; +Matlab/Octave=*.m; +NSIS=*.nsi;*.nsh; +Pascal=*.pas;*.pp;*.inc;*.dpr;*.dpk; +Perl=*.pl;*.perl;*.pm;*.agi;*.pod; +PHP=*.php;*.php3;*.php4;*.php5;*.phtml; +Po=*.po;*.pot; +Python=*.py;*.pyw; +reStructuredText=*.rest;*.reST;*.rst; +R=*.R;*.r; +Ruby=*.rb;*.rhtml;*.ruby; +Scala=*.scl; +Sh=*.sh;configure;configure.in;configure.in.in;configure.ac;*.ksh;*.zsh;*.ash;*.bash;*.m4; +SQL=*.sql; +Tcl=*.tcl;*.tk;*.wish; +Txt2tags=*.t2t; +Vala=*.vala;*.vapi; +Verilog=*.v; +VHDL=*.vhd;*.vhdl; +XML=*.xml;*.sgml;*.xsl;*.xslt;*.xsd;*.xhtml; +YAML=*.yaml;*.yml; +None=*; + +# Note: restarting is required after editing groups +[Groups] +Programming= +Markup= +Misc= +None= diff --git a/eugtk/examples/resources/geany_syntax/filetypes.lua b/eugtk/examples/resources/geany_syntax/filetypes.lua new file mode 100644 index 0000000..91e84b4 --- /dev/null +++ b/eugtk/examples/resources/geany_syntax/filetypes.lua @@ -0,0 +1,97 @@ +# For complete documentation of this file, please see Geany's main documentation + +# Geany Color Syntax support for Euphoria 4.1 + +# Make backups of any file that you edit! + +# This is filetypes.lua edited to support the Euphoria Programming Language +# Make a backup copy of the stock filetypes.lua file, to make sure you never +# over write the original. + +# Copy this file into the directory: ~/.config/geany/filedefs/ + +# Edit the filetype_extensions.conf file +# located in ~/.config/geany/ directory as follows: +# substituting euphoria file extensions for those +# assigned to the language, Lua. +# Lua=*.e;*.eu;*.exu;*.exw;*.ex; + +# 0xE6E6FA = white +# 0xE5E5E5 = light grey +# 0x2FCD2F = light green +# 0xD78821 = Brown + +[styling] +# foreground;background;bold;italic +default=0x000000;0xffffff;false;false +comment=0xd00000;0xffffff;false;false +commentline=0xd00000;0xffffff;false;true +commentdoc=0xd00000;0xffffff;true;false +number=0x007f00;0xffffff;false;false +word=0x00007f;0xffffff;true;false +string=0x315139;0xFFFFFF;false;false +character=0x008000;0xffffff;false;false +literalstring=0x008020;0xffffff;false;false +preprocessor=0x007f7f;0xffffff;false;false +operator=0x301010;0xffffff;false;false +identifier=0x000000;0xffffff;false;false +stringeol=0x000000;0xe0c0e0;false;false +function_basic=0x991111;0xffffff;false;false +function_other=0x1126ED;0xffffff;true;true + +[keywords] +# all items must be in one line +keywords=and as break by case constant continue do else elsedef elsif elsifdef end entry equal export fallthru for function global goto if ifdef include label loop namespace not or override procedure public retry return routine switch then to type until while with without xor + +# Basic functions +function_basic=? abort and_bits append arctan atom c_func c_proc call call_func call_proc clear_screen close command_line compare cos date delete delete_routine find floor get_key getc getenv gets hash head include_paths insert integer length log machine_func machine_proc match mem_copy mem_set not_bits object open option_switches or_bits peek peek2s peek2u peek4s peek4u peek_string peeks pixel platform position power prepend print printf puts rand remainder remove repeat replace sequence sin splice sprintf sqrt system system_exec tail tan task_clock_start task_clock_stop task_create task_list task_schedule task_self task_status task_suspend task_yield time trace xor_bits Widget Container Button Label Adjustment Printer PrintContext PaperSize PrintSetup KeyMap StyleContext Signal FontFamily FontFace FontDescr Settings Combo TreeModel TreeSelection TreePath TreeRowReference SelectionData SourceLanguage PixBuf IconSet TreeView TreeStore ListStore Object Window Dialog AboutDialog Assistant Box Grid Revealer ListBox FlowBox Stack StackSwitcher Sidebar ActionBar HeaderBar Overlay ButtonBox Paned Layout Notebook Expander AspectFrame Image Spinner InfoBar ProgressBar LevelBar Statusbar AccelLabel CheckButton ToggleButton RadioButton LinkButton MenuButton Switch ScaleButton VolumeButton LockButton Entry EntryBuffer EntryCompletion Scale SpinButton SearchEntry SearchBar Editable TextMark TextTag TextTagTable TextView TextBuffer TreeViewColumn IconView CellRendererText CellRendererPixbuf CellRendererProgress CellRendererAccel CellRendererCombo CellRendererToggle CellRendererSpin CellRendererSpinner ComboBox ComboBoxText Menu MenuBar MenuItem RadioMenuItem CheckMenuItem SeparatorMenuItem Toolbar ToolItem ToolPalette ToolButton MenuToolButton ToggleToolButton RadioToolButton Popover PopoverMenu ColorChooser ColorButton ColorChooserWidget ColorChooserDialog FileFilter FileChooser FileChooserButton FileChooserDialog FileChooserWidget PlacesSidebar Frame Scrollbar ScrolledWindow Calendar GLArea Tooltip Viewport FontChooser FontButton FontChooserWidget FontChooserDialog Bin Range ListBoxRow FontDescription AppChooser AppChooserDialog TreeModelSort RecentChooser RecentChooserWidget RecentChooserDialog RecentChooserMenu RecentFilter DrawingArea ImageMenuItem EventBox TreeModelFilter Application ApplicationWindow Pixbuf IconTheme + +function_other=add connect create destroy disconnect Error Quit get hide hide_all idle Info key_pressed main pack Question run set show show_all timeout Warn UNIX ADD ADDRESS_LENGTH ADDR_ADDRESS ADDR_FAMILY ADDR_FLAGS ADDR_PROTOCOL ADDR_TYPE ADD_APPEND ADD_PREPEND ADD_SORT_DOWN ADD_SORT_UP ADLER32 AF_APPLETALK AF_BTH AF_INET AF_INET6 AF_UNIX AF_UNSPEC ANCHORED APPEND ASCENDING AS_IS AT_EXPANSION AUTO_CALLOUT AVERAGE_BUCKET Accessing Accessor Accumulation Adding Allocating Answer Automatic BAD_FILE BAD_RECNO BAD_SEEK BGSET BINARY_MODE BK_LEN BK_PIECES BLACK BLINKING BLOCK_CURSOR BLUE BMP_INVALID_MODE BMP_OPEN_FAILED BMP_SUCCESS BMP_UNEXPECTED_EOF BMP_UNSUPPORTED_FORMAT BRIGHT_BLUE BRIGHT_CYAN BRIGHT_GREEN BRIGHT_MAGENTA BRIGHT_RED BRIGHT_WHITE BROWN BSR_ANYCRLF BSR_UNICODE BYTES_PER_CHAR BYTES_PER_SECTOR Background BadSig: Base Basic Bitmap Bitwise Building C CASELESS CHILD CMD_SWITCHES COMBINE_SORTED COMBINE_UNSORTED CONCAT CONNECTION CONNECT_FREE CONNECT_LOCK CONNECT_TABLES CORRECT COUNT_DIRS COUNT_FILES COUNT_SIZE COUNT_TYPES CS_ASCII CS_Alphabetic CS_Alphanumeric CS_Boolean CS_Bytes CS_Consonant CS_Control CS_Digit CS_Displayable CS_FIRST CS_Graphic CS_Hexadecimal CS_Identifier CS_LAST CS_Lowercase CS_Printable CS_Punctuation CS_SpecWord CS_Uppercase CS_Vowel CS_Whitespace CYAN C_BOOL C_BYTE C_CHAR C_DOUBLE C_DWORD C_DWORDLONG C_FLOAT C_HANDLE C_HRESULT C_HWND C_INT C_LONG C_LONGLONG C_LPARAM C_POINTER C_SHORT C_SIZE_T C_UBYTE C_UCHAR C_UINT C_ULONG C_USHORT C_WORD C_WPARAM Calling Changing Client Colors Command Common Compile Configuration Console Constants Core Create Cross Cursor DATE DAY DAYS DB_BAD_NAME DB_EXISTS_ALREADY DB_FATAL_FAIL DB_LOCK_EXCLUSIVE DB_LOCK_FAIL DB_LOCK_NO DB_LOCK_READ_ONLY DB_LOCK_SHARED DB_OK DB_OPEN_FAIL DEFAULT DEGREES_TO_RADIANS DESCENDING DFA_RESTART DFA_SHORTEST DISCONNECT DISPLAY_ASCII DIVIDE DNS DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE DNS_QUERY_BYPASS_CACHE DNS_QUERY_DONT_RESET_TTL_VALUES DNS_QUERY_NO_HOSTS_FILE DNS_QUERY_NO_LOCAL_NAME DNS_QUERY_NO_NETBT DNS_QUERY_NO_RECURSION DNS_QUERY_NO_WIRE_QUERY DNS_QUERY_RESERVED DNS_QUERY_RETURN_MESSAGE DNS_QUERY_STANDARD DNS_QUERY_TREAT_AS_FQDN DNS_QUERY_USE_TCP_ONLY DNS_QUERY_WIRE_ONLY DOLLAR_ENDONLY DOS_TEXT DOTALL DUPNAMES DUP_TABLE D_ALTNAME D_ATTRIBUTES D_DAY D_HOUR D_MILLISECOND D_MINUTE D_MONTH D_NAME D_SECOND D_SIZE D_YEAR Data Database Date Directory Dynamic E EAF_APPLETALK EAF_BTH EAF_INET EAF_INET6 EAF_UNIX EAF_UNSPEC ENCODE_BASE64 ENCODE_NONE EOF EOL EOLSEP ERROR_BADCOUNT ERROR_BADMAGIC ERROR_BADNEWLINE ERROR_BADOPTION ERROR_BADPARTIAL ERROR_BADUTF8 ERROR_BADUTF8_OFFSET ERROR_CALLOUT ERROR_DFA_RECURSE ERROR_DFA_UCOND ERROR_DFA_UITEM ERROR_DFA_UMLIMIT ERROR_DFA_WSSIZE ERROR_INTERNAL ERROR_MATCHLIMIT ERROR_NOMATCH ERROR_NOMEMORY ERROR_NOSUBSTRING ERROR_NULL ERROR_NULLWSLIMIT ERROR_PARTIAL ERROR_RECURSIONLIMIT ERROR_UNKNOWN_NODE ERROR_UNKNOWN_OPCODE ERR_ACCESS ERR_ADDRINUSE ERR_ADDRNOTAVAIL ERR_AFNOSUPPORT ERR_AGAIN ERR_ALREADY ERR_CONNABORTED ERR_CONNECT_FAILED ERR_CONNREFUSED ERR_CONNRESET ERR_DESTADDRREQ ERR_FAULT ERR_HOSTUNREACH ERR_HOST_LOOKUP_FAILED ERR_INPROGRESS ERR_INTR ERR_INVAL ERR_INVALID_DATA ERR_INVALID_DATA_ENCODING ERR_INVALID_PROTOCOL ERR_IO ERR_ISCONN ERR_ISDIR ERR_LOOP ERR_MALFORMED_URL ERR_MFILE ERR_MSGSIZE ERR_NAMETOOLONG ERR_NETDOWN ERR_NETRESET ERR_NETUNREACH ERR_NFILE ERR_NOBUFS ERR_NOENT ERR_NOTCONN ERR_NOTDIR ERR_NOTINITIALISED ERR_NOTSOCK ERR_OPNOTSUPP ERR_PROTONOSUPPORT ERR_PROTOTYPE ERR_RECEIVE_FAILED ERR_ROFS ERR_SEND_FAILED ERR_SHUTDOWN ERR_SOCKTNOSUPPORT ERR_TIMEDOUT ERR_WOULDBLOCK ESOCK_DGRAM ESOCK_RAW ESOCK_RDM ESOCK_SEQPACKET ESOCK_STREAM ESOCK_TYPE_AF ESOCK_TYPE_OPTION ESOCK_TYPE_TYPE ESOCK_UNDEFINED_VALUE ESOCK_UNKNOWN_FLAG EULER_GAMMA EXTENDED EXTRA EXTRAS EXT_COUNT EXT_NAME EXT_SIZE E_ATOM E_INTEGER E_OBJECT E_SEQUENCE Environment Equality Errors EuDist Euphoria Executable External Extracting, FALSE FGSET FIFO FILETYPE_DIRECTORY FILETYPE_FILE FILETYPE_NOT_FOUND FILETYPE_UNDEFINED FILO FIRSTLINE FLETCHER32 FORM_URLENCODED FP_FORMAT FREEBSD FREE_BYTES File Finding Flags Floating GET_EOF GET_FAIL GET_LONG_ANSWER GET_NOTHING GET_SHORT_ANSWER GET_SUCCESS GRAY GREEN General Get/Post Graphics HALFPI HALFSQRT2 HALF_BLOCK_CURSOR HAS_CASE HAS_PARAMETER HEADER HELP HELP_RID HOST_ALIASES HOST_IPS HOST_OFFICIAL_NAME HOST_TYPE HOUR HOURS HSIEH30 HSIEH32 HTTP Hashing Hyperbolic I/O IDABORT IDCANCEL IDIGNORE IDNO IDOK IDRETRY IDYES INDENT INIT_FREE INIT_TABLES INSERT_FAILED INT_FORMAT INVALID_ROUTINE_ID INVLN10 INVLN2 INVSQ2PI IP Indexes Indirect Information Input Interacting Intervals Introduction KC_LBUTTON Key Keyboard LARGEMAP LARGEST_BUCKET LAST_ERROR_CODE LEAVE LINE_BREAKS LINUX LN10 LN2 LOCK_EXCLUSIVE LOCK_METHOD LOCK_SHARED Locale Localized Lock Logarithms Low MAGENTA MANDATORY MAP_ANONYMOUS MAP_FAILED MAX_ASCII MAX_LINES MB_ABORTRETRYIGNORE MB_APPLMODAL MB_DEFAULT_DESKTOP_ONLY MD5 MINF MINUTE MINUTES MIN_ASCII MISSING_END MONTH MONTHS MSG_CONFIRM MSG_CTRUNC MSG_DONTROUTE MSG_DONTWAIT MSG_EOR MSG_ERRQUEUE MSG_FIN MSG_MORE MSG_NOSIGNAL MSG_OOB MSG_PEEK MSG_PROXY MSG_RST MSG_SYN MSG_TRUNC MSG_TRYHARD MSG_WAITALL MULTILINE MULTIPART_FORM_DATA MULTIPLE MULTIPLY Machine Managing Map Marchine Match Matching Math Memory Message Microsoft Miscellaneous Multi-Tasking NESTED_ALL NESTED_ANY NESTED_BACKWARD NESTED_INDEX NETBSD NEWLINE_ANY NEWLINE_ANYCRLF NEWLINE_CR NEWLINE_CRLF NEWLINE_LF NORMAL_ORDER NOTBOL NOTEMPTY NOTEOL NO_AT_EXPANSION NO_AUTO_CAPTURE NO_CASE NO_CURSOR NO_DATABASE NO_HELP NO_HELP_ON_ERROR NO_PARAMETER NO_ROUTINE_ID NO_TABLE NO_UTF8_CHECK NO_VALIDATION NO_VALIDATION_AFTER_FIRST_EXTRA NS_C_ANY NS_C_IN NS_KT_DH NS_KT_DSA NS_KT_PRIVATE NS_KT_RSA NS_T_A NS_T_A6 NS_T_AAAA NS_T_ANY NS_T_MX NS_T_NS NS_T_PTR NULL NULLDEVICE NUMBER_OF_FREE_CLUSTERS NUM_BUCKETS NUM_ENTRIES NUM_IN_USE Notes OBJ_ATOM OBJ_INTEGER OBJ_SEQUENCE OBJ_UNASSIGNED OK ONCE OPENBSD OPTIONAL OPT_CNT OPT_IDX OPT_REV OPT_VAL OSX Opening Operating Operation Option PAGE_EXECUTE PAGE_EXECUTE_READ PAGE_EXECUTE_READWRITE PAGE_EXECUTE_WRITECOPY PAGE_NOACCESS PAGE_NONE PAGE_READ PAGE_READONLY PAGE_READWRITE PAGE_READ_EXECUTE PAGE_READ_WRITE PAGE_READ_WRITE_EXECUTE PAGE_SIZE PAGE_WRITECOPY PAGE_WRITE_COPY PAGE_WRITE_EXECUTE_COPY PARENT PARTIAL PATHSEP PATH_BASENAME PATH_DIR PATH_DRIVEID PATH_FILEEXT PATH_FILENAME PAUSE_MSG PHI PI PID PINF PISQR PRETTY_DEFAULT PUT Parsing Pipe Predefined Pretty Prime Pseudo QUARTPI RADIANS_TO_DEGREES RD_INPLACE RD_PRESORTED RD_SORT RED REVERSE_ORDER ROTATE_LEFT ROTATE_RIGHT Random Read Reading Regular Replacement Reporting Return Roundings Routines SCM_TIMESTAMP SCM_TIMESTAMPING SCM_TIMESTAMPNS SCREEN SD_BOTH SD_RECEIVE SD_SEND SECOND SECONDS SECTORS_PER_CLUSTER SELECT_IS_ERROR SELECT_IS_READABLE SELECT_IS_WRITABLE SELECT_SOCKET SEQ_NOALT SHA256 SHARED_LIB_EXT SHOW_ONLY_OPTIONS SLASH SLASHES SMALLEST_BUCKET SMALLMAP SM_RAW SM_TEXT SND_ASTERISK SND_DEFAULT SND_EXCLAMATION SND_QUESTION SND_STOP SOCKET_SOCKADDR_IN SOCKET_SOCKET SOCK_DGRAM SOCK_RAW SOCK_RDM SOCK_SEQPACKET SOCK_STREAM SOL_SOCKET SO_ACCEPTCONN SO_ATTACH_FILTER SO_BINDTODEVICE SO_BROADCAST SO_BSDCOMPAT SO_CONNDATA SO_CONNDATALEN SO_CONNOPT SO_CONNOPTLEN SO_DEBUG SO_DETACH_FILTER SO_DISCDATA SO_DISCDATALEN SO_DISCOPT SO_DISCOPTLEN SO_DOMAIN SO_DONTLINGER SO_DONTROUTE SO_ERROR SO_KEEPALIVE SO_LINGER SO_MARK SO_MAXDG SO_MAXPATHDG SO_NO_CHECK SO_OOBINLINE SO_OPENTYPE SO_PASSCRED SO_PASSSEC SO_PEERCRED SO_PEERNAME SO_PEERSEC SO_PRIORITY SO_PROTOCOL SO_RCVBUF SO_RCVBUFFORCE SO_RCVLOWAT SO_RCVTIMEO SO_REUSEADDR SO_REUSEPORT SO_RXQ_OVFL SO_SECURITY_AUTHENTICATION SO_SECURITY_ENCRYPTION_NETWORK SO_SECURITY_ENCRYPTION_TRANSPORT SO_SNDBUF SO_SNDBUFFORCE SO_SNDLOWAT SO_SNDTIMEO SO_SYNCHRONOUS_ALTERT SO_SYNCHRONOUS_NONALERT SO_TIMESTAMP SO_TIMESTAMPING SO_TIMESTAMPNS SO_TYPE SO_USELOOPBACK SQRT2 SQRT3 SQRT5 SQRTE START_COLUMN STDERR STDEV_BUCKET STDFLTR_ALPHA STDIN STDOUT STRING_OFFSETS ST_ALLNUM ST_FULLPOP ST_IGNSTR ST_SAMPLE ST_ZEROSTR SUBTRACT Safe Scientific Searching Select Send Sequence Serialization Server Setup Shutdown Sign Socket Sorting Splitting Stack Standard Statistics Style Support TEST_QUIET TEST_SHOW_ALL TEST_SHOW_FAILED_ONLY TEXT_MODE THICK_UNDERLINE_CURSOR TOTAL_BYTES TOTAL_NUMBER_OF_CLUSTERS TO_LOWER TO_SHORT TRUE TWOPI Tests Text Time Trigonometry Type Types UDP UNDERLINE_CURSOR UNGREEDY UNIX_TEXT URL URL_ENTIRE URL_HOSTNAME URL_HTTP_DOMAIN URL_HTTP_PATH URL_HTTP_QUERY URL_MAIL_ADDRESS URL_MAIL_DOMAIN URL_MAIL_QUERY URL_MAIL_USER URL_PASSWORD URL_PATH URL_PORT URL_PROTOCOL URL_QUERY_STRING URL_USER USED_BYTES UTF8 Unit Using Utilities Utility VALIDATE_ALL VC_COLOR VC_COLUMNS VC_LINES VC_MODE VC_NCOLORS VC_PAGES VC_SCRNCOLS VC_SCRNLINES VC_XPIXELS VC_YPIXELS VERSIONING Variables WEEKS WHITE WIN32 WINDOWS WRAP Warning Wildcard Windows Writing YEAR YEARS YELLOW abbreviate_path abort abs absolute_path accept add_item all_matches allocate allocate_code allocate_data allocate_pointer_array allocate_protect allocate_string allocate_string_pointer_array allocate_wstring allow_break ampm and_bits any_key append append_lines apply approx arccos arccosh arcsin arcsinh arctan arctanh ascii_string assert at atan2 atom atom_to_float32 atom_to_float64 atom_to_float80 attr_to_colors avedev average begins binary_search bind binop_ok bits_to_bytes bits_to_int bk_color boolean breakup build_commandline build_list byte_range bytes_to_bits bytes_to_int c_func c_proc calc_hash calc_primes call call_back call_func call_proc canon2win canonical canonical_path case_flagset_type ceil central_moment chance char_test chdir check_all_blocks check_break check_calls check_free_list checksum clear clear_directory clear_screen close cmd_parse color colors_to_attr columnize combine command_line compare console_colors copy copy_file cos cosh count crash crash_file crash_message crash_routine create_directory create_file cstring curdir current_dir cursor custom_sort date datetime day_abbrs day_names days_in_month days_in_year db_cache_clear db_clear_table db_close db_compress db_connect db_create db_create_table db_current db_current_table db_delete_record db_delete_table db_dump db_fatal_id db_fetch_record db_find_key db_get_errors db_get_recid db_insert db_open db_record_data db_record_key db_record_recid db_rename_table db_replace_data db_replace_recid db_select db_select_table db_set_caching db_table_list db_table_size decanonical decode defaulted_value defaultext define_c_func define_c_proc define_c_var deg2rad delete delete_file delete_routine dequote deserialize diff dir dir_size dirname disk_metrics disk_size display display_text_image driveid dump dup edges_only emovavg encode ends ensure_in_list ensure_in_range error_code error_message error_names error_no error_to_string escape exec exp extract fetch fib file_exists file_length file_number file_position file_timestamp file_type filebase fileext filename filter find find_all find_all_but find_any find_each find_from find_nested find_replace find_replace_callback find_replace_limit flags_to_string flatten float32_to_atom float64_to_atom float80_to_atom floor flush for_each format frac free free_code free_console free_pointer_array from_date from_unix gcd geomean get_bytes get_charsets get_def_lang get_dstring get_encoding_properties get_integer16 get_integer32 get_key get_lang_path get_option get_ovector_size get_pid get_position get_rand get_screen_char get_text getc getenv gets graphics_mode graphics_point harmean has has_console has_match hash head hex_text host_by_addr host_by_name http_get http_post iif info init_curdir insert insertion_sort instance int_to_bits int_to_bytes intdiv integer integer_array is_empty is_even is_even_obj is_in_list is_in_range is_inetaddr is_leap_year is_match is_win_nt join join_path key_codes keys keyvalues kill kurtosis lang_load larger_of largest last length listen load load_map locale_canonical locate_file lock_file lock_type log log10 lookup lower machine_addr machine_func machine_proc malloc map mapping match match_all match_any match_from match_replace matches max maybe_any_key median mem_copy mem_set merge message_box mid min minsize mixture mod mode money month_abbrs month_names movavg move_file my_dir nested_get nested_put new new_extra new_from_kvpairs new_from_string new_time next_prime not_bits now now_gmt number number_array object open open_dll optimize option_spec option_spec_to_string option_switches or_all or_bits pad_head pad_tail pairs parse parse_commandline parse_ip_address parse_querystring parse_url patch pathinfo pathname peek peek2s peek2u peek4s peek4u peek8s peek8u peek_end peek_longs peek_longu peek_string peek_top peek_wstring peeks pivot platform platform_locale poke poke2 poke4 poke8 poke_long poke_string poke_wstring pop position positive_int posix_names power powof2 prepend pretty_print pretty_sprint prime_list print printf process process_lines product project prompt_number prompt_string proper push put put_integer16 put_integer32 put_screen_char puts quote rad2deg ram_space rand rand_range range raw_frequency read read_bitmap read_file read_lines receive receive_from regex register_block rehash remainder remove remove_all remove_directory remove_dups remove_item remove_subseq rename_file repeat repeat_pattern replace retain_all reverse rfind rmatch rnd rnd_1 roll rotate rotate_bits round routine_id safe_address sample save_bitmap save_map save_text_image scientific_to_atom scientific_to_float scroll seek select send send_to sequence sequence_array serialize series service_by_name service_by_port set set_accumulate_summary set_charsets set_decimal_mark set_def_lang set_default_charsets set_encoding_properties set_keycodes set_lang_path set_option set_proxy_server set_rand set_test_abort set_test_verbosity set_wait_on_summary setenv shift_bits show_help shuffle shutdown sign sim_index sin sinh size skewness sleep slice small smaller_of smallest socket sort sort_columns sound splice split split_any split_limit split_path sprint sprintf sqrt stack statistics std_library_address stdev store string subtract sum sum_central_moments swap system system_exec t_alnum t_alpha t_ascii t_boolean t_bytearray t_cntrl t_consonant t_digit t_display t_graph t_identifier t_integer32 t_lower t_print t_punct t_space t_specword t_text t_upper t_vowel t_xdigit tail tan tanh task_clock_start task_clock_stop task_create task_delay task_list task_schedule task_self task_status task_suspend task_yield temp_file test_equal test_fail test_false test_not_equal test_pass test_report test_true text_color text_rows threshold time to_integer to_number to_string to_unix top transform translate transmute trim trim_head trim_tail trsprintf true_bgcolor true_fgcolor trunc type type_of uname unlock_file unregister_block unsetenv upper using valid valid_index valid_memory_protection_constant value values video_config vlookup vslice w32_name_canonical w32_names wait_key walk_dir warning warning_file weeks_day where which_bit wrap write write_file write_lines writef writefln xor_bits years_day gslist_to_sequence unpack register pack_start pack_end NonModalDialog + +[settings] +# default extension used when saving files +extension=ex + +# if only single comment char is supported like # in this file, leave comment_close blank +comment_open=-- +comment_close= +# this is an alternative way, so multiline comments are used +comment_open=/* +comment_close=*/ +# set to false if a comment character/string should start at column 0 of a line, true uses any +# indentation of the line, e.g. setting to true causes the following on pressing CTRL+d + #command_example(); +# setting to false would generate this +# command_example(); +# This setting works only for single line comments +comment_use_indent=FALSE + +# Put the location of your GTK documentation in the context_action_cmd line +# so that you can pop up docs on whatever GtkWidget you highlight in +# your Euphoria source code, then right-click and choose context action. +# You could also set up a geany keybinding for this, such as alt-i. +# You may prefer to use -new-window instead of -new-tab, +# and/or -search in order to use your default search engine; +context_action_cmd=firefox -new-tab file:///home/irv/gtk3/%s.html + +[build_settings] +# %f will be replaced by the complete filename +# %e will be replaced by the filename without extension +# (use only one of it at one time) + +[build-menu] +EX_00_LB=Run Source File with Euphoria Interpreter +EX_00_CM=\seui ~/demos/gneui %f +EX_00_WD= +FT_00_LB=Translate source to C code & Compile +FT_00_CM=euc "%e" +FT_00_WD= +FT_01_LB=Bind source code with interpreter +FT_01_CM=eubind "%e" +FT_01_WD= +FT_02_LB=Gather files into Eudist directory +FT_02_CM=eudist "%f" +FT_02_WD= +EX_01_LB=Execute Compiled or Bound Code File +EX_01_CM=\s./%e +EX_01_WD= diff --git a/eugtk/examples/resources/geany_syntax/gneui.ex b/eugtk/examples/resources/geany_syntax/gneui.ex new file mode 100644 index 0000000..decc196 --- /dev/null +++ b/eugtk/examples/resources/geany_syntax/gneui.ex @@ -0,0 +1,116 @@ +-- gneui.ex 1.0 +-- +-- 2013 2013-03-21 +-- Kenneth Rhodes +-- +-- This file wraps the Euphoria interpreter +-- together with a routine which extracts +-- ex.err file data and passes the name, +-- path, line and column to the Geany editor +-- +-- usage: Geany run_cmd = eui gneui.ex ./%f +-- Set run source code command to this as well, +-- Execute your code from Geany; upon error, +-- Geany will position the cursor at the line +-- and column of the error. + +--* Heavily modified by Irv Mullins +--* to try to handle signal 11 errors from GTK + +include std/io.e +include std/convert.e +include std/error.e +include std/filesys.e +include std/console.e +include std/sequence.e + +object file_name, command, err +integer exit_code = 0 + +sequence cl = command_line() +system("clear",0) + +if length(cl) >= 3 then + + file_name = cl[3] + command = sprintf( "eui -D DEBUG \"%s\"", {file_name} ) + printf(1, +`----------------------------------------------------------------------- +/// Running %s with gneui +------------------------------------------------------------------------ +`,{file_name}) + + -- look for old ex.err in current directory; + err = canonical_path(file_name) + err = pathname(err) & "/" & "ex.err" + + if file_exists(err) then + delete_file(err) -- remove old ex.err if it exists; + end if + + exit_code = system_exec ( command, 0 ) -- call eui with debugging; + if exit_code != 0 then -- on error + ParseErrorFile() + end if + +end if + +-------------------------- +procedure ParseErrorFile() +-------------------------- +object file_lines +object temp_line +object err_line +integer err_col = 0, i = 0 + + if not file_exists("ex.err") then + abort(exit_code) -- can't fine ex.err! + end if + + file_lines = read_lines(err) + if atom(file_lines) then -- ex.err was empty + crash("Cannot find ex.err!\n") + end if + + object x = split(file_lines[1]) + + for n = 1 to length(file_lines) do + if match("^^^ call-back from external source",file_lines[n]) = 1 then + file_lines = file_lines[1..n-1] -- get rid of non-useful part of ex.err listing; + exit + end if + end for + + -- trap & process GTK signal 11 errors; + for n = length(file_lines) to 2 by -1 do + -- start at end of ex.err, to find last (topmost) error line #; + if match("... called from /", file_lines[n]) then + i = find(':', file_lines[n]) + file_name = file_lines[n][17..i-1] + err_line = file_lines[n][i+1..$] + i = find(' ',err_line) + err_line = err_line[1..i-1] + err_line = to_number(err_line) + -- display the file and line #, then call geany to edit it; + printf(1,"\nFile:%s - LINE:%d \n",{file_name,err_line}) + system( sprintf("geany \"%s:%d\"", {file_name,err_line} )) + abort(exit_code) + end if + end for + + -- trap & process euphoria error report; + for n = 1 to length(file_lines) do + -- start at top of ex.err, to find first syntax error; + if find('^', file_lines[n]) then + i = find(':',file_lines[1]) + err_col = match("^",file_lines[n])-1 + file_name = file_lines[1][1..i-1] + err_line = to_number(file_lines[1][i+1..$]) + -- display the file and line #, then call geany to edit it; + printf(1,"\nFILE:%s - LINE:%d COL:%d\n",{file_name,err_line,err_col}) + system( sprintf("geany \"%s:%d:%d\" & ", {file_name, err_line, err_col} )) + abort(exit_code) + end if + end for + +end procedure diff --git a/eugtk/examples/resources/gedit_syntax/README.html b/eugtk/examples/resources/gedit_syntax/README.html new file mode 100644 index 0000000..7bffe3f --- /dev/null +++ b/eugtk/examples/resources/gedit_syntax/README.html @@ -0,0 +1,60 @@ + + +Eu Syntax files + + + + +
    +

    Euphoria Syntax for text editors

    +
    + +color coded syntax + +

    +These files allow you to do syntax highlighting for the Euphoria programming language. +

    + +
    To Install:
    +

    +For programs using GTK2 -- i.e. Pluma, gedit, etc.

    +sudo cp euphoria.lang /usr/share/gtksourceview-2.0/language-specs/euphoria.lang
    +sudo cp gedit_syntax.xml /usr/share/mime/packages/
    +sudo cp classic.xml /usr/share/gtksourceview-2.0/styles/
    +

    + +

    +For programs using GTK3 -- i.e. EuGTK Sourceview

    +sudo cp euphoria.lang /usr/share/gtksourceview-3.0/language-specs/euphoria.lang
    +sudo cp gedit_syntax.xml /usr/share/mime/packages/
    +sudo cp classic.xml /usr/share/gtksourceview-3.0/styles/
    +

    + +

    +Actually, it doesn't hurt to do both :) +

    + +

    +

    Optional, if you prefer these styles;
    +
    +sudo cp cobalt.xml /usr/share/gtksourceview-2.0/styles/
    +sudo cp oblivion.xml /usr/share/gtksourceview-2.0/styles/
    +
    +sudo cp cobalt.xml /usr/share/gtksourceview-3.0/styles/
    +sudo cp oblivion.xml /usr/share/gtksourceview-3.0/styles/
    +
    + +
    You may have to change permissions on the following files:
    +
    +sudo chmod 777 /usr/share/gtksourceview-2.0/language-specs/euphoria.lang
    +sudo chmod 777 /usr/share/gtksourceview-3.0/language-specs/euphoria.lang
    +
    +

    + + + + + + + + diff --git a/eugtk/examples/resources/gedit_syntax/build.xml b/eugtk/examples/resources/gedit_syntax/build.xml new file mode 100644 index 0000000..f791c79 --- /dev/null +++ b/eugtk/examples/resources/gedit_syntax/build.xml @@ -0,0 +1,106 @@ + + + + + + Joe Collins + Vale Collins + <_description>Emphasis on readability. + + + + + + + + + + + + + + + + + + + + +
      +
    1. Create a folder called "Wee"
    2. +
    3. Download + https://github.com/peberlein/WEE/raw/master/updater.ex
    4. +
    5. Run "eui updater.ex" to download/update the files for your platform.
    6. +
    7. Run "eui wee" to run the editor, or compile/bind/shroud it for convenience.
    8. +

vD&=uD7+l-HIAYSFR&gzEB~!)C!peGiujytq;I; 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