Skip to content

Gathering docs for AUI system #129

Description

@halfer

I'd like to put together a demo of AUI from a wxPHP perspective, but the documentation on this for the wxWidgets is apparently sparse even for C++. I'd like to be able to add draggable panels and dockable toolbars, to resize them and to float them, in the same way like NetBeans works.

I wonder, in the interests of generating some community here, I might have folks other than @jgmdev (the maintainer) answering this question? I'd like to ask this question on Stack Overflow, but I fear that it would be correctly regarded as too broad or as a recommendation request for third-party resources. I will try to edit this issue as items come to light.

Firstly we have the C++ example in the wxWidgets core. It looks impressive, but its sheer length doesn't help learning, especially for readers (like me) who cannot fluently read C.

Here is an example that creates a wxAuiToolBar in wxPHP, which has helped me to get a toolbar instantiated that does not crash.

The original donor of the AUI system has some demo code in C++ and some great-looking screenshots.

Here is some information about creating docking panes though I wonder if wxFrameManager has been superceded by wxAuiManager?

Activity

  1. jgmdev commented on Dec 23, 2015

    @jgmdev
    Member

    I would love for someone else to jump in and explain the wxAui stuff, but it seems this community (if anyone out there) needs more kicks so I just put up a repository for an application I never got to finish for accounting that uses wxAui stuff and that you may look at as initial reference: https://github.com/jgmdev/xiaris

    The frame.php file initializes a wxFrame that makes use of wxAuiManager and adds two panes and one is expandable. I started this code some years ago and it doesn't makes use of autoloading and some new shiny php features. Indeed, developing this accounting software was the motivation to get wxphp working at the state it is today, but other work got on the way and never finished it, then I wasn't sure if making a web backend for data processing and the interface just communicating to it using json so lots of stuff came on my head too.

  2. halfer commented on Dec 23, 2015

    @halfer
    ContributorAuthor

    Thanks @jgmdev! That will be most helpful.

    I managed to get a few textboxes last night arranged as AUI panels - it seems that if you only have a AUI toolbar then it segfaults on drag, but it is OK when more items are added. I had a lot of trouble with toolbar grippers as well. I'll fire up your app and see what I can learn from it to make another demo.

    I notice you have a very helpful wxwidgets.php auto-completion file in there - great. I think I saw a reference to this somewhere (on the wxPHP blog?) but I didn't save that since I was working on something else at the time. Have you a link for instructions on how to generate it from source? (It could probably be set up as a Composer dependency as well, I'll see if I can get that working).

  3. jgmdev commented on Dec 23, 2015

    @jgmdev
    Member

    The article about the code completion interface file was http://wxphp.org/news/code-completion-interface-file

    To generate this file you have to execute https://github.com/wxphp/wxphp/blob/master/tools/interface_generator.php like php tools/interface_generator.php and a wxwidgets.php file will be generated inside the tools directory.

    Edit: but if I recall correctly there was some manual changes required for it to work properly so the file should be check with php -l wxwidgets.php for parse errors and adjust as necessary, also I uploaded a working one to sourceforge http://sourceforge.net/projects/wxphp/files/wxphp/3.0.2.0/wxwidgets.php/download.

  4. halfer commented on Dec 23, 2015

    @halfer
    ContributorAuthor

    👍 Thanks, I will give that a try.

  5. halfer commented on Jan 17, 2016

    @halfer
    ContributorAuthor

    This isn't really a specific bug, and at least the AUI example is available for new readers, so closing for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions