コード例 #1
0
ファイル: form_cont_edit.cpp プロジェクト: LabShare/IMOD
// Set the state of all ghost-related controls and save flags for passing with actions
void ContSurfPoint::setGhostState( int interval, int ghostmode)
{
  diaSetSpinBox(ghostSpinBox, interval);
  diaSetChecked(downGhostBox, ghostmode & IMOD_GHOST_PREVSEC);
  diaSetChecked(upGhostBox, ghostmode & IMOD_GHOST_NEXTSEC);
  diaSetChecked(surfGhostBox, ghostmode & IMOD_GHOST_SURFACE);
  diaSetChecked(lighterGhostBox, ghostmode & IMOD_GHOST_LIGHTER);
  diaSetChecked(allObjGhostBox, ghostmode & IMOD_GHOST_ALLOBJ);
}
コード例 #2
0
ファイル: mv_listobj.cpp プロジェクト: LabShare/IMOD
// Set On/Off state for one object
void imodvOlistSetChecked(ImodvApp *a, int ob, bool state)
{
  if (!Oolist_dialog)
    return;
  if (ob < numOolistButtons && ob < a->imod->objsize)
    diaSetChecked(OolistButtons[ob], state);
}
コード例 #3
0
ファイル: pixelview.cpp プロジェクト: imod-mirror/IMOD
/*
 * The class constructor
 */
