Есть желание сделать элемент типа палитры элементов в HiAsm или левой панели задач в проводнике Windows
в процессе приобщения элемента к BoxDrawManager появились вопросы к его автору
1) почему размер GUTTER никак не регулируется?
2) почему при передачи в draw области отрисовки текущего пункта появляется артефактная полоска после снятия выделения, как показано на рисунке? причем если в Draw передать область на 1 пиксель по высоте меноше реальной, то артефакты пропадают, но остается зазор неиспольозуемой области в 1 пиксель. Как это правильно делать?
пример на рисунке можно найти в FormsPalette.sha. Элемент есть на SVN, но в палитру пока не внесен
Этот топик читают: Гость
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
карма: 27 |
| ||
файлы: 1 | box_pal_manager.png [8.5KB] [344] |
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Dilma писал(а): появились вопросы к его авторуТы чего, прямо не можешь написать 1. Разве, вроде зависел от размера иконки по ширине. Но если регулировать, то как ? По высоте я не стал этого делать. 2. Вообще-то странные артефакты, никогда таких не видел. Надо разбираться в чем проблема. |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): Разве, вроде зависел от размера иконки по ширине.неа. Глядя на код видим
nesco писал(а): Вообще-то странные артефакты, никогда таких не видел. Надо разбираться в чем проблема.не факт, что менеджер используется должным образом. Хотя и не исключено, что в алгоритме отрисовки была случайно использована какая-то особенность отрисовки пунктов стандартных элементов... Будем считать этот пример тестом на оправдание основного св-ва менеджеров, которое гласит: будучи раз написанным менеджер может использоваться совместно с любыми иными элементами, поддерживающуми регламентированный протокол общения с ним. |
|||
карма: 27 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Dilma, поправил твой код, нормально все стало рисовать. Но это первое приближение.
Насчет Guttera надо подумать. Dilma писал(а): зависит он только от высоты итема и константНе совсем корректно -- константы это -- точно, но вот высота итема, расчитывается исходя из высоты иконки или текста (что больше), и в дальнейшем становится его шириной, те квадрат отрисовки будущей иконки ------------ Дoбавленo: Dilma писал(а): Нужно видимо его длиннуТо бишь ширину, наверное надо, но привязать к размеру иконки надо обязательно. ------------ Дoбавленo: Честно, я не думал, что ты прицепишь это менеджер еще куда-то, но скажу, что даже так, и то -- удачно. |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): То бишь ширину, наверное надо, но привязать к размеру иконки надо обязательно.представь себе, что я DrawBoxManager использую для отрисовки редактора строк с подцветкой синтаксиса. Там ширина Gutter-a зависит от чего угодно, но только не от каких-то иконок. Поэтому делать его отрисовку заранее полагая, что там будет иконка - это не верно. Во всяком случае, если мы не ограничим данный элемент только таким функционалом... nesco писал(а): Честно, я не думал, что ты прицепишь это менеджер еще куда-тону так ради этого такие заморочки и делались. Важно понять то, что чем шире и обобщеннее делаешь интерфейс, тем в большем количестве мест он может быть использован. |
|||
карма: 27 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Dilma писал(а): Во всяком случае, если мы не ограничим данный элемент только таким функционалом...Неее, думаю не оганичим, то было первое приближение. HiAsm, когда-то, с чего-то тоже начинался. ------------ Дoбавленo: Dilma писал(а): Там ширина Gutter-a зависит от чего угодноНо минимальную ширину, все же, задать надо, иначе муть получится. Может высоту текста взять для расчета ------------ Дoбавленo: Dilma писал(а): Поэтому делать его отрисовку заранее полагая, что там будет иконка - это не верноНу так я и написал nesco писал(а): исходя из высоты иконки или текста (что больше)Те без иконки привязка будет к высоте текста, а вот отступы надо сделать регулируемыми ------------ Дoбавленo: Я думаю, всеже можно сделать ширину настраиваемой, но ограничить по минимуму |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): Я думаю, всеже можно сделать ширину настраиваемой, но ограничить по минимумуда, только ограничителем можно взять константу внес окончательные исправления на SVN - впринципе пользоваться можно. кстате требовать то, чтобы вызывающая сторона была непременно предком PControl тоже не есть классно, как и пользование его Canvas и Font. Скажем почему я не могу захотеть рисовать не на элементе, а где-то в центре PBitmap И вот это еще не совсем понятно
|
|||
карма: 27 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Dilma писал(а): у SetBkMode вторым параметром не цвет задается, а прозрачность фона при выводе текстаСейчас точно не могу вспомнить где, но я встречал в кодах и установку цветом, а не кодом вывода. Но исправить не проблема. Dilma писал(а): кстате требовать то, чтобы вызывающая сторона была непременно предком PControl тоже не есть классно, как и пользование его Canvas и FontНад этим надо подумать |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): Сейчас точно не могу вспомнить где, но я встречал в кодах и установку цветом, а не кодом вывода. Но исправить не проблема.надо и там это будет поправить при встрече |
|||
карма: 27 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Dilma писал(а): надо и там это будет поправить при встречеВсе, что нашел у нас, все поправил |
|||
карма: 22 |
|
10