[PATCH v3 3/4] comctl32/listbox: Implement LBS_NODATA for single-selection listboxes

Gabriel Ivăncescu gabrielopcode at gmail.com
Mon Feb 18 06:34:36 CST 2019


On 2/18/19 2:19 PM, Nikolay Sivov wrote:
> On 2/18/19 3:09 PM, Gabriel Ivăncescu wrote:
> 
>> +static BOOL is_singlesel_NODATA(const LB_DESCR *descr)
>> +{
>> +    return (descr->style & (LBS_NODATA | LBS_MULTIPLESEL | 
>> LBS_EXTENDEDSEL)) == LBS_NODATA;
>> +}
>> +
>> +static BOOL is_multisel_NODATA(const LB_DESCR *descr)
>> +{
>> +    return (descr->style & LBS_NODATA) && (descr->style & 
>> (LBS_MULTIPLESEL | LBS_EXTENDEDSEL));
>> +}
>> +
> 
> This has to be consistent with existing IS_MULTISELECT(), both for 
> naming and usage throughout the code.
> 
> Could the same be achieved with IS_MULTISELECT() and direct style check 
> for LBS_NODATA?
> 
> Shortcuts with is_singlesel_NODATA() also seem avoidable, if we don't 
> need to allocate anything in this case, can we just check for 
> descr->items != NULL?
> 
> That's basically what I was trying to suggest since first version of 
> such helpers appeared.
> 
> 
> 

Hi Nikolay,

So you want me to use a macro? Or just all-caps naming? Or all lowercase?

And we can't check for descr->items != NULL since it's used in places 
where it can be NULL, in this case for normal listbox it will allocate 
the space (e.g. resize_storage).

I think I had it with manual checks originally but was told to move it 
into a helper.



More information about the wine-devel mailing list