# Path: spimagine/gui/gui_utils.py
# def createImageCheckbox(parent, img1=None, img2 = None, tooltip =""):
#     check = QtWidgets.QCheckBox("",parent)
#     checkStr = checkBoxStyleStr%(absPath(img1),absPath(img2))
#     if os.name =="nt":
#         checkStr = checkStr.replace("\\","/")
# 
#     check.setStyleSheet(checkStr)
#     if tooltip:
#         check.setToolTip(tooltip)
#     return check
# 
# def createStandardCheckbox(parent,  tooltip =""):
#     check = QtWidgets.QCheckBox("",parent)
#     checkStr = checkNormalBoxStyleStr
#     if os.name =="nt":
#         checkStr = checkStr.replace("\\","/")
# 
#     check.setStyleSheet(checkStr)
#     check.setToolTip(tooltip)
#     return check
# 
# def createStandardButton(parent,fName = None,method = None, width = 24, tooltip = ""):
#     but = QtWidgets.QPushButton("",parent)
#     but.setStyleSheet("background-color: black;color:black;color:lightgrey;")
#     if fName:
#         but.setIcon(QtGui.QIcon(fName))
#     but.setIconSize(QtCore.QSize(width,width))
#     if method:
#         but.clicked.connect(method)
#     but.setMaximumWidth(width)
#     but.setMaximumHeight(width)
#     if tooltip:
#         but.setToolTip(tooltip)
#     return but
# 
# Path: spimagine/gui/floatslider.py
# class FloatSlider(QtWidgets.QSlider):
#     floatValueChanged = QtCore.pyqtSignal(float)
#     def __init__(self,*args):
#         super(FloatSlider,self).__init__(*args)
#         self.setRange(0,1.,100)
#         self.valueChanged.connect(self.onChanged)
# 
#         self.setStyleSheet("QToolTip { color:white;}")
# 
#     def setRange(self,minVal,maxVal,steps=100):
#         assert(minVal <= maxVal)
#         super(FloatSlider,self).setRange(0,steps)
#         self.minVal = minVal
#         self.maxVal = maxVal
#         self.steps = steps
# 
#     def _from_float(self,x):
#         ind = int(self.steps*(x-self.minVal)/(self.maxVal-self.minVal))
#         ind = max(0,min(self.steps,ind))
#         logger.debug("floatslider (id = %s):  index from float %s = %s"%(id(self), x,ind))
#         return ind
# 
#     def _from_int(self,n):
#         return self.minVal+1.*(self.maxVal-self.minVal)*n/self.steps
# 
# 
#     def setValue(self,val):
#         logger.debug("floatslider (id = %s): setValue to : %s"%(id(self),val))
#         self.floatValue = val
# 
#         # this surpressed anoying feedback
#         old = self.blockSignals(True)
#         super(FloatSlider,self).setValue(self._from_float(val))
#         self.blockSignals(old)
# 
#     def value(self):
#         return self.floatValue
#         # return self._from_int(super(FloatSlider,self).value())
# 
#     def onChanged(self,ind):
#         self.floatValue = self._from_int(ind)
#         self.floatValueChanged.emit(self.floatValue)
#         # self.floatValueChanged.emit(self._from_int(ind))


import logging
import sys
import os
import numpy as np
import spimagine
from six.moves import range, zip
from PyQt5 import QtCore, QtGui, QtWidgets
from spimagine.gui.gui_utils import createImageCheckbox,createStandardCheckbox, createStandardButton
from spimagine.gui.floatslider import FloatSlider
            s.setTickInterval(1)
            s.setFocusPolicy(QtCore.Qt.ClickFocus)
            s.setTracking(True)
            s.setValue(-100+200*(i%2))
            s.valueChanged.connect(self.boundsChanged)
            s.setStyleSheet("height: 22px; border = 0px;")

            gridBox.addWidget(s,i,1)


        vbox.addLayout(gridBox)
            
        line =  QtWidgets.QFrame()
        line.setFrameShape(QtWidgets.QFrame.HLine)

        vbox.addWidget(line)
        vbox.addWidget(QtWidgets.QLabel("Display",alignment = QtCore.Qt.AlignCenter))

        # the perspective/box checkboxes
        self.checkProj = createImageCheckbox(self, absPath("images/rays_persp.png"),
                                             absPath("images/rays_ortho.png"), tooltip="projection")

        self.checkBox = createImageCheckbox(self, absPath("images/wire_cube.png"),
                                            absPath("images/wire_cube_incative.png"),
                                            tooltip="toggle box")

        self.checkInterpolate = createStandardCheckbox(self,
                                                  tooltip="interpolate values")
        self.checkInterpolate.setChecked(True)


