Joined: 04 Feb 2010, 14:42 Posts: 928 Location: Equestria
Удалось собрать более-менее работающую версию на Mac OS X 10.5.8 + PowerPC + Carbon с Lazarus 2.2.4. Самые противные баги уже поисправлял. Тут сохраню списки чего еще надо выправить.
Известные баги: - Экран не перерисовывается во время скроллинга или рисования панелей - Отлов исключений иногда не работает, вместо окошка с инфой об ошибке редактор падает - Стектрейсы в логе не показывают местоположение - Загрузка карты, её отображение и редактирование происходит параллельно, чего быть не должно - Иногда нижняя панель с текстурами перестает ресайзиться (статусбар перескаквает со своего места и становится над панелью с вкладками) - Некоторые кнопки в меню/тулбаре рассинхронизированы - Progress Bar не отображается на OSX
Локализация: - Не все новые строки локализованы (меню, настройки редактора, сообщение о недоступности недавнего файла, системные меню/кнопки) - На старте формы отображаются до того как к ним применена локализация - На OSX cистемные меню и формы не переводятся (вроде как достаточно добавить строки в файлы локализации) - На OSX не определяется системный язык (Info.plist или editor.app/Contents/Resources/${lang}.lproj должны указывать на поддерживаемые языки) - На OSX смена языка в настройках не меняет язык системных меню и диалогов. (требуется пнуть ещё что-то?)
Интерфейс: - Увеличить шрифт в списке текстур - Увеличить скроллбары для скроллинга карты - Все настройки переместить в один диалог с табами - Поправить расположение и размеры кнопок и других контролов - Добавить в меню View команду Show Grid (уже есть на тулбаре) - Добавить в меню View команду Show Toolbar
Общее: - Сделать возможным скроллинг карты колёсиком - Сделать добавление и удаление ресурсов из WAD - Сделать замену невалидных ресурсов на карте
Адаптация к платформе: - Сделать иконку (Джа) - Сделать About App диалог - Переделать раскладку меню - Убрать иконки из меню - Сменить хоткеи (частично сделано - только меню) - Добавить поддержку однокнопочной мыши - Добавить поиск wads в нескольких местах: бандл editor.app, бандл game.app(?), внешние ресурсы ~/Library/Application Support/Doom 2D Forever/wads, пользовательские ресурсы ~/Documents/Doom 2D Forever/Wads - Сделать автоматический поиск Doom 2D Forever.app в стандартных местах для приложений - Сделать альтернативные наборы иконок в меню и тулбар
Наркомания: - Отделить код редактора свойств объектов от главной формы - Отделить код "палитры" объектов от главной формы - Сделать документ-ориентированный интерфейс (возможность открыть несколько карт в одном инстансе редактора) - Сделать отцепляемые панели
Кросс-сборка: - Сделать кросскомпиляцию - Сделать автосборку - Добавлять в dmg с игрой
Joined: 04 Feb 2010, 14:42 Posts: 928 Location: Equestria
Без нормальной мышки не юзабельно. На маках для эмуляции ПКМ используется ctrl, но у нас наверняка используетя для чего-то другого. Хоткеи под мак надо переделывать. Те что в меню - я уже поменял, а вот те что обрабатываются в коде еще не трогал.
Joined: 04 Feb 2010, 14:42 Posts: 928 Location: Equestria
Собрал тут все хоткеи используемые редактором, что бы адаптировать под особенности мака, ну и написал краткую заметочку по гайдлайнам. Надо будет привести всё в соответствии.
Коротко: - Надо юзать хоткеи как в других программах для схожих операций. Как пример Ctrl+C/Ctrl+V/Ctrl+Z - во всех программах действие схожее (в нашем случае можно тырить хоткеи из графических редакторов и CAD'ов) - Избегать конфликтов с системными хоткеями, избегать дублирования хоткеев - (Win) Предпочтительно использовать модификатор Ctrl и F1-F12 для хоткеев, использовать модификатор Shift как дополнение/расширение к основному хоткею, избегать использование Alt+key и кнопки Win. - (Mac) Предпочтительно использовать модификатор Command(⌘) для хоткеев, использовать модификатор Shift(⇧) как дополнение/расширение к основному хоткею и не использовать его для несвязанных операций, использовать модификатор Option(⌥) для редких операций, избегать использование модификатора Control(⌃), не рекомендуется использовать однобуквенные хоткееи key
Коротко: - Использовать левую кнопку для основных действий (нажатие, выделение, перемещение, etc) - Использовать правую кнопку для открытия контекстного меню - Использовать колёсико для скроллинга и масштабирования
Надо еще учитывать что на маках весьма распространены однокнопочные мыши. На таких системах правая кнопка эмулируется комбинацией Control+Click, а левая комбинацией Command+Click. Поэтому Control/Command не получится юзать для быстрого переключения режимов или чего-то типа того.
Ctrl+~ ⌃~ Показать/Скрыть контуры на всех слоях Ctrl+1 ⌃1 Показать/Скрыть контуры на слое "Фон" Ctrl+2 ⌃2 Показать/Скрыть контуры на слое "Передний план" Ctrl+3 ⌃3 Показать/Скрыть контуры на слое "Стены" Ctrl+4 ⌃4 Показать/Скрыть контуры на слое "Двери" Ctrl+5 ⌃5 Показать/Скрыть контуры на слое "Ступени" Ctrl+6 ⌃6 Показать/Скрыть контуры на слое "Жидкости" Ctrl+7 ⌃7 Показать/Скрыть контуры на слое "Лифты и потоки" Ctrl+8 ⌃8 Показать/Скрыть контуры на слое "Зонирование" Ctrl+9 ⌃9 Показать/Скрыть контуры на слое "Монстры" Ctrl+10 ⌃10 Показать/Скрыть контуры на слое "Области" Ctrl+11 ⌃11 Показать/Скрыть контуры на слое "Предметы" Ctrl+12 ⌃12 Показать/Скрыть контуры на слое "Триггеры"
E E Режим предпросмотра (зажатие) W W Скроллить карты вверх (шаг сетки) S S Скроллить карты вниз (шаг сетки) A A Скроллить карты влево (шаг сетки) D D Скроллить карты вправо (шаг сетки) Shift+W ⇧W Скроллить карты вверх (шаг сетки 4x) Shift+S ⇧S Скроллить карты вниз (шаг сетки 4x) Shift+A ⇧A Скроллить карты влево (шаг сетки 4x) Shift+D ⇧D Скроллить карты вправо (шаг сетки 4x) Num Pad 8 Num Pad 8 Передвинуть объект вверх (шаг сетки) † †† Num Pad 5 Num Pad 5 Передвинуть объект вниз (шаг сетки) † †† Num Pad 4 Num Pad 4 Передвинуть объект влево (шаг сетки) † †† Num Pad 6 Num Pad 6 Передвинуть объект вправо(шаг сетки) † ††
Escape ⎋ Отменить выделение Delete ⌦ Удалить объект(ы) Ctrl+N ⌘N Создать карту (очистить) Ctrl+O ⌘O Открыть Ctrl+S ⌘S Сохранить ⇧⌘S Сохранить как... Ctrl+R ⌘R Вернуться к сохраненному (переоткрыть) Ctrl+Z ⌘Z Отменить действие (РАБОТАЕТ ГЛЮЧНО!) Ctrl+C ⌘C Копировать Ctrl+X ⌘X Вырезать Ctrl+V ⌘V Вставить Ctrl+Shift+V ⌃⇧V Вставить по абсолютному смещению Ctrl+A ⌘A Выделить все объекты Ctrl+Alt+A ⌥⌘A Выделить все слои
Ctrl+Q ⌃Q Включить/выключить привязку к сетке Ctrl+E ⌃E Переключить размер сетки Ctrl+[ ⌘[ Передвинуть назад Ctrl+] ⌘] Передвинуть вперед Ctrl+M ⌥⌘P Открыть свойства карты Ctrl+W ⌃W Показать/скрыть мини-карту
⌘, Открыть настройки редактора ⌘M Скрыть окно ⌘H Скрыть редактор ⌥⌘H Скрыть другие программы F10 ⌘Q Закрыть редактор
Tab ⇥ Режим предпросмотра Ctrl+Tab ⌃⇥ Следуюший слой
Shift+LeftClick ⇧LeftClick Выбрать объект за выбранным объектом
RightClick RightClick Выбрать объект Ctrl+RightMouse ⌃RightMouse Инвертирующее выделение объектов Ctrl+Alt+RightMouse ⌃⌥RightMouse Инвертирующее выделение объектов на всех слоях
MiddleDrag MiddleDrag Перемещение по карте
Панели ------ LeftDrag LeftDrag Создать панель Ctrl+LeftClick ⌃LeftClick Создать панель по размеру текстуры (или сетки, если без текстуры) RightDrag RightDrag Выделение панелей, перемещение панелей†, изменение размера панели Предметы -------- LeftClick LeftClick Создать предмет Ctrl+LeftMouse ⌃LeftMouse Создать предмет по левой верхней точке RightClick RightClick Выбрать предмет RightDrag RightDrag Выделение предметов, перемещение предметов†
Монстры ------- LeftClick LeftClick Создать монстра Ctrl+LeftMouse ⌃LeftMouse Создать монстра по левой верхней точке RightDrag RightDrag Выделение монстров, перемещение монстров† I I Развернуть монстра на 180°
Области ------- LeftClick LeftClick Создать область Ctrl+LeftMouse ⌃LeftMouse Создать область по левой верхней точке RightDrag RightDrag Выделение областей, перемещение областей† I I Отразить область
Триггеры -------- LeftDrag LeftDrag Создать триггер Ctrl+LeftMouse ⌃LeftMouse Создать триггер по размеру сетки RightDrag RightDrag Выделение триггеров, перемещение триггеров†, изменение размера триггера Ctrl+T ⌃T Выбрать текстурированную панель для триггера Ctrl+D ⌃D Выбрать область воздействия триггера
Мини-карта ---------- LeftMouse LeftMouse Переместиться в точку на карте
Свойства объектов ----------------- Enter Return Применить свойство
============= † Добавление модификатора Shift/⇧ перемещает с проверкой столкновений Добавление модификатора Ctrl/⌃ перемещает вместе с областью действия триггера Можно комбинировать †† Добавление модификатора Alt/⌥ перемешает на пиксель
LeftClick = Нажатие левой кнопки мыши LeftDrag = Нажатие левой кнопки мыши и перетягивание LeftMouse = LeftClick или LeftDrag Аналогично для других кнопок мыши
Joined: 04 Feb 2010, 14:42 Posts: 928 Location: Equestria
Почти все хоткеи надо менять что бы было более-менее по гайдлайнам. А способ создания и редактирования объектов тоже придется сильно переделать что бы была возможна поддержка однокнопочной мыши. Если есть пожелания по хоткеям - можно их сюда строчить. Ну или линки на реквесты/баги (вроде что-то было на тему).
Joined: 04 Feb 2010, 14:42 Posts: 928 Location: Equestria
Вчера переделывал хоткеи, не понравилось то что получилось. Делать по-нормальному не позволяет текущая архитектура. Попробую может решить с однокнопочными мышами.
Joined: 04 Feb 2010, 14:42 Posts: 928 Location: Equestria
Jabberwock wrote:
Как-то всерьез понять про хоткеи можно только помаппив на маке.
Я про техническую часть. Повыдирал обработку хоткеев из нестандартного механизма - усугубились проблемы при редактировании свойств в панели свойств - нужны другие хаки или переделка всего.
Users browsing this forum: No registered users and 1 guest
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum