View Issue Details

IDProjectCategoryView StatusLast Update
0001947WishesPlugins API.Dialogpublic2015-07-20 11:24
Reportersamlyukov Assigned To 
PrioritynormalSeverityfeatureReproducibilityhave not tried
Status newResolutionopen 
Summary0001947: Добавить возможность расскраски Item-ов в DI_LISTBOX
DescriptionПо аналогии с редактором, добавить чего-нибудь, вроде, ECTL_ADDCOLOR для DI_LISTBOX. Точно бы заюзал для последнего AdvCmp2.
TagsNo tags attached.
Build

Activities

max rusov

2011-12-16 10:54

reporter   bugnote:0008164

Я лично обхожусь CustomControl'ом, но если добавлять этот функционал в стандартный ListBox, то, мне кажется, это лучше делать как OwnerDraw, т.е. посылкой нотификаций. Например:

DN_LISTGETCOUNT
DN_LISTGETITEM
DN_LISTDRAWITEM

samlyukov

2011-12-16 13:31

reporter   bugnote:0008165

сейчас же вроде есть DN_LISTCHANGE, а мне изменение цвета надо.

vskirdin

2011-12-22 13:07

administrator   bugnote:0008185

придумай АПИ ("на бумаге") и покажи ;-)

samlyukov

2011-12-24 03:30

reporter   bugnote:0008226

Last edited: 2011-12-24 03:46

в редакторе как-то так сделано:

DM_LISTSETITEMCOLORS
//Param1=ID
//Param2=FarListItemColors

struct FarListItemColors {
int Index;
int StartPos;
int EndPos;
struct FarColor Color;
};

возможно в VMENU_FLAGS понадобится флаг VMENU_USERCOLORLISTBOXITEM

вернее в LISTITEMFLAGS что-то вроде LIF_USERCOLOR

samlyukov

2012-10-05 18:41

reporter   bugnote:0009613

что-то никто не откликнулся, жаль.
а если так:

DM_LISTSETITEMCOLORS
 //Param1=ID
 //Param2=FarListItemColors

struct FarListItemColor
{
    intptr_t Index;
    intptr_t StartPos;
    intptr_t EndPos;
    struct FarColor Color;
};

struct FarListItemColors
{
    size_t StructSize;
    size_t ColorsCount; // кол-во элементов в Colors
    struct FarListItemColor *Colors;
};

красить, думаю, можно в ф-ции void VMenu::ShowMenu(bool IsParent)
в цикле for (int Y=Y1+((BoxType!=NO_BOX)?1:0), I=TopPos; Y<((BoxType!=NO_BOX)?Y2:Y2+1); Y++, I++)

vskirdin

2013-07-02 12:17

administrator   bugnote:0011237

Мне кажется, что DN_LISTDRAWITEM посимпатичнее будет, вот только как он будет с DN_CTLCOLORDLGLIST дружить?
Сначала DN_CTLCOLORDLGLIST, а потом DN_LISTDRAWITEM?
Или (при наличии флага DIF_LISTOWNERDRAW) только DN_LISTDRAWITEM?

samlyukov

2013-07-02 13:15

reporter   bugnote:0011239

DN_CTLCOLORDLGLIST, а затем DN_LISTDRAWITEM, тогда можно будет только немного чего-нибудь подкрасить, а не целиком все рисовать.

Issue History

Date Modified Username Field Change
2011-12-15 13:07 samlyukov New Issue
2011-12-16 10:54 max rusov Note Added: 0008164
2011-12-16 13:31 samlyukov Note Added: 0008165
2011-12-22 13:07 vskirdin Note Added: 0008185
2011-12-23 08:15 alexy Project Far Manager => Wishes
2011-12-24 03:30 samlyukov Note Added: 0008226
2011-12-24 03:39 samlyukov Note Edited: 0008226
2011-12-24 03:41 samlyukov Note Edited: 0008226
2011-12-24 03:46 samlyukov Note Edited: 0008226
2012-10-05 18:41 samlyukov Note Added: 0009613
2013-02-03 00:31 alexy Severity minor => feature
2013-07-02 12:17 vskirdin Note Added: 0011237
2013-07-02 13:15 samlyukov Note Added: 0011239