psilogic: (Default)
psilogic ([personal profile] psilogic) wrote2008-12-06 01:33 pm

Небольшая авантюра :)

И до чего же мне остопи... осточертели разнообразные глюки виндового контрола ListView. В один прекрасный день я осознал, что на периодический отлов и исправление подобных глюков было потрачено много дней. Ну и решился я на такую авантюру: написать этот класс "ручками", так сказать, под себя. Пока получается. Позавчера сделал отображение и скроллинг, вчера - множественный выбор и перетаскивание/растягивание заголовков. Как там говорится в одной программистской поговорке: никогда не находится время, чтобы сделать что-то необходимое, но всегда находится время, чтобы переделать ;)



Это, кстати, к вопросу, как дела с bard-ом. Нормально дела, вовсю идет работа над новой версией.

[identity profile] http://technorati.com/people/technorati/ketmar/ (from livejournal.com) 2008-12-09 07:32 pm (UTC)(link)
а он вообще этого знать не должен. тогда уже зачем вся эта объектная система? писать диалог монолитом, да и всё. какая разница, если по сути это и получается монолит, где контроллер обязан знать, что в него засунули? вся стройная система разваливается на процедурную простыню.

[identity profile] psilogic.livejournal.com 2008-12-09 07:44 pm (UTC)(link)
ну я имел в виду, что контроллер не знает, какие именно контролы в него засунули, он знает только их список, который из контролов сейчас в фокусе, а какой дефолтный. в принципе, я согласен, что яйцо можно разбивать и с тупого конца... ;)))))

[identity profile] http://technorati.com/people/technorati/ketmar/ (from livejournal.com) 2008-12-09 07:50 pm (UTC)(link)
я предпочитаю, чтобы кубики как можно меньше друг о друге знали. в данном случае кубик знает, что в нём ещё какие-то кубики лежат, и знает, что у каждого кубика есть ::HandleEvent(). собственно, и всё. меньше знаешь — крепче спишь же.

[identity profile] psilogic.livejournal.com 2008-12-09 08:06 pm (UTC)(link)
в данном случае ты "знание о дефолтности" все равно можешь получить: если контрол, не будучи в фокусе, кушает Enter, это дефолтная кнопка :))

[identity profile] http://technorati.com/people/technorati/ketmar/ (from livejournal.com) 2008-12-09 08:16 pm (UTC)(link)
не обязательно. может, это спецконтрол «йа питаюсь энтерами»? %-)

кстате. а как у тебя тогда хоткеи на кнопки сделаны? у меня кнопки их сами в себе и проверяют — рано или поздно до них доедет.

[identity profile] psilogic.livejournal.com 2008-12-09 08:50 pm (UTC)(link)
это сделано как у тебя - через перебор :) собственно, только для клавиатурных эвентов кое-какие переборы и понадобились. мышиные и прочие эвенты - достаточно прохода от точки срабатывания до корня. кстати, а зачем тебе такие переборы, если есть великая и могучая Qt? ;)

[identity profile] http://technorati.com/people/technorati/ketmar/ (from livejournal.com) 2008-12-09 08:52 pm (UTC)(link)
затем, что это была консольная либа. %-)

[identity profile] psilogic.livejournal.com 2008-12-09 09:00 pm (UTC)(link)
как?! неужели вездесучий Qt еще не написан для консолей?! :)

[identity profile] http://technorati.com/people/technorati/ketmar/ (from livejournal.com) 2008-12-09 09:05 pm (UTC)(link)
для пингвинов можно извратнуться. для вантуза — увы. %-)

а вообще-то либа на Delphi была. %-)