Changeset 450 for trunk


Ignore:
Timestamp:
May 3, 2010, 10:34:50 PM (11 years ago)
Author:
Silvan Scherrer
Message:

fixes ticket:190

Location:
trunk/Lucide
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/Lucide/gui/Lucide_res.H

    r407 r450  
    133133#define IDC_FINDFIELD       10
    134134#define IDC_FINDMATCHCASE   11
     135#define IDC_FINDBACK 12
    135136
    136137#define IDD_PROGRESS        1004
  • trunk/Lucide/gui/dialogs.rc

    r407 r450  
    4949                CONTROL "", IDC_FINDFIELD, 73, 30, 111, 8, WC_ENTRYFIELD, ES_LEFT | ES_AUTOSCROLL | ES_MARGIN | ES_ANY | WS_VISIBLE | WS_GROUP | WS_TABSTOP
    5050                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
    51                 CONTROL "FIND_MATCH_CASE", IDC_FINDMATCHCASE, 8, 6, 177, 10, WC_BUTTON, BS_AUTOCHECKBOX | WS_VISIBLE | WS_GROUP | WS_TABSTOP
     51                CONTROL "FIND_MATCH_CASE", IDC_FINDMATCHCASE, 8, 12, 177, 10, WC_BUTTON, BS_AUTOCHECKBOX | WS_VISIBLE | WS_GROUP | WS_TABSTOP
     52                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
     53                CONTROL "FIND_BACK", IDC_FINDBACK, 8, 2, 177, 10, WC_BUTTON, BS_AUTOCHECKBOX | WS_VISIBLE | WS_GROUP | WS_TABSTOP
    5254                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
    5355                DEFPUSHBUTTON "FIND_OK", DID_OK, 201, 27, 51, 14
  • trunk/Lucide/gui/docViewer.cpp

    r439 r450  
    658658// perform search in document
    659659void DocumentViewer::searchDocument( const char *_searchString, bool _caseSensitive,
    660                                      bool _continueSearch )
     660                                     bool _continueSearch, bool _findBack )
    661661{
    662662    abortSearch = false;
     
    669669    caseSensitive = _caseSensitive;
    670670    continueSearch = _continueSearch;
     671    findBack = _findBack;
    671672
    672673    progressDlg->setBreakFunc( searchabort, this );
     
    691692
    692693    long i = _this->currentpage;
     694if (!_this->findBack) {
    693695    if ( _this->continueSearch && ( _this->currentpage < ( _this->totalpages - 1 ) ) ) {
    694696        i = _this->currentpage + 1;
    695697    }
     698} else {
     699    if ( _this->continueSearch && ( _this->currentpage >= 1 ) ) {
     700        i = _this->currentpage - 1;
     701    }
     702}
    696703
    697704    bool found = false;
    698     for ( ; i < _this->totalpages; i++ )
     705    for ( ; _this->findBack ? i >=0 : i < _this->totalpages; _this->findBack ? i-- : i++ )
    699706    {
    700707        char *fmt = newstrdupL( FIND_SEARCH_PAGE_OF );
     
    706713
    707714        _this->foundrects[ i ] = _this->doc->searchText( ev, i,
    708                                         (char *)_this->searchString, _this->caseSensitive );
     715                                        (char *)_this->searchString, _this->caseSensitive, _this->findBack );
    709716        if ( _this->foundrects[ i ] != NULL )
    710717        {
  • trunk/Lucide/gui/docViewer.h

    r399 r450  
    9999        void copyToClipbrd();
    100100        void searchDocument( const char *_searchString, bool _caseSensitive,
    101                              bool _continueSearch );
     101                             bool _continueSearch, bool _findBack );
    102102        void setPresentation( bool _presentation );
    103103        void zoomInOut( bool zoomIn );
     
    244244        bool caseSensitive;
    245245        bool continueSearch;
     246        bool findBack;
    246247        bool abortSearch;
    247248
  • trunk/Lucide/gui/findDlg.cpp

    r367 r450  
    5050    searchString  = newstrdup( "" );
    5151    caseSensitive = false;
     52    findBack = false;
    5253}
    5354
     
    9192            WinSendDlgItemMsg( hwnd, IDC_FINDFIELD, EM_SETSEL, MPFROM2SHORT( 0, MAXSEARCHLENGTH ), MPVOID );
    9293            WinCheckButton( hwnd, IDC_FINDMATCHCASE, _this->caseSensitive );
     94            WinCheckButton( hwnd, IDC_FINDBACK, _this->findBack );
     95
    9396
    9497            return (MRESULT)FALSE;
     
    105108                        _this->searchString = newstrdup( buf );
    106109                        _this->caseSensitive = WinQueryButtonCheckstate( hwnd, IDC_FINDMATCHCASE );
     110                        _this->findBack = WinQueryButtonCheckstate( hwnd, IDC_FINDBACK );
    107111                        WinDismissDlg( hwnd, DID_OK );
    108112                    }
     
    176180        }
    177181
     182        case WM_CONTROL:
     183        // @todo highlight the text in the spinbutton (should work but looks like its not)
     184        WinSendDlgItemMsg( hwnd, IDC_PAGE, EM_SETSEL,
     185                                      MPFROM2SHORT(0, 256), NULL);
     186        return (MRESULT)FALSE;
     187
    178188        case WM_COMMAND:
    179189            switch (SHORT1FROMMP(mp1))
  • trunk/Lucide/gui/findDlg.h

    r367 r450  
    4646        char *getSearchString() { return searchString; }
    4747        bool isCaseSensitive() { return caseSensitive; }
     48        bool doFindBack() { return findBack; }
    4849
    4950    private:
     
    5455        char *searchString;
    5556        bool caseSensitive;
     57        bool findBack;
    5658};
    5759
  • trunk/Lucide/gui/lucide.cpp

    r448 r450  
    14191419                        {
    14201420                            docViewer->searchDocument( findDlg->getSearchString(),
    1421                                             findDlg->isCaseSensitive(), false );
     1421                                            findDlg->isCaseSensitive(), false, findDlg->doFindBack() );
    14221422
    14231423                            WinEnableMenuItem( hWndMenu, CM_FINDAGAIN, TRUE );
     
    14291429                case CM_FINDAGAIN:
    14301430                    docViewer->searchDocument( findDlg->getSearchString(),
    1431                                                findDlg->isCaseSensitive(), true );
     1431                                               findDlg->isCaseSensitive(), true, findDlg->doFindBack() );
    14321432                    return (MRESULT)FALSE;
    14331433
  • trunk/Lucide/gui/toolbar.cpp

    r449 r450  
    7777                     && !Lucide::dontSwitchPage )
    7878                {
    79 /* @todo highlight the text in the spinbutton (is that possible at all???)
     79                // @todo highlight the text in the spinbutton (should work but looks like its not)
    8080                   BOOL rc = (BOOL)WinSendDlgItemMsg( hwnd, TBID_PAGENUM, EM_SETSEL,
    81                                       MPFROM2SHORT(1,10), NULL); */
     81                                      MPFROM2SHORT(0,256), NULL);
    8282                }
    8383
  • trunk/Lucide/lng/Lucide.lng

    r435 r450  
    148148FIND_FIND_WHAT=~Find what
    149149FIND_MATCH_CASE=~Match case
     150FIND_BACK=Find ~Backwards
    150151FIND_OK=~OK
    151152FIND_CANCEL=~Cancel
  • trunk/Lucide/lng/Lucide_de.lng

    r435 r450  
    148148FIND_FIND_WHAT=~Suchbegriff
    149149FIND_MATCH_CASE=~Groá-/Kleinschreibung beachten
     150FIND_BACK=~Rckw„rts suchen
    150151FIND_OK=~OK
    151152FIND_CANCEL=~Abbruch
  • trunk/Lucide/plugins/ludoc/ludoc.cpp

    r367 r450  
    445445
    446446
    447 SOM_Scope LuDocument_LuRectSequence*  SOMLINK searchText(LuDocument *somSelf,
    448                                                           Environment *ev,
    449                                                          long pagenum,
    450                                                          string text,
    451                                                          boolean caseSensitive )
     447
     448/*
     449 * SOM_Scope LuDocument_LuRectSequence*  SOMLINK searchText(LuDocument *somSelf,
     450 *                                                           Environment *ev,
     451 *                                                          long pagenum,
     452 *                                                          string text,
     453 *                                                          boolean caseSensitive
     454 *                                                          boolean findBack)
     455 */
     456
     457/*
     458 * The prototype for searchText was replaced by the following prototype:
     459 */
     460SOM_Scope LuDocument_LuRectSequence*  SOMLINK searchText(LuDocument *somSelf,
     461                                                          Environment *ev,
     462                                                         long pagenum,
     463                                                         string text,
     464                                                         boolean caseSensitive,
     465                                                         boolean findBack)
    452466{
    453467    // Abstract method does nothing
  • trunk/Lucide/plugins/ludoc/ludoc.idl

    r367 r450  
    524524     * Note: SOMMalloc() must be used for all memory allocations.
    525525     **/
    526     LuRectSequence *searchText( in long pagenum, in string text, in boolean caseSensitive );
     526    LuRectSequence *searchText( in long pagenum, in string text, in boolean caseSensitive, in boolean findBack );
    527527
    528528
  • trunk/Lucide/plugins/lupoppler/lupoppler.cpp

    r371 r450  
    13331333                                                         long pagenum,
    13341334                                                         string text,
    1335                                                          boolean caseSensitive)
     1335                                                         boolean caseSensitive,
     1336                                                         boolean findBack)
    13361337{
    13371338    LuPopplerDocumentData *somThis = LuPopplerDocumentGetData(somSelf);
Note: See TracChangeset for help on using the changeset viewer.