Changeset 17 for trunk/Lucide/SOURCE/gui


Ignore:
Timestamp:
May 3, 2006, 10:14:37 AM (15 years ago)
Author:
Eugene Romanenko
Message:

update makefiles, remove absolute paths, update djvulibre to version 3.5.17

Location:
trunk/Lucide/SOURCE/gui
Files:
3 edited

Legend:

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

    r2 r17  
    1616
    1717
    18 // OpenWatcom 1.4 headers doesn't have GpiDrawBits() declaration
     18// OpenWatcom headers doesn't have GpiDrawBits() declaration
    1919extern "C" {
    2020    LONG APIENTRY GpiDrawBits(HPS hps, PVOID pBits, PBITMAPINFO2 pbmiInfoTable,
     
    2222}
    2323
    24 typedef LuDocument_LuRectSequence *PLuRectSequence;
     24typedef LuDocument_LuRectSequence    *PLuRectSequence;
     25typedef LuDocument_LuLinkMapSequence *PLuLinkMapSequence;
    2526
    2627#define LINE_HEIGHT     16
     
    5657    spos_y      = 0;
    5758    progressDlg = new ProgressDlg( hWndFrame );
     59    drawareas   = NULL;
     60    drawareaIndex = 0;
    5861    // continuous view
    59     continuous  = true;
     62    continuous  = false;
    6063    pagesizes   = NULL;
    6164    realVscrollMax = 0;
    62     VScrollStep = 0;
    63     drawareas   = NULL;
     65    VScrollStep = 1;
    6466    // asynch draw
    6567    abortAsynch = false;
    6668    termdraw    = false;
    6769    enableAsynchDraw = false;
    68     WinSetRectEmpty( hab, &drawRect );
    6970    DosCreateMutexSem( NULL, &todrawAccess, 0, FALSE );
    7071    DosCreateEventSem( NULL, &haveDraw, 0, FALSE );
     
    110111    if ( doc != NULL ) {
    111112        LuDocument::freeRectangles( ev, selrects );
    112         LuDocument::freeLinkMapping( ev, links );
     113        freeLinks();
    113114        freeFoundrects();
    114115    }
     
    143144    delete pagesizes;
    144145    pagesizes   = NULL;
     146    freeFoundrects();
    145147    delete foundrects;
    146148    foundrects  = NULL;
     149    freeLinks();
    147150
    148151    if ( doc != NULL )
     
    159162        foundrects = new PLuRectSequence[ totalpages ];
    160163        memset( foundrects, 0, sizeof( PLuRectSequence ) * totalpages );
    161         enableAsynchDraw = false; //doc->isAsynchRenderingSupported( ev );
     164        links = new PLuLinkMapSequence[ totalpages ];
     165        memset( links, 0, sizeof( PLuLinkMapSequence ) * totalpages );
     166        enableAsynchDraw = doc->isAsynchRenderingSupported( ev );
    162167        drawPage();
    163168    }
     
    166171void DocumentViewer::freeFoundrects()
    167172{
    168     if ( foundrects != NULL ) {
     173    if ( foundrects != NULL )
     174    {
    169175        for ( long i = 0; i < totalpages; i++ ) {
    170             LuDocument::freeRectangles( ev, foundrects[ i ] );
    171         }
     176            if ( foundrects[ i ] != NULL ) {
     177                LuDocument::freeRectangles( ev, foundrects[ i ] );
     178                foundrects[ i ] = NULL;
     179            }
     180        }
     181    }
     182}
     183
     184void DocumentViewer::freeLinks()
     185{
     186    if ( links != NULL )
     187    {
     188        for ( long i = 0; i < totalpages; i++ ) {
     189            if ( links[ i ] != NULL ) {
     190                LuDocument::freeLinkMapping( ev, links[ i ] );
     191                links[ i ] = NULL;
     192            }
     193        }
     194
     195        delete links;
     196        links = NULL;
    172197    }
    173198}
     
    177202void DocumentViewer::goToPage( long page )
    178203{
    179     currentpage = page;
    180     if ( doc != NULL ) {
     204    if ( continuous && ( doc != NULL ) )
     205    {
     206        double pgpos = pagenumToPos( page ) / VScrollStep;
     207        vertScroll( hWndDoc, MPFROM2SHORT( pgpos, SB_SLIDERPOSITION ), NULLHANDLE );
    181208        drawPage();
    182         Lucide::checkNavigationMenus();
     209    }
     210    else
     211    {
     212        currentpage = page;
     213        if ( doc != NULL ) {
     214            drawPage();
     215            Lucide::checkNavigationMenus();
     216        }
    183217    }
    184218}
     
    259293            _this->progressDlg->hide();
    260294            _this->goToPage( i );
    261             if ( _this->foundrects[i]->_length > 0 )
    262             {
     295            if ( _this->foundrects[i]->_length > 0 ) {
    263296                RECTL r;
    264                 _this->docPosToWinPos( &(_this->foundrects[i]->_buffer[0]), &r );
     297                _this->docPosToWinPos( 0, &(_this->foundrects[i]->_buffer[0]), &r );
    265298                _this->scrollToPos( _this->hWndDoc, NULLHANDLE, r.xLeft, r.yBottom, false );
    266299            }
     
    322355    if ( continuous )
    323356    {
    324 
     357        adjustSize();
     358        WinSendMsg( hWndDoc, WM_SIZE, MPFROM2SHORT( cxClient, cyClient ),
     359                    MPFROM2SHORT( cxClient, cyClient ) );
     360        WinInvalidateRect( hWndDoc, NULL, FALSE );
    325361    }
    326362    else
     
    328364        LuDocument::freeRectangles( ev, selrects );
    329365        selrects = NULL;
    330         LuDocument::freeLinkMapping( ev, links );
    331         links = doc->getLinkMapping( ev, currentpage );
     366        if ( links != NULL ) {
     367            if ( links[ currentpage ] == NULL ) {
     368                links[ currentpage ] = doc->getLinkMapping( ev, currentpage );
     369            }
     370        }
    332371        Lucide::enableCopy( false );
    333372        adjustSize();
     
    361400        case SB_SLIDERTRACK:
    362401        case SB_SLIDERPOSITION:
    363             sVscrollInc = ( SHORT1FROMMP( mp2 ) - sVscrollPos ) *
    364                                     ( continuous ? VScrollStep : 1 );
    365             break;
    366     }
    367 
    368     if ( continuous ) {
    369         sVscrollInc = __max( -sVscrollPos * VScrollStep, __min( sVscrollInc,
    370                                   ( sVscrollMax - sVscrollPos ) * VScrollStep ) );
    371     } else {
    372         sVscrollInc = __max( -sVscrollPos, __min( sVscrollInc, sVscrollMax - sVscrollPos ) );
    373     }
     402            sVscrollInc = ( SHORT1FROMMP( mp2 ) - sVscrollPos ) * VScrollStep;
     403            break;
     404    }
     405
     406    sVscrollInc = __max( -sVscrollPos * VScrollStep, __min( sVscrollInc,
     407                              ( sVscrollMax - sVscrollPos ) * VScrollStep ) );
    374408
    375409    if ( sVscrollInc != 0 )
    376410    {
    377         sVscrollPos += (SHORT)( continuous ? ( sVscrollInc / VScrollStep ) : sVscrollInc );
     411        sVscrollPos += (SHORT)( sVscrollInc / VScrollStep );
    378412        WinScrollWindow( hwnd, 0, sVscrollInc, NULL, NULL, hrgn, NULL, SW_INVALIDATERGN );
    379413        WinSendMsg( hWndVscroll, SBM_SETPOS, MPFROMSHORT( sVscrollPos ), MPVOID );
     
    465499    else {
    466500        realVscrollMax = sVscrollMax = (SHORT)__max( 0, height - cyClient );
     501        VScrollStep = 1;
    467502    }
    468503    sVscrollPos = __min( sVscrollPos, sVscrollMax );
     
    503538    if ( hps != NULLHANDLE )
    504539    {
    505         LONG rclx = d->drawRect.xRight - d->drawRect.xLeft;
    506         LONG rcly = d->drawRect.yTop - d->drawRect.yBottom;
    507 
    508         POINTL aptlPoints[4]={ d->drawRect.xLeft, d->drawRect.yBottom,
    509                                d->drawRect.xRight-1, d->drawRect.yTop-1,
     540        PRECTL drawRect = &((*d->drawareas)[d->drawareaIndex].drawrect);
     541        LONG rclx = drawRect->xRight - drawRect->xLeft;
     542        LONG rcly = drawRect->yTop - drawRect->yBottom;
     543
     544        POINTL aptlPoints[4]={ drawRect->xLeft, drawRect->yBottom,
     545                               drawRect->xRight-1, drawRect->yTop-1,
    510546                               0, 0, rclx, rcly };
    511547
     
    529565{
    530566    DosSetPriority( PRTYS_THREAD, PRTYC_REGULAR, PRTYD_MINIMUM, 0 );
    531     DocumentViewer *d = (DocumentViewer *)p;
     567    DocumentViewer *_this = (DocumentViewer *)p;
    532568
    533569    HAB thab = WinInitialize( 0 );
     
    535571
    536572    ULONG postCnt;
    537     while ( !d->termdraw )
    538     {
    539         DosWaitEventSem( d->haveDraw, SEM_INDEFINITE_WAIT );
    540         DosResetEventSem( d->haveDraw, &postCnt );
    541         d->abortAsynch = false;
    542 
    543         if ( !WinIsRectEmpty( thab, &d->drawRect) )
     573    while ( !_this->termdraw )
     574    {
     575        DosWaitEventSem( _this->haveDraw, SEM_INDEFINITE_WAIT );
     576        DosResetEventSem( _this->haveDraw, &postCnt );
     577        _this->abortAsynch = false;
     578
     579        if ( ( _this->drawareas != NULL ) && ( _this->doc != NULL ) )
    544580        {
    545             if ( d->doc != NULL )
     581            DosRequestMutexSem( _this->todrawAccess, SEM_INDEFINITE_WAIT );
     582
     583            for ( int i = 0; i < _this->drawareas->size(); i++ )
    546584            {
    547                 DosRequestMutexSem( d->todrawAccess, SEM_INDEFINITE_WAIT );
    548                 LONG rclx = d->drawRect.xRight - d->drawRect.xLeft;
    549                 LONG rcly = d->drawRect.yTop - d->drawRect.yBottom;
    550                 d->pixbuf = new LuPixbuf( d->ev, rclx, rcly );
    551                 d->doc->renderPageToPixbufAsynch( d->ev, d->currentpage,
    552                            d->spos_x, d->spos_y, rclx, rcly, d->realzoom, 0, d->pixbuf,
    553                            asynchCallbackFnDraw, asynchCallbackFnAbort, p );
    554                 if ( !d->abortAsynch )
    555                 {
    556                     HPS hps = WinGetPS( d->hWndDoc );
    557                     if ( hps != NULLHANDLE ) {
    558                         d->drawSelection( hps, &d->drawRect );
    559                         d->drawFound( hps, &d->drawRect );
    560                         WinReleasePS( hps );
    561                     }
    562                     WinSetRectEmpty( thab, &d->drawRect );
     585                PageDrawArea *pda = &(*_this->drawareas)[ i ];
     586
     587                LONG rclx = pda->drawrect.xRight - pda->drawrect.xLeft;
     588                LONG rcly = pda->drawrect.yTop - pda->drawrect.yBottom;
     589                _this->pixbuf = new LuPixbuf( _this->ev, rclx, rcly );
     590                _this->doc->renderPageToPixbufAsynch( _this->ev, pda->pagenum,
     591                       pda->startpos.x, pda->startpos.y, rclx, rcly, _this->realzoom, 0,
     592                       _this->pixbuf, asynchCallbackFnDraw, asynchCallbackFnAbort, p );
     593                delete _this->pixbuf;
     594                _this->pixbuf = NULL;
     595
     596                if ( _this->abortAsynch ) {
     597                    break;  // TODO: remove completed areas from drawareas
    563598                }
    564                 delete d->pixbuf;
    565                 d->pixbuf = NULL;
    566                 DosReleaseMutexSem( d->todrawAccess );
    567             }
     599            }
     600
     601            if ( !_this->abortAsynch )
     602            {
     603                HPS hps = WinGetPS( _this->hWndDoc );
     604                if ( hps != NULLHANDLE ) {
     605                    //_this->drawSelection( hps, &_this->drawRect );
     606                    //_this->drawFound( hps, &_this->drawRect );
     607                    WinReleasePS( hps );
     608                }
     609                delete _this->drawareas;
     610                _this->drawareas = NULL;
     611            }
     612
     613            DosReleaseMutexSem( _this->todrawAccess );
    568614        }
    569615    }
     
    599645    if ( WinIntersectRect( hab, &rclDraw, &rcl, &rclPage ) )
    600646    {
    601         if ( isSubrect( &drawRect, &rclDraw ) &&
    602              ( sVscrollInc == 0 ) && ( sHscrollInc == 0 ) ) {
    603             return;
     647        if ( ( drawareas != NULL ) && ( drawareas->size() > 0 ) ) {
     648            if ( isSubrect( &((*drawareas)[0].drawrect), &rclDraw ) &&
     649                 ( sVscrollInc == 0 ) && ( sHscrollInc == 0 ) ) {
     650                return;
     651            }
    604652        }
    605653
    606654        abortAsynch = true;
    607655        DosRequestMutexSem( todrawAccess, SEM_INDEFINITE_WAIT );
    608         if ( !WinIsRectEmpty( hab, &drawRect ) )
     656
     657        if ( drawareas == NULL ) {
     658            drawareas = new DrawAreas;
     659        }
     660        if ( drawareas->size() == 0 ) {
     661            PageDrawArea pda;
     662            memset( &pda, 0, sizeof( pda ) );
     663            pda.pagenum = currentpage;
     664            drawareas->push_back( pda );
     665        }
     666
     667        PageDrawArea *ppda = &((*drawareas)[0]);
     668
     669        if ( !WinIsRectEmpty( hab, &ppda->drawrect ) )
    609670        {
    610671            if ( sVscrollInc > 0 ) {
    611                 drawRect.yTop    += sVscrollInc;
     672                ppda->drawrect.yTop    += sVscrollInc;
    612673            } else if ( sVscrollInc < 0 ) {
    613                 drawRect.yBottom += sVscrollInc;
     674                ppda->drawrect.yBottom += sVscrollInc;
    614675            }
    615676            if ( sHscrollInc > 0 ) {
    616                 drawRect.xLeft  -= sHscrollInc;
     677                ppda->drawrect.xLeft  -= sHscrollInc;
    617678            } else if ( sHscrollInc < 0 ) {
    618                 drawRect.xRight -= sHscrollInc;
    619             }
    620         }
    621         WinUnionRect( hab, &drawRect, &drawRect, &rclDraw );
    622         spos_x = sHscrollPos + drawRect.xLeft;
    623         spos_y = (cyClient - drawRect.yTop) + sVscrollPos;
     679                ppda->drawrect.xRight -= sHscrollInc;
     680            }
     681        }
     682        WinUnionRect( hab, &ppda->drawrect, &ppda->drawrect, &rclDraw );
     683        ppda->startpos.x = sHscrollPos + ppda->drawrect.xLeft;
     684        ppda->startpos.y = ( cyClient - ppda->drawrect.yTop ) + sVscrollPos;
    624685
    625686        // workaround ?
    626         drawRect.xRight++;
    627         drawRect.yTop++;
     687        ppda->drawrect.xRight++;
     688        ppda->drawrect.yTop++;
    628689
    629690        DosReleaseMutexSem( todrawAccess );
     
    684745
    685746// founds number of page at specified vertical position
    686 long DocumentViewer::posToPagenum( double yPos, double *pageRest )
    687 {
     747// for continuous view only
     748long DocumentViewer::posToPagenum( LONG yPosWin, double *pageRest )
     749{
     750    double yPos = ( cyClient - yPosWin ) + ( sVscrollPos * VScrollStep );
    688751    double pgend = 0;
    689752    for ( long i = 0; i < totalpages; i++ )
     
    698761}
    699762
     763// founds vertical position of specified
     764// for continuous view only
     765double DocumentViewer::pagenumToPos( long pagenum )
     766{
     767    double ypos = 0;
     768    for ( long i = 0; i < pagenum; i++ ) {
     769        ypos += pagesizes[ i ].y;
     770    }
     771    return ypos * realzoom;
     772}
     773
    700774// founds pages and it's areas to draw
    701775DrawAreas *DocumentViewer::foundDrawAreas( PRECTL r )
     
    705779    {
    706780        long foundpage = -1;
    707         double docPos, pageRest;
     781        double pageRest;
    708782        for ( LONG i = r->yTop; i >= r->yBottom; i-- )
    709783        {
    710784            pageRest = 0;
    711             docPos = ( cyClient - i ) + ( sVscrollPos * VScrollStep );
    712             long pg = posToPagenum( docPos, &pageRest );
     785            long pg = posToPagenum( i, &pageRest );
    713786            if ( pg != foundpage )
    714787            {
     
    739812// found current page in continuous view mode.
    740813// it's a page which occupes a most larger area in the window.
    741 void DocumentViewer::foundCurrentPage()
     814void DocumentViewer::determineCurrentPage()
    742815{
    743816    RECTL rcl = { 0 };
     
    777850    {
    778851        PageDrawArea *pda = &(*drawareas)[ i ];
     852
     853        // load links for page if not loaded before
     854        if ( links[ pda->pagenum ] == NULL ) {
     855            links[ pda->pagenum ] = doc->getLinkMapping( ev, pda->pagenum );
     856        }
    779857
    780858        RECTL rclDraw = { __min( pagesizes[ pda->pagenum ].x * realzoom,
     
    819897    WinEndPaint( hps );
    820898
    821     foundCurrentPage();
     899    determineCurrentPage();
    822900}
    823901
     
    833911
    834912// converts document position to window position
    835 void DocumentViewer::docPosToWinPos( LuRectangle *r, PRECTL rcl )
    836 {
    837     rcl->xLeft   = ( r->x1 * realzoom ) - sHscrollPos;
    838     rcl->yBottom = cyClient - ( r->y2 * realzoom ) + sVscrollPos;
    839     rcl->xRight  = ( r->x2 * realzoom ) - sHscrollPos;
    840     rcl->yTop    = cyClient - ( r->y1 * realzoom ) + sVscrollPos;
     913void DocumentViewer::docPosToWinPos( long pagenum, LuRectangle *r, PRECTL rcl )
     914{
     915    if ( continuous )
     916    {
     917        double yplus = pagenumToPos( pagenum );
     918
     919        rcl->xLeft   = ( r->x1 * realzoom ) - sHscrollPos;
     920        rcl->yBottom = cyClient - ( ( yplus + r->y2 ) * realzoom ) +
     921                            ( sVscrollPos * VScrollStep );
     922        rcl->xRight  = ( r->x2 * realzoom ) - sHscrollPos;
     923        rcl->yTop    = cyClient - ( ( yplus + r->y1 ) * realzoom ) +
     924                            ( sVscrollPos * VScrollStep );
     925    }
     926    else
     927    {
     928        rcl->xLeft   = ( r->x1 * realzoom ) - sHscrollPos;
     929        rcl->yBottom = cyClient - ( r->y2 * realzoom ) + sVscrollPos;
     930        rcl->xRight  = ( r->x2 * realzoom ) - sHscrollPos;
     931        rcl->yTop    = cyClient - ( r->y1 * realzoom ) + sVscrollPos;
     932    }
    841933}
    842934
     
    851943        {
    852944            if ( useScale ) {
    853                 docPosToWinPos( &(rects->_buffer[i]), &r );
     945                docPosToWinPos( 0, &(rects->_buffer[i]), &r );
    854946            }
    855947            else
     
    900992}
    901993
    902 // scrolls window during text selection
     994// scrolls window to specified pos (optionally with text selection)
    903995void DocumentViewer::scrollToPos( HWND hwnd, HRGN hrgn, SHORT xpos, SHORT ypos,
    904996                                  bool withSelection )
     
    9811073    else if ( links != NULL )
    9821074    {
    983         for ( int i = 0; i < links->_length; i++ )
     1075        long pg = currentpage;
     1076        if ( continuous ) {
     1077            double tmp;
     1078            pg = posToPagenum( ypos, &tmp );
     1079        }
     1080
     1081        if ( links[ pg ] != NULL )
     1082        {
     1083            for ( int i = 0; i < links[ pg ]->_length; i++ )
     1084            {
     1085                RECTL r = {0};
     1086                docPosToWinPos( pg, &(links[ pg ]->_buffer[i].area), &r );
     1087
     1088                POINTL ptl = { xpos, ypos };
     1089                if ( WinPtInRect( hab, &r, &ptl ) ) {
     1090                    WinSetPointer( HWND_DESKTOP, handptr );
     1091                    return TRUE;
     1092                }
     1093            }
     1094        }
     1095    }
     1096
     1097    return FALSE;
     1098}
     1099
     1100// handles WM_BUTTON1CLICK
     1101BOOL DocumentViewer::wmClick( HWND hwnd, SHORT xpos, SHORT ypos )
     1102{
     1103    if ( links == NULL ) {
     1104        return FALSE;
     1105    }
     1106
     1107    long pg = currentpage;
     1108    if ( continuous ) {
     1109        double tmp;
     1110        pg = posToPagenum( ypos, &tmp );
     1111    }
     1112
     1113    if ( links[ pg ] != NULL )
     1114    {
     1115        for ( int i = 0; i < links[ pg ]->_length; i++ )
    9841116        {
    9851117            RECTL r = {0};
    986             docPosToWinPos( &(links->_buffer[i].area), &r );
    987 
    988             POINTL ptl = { xpos, ypos };
    989             if ( WinPtInRect( hab, &r, &ptl ) ) {
    990                 WinSetPointer( HWND_DESKTOP, handptr );
    991                 return TRUE;
    992             }
    993         }
    994     }
    995 
    996     return FALSE;
    997 }
    998 
    999 // handles WM_BUTTON1CLICK
    1000 BOOL DocumentViewer::wmClick( HWND hwnd, SHORT xpos, SHORT ypos )
    1001 {
    1002     if ( links != NULL )
    1003     {
    1004         for ( int i = 0; i < links->_length; i++ )
    1005         {
    1006             RECTL r = {0};
    1007             docPosToWinPos( &(links->_buffer[i].area), &r );
     1118            docPosToWinPos( pg, &(links[ pg ]->_buffer[i].area), &r );
    10081119
    10091120            POINTL ptl = { xpos, ypos };
    10101121            if ( WinPtInRect( hab, &r, &ptl ) )
    10111122            {
    1012                 if ( links->_buffer[i].link.type == LU_LINK_TYPE_EXTERNAL_URI )
     1123                if ( links[ pg ]->_buffer[i].link.type == LU_LINK_TYPE_EXTERNAL_URI )
    10131124                {
    10141125                    WinMessageBox( HWND_DESKTOP, hMainFrame,
    1015                         links->_buffer[i].link.uri, "URI", 1,
     1126                        links[ pg ]->_buffer[i].link.uri, "URI", 1,
    10161127                        MB_OK | MB_INFORMATION | MB_MOVEABLE );
    10171128                }
    1018                 else if ( links->_buffer[i].link.type == LU_LINK_TYPE_TITLE )
     1129                else if ( links[ pg ]->_buffer[i].link.type == LU_LINK_TYPE_TITLE )
    10191130                {
    1020                     char *title = links->_buffer[i].link.title;
     1131                    char *title = links[ pg ]->_buffer[i].link.title;
    10211132                    if ( title == NULL ) {
    10221133                        title = "???";
     
    10251136                        title, "?", 1, MB_OK | MB_INFORMATION | MB_MOVEABLE );
    10261137                }
    1027                 else if ( links->_buffer[i].link.type == LU_LINK_TYPE_PAGE )
     1138                else if ( links[ pg ]->_buffer[i].link.type == LU_LINK_TYPE_PAGE )
    10281139                {
    1029                     goToPage( links->_buffer[i].link.page );
     1140                    goToPage( links[ pg ]->_buffer[i].link.page );
    10301141                }
    10311142
  • trunk/Lucide/SOURCE/gui/docViewer.h

    r2 r17  
    33
    44#include <vector>
    5 using namespace std;
    65
    76#include <ludoc.xh>
     
    1817};
    1918
    20 typedef vector<PageDrawArea> DrawAreas;
     19typedef std::vector<PageDrawArea> DrawAreas;
    2120
    2221
     
    4039
    4140        static void registerClass( HAB hab );
     41
    4242        // Internal stuffs
    4343    private:
     
    5656        BOOL wmChar( HWND hwnd, MPARAM mp1, MPARAM mp2 );
    5757        void winPosToDocPos( PPOINTL startpoint, PPOINTL endpoint, LuRectangle *r );
    58         void docPosToWinPos( LuRectangle *r, PRECTL rcl );
     58        void docPosToWinPos( long pagenum, LuRectangle *r, PRECTL rcl );
    5959        HRGN rectsToRegion( HPS hps, LuDocument_LuRectSequence *rects, bool useScale );
    6060        void drawSelection( HPS hps, PRECTL r );
    6161        void scrollToPos( HWND hwnd, HRGN hrgn, SHORT xpos, SHORT ypos, bool withSelection );
    6262        void freeFoundrects();
     63        void freeLinks();
    6364        void drawFound( HPS hps, PRECTL r );
    6465        DrawAreas *foundDrawAreas( PRECTL r );
    65         void foundCurrentPage();
    66         long posToPagenum( double yPos, double *pageRest );
     66        void determineCurrentPage();
     67        long posToPagenum( LONG yPosWin, double *pageRest );
     68        double pagenumToPos( long pagenum );
    6769
    6870        static MRESULT EXPENTRY docViewProc( HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 );
     
    98100        long totalpages, currentpage;
    99101        ProgressDlg *progressDlg;
     102        DrawAreas *drawareas;
     103        int drawareaIndex;
    100104
    101105        // continuous view
     
    103107        LuSize *pagesizes;
    104108        SHORT VScrollStep;
    105         DrawAreas *drawareas;
    106109
    107110        // asynch draw
    108111        bool enableAsynchDraw;
    109         RECTL drawRect;
    110112        HMTX todrawAccess;
    111113        HEV  haveDraw;
     
    122124
    123125        // links
    124         LuDocument_LuLinkMapSequence *links;
     126        LuDocument_LuLinkMapSequence **links;
    125127        HPOINTER handptr;
    126128
     
    134136
    135137#endif // __DOCVIEWER_H
     138
  • trunk/Lucide/SOURCE/gui/makefile

    r2 r17  
    11.autodepend
    22
    3 OBJDIR = D:\Projects\Lucide\OBJS
    4 EXEDIR = D:\Projects\Lucide\BIN
     3OBJDIR = ..\..\OBJS
     4EXEDIR = ..\..\BIN
    55
    66.path.obj = $(OBJDIR)
Note: See TracChangeset for help on using the changeset viewer.