コード例 #1
0
ファイル: glyphviewer.c プロジェクト: barak/ivtools-cvs
void GlyphViewer::rate_scroll () {        
    Window* w = canvas()->window();
    WidgetKit* kit = WidgetKit::instance();
    
    Coord dx = _x - _lx;
    Coord dy = _y - _ly;
    
    if (dx != 0.0 && dy != 0.0) {
        double angle = atan2(dy, dx)*180/M_PI;
        
        if (angle < -157.5) {
            w->cursor(kit->rfast_cursor());
        } else if (angle < -112.5) {
            w->cursor(kit->rufast_cursor());
        } else if (angle < -67.5) {
            w->cursor(kit->ufast_cursor());
        } else if (angle < -22.5) {
            w->cursor(kit->lufast_cursor());
        } else if (angle < 22.5) {
            w->cursor(kit->lfast_cursor());
        } else if (angle < 67.5) {
            w->cursor(kit->ldfast_cursor());
        } else if (angle < 112.5) {
            w->cursor(kit->dfast_cursor());
        } else if (angle < 157.5) {
            w->cursor(kit->rdfast_cursor());
        } else {
            w->cursor(kit->rfast_cursor());
        }
    }
    
    Coord l, b, r, t;
    _root->getbounds(l, b, r, t);
    canvas()->damage(l, b, r, t);
    _root->translate(dx, dy);
    _root->getbounds(l, b, r, t);
    canvas()->damage(l, b, r, t);
}