Skip to content

MUI structural inspection: TREE-equivalent walking of a live MUI application's object hierarchy #67

Description

@sidick

Problem

userdocs/Locator-Tiers-and-Limits.md's own table: for MUI applications, intuition-model's class-name walker "has no MUI recognition, so Tier 2 doesn't reach MUI gadgets at all — confirmed live that a MUI window attaches only its own single top-level object to window->FirstGadget, the same limit window.class/layout.gadget has." A MUI app is currently Tier 3 (MUIREXX, whatever ARexx commands the app itself registers) or Tier 4 (raw coordinates) only — there is no TREE-equivalent structural view into a MUI application's own object tree at all, unlike GadTools/top-level ReAction gadgets.

Proposed scope (research first, per this project's own "real functions, not guessed heuristics" rule)

This needs investigating muimaster.library's own documented introspection surface before any implementation — not assumed. Candidate starting points to verify against the real SDK docs/autodocs (not guessed):

  • MUI's own class hierarchy is BOOPSI-based (MUIC_Notify/MUIC_Area/MUIC_Group/...), so OCLASS()-based class-name identification (the same mechanism ClassifyByClassID() already uses for top-level ReAction gadgets) may partially apply to whatever IS reachable.
  • MUIA_Group_Child/MUIM_Group_InitChange and related family-list attributes are how a MUI app enumerates its OWN children internally — whether any of that is safely queryable from OUTSIDE the owning process (vs. only via in-process DoMethod()/GetAttr(), which this project's own no-SetFunction/no-private-struct-reading rules would rule out anyway) needs confirming against the real autodocs, not assumed.
  • If no safe external introspection mechanism exists (plausible — MUI objects are far more dynamic/private than classic Intuition gadget lists), the realistic path is the same cooperative, app-side pattern already designed for ReAction's own nested-layout.gadget gap: issue Cooperative geometry port (WHERE): escape hatch for layout.gadget-nested gadgets #49's "WHERE" port concept (an application-side ARexx or similar port answering "where is this named object"), generalized to also answer MUI-specific identity questions. Worth explicitly evaluating whether Cooperative geometry port (WHERE): escape hatch for layout.gadget-nested gadgets #49's design can just be extended to cover this case rather than inventing a second, MUI-specific mechanism.

Why file now

Filed per user request as part of a general post-1.0 planning pass — MUI structural inspection is a real, currently-total gap (not even the top-level object is classified today), distinct from #49 (which is specifically about ReAction's layout.gadget nested-children limit).

Activity

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions