Итого получается, что рамка слева, справа и снизу имеет толщину 1+3+1=5 пикселей, сверху - _skinh пикселей.- рисуется внешняя рамка шириной 1 пиксель цвета 'outer' из скина
- рисуется промежуточная рамка шириной 3 пикселя цвета 'frame' из скина
- рисуется внутренняя рамка шириной 1 пиксель цвета 'inner' из скина
- рисуется заголовок (по картинкам из скина) в прямоугольнике (0,0) - (xsize,_skinh-1)
Я хочу получить рабочую область 400х250, поэтому создаю окно на 10 пикселей шире и на 5+_skinh пикселей выше, вот так:
Code: Select all
area_width = 400;
area_height = 250;
window_width = area_width + 10; // 5px border (left + right)
window_height = kol_skin_height() + area_height + 5; // bottom 5px border + title
Справа и снизу имеется нестыковка в один пиксель. То есть окно получилось на 1 пиксель шире и выше, чем надо (видно, как просвечивает фон и окно на заднем плане). Это баг или так задумано? Мне не тяжело отнять единичку при создании окна, но я не уверен, правильный ли это будет поступок.
Второй вопрос про события клавиатуры.
Я правильно понимаю, что ловится только событие нажатия? Отжатия (KeyUp) в принципе нет? Если это так, то я буду пытаться "угадать" отжатие в момент, когда прекратится поток событий от зажатой клавиши, но для этого мне нужно знать задержку перед авто-повтором и период авто-повтора. Я кажется нашёл их в /kernel/branches/Kolibri-acpi/drivers/usbhid, это они? Они всегда будут фиксированными?
; 1h. Start the new autorepeat timer with 250 ms initial delay
; and 50 ms subsequent delays.