Графический интерфейс кнопок в Какао - PullRequest
0 голосов
/ 28 августа 2009

Ситуация: Новичок с интерфейсом для музыкального приложения. У меня есть 2 больших изображения, одно из которых - «вверх» или в обычном режиме, другое - «вниз». (Все кнопки нажаты, горят и т. Д., Светодиоды включены и т. Д.) Может иметь пару небольших изображений для копирования.

В Carbon и старой Mac OS я загружал 2 GW-мира с каждым изображением, затем использовал Copybits, чтобы копировать любое нажатие кнопки, если это было необходимо, и вспыхивать в зависимости от окна.

Хотя я понимаю, что я все еще могу использовать этот подход в Какао, он устарел, время переходить на современный, так что:

В: Чем заменить этот старый подход Copybits в Какао? (довольно просто был предыдущий):) Вкратце, что будет одним из лучших (и лучших для новичков) подходов для создания подобных в Какао ... для создания изображения и различных субрекций в графических рабочих кнопках? Разобраться с кликами?

Примеры целей здесь: похож на GarageBand и т. Д., Или на любой приятный на вид интерфейс инструмента VST, где они дублируют аналоговую классику (Moog и т. Д.). В основном, с помощью изображения синтезатора и работы кнопок и ручек в Какао.

Я думал, что мне понадобится NSView, и немного Кварца, который читал здесь, подумал, что NSOpenGLView возможно. Тогда я читал о NSButtonCell возможно? Сделать изображение (я) пользовательским элементом управления? Должен быть относительно быстрым, так как много MIDI ввода-вывода и обработки могут выполняться одновременно.

1 Ответ

2 голосов
/ 28 августа 2009

Если вы хотите «идти в ногу со временем», идите в ногу со временем…

В частности, выложите свой интерфейс с помощью набора NSButtons, NSSliders и т. Д .etc.etc ... затем посмотрите, как далеко вы можете продвинуться, используя пользовательские изображения для кнопок. Для ползунков вы, вероятно, захотите создать подкласс, а затем переопределить методы рисования.

Различные классы NSControl выполняют огромную работу, связанную с отслеживанием событий и взаимодействием с пользователем. Не изобретай это колесо, если тебе действительно не нужно.

Они также предназначены для подкласса и настройки по желанию.

Что касается производительности, то, скорее всего, все будет хорошо. Проблема со звуковыми приложениями, как правило, связана не с сырой производительностью процессора, а с задержкой. В любом случае вы захотите отодвинуть обработку звука из основного цикла событий.

Начните с простого, посмотрите, как далеко вы можете пройти, затем настройте пользовательский интерфейс по мере необходимости. Пока вы разрабатываете свое приложение разумно, вы не должны выбрасывать много кода, когда делаете это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...