Changeset 2575


Ignore:
Timestamp:
Dec 12, 2016 1:00:28 PM (5 years ago)
Author:
vondreele
Message:

add exclLim to ValidatedTextCtrls?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIctrls.py

    r2569 r2575  
    277277      from this value.
    278278     
    279     :param list nDig: number of digits & places ([nDig,nPlc]) after decimal to use
    280       for display of float. Alternately, None can be specified which causes
    281       numbers to be displayed with approximately 5 significant figures
     279    :param list nDig: number of digits, places and optionally the format
     280     ([nDig,nPlc,fmt]) after decimal to use for display of float. The format
     281     is either 'f' (default) or 'g'. Alternately, None can be specified which
     282     causes numbers to be displayed with approximately 5 significant figures
    282283      (Default=None).
    283284
     
    292293      upper limit is unbounded
    293294      NB: test in NumberValidator is val <= max not val < max
     295     
     296    :param list exclLim: if True exclude min/max value ([exclMin,exclMax]);
     297     (Default=[False,False])
    294298
    295299    :param function OKcontrol: specifies a function or method that will be
     
    338342    '''
    339343    def __init__(self,parent,loc,key,nDig=None,notBlank=True,min=None,max=None,
    340                  OKcontrol=None,OnLeave=None,typeHint=None,
    341                  CIFinput=False, OnLeaveArgs={}, ASCIIonly=False, **kw):
     344        OKcontrol=None,OnLeave=None,typeHint=None,CIFinput=False,exclLim=[False,False],
     345        OnLeaveArgs={}, ASCIIonly=False, **kw):
    342346        # save passed values needed outside __init__
    343347        self.result = loc
     
    361365        if isinstance(val,int) or typeHint is int:
    362366            self.type = int
    363             wx.TextCtrl.__init__(
    364                 self,parent,wx.ID_ANY,
    365                 validator=NumberValidator(int,result=loc,key=key,
    366                                           min=min,max=max,
    367                                           OKcontrol=OKcontrol,
    368                                           CIFinput=CIFinput),
    369                 **kw)
     367            wx.TextCtrl.__init__(self,parent,wx.ID_ANY,
     368                validator=NumberValidator(int,result=loc,key=key,min=min,max=max,
     369                    exclLim=exclLim,OKcontrol=OKcontrol,CIFinput=CIFinput),**kw)
    370370            if val is not None:
    371371                self._setValue(val)
     
    376376        elif isinstance(val,float) or typeHint is float:
    377377            self.type = float
    378             wx.TextCtrl.__init__(
    379                 self,parent,wx.ID_ANY,
    380                 validator=NumberValidator(float,result=loc,key=key,
    381                                           min=min,max=max,
    382                                           OKcontrol=OKcontrol,
    383                                           CIFinput=CIFinput),
    384                 **kw)
     378            wx.TextCtrl.__init__(self,parent,wx.ID_ANY,
     379                validator=NumberValidator(float,result=loc,key=key,min=min,max=max,
     380                    exclLim=exclLim,OKcontrol=OKcontrol,CIFinput=CIFinput),**kw)
    385381            if val is not None:
    386382                self._setValue(val)
     
    609605      upper limit is unbounded
    610606     
     607    :param list exclLim: if True exclude min/max value ([exclMin,exclMax]);
     608     (Default=[False,False])
     609
    611610    :param dict/list result: List or dict where value should be placed when valid
    612611
     
    621620     
    622621    '''
    623     def __init__(self, typ, positiveonly=False, min=None, max=None,
    624                  result=None, key=None, OKcontrol=None, CIFinput=False):
     622    def __init__(self, typ, positiveonly=False, min=None, max=None,exclLim=[False,False],
     623        result=None, key=None, OKcontrol=None, CIFinput=False):
    625624        'Create the validator'
    626625        wx.PyValidator.__init__(self)
     
    630629        self.min = min
    631630        self.max = max
     631        self.exclLim = exclLim
    632632        self.result = result
    633633        self.key = key
     
    695695                tc.invalid = True
    696696                return
    697         # if self.max != None and self.typ == int:
    698         #     if val > self.max:
    699         #         tc.invalid = True
    700         # if self.min != None and self.typ == int:
    701         #     if val < self.min:
    702         #         tc.invalid = True  # invalid
    703         #TODO: this needs test on val > self.max & val < self.max via a control
    704697        if self.max != None:
    705             if val > self.max:
     698            if val >= self.max and exclLim[1]:
     699                tc.invalid = True
     700            elif val > self.max:
    706701                tc.invalid = True
    707702        if self.min != None:
    708             if val < self.min:
     703            if val <= self.min and ecxlLim[0]:
     704                tc.invalid = True
     705            elif val < self.min:
    709706                tc.invalid = True  # invalid
    710707        if self.key is not None and self.result is not None and not tc.invalid:
Note: See TracChangeset for help on using the changeset viewer.