static void D4D_CnslOnInit(D4D_MESSAGE* pMsg) { D4D_OBJECT* pThis = pMsg->pObject; D4D_CONSOLE* pCnsl = D4D_GET_CONSOLE(pMsg->pObject); D4D_CnslValue2Coor(pThis); if((_calc.charArrSize.cy < pCnsl->txtArrSize.cy)||(_calc.charArrSize.cx < pCnsl->txtArrSize.cx)) { D4D_ScrlBrSetRange(D4D_GET_LIST_BOX_SCROLL_BAR_HOR(pThis), 0, pCnsl->txtArrSize.cx); D4D_ScrlBrSetStep(D4D_GET_LIST_BOX_SCROLL_BAR_HOR(pThis), _calc.charArrSize.cx, D4D_CNSL_SCRLBR_STEP_H); D4D_ShowObject(D4D_GET_LIST_BOX_SCROLL_BAR_HOR(pThis), D4D_TRUE); D4D_ScrlBrSetRange(D4D_GET_LIST_BOX_SCROLL_BAR_VER(pThis), 0, pCnsl->txtArrSize.cy); D4D_ScrlBrSetStep(D4D_GET_LIST_BOX_SCROLL_BAR_VER(pThis), _calc.charArrSize.cy, D4D_CNSL_SCRLBR_STEP_V); D4D_ShowObject(D4D_GET_LIST_BOX_SCROLL_BAR_VER(pThis), D4D_TRUE); } else { D4D_ShowObject(D4D_GET_LIST_BOX_SCROLL_BAR_HOR(pThis), D4D_FALSE); D4D_ShowObject(D4D_GET_LIST_BOX_SCROLL_BAR_VER(pThis), D4D_FALSE); } }
static D4D_BOOL D4D_TextBoxScrollBarSetup(D4D_OBJECT* pObject) { // Try to check if the Text Box needs scroll Bar // Switch off possible scroll bar in refresh case D4D_GET_TEXTBOX_SCROLL_BAR_HOR(pObject)->pData->flags &= ~D4D_OBJECT_F_VISIBLE; D4D_TextBoxValue2Coor(pObject); if(D4D_TextBoxGetLineCount(pObject) > _calc.lineCount) { D4D_GET_TEXTBOX_SCROLL_BAR_HOR(pObject)->pData->flags |= D4D_OBJECT_F_VISIBLE; D4D_TextBoxValue2Coor(pObject); D4D_ScrlBrSetRange(D4D_GET_TEXTBOX_SCROLL_BAR_HOR(pObject), 0, D4D_TextBoxGetLineCount(pObject)); D4D_ScrlBrSetStep(D4D_GET_TEXTBOX_SCROLL_BAR_HOR(pObject), _calc.lineCount, D4D_TXTBX_SCRLBR_STEP); D4D_ScrlBrSetPosition(D4D_GET_TEXTBOX_SCROLL_BAR_HOR(pObject), 0); return D4D_TRUE; } return D4D_FALSE; }
static D4D_BOOL D4D_MenuScrollBarSetup(D4D_OBJECT* pObject) { // Try to check if the Menu needs scroll Bar D4D_MenuValue2Coor(pObject); // Switch off possible scroll bar in refresh case D4D_GET_MENU_SCROLL_BAR_HOR(pObject)->pData->flags &= ~D4D_OBJECT_F_VISIBLE; if((_calc.posCnt < _calc.itemsCnt) || (pObject->initFlags & D4D_MENU_F_SIDEBAR)) { D4D_OBJECT* pScrlBr; pScrlBr = D4D_GET_MENU_SCROLL_BAR_HOR(pObject); pScrlBr->pData->flags |= D4D_OBJECT_F_VISIBLE; // Init child objects coordinations pScrlBr->position.x = (D4D_COOR)(_calc.contentGeom.pnt.x + _calc.contentGeom.sz.cx - D4D_MENU_SCRLBR_WIDTH); pScrlBr->position.y = (D4D_COOR)(_calc.contentGeom.pnt.y + _calc.titleBar_y + 1); pScrlBr->position = D4D_GetScreenToClientPoint( pScrlBr, &pScrlBr->position); pScrlBr->size.cx = D4D_MENU_SCRLBR_WIDTH; pScrlBr->size.cy = (D4D_COOR)(_calc.contentGeom.sz.cy - _calc.titleBar_y - 1); pScrlBr->radius = D4D_LimitU(pObject->radius, 0, D4D_MENU_SCRLBR_WIDTH / 2); if(_calc.itemsCnt < _calc.posCnt) D4D_ScrlBrSetRange(pScrlBr, 0, _calc.posCnt); else D4D_ScrlBrSetRange(pScrlBr, 0, _calc.itemsCnt); D4D_ScrlBrSetStep(pScrlBr, _calc.posCnt, D4D_MENU_SCRLBR_STEP); D4D_ScrlBrSetPosition(pScrlBr, 0); return D4D_TRUE; } return D4D_FALSE; }