コード例 #1
0
ファイル: SPLTARRY.CPP プロジェクト: jimmccurdy/ArchiveGit
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;
}
コード例 #2
0
ファイル: SPLTARRY.CPP プロジェクト: jimmccurdy/ArchiveGit
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;
}
コード例 #3
0
ファイル: SPLTARRY.CPP プロジェクト: jimmccurdy/ArchiveGit
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;
}
コード例 #4
0
ファイル: FunctionPage.cpp プロジェクト: axxapp/winxgui
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;
}
コード例 #5
0
ファイル: SPLTARRY.CPP プロジェクト: jimmccurdy/ArchiveGit
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;
}
コード例 #6
0
ファイル: OXSizeCtrlBar.CPP プロジェクト: Spritutu/AiPI-1
// 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);
	}
}
コード例 #7
0
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();
}
コード例 #8
0
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);
}
コード例 #9
0
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();
    }
}
コード例 #10
0
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);
        }
    }
}