X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e8e24dfa9322702d56a125586a7d4a37f4a5dfd7..98a8daf4cffee3857f0cdd2ee960514a1ff3a2c0:/src/gtk1/choice.cpp diff --git a/src/gtk1/choice.cpp b/src/gtk1/choice.cpp index f437527d6c..54f9b1de42 100644 --- a/src/gtk1/choice.cpp +++ b/src/gtk1/choice.cpp @@ -73,6 +73,18 @@ wxChoice::wxChoice() m_strings = (wxSortedArrayString *)NULL; } +bool wxChoice::Create( wxWindow *parent, wxWindowID id, + const wxPoint &pos, const wxSize &size, + const wxArrayString& choices, + long style, const wxValidator& validator, + const wxString &name ) +{ + wxCArrayString chs(choices); + + return Create( parent, id, pos, size, chs.GetCount(), chs.GetStrings(), + style, validator, name ); +} + bool wxChoice::Create( wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, int n, const wxString choices[], @@ -110,12 +122,8 @@ bool wxChoice::Create( wxWindow *parent, wxWindowID id, m_parent->DoAddChild( this ); - PostCreation(); - InheritAttributes(); - - SetBestSize(size); - - Show( TRUE ); + PostCreation(size); + SetBestSize(size); // need this too because this is a wxControlWithItems return TRUE; } @@ -530,7 +538,7 @@ wxSize wxChoice::DoGetBestSize() const size_t count = GetCount(); for ( size_t n = 0; n < count; n++ ) { - GetTextExtent( GetString(n), &width, NULL, NULL, NULL, &m_font ); + GetTextExtent( GetString(n), &width, NULL, NULL, NULL ); if ( width > ret.x ) ret.x = width; } @@ -552,7 +560,11 @@ wxSize wxChoice::DoGetBestSize() const if ( ret.x < 80 ) ret.x = 80; - ret.y = 16 + GetCharHeight(); + // If this request_size is called with no entries then + // the returned height is wrong. Give it a reasonable + // default value. + if (ret.y <= 18) + ret.y = 8 + GetCharHeight(); return ret; } @@ -566,6 +578,13 @@ bool wxChoice::IsOwnGtkWindow( GdkWindow *window ) #endif } +// static +wxVisualAttributes +wxChoice::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant)) +{ + return GetDefaultAttributesFromGTKWidget(gtk_option_menu_new); +} + #endif // wxUSE_CHOICE