bug-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Proposal to fix NSButtonCell issue with -setFont: -setTitle:


From: Quentin Mathé
Subject: Re: [PATCH] Proposal to fix NSButtonCell issue with -setFont: -setTitle:
Date: Tue, 30 Mar 2004 23:57:23 +0200

Le 30 mars 04, à 22:18, Fred Kiefer a écrit :

Quentin Mathé wrote:

Actually when you have set the font or the title of a button cell with the -setFont: or -setTitle: methods, you cannot anymore retrieve the image associated with the button cell because the cell has been converted from NSImageCellType to NSTextCellType and the -image method is written like that :
- (NSImage*) image
{
  if (_cell.type == NSImageCellType)
    {
      return _cell_image;
    }
  else
    return nil;
}
The code above is in accordance with the specification. Then I propose to not change this method but to simplify NSButtonCell -setFont: -setTitle: like in the patch below… in order to have the cell type not changed when you call -setFont: and -setTitle:. I propose to have the cell type changed only by the -setImagePosition: method. We have such issue because NSButtonCell unlike NSCell can have a title (_contents ivar with a specified font) without being an NSTextCellType cell but an NSImageCellType cell by using an image.

This patch looks dubious to me. NSButtonCell also has a method setAttributedTitle: if this gets called and later we ask for the title we get back an NSAttributedString where we would expect a normal NSString. What about decoupling the contents and the title of a button cell completely?

It was my first idea : to create a _title ivar, but I take a look at the Cocoa header for NSButtonCell and I saw no such ivar, then I have decided to still use the _contents ivar. To fix the problem you are talking about… when the method -title can return an attributed string we have the possibility to check that and to return in such case an NSString copy from the NSAttributedString.

Otherwise if we choose to decouple the title and the contents, then we should choose to be always an NSImageCellType or NSTextCellType cell (currently for NSButtonCell in Cocoa, the cell type is always NSTextCellType which is not the case with GNUstep).

Quentin.

--
Quentin Mathé
qmathe@club-internet.fr




reply via email to

[Prev in Thread] Current Thread [Next in Thread]