EFilterMode

EFilterState

FWNavigatorBase

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
// -*- C++ -*-
#ifndef Fireworks_Core_FWNavigatorBase_h
#define Fireworks_Core_FWNavigatorBase_h
//
// Package:     newVersion
// Class  :     CmsShowNavigator
//

// system include files
#include <string>
#include <sigc++/sigc++.h>
#include <Rtypes.h>

// user include files
#include "Fireworks/Core/interface/FWConfigurable.h"

#include "DataFormats/Provenance/interface/EventID.h"

// forward declarations
class CmsShowMainBase;

namespace edm {
  class EventBase;
  class EventID;
}  // namespace edm

class FWNavigatorBase : public FWConfigurable {
public:
  enum EFilterState { kOff, kOn, kWithdrawn };
  enum EFilterMode { kOr = 1, kAnd = 2 };

public:
  FWNavigatorBase(const CmsShowMainBase&);
  ~FWNavigatorBase() override;

  //configuration management interface
  void addTo(FWConfiguration&) const override = 0;
  void setFrom(const FWConfiguration&) override = 0;

  virtual void nextEvent() = 0;
  virtual void previousEvent() = 0;
  virtual bool nextSelectedEvent() = 0;
  virtual bool previousSelectedEvent() = 0;
  virtual void firstEvent() = 0;
  virtual void lastEvent() = 0;
  // FIXME -- should be Long64_t.
  virtual void goToRunEvent(edm::RunNumber_t, edm::LuminosityBlockNumber_t, edm::EventNumber_t) = 0;

  virtual bool isLastEvent() = 0;
  virtual bool isFirstEvent() = 0;

  virtual const edm::EventBase* getCurrentEvent() const = 0;
  virtual int getNSelectedEvents() = 0;
  virtual int getNTotalEvents() = 0;

  sigc::signal<void()> newEvent_;

  FWNavigatorBase(const FWNavigatorBase&) = delete;                   // stop default
  const FWNavigatorBase& operator=(const FWNavigatorBase&) = delete;  // stop default

private:
  // ---------- member data --------------------------------
  // entry is an event index nubmer which runs from 0 to
  // #events or #selected_events depending on if we filter
  // events or not
  const CmsShowMainBase& m_main;
};

#endif