home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / powergui / debug / prtque / trbrowse.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-10-29  |  1.8 KB  |  61 lines

  1. //************************************************************
  2. // Problem Determination  - Trace Queue Browser
  3. //
  4. // Copyright (C) 1994, Law, Leong, Love, Olson, Tsuji.
  5. // Copyright (c) 1997 John Wiley & Sons, Inc. 
  6. // All Rights Reserved.
  7. //************************************************************
  8. #include <ifont.hpp>
  9. #include "trbrowse.hpp"
  10. #include "trbrowse.h"
  11.  
  12. TraceBrowser::TraceBrowser ( const IString& queueName )
  13.        : IFrameWindow("Trace Browser"),
  14.          queueHandler(*this),
  15.          cnrWin        (IC_FRAME_CLIENT_ID, this, this, IRectangle(),
  16.                         IContainerControl::defaultStyle() |
  17.                         IContainerControl::noSharedObjects ),
  18.          reader      (queueName, this->handle()),
  19.          thread      ( )
  20. {
  21.   // Attach handler to our frame.
  22.   queueHandler.handleEventsFor(this);
  23.  
  24.   // Change the font & show text view with extended selection.
  25.   IFont font("Courier", 8);
  26.   container()
  27.     .showTextView()
  28.     .setExtendedSelection()
  29.     .setFont(font);
  30.  
  31.   // Make the container the client and start the queue.
  32.   (*this)
  33.     .setClient(&container())
  34.     .postEvent(START_QUEUE);
  35. }
  36.  
  37. IBase::Boolean  TraceBrowserHandler::dispatchHandlerEvent ( IEvent& event )
  38. {
  39.   switch (event.eventId())
  40.   {
  41.      case ADD_OBJECT:
  42.      {
  43.        browserWindow.container()
  44.          .addObject((IContainerObject*)(void*)event.parameter1());
  45.        return true;
  46.      }
  47.      case START_QUEUE:
  48.      {
  49.        // Start Reader in a separate Thread.
  50.        browserWindow.readerThread()
  51.           .start(new IThreadMemberFn<QueueReader>
  52.                  (browserWindow.queueReader(),
  53.                   QueueReader::run));
  54.        return true;
  55.      }
  56.      default:
  57.         break;
  58.   } // endswitch
  59.   return false;
  60. }
  61.