Ignore:
Timestamp:
Jul 26, 2007, 11:32:48 AM (14 years ago)
Author:
Eugene Romanenko
Message:

Zoom in/Zoom out menuitems and corresponding Ctrl++/Ctrl+- hotkeys. Ctrl+Shift++/Ctrl+Shift+- hotkeys for rotate CW/CCW, Ctrl+P for Print (closes #108)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Lucide/SOURCE/gui/docViewer.cpp

    r211 r212  
    17041704}
    17051705
     1706void DocumentViewer::zoomInOut( bool zoomIn )
     1707{
     1708    if ( ( doc != NULL ) && doc->isScalable( ev ) )
     1709    {
     1710        double z = getRealZoom() / 4;
     1711        double zval = 0;
     1712        if ( zoomIn ) {
     1713            zval = getRealZoom() + z;
     1714        } else {
     1715            zval = getRealZoom() - z;
     1716        }
     1717        zval = (long)( zval * 20.0 ) / 20.0;   // Round to 0.05 (5%)
     1718        if ( zval == getRealZoom() ) {
     1719            zval += ( zoomIn ? 0.01 : -0.01 );
     1720        }
     1721        if ( zval > 0.1 ) {
     1722            Lucide::setZoom( zval );
     1723        }
     1724    }
     1725}
     1726
    17061727// handles WM_BUTTON1CLICK
    17071728BOOL DocumentViewer::wmClick( HWND hwnd, SHORT xpos, SHORT ypos )
     
    17091730    if ( zoomMode )
    17101731    {
    1711         double z = getRealZoom() / 4;
    1712         double zval = 0;
    1713         bool doPlus = false;
    1714         if ( WinGetPhysKeyState( HWND_DESKTOP, 0x1d ) & 0x8000 ) {
    1715             zval = getRealZoom() - z;
    1716         } else {
    1717             zval = getRealZoom() + z;
    1718             doPlus = true;
    1719         }
    1720         zval = (long)( zval * 20.0 ) / 20.0;   // Round to 0.05 (5%)
    1721         if ( zval == getRealZoom() ) {
    1722             zval += ( doPlus ? 0.01 : -0.01 );
    1723         }
    1724         if ( zval > 0.1 ) {
    1725             Lucide::setZoom( zval );
    1726         }
     1732        zoomInOut( ( WinGetPhysKeyState( HWND_DESKTOP, 0x1d ) & 0x8000 ) == 0 );
    17271733        return TRUE;
    17281734    }
     
    18641870    }
    18651871
     1872    //
     1873    // In fullscreen mode accelerators not work, so we process these keys here.
     1874    //
     1875
    18661876    // Ctrl+L
    18671877    if ( ( fsflags & KC_CTRL ) && !( fsflags & KC_KEYUP ) && ( toupper( usch ) == 'L' ) )
     
    18821892    }
    18831893
    1884     // Ctrl
     1894    // Ctrl && zoomMode
    18851895    if ( ( fsflags & KC_VIRTUALKEY ) && ( usvk == VK_CTRL ) && zoomMode ) {
    18861896        wmMouseMove( hwnd, 0, 0 ); // to switch mouse pointer if in zoomMode
Note: See TracChangeset for help on using the changeset viewer.