static inline void prvShowPB(xModalDialog * xDlg){ if(xDlg->cProgress >= 0){ vWidgetShow(xPBar); vProgressBarSetProcExec(xPBar, xDlg->cProgress); }else{ vWidgetHide(xPBar); } }
bool bWindowOpen(xWindow *pxW) { xWindowProps *xP; if (!(xP = (xWindowProps*)pxWidgetGetProps(pxW, WidgetWindow))) return false; if (xP->pxOnOpenRequest) if (!xP->pxOnOpenRequest(pxW)) return false; vWidgetShow(pxW); if (xP->pxOnOpen) xP->pxOnOpen(pxW); return true; }
static void prvDlgShowActive(){ xModalDialog * xDlg = xMDActive; if(!xDlg){ //return; vInterfaceCloseWindow(WINDOW_MODAL); //TODO: выставить кол-во активных диалогов в 0 } char cBtnCnt = strlen(xDlg->sDialogConfig); xModalDialogPictureSet xPicSet; char * sBtns = xDlg->sDialogConfig; xMenuButton * xBtn; u16 betweenBtnsX, usX, usY; prvResetDlgWnd(); betweenBtnsX = (usInterfaceGetW() - cBtnCnt * usWidgetGetW(xButtons[0])) / (cBtnCnt + 1); usY = usWidgetGetY0(xButtons[0], FALSE); usX = betweenBtnsX; pcLabelSetText(xMessageHeader, xDlg->sHdr); pcLabelSetText(xMessage, xDlg->sMsg); prvShowPB(xDlg); for(int c = 0; c < cBtnCnt; c++){ xBtn = xButtons[c]; xPicSet = prvGetPicSet(sBtns[c]); bWidgetMoveTo(xBtn, usX, usY); vWidgetShow(xBtn); pxMenuButtonSetMainPic(xBtn, xPicSet.xPicMain); pxMenuButtonSetPushPic(xBtn, xPicSet.xPicMainPress); pxMenuButtonSetLabelText(xBtn, xPicSet.strLabel); usX += betweenBtnsX + usWidgetGetW(xBtn); } }