-/////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
// Name: listbox.cpp
-// Purpose:
-// Author: Robert Roebling
-// Created: 01/02/97
-// Id:
-// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
-// Licence: wxWindows licence
-/////////////////////////////////////////////////////////////////////////////
-
+// Purpose: wxListBox
+// Author: AUTHOR
+// Modified by:
+// Created: ??/??/98
+// RCS-ID: $Id$
+// Copyright: (c) AUTHOR
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "listbox.h"
#endif
-#include "wx/dynarray.h"
#include "wx/listbox.h"
-#include "wx/utils.h"
-//-----------------------------------------------------------------------------
-// wxListBox
-//-----------------------------------------------------------------------------
+#include "wx/dynarray.h"
+#include "wx/log.h"
+#if !USE_SHARED_LIBRARY
+ IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl)
+#endif
-IMPLEMENT_DYNAMIC_CLASS(wxListBox,wxControl)
+// ============================================================================
+// list box control implementation
+// ============================================================================
-wxListBox::wxListBox(void)
+// Listbox item
+wxListBox::wxListBox()
{
-};
+ m_noItems = 0;
+ m_selected = 0;
+}
-wxListBox::wxListBox( wxWindow *parent, wxWindowID id,
- const wxPoint &pos, const wxSize &size,
- int n, const wxString choices[],
- long style, const wxString &name )
+bool wxListBox::Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ int n, const wxString choices[],
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
{
- Create( parent, id, pos, size, n, choices, style, name );
-};
+ m_noItems = n;
+ m_selected = 0;
+
+ SetName(name);
+ SetValidator(validator);
+
+ if (parent) parent->AddChild(this);
+
+ wxSystemSettings settings;
+ SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW));
-bool wxListBox::Create( wxWindow *parent, wxWindowID id,
- const wxPoint &pos, const wxSize &size,
- int n, const wxString choices[],
- long style, const wxString &name )
+ m_windowId = ( id == -1 ) ? (int)NewControlId() : id;
+
+ // TODO create listbox
+
+ return FALSE;
+}
+
+wxListBox::~wxListBox()
{
- return TRUE;
-};
+}
-void wxListBox::Append( const wxString &item )
+void wxListBox::SetupColours()
{
- Append( item, (char*)NULL );
-};
+ SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW));
+}
-void wxListBox::Append( const wxString &WXUNUSED(item), char *WXUNUSED(clientData) )
+void wxListBox::SetFirstItem(int N)
{
-};
+ // TODO
+}
-void wxListBox::Clear(void)
+void wxListBox::SetFirstItem(const wxString& s)
{
-};
+ // TODO
+}
-void wxListBox::Delete( int WXUNUSED(n) )
+void wxListBox::Delete(int N)
{
-};
+ m_noItems --;
+ // TODO
+}
-void wxListBox::Deselect( int WXUNUSED(n) )
+void wxListBox::Append(const wxString& item)
{
-};
+ m_noItems ++;
+
+ // TODO
+}
-int wxListBox::FindString( const wxString &WXUNUSED(item) ) const
+void wxListBox::Append(const wxString& item, char *Client_data)
{
- return -1;
-};
+ m_noItems ++;
+
+ // TODO
+}
-char *wxListBox::GetClientData( int WXUNUSED(n) ) const
+void wxListBox::Set(int n, const wxString *choices, char** clientData)
{
- return (char*)NULL;
-};
+ m_noItems = n;
-int wxListBox::GetSelection(void) const
+ // TODO
+}
+
+int wxListBox::FindString(const wxString& s) const
{
- return -1;
-};
+ // TODO
+ return -1;
+}
-int wxListBox::GetSelections( wxArrayInt& WXUNUSED(aSelections) ) const
+void wxListBox::Clear()
{
- return 0;
-};
+ m_noItems = 0;
+ // TODO
+}
-wxString wxListBox::GetString( int WXUNUSED(n) ) const
+void wxListBox::SetSelection(int N, bool select)
{
- return "";
-};
+ // TODO
+}
-wxString wxListBox::GetStringSelection(void) const
+bool wxListBox::Selected(int N) const
{
- return "";
-};
+ // TODO
+ return FALSE;
+}
-int wxListBox::Number(void)
+void wxListBox::Deselect(int N)
{
- return 0;
-};
+ // TODO
+}
-bool wxListBox::Selected( int WXUNUSED(n) )
+char *wxListBox::GetClientData(int N) const
{
- return FALSE;
-};
+ // TODO
+ return (char *)NULL;
+}
+
+void wxListBox::SetClientData(int N, char *Client_data)
+{
+ // TODO
+}
+
+// Return number of selections and an array of selected integers
+int wxListBox::GetSelections(wxArrayInt& aSelections) const
+{
+ aSelections.Empty();
-void wxListBox::Set( int WXUNUSED(n), const wxString *WXUNUSED(choices) )
+/* TODO
+ if ((m_windowStyle & wxLB_MULTIPLE) || (m_windowStyle & wxLB_EXTENDED))
+ {
+ int no_sel = ??
+ for ( int n = 0; n < no_sel; n++ )
+ aSelections.Add(??);
+
+ return no_sel;
+ }
+ else // single-selection listbox
+ {
+ aSelections.Add(??);
+
+ return 1;
+ }
+*/
+ return 0;
+}
+
+// Get single selection, for single choice list items
+int wxListBox::GetSelection() const
{
-};
+ // TODO
+ return -1;
+}
-void wxListBox::SetClientData( int WXUNUSED(n), char *WXUNUSED(clientData) )
+// Find string for position
+wxString wxListBox::GetString(int N) const
{
-};
+ // TODO
+ return wxString("");
+}
-void wxListBox::SetFirstItem( int WXUNUSED(n) )
+void wxListBox::SetSize(int x, int y, int width, int height, int sizeFlags)
{
-};
+ // TODO
+}
-void wxListBox::SetFirstItem( const wxString &WXUNUSED(item) )
+void wxListBox::InsertItems(int nItems, const wxString items[], int pos)
{
-};
+ m_noItems += nItems;
-void wxListBox::SetSelection( int WXUNUSED(n), bool WXUNUSED(select) )
+ // TODO
+}
+
+void wxListBox::SetString(int N, const wxString& s)
{
-};
+ // TODO
+}
-void wxListBox::SetString( int WXUNUSED(n), const wxString &WXUNUSED(string) )
+int wxListBox::Number () const
{
-};
+ return m_noItems;
+}
-void wxListBox::SetStringSelection( const wxString &WXUNUSED(string), bool WXUNUSED(select) )
+// For single selection items only
+wxString wxListBox::GetStringSelection () const
{
-};
+ int sel = GetSelection ();
+ if (sel > -1)
+ return this->GetString (sel);
+ else
+ return wxString("");
+}
+bool wxListBox::SetStringSelection (const wxString& s, bool flag)
+{
+ int sel = FindString (s);
+ if (sel > -1)
+ {
+ SetSelection (sel, flag);
+ return TRUE;
+ }
+ else
+ return FALSE;
+}
+void wxListBox::Command (wxCommandEvent & event)
+{
+ if (event.m_extraLong)
+ SetSelection (event.m_commandInt);
+ else
+ {
+ Deselect (event.m_commandInt);
+ return;
+ }
+ ProcessCommand (event);
+}