TraverseApps2: windows and views tree utility with picking support

Utility that display windows and views in a tree. It allows to pick view by pressing target icon at tool bar. view tree information is retrieved by scripting. Window visibility and z-order is not handled correctly for now. Tree is not updated automatically, using “Edit” -> “Update” is required to update.

Currently only GCC4+ is supported. For 32 bit Haiku use setarch x86.


Oh, nice, much better than my dumpwin script calling 30 times hey :smile:

Picking quality was improved. Also second toolbar button was added that highlight selected window/view.

Now, you’re a few thousand lines away from a screen reader app :smiley:

This looks like a good candidate for an in-tree utility in src/tests; would you care to submit it? :slight_smile:

1 Like

Code is a bit dirty and not confirm Haiku coding guidelines. I see no problem for using TraverseApps2 from HaikuUtils repository. Just run:

git clone
cd HaikuUtils/TraverseApps2
make run

I added suite editor that is opened by double click on tree item and display all scripting properties and its values. Currently is is not working properly because it is incomplete, I am not fully understand how scripting works and there are a lot of unimplemented/broken scripting handling in Haiku components.



An eon or two ago on BeOS R3, I had a utility like this, whose intended purpose was to help me debug GUIs (my layout engine especially).

It was very, rough looking, especially compared to this beauty. It did have (IIUC) a couple features missing from this one though, which you might consider: 1) a BTextControl displayed the BRect of the selected view (as in “get Frame of View 1 of Window x…”). Modifying the numbers and hitting would do the equivalent of “set Frame of View x…”, which did wonders to help me understand WTF I was doing wrong in my code at the time :slight_smile:
And 2) a BTextControl at the bottom was always displaying the “hey” scripting equivalent of the last performed action on the selected BView… So, if some day I was in the mood for creating a “hey” based bash script of a given application, I would fire up my app-let, locate the wanted BView, copy-paste the generated “hey” one-liner and put it in my bash script, tweaking it as needed.

PM me if you want me to look up the code, though this is relatively easy code IIRC.

1 Like

Is it possible to highlight the object that is selected?

Yes, press toolbar button with red square icon.