void dlgHelpShowModal(const TCHAR* Caption, const TCHAR* HelpText) { if (!Caption || !HelpText) { return; } std::unique_ptr<WndForm> wf(dlgLoadFromXML(CallBackTable, ScreenLandscape ? IDR_XML_HELP_L : IDR_XML_HELP_P)); if(!wf) { return; } WndListFrame* wHelp = static_cast<WndListFrame*>(wf->FindByName(TEXT("frmDetails"))); if(!wHelp) { return; } wHelp->SetBorderKind(BORDERLEFT); WndOwnerDrawFrame* wHelpEntry = static_cast<WndOwnerDrawFrame*>(wf->FindByName(TEXT("frmDetailsEntry"))); if (!wHelpEntry) { return; }; wHelpEntry->SetCanFocus(true); DrawListIndex=0; TCHAR fullcaption[100]; _stprintf(fullcaption,TEXT("%s: %s"), MsgToken(336), Caption); // Help wf->SetCaption(fullcaption); aTextLine.clear(); { LKWindowSurface Surface(*wHelpEntry); const auto oldFont = Surface.SelectObject(wHelpEntry->GetFont()); const int minHeight = Surface.GetTextHeight(_T("dp")) + 2 * DLGSCALE(2); const int wHeight = wHelpEntry->GetHeight(); if(minHeight != wHeight) { wHelpEntry->SetHeight(minHeight); } aTextLine.update(Surface, wHelpEntry->GetWidth(), LKgethelptext(HelpText)); Surface.SelectObject(oldFont); } wHelp->ResetList(); wHelp->Redraw(); wf->ShowModal(); aTextLine.clear(); }
void dlgHelpShowModal(const TCHAR* Caption, const TCHAR* HelpText) { if (!Caption || !HelpText) { return; } InitHelp(); wf = dlgLoadFromXML(CallBackTable, ScreenLandscape ? TEXT("dlgHelp_L.xml") : TEXT("dlgHelp_P.xml"), ScreenLandscape ? IDR_XML_HELP_L : IDR_XML_HELP_P); LKASSERT(wf); if (!wf) goto _getout; TCHAR fullcaption[100]; _stprintf(fullcaption,TEXT("%s: %s"), gettext(TEXT("_@M336_")), Caption); // Help wf->SetCaption(fullcaption); wHelp = (WndListFrame*)wf->FindByName(TEXT("frmDetails")); wHelpEntry = (WndOwnerDrawFrame *)NULL; DrawListIndex=0; LKASSERT(wHelp!=NULL); if (!wHelp) goto _getout; wHelp->SetBorderKind(BORDERLEFT); wHelpEntry = (WndOwnerDrawFrame*)wf->FindByName(TEXT("frmDetailsEntry")); LKASSERT(wHelpEntry); if (!wHelpEntry) goto _getout; wHelpEntry->SetCanFocus(true); { LKWindowSurface Surface(*wHelpEntry); Surface.SelectObject(wHelpEntry->GetFont()); aTextLine.update(Surface, wHelpEntry->GetWidth(), LKgethelptext(HelpText)); } wHelp->ResetList(); wHelp->Redraw(); wf->ShowModal(); delete wf; aTextLine.clear(); _getout: wf = NULL; }
static void OnDetailsListInfo(WindowControl * Sender, WndListFrame::ListInfo_t *ListInfo){ (void)Sender; if (ListInfo->DrawIndex == -1){ ListInfo->ItemCount = aTextLine.size(); } else { DrawListIndex = ListInfo->DrawIndex+ListInfo->ScrollIndex; } }
static void InitHelp(void) { wf=(WndForm *)NULL; wHelp=(WndListFrame *)NULL; wHelpEntry = (WndOwnerDrawFrame *)NULL; DrawListIndex=0; aTextLine.clear(); }
static void OnPaintDetailsListItem(WindowControl * Sender, LKSurface& Surface){ (void)Sender; if (DrawListIndex < (int)aTextLine.size()){ LKASSERT(DrawListIndex>=0); const TCHAR* szText = aTextLine[DrawListIndex]; Surface.SetTextColor(RGB_BLACK); Surface.DrawText(2*ScreenScale, 2*ScreenScale, szText); } }
static void InitNotepad(void) { page=0; DrawListIndex=0; aTextLine.clear(); nLists=0; for (int i=0; i<MAXNOTES; i++) { ChecklistText[i]=(TCHAR *)NULL; ChecklistTitle[i]=(TCHAR *)NULL; } }
static void NextPage(WndForm* pForm, int Step){ if(!pForm) { return; } TCHAR buffer[200]; page += Step; if (page>=nLists) { page=0; } if (page<0) { page= nLists-1; } WndOwnerDrawFrame* wDetailsEntry = (WndOwnerDrawFrame*)pForm->FindByName(TEXT("frmDetailsEntry")); if(!wDetailsEntry) { return; } LKWindowSurface Surface(*wDetailsEntry); Surface.SelectObject(wDetailsEntry->GetFont()); aTextLine.update(Surface, wDetailsEntry->GetWidth(), ChecklistText[page]); switch(nLists) { case 0: _stprintf(buffer, _T("%s %s"),NoteModeTitle,MsgToken(1750)); // empty break; case 1: _stprintf(buffer, _T("%s"),NoteModeTitle); break; default: _stprintf(buffer, _T("%s %d/%d"),NoteModeTitle,page+1,nLists); break; } if (ChecklistTitle[page] && (_tcslen(ChecklistTitle[page])>0) && (_tcslen(ChecklistTitle[page])<60)) { _tcscat(buffer, TEXT(": ")); _tcscat(buffer, ChecklistTitle[page]); } pForm->SetCaption(buffer); WndListFrame* wDetails = (WndListFrame*)pForm->FindByName(TEXT("frmDetails")); if(wDetails) { wDetails->ResetList(); wDetails->Redraw(); } }
static void InitNotepad(void) { page=0; wf=(WndForm *)NULL; wDetails=(WndListFrame *)NULL; wDetailsEntry = (WndOwnerDrawFrame *)NULL; DrawListIndex=0; aTextLine.clear(); nLists=0; for (int i=0; i<MAXNOTES; i++) { ChecklistText[i]=(TCHAR *)NULL; ChecklistTitle[i]=(TCHAR *)NULL; } }
// checklistmode: 0=notepad 1=logbook 2=... void dlgChecklistShowModal(short checklistmode){ InitNotepad(); LoadChecklist(checklistmode); // check if loaded really something wf = dlgLoadFromXML(CallBackTable, ScreenLandscape ? TEXT("dlgChecklist_L.xml") : TEXT("dlgChecklist_P.xml"), ScreenLandscape ? IDR_XML_CHECKLIST_L : IDR_XML_CHECKLIST_P); aTextLine.clear(); if (!wf) goto deinit; wf->SetKeyDownNotify(FormKeyDown); ((WndButton *)wf->FindByName(TEXT("cmdClose")))->SetOnClickNotify(OnCloseClicked); wDetails = (WndListFrame*)wf->FindByName(TEXT("frmDetails")); //ASSERT(wDetails!=NULL); if (wDetails==NULL) { StartupStore(_T("..... NOTEPAD ERROR NULL frmDetails!\n")); goto deinit; } wDetails->SetBorderKind(BORDERLEFT); wDetailsEntry = (WndOwnerDrawFrame*)wf->FindByName(TEXT("frmDetailsEntry")); //ASSERT(wDetailsEntry!=NULL); if (wDetailsEntry==NULL) { StartupStore(_T("..... NOTEPAD ERROR NULL frmDetailsEntry!\n")); goto deinit; } wDetailsEntry->SetCanFocus(true); page = 0; NextPage(0); wf->ShowModal(); delete wf; wf = NULL; deinit: DeinitNotepad(); return; }
static void NextPage(int Step){ TCHAR buffer[200]; page += Step; if (page>=nLists) { page=0; } if (page<0) { page= nLists-1; } LKWindowSurface Surface(*wDetailsEntry); Surface.SelectObject(wDetailsEntry->GetFont()); aTextLine.update(Surface, wDetailsEntry->GetWidth(), ChecklistText[page]); switch(nLists) { case 0: _stprintf(buffer, _T("%s %s"),NoteModeTitle,gettext(TEXT("_@M1750_"))); // empty break; case 1: _stprintf(buffer, _T("%s"),NoteModeTitle); break; default: _stprintf(buffer, _T("%s %d/%d"),NoteModeTitle,page+1,nLists); break; } if (ChecklistTitle[page] && (_tcslen(ChecklistTitle[page])>0) && (_tcslen(ChecklistTitle[page])<60)) { _tcscat(buffer, TEXT(": ")); _tcscat(buffer, ChecklistTitle[page]); } wf->SetCaption(buffer); wDetails->ResetList(); wDetails->Redraw(); }