Так что статья, на которую вы ссылаетесь, в основном не нуждается в файлах GLFW/glfw3.h
и GLFW/glfw3native.h
, если вы не используете GLFW.
Какая структура пользовательского интерфейса вы используете для своего приложения на C++?
Если до сих пор не используется Carbon, на самом низком уровне инфраструктура будет создавать NSWindows, чтобы на самом деле иметь окна в пользовательском интерфейсе. Вам нужно получить доступ к NSWindow, который использует ваша инфраструктура для размещения интерфейса пользователя. Если он все еще использует Carbon, я думаю, вы, вероятно, не сможете это сделать.
Если структура обеспечивает некоторый механизм, чтобы получить окно собственной платформы (которое будет NSWindow), вы замените вызов автора на glfwGetCocoaWindow(window);
с правильным вызовом из вашего фреймворка.
Если инфраструктура не предоставляет доступ к NSWindow, вам необходимо будет использовать код, который закомментирован в нижней части статьи, чтобы прикрепить вашу панель к окнам вашего приложения.
Обратите внимание, что весь этот код является кодом Obj-C; вам нужно будет иметь хотя бы один файл .m
или .mm
в вашем проекте, чтобы обеспечить, чтобы код клея Obj-C получил доступ к сенсорной панели. В основном этот код является C-calleable оберткой вокруг API Cocoa.
Также обратите внимание, что вам нужно будет расширить список кнопок и действий для всех вещей, которые вы хотите поместить в панель. Вы можете добавить свой собственный API-интерфейс для переноса, чтобы конструкция панели инструментов была выполнена из C++ и регистрировала действия, которые обращаются к вашему C++-приложению для обработки событий.
В принципе, сенсорная панель недоступна на любой другой платформе, поэтому нет никакой пользы от попыток избежать написания Obj-C для реализации вашей панели управления, поскольку этот код будет работать только на MacOS. Если вы используете файлы .mm
для реализации Obj-C++ для этого кода, вы все равно можете вызывать свои объекты на C++ из вашего кода на сенсорной панели.
Помимо этого вам необходимо сначала изучить Objective-C! -------- нет большой пользы от попыток избежать написания Obj-C – David
@David, API в основном является API Obj-C/Swift. Если вы хотите получить доступ к API, вам придется использовать некоторые Obj-C.Просто проще написать поддержку тач-панели с помощью Obj-C, чем писать обертку Obj-C++, чтобы вы могли взаимодействовать с ней через C++; опять же, в конце дня, этот код не будет переносимым на другие платформы; может также использовать API напрямую ... –
Ну, да, --- следовательно запрос от OP для C++-оболочки. Предположительно, он надеялся, что кто-то уже завернул его, чтобы ему не пришлось изучать Obj-C! Просто потому, что что-то не переносится, это не значит, что вам нужно писать в Obj-C. _______ API в основном является API Obj-C/Swift – David