I see a way to implement DioGen’s suggestion, and possibly alleviate humdinger’s and michel’s concerns, but it would involve updating the existing preference apps.
-
Each preference app would need to have attributes that contained a category indicator, a preview pane (probably as an archived and flattened BView) and a set of keywords, and any other information the combined panel might need. Any preference app that did not have the proper attributes would use default values.
-
The combined panel iterates over the preference apps and pulls the information from the attributes. (And the icon via BAppFileInfo.)
-
The combined panel presents the information more or less as pictured above.
-
If the preview pane needs to be interactive (i.e., to be able to actually set some common features), this would probably have to be implemented via a BView subclass in the preference app, and the app would need to be loaded via load_add_on(). (But I think archive instantiation will in fact autoload the addon, if the proper data is present in the archive.) I believe Haiku will allow you to load an executable as an add-on.
This allows both the individual app and combined panel approaches to be used, depending on an individual user’s personal preference, and allows 3rd-party apps to also be supported in the combined panel.
This would be rather a large undertaking, though, and if Anirudh uses this approach, I would suggest starting with a small group of preference apps to provide attributes for. (The input preference apps have already been suggested as an initial target for this project.) Other preference apps could be updated with the necessary attributes after GSOC.