Салянка из wxWidgets, wxCombobox и MAC OS

June 25th, 2009 Begemot

Сборная.

Кажется на маке с комбобоксами плохо, весьма плохо. Как то уж очень странно они выглядят (такое впечетление что родных нет, и вх эмулирует их сам, причем весьма посредственно)

Picture 6

Picture 8

Правда страшненько?

А вот это такое стремненькое белоей с каемочкой это стандартные color picker(!).

Причем тут комбобокс еще немного прилизанный, так как по умолчанию у него размер раза в 2 – 2.5 шире реально необходимо – почему ? хз. Пришлось руками уменьшать размер после создания

#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));
}
// 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));
}

А еще они не получает события установки\потери фокуса. Пришлось жертвовать красотой работы и делать отдельную ветку логики под мак:(

Вот такой вот винегрет.


Кто украл Set/KillFocus?

July 17th, 2008 Begemot

Добавил 

EVT_KILL_FOCUS(MainFrame::OnKillFocus)

EVT_SET_FOCUS(MainFrame::OnKillFocus)

Не приходят, вообще. Приложение с AUI. Куда копать?