Возникла проблемка с реализацией тулбара и отображением кнопки команды на нем.
Хочу разобраться с механизмом тулбаров и с использование TIE.
В общем... есть у меня:
MyFw - мой Framework
MyModCmd - модуль в котором реализуется простая команда типа "Создать линию" по 2-м точкам в модуле драфтинга. Кстати, класс в модуле создается визардом "CATIA Resource->Command" и наследуется от CATStateCommand как мне и нужно. Так же, стоит галочка для включения доп.файлов класса в мой воркшоп (MyModAdd)
- CATMyCmd - класс команды
- CATMyApp - класс тулбара
Далее работаю только с классом CATMyApp:
1. В классе CATMyApp вставляю макрос для определения Command Header - MacDeclareHeader(CATMyCmdHeader)
В сгенерированном файле ресурсов CATMyCmdHeader.CATNlsопределяются строковые константы, например есть такая строка - CATMyCmdCmdHeader.MyMyAAA.Title="MyMyAAA title";
2. Далее в качестве TIE для драфтинга использую - #include "TIE_CATIDRWFRAMEAddin.h"
TIE_CATIDRWFRAMEAddin(CATMyAdd);
3. Редактирую параметры макроса CATImplementClass(CATMyAdd, DataExtension, CATBaseUnknown, CATMyAdd);
При этом в словаре MyFw.dico есть строка - CATMyAdd CATIDRWFRAMEAddin libMyModAdd
Делал все по примерам и по документации.
Так вот, дальше возникают вопросы:
1. Как выбирать подходящий TIE для реализации addin-ов в разные фреймворки? В энциклопедии есть где-нибудь их опиание, какой TIE для чего используется?
И второй вопрос побольше
2. В документации написано: Macro CATImplementClass (Class,Typeofclass,Basemeta,Impmeta) - где
Impmeta
The class for which Class is an extension.
Legal values:: it makes sense for extension classes only. Set it to the implementation class name for the three extension types, and to CATNull for an implementation
И из примера:
The name of the latetype, the fourth argument of the CATImplementClass macro, mustn't be the same as an existing C++ class name or an existing latetype name.
Для какого класса в данном случае класс CATMyApp является расширением? Для CATMyCmd?
И четвертый параметр не должен быть таким же, как существующий класс С++. Противоречие???
3. Заметил еще по примерам, что первый параметр в строке словаря MyFw.dico совпадает с последним параметром макроса CATImplementClass. Но по документации первый параметр в строке словаря - это имя класса компонента (т.е. CATMyCmd в моем случае). В таком случае он не может не совпадать с последним аргументом макроса. Опять противоречие, что последний аргумент макроса не должен иметь имя существующего класса

Как же все должно быть связано?
