[GSoC] Новая таблица системных цветов.

All that makes Kolibri beautiful outside while we are working inside
  • Mario_r4 wrote:Наконец нашел время изучить. Сразу возник вопрос относительно обратной совместимости. Нужно либо согласовывать проектную документацию, либо использовать новые подфункции.
    ПЕРВЫЙ ВАРИАНТ:
    - с тебя новая подфункция, как она будет устроена, будет ли она возвращать всю таблицу, или кусками (WIN,BTN,3D,ELEM) или оба варианта - решай сам, пока оставляешь старую подфункцию. Собираешь дефолтный скин (обзовем его А).
    - с меня перевод программ (на fasm, c--, masm) на новую подфункцию, все что смогу изменю (ночная сборка, ISO).
    - там смотрим уже программы сорцов которых нету, или с которыми я не справлюсь и решаем как быть с ними, если софтины не важные или не сложные, то нужно будет выпилить старую подфункцию и выпилить это из скина. Если так то следом пойде переделывать скины (обзовем их Б).
    - Если обратную совместимость будет решено оставить, то пойду переделывать скины (типа А).

    PS: поначалу чисто дефолтный скин, чтобы 2 раза их не перепиливать.

    ВТОРОЙ ВАРИАНТ
    прописать пока структуру с системными цветами в MACROS.INC, типо:

    Code: Select all

    struct BOX
      left   dd ?
      top    dd ?
      width  dd ?
      height dd ?
    ends
    переписать приложения сначала на поддержку этой структуры
    а потом уже делать подфункцию!
    Это даст минимум риска по незаконченности работы с переписыванием приложений.
  • Две подфункции:
    - старая возвращает текущие цвета
    - новая функция "Получить расширенную таблицу цветов" - возвращает старые+новые цвета.

    В итоге, совместимость будет сохранена.
    Из хаоса в космос
  • сделал таблицу совместимости, в принципе ничего не должно поломать.
    Attachments
    1.txt (3.88 KiB)
    Downloaded 360 times
  • Предварительный набросок формата файла скинов.
    Старался учитывать темы подобные этой
    viewtopic.php?f=36&t=1612
    Spoiler:

    Code: Select all

    ;=============================================================================;
    ; Спецификация New Skin для операционной системы Kolibri                      ;
    ;=============================================================================;
    
    ; header ---------------------------------------------------------------------;
    struct data_header
        header       db 'KSKIN'                                           ; +5    ;
        version      dw ?                                                 ; +7    ;
        null         db 0                                                 ; +8    ;
    ends
    
    ; data -----------------------------------------------------------------------;
    struct SKIN_DATA
        win.face     dd ? ; - Фон обводки активного окна.                 ; +12   ;
        win.inface   dd ? ; - Фон обводки неактивного окна.               ; +16   ;
        win.frame    dd ? ; - Цвет внешней рамки активного окна.          ; +20   ;
        win.inframe  dd ? ; - Цвет внешней рамки неактивного окна.        ; +24   ;
        win.border   dd ? ; - Цвет внутренней рамки активного окна.       ; +28   ;
        win.inborder dd ? ; - Цвет внутренней рамки неактивного окна.     ; +32   ;
        win.body     dd ? ; - Фон клиентской части активного окна.        ; +36   ;
        win.title    dd ? ; - Цвет текста полосы заголовка.               ; +40   ;
        win.text     dd ? ; - Цвет текста в рабочей области окна.         ; +44   ;
        win.graytext dd ? ; - Цвет неактивного текста.                    ; +48   ;
        child.body   dd ? ; - Фон дочерних потоков и меню приложения.     ; +52   ;
        child.text   dd ? ; - Цвет текста дочерних потоков и меню.        ; +56   ;
        panel.body   dd ? ; - Фон панелей приложения.                     ; +60   ;
        panel.text   dd ? ; - Цвет текста панелей приложения.             ; +64   ;
        hint.body    dd ? ; - Фон подсказки.                              ; +68   ;
        hint.text    dd ? ; - Цвет текста подсказки.                      ; +72   ;
        btn.face     dd ? ; - Фон кнопки.                                 ; +76   ;
        btn.inface   dd ? ; - Фон неактивной кнопки.                      ; +80   ;
        btn.fcface   dd ? ; - Фон кнопки при наведении.                   ; +84   ;
        btn.frame    dd ? ; - Цвет рамки кнопки.                          ; +88   ;
        btn.inframe  dd ? ; - Цвет рамки неактивной кнопки.               ; +92   ;
        btn.fcframe  dd ? ; - Цвет рамки кнопки при навдении.             ; +96   ;
        btn.text     dd ? ; - Цвет текста кнопки.                         ; +100  ;
        btn.intext   dd ? ; - Цвет текста неактивной кнопки.              ; +104  ;
        btn.fctext   dd ? ; - Цвет текста кнопки при наведении.           ; +108  ;
        3d.face      dd ? ; - Основной цвет наложения тени (скролл).      ; +112  ;
        3d.dark      dd ? ; - Теневая обводка.                            ; +116  ;
        3d.light     dd ? ; - Световая обводка.                           ; +120  ;
        3d.shadow    dd ? ; - Цвет тени для неактивных элементов.         ; +124  ;
        gui.face     dd ? ; - Фон элементов.                              ; +128  ;
        gui.inface   dd ? ; - Фон неактивных элементов.                   ; +132  ;
        gui.fcface   dd ? ; - Фон элементов при наведении.                ; +136  ;
        gui.frame    dd ? ; - Рамка элемента.                             ; +140  ;
        gui.inframe  dd ? ; - Рамка неактивного элемента.                 ; +144  ;
        gui.fcframe  dd ? ; - Рамка элемента при наведении.               ; +148  ;
        gui.text     dd ? ; - Цвет текста элемента.                       ; +152  ;
        gui.intext   dd ? ; - Цвет текста неактивного элемента.           ; +156  ;
        gui.fctext   dd ? ; - Цвет текста элемента при наведении.         ; +160  ;
        res.a        dd ? ; - Зарезервированно.                           ; +164  ;
        res.b        dd ? ; - Зарезервированно.                           ; +168  ;
        res.c        dd ? ; - Зарезервированно.                           ; +172  ;
        res.d        dd ? ; - Зарезервированно.                           ; +176  ;
        res.e        dd ? ; - Зарезервированно.                           ; +180  ;
    ends
    
    ; params ---------------------------------------------------------------------;
    struct SKIN_PARAMS
        use.3d       db 0 ; - Использовать тени для элементов. (0 выкл)   ; +181  ;
        use.noangle  db 0 ; - Не рисовать угловые пиксели элементов.      ; +182  ;
        use.winrad   db 0 ; - Использовать скругленные края у окна.       ; +183  ;
                          ;   0 - нет; 1 - псевдо; 2 - альфа              ;       ;
        use.focus    db 0 ; - Отрисовывать наведение на элементы.         ; +184  ;
        use.face     db 1 ; - Использовать ли обводку вокруг окна (1 вкл) ; +185  ;
        face.w       db 3 ; - Ширина обводки                              ; +186  ;
        use.reserv   dw ? ; - Зарезервированно                            ; +188  ;
    ends
    
    ; title ----------------------------------------------------------------------;
    struct SKIN_TITLE
        text.align   db 0 ; 0 - слева, 1 - середина, 2 - справа           ; +189  ; 
        text.x       dw ? ; Смещение относительно положения в пикселях.   ; +191  ;
        text.y       dw ? ; Смещение относительно положения в пикселях.   ; +193  ;
        btn.align    db 1 ; 0 - слева, 1 - справа;                        ; +194  ;
        btn.w        dw ? ; Ширина системных кнопок.                      ; +196  ;
        btn.h        dw ? ; Высота системных кнопок.                      ; +198  ;
        btn.x        dw ? ; Смещение относительно положения в пикселях.   ; +200  ;
        btn.y        dw ? ; Смещение относительно положения в пикселях.   ; +202  ;
        btn.step     db ? ; Расстояние между системными кнопками.         ; +203  ;
        height       db ? ; Высота заголовка.                             ; +204  ;
        alpha        dd ? ; Цвет псевдо прозрачности                      ; +208  ;
        reserved     dd ? ; Зарезервированно.                             ; +212  ;
    ends
    
    ; image ----------------------------------------------------------------------;
    struct SKIN_ANGLE
        ltop.w       db ? ; Ширина левого верхнего изображения            ; +213  ;
        ltop.h       db ? ; Высота левого верхнего изображения            ; +214  ;
        lbot.w       db ? ; Ширина левого нижнего изображения             ; +215  ;
        lbot.h       db ? ; Высота левого нижнего изображения             ; +216  ;
        rtop.w       db ? ; Ширина правого верхнего изображения           ; +217  ;
        rtop.h       db ? ; Высота правого верхнего изображения           ; +218  ;
        rbot.w       db ? ; Ширина правого нижнего изображения            ; +219  ;
        rbot.h       db ? ; Высота правого нижнего изображения            ; +220  ;
    ends
    
    ; buttons --------------------------------------------------------------------;
    struct SKIN_BTN
       file 'close.raw'  ; btn.w * btn.h * 3 (BBGGRR) активное                    ;
       file 'iclose.raw' ; btn.w * btn.h * 3 (BBGGRR) неактивное                  ;
       file 'fclose.raw' ; btn.w * btn.h * 3 (BBGGRR) при наведении               ;
    
       file 'full.raw'   ; btn.w * btn.h * 3 (BBGGRR) активное                    ;
       file 'ifull.raw'  ; btn.w * btn.h * 3 (BBGGRR) неактивное                  ;
       file 'ffull.raw'  ; btn.w * btn.h * 3 (BBGGRR) при наведении               ;
    
       file 'mini.raw'   ; btn.w * btn.h * 3 (BBGGRR) активное                    ;
       file 'imini.raw'  ; btn.w * btn.h * 3 (BBGGRR) неактивное                  ;
       file 'fmini.raw'  ; btn.w * btn.h * 3 (BBGGRR) при наведении               ;
       ; ЕСЛИ  SKIN_PARAMS.use.winrad = 2 (полноценная альфа)                     ;
       ; ТО    btn.w * btn.h * 4 (RRGGBBAA)                                       ;
    ends
    
    ; images ---------------------------------------------------------------------;
    struct SKIN_IMAGE
       file 'ltop.raw'   ; ltop.w * ltop.h * 3 (BBGGRR) активное                  ;
       file 'lbot.raw'   ; lbot.w * lbot.h * 3 (BBGGRR) активное                  ;
       file 'rtop.raw'   ; rtop.w * rtop.h * 3 (BBGGRR) активное                  ;
       file 'rbot.raw'   ; rbot.w * rbot.h * 3 (BBGGRR) активное                  ;
       file 'iltop.raw'  ; iltop.w * iltop.h * 3 (BBGGRR) неактивное              ;
       file 'ilbot.raw'  ; ilbot.w * ilbot.h * 3 (BBGGRR) неактивное              ;
       file 'irtop.raw'  ; irtop.w * irtop.h * 3 (BBGGRR) неактивное              ;
       file 'irbot.raw'  ; irbot.w * irbot.h * 3 (BBGGRR) неактивное              ;
       ; ЕСЛИ  SKIN_PARAMS.use.winrad = 2 (полноценная альфа)                     ;
       ; ТО    xxxx.w * xxxx.h * 4 (RRGGBBAA)                                     ;
    ends
    ;=============================================================================;
    
    Идеи, замечания, косяки мнения приветствуются.
    PS: запостил тут, чтобы в чате не отвлекать народ да и не затерялось.
  • Вдруг кому пригодится:
    Зависимости 0 функции
    Spoiler:

    Code: Select all

    ;--------------------------------------------+--------------+
    ;                 FUNCTION                   |     FILE     |
    ;--------------------------------------------+--------------+
    syscall_draw_window                          ; window.inc   ;
         |-> window._.sys_set_window             ; window.inc   ;
              -> wakeup_osloop                   ; kernel.asm   ;
              -> window._.check_window_position  ; window.inc   ;
              -> window._.set_window_clientbox   ; window.inc   ;
              -> waredraw                        ; window.inc   ;
                   -> window._.check_window_draw ; window.inc   ;
                   -> window._.window_activate   ; window.inc   ;
                   -> window._.set_screen        ; window.inc   ;
                        -> read_process_memory   ; taskman.inc  ;
              -> calculatescreen                 ; window.inc   ;
                   -> window._.set_screen        ; window.inc   ;
                        -> read_process_memory   ; taskman.inc  ;
         |-> window._.draw_window_caption.2      ; window.inc   ;
              -> dtext_asciiz_esi                ; font.inc     ;
         |-> drawwindow_I                        ; window.inc   ;
              -> draw_rectangle                  ; window.inc   ;
                   -> __sys_draw_line            ; vesa20.inc   ;
              -> drawwindow_I_caption            ; window.inc   ;
                   -> __sys_draw_line            ; vesa20.inc   ;
              -> vesa20_drawbar                  ; vesa20.inc   ;
         |-> __sys_draw_pointer                  ; mousedrv.inc ;
         |-> drawwindow_III                      ; window.inc   ;
              -> draw_rectangle                  ; window.inc   ;
                   -> __sys_draw_line            ; vesa20.inc   ;
              -> drawwindow_III_caption          ; window.inc   ;
                   -> __sys_draw_line            ; vesa20.inc   ;
              -> vesa20_drawbar                  ; vesa20.inc   ;
         |-> drawwindow_IV                       ; skincode.inc ;
              -> draw_rectangle                  ; window.inc   ;
                   -> __sys_draw_line            ; vesa20.inc   ;
              -> drawwindow_IV_caption           ; skincode.inc ;
                   -> sys_putimage.forced        ; kernel.asm   ;
              -> vesa20_drawbar                  ; vesa20.inc   ;
    ;============================================================
    Текущий формат скинов без купюр и макросов:
    Spoiler:

    Code: Select all

    Signature            dd 'SKIN'     ;+4
    Version              dd 1          ;+8
    
    Params               dd 0x14       ;+12  offset dd*5  = 20
    Buttons              dd 0x64       ;+16  offset dd*25 = 100
    Bitmaps              dd 0x80       ;+20  offset dd*32 = 128
    
    ; params
    height               dd 21         ;+24
    margins.right        dw 43         ;+26
    margins.left         dw 5          ;+28
    margins.top          dw 1          ;+30
    margins.bottom       dw 1          ;+32
    
    active.binner        dd 0xE1E1E1   ;+36
    active.bouter        dd 0xA1A1A1   ;+40
    active.bframe        dd 0xE1E1E1   ;+44
    
    inactive.binner      dd 0xE1E1E1   ;+48
    inactive.bouter      dd 0xA1A1A1   ;+52
    inactive.bframe      dd 0xE1E1E1   ;+56
    
    dtpsize              dd 40         ;+60
    
    sc.frame             dd 0x003E3635 ;+64
    sc.grab              dd 0x00524947 ;+68
    sc.grab_button       dd 0x00524947 ;+72
    sc.grab_button_text  dd 0x00FFFFFF ;+76
    sc.grab_text         dd 0x00444444 ;+80
    sc.work              dd 0x00E1E1E1 ;+84
    sc.work_button       dd 0x00EBEBEB ;+88
    sc.work_button_text  dd 0x002F2F2F ;+92
    sc.work_text         dd 0x00000000 ;+96
    sc.work_graph        dd 0x00635A56 ;+100
    
    BUTTON_1             dd 1          ;+104
    close.left           dw -18        ;+106
    close.top            dw 4          ;+108
    close.right          dw 13         ;+110
    close.bottom         dw 14         ;+112
    
    BUTTON_2             dd 2          ;+116
    mini.left            dw -36        ;+118
    mini.top             dw 4          ;+120
    mini.right           dw 13         ;+122
    mini.bottom          dw 14         ;+124
    
    but_common           dd 0          ;+128
    
    offset.1.a           dw 1          ;+130  id
    offset.1.b           dw 1          ;+132  active
    offset.1.c           dw 0xb4       ;+134  180
    offset.1.d           dw 0          ;+136  reserved
    
    offset.2.a           dw 1          ;+138  id
    offset.2.b           dw 0          ;+140  inactive
    offset.2.c           dw 0x013c     ;+142  316
    offset.2.d           dw 0          ;+144  reserved
    
    offset.3.a           dw 2          ;+146  id
    offset.3.b           dw 1          ;+148  active
    offset.3.c           dw 0x01c4     ;+150  452
    offset.3.d           dw 0          ;+152  reserved
    
    offset.4.a           dw 2          ;+154  id
    offset.4.b           dw 0          ;+156  inactive
    offset.4.c           dw 0x1774     ;+158  6004
    offset.4.d           dw 0          ;+160  reserved
    
    offset.5.a           dw 3          ;+162  id
    offset.5.b           dw 1          ;+164  active
    offset.5.c           dw 0x2d24     ;+166  11556
    offset.5.d           dw 0          ;+168  reserved
    
    offset.6.a           dw 3          ;+170  id
    offset.6.b           dw 0          ;+172  inactive
    offset.6.c           dw 0x2d6c     ;+174  11628
    offset.6.d           dw 0          ;+176  reserved
    
    ofs_common           dd 0          ;+180
    
    image.1.w            dd 2          ;+182
    image.1.h            dd 0x15       ;+184
    file 'left1.raw'                   ;+184+126=+310
    image.1.e            dw 0x9090     ;+312  (126 mod 4)
    
    image.2.w            dd 2          ;+316
    image.2.h            dd 0x15       ;+320
    file 'left2.raw'                   ;+320+126=446
    image.2.e            dw 0x9090     ;+448  (126 mod 4)
    
    image.3.w            dd 88         ;+452
    image.3.h            dd 0x15       ;+456
    file 'right1.raw'                  ;+456+5544=+6000
    
    image.4.w            dd 88         ;+6004
    image.4.h            dd 0x15       ;+6008
    file 'right2.raw'                  ;+6008+5544=+11552
    
    image.5.w            dd 1          ;+11556
    image.5.h            dd 0x15       ;+11560
    file 'center1.raw'                 ;+11560+63=+11623
    image.5.e            db 0x90       ;+11624  (63 mod 4)
    
    image.6.w            dd 1          ;+11628
    image.6.h            dd 0x15       ;+11632
    file 'center2.raw'                 ;+11632+63=+11695
    image.6.e            db 0x90       ;+11696  (63 mod 4)
                                       ;=11700
    
  • Akyltist wrote:

    Code: Select all

              -> wakeup_osloop                   ; kernel.asm   ;

    Code: Select all

            mov     [redrawmouse_unconditional], 1
            call    wakeup_osloop
    
    Логически это вызов redrawmouse из mousedrv.inc посредством osloop->__sys_draw_pointer. Код так организован, чтобы отрисовкой курсора всегда занимался главный поток, один из вариантов синхронизации, предотвращающий одновременную отрисовку одного и того же из нескольких потоков.
    Сделаем мир лучше!
  • CleverMouse wrote:
    Akyltist wrote:

    Code: Select all

              -> wakeup_osloop                   ; kernel.asm   ;

    Code: Select all

            mov     [redrawmouse_unconditional], 1
            call    wakeup_osloop
    
    Логически это вызов redrawmouse из mousedrv.inc посредством osloop->__sys_draw_pointer. Код так организован, чтобы отрисовкой курсора всегда занимался главный поток, один из вариантов синхронизации, предотвращающий одновременную отрисовку одного и того же из нескольких потоков.
    Спасибо за разъяснение, помоему оно даже было где то в исходниках, я к сожалению указывал чисто физическое расположение кода, так как с особенностью устройства ядра - пока только разбираюсь!
  • ТЕСТ РАСШИРЕННОЙ ТАБЛИЦЫ ЦВЕТОВ

    http://akyltist.ucoz.org/kolibri/kolibri.img

    Code: Select all

    /rd/1/Color
    Image

    Kernel API не менялся.
    Spoiler:

    Code: Select all

        mov     eax,48                        ; Функция 48 - стили отображения окон
        mov     ebx,3                         ; Подфункция 3 - получить стандартные цвета окон.
        mov     ecx,sc                        ; Указатель на буфер размером edx байт, под структуру
        mov     edx,192                       ; Размер таблицы цветов
        int     0x40                          ; Прерывание
    
    struc system_colors
    {
    __child_body   dd child_body
    __3d_face      dd 3d_face
    __3d_dark      dd 3d_dark
    __3d_light     dd 3d_light
    __win_title    dd win_title
    __win_body     dd win_body
    __btn_face     dd btn_face
    __btn_text     dd btn_text
    
    __win_text     dd win_text
    __panel_body   dd panel_body
    __win_face     dd win_face
    __win_inface   dd win_inface
    __win_frame    dd win_frame
    __win_inframe  dd win_inframe
    __win_border   dd win_border
    __win_inborder dd win_inborder
    
    __win_graytext dd win_graytext
    __child_frame  dd child_frame
    __child_text   dd child_text
    __panel_frame  dd panel_frame
    __panel_text   dd panel_text
    __hint_frame   dd hint_frame
    __hint_body    dd hint_body
    __hint_text    dd hint_text
    
    __btn_inface   dd btn_inface
    __btn_fcface   dd btn_fcface
    __btn_frame    dd btn_frame
    __btn_inframe  dd btn_inframe
    __btn_fcframe  dd btn_fcframe
    __btn_intext   dd btn_intext
    __btn_fctext   dd btn_fctext
    __3d_shadow    dd 3d_shadow
    
    __gui_face     dd gui_face
    __gui_inface   dd gui_inface
    __gui_fcface   dd gui_fcface
    __gui_frame    dd gui_frame
    __gui_inframe  dd gui_inframe
    __gui_fcframe  dd gui_fcframe
    __gui_text     dd gui_text
    __gui_intext   dd gui_intext
    
    __gui_fctext   dd gui_fctext
    __gui_select   dd gui_select
    __res_var2     dd reserved
    __res_var3     dd reserved
    __res_var4     dd reserved
    __res_var5     dd reserved
    __res_var6     dd reserved
    __res_var7     dd reserved
    }
    struct system_colors
    
    Вероятно одна из последних редакций таблицы цветов (ВАШИ ЗАМЕЧАНИЯ!)
    Spoiler:

    Code: Select all

        win_face     equ 0xE1E1E1 ; - Фон обводки активного окна.                 ; 1
        win_inface   equ 0xE1E1E1 ; - Фон обводки неактивного окна.               ; 2
        win_frame    equ 0x204962 ; - Цвет внешней рамки активного окна.          ; 3
        win_inframe  equ 0xA1A1A1 ; - Цвет внешней рамки неактивного окна.        ; 4
        win_border   equ 0xE1E1E1 ; - Цвет внутренней рамки активного окна.       ; 5
        win_inborder equ 0xE1E1E1 ; - Цвет внутренней рамки неактивного окна.     ; 6
        win_body     equ 0xE4DFE1 ; - Фон клиентской части активного окна.        ; 7
        win_title    equ 0x2F2F2F ; - Цвет текста полосы заголовка.               ; 8
        win_text     equ 0x000000 ; - Цвет текста в рабочей области окна.         ; 9
        win_graytext equ 0x666666 ; - Цвет неактивного текста.                    ; 0
        child_frame  equ 0x204962 ; - Цвет внешней рамки дочерних потоков         ; 1
        child_body   equ 0xD4D4D4 ; - Фон дочерних потоков и меню приложения.     ; 2
        child_text   equ 0x3C415B ; - Цвет текста дочерних потоков и меню.        ; 3
        panel_frame  equ 0x94AECE ; - Цвет внешней рамки панелей                  ; 4
        panel_body   equ 0xE4DFE1 ; - Фон панелей приложения.                     ; 5
        panel_text   equ 0x2F2F2F ; - Цвет текста панелей приложения.             ; 6
        hint_frame   equ 0x94AECE ; - Цвет внешней рамки подсказок                ; 7
        hint_body    equ 0xFAF8FA ; - Фон подсказки.                              ; 8
        hint_text    equ 0x3C415B ; - Цвет текста подсказки.                      ; 9
        btn_face     equ 0xEFEBEF ; - Фон кнопки.                                 ; 0
        btn_inface   equ 0xF4F2F4 ; - Фон неактивной кнопки.                      ; 1
        btn_fcface   equ 0xEFEBEF ; - Фон кнопки при наведении.                   ; 2
        btn_frame    equ 0x94AECE ; - Цвет рамки кнопки.                          ; 3
        btn_inframe  equ 0xB9CBE0 ; - Цвет рамки неактивной кнопки.               ; 4
        btn_fcframe  equ 0x94AECE ; - Цвет рамки кнопки при наведении.            ; 5
        btn_text     equ 0x2F2F2F ; - Цвет текста кнопки.                         ; 6
        btn_intext   equ 0x5F5F5F ; - Цвет текста неактивной кнопки.              ; 7
        btn_fctext   equ 0x222222 ; - Цвет текста кнопки при наведении.           ; 8
        3d_face      equ 0xCED0D0 ; - Основной цвет наложения тени (скролл).      ; 9
        3d_dark      equ 0xC7C7C7 ; - Теневая обводка.                            ; 0
        3d_light     equ 0xFFFFFF ; - Световая обводка.                           ; 1
        3d_shadow    equ 0xFFFFFF ; - Цвет тени для неактивных элементов.         ; 2
        gui_face     equ 0xFAF8FA ; - Фон элементов.                              ; 3
        gui_inface   equ 0xF6F3F6 ; - Фон неактивных элементов.                   ; 4
        gui_fcface   equ 0xFAF8FA ; - Фон элементов при наведении.                ; 5
        gui_frame    equ 0x94AECE ; - Рамка элемента.                             ; 6
        gui_inframe  equ 0xB9CBE0 ; - Рамка неактивного элемента.                 ; 7
        gui_fcframe  equ 0x94AECE ; - Рамка элемента при наведении.               ; 8
        gui_text     equ 0x2F2F2F ; - Цвет текста элемента.                       ; 9
        gui_intext   equ 0x5F5F5F ; - Цвет текста неактивного элемента.           ; 0
        gui_fctext   equ 0x2F2F2F ; - Цвет текста элемента при наведении.         ; 1
        gui_select   equ 0xC7C9C9 ; - Цвет фона полосы выделения текста .         ; 2
        reserved     equ 0x000000 ; - Зарезервированно.            
  • Отлично. Круто, что дело движется :)

    1. Цвета панелей исчезли. Может быть их можно как-то пофиксить, чтобы не ломать совместимость?
    2. Можно попросить написать программу для демонстрации всех цветов? :)
    Из хаоса в космос
  • Leency wrote:Отлично. Круто, что дело движется :)

    1. Цвета панелей исчезли. Может быть их можно как-то пофиксить, чтобы не ломать совместимость?
    2. Можно попросить написать программу для демонстрации всех цветов? :)
    Покажи плз, возможно не правильно в скин просто забил, т.к. старые цвета старался не трогать!
    Програмку допишу!
  • Скрин.
    Attachments
    JB4aklA.png
    JB4aklA.png (78.15 KiB)
    Viewed 8902 times
    Из хаоса в космос
  • Leency wrote:Скрин.
    Спасибо, все поправил. Да неправильно забиндил. Вместо Panel_Frame воткнул туда Panel_Body!
    Все ссылки в том же сообщении, буду допиливать приложение для наглядности!
  • Допилил приложение:
    Spoiler:Image
    1) подписаны цвета
    2) сделал разбиение на 4 группы
    3) все отрисовано системными цветами
    4) кнопки реагируют на "фокус", отрисованы системными цветами, за исключением стрелок 6 на 10 пикселей.

    ЯДРО: http://akyltist.ucoz.org/kolibri/kolibri.img
    Приложение: "Color" на "/rd/1/color"
  • За подсветку < / > при наведении спасибо. Но ты не понял, что я имел ввиду.

    Смотри: добавлено много новых цветов и я, и другие кто будет создавать или модифицировать скины слабо представляем как и где эти цвета должны использоваться. У цветов есть описание - да, но его не достаточно: нужна программа пустышка, с примером использования этих цветов. Т.е. программа ничего не делающая, а просто содержащая в себе элементы: обычная кнопка, неактивная кнопка, панель, editbox, текст, текст с тенью. Ну вроде, как программа "desktop" сейчас. На этой программе можно будет тестировать создаваемые скины.
    Это просто пожелание, извини, если напрягаю.
    Из хаоса в космос
  • Who is online

    Users browsing this forum: No registered users and 4 guests