void StandardPresenter::addField( PresentableField * pField ) { CharBuffer * pBuffer = _charBuffer(pField); int nLines = _countLines( pBuffer ); _setFieldDataBlock(pField,0); // Make sure pointer is null for the realloc call. void * pBlock = _reallocBlock(pField,nLines); _updateLineInfo( _header(pBlock), _lineInfo(pBlock), pBuffer, _baseStyle(pField), _state(pField) ); _updatePreferredSize( _header(pBlock), _lineInfo(pBlock) ); }
void SplitPanel::setHandleThickness(int thickness) { //TODO: Assert on negative value. if (thickness != m_handleThickness) { m_handleThickness = thickness; _updatePreferredSize(); _updateGeo(); } }
void SplitPanel::setHandleSkin(Skin * pSkin) { if (pSkin != m_pHandleSkin) { m_pHandleSkin = pSkin; _updatePreferredSize(); bool bGeoChanged = _updateGeo(); if (!bGeoChanged) _requestRender(m_handleGeo); } }
void StandardPresenter::onRefresh( PresentableField * pField ) { CharBuffer * pBuffer = _charBuffer(pField); int nLines = _countLines( pBuffer ); void * pBlock = _fieldDataBlock(pField); if( !pBlock || _header(pBlock)->nbLines != nLines ) pBlock = _reallocBlock(pField,nLines); _updateLineInfo( _header(pBlock), _lineInfo(pBlock), pBuffer, _baseStyle(pField), _state(pField) ); _updatePreferredSize( _header(pBlock), _lineInfo(pBlock) ); }
void SplitPanel::_setWidget(Slot * _pSlot, Widget * pNewWidget) { auto pSlot = static_cast<SplitPanelSlot*>(_pSlot); pSlot->replaceWidget(this, pNewWidget); pNewWidget->_setSize(pSlot->geo); _updatePreferredSize(); bool bGeoChanged =_updateGeo(); if (!bGeoChanged) _requestRender(pSlot->geo); }