Салянка из wxWidgets, wxCombobox и MAC OS
June 25th, 2009 Begemot Posted in Программирование
Сборная.
Кажется на маке с комбобоксами плохо, весьма плохо. Как то уж очень странно они выглядят (такое впечетление что родных нет, и вх эмулирует их сам, причем весьма посредственно)
Правда страшненько?
А вот это такое стремненькое белоей с каемочкой это стандартные color picker(!).
Причем тут комбобокс еще немного прилизанный, так как по умолчанию у него размер раза в 2 – 2.5 шире реально необходимо – почему ? хз. Пришлось руками уменьшать размер после создания
#ifdef __WXMAC__{ // default combobox size under macos is too bigint w = 0, h = 0;m_OverlayFontSize->GetSize(&w, &h);m_OverlayFontSize->SetMinSize(wxSize(w / 2, h));}// combobox does not receive wxEVT_KILL_FOCUS event under MAC OS – http://trac.wxwidgets.org/ticket/9862// so we use text update event, inseted of text_enter + kill_focus#else#ifdef __WXMAC__
{ // default combobox size under macos is too big
int w = 0, h = 0;
m_OverlayFontSize->GetSize(&w, &h);
m_OverlayFontSize->SetMinSize(wxSize(w / 2, h));
}
А еще они не получает события установки\потери фокуса. Пришлось жертвовать красотой работы и делать отдельную ветку логики под мак:(
Вот такой вот винегрет.
June 25th, 2009 at 8:42 pm
А wxComboCtrl не рассматривал? Хоть они неродные (generic), но, может быть, будут лучше выглядеть?
Кстати, что-то не верится, что color picker такие стремные. Может, это баг wxWidgets?
P.S. Маком не пользовался.
June 25th, 2009 at 11:12 pm
а можно generic и обычные использовать в одной программе ? Я попробывал(быстро) не получилось, скорее всего у нас сборка вх без них.
Может и баг, но так выглядят, хотя возможно это только на нашем овнердрав дизайне.. Вернусь с Крыма, проверю как в другом софте выглядят.