--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/cocoa/combobox.h
+// Purpose: wxComboBox class
+// Author: David Elliott
+// Modified by:
+// Created: 2003/07/14
+// RCS-ID: $Id$
+// Copyright: (c) 2003 David Elliott
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef __WX_COCOA_COMBOBOX_H__
+#define __WX_COCOA_COMBOBOX_H__
+
+#include "wx/textctrl.h"
+
+//#include "wx/cocoa/NSTableView.h"
+
+// ========================================================================
+// wxComboBox
+// ========================================================================
+class WXDLLEXPORT wxComboBox: public wxTextCtrl, public wxComboBoxBase //, protected wxCocoaNSTableView
+{
+ DECLARE_DYNAMIC_CLASS(wxComboBox)
+ DECLARE_EVENT_TABLE()
+// WX_DECLARE_COCOA_OWNER(NSComboBox,NSTextField,NSView)
+// ------------------------------------------------------------------------
+// initialization
+// ------------------------------------------------------------------------
+public:
+ wxComboBox() { }
+ wxComboBox(wxWindow *parent, wxWindowID winid,
+ const wxString& value = wxEmptyString,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ int n = 0, const wxString choices[] = NULL,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxComboBoxNameStr)
+ {
+ Create(parent, winid, value, pos, size, n, choices, style, validator, name);
+ }
+
+ bool Create(wxWindow *parent, wxWindowID winid,
+ const wxString& value = wxEmptyString,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ int n = 0, const wxString choices[] = NULL,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxComboBoxNameStr);
+ virtual ~wxComboBox();
+
+// ------------------------------------------------------------------------
+// Cocoa callbacks
+// ------------------------------------------------------------------------
+protected:
+// ------------------------------------------------------------------------
+// Implementation
+// ------------------------------------------------------------------------
+public:
+ // wxCombobox methods
+ virtual void SetSelection(int);
+ // Overlapping methods
+ virtual wxString GetStringSelection();
+ virtual void SetStringSelection(wxString& selection);
+ // wxItemContainer
+ virtual void Clear();
+ virtual void Delete(int);
+ virtual int GetCount() const;
+ virtual wxString GetString(int) const;
+ virtual void SetString(int, const wxString&);
+ virtual int FindString(const wxString&) const;
+ virtual void Select(int) {}
+ virtual int GetSelection() const;
+ virtual int DoAppend(const wxString&);
+ virtual int DoInsert(const wxString&, int);
+ virtual void DoSetItemClientData(int, void*);
+ virtual void* DoGetItemClientData(int) const;
+ virtual void DoSetItemClientObject(int, wxClientData*);
+ virtual wxClientData* DoGetItemClientObject(int) const;
+ // wxComboBoxBase pure virtuals
+ virtual wxString GetValue() const
+ { return wxTextCtrl::GetValue(); }
+ virtual void SetValue(const wxString& value)
+ { return wxTextCtrl::SetValue(value); }
+ virtual void Cut() { wxTextCtrl::Cut(); }
+ virtual void Copy() { wxTextCtrl::Copy(); }
+ virtual void Paste() { wxTextCtrl::Paste(); }
+ virtual void SetInsertionPoint(long pos)
+ { wxTextCtrl::SetInsertionPoint(pos); }
+ virtual void SetInsertionPointEnd()
+ { wxTextCtrl::SetInsertionPointEnd(); }
+ virtual long GetInsertionPoint() const
+ { return wxTextCtrl::GetInsertionPoint(); }
+ virtual long GetLastPosition() const
+ { return wxTextCtrl::GetLastPosition(); }
+ virtual void Replace(long from, long to, const wxString& value)
+ { wxTextCtrl::Replace(from,to,value); }
+ virtual void SetSelection(long from, long to)
+ { wxTextCtrl::SetSelection(from,to); }
+ virtual void SetEditable(bool editable)
+ { wxTextCtrl::SetEditable(editable); }
+};
+
+#endif // __WX_COCOA_COMBOBOX_H__
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: cocoa/combobox.mm
+// Purpose: wxComboBox
+// Author: David Elliott
+// Modified by:
+// Created: 2003/03/16
+// RCS-ID: $Id:
+// Copyright: (c) 2003 David Elliott
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+#include "wx/app.h"
+#include "wx/combobox.h"
+#include "wx/log.h"
+
+#include "wx/cocoa/autorelease.h"
+#include "wx/cocoa/string.h"
+
+#import <AppKit/NSComboBox.h>
+
+IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxTextCtrl)
+BEGIN_EVENT_TABLE(wxComboBox, wxTextCtrl)
+END_EVENT_TABLE()
+// WX_IMPLEMENT_COCOA_OWNER(wxComboBox,NSComboBox,NSTextField,NSView)
+
+bool wxComboBox::Create(wxWindow *parent, wxWindowID winid,
+ const wxString& value,
+ const wxPoint& pos,
+ const wxSize& size,
+ int n, const wxString choices[],
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ wxAutoNSAutoreleasePool pool;
+ if(!CreateControl(parent,winid,pos,size,style,validator,name))
+ return false;
+
+ m_cocoaNSView = NULL;
+ SetNSTextField([[NSComboBox alloc] initWithFrame:NSMakeRect(0,0,30,30)]);
+ [m_cocoaNSView release];
+ [GetNSTextField() setStringValue:wxNSStringWithWxString(value.c_str())];
+ [GetNSControl() sizeToFit];
+ if(m_parent)
+ m_parent->CocoaAddChild(this);
+ return true;
+}
+
+wxComboBox::~wxComboBox()
+{
+}
+
+void wxComboBox::SetSelection(int)
+{
+}
+
+wxString wxComboBox::GetStringSelection()
+{
+ return wxEmptyString;
+}
+
+void wxComboBox::SetStringSelection(wxString& selection)
+{
+}
+
+void wxComboBox::Clear()
+{
+}
+
+void wxComboBox::Delete(int)
+{
+}
+
+int wxComboBox::GetCount() const
+{
+ return 0;
+}
+
+wxString wxComboBox::GetString(int) const
+{
+ return wxEmptyString;
+}
+
+void wxComboBox::SetString(int, const wxString&)
+{
+}
+
+int wxComboBox::FindString(const wxString&) const
+{
+ return 0;
+}
+
+int wxComboBox::GetSelection() const
+{
+ return 0;
+}
+
+int wxComboBox::DoAppend(const wxString&)
+{
+ return 0;
+}
+
+int wxComboBox::DoInsert(const wxString&, int)
+{
+ return 0;
+}
+
+void wxComboBox::DoSetItemClientData(int, void*)
+{
+}
+
+void* wxComboBox::DoGetItemClientData(int) const
+{
+ return NULL;
+}
+
+void wxComboBox::DoSetItemClientObject(int, wxClientData*)
+{
+}
+
+wxClientData* wxComboBox::DoGetItemClientObject(int) const
+{
+ return NULL;
+}
+