Кто-нибудь может красиво рисовать ?

All that makes Kolibri beautiful outside while we are working inside
  • Для Sash, Count_Raven_Amiant и других, кто занимается созданием скинов. Начиная с версии 0.5.3.0 будет введён новый формат скинов, позволяющий отделить их от ядра. С новым форматом, перекомпиляция и в принципе какие либо изменения ядра не понадобятся. Все данные о скине будут находиться в одном файле (и это естественно будет не файл ядра :)).
    Для создания файла скина понадобится FASM. Пример описания скина в новом формате (7z|zip):

    Code: Select all

    include 'me_skin.inc'
    
    SKIN_PARAMS \
      height          = bmp_base.height,  \   ; высота скина
      margins         = [5:1:43:1],       \   ; поля заголовка, [слева:сверху:справа:снизу]
      colors active   = [binner=0x00081d: \   ; цвет внутренней линии границы окна
                         bouter=0x00081d: \   ; цвет внешней линии границы окна
                         bframe=0x0054e7],\   ; цвет границы окна
      colors inactive = [binner=0x00081d: \   ; то же самое,
                         bouter=0x00081d: \   ;   только для неактивных
                         bframe=0x1a8acc],\   ;   окон
      dtp             = 'myblue.dtp'          ; dtp файл цветов для окон без скина
    
    SKIN_BUTTONS \
      close    = [-21:3][16:16],\             ; положение кнопок на заголовке
      minimize = [-39:3][16:16]               ; [слева:сверху][ширина:высота]
    
    SKIN_BITMAPS \
      left active   = bmp_left, \             ; ассоциация битмапов
      left inactive = bmp_left1,\             ;   ясно, что один битмап может
      oper active   = bmp_oper, \             ;   быть использован несколько раз,
      oper inactive = bmp_oper1,\             ;   тем самым можно уменьшить размер скина
      base active   = bmp_base, \             ;   (например, отображение части окна
      base inactive = bmp_base1               ;    одинаково в активном и неактивном состоянии)
    
    BITMAP bmp_left ,'left.bmp'               ; битмапы
    BITMAP bmp_oper ,'oper.bmp'               ; формат: BMP, 24 бита
    BITMAP bmp_base ,'base.bmp'
    BITMAP bmp_left1,'left_1.bmp'
    BITMAP bmp_oper1,'oper_1.bmp'
    BITMAP bmp_base1,'base_1.bmp'
  • Круто, особенно получение размеров BMP файла во время компиляции. Так держать!
  • Наконец-то нормальный формат скинов. Заодно экономится место на диске, потому что каждый маленький файл не занимает отдельный кластер. И вообще на каждый скин один файл - это правильно
  • Спасибо за лестные отзывы. Значит не зря старался. Хотел ещё добавить, что т.к. скин теперь будет практически исходником, можно использовать и директивы условной компиляции. Не знаю зачем, но можно :)
  • Я заметил, что тут есть такая вещь, как margins. Не совсем понятно, что они обозначают: позицию центральной картинки, позицию всех картинок или размеры полей, за которые можно будет взяться мышкой и изменить размер окна?
  • Скины имхо рулёзные, вот только кнопку закрытия окна надо отодвинуть чуть дальше от остальных. Это сократит вероятность случайного нажатия на неё.
  • ipr wrote:Скины имхо рулёзные, вот только кнопку закрытия окна надо отодвинуть чуть дальше от остальных. Это сократит вероятность случайного нажатия на неё.
    На данный момент средняя кнопка (развернуть) всё равно не работает, поэтому нет смысла на неё нажимать. Когда появится её поддержка, тогда, может, и переделаю
  • Sash
    Margins - это "поля заголовка", т.е. если у тебя есть координаты заголовка окна (а они есть, и равны [0:0:window width:skin height]), и от каждой координаты отнять соответствуюшее число из margins, то получатся координаты прямоугольника, в котором должен располагаться текст заголовка. Для получения этих margins будет введена новая системная функция (видимо, 48/7). Также, margins будут использоваться самим ядром после введения функции установки заголовка окна, при этом ядро само будет рисовать заголовок в нужном месте, и с "..." если нужно. Пока же это будут делать сами приложения (если захотят, конечно). Очень рекомендую этими margins пользоваться, как дизайнерам, так и программистам.
  • Sash
    А почему бы её тогда не убрать временно?
  • Насколько я знаю, она скоро уже будет работать, тока т-с-с!
  • Heavyiron
    Ладно, никому не скажу :-)
  • Насколько я понял, теперь dtp-файл (таблица стандартных цветов) включен прямо в файл скина. Если так, то есть предложение удалить нафиг приложение GRSCREEN, а в autorun.dat заменить его на JPEGVIEW с параметром BOOT. Вот все, что делает grscreen:
    - загружает /rd/1/myblue.dtp (игнорируя ошибки)
    - устанавливает таблицу стандартных цветов (функция 48::2)
    - устанавливает отрисовку фона как "растянуть" (функция 15::4)
    - запускает /rd/1/jpegview BOOT
    - ждет 1 секунду
    - завершается
    После чего JPEGVIEW сам загружает файл /rd/1/default.dtp и устанавливает таблицу цветов оттуда. Отрисовка фона также устанавливается в jpegview.
  • diamond
    Не в той теме ты написал, но идея хорошая. Сам я бы не допер до этого еще некоторое время. :-)
    Пожалуй, так и сделаю.
  • а когда однофайловые скины будут в жизни реализуемы или я старый дистр юзаю
  • Who is online

    Users browsing this forum: No registered users and 8 guests