From 2e024d8690c2225ee1f50e07c2334efd928cf4b8 Mon Sep 17 00:00:00 2001 From: David Elliott Date: Mon, 18 Aug 2003 02:12:42 +0000 Subject: [PATCH] Added NSTableView support git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22985 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/cocoa/NSTableDataSource.h | 32 +++++++++++++++ include/wx/cocoa/NSTableView.h | 29 ++++++++++++++ src/cocoa/NSTableView.mm | 58 ++++++++++++++++++++++++++++ 3 files changed, 119 insertions(+) create mode 100644 include/wx/cocoa/NSTableDataSource.h create mode 100644 include/wx/cocoa/NSTableView.h create mode 100644 src/cocoa/NSTableView.mm diff --git a/include/wx/cocoa/NSTableDataSource.h b/include/wx/cocoa/NSTableDataSource.h new file mode 100644 index 0000000000..c9c687fe1e --- /dev/null +++ b/include/wx/cocoa/NSTableDataSource.h @@ -0,0 +1,32 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/cocoa/NSTableDataSource.h +// Purpose: wxCocoaNSTableDataSource Objective-C class +// Author: David Elliott +// Modified by: +// Created: 2003/08/05 +// RCS-ID: $Id$ +// Copyright: (c) 2003 David Elliott +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef __WX_COCOA_NSTABLEDATASOURCE_H__ +#define __WX_COCOA_NSTABLEDATASOURCE_H__ + +#import + +// ============================================================================ +// @class wxCocoaNSTableDataSource +// ============================================================================ +@interface wxCocoaNSTableDataSource : NSObject +{ +} + +// NSTableDataSource is a loosely defined protocol consisting of the +// following two message implementations +- (int)numberOfRowsInTableView: (NSTableView *)tableView; +- (id)tableView:(NSTableView *)tableView + objectValueForTableColumn: (NSTableColumn *)tableColumn + row: (int)rowIndex; +@end // wxCocoaNSTableDataSource + +#endif // _WX_COCOA_NSTABLEDATASOURCE_H_ diff --git a/include/wx/cocoa/NSTableView.h b/include/wx/cocoa/NSTableView.h new file mode 100644 index 0000000000..4edb1f22b9 --- /dev/null +++ b/include/wx/cocoa/NSTableView.h @@ -0,0 +1,29 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/cocoa/NSTableView.h +// Purpose: wxCocoaNSTableView class +// Author: David Elliott +// Modified by: +// Created: 2003/08/05 +// RCS-ID: $Id$ +// Copyright: (c) 2003 David Elliott +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef __WX_COCOA_NSTABLEVIEW_H__ +#define __WX_COCOA_NSTABLEVIEW_H__ + +#include "wx/hashmap.h" +#include "wx/cocoa/ObjcAssociate.h" + +WX_DECLARE_OBJC_HASHMAP(NSTableView); + +class wxCocoaNSTableView +{ + WX_DECLARE_OBJC_INTERFACE(NSTableView) +public: + virtual int CocoaDataSource_numberOfRows() = 0; + virtual struct objc_object* CocoaDataSource_objectForTableColumn( + WX_NSTableColumn tableColumn, int rowIndex) = 0; +}; + +#endif // _WX_COCOA_NSTABLEVIEW_H_ diff --git a/src/cocoa/NSTableView.mm b/src/cocoa/NSTableView.mm new file mode 100644 index 0000000000..ba027f2bb6 --- /dev/null +++ b/src/cocoa/NSTableView.mm @@ -0,0 +1,58 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: cocoa/NSTableView.mm +// Purpose: wxCocoaNSTableView / wxCocoaNSTableDataSource +// Author: David Elliott +// Modified by: +// Created: 2003/08/05 +// RCS-ID: $Id$ +// Copyright: (c) 2003 David Elliott +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +// ============================================================================ +// declarations +// ============================================================================ + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +#include "wx/wxprec.h" +#ifndef WX_PRECOMP + #include "wx/log.h" +#endif // WX_PRECOMP + +#include "wx/cocoa/ObjcPose.h" + +#include "wx/cocoa/NSTableDataSource.h" +#include "wx/cocoa/NSTableView.h" +#import + +// ---------------------------------------------------------------------------- +// globals +// ---------------------------------------------------------------------------- +WX_IMPLEMENT_OBJC_INTERFACE_HASHMAP(NSTableView) + +// ============================================================================ +// @class wxCocoaNSTableDataSource +// ============================================================================ +@implementation wxCocoaNSTableDataSource : NSObject + +- (int)numberOfRowsInTableView: (NSTableView *)tableView +{ + wxCocoaNSTableView *wxView = wxCocoaNSTableView::GetFromCocoa(tableView); + wxCHECK_MSG(wxView, 0, "No associated wx object"); + return wxView->CocoaDataSource_numberOfRows(); +} + +- (id)tableView:(NSTableView *)tableView + objectValueForTableColumn: (NSTableColumn *)tableColumn + row: (int)rowIndex +{ + wxCocoaNSTableView *wxView = wxCocoaNSTableView::GetFromCocoa(tableView); + wxCHECK_MSG(wxView, nil, "No associated wx object"); + return wxView->CocoaDataSource_objectForTableColumn(tableColumn,rowIndex); +} + +@end // implementation wxCocoaNSTableDataSource + -- 2.45.2