X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b5f62a0b2db198609b45dec622a018dae37008e..96d5885406245ea36b7cfb2722c0e9f12b7dd1aa:/src/msw/combobox.cpp diff --git a/src/msw/combobox.cpp b/src/msw/combobox.cpp index 4acd9c73bd..1a00fcfead 100644 --- a/src/msw/combobox.cpp +++ b/src/msw/combobox.cpp @@ -5,7 +5,7 @@ // Modified by: // Created: 01/02/97 // RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem +// Copyright: (c) Julian Smart // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -17,7 +17,7 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "combobox.h" #endif @@ -53,7 +53,62 @@ // wxWin macros // ---------------------------------------------------------------------------- +#if wxUSE_EXTENDED_RTTI +WX_DEFINE_FLAGS( wxComboBoxStyle ) + +WX_BEGIN_FLAGS( wxComboBoxStyle ) + // new style border flags, we put them first to + // use them for streaming out + WX_FLAGS_MEMBER(wxBORDER_SIMPLE) + WX_FLAGS_MEMBER(wxBORDER_SUNKEN) + WX_FLAGS_MEMBER(wxBORDER_DOUBLE) + WX_FLAGS_MEMBER(wxBORDER_RAISED) + WX_FLAGS_MEMBER(wxBORDER_STATIC) + WX_FLAGS_MEMBER(wxBORDER_NONE) + + // old style border flags + WX_FLAGS_MEMBER(wxSIMPLE_BORDER) + WX_FLAGS_MEMBER(wxSUNKEN_BORDER) + WX_FLAGS_MEMBER(wxDOUBLE_BORDER) + WX_FLAGS_MEMBER(wxRAISED_BORDER) + WX_FLAGS_MEMBER(wxSTATIC_BORDER) + WX_FLAGS_MEMBER(wxNO_BORDER) + + // standard window styles + WX_FLAGS_MEMBER(wxTAB_TRAVERSAL) + WX_FLAGS_MEMBER(wxCLIP_CHILDREN) + WX_FLAGS_MEMBER(wxTRANSPARENT_WINDOW) + WX_FLAGS_MEMBER(wxWANTS_CHARS) + WX_FLAGS_MEMBER(wxNO_FULL_REPAINT_ON_RESIZE) + WX_FLAGS_MEMBER(wxALWAYS_SHOW_SB ) + WX_FLAGS_MEMBER(wxVSCROLL) + WX_FLAGS_MEMBER(wxHSCROLL) + + WX_FLAGS_MEMBER(wxCB_SIMPLE) + WX_FLAGS_MEMBER(wxCB_SORT) + WX_FLAGS_MEMBER(wxCB_READONLY) + WX_FLAGS_MEMBER(wxCB_DROPDOWN) + +WX_END_FLAGS( wxComboBoxStyle ) + +IMPLEMENT_DYNAMIC_CLASS_XTI(wxComboBox, wxControl,"wx/combobox.h") + +WX_BEGIN_PROPERTIES_TABLE(wxComboBox) + // TODO DELEGATES + WX_PROPERTY( Font , wxFont , SetFont , GetFont , , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) + WX_PROPERTY_COLLECTION( Choices , wxArrayString , wxString , AppendString , GetStrings , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) + WX_PROPERTY( Value ,wxString, SetValue, GetValue, , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) + WX_PROPERTY( Selection ,int, SetSelection, GetSelection, , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) + WX_PROPERTY_FLAGS( WindowStyle , wxComboBoxStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style +WX_END_PROPERTIES_TABLE() + +WX_BEGIN_HANDLERS_TABLE(wxComboBox) +WX_END_HANDLERS_TABLE() + +WX_CONSTRUCTOR_5( wxComboBox , wxWindow* , Parent , wxWindowID , Id , wxString , Value , wxPoint , Position , wxSize , Size ) +#else IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxControl) +#endif // ---------------------------------------------------------------------------- // function prototypes @@ -156,31 +211,12 @@ LRESULT APIENTRY _EXPORT wxComboEditWndProc(HWND hWnd, } WXHBRUSH wxComboBox::OnCtlColor(WXHDC pDC, WXHWND WXUNUSED(pWnd), WXUINT WXUNUSED(nCtlColor), -#if wxUSE_CTL3D - WXUINT message, - WXWPARAM wParam, - WXLPARAM lParam -#else WXUINT WXUNUSED(message), WXWPARAM WXUNUSED(wParam), WXLPARAM WXUNUSED(lParam) -#endif ) { -#if wxUSE_CTL3D - if ( m_useCtl3D ) - { - HBRUSH hbrush = Ctl3dCtlColorEx(message, wParam, lParam); - return (WXHBRUSH) hbrush; - } -#endif // wxUSE_CTL3D - HDC hdc = (HDC)pDC; - if (GetParent()->GetTransparentBackground()) - SetBkMode(hdc, TRANSPARENT); - else - SetBkMode(hdc, OPAQUE); - wxColour colBack = GetBackgroundColour(); if (!IsEnabled()) @@ -331,8 +367,10 @@ bool wxComboBox::Create(wxWindow *parent, wxWindowID id, CBS_AUTOHSCROLL | CBS_NOINTEGRALHEIGHT /* | WS_CLIPSIBLINGS */; if ( style & wxCB_READONLY ) msStyle |= CBS_DROPDOWNLIST; +#ifndef __WXWINCE__ else if ( style & wxCB_SIMPLE ) msStyle |= CBS_SIMPLE; // A list (shown always) and edit control +#endif else msStyle |= CBS_DROPDOWN; @@ -429,7 +467,7 @@ void wxComboBox::SetInsertionPoint(long pos) // Scroll insertion point into view SendMessage(hEditWnd, EM_SCROLLCARET, (WPARAM)0, (LPARAM)0); // Why is this necessary? (Copied from wxTextCtrl::SetInsertionPoint) - SendMessage(hEditWnd, EM_REPLACESEL, 0, (LPARAM)_T("")); + SendMessage(hEditWnd, EM_REPLACESEL, 0, (LPARAM) wxEmptyString); } #endif // __WIN32__ }