DN_CTLCOLORDLGLIST

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

DN_CTLCOLORDLGLIST

Post by John Doe »

http://api.farmanager.com/ru/dialogapi/ ... glist.html
В структуре FarDialogItemColors получаю массив из 15 элементов, каким-то образом представляющи1 цветовую схему списка.

Но документация умалчивает, как же трактовать этот массив.
Глянул farcolor.hpp — там констант, содержащих в имени "LIST" больше 15, и идут они не по порядку.
Подскажите как с этим работать.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

DN_CTLCOLORDLGLIST

Post by DrKnS »

Глянул farcolor.hpp — там констант, содержащих в имени "LIST" больше 15, и идут они не по порядку.
Это значения, а не индексы.

Индексы можно посмотреть в vmenu.hpp.
История умалчивает, почему это не вошло в документацию, видимо, никто этим не пользовался.
User avatar
Alexey Samlyukov
Posts: 1765
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 7 times
Contact:

DN_CTLCOLORDLGLIST

Post by Alexey Samlyukov »

я активно пользовался, смотреть сорцы можно, например AdvCmpProc_CLIST.cpp
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

DN_CTLCOLORDLGLIST

Post by John Doe »

Спасибо, разобрался.
Вот например как покрасить листбокс в цвета меню.

Code: Select all

local F = far.Flags
local C = far.Colors
local MenuColorIndex = {
  C.COL_MENUTEXT,             -- подложка
  C.COL_MENUBOX,              -- рамка
  C.COL_MENUTITLE,            -- заголовок - верхний и нижний
  C.COL_MENUTEXT,             -- Текст пункта
  C.COL_MENUHIGHLIGHT,        -- HotKey
  C.COL_MENUTEXT,             -- separator
  C.COL_MENUSELECTEDTEXT,     -- Выбранный
  C.COL_MENUSELECTEDHIGHLIGHT,-- Выбранный - HotKey
  C.COL_MENUSCROLLBAR,        -- ScrollBar
  C.COL_MENUDISABLEDTEXT,     -- Disabled
  C.COL_MENUARROWS,           -- '<' & '>' обычные
  C.COL_MENUARROWSSELECTED,   -- '<' & '>' выбранные
  C.COL_MENUARROWSDISABLED,   -- '<' & '>' Disabled
  C.COL_MENUGRAYTEXT,         -- "серый"
  C.COL_MENUSELECTEDGRAYTEXT, -- выбранный "серый"
}
local MenuPalette = {}
for i,v in ipairs(MenuColorIndex) do MenuPalette[i] = v and far.AdvControl(F.ACTL_GETCOLOR,v) end

local function mDlgProc (hDlg,Msg,Param1,Param2)
  if Msg==F.DN_CTLCOLORDLGLIST then return MenuPalette end
end
Post Reply

Return to “Разработка плагинов”