]> git.saurik.com Git - wxWidgets.git/commitdiff
Added NSTableView support
authorDavid Elliott <dfe@tgwbd.org>
Mon, 18 Aug 2003 02:12:42 +0000 (02:12 +0000)
committerDavid Elliott <dfe@tgwbd.org>
Mon, 18 Aug 2003 02:12:42 +0000 (02:12 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22985 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/cocoa/NSTableDataSource.h [new file with mode: 0644]
include/wx/cocoa/NSTableView.h [new file with mode: 0644]
src/cocoa/NSTableView.mm [new file with mode: 0644]

diff --git a/include/wx/cocoa/NSTableDataSource.h b/include/wx/cocoa/NSTableDataSource.h
new file mode 100644 (file)
index 0000000..c9c687f
--- /dev/null
@@ -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 <Foundation/NSObject.h>
+
+// ============================================================================
+// @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 (file)
index 0000000..4edb1f2
--- /dev/null
@@ -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 (file)
index 0000000..ba027f2
--- /dev/null
@@ -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 <AppKit/NSTableView.h>
+
+// ----------------------------------------------------------------------------
+// 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
+