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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
// -*- C++ -*-
//
// Package:     Core
// Class  :     FWCheckBoxIcon
//
// Implementation:
//     <Notes on implementation>
//
// Original Author:  Chris Jones
//         Created:  Thu Feb 19 16:25:17 CST 2009
//

// system include files
#include "TGPicture.h"
#include "TGClient.h"
#include "TSystem.h"
#include <cassert>

// user include files
#include "Fireworks/Core/src/FWCheckBoxIcon.h"

//
// constants, enums and typedefs
//

//
// static data member definitions
//
static const TGPicture* checkImage() {
  static const TGPicture* s_picture = gClient->GetPicture(FWCheckBoxIcon::coreIcondir() + "check-mark.png");
  return s_picture;
}

//
// constructors and destructor
//
FWCheckBoxIcon::FWCheckBoxIcon(unsigned int iEdgeLength) : FWBoxIconBase(iEdgeLength), m_checked(false) {}

// FWCheckBoxIcon::FWCheckBoxIcon(const FWCheckBoxIcon& rhs)
// {
//    // do actual copying here;
// }

FWCheckBoxIcon::~FWCheckBoxIcon() {}

//
// assignment operators
//
// const FWCheckBoxIcon& FWCheckBoxIcon::operator=(const FWCheckBoxIcon& rhs)
// {
//   //An exception safe implementation is
//   FWCheckBoxIcon temp(rhs);
//   swap(rhs);
//
//   return *this;
// }

//
// member functions
//

//
// const member functions
//
void FWCheckBoxIcon::drawInsideBox(Drawable_t iID, GContext_t iContext, int iX, int iY, unsigned int iSize) const {
  if (m_checked) {
    int xOffset = (iSize - checkImage()->GetWidth()) / 2;
    int yOffset = (iSize - checkImage()->GetHeight()) / 2;
    checkImage()->Draw(iID, iContext, iX + xOffset, iY + yOffset);
  }
}

//
// static member functions
//
const TString& FWCheckBoxIcon::coreIcondir() {
  static TString path = Form("%s/src/Fireworks/Core/icons/", gSystem->Getenv("CMSSW_BASE"));
  if (gSystem->AccessPathName(path.Data())) {  // cannot find directory
    assert(gSystem->Getenv("CMSSW_RELEASE_BASE"));
    path = Form("%s/src/Fireworks/Core/icons/", gSystem->Getenv("CMSSW_RELEASE_BASE"));
  }

  return path;
}