Ignore:
Timestamp:
May 23, 2006, 6:30:04 PM (15 years ago)
Author:
Eugene Romanenko
Message:

remember nav pane position/visibility

File:
1 edited

Legend:

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

    r25 r26  
    141141void DocumentViewer::setDocument( LuDocument *_doc )
    142142{
    143     doc         = _doc;
    144     zoom        = 1;
    145     currentpage = 0;
    146     fullwidth   = 0;
    147     fullheight  = 0;
    148 
    149     delete pagesizes;
    150     pagesizes   = NULL;
    151 
    152     delete selection;
    153     selection   = NULL;
    154 
    155     freeRects( foundrects );
    156     delete foundrects;
    157     foundrects  = NULL;
    158 
    159     freeRects( selrects );
    160     delete selrects;
    161     selrects    = NULL;
    162 
    163     freeLinks();
     143    close();
     144    doc = _doc;
    164145
    165146    if ( doc != NULL )
     
    191172}
    192173
     174
     175// closes the document
     176void DocumentViewer::close()
     177{
     178    abortAsynch = true;
     179    DosRequestMutexSem( todrawAccess, SEM_INDEFINITE_WAIT );
     180
     181    delete drawareas;
     182    drawareas = NULL;
     183
     184    delete pagesizes;
     185    pagesizes   = NULL;
     186
     187    delete selection;
     188    selection   = NULL;
     189
     190    freeRects( foundrects );
     191    delete foundrects;
     192    foundrects  = NULL;
     193
     194    freeRects( selrects );
     195    delete selrects;
     196    selrects    = NULL;
     197
     198    freeLinks();
     199
     200    doc         = NULL;
     201    totalpages  = 0;
     202    zoom        = 1;
     203    currentpage = 0;
     204    fullwidth   = 0;
     205    fullheight  = 0;
     206
     207    DosReleaseMutexSem( todrawAccess );
     208}
    193209
    194210// sets the view mode
     
    623639    while ( !_this->termdraw )
    624640    {
     641somPrintf("1\n");
    625642        DosWaitEventSem( _this->haveDraw, SEM_INDEFINITE_WAIT );
    626643        DosResetEventSem( _this->haveDraw, &postCnt );
    627644        _this->abortAsynch = false;
     645somPrintf("2\n");
    628646
    629647        if ( ( _this->drawareas != NULL ) && ( _this->doc != NULL ) )
    630648        {
     649somPrintf("3\n");
    631650            DosRequestMutexSem( _this->todrawAccess, SEM_INDEFINITE_WAIT );
    632651
     
    635654                  _this->drawareaIndex++ )
    636655            {
     656somPrintf("4\n");
    637657                PageDrawArea *pda = &(*_this->drawareas)[ _this->drawareaIndex ];
     658somPrintf("4.1\n");
    638659
    639660                LONG rclx = pda->drawrect.xRight - pda->drawrect.xLeft;
    640661                LONG rcly = pda->drawrect.yTop - pda->drawrect.yBottom;
    641662                _this->pixbuf = new LuPixbuf( _this->ev, rclx, rcly );
     663somPrintf("4.2\n");
    642664                _this->doc->renderPageToPixbufAsynch( _this->ev, pda->pagenum,
    643665                       pda->startpos.x, pda->startpos.y, rclx, rcly, _this->realzoom, 0,
    644666                       _this->pixbuf, asynchCallbackFnDraw, asynchCallbackFnAbort, p );
     667somPrintf("4.3\n");
    645668                delete _this->pixbuf;
    646669                _this->pixbuf = NULL;
     670somPrintf("4.4\n");
    647671
    648672                if ( _this->abortAsynch ) {
    649673                    break;  // TODO: remove completed areas from drawareas
    650674                }
     675somPrintf("5\n");
    651676            }
    652677
    653678            if ( !_this->abortAsynch )
    654679            {
     680somPrintf("6\n");
    655681                HPS hps = WinGetPS( _this->hWndDoc );
    656682                if ( hps != NULLHANDLE ) {
     
    667693                delete _this->drawareas;
    668694                _this->drawareas = NULL;
     695somPrintf("7\n");
    669696            }
    670697
    671698            DosReleaseMutexSem( _this->todrawAccess );
    672699        }
     700somPrintf("8\n");
    673701    }
    674702
Note: See TracChangeset for help on using the changeset viewer.