# Path: spimagine/gui/gui_utils.py
# def createImageCheckbox(parent, img1=None, img2 = None, tooltip =""):
#     check = QtWidgets.QCheckBox("",parent)
#     checkStr = checkBoxStyleStr%(absPath(img1),absPath(img2))
#     if os.name =="nt":
#         checkStr = checkStr.replace("\\","/")
# 
#     check.setStyleSheet(checkStr)
#     if tooltip:
#         check.setToolTip(tooltip)
#     return check
# 
# def createStandardCheckbox(parent,  tooltip =""):
#     check = QtWidgets.QCheckBox("",parent)
#     checkStr = checkNormalBoxStyleStr
#     if os.name =="nt":
#         checkStr = checkStr.replace("\\","/")
# 
#     check.setStyleSheet(checkStr)
#     check.setToolTip(tooltip)
#     return check
# 
# def createStandardButton(parent,fName = None,method = None, width = 24, tooltip = ""):
#     but = QtWidgets.QPushButton("",parent)
#     but.setStyleSheet("background-color: black;color:black;color:lightgrey;")
#     if fName:
#         but.setIcon(QtGui.QIcon(fName))
#     but.setIconSize(QtCore.QSize(width,width))
#     if method:
#         but.clicked.connect(method)
#     but.setMaximumWidth(width)
#     but.setMaximumHeight(width)
#     if tooltip:
#         but.setToolTip(tooltip)
#     return but
# 
# Path: spimagine/gui/floatslider.py
# class FloatSlider(QtWidgets.QSlider):
#     floatValueChanged = QtCore.pyqtSignal(float)
#     def __init__(self,*args):
#         super(FloatSlider,self).__init__(*args)
#         self.setRange(0,1.,100)
#         self.valueChanged.connect(self.onChanged)
# 
#         self.setStyleSheet("QToolTip { color:white;}")
# 
#     def setRange(self,minVal,maxVal,steps=100):
#         assert(minVal <= maxVal)
#         super(FloatSlider,self).setRange(0,steps)
#         self.minVal = minVal
#         self.maxVal = maxVal
#         self.steps = steps
# 
#     def _from_float(self,x):
#         ind = int(self.steps*(x-self.minVal)/(self.maxVal-self.minVal))
#         ind = max(0,min(self.steps,ind))
#         logger.debug("floatslider (id = %s):  index from float %s = %s"%(id(self), x,ind))
#         return ind
# 
#     def _from_int(self,n):
#         return self.minVal+1.*(self.maxVal-self.minVal)*n/self.steps
# 
# 
#     def setValue(self,val):
#         logger.debug("floatslider (id = %s): setValue to : %s"%(id(self),val))
#         self.floatValue = val
# 
#         # this surpressed anoying feedback
#         old = self.blockSignals(True)
#         super(FloatSlider,self).setValue(self._from_float(val))
#         self.blockSignals(old)
# 
#     def value(self):
#         return self.floatValue
#         # return self._from_int(super(FloatSlider,self).value())
# 
#     def onChanged(self,ind):
#         self.floatValue = self._from_int(ind)
#         self.floatValueChanged.emit(self.floatValue)
#         # self.floatValueChanged.emit(self._from_int(ind))


# Path: spimagine/gui/volsettings.py
import logging
import sys
import os
import numpy as np
import spimagine
from six.moves import range, zip
from PyQt5 import QtCore, QtGui, QtWidgets
from spimagine.gui.gui_utils import createImageCheckbox,createStandardCheckbox, createStandardButton
from spimagine.gui.floatslider import FloatSlider

            s.setTickInterval(1)
            s.setFocusPolicy(QtCore.Qt.ClickFocus)
            s.setTracking(True)
            s.setValue(-100+200*(i%2))
            s.valueChanged.connect(self.boundsChanged)
            s.setStyleSheet("height: 22px; border = 0px;")

            gridBox.addWidget(s,i,1)


        vbox.addLayout(gridBox)
            
        line =  QtWidgets.QFrame()
        line.setFrameShape(QtWidgets.QFrame.HLine)

        vbox.addWidget(line)
        vbox.addWidget(QtWidgets.QLabel("Display",alignment = QtCore.Qt.AlignCenter))

        # the perspective/box checkboxes
        self.checkProj = createImageCheckbox(self, absPath("images/rays_persp.png"),
                                             absPath("images/rays_ortho.png"), tooltip="projection")

        self.checkBox = createImageCheckbox(self, absPath("images/wire_cube.png"),
                                            absPath("images/wire_cube_incative.png"),
                                            tooltip="toggle box")

        self.checkInterpolate = createStandardCheckbox(self,
                                                  tooltip="interpolate values")
        self.checkInterpolate.setChecked(True)


        self.checkInvert = createStandardCheckbox(self,