From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,b6df8f8501cf7275 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII X-Received: by 10.180.91.114 with SMTP id cd18mr9560955wib.2.1356773176479; Sat, 29 Dec 2012 01:26:16 -0800 (PST) Path: i11ni329418wiw.0!nntp.google.com!goblin3!goblin1!goblin2!goblin.stu.neva.ru!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Easiest way to build Qt/Gtk interfaces for Ada programs Date: Sat, 29 Dec 2012 10:26:04 +0100 Organization: cbb software GmbH Message-ID: <1uzqolxxpmz0v.jea876uzf4tc$.dlg@40tude.net> References: <1gda5kzj50h3l.jzmq13s0hw74.dlg@40tude.net> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: cDN0fd8KlIeJLyErIrSf0A.user.speranza.aioe.org Mime-Version: 1.0 X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Date: 2012-12-29T10:26:04+01:00 List-Id: On Sat, 29 Dec 2012 01:18:34 +0100, Yannick Duch�ne (Hibou57) wrote: > Le Fri, 28 Dec 2012 16:32:09 +0100, Dmitry A. Kazakov > a �crit: > >> Ignoring casual applications, it is unfortunately so, that whatever >> framework you use, and what the application is supposed to do >> functionally, you have to build it around the GUI. > > On the opposite, this is the least recommended way to do. One should > create the UI around the application. The cleanest in my opinion, is to go > for a Model View Presenter (MVP), preferably with a passive view. In order to deploy MVC, you must make your application providing the "M" in the MVC (model). The application must be designed with this in mind. This is why you build it around the GUI. You don't own the main task it will belong to the GUI. You have to design all vital data structures as models compatible to the GUI framework at hand. You have to place inspection/rollback/abort check points in all lengthy operations to be able to add progress bars, cancel buttons etc. You have to rework all tasks making them compatible to single-threaded GUI, preventing events floods, event generators, deadlocking in signal handlers. You have to decide polling vs. event-driven policies along the M-V path and design the tasks involved correspondingly. And so on and so forth. And you honestly believe in a tool which would allow you to do all this lazily dragging and dropping icons? I don't. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de