2022-07-24 09:09 AM
Hi All,
So I have attempted to dive into the world of API. I'm managed to get over the hurdle of how to actually build the apx file, and have been trawling through the example files, but am still feeling very lost.
I am attempting to create a very simple API, that adds a panel to the Object Settings, that allows me to modify a Building Material parameter I have in an object.
I have been using the Panels_Test as the basis to start from and then found the attribute pickers in the DG_Test examples and have managed to get a panel with a 'picker', but I can't work how to associate that with a specific attribute type or parameter in the object.
Snippets from my GRC:
'STR#' IDS_SETTINGSPAGE_NAME "Panel test settings page" {
/* [ 1] */ "Panel test settings page"
}
...
'GDLG' InfoBoxPageId TabPage 0 0 160 36 "" {
/* [ 1] */ UserControl 12 20 188 20 257 0x0004 0x1100 0 /* Building Material control */
}
'DLGH' InfoBoxPageId DLG_InfoBoxPageId {
1 "" UC257_0
}
I have come across the ACAPI_Interface_CreateAttributePicker function, in the API reference, which seems to be what I am looking for, but I can't see that having being used anywhere in the DG_Functions example to modify from.
Is someone able to point me in the right direction?
Thanks,
Scott
2022-07-27 12:06 PM - edited 2022-07-27 12:24 PM
Hi Scott!
The function was added with AC26. It's used a few times in the "DG_Test" example project in the AC26 Devkit.
Edit: To clarify a bit further. I think what used to be defined via UserControls as an Item type is starting to change to use the new functions as introduced in AC26. If you want to use the "old" style attribute pickers, you can check out the examples in the older DevKits (<=AC25). Also for everything Dialog related, I highly recommend checking out the offline help which comes installed with the devkits. It includes more documentation on the DG functionality than the online help.
And to clarify further: There are 2 "styles" of handling Dialog stuff. The "older" C style (which is decently documented in the offline documentation.). This style uses Handlers and you need to register them.
As a contrast there's the "newer" C++ style which is less documented unfortunately. Here you create Classes/Objects for your Dialogs, Items etc. Instead of Handlers you work more with Event Observers.
It's a rough distinction but I hope it helps anyway.
Best, Bernd
2022-08-01 12:53 AM
Thanks so much for your reply Bernd. I'll check those ones out.
Do you know if the older style attribute picker still works on 26? I was planning to develop for 25 but would prefer not to have to reinvent it again if that functionality has already been removed in 26.
Thanks,
Scott
2022-08-01 11:58 AM
I haven't tried it, but I'm pretty sure the old style attribute pickers would still work in AC26. The following points indicate so:
* Their removal is not mentioned in the changes for the AC26 devkit and I think such a big removal would be definitely mentioned there
* The AC26 DG_Test example still uses the old style in a few places
* The (offline) AC26 documentation still mentions the old style
* The relevant flags are still set in the AC26 Devkit/Modules/UCLib/UCDefs.h
Hope that helps,
Bernd