Re[5]: Добавил Animation
От: adontz Грузия http://adontz.wordpress.com/
Дата: 07.07.05 00:51
Оценка:
A>Тут пример: http://www.rsdn.ru/File/2053/1259843-fontsize.gif
Кстати есть глюк на верхней картинке.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[5]: Добавил Animation
От: c-smile Канада http://terrainformatica.com
Дата: 07.07.05 04:11
Оценка:
Здравствуйте, GarryIV, Вы писали:

GIV>Hello, c-smile!


A>>>
  • Табуляция не циклична. Tab на последнем контрле и Shift+Tab на
    A>>> первом не работают. [/list]

    c>> А должна? Может лучше нужно "бибикать" в конце?.


    GIV>Должна. Хотя бы потому что к этому все привыкли.


    А я не привык и меня раздражает когда по очередному Tab
    оно улетает неведомо куда.

    На самом деле ничего не мешает замкнуть кольцо tab.
    Для диалогов это имеет больший смысл, для frame меньший.

    Имплементировать это легко:
    достаточно определить нечто типа:

    Window.on(EventWidget evt)
    {
    if (evt.type == NEXT_TAB)
    setFocus...
    }

    Так как последний tab никто не обработает
    (некуда переходить) то это событие всплывет (bubble)
    к окну. Там его можно и замкнуть на первый элемент.

    Главное чтобы была альтернатива и удобный event routing.
    А то как сейчас обработка Tab сделана в Windows —
    тут читай , тут не читай, тут рыбу заворачивали, а
    вот здесь у нас вообще ActiveX контейнер и начинаем
    плясать через message pretranslate.
  • Re[6]: Добавил Animation
    От: adontz Грузия http://adontz.wordpress.com/
    Дата: 07.07.05 04:20
    Оценка:
    Здравствуйте, c-smile, Вы писали:

    CS>Главное чтобы была альтернатива и удобный event routing.


    Альтернатива тут нужна как телеге пятое колесо. Есть устоявшееся поведение. Либо оно копируется, либо имеем отклонение от привычного, которое выглядит как глюк. Ты же ведь не предлагаешь двигаться в другом направлении. Ты предлагаешь вообще не двигаться.

    CS>А то как сейчас обработка Tab сделана в Windows — тут читай , тут не читай, тут рыбу заворачивали, а вот здесь у нас вообще ActiveX контейнер и начинаем плясать через message pretranslate.


    Ну и замечательно всё реализовано! Если каждая часть в отдельности корректна, то вся система в целом тоже корректна.
    A journey of a thousand miles must begin with a single step © Lau Tsu
    Re[5]: Добавил Animation
    От: c-smile Канада http://terrainformatica.com
    Дата: 07.07.05 05:14
    Оценка:
    Здравствуйте, adontz, Вы писали:

    A>Здравствуйте, c-smile, Вы писали:


    CS>>Кто сказал? А если серьезно то я не считаю что это бага.

    CS>>Это уже не click на кнопку а чего-то другое.

    A>Это то что делает кнопка в Windows и работая под Windows я ожидаю такого же поведения от всех кнопок.


    Нет проблем. Меняется одна строка.
    Фенечка состоит в том что у сеня есть выбор.

    A>>>
  • Табуляция не циклична. Tab на последнем контрле и Shift+Tab на первом не работают.
    A>>>[/list]
    CS>>А должна? Может лучше нужно "бибикать" в конце?.

    A>нет, лучше если она будет циклична


    См. мой ответ Garry.

    CS>>Возьми такое вот приложение: http://www.evernote.com/en/

    CS>>Я бы не сказал что там какой-то супер UI по сложности.
    CS>>Он выполнен на HWND — на морде лица стандартные HWND только tree view и один edit box — все остальное — свое и делается windowless "с полпинка".
    CS>>Поизменяй размеры окна и скажи стоят ли преимущества использования этих двух окон полученного результата или нет.

    A>ИМХО обе части смотряться плохо и вот почему. Custom Draw TreeView не кеширует (просто не может этого делать) многие вещи и рисует всё заново, а основная программа тоже ничего не кеширует (потому как не догадались), оттого всё и мигает. HWND-less часть просто напросто рисуется раз в секунду, с большим запаздыванием из-за чего у меня возникает чувство что она вообще медленнее рисуется.

    A>Выводы: Custom Draw для TreeView плохо реализован, HWND-less тормозит сам по себе.

    Ты глянь-ка Spy++. Узнаешь много нового. Это во первых, а во вторых
    При Custom Draw для TreeView не работает например node collapsing animation.
    Короче или то или то а все вместе — как всегда.

    Это дерево руками написать — ну вообще ж ничего не стоит практически.
    И сколько их уде всяких написано. От хорошей жизни?


    A>>>Многие стандартные вещи и вещи расчитанные на стандартные вещи перестают работать. Как пример IME или программа для людей с ослабленным зрением Narator или Onscreen Keyboard.


    CS>>IME должна работать. Onscreen Keyboard — тоже. Если не работает — то баг.

    CS>>И только Narrator нужно писать свой layer.

    A>У меня Onscreen Keyboard по чёрному глючит, клавиши глотаются.


    Надо смотреть, не проверял, спасибо.

    CS>>"системного шрифта контролы не реагируют" надо проверить — я использую DEFAULT_GUI_FONT — должно работать.


    A>Тут пример: http://www.rsdn.ru/File/2053/1259843-fontsize.gif


    Ага, спасибо, только я беру базовый размер фонта только а
    он у тебя не поменялся.

    Собственно поддержка системных тем на это и нацелена в числе прочих задач.

    CS>>Кстати: Сейчас Дмитрий Давыдов пишет поддержку системных тем — в частности — Windows XP Themes support.


    A>Это хорошо — одобрям


    CS>>По поводу accessibility вообще. Harmonia в своей основе гораздо лучше это поддерживает.

    CS>>Напимер импелементация Zoom в случае HTML форм это просто устанвка другого базового размера шрифта.

    A>Без поддержки Наратора это всё капля в море.


    Технически это не сложно. Кто-нибудь попросит — приделаем.

    CS>>accessibility... Если ты написал программу которая использует только системные controls (очень редкий случай) это не значит что она сразу 100% accessible. Для того чтобы *реально* поддерживать людей с ограниченным зрением или двигательной активностью нужен отдельный подход и голова на плечах.


    CS>>Нет там ничего сильно волшебного в стандартных контролах. В смысле вообще ничего нет.


    A>Та же табуляция например. Кстати активные контрол очень трудно визуально найти. Пунктирная рамка на кнопках куда как лучше.


    Наверное. Для этого и придуман механизм тем. Что бы можно
    было делать всяко разно. Контрастно и нет. Выбор — это свобода.

    CS>>Ты не понял для чего нужен HTML (нечто бликое к HTML) там. Понятие декларативный UI и пр. XAML тот же вельми показателен. Только в Harmonia HTML engine не снаружи а внутри.


    A>HTML насколько я понял нужен для разметки (причём такой умной, чтобы задавать не координаты, а взаимное расположение).


    Да и это тоже. Локализация с помощью HTML делается лучше. Тот же branding.

    CS>>OpenFile/SaveFile/PrinterSelect ипользуются из Shell — стандартные. Все остальное из common dialogs в том виде что есть никому не нужно включая этот "выбор цвета"


    A>Кроме Open/Save/Printer Select так же часто используются: ChooseFont, FindText, ReplaceText, PageSetupDlg


    MS Office их использует? Если нет то почему?

    CS>>Сама MS их не использует.

    A>А Paint/WordPad?

    Ну вот и все собственно...


    A>>>Плюс ко всему, зачем мне ещё один рендерер? Harmonia это layout manager, но что насчёт реакции на события? Как мне реагировать на собития? Опять message maps?


    CS>>Какие message maps? Нет их там и не нужны они там.


    A>Message maps это mapping of message to handler в любом виде.


    Есть понятие физических (первичных) событий (мышь клавиатура)
    и логических (вторичных) (click , focus, value changed)

    Первые как правило уже обрабатываются и так
    а для вторых имеет смысл использовать delegates.

    В чистом виде в harmonia нет message maps.
    Есть event handlers — в принципе можно считать их message maps группы событий:

    on(EventPointer evt)
    on(EventKeyboard evt)
    on(EventWidget evt)



    A>>>То что ты показал в testbed.exe это замечательно, но однооконно! Где же dockable toolbars (с окошечком настройки кстати говоря), dockable child windows, MDI наконец?


    CS>>MDI не будет точно. MDI это usability disaster. Все остальное будет.


    A>MDI это распространённая оконная модель от которой в некоторых случаях трудно отказаться. Не надо это рассмотривать именно как Multiple Document Interface. Нередко MDI используется как Multiple View.


    "Нередко MDI используется как Multiple View." Это где например?

    Excel — это единственная программа где мне пришлось
    использовать Multiple View но там MDI к этому не имеет никакого
    отношения. В MFC тоже все руками сделано.


    CS>>А если серьезно то Harmonia родилась не от хорошей жизни. Именно из-за того что система HWND уже ответила однозначным отказом.

    CS>>См. ссылку верху.

    A>То есть гармонию начали писать когда не смогли сделать нормальный custom draw для treeview? Да даже если бы это было невозможно, сколько раз в процессе использования программы её окно меняет размеры? Короче странная причина, что называется не верю! Давай другие


    Внимание. Я не сотрудник evernote.corp. И никакого отношения к продукту не имею
    (там только мой engine крутится).

    Как оно внутри устроено — не ведаю. Знаю что WTL.
    Знаю одно — технически UI писали люди уровня выше которго я просто не ведаю.
    Они вытащили все что можно из HWND решения.
    Но полупрозрачноть например пришлось делать отдельными top-level окнами
    лежащими поверх. По другому в Windows — никак.
    Эти окна кстати то что ты видишь как "тормоза" при ресайзе.
    Ресайз в такого рода приложении делается часто т.к. основное место приложение — в трее.

    Вот к этому (tech lead UI group) руку приложил, да.
    http://terrainformatica.com/screenshots/windowless_java.jpg
    Это windowless UI написанный с нуля на Java.
    По мощности Harmonia превосходит этот framework в разы.
    (на этом форуме есть люди знающие оба проекта изнутри, соврать не дадут)

    Этим приложением пользуются 70% риэлторов Северной Америки.
    Продажа недвижимости — второй по объему рынок в США.
    Я думаю это достаточный уровень серьезности для того чтобы считать
    фразу "Я не вижу причин использовать Harmonia в серьёзных проектах."
    отдельным частным мнением г. adontz

    Только без обид, если я случайно чем зацепил: не хотел, не хочу и хотеть не буду — некогда.
  • Re[7]: Добавил Animation
    От: c-smile Канада http://terrainformatica.com
    Дата: 07.07.05 05:35
    Оценка:
    Здравствуйте, adontz, Вы писали:

    A>Здравствуйте, c-smile, Вы писали:


    CS>>Главное чтобы была альтернатива и удобный event routing.


    A>Альтернатива тут нужна как телеге пятое колесо. Есть устоявшееся поведение. Либо оно копируется, либо имеем отклонение от привычного, которое выглядит как глюк. Ты же ведь не предлагаешь двигаться в другом направлении. Ты предлагаешь вообще не двигаться.


    Абсолютно верно. Если писать "морды лица к БД" силами индусского бодишопа то да — самое оно.

    Но задачи-то разные бывают. Глянь на MSN Messenger через Spy++ — много нового узнаешь. (Например что есть така штука как DirectUI — сиречь фирменный MS framework — windowless UI недоступный внешним разработчикам)
    Или вообще на всю сюиту MSN. MS Money тоже вельми интерсный прожект с точки
    зрения UI. Или тот же MS Office — там вообще все нестандартно свое. И т.д.
    Это я к тому что Продукты (с большой буквы) в рамки стандартных HWND не влазят.


    CS>>А то как сейчас обработка Tab сделана в Windows — тут читай , тут не читай, тут рыбу заворачивали, а вот здесь у нас вообще ActiveX контейнер и начинаем плясать через message pretranslate.


    A>Ну и замечательно всё реализовано! Если каждая часть в отдельности корректна, то вся система в целом тоже корректна.


    Наверное.
    Re[7]: Добавил Animation
    От: c-smile Канада http://terrainformatica.com
    Дата: 07.07.05 06:01
    Оценка: :))
    Здравствуйте, adontz, Вы писали:

    WM>>Не столько красотой, сколько эргономичностью. Аккуратно поданная информация лучше воспринимается.


    A>Аккуратно можно и без Harmonia Harmonia нужна именно для красоты.


    А кррасота — стрррашная сила.

    На самом деле 2006 будет интересным годом — сойдуться на рынке
    PC крррасота в виде Mac OS и .... Windows XP

    И будем посмотреть что больше нужно народу — кнопки в стиле слез
    или кнопки в стиле "сорванная танковая башня".

    Удаляюсь под музыку "А в танк ударила болванк-а-а-а...."
    Re[6]: Добавил Animation
    От: adontz Грузия http://adontz.wordpress.com/
    Дата: 07.07.05 07:54
    Оценка:
    Здравствуйте, c-smile, Вы писали:

    A>>Это то что делает кнопка в Windows и работая под Windows я ожидаю такого же поведения от всех кнопок.

    CS>Нет проблем. Меняется одна строка.
    CS>Фенечка состоит в том что у сеня есть выбор.

    Ну тем более поменяй по крайней мере в #ifdef _WIN32/#endif

    A>>нет, лучше если она будет циклична


    CS>При Custom Draw для TreeView не работает например node collapsing animation.


    Это что? Оно мне надо?

    CS>Короче или то или то а все вместе — как всегда.

    CS>И сколько их уже всяких написано. От хорошей жизни?

    Нет не от хорошей. Не хватает контрола TreeList.

    A>>Message maps это mapping of message to handler в любом виде.


    CS>Есть понятие физических (первичных) событий (мышь клавиатура)

    CS>и логических (вторичных) (click , focus, value changed)

    CS>Первые как правило уже обрабатываются и так

    CS>а для вторых имеет смысл использовать delegates.

    И как на них подписаться? То есть чтобы метод A и событие B как-то связать просто объявить метод A недостаточно.

    A>>MDI это распространённая оконная модель от которой в некоторых случаях трудно отказаться. Не надо это рассмотривать именно как Multiple Document Interface. Нередко MDI используется как Multiple View.

    CS>"Нередко MDI используется как Multiple View." Это где например?

    Кажися 3D Studio Max

    A>>То есть гармонию начали писать когда не смогли сделать нормальный custom draw для treeview? Да даже если бы это было невозможно, сколько раз в процессе использования программы её окно меняет размеры? Короче странная причина, что называется не верю! Давай другие


    CS>Внимание. Я не сотрудник evernote.corp. И никакого отношения к продукту не имею

    CS>(там только мой engine крутится).

    Уговорил

    CS>Только без обид, если я случайно чем зацепил: не хотел, не хочу и хотеть не буду — некогда.


    Да ладно, было бы на что А вот Зверёк чего-то надулся

    На самом деле у меня самого были мысли (в действительности уже давно не только мысли) начёт GUI Framework (вернее насчёт Framework вообще, и GUI в частности). HWND-less туда как я сейчас думаю если и вписывается, то только за счёт полной эмуляции HWND. Возникает вопрос — кто из нас не прав?
    A journey of a thousand miles must begin with a single step © Lau Tsu
    Re[6]: Добавил Animation
    От: adontz Грузия http://adontz.wordpress.com/
    Дата: 07.07.05 08:02
    Оценка:
    Здравствуйте, c-smile, Вы писали:

    A>>ИМХО обе части смотряться плохо и вот почему. Custom Draw TreeView не кеширует (просто не может этого делать) многие вещи и рисует всё заново, а основная программа тоже ничего не кеширует (потому как не догадались), оттого всё и мигает. HWND-less часть просто напросто рисуется раз в секунду, с большим запаздыванием из-за чего у меня возникает чувство что она вообще медленнее рисуется.

    A>>Выводы: Custom Draw для TreeView плохо реализован, HWND-less тормозит сам по себе.

    CS> Ты глянь-ка Spy++. Узнаешь много нового. Это во первых, а во вторых

    CS>При Custom Draw для TreeView не работает например node collapsing animation.
    CS>Короче или то или то а все вместе — как всегда.

    OK, вот вопрос на засыпку. Почему, когда я двигаю правый край окна, дерево мигнает? Ведь оно не меняет ни свои размеры ни положение. правильный ответ — это программисты напортачили. Дерево явно перерисовывается гораздо чаще чем надо.
    A journey of a thousand miles must begin with a single step © Lau Tsu
    Re[7]: Добавил Animation
    От: WinterMute Россия http://yarrr.ru
    Дата: 07.07.05 12:50
    Оценка:
    A>60 говоришь? Пожалуйста! Тест на 60 кнопок У меня всё ок
    Этот пример ничего не показывает. Если активно ресайзить окно, загрузка процессора будет под 100%, как при ресайзе любого окна. Ты попробуй сделать летающие по форме кнопки. Я тут выкладывал класс Dib, для операций с dib'ами, там летало примерно 5 объектов, каждый ~ 100x100, с частотой обновления 25 кадров в секунду, загрузка проца была порядка 2%, это с альфаблендингом.

    WM>>Мне недавно понадобилось сделать контрол который бы вел себя как радиокнопка, но выглядел иначе. Я подумал -- фигня! Возьму радиокнопку, определю код отрисовки и будет мне счастье. Ага. установка стиля ownerDraw затёрла информацию о типе контрола, т.е. теперь Windows даже не догадывался что это радиокнопка и мне пришлось всю ее функциональность реализовывать заново. Извини за технические подробности.


    A>Ну и что? Каким образом это аргумент против стандартной (не custom draw) радиокнопки?


    Радиокнопку редко приходится менять, а вот навесить на кнопку иконку, это совсем не экзотика. Проблемы остаются те-же.

    WM>>Стоит ли заморочится чтобы избежать таких проблем в будующем? По-моему да.


    A>По моему заморачиватся на странных контролах не стоит, которые ведут себя как утка, но выглядят как идюк.


    Не надо путать, если я сделаю едит-бокс, который будет вести себя как кнопка, то это грех, если я делаю _неизвестно_что_ и хочу чтобы оно вело себя
    как кнопка в этом нет ничего плохово (конечно, если оно выглядит похожим на кнопку). По-любому, нужно разделтять внешний вид и представление

    WM>>Есть большой класс программ, из-за отсутствия этих фишек не пострадают. VS например.

    A>Плохой пример VS поддерживает Accessibility так же как и MS Office, хотя конечно набирать программы на слух не очень удобно.

    A>Одно дело добавить манифест — другое переписывать уже существующий код.

    Такое придётся делать раз в три года. Ничего ужастного по-моему.

    A>>>Ведь по сути у вас What You See Is Something Like What You Get. В чём редактировать HTML для диалогов и в чём его предпросматривать? У вас уже width="%" обрабатывается как-то по-особенному, дальше больше...

    WM>>"width%%", если быть точнее. HTML это сложно?

    A>HTML как таковой не сложно. Сложно то, что его усложнили HTML диалог открытый в браузере и показанный программой выглядят по разному. Это плохо.


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

    WM>>И, если видел Оперу: она поддерживает скины, диалоги стандартные, инородно не выглядят.


    A>Да ну? По-моему просто отвратитеььно выглядят даже родные диалоги.

    A>

    "Родные", это ты имеешь ввиду дефолтную тему, опера поддерживает и нативную, но мне больше всего нравится "Sofa King". Впрочем, мы совсем не о том, я имел ввиду нативные диалоги, сохранения файла например.

    WM>>Т.е., думаешь клавиатура не поддерживается?

    A>Т.е. думаю, что не совсем.
    Это простор для деательности, а не ограничение которое не обойти. Две большие разницы.

    WM>>Не столько красотой, сколько эргономичностью. Аккуратно поданная информация лучше воспринимается.

    A>Аккуратно можно и без Harmonia Harmonia нужна именно для красоты.

    "H" обеспечивает нормальный layout, строить ресайзещиеся диалоги просто -- это удобно для пользователя.
    "H" позволяет легко форматировать текст внутри диалогов, это улучшает восприятие, -- это удобно для пользователя.
    Re[7]: Добавил Animation
    От: c-smile Канада http://terrainformatica.com
    Дата: 07.07.05 16:04
    Оценка:
    Здравствуйте, adontz, Вы писали:

    CS>>При Custom Draw для TreeView не работает например node collapsing animation.


    A>Это что? Оно мне надо?


    Вот и я спрашиваю. Оно тебе всегда надо?
    animation — это стандартное поведение tree view.
    И насколько мне известно не отключаемое пользователем никак.

    CS>>Короче или то или то а все вместе — как всегда.

    CS>>И сколько их уже всяких написано. От хорошей жизни?

    A>Нет не от хорошей. Не хватает контрола TreeList.


    А также не хватает новых...
    А также требуется изменить старые.....
    ... и далее по списку
    всех компонентных библиотек на рынке.

    Реально в быту в чистом виде используются 5-8 стандартных
    типов HWND. Все.


    A>>>Message maps это mapping of message to handler в любом виде.


    CS>>Есть понятие физических (первичных) событий (мышь клавиатура)

    CS>>и логических (вторичных) (click , focus, value changed)

    CS>>Первые как правило уже обрабатываются и так

    CS>>а для вторых имеет смысл использовать delegates.

    A>И как на них подписаться?

    class ClassA {
    void A() { ... }
    }
    ClassA a;
    Dialog b;

    b.buttonOk.onClick = &a.A;

    A>То есть чтобы метод A и событие B как-то связать просто объявить метод A недостаточно.


    Угу надо еще поставить знак равенства: onClick = &a.A

    A>На самом деле у меня самого были мысли (в действительности уже давно не только мысли) начёт GUI Framework (вернее насчёт Framework вообще, и GUI в частности). HWND-less туда как я сейчас думаю если и вписывается, то только за счёт полной эмуляции HWND. Возникает вопрос — кто из нас не прав?


    Я не знаю что ты имеешь ввиду под "эмуляции HWND" но основных проблем HWND системы
    две мне кажется: отсутствие прозрачности child windows в принципе и в том как сделан message routing.
    Re[7]: Добавил Animation
    От: c-smile Канада http://terrainformatica.com
    Дата: 07.07.05 16:13
    Оценка:
    Здравствуйте, adontz, Вы писали:

    A>OK, вот вопрос на засыпку. Почему, когда я двигаю правый край окна, дерево мигнает? Ведь оно не меняет ни свои размеры ни положение. правильный ответ — это программисты напортачили. Дерево явно перерисовывается гораздо чаще чем надо.


    Sancta simplicitas

    Там окно неквадратной формы. "Оно само" короче
    Это как раз тот случай когда "99% сделано до нас" ((с) adontz)

    Не знаю как тебе, но мне с этим ненавязчивым сервисом
    приходится бодаться в каждом проекте.
    Re[8]: Добавил Animation
    От: adontz Грузия http://adontz.wordpress.com/
    Дата: 07.07.05 23:22
    Оценка:
    Здравствуйте, c-smile, Вы писали:

    A>>Нет не от хорошей. Не хватает контрола TreeList.


    CS>А также не хватает новых...

    CS>А также требуется изменить старые.....
    CS>... и далее по списку
    CS>всех компонентных библиотек на рынке.

    CS>Реально в быту в чистом виде используются 5-8 стандартных

    CS>типов HWND. Все.

    Всё делается на основе ListView.
    A journey of a thousand miles must begin with a single step © Lau Tsu
    Re[8]: Добавил Animation
    От: adontz Грузия http://adontz.wordpress.com/
    Дата: 07.07.05 23:45
    Оценка:
    Здравствуйте, c-smile, Вы писали:

    CS>Там окно неквадратной формы. "Оно само" короче

    CS>Это как раз тот случай когда "99% сделано до нас" ((с) adontz)

    Я сейчас поглядел внимально, это же не TreeView а какой-то самопальный контрол . В чём прикол?

    Более того, судя по документации TreeView вообще не поддерживает custom draw. Я его с ListView перепутал, я ладно, но твоё При Custom Draw для TreeView не работает например node collapsing animation. к чему было?
    То есть твои люди уровня выше которго я просто не ведаю написали какой-то левый жутко фликерящий контрол похожий на TreeView и это аргумент в пользу того что HWND это плохо? Ну и ну!

    Кажется ты исходишь из неправильных предпосылок внушённых тебе людьми для тебя авторитетными, но увы не совсем правыми в своих убеждениях.
    Я вот сейчас скачал новую версию Janus http://www.rsdn.ru/janus/RAHSetup1_1_4.zip
    Для отображения дерева сообщений там АФАИК используется custom draw listview написаный Владом, но ни он, ни даже Internet Explorer_Server не мигают. И ИМХО Влад подвига не совешал, просто всё более-менее грамотно сделал.
    Может дело не в ужасном мерзком HWND, а в кривых руках некоторых личностей ?

    РЕЗЮМЕ:
    Ты не только не убедил меня в преимуществах WindowsLess UI, но и привёл аргументы и факты скорее тебя компроментирующие, чем доказывающие твою правоту.
    СОВЕТ:
    Пересмотри те причины из-за которых появилась Harmonia. Возможно не все они так очевидны и неоспоримы как казалось с начала.
    A journey of a thousand miles must begin with a single step © Lau Tsu
    Re[9]: Добавил Animation
    От: c-smile Канада http://terrainformatica.com
    Дата: 08.07.05 04:54
    Оценка:
    Здравствуйте, adontz, Вы писали:

    A>Здравствуйте, c-smile, Вы писали:


    CS>>Там окно неквадратной формы. "Оно само" короче

    CS>>Это как раз тот случай когда "99% сделано до нас" ((с) adontz)

    A>Я сейчас поглядел внимально, это же не TreeView а какой-то самопальный контрол . В чём прикол?


    Просто интересно в чем конкретно заключается это "внимательно"?

    Т.к. BlockNote я писал самолично то зуб
    тебе даю что слева (Project Folder) стоит TreeView. Но Spy++ тебе показывает
    нечто другое . Это subclassing называется и есть три способа установления
    истинного класса окна.

    A>Более того, судя по документации TreeView вообще не поддерживает custom draw. Я его с ListView перепутал, я ладно, но твоё При Custom Draw для TreeView не работает например node collapsing animation. к чему было?

    A>То есть твои люди уровня выше которго я просто не ведаю написали какой-то левый жутко фликерящий контрол похожий на TreeView и это аргумент в пользу того что HWND это плохо? Ну и ну!

    Чего-то ты не туда куда-то смотришь...
    Смотрим здесь

    Меня тут справедливо поправили: Custom Draw и animation работает — не работает animation при double-buffering (WS_EX_COMPOSITE) — единственный известный штатный способ устранения flickering в Tree View.

    A>Кажется ты исходишь из неправильных предпосылок внушённых тебе людьми для тебя авторитетными, но увы не совсем правыми в своих убеждениях.


    Ага. И лет мне восемь.

    A>Я вот сейчас скачал новую версию Janus http://www.rsdn.ru/janus/RAHSetup1_1_4.zip

    A>Для отображения дерева сообщений там АФАИК используется custom draw listview написаный Владом, но ни он, ни даже Internet Explorer_Server не мигают. И ИМХО Влад подвига не совешал, просто всё более-менее грамотно сделал.
    A>Может дело не в ужасном мерзком HWND, а в кривых руках некоторых личностей ?

    Ну видишь ты же сам и говоришь что свои controls — это оно.

    у меня вся Гармонь не мигает вкупе с
    HTML и alpha blending. А уж стартует и памяти кушает...

    A>РЕЗЮМЕ:

    A>Ты не только не убедил меня в преимуществах WindowsLess UI, но и привёл аргументы и факты скорее тебя компроментирующие, чем доказывающие твою правоту.
    A>СОВЕТ:
    A>Пересмотри те причины из-за которых появилась Harmonia. Возможно не все они так очевидны и неоспоримы как казалось с начала.

    ОТВЕТ: как бы это сказать помягше ...
    мне за мои GUI деньги платят — думаю не обидно будет?

    А если серьезно то я советы такого уровня аргументации выслушиваю со вниманием от
    людей показывающих пальцем на нечто и говорящих "вот этот GUI сделал я!".
    Уж не обессудь.
    Re[9]: Добавил Animation
    От: c-smile Канада http://terrainformatica.com
    Дата: 08.07.05 05:06
    Оценка:
    Здравствуйте, adontz, Вы писали:

    A>Здравствуйте, c-smile, Вы писали:


    A>>>Нет не от хорошей. Не хватает контрола TreeList.


    CS>>А также не хватает новых...

    CS>>А также требуется изменить старые.....
    CS>>... и далее по списку
    CS>>всех компонентных библиотек на рынке.

    CS>>Реально в быту в чистом виде используются 5-8 стандартных

    CS>>типов HWND. Все.

    A>Всё делается на основе ListView.


    Везет же человеку...
    Re[9]: Добавил Animation
    От: c-smile Канада http://terrainformatica.com
    Дата: 08.07.05 05:20
    Оценка:
    Здравствуйте, adontz, Вы писали про то что windowless никому не нужен.

    Вот блог Raymond Chen ( отец-основатель Windows GUI и архитектор Windows Shell )
    http://blogs.msdn.com/oldnewthing/archive/2005/02/11/371042.aspx
    Re[10]: Добавил Animation
    От: c-smile Канада http://terrainformatica.com
    Дата: 08.07.05 05:30
    Оценка:
    Здравствуйте, c-smile, Вы писали:

    CS>Здравствуйте, adontz, Вы писали про то что windowless никому не нужен.


    CS>Вот блог Raymond Chen ( отец-основатель Windows GUI и архитектор Windows Shell )

    CS>http://blogs.msdn.com/oldnewthing/archive/2005/02/11/371042.aspx

    Очень рекомендую почитать комментарии к статьям.
    Там живые люди ( включая команду Оффиса ) рассказывают как оно все там устроено.
    Оченно показательно.
    Re[4]: Добавил Animation
    От: Mazay Россия  
    Дата: 08.07.05 08:05
    Оценка: 1 (1)
    Здравствуйте, c-smile, Вы писали:

    A>>
  • Табуляция не циклична. Tab на последнем контрле и Shift+Tab на первом не работают.

    CS>А должна? Может лучше нужно "бибикать" в конце?.


    Не могу промолчать!!! Обязательно должна!!! Не все помнят про Shift-Tab, потому если проскочишь контрол, то назад не вернёшься. Как-то сталкивался с таким поведением программы — хотел убить программиста.


    PS. ИМХО
    Зря вы себя в рамки HTML загоняете: всё равно выглядеть будет не как в браузере, всё равно руками интерфейс писать никто не будет — будут дизайнером пользоваться (кстати дизайнер вообще будет?), сто пудов ваш HTML со временем выродится в свой особенный диалект. MS ведь не просто так изобретает XAML.
  • Главное гармония ...
    Re[10]: Добавил Animation
    От: adontz Грузия http://adontz.wordpress.com/
    Дата: 08.07.05 11:14
    Оценка:
    Здравствуйте, c-smile, Вы писали:

    CS> Просто интересно в чем конкретно заключается это "внимательно"?


    Внимательно это значит раньше я просто поверил тебе на слово, что там должен быть SysTreeView32, а сейчас проверил.

    CS>Т.к. BlockNote я писал самолично то зуб тебе даю что слева (Project Folder) стоит TreeView. Но Spy++ тебе показывает нечто другое . Это subclassing называется и есть три способа установления истинного класса окна.


    Ладно верю, что там TeeView subclassing. Не верю, что TreeView Сам по себе плохой. См. ниже.

    CS>Чего-то ты не туда куда-то смотришь...

    CS>Смотрим здесь

    А, ОК. Был не прав, но тебе от этого только хуже

    CS>Меня тут справедливо поправили: Custom Draw и animation работает — не работает animation при double-buffering (WS_EX_COMPOSITE) — единственный известный штатный способ устранения flickering в Tree View.


    A>>Я вот сейчас скачал новую версию Janus http://www.rsdn.ru/janus/RAHSetup1_1_4.zip

    A>>Для отображения дерева сообщений там АФАИК используется custom draw listview написаный Владом, но ни он, ни даже Internet Explorer_Server не мигают. И ИМХО Влад подвига не совешал, просто всё более-менее грамотно сделал.
    A>>Может дело не в ужасном мерзком HWND, а в кривых руках некоторых личностей ?

    CS>Ну видишь ты же сам и говоришь что свои controls — это оно.


    Нет, не оно см. ниже.

    CS>у меня вся Гармонь не мигает вкупе с HTML и alpha blending. А уж стартует и памяти кушает...


    Стандартные контролы никогда не кушали много памяти.

    CS>ОТВЕТ: как бы это сказать помягше ... мне за мои GUI деньги платят — думаю не обидно будет?


    Я же тебе не говорю брость всё. Я сказал подумай ещё. Кроме того деньги платят это факт не качества, а востребованности. Есть множетство откровенно ужаных библиотек для которых прото нет конкурентов.

    CS>А если серьезно то я советы такого уровня аргументации выслушиваю со вниманием от людей показывающих пальцем на нечто и говорящих "вот этот GUI сделал я!".

    CS>Уж не обессудь.

    Вобщем вот что я тебе скажу, друг мой. Есть большая разница мужду написанием контрола с нуля и custom draw контролом. Ниже ссылочка угадай на что... Хе-хе на custom draw tree-view который выглядит как ваш (ну не совсем так же, но очень похоже, во всяком случае рисовательная сложность та же) и не мигает. При попытке ответить на вопрос, почему я за 25 мин соорудил такую классную вешь, а твои гуру выпустили мигающий продукт, я к сожалению склоняюсь к мысли, что это тот случай, где не я такой умный, а они такие не умные.
    TreeViewCustomDrawTest
    Кстати стиль WS_EX_COMPOSITE я не нашёл. В принципе как можно убедится Spy++ даже если он и есть, он не используется

    Тут видишь ли какое дело. Когда ты ссылаешься свой авторитет, я думаю, а авторитет ли это для меня. И когда ты называешь людей которые делают фликерящие контролы очень умными, я начинаю сомневается, в том, что они действительно очень умные, тем более что их дерево просто неправильно рисуется
    A journey of a thousand miles must begin with a single step © Lau Tsu
    Re[11]: Добавил Animation
    От: adontz Грузия http://adontz.wordpress.com/
    Дата: 08.07.05 11:33
    Оценка:
    Здравствуйте, c-smile, Вы писали:

    CS>Там живые люди ( включая команду Оффиса ) рассказывают как оно все там устроено.


    Не путай тёплое с мягким. Офис как и IE это вообще говоря межплатформенные приложения. Использовать универсальную графическую библиотеку там просто необходимо. Другое дело, что какую именно и как она будет внутри устроена... CorelDRAW 12 например выходит в Win и Mac версиях, но все контролы в CorelDRAW родные. Я не думаю, что в Corel сидят ребята глупее чем в Microsoft.
    A journey of a thousand miles must begin with a single step © Lau Tsu
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.