]> git.saurik.com Git - wxWidgets.git/commitdiff
wxCocoa: Added basic (i.e. not working) implementation of wxComboBox
authorDavid Elliott <dfe@tgwbd.org>
Mon, 14 Jul 2003 15:58:33 +0000 (15:58 +0000)
committerDavid Elliott <dfe@tgwbd.org>
Mon, 14 Jul 2003 15:58:33 +0000 (15:58 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21965 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

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

diff --git a/include/wx/cocoa/combobox.h b/include/wx/cocoa/combobox.h
new file mode 100644 (file)
index 0000000..3ac3816
--- /dev/null
@@ -0,0 +1,106 @@
+/////////////////////////////////////////////////////////////////////////////
+// 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__
index 39ffa1b5b0b41e8f40e167a1319cfcd7540c266b..fa705b0c1083a2f9b9a3cda58bc0761d0724d176 100644 (file)
@@ -61,6 +61,8 @@ public:
     #include "wx/gtk/combobox.h"
 #elif defined(__WXMAC__)
     #include "wx/mac/combobox.h"
+#elif defined(__WXCOCOA__)
+    #include "wx/cocoa/combobox.h"
 #elif defined(__WXPM__)
     #include "wx/os2/combobox.h"
 #endif
diff --git a/src/cocoa/combobox.mm b/src/cocoa/combobox.mm
new file mode 100644 (file)
index 0000000..3d6564a
--- /dev/null
@@ -0,0 +1,125 @@
+/////////////////////////////////////////////////////////////////////////////
+// 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;
+}
+