ERRORCODE SplitArray::write(StorageDevicePtr device) { ERRORCODE error = ERRORCODE_None; Array OldArray(OldSize()); if ((error = OldArray.set_array_size(count())) != ERRORCODE_None) { return error; } LPBYTE lpOldData, lpNewData; lpOldData = (LPBYTE)OldArray.get_element(0); lpNewData = (LPBYTE)data; for (int i = 0; i < OldArray.count(); i++) { memcpy(lpOldData, lpNewData, OldSize()); lpNewData += NewSize(); lpOldData += OldSize(); } error = OldArray.write(device); return error; }
ERRORCODE SplitArray::write_new_data(StorageDevicePtr device) { ERRORCODE error = ERRORCODE_None; SHORT nStoredElemSize = SizeDifference(); if ((error = device->write(&nStoredElemSize, sizeof (nStoredElemSize))) != ERRORCODE_None) { return error; } Array NewArray(nStoredElemSize); if ((error = NewArray.set_array_size(count())) != ERRORCODE_None) { return error; } LPBYTE lpSrcData, lpDestData; lpSrcData = (LPBYTE)data + OldSize(); lpDestData = (LPBYTE)NewArray.get_element(0); for (int i = 0; i < count(); i++) { memcpy(lpDestData, lpSrcData, nStoredElemSize); lpDestData += nStoredElemSize; lpSrcData += NewSize(); } error = NewArray.write(device); return error; }
ERRORCODE SplitArray::read(StorageDevicePtr device) { ERRORCODE error = ERRORCODE_None; Array OldArray(OldSize()); if ((error = OldArray.read(device)) != ERRORCODE_None) { return error; } if ((error = set_array_size(OldArray.count())) != ERRORCODE_None) { return error; } LPBYTE lpOldData, lpNewData; lpOldData = (LPBYTE)OldArray.get_element(0); lpNewData = (LPBYTE)data; for (int i = 0; i < OldArray.count(); i++) { memcpy(lpNewData, lpOldData, OldSize()); memset(lpNewData + OldSize(), 0, SizeDifference()); lpNewData += NewSize(); lpOldData += OldSize(); } return error; }
LRESULT CFunctionPage::OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { if (wParam == SIZE_RESTORED) { CRect rc, rc2; CWindow wnd = GetDlgItem(IDC_COMBO_CLASSES); wnd.GetWindowRect(rc); ScreenToClient(rc); CSize NewSize(LOWORD(lParam), HIWORD(lParam)); CRect CheckRc(0, 0, 1,12); MapDialogRect(CheckRc); rc2.left = 0; rc2.right = NewSize.cx; rc2.top = rc.bottom + CheckRc.Height(); rc2.bottom = NewSize.cy; m_SplitMessages.MoveWindow(rc2); if (!m_bShowWindow && lParam) { m_bShowWindow = true; m_SplitMessages.SetSplitterPos(m_WindowSettings.m_MesSpitPos); m_SplitFunctions.SetSplitterPos(m_WindowSettings.m_FuncSplitPos); } } return 0; }
ERRORCODE SplitArray::read_new_data(StorageDevicePtr device) { ERRORCODE error = ERRORCODE_None; SHORT nStoredElemSize; if ((error = device->read(&nStoredElemSize, sizeof (nStoredElemSize))) != ERRORCODE_None) { return error; } Array NewArray(nStoredElemSize); if ((error = NewArray.read(device)) != ERRORCODE_None) { return error; } if (NewArray.count() != count()) { return ERRORCODE_TypeMismatch; } LPBYTE lpSrcData, lpDestData; lpDestData = (LPBYTE)data + OldSize(); lpSrcData = (LPBYTE)NewArray.get_element(0); for (int i = 0; i < count(); i++) { memcpy(lpDestData, lpSrcData, nStoredElemSize); lpDestData += NewSize(); lpSrcData += nStoredElemSize; } return error; }
// This handler is used to notify sizeable bars if their size has // changed, or if they are docked/undocked. void COXSizeControlBar::OnWindowPosChanged(WINDOWPOS* lpwndpos) { CControlBar::OnWindowPosChanged(lpwndpos); CSize NewSize(lpwndpos->cx, lpwndpos->cy); // This is meant to return "floating" if we're not docked yet... BOOL bFloating = IsProbablyFloating(); int Flags = (NewSize == m_PrevSize ? 0 : 1); Flags |= (bFloating == m_bPrevFloating ? 0 : 2); if (Flags != 0) { m_PrevSize = NewSize; m_bPrevFloating = bFloating; OnSizedOrDocked(NewSize.cx, NewSize.cy, bFloating, Flags); RedrawWindow(); } RecalcLayout(); if(m_bMaximized) { SetMaximized(FALSE); } }
bydpListView::bydpListView(const char *name, BHandler *handler) : BListView( BRect(10,60,200,400), name, B_SINGLE_SELECTION_LIST,B_FOLLOW_LEFT|B_FOLLOW_TOP_BOTTOM) { valid = false; topIndex = -1; // printf("konstruktor %s\n",name); myHandler = handler; myBar = NULL; NewSize(); }
void bydpListView::NewData(int howmany, char **data, int current) { // printf("in newdata w/ %i,%i,%s\n",current,howmany,data[1]); words = data; wordCount = howmany; valid = true; NewSize(); // updates visible... ListRefresh(); ListRefresh(current); // forced refresh, required this->Select(current-topIndex); }
void MenuBar::updateLayout(void) { //Determine the Max Preferred Height of my MenuItems Real32 MaxHeight(0); Real32 TotalWidth(0); for(UInt32 i(0) ; i<getMFChildren()->size() ; ++i) { if(MaxHeight < getChildren(i)->getPreferredSize().y()) { MaxHeight = getChildren(i)->getPreferredSize().y(); } TotalWidth += getChildren(i)->getPreferredSize().x(); } //Set My preferred Size Pnt2f TopLeft, BottomRight; Pnt2f InsetsTopLeft, InsetsBottomRight; getBounds(TopLeft, BottomRight); getInsideInsetsBounds(InsetsTopLeft, InsetsBottomRight); Vec2f InsetSize( (BottomRight-TopLeft) - (InsetsBottomRight-InsetsTopLeft) ); Vec2f NewSize( TotalWidth+InsetSize.x(), MaxHeight+InsetSize.y()); if(getPreferredSize() != NewSize) { setPreferredSize(NewSize); } getInsideInsetsBounds(InsetsTopLeft, InsetsBottomRight); //Now position and size the Items Real32 LeftOffset(InsetsTopLeft.x()); Vec2f Size; Pnt2f Pos; for(UInt32 i(0) ; i<getMFChildren()->size() ; ++i) { Size.setValues(getChildren(i)->getPreferredSize().x(), MaxHeight); if(getChildren(i)->getSize() != Size) { getChildren(i)->setSize(Size); } Pos.setValues(LeftOffset, InsetsTopLeft.y()); if(getChildren(i)->getPosition() != Pos) { getChildren(i)->setPosition(Pos); } LeftOffset += getChildren(i)->getPreferredSize().x(); } }
void PopupMenu::updateSeparatorSizes(void) { Pnt2f InsideInsetsTopLeft, InsideInsetsBottomRight; getInsideInsetsBounds(InsideInsetsTopLeft, InsideInsetsBottomRight); Vec2f InsideInsetsSize(InsideInsetsBottomRight - InsideInsetsTopLeft); for(UInt32 i(0) ; i<getMFChildren()->size() ; ++i) { Vec2f NewSize(Vec2f(InsideInsetsSize.x(), getChildren(i)->getRequestedSize().y())); if(getChildren(i)->getType() == Separator::getClassType() && dynamic_cast<Separator*>(getChildren(i))->getPreferredSize() != NewSize) { dynamic_cast<Separator*>(getChildren(i))->setPreferredSize(NewSize); } } }