PixelView::PixelView(QWidget *parent, const char *name, Qt::WindowFlags fl)
  : QWidget(parent, fl)
{
  int i, j, iz = B3DNINT(App->cvi->zmouse);
  setAttribute(Qt::WA_DeleteOnClose);
  setAttribute(Qt::WA_AlwaysShowToolTips);
  QVBoxLayout *vBox = new QVBoxLayout(this);
  vBox->setSpacing(3);

  // Make the mouse report box
  QHBoxLayout *hBox = diaHBoxLayout(vBox);
  mMouseLabel = diaLabel(" ", this, hBox);
  hBox->addStretch();
  hBox->setSpacing(5);

  mFileValBox = diaCheckBox("File value", this, hBox);
  diaSetChecked(mFileValBox, fromFile);
  connect(mFileValBox, SIGNAL(toggled(bool)), this, 
          SLOT(fromFileToggled(bool)));
  mFileValBox->setToolTip("Show value from file, not byte value from memory"
                ", at mouse position");
  mFileValBox->setEnabled(fileReadable(App->cvi, iz));

  QCheckBox *gbox = diaCheckBox("Grid", this, hBox);
  diaSetChecked(gbox, showButs);
  connect(gbox, SIGNAL(toggled(bool)), this, SLOT(showButsToggled(bool)));
  gbox->setToolTip("Show buttons with values from file or memory)");

  hBox = diaHBoxLayout(vBox);
  mGridValBox = diaCheckBox("Grid value from file", this, hBox);
  diaSetChecked(mGridValBox, gridFromFile);
  connect(mGridValBox, SIGNAL(toggled(bool)), this, 
          SLOT(gridFileToggled(bool)));
  mGridValBox->setToolTip("Show value from file, not byte value from memory"
                ", in each button");
  mGridValBox->setEnabled(fileReadable(App->cvi, iz));

  mConvertBox = NULL;
  if (App->cvi->rgbStore) {
    mConvertBox = diaCheckBox("Convert RGB to gray scale", this, hBox);
    diaSetChecked(mConvertBox, convertRGB);
    connect(mConvertBox, SIGNAL(toggled(bool)), this, 
            SLOT(convertToggled(bool)));
    mConvertBox->setToolTip("Show luminance values instead of RGB triplets"
                  );
  }
コード例 #4
0
ファイル: form_cont_edit.cpp プロジェクト: LabShare/IMOD
void ContSurfPoint::init()
{
  setAttribute(Qt::WA_DeleteOnClose);
  setAttribute(Qt::WA_AlwaysShowToolTips);
  mCtrlPressed = false;
  mSliderPressed = false;
  setFontDependentWidths();
  diaSetChecked(mouseSizeBox, iceGetWheelForSize() != 0);
  adjustSize();
}
コード例 #5
0
ファイル: mv_image.cpp プロジェクト: LabShare/IMOD
// Update the dialog box (just the view flag for now)
void mvImageUpdate(ImodvApp *a)
{
  if (a->texMap && !sFlags) {
    sFlags |= IMODV_DRAW_CZ;
    if (sDia)
      diaSetChecked(sDia->mViewZBox, true);
  } else if (!a->texMap && sFlags) {
    sFlags = 0;
    mvImageCleanup();
    if (sDia) {
      diaSetChecked(sDia->mViewXBox, false);
      diaSetChecked(sDia->mViewYBox, false);
      diaSetChecked(sDia->mViewZBox, false);
    }
  }
  if (sDia) {
    sDia->mViewXBox->setEnabled(!(a->stereo && a->imageStereo));
    sDia->mViewYBox->setEnabled(!(a->stereo && a->imageStereo));
    sDia->mSliders->setEnabled(IIS_SLICES, !(a->stereo && a->imageStereo));
  }
}
コード例 #6
0
ファイル: mv_listobj.cpp プロジェクト: LabShare/IMOD
void imodvOlistUpdateOnOffs(ImodvApp *a)
{
  int ob;
  bool state, nameChgd = false;
  QString qstr;
  char obname[MAX_LIST_NAME];
  int len;
  QColor bkgColor;
  QColor gray;
  if (!Oolist_dialog || !numOolistButtons)
    return;
  QPalette palette = Oolist_dialog->palette();
  gray = palette.color(Oolist_dialog->backgroundRole());

  // Hiding seems to help the updates some, especially if there are text 
  // changes or massive turning off of buttons, but processing events after
  // hiding doesn't help the time on Linux and leaves it gray (3/26/09)
  if (numOolistButtons > 256)
    Oolist_dialog->mFrame->hide();
  for (ob = 0; ob < numOolistButtons; ob++) {
    if (ob < a->imod->objsize) {
      // Get a truncated name
      // DMN 9/20/04: just truncate all columns a little bit now
      len = strlen(a->imod->obj[ob].name);
      if (len > MAX_LIST_NAME - 1)
        len = MAX_LIST_NAME - 1;
      strncpy(obname, a->imod->obj[ob].name, len);
      obname[len] = 0x00;
      qstr.sprintf("%d: %s",ob + 1, obname);
      state = !(a->imod->obj[ob].flags & IMOD_OBJFLAG_OFF);
      bkgColor.setRgb((int)(255. * a->imod->obj[ob].red),
                      (int)(255. * a->imod->obj[ob].green),
                      (int)(255. * a->imod->obj[ob].blue));
      if (OolistButtons[ob]->isHidden()) {
        OolistButtons[ob]->show();
        nameChgd = true;
      }
      if (qstr != OolistButtons[ob]->text()) {
        OolistButtons[ob]->setText(qstr);
        nameChgd = true;
      }
      diaSetWidgetColor(OolistButtons[ob], bkgColor);
      diaSetChecked(OolistButtons[ob], state);
    } else if (!OolistButtons[ob]->isHidden()) {
      OolistButtons[ob]->hide();
      nameChgd = true;
    }
  }
  if (numOolistButtons > 256)
    Oolist_dialog->mFrame->show();
  if (nameChgd) 
    Oolist_dialog->adjustFrameSize();
}
コード例 #7
0
ファイル: mv_image.cpp プロジェクト: LabShare/IMOD
// Set ancillary parameters to the state for a movie segment
int mvImageSetMovieDrawState(MovieSegment &segment)
{
 if (!segment.imgAxisFlags) {

    // If there is no image drawing, turn off Imodv flag and then, if there is currently,
    // take the update route to updating this module
    Imodv->texMap = 0;
    if (sFlags) 
      mvImageUpdate(Imodv);
    return 1;
  }
  sFlags = segment.imgAxisFlags;
  Imodv->texMap = 1;
  sWhiteLevel = segment.imgWhiteLevel;
  sBlackLevel = segment.imgBlackLevel;
  sFalsecolor = segment.imgFalseColor;
  makeColorMap();
  sXdrawSize = B3DMIN(segment.imgXsize, Imodv->vi->xsize);
  sYdrawSize = B3DMIN(segment.imgYsize, Imodv->vi->ysize);
  sZdrawSize = B3DMIN(segment.imgZsize, Imodv->vi->zsize);

  // Update the dialog as needed
  if (sDia) {

    sDia->mSliders->setValue(IIS_X_SIZE, sXdrawSize);
    sDia->mSliders->setValue(IIS_Y_SIZE, sYdrawSize);
    sDia->mSliders->setValue(IIS_Z_SIZE, sZdrawSize);
    diaSetChecked(sDia->mViewXBox, (sFlags & IMODV_DRAW_CX) != 0);
    diaSetChecked(sDia->mViewYBox, (sFlags & IMODV_DRAW_CY) != 0);
    diaSetChecked(sDia->mViewZBox, (sFlags & IMODV_DRAW_CZ) != 0);
    sDia->mSliders->setValue(IIS_BLACK, sBlackLevel);
    sDia->mSliders->setValue(IIS_WHITE, sWhiteLevel);
    diaSetChecked(sDia->mFalseBox, sFalsecolor != 0);
  }
  return 0;
}
コード例 #8
0
ファイル: cont_copy.cpp プロジェクト: imod-mirror/IMOD
ContourCopy::ContourCopy(QWidget *parent, const char *name)
  : DialogFrame(parent, 3, 1, buttonLabels, buttonTips, true, 
                ImodPrefs->getRoundedStyle(), " ", "", name)
{
  QRadioButton *radio;
  QHBoxLayout *hBox = diaHBoxLayout(mLayout);
  
  mToCombo = new QComboBox(this);
  hBox->addWidget(mToCombo);
  mToCombo->addItem("Copy to Object #");
  mToCombo->addItem("Copy to Section #");
  mToCombo->addItem("Copy to Next Section");
  mToCombo->addItem("Copy to Prev Section");
  mToCombo->addItem("Duplicate");
  if (sData.vw->numTimes)
    mToCombo->addItem("Copy to Time Index #");
  mToCombo->setFocusPolicy(Qt::NoFocus);
  mToCombo->setCurrentIndex(sData.copyOperation);
  mToCombo->setToolTip("Select type of place to copy contours to");
  connect(mToCombo, SIGNAL(currentIndexChanged(int)), this,
          SLOT(placeSelected(int)));

  mToSpinBox = new QSpinBox(this);
  hBox->addWidget(mToSpinBox);
  mToSpinBox->setFocusPolicy(Qt::ClickFocus);
  mToSpinBox->setKeyboardTracking(false);
  mToSpinBox->setToolTip("Set object, section, or time");
  connect(mToSpinBox, SIGNAL(valueChanged(int)), this, 
          SLOT(toValueChanged(int)));
  
  QGroupBox *gbox = new QGroupBox("Copy", this);
  QVBoxLayout *gbLayout = new QVBoxLayout(gbox);
  mRadioGroup = new QButtonGroup(this);
  mLayout->addWidget(gbox);
  connect(mRadioGroup, SIGNAL(buttonClicked(int)), this, 
          SLOT(rangeSelected(int)));

  radio = diaRadioButton("Just the current contour(s)", gbox, mRadioGroup, gbLayout, 0,
                         "Copy only the selected contour(s) in the current object");
  radio = diaRadioButton
    ("All contours in surface", gbox, mRadioGroup, gbLayout, 1, 
     "Copy contours with same surface number as current one");
  radio = diaRadioButton("All contours in object", gbox, mRadioGroup, 
                         gbLayout, 2, "Copy all eligible contours in object");

  if (sData.vw->numTimes) {
    mTimeRadio = diaRadioButton
      ("All contours in all objects", gbox, mRadioGroup, 
       gbLayout, 3, "Copy all contours at this time to selected time");
  }

  // Figure out initial radio button settings, enforce flag settings and
  // set the button
  int radioVal = 0;
  if (sData.doSurface)
    radioVal = 1;
  if (sData.doAll)
    radioVal = 2;
  if (sData.vw->numTimes && sData.doAllObj)
    radioVal = 3;
  rangeSelected(radioVal);
  diaSetGroup(mRadioGroup, radioVal);

  mEllipseBox = diaCheckBox("Make equivalent ellipse", this, mLayout);
  connect(mEllipseBox, SIGNAL(toggled(bool)), this, SLOT(ellipseToggled(bool)));
  mEllipseBox->setToolTip("Make the copied contour be the equivalent ellipse (one with "
                          "the same second moments as the area)");
  diaSetChecked(mEllipseBox, sData.makeEllipse != 0);
  mEllipseBox->setEnabled(sData.copyOperation == COPY_TO_OBJECT);
  update();

  connect(this, SIGNAL(actionPressed(int)), this, SLOT(buttonPressed(int)));
  setWindowTitle(imodCaption("3dmod Copy Contours"));
}
コード例 #9
0
ファイル: mv_listobj.cpp プロジェクト: LabShare/IMOD
void ImodvOlist::updateGroups(ImodvApp *a)
{
  IobjGroup *group;
  int i, ob, numGroups = ilistSize(a->imod->groupList);
  int curGrp = a->imod->curObjGroup;
  int *objs;
  bool *states;
  bool showChgd = false;
  QString str;
  diaSetSpinMMVal(mGroupSpin, 0, numGroups, curGrp + 1);
  str.sprintf("/%d", numGroups);
  mNumberLabel->setText(str);
  mNameEdit->setEnabled(curGrp >= 0);
  for (i = 1; i < OBJLIST_NUMBUTTONS; i++)
    mButtons[i]->setEnabled(curGrp >= 0);
  if (curGrp < 0) {
    if (grouping) {
      mFrame->hide();
      for (ob = 0; ob < numOolistButtons; ob++)
        groupButtons[ob]->hide();
      mFrame->show();
      adjustFrameSize();
    }
    grouping = false;
    return;
  }
  if (!grouping) {
    mFrame->hide();
    for (ob = 0; ob < numOolistButtons; ob++)
      groupButtons[ob]->show();
    mFrame->show();
    adjustFrameSize();
  }
  grouping = true;

  group = (IobjGroup *)ilistItem(a->imod->groupList, curGrp);
  if (!group)
    return;
  mNameEdit->setText(group->name);
  states = (bool *)malloc(sizeof(bool) * numOolistButtons);
  if (!states)
    return;
  for (ob = 0; ob < numOolistButtons; ob++)
    states[ob] = false;
  objs = (int *)ilistFirst(group->objList);
  if (objs) {
    for (i = 0; i < ilistSize(group->objList); i++)
      if (objs[i] >= 0 && objs[i] < numOolistButtons)
        states[objs[i]] = true;
  }
  for (ob = 0; ob < numOolistButtons; ob++) {
    if (ob < a->imod->objsize) {
      diaSetChecked(groupButtons[ob], states[ob]);
      if (groupButtons[ob]->isHidden()) {
        groupButtons[ob]->show();
        showChgd = true;
      }
    } else if (!groupButtons[ob]->isHidden()) {
      groupButtons[ob]->hide();
      showChgd = true;
    }
  }
  free(states);
  if (showChgd)
    adjustFrameSize();
}