X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-transfer-encoding; bh=UAAmMB9YJP+Oxvm4ShdAMXvwmzFVdW9WC0RP/qkE6Dg=; b=Bck1vGMer+LYlTve794DM2lsWOwdHAgf4MWulXGXC1ZJXCed8DqSUrULzsznr9pPr8 afrQicISWnwQieA59McsLWlY4ei6lvBHEKjZRiW//gLjYt6XPxICo1jzJ1LS9K6tHEO5 UViwPnJbxlCdRvNhxmYYNDJ/OzJsw5h3RGvGe9b9AwjGePnbwyk5jJgFkSFE/qouk0sN tKh07coCJAiHaP+hM1A9TF0EX4R04LoNPOEcbpddG7/W0UIN1zfpqLSUgprWZ6AD2CrR L+LZgm4knWgOWrI3tCGUT6TbXCII+Z7P1Njz8P6x43CXR4xKVrXf3aL6kHPfYncGx1Pc IhlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-transfer-encoding; bh=UAAmMB9YJP+Oxvm4ShdAMXvwmzFVdW9WC0RP/qkE6Dg=; b=COFJ/fpgEcZSlVmnFb9nHQmxlMN7Cb3gWf1BuhqO+q1+skmxbJNIy8SFRrWsA3jLBr Wo/SbDbTmM3UQgmU3DN53I8X3IEHWRof7jM0GFx0gXkgcecjA4t6qkhbcECh4fUVPJSj ITLCsmcXt2SRVu+MmVGi8tNhfRiybOgr9HG5P1Y+MSCI/dKKBFjjxOw8aaXV3VtZXU5w vPvK3cT0leg1NaP9gpFKu8kAa07C/kpfIHBLkg/WW1XATirKglnYzIPc9merdsAqxzzJ c+lIrflxbnZvp0c8Yolv5VkI0x/4TJwfVJi/pn1GV1yBbnfgFDFBoi6a/jVIp/x8xo6O 7FFA== X-Gm-Message-State: AEkoousbvwE5OYALIlvMgaS0vKjqzQoX8pBhgYTspU53m6TSVlAMeyRPgu8Oi8JLXt7ODKastRP9x/R/oV3/lQ== X-Received: by 10.25.163.132 with SMTP id m126mr21450939lfe.56.1470151492289; Tue, 02 Aug 2016 08:24:52 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <193dbc32-63cb-2643-b741-d6bfc6a268e2@ecosensory.com> References: <20160723065723 DOT GC17595 AT localhost DOT localdomain> <20160723092248 DOT GF17595 AT localhost DOT localdomain> <20160724053502 DOT GM17595 AT localhost DOT localdomain> <9719FF2C-AC85-4824-89E9-447216E7FA65 AT sbcglobal DOT net> <939E39F7-B4DA-4B56-A640-C7E6E4ECF955 AT sbcglobal DOT net> <20160802122208 DOT GA12372 AT visitor2 DOT iram DOT es> <193dbc32-63cb-2643-b741-d6bfc6a268e2 AT ecosensory DOT com> From: "Evan Foss (evanfoss AT gmail DOT com) [via geda-user AT delorie DOT com]" Date: Tue, 2 Aug 2016 11:24:51 -0400 Message-ID: Subject: Re: [geda-user] Plans for gEDA/gaf To: gEDA users mailing list Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id u72FOwRQ006608 Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Tue, Aug 2, 2016 at 10:13 AM, John Griessen (john AT ecosensory DOT com) [via geda-user AT delorie DOT com] wrote: > On 08/02/2016 07:22 AM, Gabriel Paubert (paubert AT iram DOT es) [via > geda-user AT delorie DOT com] wrote: >>> >>> Why not QT4 or QT5? >> >> No C bindings for QT, unless I missed something. It's natively C++, >> which is a big no-no for some people. How about SDL? (Igor2 was talking it up to me a while ago) https://www.libsdl.org/ "SDL is written in C, works natively with C++, and there are bindings available for several other languages, including C# and Python. " >> My personal feelings are quite different, I hated C++ until C++11 >> arrived. C++11 (and later) really is a different language altogether. > > > So, the straight C GUI toolkits are limited to GTK+, XAW? > > Searching on "C bindings for QT" gives these interesting results: > > > ============http://stackoverflow.com/questions/1728509/does-qt-have-a-c-interface============= > > To use Qt, you must have a C++ compiler. But it doesn't mean that your > "application logic" can't be written in C, compiled with a C compiler and > carefully linked to the C++ part (the GUI with Qt). This application logic > can be generic, linkable into other executables (pure-C, mixed C/C++, etc.) > It all depends on what you need. > > you may shape your program as set of libraries achieving your business logic > and write them in C, then you can use a little C++ to bind what you wrote as > library with a GUI using QT. > > This is a good approach also because later you can reuse your library and > implement many other front-ends with different toolkits or languages! > > https://en.wikipedia.org/wiki/List_of_language_bindings_for_Qt_5 > Qt 5 language bindings go, Python PyQt[4], Python PyOtherSide > – only for QML, > QML QtQuick – built into Qt[5], Rust qmlrs – only for QML > > From Richard Dale: > > I used to maintain C bindings that were used by Objective-C and Qt# > bindings. But the Smoke library is much better although it isn't a C > binding, and I scrapped the QtC bindings to use smoke instead. > [https://techbase.kde.org/Languages/Smoke "The main purpose of SMOKE is > making it easier to write bindings from scripting languages to Qt and KDE - > with an emphasis on ease of use and flexibility. "] > > ============http://stackoverflow.com/questions/1728509/does-qt-have-a-c-interface============= > > ===============http://endl.ch/content/cxx2rust-pains-wrapping-c-rust-example-qt5=================== > Rust and QT seems a time pit: > "Another heavily used feature in C++ is overloading. Apparently Rust doesn’t > support functions overloading either. Yes, I know it’s intentional and no, I > strongly disagree with all philosophical reasons that try to “justify” it. > I’m developing software in C++ starting from 90’s and while I’ve seen some > rare examples of poor functions overloading use - this is still “must have” > feature for any non-trivial framework, both from convenience and learning > perspectives. > > Anyway, arguments aside - the lack of overloading means there’s no > reasonable way to use C++ methods names as Rust methods names without some > form of deduplication. Because there’s no way I’m going to maintain the list > of “intelligent” mappings for all Qt5 methods, the renaming is done > automatically by adding a number after the function name - hence > “QString::new7”, “toString2”, “arg12” etc. > > There are 5 overloads like this in Digital Clock example and 26 (!) in Image > Viewer. > > Note this is completely non-obvious for bindings user (why not “new6” or > “new8”?), require lengthy look-up in the generated bindings code for each > such case - plus can easily change from version to version if overloads are > added or removed, breaking code compilation." > > -- Home http://evanfoss.googlepages.com/ Work http://forge.abcd.harvard.edu/gf/project/epl_engineering/wiki/ -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2 mQENBFYy4RYBCAC183JomLtbdAlcKiaPDoVHq52LDmVmH75aiEc69m7YxDt54/ai VtYCAobbGVIyn3Hlz3uhF6LnPl/6Lm1VdnCfpwu3KQhCO6ds10ow2C30X4ohCqOd hCVg5C+ILmQkEffFrFODy3ji+PYTF4pADvHCWsTMv0hf0llwFOJsBCK6cl02IffE JPqy4PjM1nZ9HpzT84JBaG/4OGvTZ8SQ2yFUl265jagvygPTf88H1xpZHH1r8dB1 stjUHLmPH8AOyDgKxFchgGeDc3p/vJtgDDIXAFfDXG0NSRovLmtaQdGxe47Zf/go bXiEM7YL2WqQe5zfEA919JxkEwlDKYniOSVzABEBAAG0N0V2YW4gRm9zcyAoVGhp cyBpcyBteSBwdWJsaWMga2V5LikgPGV2YW5mb3NzQGdtYWlsLmNvbT6JATkEEwEC ACMFAlYy4RYCGwMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCIpQTcE8nN bbBaCACAm8pU5lG1ev2Fsw68Axtcl57SJrYieqX96c3YuYH9JpqMqJRnd9nDKw9X tQuvuH7tUk0VbOaDqReOYJVI/4c5wb9AaOFp6K2DUcupq6XhgXpvz3HzoPwjAdIj XuQzdRUx5+innTJrSkGuBYW/CZ2zqEx4xfLlq4rO0hoTUMR8QVp2cCrkw6BT0m86 APIw/ZnjoxM8IEzr7MxfRIg3qpzrZk28rmhx+k78Jyk61UhwcCPGIm/pjUopTwYJ 3YBdRB2cYD2aN7A1JVf5cRmSQYooHBGpH0kYvomGk97PKqypVuJ7OpG9xM58wUcC qUVt9hKlePLzP8csYjt8onqI7qIIuQENBFYy4RYBCADlH8spG3WkCx62vB5mr5Z0 SCDd/RcyA4A5y5EOj5KurQkrSWpgi9Ho1yKruMJ6blQR2qkc66KqH9pnXDm/ZI1M K/wdW3ngETxBmXoozzFMT89aEWIVR5/PFodWK1elekE9iJxACuR98Zg2QttTD3x8 A9w8VEyMLOXcDTrPFpHegMKswFBg5iuMulAdXAoGejWTI3n+qKFpabHm2Lfs6wjk 5rjucpTdeFK6UeWF1xAvNxXibuu5BlGwv53930qIXRwO/Gn2Rh5DXWxKU2fEIme/ xgQQmIsDeUoWbfybdjw/x7Q0LW4mINiLDQcGHHRQKFIxbAJCT3USPLGh5xwE9/Er ABEBAAGJAR8EGAECAAkFAlYy4RYCGwwACgkQiKUE3BPJzW0uYAf9Hf30n8tM3mR2 Zo6ESE0ivgdgjaJtAWrBUx7JzAzPjBnBOlNnu5Y9lVEqetvUPH6e3PvaHYUuaUU8 0HwxuKBW9nUprgV6uIu1DZmlcp+SxpbuCy7RDpNocRLNWWFMaYYzznmTgfnTgD4D gCq8Mf1mcfrluTkOAo+QNqbMfl1GISClopRqxVuAo59ewgMnFujwgd8w12BwWl24 CzqOs5HqcUslePj+LzcjSNgVCklYwKl+0dsb/fctMOCtHodwqm2CBJ+zydvNmYkD fxda/J91Z1xrah5ec++FL0L4vs+jCiIWJeupJFKlr1hCMZiiGH7W554loK5l4jv3 EY347EidAw== =Ta4p -----END PGP PUBLIC KEY BLOCK-----