Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Александр Пекшев aka Modis от 17-06-2016, 14:57:17
-
Всем привет. Мой плагин не использует файла cui и при загрузке в автокад строит ленту программно. Лично мне этот вариант максимально импонирует. Но вот загвоздка - пользователи просят иметь возможность задавать горячие клавиши для функций. В связи с этим у меня два вопроса:
1. Возможно-ли задавать для функций горячие клавиши программно?
2. Если да, то как обстоят дела с тем, что такое сочетание клавиш уже может быть использовано?
Вопрос конечно нубский, но просто такое дело - я лично никогда не пользовался и не буду горячими клавишами. Поэтому по этой теме вообще не обладаю информацией
-
Мой плагин не использует файла cui и при загрузке в автокад строит ленту программно. Лично мне этот вариант максимально импонирует. Но вот загвоздка - пользователи просят иметь возможность задавать горячие клавиши для функций.
Что будешь делать, когда попросят возможность редактировать интерфейс (изменять состав и положение контента риббонов, туллбаров и меню) и чтобы внесённые ими изменения не исчезали в последующих сессиях акада?
-
Что будешь делать, когда попросят возможность редактировать интерфейс (изменять состав и положение контента риббонов, туллбаров и меню) и чтобы внесённые ими изменения не исчезали в последующих сессиях акада?
Это уже все реализовано
(https://s31.postimg.org/ctsfvz29z/Screenshot_1.png) (https://postimg.org/image/ctsfvz29z/)
-
Смотрится симпатично, но к сожалению ни о чём мне не говорит по части позиционирования элементов на экране... Т.е. позиционирование различных Toolbar, место вставки твоих Ribbons и меню по отношению к Ribbons и меню, уже имеющимся в AutoCAD тобою предусмотрено? На скрине этот момент я не могу распознать.
-
Андрей Бушман, то, что реализовано у меня позволяет:
1. Создавать панели (RibbonPanel) внутри ToolBar. Соответсвенно и их позиционировать
2. Располагать кнопки в этих панелях
3. Задавать варианты размеров кнопок - большая или малая. В случае большой - можно добавлять другие кнопки "в нее". Т.е. делать SplitButton
Место вставки моего панели внутри ленты (по отношению к другим панелям) не предусматривается. Панель всегда строится последней
Соответственно и нет возможности добавления родных команд автокада в мою панель.
Однако не стоит забывать, что в моем случае вид ленты еще зависит от того, какие функции установил пользователь, а какие нет. Реализовать это, программно обрабатывая файл cui тоже задачка не из простых
В общем - конечно много ограничений по отношению к файлу cui, НО - мы как-то это уже обсуждали в другой теме и тогда я написал, что выбрал этот вариант и остановился на нем. Меня устраивает, да и пока-что никто не был против.
В любом случае прогресс никогда не стоит на месте и возможно когда-нибудь я сделаю интеграцию и обычного cui файла... Может быть
Да и ушли мы от вопроса темы ))
-
1. Создавать панели (RibbonPanel) внутри ToolBar.
Я писал о тех Toolbar, которые используются вместо Ribbon в Classic Workspace.Да и ушли мы от вопроса темы ))
ок.
-
1. Возможно-ли задавать для функций горячие клавиши программно?
Попробуй посмотреть в сторону P/Invoke функции RegisterHotKey.
Тут вроде есть примеры: http://stackoverflow.com/questions/2450373/set-global-hotkeys-using-c-sharp
-
Попробуй посмотреть в сторону P/Invoke функции RegisterHotKey.
Для тех, кто хочет хорошо разобраться с DllImport, .NET-to-COM и COM-to-.NET: существует книга COM and .NET Interoperability (http://gbook.yolasite.com/resources/eb_dotnet/ComAndDotNetInteroperability.pdf) (Andrew Troelsen).