Reimplemented from OglGui::Window. Definition at line 421 of file GridWindow.h. References OglGui::Window::DisplayFunc(), Impala::Application::VideoExcel::TableDataSource::GetEndRow(), Impala::Application::VideoExcel::TableDataSource::GetMark(), Impala::Application::VideoExcel::TableDataSource::GetStartRow(), GetXYForRow(), Impala::Application::VideoExcel::TableDataSource::MarkAllRows(), Impala::Application::VideoExcel::TableDataSource::MarkRow(), MarkToColor(), mCache, mGridHeight, mGridWidth, mMouseXE, mMouseXS, mMouseYE, mMouseYS, mSelecting, mSource, Impala::Application::VideoExcel::TableViewCache::ProcessDelayLoad(), UpdateGrid(), and OglGui::OglWindow::UpdateScene(). 00422 { 00423 OGC myOGC; 00424 OGCSave(&myOGC); 00425 00426 UpdateGrid(); 00427 00428 if (mCache && mCache->ProcessDelayLoad()) 00429 UpdateScene(); 00430 00431 int mcx, mcy, mcw, mch; 00432 if (mSelecting) 00433 { 00434 mcx = (mMouseXS < mMouseXE) ? mMouseXS : mMouseXE; 00435 mcw = (mMouseXS < mMouseXE) ? mMouseXE-mMouseXS : mMouseXS-mMouseXE; 00436 mcy = (mMouseYS < mMouseYE) ? mMouseYS : mMouseYE; 00437 mch = (mMouseYS < mMouseYE) ? mMouseYE-mMouseYS : mMouseYS-mMouseYE; 00438 mSource->MarkAllRows(1, false); 00439 } 00440 00441 for (int row = mSource->GetStartRow(); row < mSource->GetEndRow(); row++) 00442 { 00443 int px=0, py=0; 00444 GetXYForRow(row, px, py); 00445 00446 if (mSelecting && mcy < py && py+mGridHeight < mcy + mch && 00447 mcx < px && px+mGridWidth < mcx + mcw) 00448 { 00449 mSource->MarkRow(row, 1); 00450 } 00451 00452 int mark = mSource->GetMark(row); 00453 if (mark) 00454 { 00455 SetSolidFillColor(MarkToColor(mark)); 00456 FillRectangle(px-1, py-1, mGridWidth+2, mGridHeight+2); 00457 } 00458 } 00459 00460 if (mSelecting) 00461 { 00462 // draw the current mouse selection: 00463 SetStipple((short)oglSolid); 00464 SetLineWidth(2.0f); 00465 SetSolidLineColor(0xff444466); 00466 DrawRectangle(mcx,mcy,mcw,mch); 00467 } 00468 00469 OGCRestore(&myOGC); 00470 Window::DisplayFunc(); 00471 }
Here is the call graph for this function:
|