/////////////////////////////////////////////////////////////////////////////
-// Name: cocoa/choice.mm
+// Name: src/cocoa/choice.mm
// Purpose: wxChoice
// Author: David Elliott
// Modified by:
// Created: 2003/03/16
-// RCS-ID: $Id:
+// Id: $Id$
// Copyright: (c) 2003 David Elliott
-// Licence: wxWindows license
+// Licence: wxWidgets licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/wxprec.h"
+
+#if wxUSE_CHOICE
+
#ifndef WX_PRECOMP
#include "wx/log.h"
#include "wx/app.h"
#include "wx/choice.h"
+ #include "wx/arrstr.h"
#endif //WX_PRECOMP
#include "wx/cocoa/string.h"
+#include "wx/cocoa/autorelease.h"
#import <AppKit/NSPopUpButton.h>
#import <AppKit/NSMenu.h>
m_sortedStrings = NULL;
}
+bool wxChoice::Create(wxWindow *parent, wxWindowID winid,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxArrayString& choices,
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ wxCArrayString chs(choices);
+
+ return Create(parent, winid, pos, size, chs.GetCount(), chs.GetStrings(),
+ style, validator, name);
+}
+
bool wxChoice::Create(wxWindow *parent, wxWindowID winid,
const wxPoint& pos,
const wxSize& size,
const wxValidator& validator,
const wxString& name)
{
+ wxAutoNSAutoreleasePool pool;
if(!CreateControl(parent,winid,pos,size,style,validator,name))
return false;
delete (wxClientData*)m_itemsClientData.Item(i);
}
m_itemsClientData.Clear();
-
- CocoaRemoveFromParent();
}
void wxChoice::CocoaNotification_menuDidSendAction(WX_NSNotification notification)
NSMenuItem *menuitem = [userInfo objectForKey:@"MenuItem"];
int index = [[(NSPopUpButton*)m_cocoaNSView menu] indexOfItem: menuitem];
int selectedItem = [(NSPopUpButton*)m_cocoaNSView indexOfSelectedItem];
- wxLogDebug("menuDidSendAction, index=%d, selectedItem=%d", index, selectedItem);
+ wxLogTrace(wxTRACE_COCOA,wxT("menuDidSendAction, index=%d, selectedItem=%d"), index, selectedItem);
wxCommandEvent event(wxEVT_COMMAND_CHOICE_SELECTED, m_windowId);
event.SetInt(index);
event.SetEventObject(this);
wxString wxChoice::GetString(int n) const
{
- return wxString([[(NSPopUpButton*)m_cocoaNSView itemTitleAtIndex:n] lossyCString]);
+ wxAutoNSAutoreleasePool pool;
+ return wxStringWithNSString([(NSPopUpButton*)m_cocoaNSView itemTitleAtIndex:n]);
}
void wxChoice::SetString(int n, const wxString& title)
[item setTitle:wxNSStringWithWxString(title)];
}
-int wxChoice::FindString(const wxString& title) const
+int wxChoice::FindString(const wxString& title, bool bCase) const
{
+ // FIXME: use wxItemContainerImmutable::FindString for bCase parameter
return [(NSPopUpButton*)m_cocoaNSView indexOfItemWithTitle:
wxNSStringWithWxString(title)];
}
int wxChoice::DoAppend(const wxString& title)
{
+ wxAutoNSAutoreleasePool pool;
NSMenu *nsmenu = [(NSPopUpButton*)m_cocoaNSView menu];
NSMenuItem *item;
if(m_sortedStrings)
void wxChoice::SetSelection(int n)
{
+ wxAutoNSAutoreleasePool pool;
[(NSPopUpButton*)m_cocoaNSView selectItemAtIndex:n];
}
+#endif