home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pgehdl.zip / PgHndler.cpv < prev    next >
Text File  |  1996-02-27  |  4KB  |  123 lines

  1.  
  2.  
  3. // Feature source code generation begins here...
  4. INotificationId APageHandler::previousPageNumberId = "APageHandler::previousPageNumber";
  5. INotificationId APageHandler::currentPageNumberId = "APageHandler::currentPageNumber";
  6.  
  7. INotificationId APageHandler::page1SelectedEventId = "APageHandler::page1SelectedEvent";
  8. INotificationId APageHandler::page2SelectedEventId = "APageHandler::page2SelectedEvent";
  9. INotificationId APageHandler::page3SelectedEventId = "APageHandler::page3SelectedEvent";
  10. INotificationId APageHandler::anyPageSelectedEventId = "APageHandler::anyPageSelectedEvent";
  11.  
  12. int APageHandler::previousPageNumber() const
  13. {
  14.   return iPreviousPageNumber;
  15. }
  16.  
  17. APageHandler& APageHandler::setPreviousPageNumber(int aPreviousPageNumber)
  18. {
  19.   if (!(iPreviousPageNumber == aPreviousPageNumber))
  20.   {
  21.     iPreviousPageNumber = aPreviousPageNumber;
  22.     notifyObservers(INotificationEvent(APageHandler::previousPageNumberId, *this));
  23.   } // endif
  24.   return *this;
  25. }
  26.  
  27. int APageHandler::currentPageNumber() const
  28. {
  29.   return iCurrentPageNumber;
  30. }
  31.  
  32. APageHandler& APageHandler::setCurrentPageNumber(int aCurrentPageNumber)
  33. {
  34.   if (!(iCurrentPageNumber == aCurrentPageNumber))
  35.   {
  36.  
  37.     ITRACE_DEVELOP(" aCurrentPAgeNumber " + IString(aCurrentPageNumber));
  38.  
  39.     iCurrentPageNumber = aCurrentPageNumber;
  40.     notifyObservers(INotificationEvent(APageHandler::currentPageNumberId, *this));
  41.     notifyObservers(INotificationEvent(APageHandler::anyPageSelectedEventId, *this,
  42.                                        true, (void*) iCurrentPageNumber ));
  43.     switch (currentPageNumber()) {
  44.        case 1:
  45.           notifyObservers(INotificationEvent(APageHandler::page1SelectedEventId, *this));
  46.           break;
  47.  
  48.        case 2:
  49.           notifyObservers(INotificationEvent(APageHandler::page2SelectedEventId, *this));
  50.           break;
  51.  
  52.        case 3:
  53.           notifyObservers(INotificationEvent(APageHandler::page3SelectedEventId, *this));
  54.           break;
  55.  
  56.     } // end switch
  57.  
  58.   } // endif
  59.   return *this;
  60. }
  61.  
  62. APageHandler& APageHandler::handleFor(INotebook* notebk)
  63. {
  64.   nbPageHandler.IPageHandler::handleEventsFor(notebk)  ;
  65.   return *this;
  66. }
  67.  
  68. APageHandler& APageHandler::stopHandleFor(INotebook* notebk)
  69. {
  70.   nbPageHandler.IPageHandler::stopHandlingEventsFor(notebk);
  71.   return *this;
  72. }
  73.  
  74. // Feature source code generation ends here.
  75.  
  76.  
  77.  
  78. // added code starts here ****************
  79.  
  80.  
  81. Boolean APageHandler::MyPageHandler::select( IPageSelectEvent& pageevent)
  82.  {
  83.  
  84.    int bothfound = 0;
  85.    int i =1;
  86.    INotebook::Cursor cursor(*(pageevent.notebook()));
  87.  
  88.   // walk thru all pages in the notebook to find the previous page and the selected page
  89.  
  90.    for (cursor.setToFirst();cursor.isValid();cursor.setToNext()) {
  91.  
  92.  
  93.    // find the page number for the previous page
  94.       if (pageevent.previousSelectedPageHandle() == cursor.current() ){
  95.          outerPgHandlerNv->setPreviousPageNumber( i );
  96.          bothfound += 1;
  97.       }
  98.  
  99.    // find the page number for the current page
  100.  
  101.       if (pageevent.pageHandle() == cursor.current()) {
  102.          outerPgHandlerNv->setCurrentPageNumber( i );
  103.          bothfound += 1;
  104.       }
  105.  
  106.     // if both previous and current page are found, exit the for loop
  107.  
  108.       if ( bothfound == 2 )
  109.          break;
  110.       else
  111.          i += 1;
  112.  
  113.     } // end for(cursor)
  114.  
  115.    return false;   // pass the PM page selected message to the owner chain ,
  116.                    // just in case there is a handler that wants to process this message
  117.  
  118.  } //   APageHandler::MyPageHandler::select
  119.  
  120.  
  121. // added code ends here *************
  122.  
  123.