void SetValue(float v, bool fFlash) { m_value = (int)bound( (v - m_minValue) * ((float)XSize()) / (m_maxValue - m_minValue), 0.0f, (float)XSize() ); }
void Paint(Surface* pSurface) { if (m_pImageBkgnd) pSurface->BitBlt(WinPoint(0, 0), m_pImageBkgnd->GetSurface(), WinRect(m_ptImgOrigin.X(), m_ptImgOrigin.Y(), m_ptImgOrigin.X() + XSize(), m_ptImgOrigin.Y() + YSize())); // calc num Items to draw int iLastVisibleItem = LastVisibleItem(); int iLastItem = m_vItems.GetCount() - 1; if (iLastVisibleItem > iLastItem) iLastVisibleItem = iLastItem; // draw each Item WinRect rectPaint = WinRect(0, 0, m_nItemWidth, YSize()); WinRect rectItem = rectPaint; rectItem.bottom = rectItem.top; ZAssert(m_iTopItem >= 0); // count the number of slots for the first item which we are not drawing int nNumHiddenSlots = 0; if (m_vItems.GetCount() > 0) { while (m_iTopItem - nNumHiddenSlots > 0 && m_vItems[m_iTopItem - (nNumHiddenSlots + 1)] == m_vItems[m_iTopItem]) nNumHiddenSlots++; for (int iItem = m_iTopItem; iItem <= iLastVisibleItem; iItem += m_vItems[iItem]->GetItemHeight() - nNumHiddenSlots, nNumHiddenSlots = 0) { rectItem.top = rectItem.bottom; int nLinesLeft = (iLastVisibleItem - iItem) + 1; int nLines = m_vItems[iItem]->GetItemHeight() - nNumHiddenSlots; rectItem.bottom += m_nItemHeight * (nLines > nLinesLeft ? nLinesLeft : nLines); // draw highlight if selected bool bItemSel = (m_iSelItem == iItem); if (bItemSel && m_pImageBkgndSel) pSurface->BitBlt(rectItem.Min(), m_pImageBkgndSel->GetSurface(), rectItem); // draw item m_vItems[iItem]->DrawItem(pSurface, rectItem, bItemSel, nNumHiddenSlots); } } }
void XDomTD::LayeroutCells(DRAWCONTEXT*pDraw,CELLDATA*pData,int span) { CELLDATA data; LAYEROUTDATA margin; SpanCol(pData); data.Reset(pData->cur.x,pData->cur.y,XTRUE); PreLayerout(pDraw,&data,&margin); data.pData=XNULL; int cspan=//pDraw->DCOLSPAN;// //span==0?XMAX(FindAttrib(XEAB::COLSPAN,1),1):span; span==0?pDraw->DCOLSPAN:span; int rspan=pDraw->DROWSPAN;// //XMAX(FindAttrib(XEAB::ROWSPAN,1),1); //for debug XRect rw=pDraw->win; // if(pDraw->SETWIDTH==663) // int a=0; XSize sz; if(pData->bFinal) { int w=pData->fixCols[pData->nCol]; for(int i=1;i<cspan;i++) { if(pData->nCol+i>=(int)pData->fixCols.GetSize()) break; w+=pData->fixCols[pData->nCol+i]; } InitMargin(pDraw,&data,&margin,m_nPosX,m_nPosY,w,m_nHeight); XPoint pt=data.cur; if(InitSize(pDraw,&data,w,XFALSE)) m_nFixHeight=data.max.cy-pt.y; //XSize sz; sz=XSize(m_nWidth,m_nHeight); SetMargin(&margin,m_nWidth,m_nHeight,sz); SaveData(&data); //pDraw->win=rt; //m_nFixHeight=m_nHeight; } else { //data.Reset(pData->cur.x,pData->cur.y,XTRUE); int w=0; //if(pData->nCol+cspan<(XINT)pData->setCols.GetSize()) { //w=pData->setCols[pData->nCol]; for(int i=0;i<cspan;i++) { if(pData->nCol+i>=(int)pData->setCols.GetSize()) break; w+=pData->setCols[pData->nCol+i]; } //int w1=0; /*for(int i=0;i<cspan;i++) { if(pData->nCol+i>=(int)pData->cols[i] }*/ } InitMargin(pDraw,&data,&margin,m_nPosX,m_nPosY,w,m_nHeight); XPoint pt=data.cur; XU8 bFix=InitFixed(pDraw,&data,w); sz=XSize(m_nWidth,m_nHeight); SetMargin(&margin,m_nWidth,m_nHeight,sz); //pDraw->win=rt; //m_nHeight=XMAX(m_nHeight,pDraw->SETHEIGHT);//m_nHeight;//XMAX(m_nHeight,pDraw->SPACE); //w=m_nWidth; if(bFix) { m_nFixWidth=m_nWidth; m_nFixHeight=data.max.cy-pt.y; } if(span==0) { int nMin=m_nMin; //if(bFix) m_nFixWidth=data.max.cx- w=m_nFixWidth; for(int i=0;i<cspan;i++) { XU16 id=pData->nCol+i; if(id>=pData->cols.GetSize()) { pData->tabs.Add(bFix==1); pData->cols.Add(nMin/(cspan-i)); pData->fixCols.Add(w/(cspan-i)); nMin-=nMin/(cspan-i); w-=w/(cspan-i); //break; } else if(i+1<cspan) { pData->tabs[id]|=bFix; nMin=XMAX(nMin-pData->cols[id],0); w=XMAX(w-pData->fixCols[id],0); } else { pData->tabs[id]|=bFix; if(pData->cols[id]<nMin) pData->cols[id]=nMin; if(pData->fixCols[id]<w) pData->fixCols[id]=w; } } } } //m_rows.DataFrom(data.rowws); //m_cols.DataFrom(data.fixCols); //XSize size(m_nWidth,m_nHeight); //SetMargin(&margin,m_nWidth,m_nHeight,size); /* XString8 str=FindAttrib(XEAB::ID,""); if(str=="999") int a=0;*/ if(pDraw->bCollapse) { //m_nWidth-=2; //m_nHeight-=2; //sz.cx-=2; sz.cy-=2; } //*///*/ if(rspan<=1) SetTabRow(pDraw,pData,sz.cx,sz.cy);//m_nWidth,m_nHeight);//XSize(m_nWidth,m_nHeight),m_nMin,XTRUE); else { SetTabRow(pDraw,pData,sz.cx,pDraw->SPACE);//XSize(m_nWidth,pDraw->nRowSpace),m_nMin,XTRUE); pData->spans.Add(rspan); pData->spans.Add(pData->nCol); pData->spans.Add(m_nWidth); pData->spans.Add(m_nFixHeight); pData->spans.Add(cspan); } pDraw->win=rw; pData->nCol+=cspan; EndLayerout(pDraw,&data); }
void AABB::SetSize(const vec3& p){// this will not move the box, only scale it vec3 scalar(p.x/XSize(), p.y/YSize(), p.z/ZSize()); Max*=scalar; Min*=scalar; }
MouseResult Pane::HitTest(IInputProvider* pprovider, const Point& point, bool bCaptured) { bool bInside = !m_bHidden && point.X() >= 0 && point.X() < (float)XSize() && point.Y() >= 0 && point.Y() < (float)YSize(); if (m_ppaneCapture) { ZAssert(bCaptured); // // Is the mouse over the captured pane? // MouseResult mouseResult = m_ppaneCapture->HitTest( pprovider, point - Point::Cast(m_ppaneCapture->m_offset), true ); if (mouseResult.Test(MouseResultHit())) { m_ppaneHit = m_ppaneCapture; } else { m_ppaneHit = NULL; } // // Release Capture? // if (mouseResult.Test(MouseResultRelease())) { RemoveCapture(); return mouseResult; } // // Call MouseMove // m_ppaneCapture->MouseMove( pprovider, point - Point::Cast(m_ppaneCapture->m_offset), true, m_ppaneHit != NULL ); } else { // // // Which image are we over? // Pane* ppaneHit = NULL; // !!! if (bInside || m_ppaneHit != NULL) { if (bInside) { TRef<Pane> ppane; for(ppane = m_pchild; ppane!= NULL; ppane = ppane->m_pnext) { MouseResult mouseResult = ppane->HitTest( pprovider, point - Point::Cast(ppane->m_offset), false ); if (mouseResult.Test(MouseResultHit())) { // !!! some of the mdl files violate this // ZAssert(ppaneHit == NULL); if (ppaneHit == NULL) { ppaneHit = ppane; } } } } // // Call MouseMove, MouseEnter, or MouseLeave // if (m_ppaneHit != ppaneHit) { if (m_ppaneHit) { m_ppaneHit->MouseLeave(pprovider); } m_ppaneHit = ppaneHit; if (m_ppaneHit) { m_ppaneHit->MouseEnter( pprovider, point - Point::Cast(m_ppaneHit->m_offset) ); } } else if (m_ppaneHit) { m_ppaneHit->MouseMove( pprovider, point - Point::Cast(m_ppaneHit->m_offset), false, true ); } } if (bInside) { return MouseResultHit(); } else { return MouseResult(); } }
int Pane::GetAlignedXSize(int xPos) { return XSize(); }
XSize XSize::toValid() const { return XSize( fabs( _x ), fabs( _y ), fabs( _z ) ); }