Собственно вот в этой программе
SolidGraph
Есть плагины, создающие по входным данным какие-то объекты за несколько шагов.
Необходимые условия:
1) Необходимо уметь точно задавать данные. То есть например координаты точки.
2) Если шагов несколько, то должен быть виден текущий шаг.
3) Недоступные шаги (например, требующие данные с предыдущих шагов) должны быть задизаблены
4) Должна быть возможность перепрыгивать через шаги, если они очевидны по входным данным с предыдущих шагов
4) С любого шага можно перейти на любой из предыдущих.
Пример — как сделано сейчас:
Создание окружности:
1) Мы поочередно вводим данные — Центр, Нормаль, Радиус
2) Пока не ввели Центр — недоступны Нормаль и Радиус. Пока не ввели Нормаль — недоступен Радиус.
3) Если кликнули на плоскости — перепрыгиваем через шаг ввода нормали (считаем как нормаль к плоскости) и делаем её доступной для возможного редактирования.
4) При возврате на какой-нибудь предыдущий шаг — следущие становятся недоступны.
Вот например, как это выглядит при вводе нормали:
Есть несколько стандартных панелей ввода:
1) ввод точки:
2) ввод числа
3) ввод нормали:
4) Выбор одного объекта
5) Выбор нескольких объектов
Хотя на панели в принципе могут быть какие угодно диалоги. Вот например такой
Ну суть я объяснил. Что необходимо должно быть — тоже пояснил
Но мне не нравится как я это визуально оформил. Что-то не то. Хотелось бы узнать у людей с художественным вкусом — как бы вы подобное сделали?
И еще один момент:
Не нравится то, что приложение может поддерживать несколько визуальных тем (ну напрмиер стиль OfficeXP), а эти диалоги на панелях создаются в плагинах. Тащить за каждым плагином библтиотеку отрисовки — ПЛОХО. Захучивать отрисовку — ГЕМОРНО. Хочется визуальное решение, независимое от темы.
Что посоветуете?
Здравствуйте, Amon_RA, Вы писали:
A_R>Что посоветуете?
Я бы посоветывал HTMLayout туда поставить
Это как раз тот случай — имеем набор типов объектов
у которых нетривиальные атрибуты.
class Figure
{
virtual html get_novice_view(); // или basic_view
virtual html get_expert_view(); // или detailed_view
virtual void get_current_values( collection of fields );
virtual void set_current_values( collection of fields );
}
Кстати идея самого по себе SolidGraph — "простая 3D рисовалка" (Я прав?)
мне нравится. У меня не часто но возникает потребность изобразить
нечто 3D и иметь под рукой внешне простой инструмент для этого я бы не отказался.
Key point: по умолчанию UI должен быть as simple as possible —
но если мне надо включтить expert view для определенных типов объектов
или свойств я бы хотел иметь такую возможность. И будет "killer app" .
Здравствуйте, Amon_RA, Вы писали:
A_R>Здравствуйте, c-smile, Вы писали:
CS>>Я бы посоветывал HTMLayout туда поставить
A_R>Я кстати думал про что-то такое. А не могли бы примерно нарисовать как это могло бы выглядеть (ну например для тех панелек, что я привел)
Да как угодно.
Глянь сюда:
http://www.terrainformatica.com/htmlayout/screenshots.whtm
может что наведет тебя на мысль.
Здравствуйте, c-smile, Вы писали:
CS>Глянь сюда:
CS>http://www.terrainformatica.com/htmlayout/screenshots.whtm
CS>может что наведет тебя на мысль.
Оченно это понравилось (я так понял это HTML-ем описывается?)
Я иногда читаю Ваши посты. Я так понял, вы все делаете в D?
А я вообще-то все по С++ больше. Есть этот HTMLLayout на С++? Как он поставляется? Сколько стоит? Какая лицензия?