propagating font to the individual columns, changing row heights according to font size, fixes #14578

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72393 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2012-08-29 09:00:51 +00:00
parent 87fcb4945a
commit 18d5c52d67

View File

@@ -314,6 +314,25 @@ protected:
}
- (void)setFont:(NSFont *)aFont
{
NSArray *tableColumns = [self tableColumns];
unsigned int columnIndex = [tableColumns count];
while (columnIndex--)
[[(NSTableColumn *)[tableColumns objectAtIndex:columnIndex] dataCell] setFont:aFont];
// todo introduce a common NSLayoutManager instance for all and use new method
[self setRowHeight:[aFont defaultLineHeightForFont]+2];
}
- (void) setControlSize:(NSControlSize) size
{
NSArray *tableColumns = [self tableColumns];
unsigned int columnIndex = [tableColumns count];
while (columnIndex--)
[[(NSTableColumn *)[tableColumns objectAtIndex:columnIndex] dataCell] setControlSize:size];
}
@end
//
@@ -369,6 +388,11 @@ wxListWidgetColumn* wxListWidgetCocoaImpl::InsertTextColumn( unsigned pos, const
[col1 setWidth:1000];
}
[col1 setResizingMask: NSTableColumnAutoresizingMask];
wxListBox *list = static_cast<wxListBox*> ( GetWXPeer());
if ( list != NULL )
[[col1 dataCell] setFont:list->GetFont().OSXGetNSFont()];
wxCocoaTableColumn* wxcol = new wxCocoaTableColumn( col1, editable );
[col1 setColumn:wxcol];
@@ -388,6 +412,39 @@ wxListWidgetColumn* wxListWidgetCocoaImpl::InsertCheckColumn( unsigned pos , con
[checkbox setTitle:@""];
[checkbox setButtonType:NSSwitchButton];
[col1 setDataCell:checkbox] ;
wxListBox *list = static_cast<wxListBox*> ( GetWXPeer());
if ( list != NULL )
{
NSControlSize size = NSRegularControlSize;
switch ( list->GetWindowVariant() )
{
case wxWINDOW_VARIANT_NORMAL :
size = NSRegularControlSize;
break ;
case wxWINDOW_VARIANT_SMALL :
size = NSSmallControlSize;
break ;
case wxWINDOW_VARIANT_MINI :
size = NSMiniControlSize;
break ;
case wxWINDOW_VARIANT_LARGE :
size = NSRegularControlSize;
break ;
default:
break ;
}
[[col1 dataCell] setControlSize:size];
// although there is no text, it may help to get the correct vertical layout
[[col1 dataCell] setFont:list->GetFont().OSXGetNSFont()];
}
[checkbox release];
unsigned formerColCount = [m_tableView numberOfColumns];