ListElement* dlgMultiSelectListShowModal(void) { ItemIndex = -1; if (iNO_ELEMENTS == 0) { return NULL; } wf = dlgLoadFromXML(CallBackTable, ScreenLandscape ? IDR_XML_MULTISELECTLIST_L : IDR_XML_MULTISELECTLIST_P); if (!wf) return NULL; wf->SetTimerNotify(1000, OnTimer); wMultiSelectListList = (WndListFrame*) wf->FindByName(TEXT("frmMultiSelectListList")); LKASSERT(wMultiSelectListList != NULL); wMultiSelectListList->SetBorderKind(BORDERLEFT); wMultiSelectListList->SetEnterCallback(OnMultiSelectListListEnter); wMultiSelectListListEntry = (WndOwnerDrawFrame*) wf->FindByName(TEXT("frmMultiSelectListListEntry")); if(wMultiSelectListListEntry) { /* * control height must contains 2 text Line * Check and update Height if necessary */ LKWindowSurface windowSurface(MainWindow); LKBitmapSurface tmpSurface(windowSurface, 1, 1); const auto oldFont = tmpSurface.SelectObject(wMultiSelectListListEntry->GetFont()); const int minHeight = 2 * tmpSurface.GetTextHeight(_T("dp")) + 2 * DLGSCALE(2); tmpSurface.SelectObject(oldFont); const int wHeight = wMultiSelectListListEntry->GetHeight(); if(minHeight > wHeight) { wMultiSelectListListEntry->SetHeight(minHeight); } wMultiSelectListListEntry->SetCanFocus(true); } else LKASSERT(0); UpdateList(); wf->ShowModal(); delete wf; wf = NULL; iNO_ELEMENTS = 0; NoAirfields = 0; NoOutlands = 0; NoWaypoints = 0; NoAirspace = 0; NoTaskPoints = 0; return pResult; }
int dlgTaskSelectListShowModal(void) { TaskIndex = -1; if (iNO_Tasks == 0) return mrCancel; wf = dlgLoadFromXML(TaskCallBackTable, ScreenLandscape ? IDR_XML_MULTISELECTLIST_L : IDR_XML_MULTISELECTLIST_P); if (!wf) return mrCancel; wTaskSelectListList = (WndListFrame*) wf->FindByName(TEXT("frmMultiSelectListList")); LKASSERT(wTaskSelectListList != NULL); wTaskSelectListList->SetBorderKind(BORDERLEFT); wTaskSelectListList->SetEnterCallback(OnTaskSelectListListEnter); wTaskSelectListListEntry = (WndOwnerDrawFrame*) wf->FindByName(TEXT("frmMultiSelectListListEntry")); if(wTaskSelectListListEntry) { /* * control height must contains 2 text Line * Check and update Height if necessary */ LKWindowSurface windowSurface(MainWindow); LKBitmapSurface tmpSurface(windowSurface, 1, 1); const auto oldFont = tmpSurface.SelectObject(wTaskSelectListListEntry->GetFont()); const int minHeight = 2 * tmpSurface.GetTextHeight(_T("dp")) + 2 * DLGSCALE(2); tmpSurface.SelectObject(oldFont); const int wHeight = wTaskSelectListListEntry->GetHeight(); if(minHeight > wHeight) { wTaskSelectListListEntry->SetHeight(minHeight); } wTaskSelectListListEntry->SetCanFocus(true); } else LKASSERT(0); UpdateList(); int result = wf->ShowModal(); wTaskSelectListList->Redraw(); delete wf; wf = NULL; iNO_Tasks = 0; return result; }