//----------------------------------------------------------------------------- // Purpose: // Input : *event - // Output : int //----------------------------------------------------------------------------- int mxStatusWindow::handleEvent( mxEvent *event ) { int iret = 0; if ( HandleToolEvent( event ) ) { return iret; } switch ( event->event ) { default: break; case mxEvent::Size: { m_pScrollbar->setBounds( w2() - STATUS_SCROLLBAR_SIZE, GetCaptionHeight(), STATUS_SCROLLBAR_SIZE, h2()-GetCaptionHeight() ); PositionSliders( 0 ); m_pScrollbar->setValue( m_pScrollbar->getMaxValue() ); iret = 1; } break; case mxEvent::Action: { iret = 1; switch ( event->action ) { default: iret = 0; break; case IDC_STATUS_SCROLL: { if ( event->event == mxEvent::Action && event->modifiers == SB_THUMBTRACK) { int offset = event->height; m_pScrollbar->setValue( offset ); PositionSliders( offset ); DrawActiveTool(); } } break; } } break; } return iret; }
void CStatusWindow::StatusPrint( int r, int g, int b, bool overwrite, const char *text ) { float curtime = (float)Plat_FloatTime(); char sz[32]; sprintf( sz, "%.3f ", curtime ); OutputDebugString( sz ); OutputDebugString( text ); char fixedtext[ 512 ]; char *in, *out; in = (char *)text; out = fixedtext; int c = 0; while ( *in && c < 511 ) { if ( *in == '\n' || *in == '\r' ) { *in++; } else { *out++ = *in++; c++; } } *out = 0; if ( overwrite ) { m_nCurrentLine--; } int i = m_nCurrentLine & TEXT_LINE_MASK; strncpy( m_rgTextLines[ i ].m_szText, fixedtext, 511 ); m_rgTextLines[ i ].m_szText[ 511 ] = 0; m_rgTextLines[ i ].r = r; m_rgTextLines[ i ].g = g; m_rgTextLines[ i ].b = b; m_rgTextLines[ i ].curtime = curtime; m_nCurrentLine++; if ( m_nCurrentLine <= MAX_TEXT_LINES ) { PositionSliders( 0 ); } m_pScrollbar->setValue( m_pScrollbar->getMaxValue() ); redraw(); }