OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Январь, 2021 13:40

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: Понедельник, 08 Сентябрь, 2008 15:49 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Надо было быть ненормальными, чтобы разрабатывая кроссплатформенный фреймворк сразу для 2-х ОС (Мак и Вин), кадрировать "виджеты" с помощью нативных окошек. От ОС берётся базовое окно и граф. контекст на него. Больше от ОС ничего не требуется. Особый случай - стандартные контролы. Но они сделаны очень хитро и изолированно.


Такой подход создает проблемы с "native look and feel". И как вы верно оговорились - со стандартными контролами.

P.S. На маке (начиная с OSX) все окна состоят из вьюшек. Отличие только в том, что на маке "Window" и "View" - различаются на уровне API. Но это не принципиально (все равно универсальный фрэймворк вводит свою типизацию). И, кстати, на маке для ховера у вьюшки тоже есть соответствующее событие. Так что возможно, что реюз платформенных вьюшек - не такая уж "ненормальная" идея. Во всяком случае заюзать платформенную специфику (в случае, если универсальный фрэймворк не поддерживает нужную функциональность) при этом намного проще.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 08 Сентябрь, 2008 15:56 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2934
Откуда: г. Ярославль
Vlad писал(а):
Иван Кузьмицкий писал(а):
ББ - это ж не совсем винапи. Вернее, совсем не. А чтоб сделать ховер, надо опускаться на уровень винапи и, по сути, делать новую версию ББ. Я к такому не готов пока :)

Я имел ввиду, что на WinAPI это делается самым естественным и очевидным для данного фрэймворка способом - подпиской на соответствующее событие. Если BB не позволяет напрямую задействовать эту функциональность, то это его личные проблемы (как фрэймворка поверх другого фрэймворка, но с претензией на многоплатформенность), а не проблемы WinAPI.

Само собой. ББ не позволяет отслеживать некоторые события. Чтобы он стал это отслеживать, надо (по моему мнению), влезать в платформно-зависимую часть и добавлять требуемое.

Vlad писал(а):
Хорошо. По пунктам. Конкретно данное решение я считакю хаком, потому что:

Я, пожалуй, воздержусь от терминологических споров.

Vlad писал(а):
Я бы с вами мог согласиться, если бы вы разрешили п.1 и 4. Т.е., фиг с ним, с расширением фрэймворка (я сам стараюсь всячески избегать этой опции). Просто оформите это решение в виде компоненты с вменяемым интерфейсом (типа подписаться/отписаться от ховера) и минимумом требований от ее потребителей.

Компонент уже есть - это кнопка, которая реагирует на ховер. Это дело вполне можно обобщить до обёртки с простым интерфейсом, только я сначала хочу как минимум, опробовать данное решение в деле (вдруг чего вылезет, мало ли...). Да и посмотреть на хост повнимательнее - может, как-то получится решить это на нижнем уровне. Тогда и обёртка не понадобится, и наглядность будет подобающей.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 08 Сентябрь, 2008 16:31 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Иван Кузьмицкий писал(а):
Vlad писал(а):
Просто оформите это решение в виде компоненты с вменяемым интерфейсом (типа подписаться/отписаться от ховера) и минимумом требований от ее потребителей.

Компонент уже есть - это кнопка, которая реагирует на ховер.


И чего мне делать, если мне понадобится текст, реагирующий на ховер? Наследоваться от кнопки? :) Нет, под "компонентой с вменяемым интерфейсом", я понимаю компоненту для ховера, а не кнопку с ховером или еще чего "с ховером". Конкретный блок/кирпич/модуль с конкретной функциональностью. Вобщем не мне вам рассказывать про правильную компонентность...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 08 Сентябрь, 2008 16:46 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2934
Откуда: г. Ярославль
Влад, неужели Вам это действительно нужно? Ви таки что-то делаете на ящике?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 08 Сентябрь, 2008 17:03 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Иван Кузьмицкий писал(а):
Влад, неужели Вам это действительно нужно? Ви таки что-то делаете на ящике?


Если я скажу "нет, сейчас ничего не делаю", то буду послан? :)

P.S. Вы же сами говорили:

Иван Кузьмицкий писал(а):
P.S. Конечно, будь ховер встроен в ББ, было бы куда веселее, тут я с Вами согласен :)


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 08 Сентябрь, 2008 17:51 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2934
Откуда: г. Ярославль
Vlad писал(а):
Иван Кузьмицкий писал(а):
Влад, неужели Вам это действительно нужно? Ви таки что-то делаете на ящике?

Если я скажу "нет, сейчас ничего не делаю", то буду послан? :)
Ну Вы же приходите сюда, тратите время, силы - и только для того, чтобы поразмять мозги на оберонщиках? :)
Vlad писал(а):
Неужели бы вам не хотелось иметь такую компоненту, которую можно просто взять и совершенно очевидным способом заиспользовать, не вспоминая что и где надо написать, чтобы все это работало, и не копируя куски кода туда-сюда?
Имхо, самое очевидное в таком случае - обработать сообщения типа MouseIn и MouseOut. Но таковых не имеется, значит - либо лезть в хост-потроха, либо делать обходной путь. Мне понадобился ховер на кнопке, результат есть. Может, понемногу дойдёт дело и до компонента...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 08 Сентябрь, 2008 18:18 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Иван Кузьмицкий писал(а):
Ну Вы же приходите сюда, тратите время, силы - и только для того, чтобы поразмять мозги на оберонщиках? :)


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 08 Сентябрь, 2008 18:23 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9350
Откуда: Россия, Орёл
Vlad писал(а):
И чего мне делать, если мне понадобится текст, реагирующий на ховер? Наследоваться от кнопки? :) Нет, под "компонентой с вменяемым интерфейсом", я понимаю компоненту для ховера, а не кнопку с ховером или еще чего "с ховером". Конкретный блок/кирпич/модуль с конкретной функциональностью. Вобщем не мне вам рассказывать про правильную компонентность...

А вариант выделить Ваш элемент, нажать пункт меню "Add Hover Control" - и дальше получить возможность настраивать этот параметр Вас устроит? Так в ББ скроллеры добавляются к чему угодно. Иван так и хочет сделать вроде.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 08 Сентябрь, 2008 18:26 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Иван Кузьмицкий писал(а):
Имхо, самое очевидное в таком случае - обработать сообщения типа MouseIn и MouseOut.


Ну так почему бы так и не сделать, если это самое очевидное? И не обязательно копаться в хост потрохах (если это так страшно). Кто мешает делать тоже самое (проверку координат по таймеру) в отдельной компоненте и посылать MouseIn/MouseOut любому отображению, которое запросило данную функциональность?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 08 Сентябрь, 2008 18:30 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
А вариант выделить Ваш элемент, нажать пункт меню "Add Hover Control" - и дальше получить возможность настраивать этот параметр Вас устроит?


Если это любой элемент, то да, так устроит.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 08 Сентябрь, 2008 18:37 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9350
Откуда: Россия, Орёл
Да, любой.
В ББ вьюшки могут вкладываться как угодно друг в друга.
Благодаря, в частности, тому, что не используются нативные окна - контейнер имеет полный контроль над своей областью и только "сдаёт в аренду" в нужный момент вложенным элементам. Но и в вопросы функционирования этих элементов не лезет - просто передаёт произвольные сообщения транзитом.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 08 Сентябрь, 2008 18:45 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8442
Откуда: Троицк, Москва
Какая дурная дискуссия.

Устал уже повторять: следите за своими формулировками -- всегда находится кто-нить (а у нас тут Vlad давно на этой роли), кто прицепится к словам и поднимет ... как бы помягче выразиться ...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2021, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB