From: David Elliott Date: Mon, 14 Jul 2003 15:58:33 +0000 (+0000) Subject: wxCocoa: Added basic (i.e. not working) implementation of wxComboBox X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/421a84317fc3d53ac4fd64613f1af2d19018efc5 wxCocoa: Added basic (i.e. not working) implementation of wxComboBox git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21965 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/cocoa/combobox.h b/include/wx/cocoa/combobox.h new file mode 100644 index 0000000000..3ac38165e4 --- /dev/null +++ b/include/wx/cocoa/combobox.h @@ -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__ diff --git a/include/wx/combobox.h b/include/wx/combobox.h index 39ffa1b5b0..fa705b0c10 100644 --- a/include/wx/combobox.h +++ b/include/wx/combobox.h @@ -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 index 0000000000..3d6564ad8a --- /dev/null +++ b/src/cocoa/combobox.mm @@ -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 + +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; +} +