Opened 5 years ago

Last modified 5 years ago

#14882 confirmed defect

Documentation missing for wxListBox::Delete

Reported by: hackish Owned by:
Priority: low Milestone:
Component: documentation Version: stable-latest
Keywords: Cc: bpetty
Blocked By: Blocking:
Patch: no


The documentation for the Delete method appears to be missing.
The method is implemented in wxItemContainer but the additional inherited members section seems to miss the multiple inheritance.

Attachments (1)

inherit-bug.h download (395 bytes) - added by bpetty 5 years ago.
simplified class inheritance sample for testing

Download all attachments as: .zip

Change History (8)

comment:1 Changed 5 years ago by vadz

  • Milestone set to 3.0
  • Status changed from new to confirmed

Looks like a bug in Doxygen because wxControlWithItems is documented but somehow the methods inherited via it don't appear in the derived class documentation. We probably could work around this by documenting wxListBox (and also wxChoice) as inheriting from wxControl and wxItemContainer instead as this works fine for wxComboBox but it's still not clear at all why doesn't the current documentation work.

Any ideas?

comment:2 Changed 5 years ago by bpetty

  • Cc bpetty added

Well, that section in the docs is a brand new addition since the upgrade to Doxygen 1.8.2. For what it's worth, Delete() is listed in the "All Members" page that has been there for ages, even before the upgrade:

This does look like a bug in Doxygen where the new inherited members section added just doesn't use the same algorithms as the page I linked, and probably just misses this because it's a parent class that is the one using multiple inheritance rather than the class itself.

I'll see about reporting this upstream, but in the mean time, I'm not sure it's worth bothering to change anything here.

comment:3 Changed 5 years ago by vadz

  • Priority changed from normal to low

I didn't realize the methods still appeared there, this is less critical then. But we might still want to do what I said and use 2 base classes explicitly as this doesn't really change anything but makes the documentation better.

And thanks for looking at this and reporting this to Doxygen folks!

comment:4 Changed 5 years ago by bpetty

Taking another look, it does look like it would be better to just switch it out for now, and fix it once it looks like upstream is fixed.

comment:5 Changed 5 years ago by VZ

  • Resolution set to fixed
  • Status changed from confirmed to closed

(In [73281]) Document wxListBox and wxChoice as inheriting from wxItemContainer.

Due to an apparent Doxygen bug, methods inherited from wxItemContainer via
wxControlWithItems didn't appear in the documentation, so work around this by
using wxItemContainer as a direct base class.

Closes #14882.

Changed 5 years ago by bpetty

simplified class inheritance sample for testing

comment:6 Changed 5 years ago by bpetty

  • Resolution fixed deleted
  • Status changed from closed to reopened

So I've tried to reproduce this using what I thought was the cause of this in Doxygen (see the attached inherit-bug.h file), however, this appears to actually work correctly with Doxygen 1.8.2.

So now I'm not sure why this isn't working with our hierarchy here.

For what it's worth, this also works correctly with wxHVScrolledWindow which follows a similar class hierarchy except that it's the dreaded diamond design, and also uses multiple inheritance with wxVarHVScrollHelper and wxPanel, so I thought it was just a weird exception that worked around the bug, but maybe not.

I'm re-opening this ticket for further investigation until we can either reproduce this in the simplified sample (confirming that it's Doxygen), or figure out why this just isn't working with wxListBox and wxChoice. Maybe it's something with the way wxControlWithItems is documented.

comment:7 Changed 5 years ago by vadz

  • Milestone 3.0 deleted
  • Status changed from reopened to confirmed

OK, let's keep it open but it's not 3.0-critical.

Note: See TracTickets for help on using tickets.