mwxlib 0.99.0__py3-none-any.whl → 0.99.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mwxlib might be problematic. Click here for more details.
- mwx/controls.py +32 -33
- mwx/framework.py +1 -1
- {mwxlib-0.99.0.dist-info → mwxlib-0.99.1.dist-info}/METADATA +1 -1
- {mwxlib-0.99.0.dist-info → mwxlib-0.99.1.dist-info}/RECORD +7 -7
- {mwxlib-0.99.0.dist-info → mwxlib-0.99.1.dist-info}/LICENSE +0 -0
- {mwxlib-0.99.0.dist-info → mwxlib-0.99.1.dist-info}/WHEEL +0 -0
- {mwxlib-0.99.0.dist-info → mwxlib-0.99.1.dist-info}/top_level.txt +0 -0
mwx/controls.py
CHANGED
|
@@ -26,7 +26,7 @@ class Param:
|
|
|
26
26
|
Args:
|
|
27
27
|
name : label
|
|
28
28
|
range : range
|
|
29
|
-
value : std_value (default is
|
|
29
|
+
value : std_value (default is None)
|
|
30
30
|
fmt : text formatter or format:str (default is '%g')
|
|
31
31
|
`hex` specifies hexadecimal format
|
|
32
32
|
handler : called when control changed
|
|
@@ -95,8 +95,8 @@ class Param:
|
|
|
95
95
|
def reset(self, v=None, internal_callback=True):
|
|
96
96
|
"""Reset value when indexed (by knobs) with callback."""
|
|
97
97
|
if v is None:
|
|
98
|
-
v = self.std_value
|
|
99
|
-
if np.isnan(v):
|
|
98
|
+
v = self.std_value
|
|
99
|
+
if np.isnan(v):
|
|
100
100
|
return
|
|
101
101
|
elif isinstance(v, str):
|
|
102
102
|
try:
|
|
@@ -104,27 +104,7 @@ class Param:
|
|
|
104
104
|
except Exception:
|
|
105
105
|
v = self.value
|
|
106
106
|
internal_callback = False
|
|
107
|
-
|
|
108
|
-
if v is None:
|
|
109
|
-
v = nan
|
|
110
|
-
if np.isnan(v) or np.isinf(v):
|
|
111
|
-
self.__value = v
|
|
112
|
-
for knob in self.knobs:
|
|
113
|
-
knob.update_ctrl(None, notify=False)
|
|
114
|
-
return
|
|
115
|
-
if v != self.__value:
|
|
116
|
-
## If the value is out of range, it will be modified.
|
|
117
|
-
valid = (self.min <= v <= self.max)
|
|
118
|
-
if valid:
|
|
119
|
-
self.__value = v
|
|
120
|
-
elif v < self.min:
|
|
121
|
-
self.__value = self.min
|
|
122
|
-
self.callback('underflow', self)
|
|
123
|
-
else:
|
|
124
|
-
self.__value = self.max
|
|
125
|
-
self.callback('overflow', self)
|
|
126
|
-
for knob in self.knobs:
|
|
127
|
-
knob.update_ctrl(valid, notify=True)
|
|
107
|
+
self.value = v
|
|
128
108
|
if internal_callback:
|
|
129
109
|
self.callback('control', self)
|
|
130
110
|
|
|
@@ -137,8 +117,6 @@ class Param:
|
|
|
137
117
|
def check(self, v):
|
|
138
118
|
self.__check = bool(v)
|
|
139
119
|
self.callback('check', self)
|
|
140
|
-
for knob in self.knobs:
|
|
141
|
-
knob.update_label()
|
|
142
120
|
|
|
143
121
|
@property
|
|
144
122
|
def name(self):
|
|
@@ -157,7 +135,30 @@ class Param:
|
|
|
157
135
|
|
|
158
136
|
@value.setter
|
|
159
137
|
def value(self, v):
|
|
160
|
-
|
|
138
|
+
if v is None:
|
|
139
|
+
v = nan
|
|
140
|
+
if np.isnan(v) or np.isinf(v):
|
|
141
|
+
self.__value = v
|
|
142
|
+
for knob in self.knobs:
|
|
143
|
+
knob.update_ctrl(None, notify=False)
|
|
144
|
+
return
|
|
145
|
+
elif v == self.__value:
|
|
146
|
+
for knob in self.knobs:
|
|
147
|
+
knob.update_ctrl(True, notify=False)
|
|
148
|
+
return
|
|
149
|
+
|
|
150
|
+
## If the value is out of range, it will be modified.
|
|
151
|
+
valid = (self.min <= v <= self.max)
|
|
152
|
+
if valid:
|
|
153
|
+
self.__value = v
|
|
154
|
+
elif v < self.min:
|
|
155
|
+
self.__value = self.min
|
|
156
|
+
self.callback('underflow', self)
|
|
157
|
+
else:
|
|
158
|
+
self.__value = self.max
|
|
159
|
+
self.callback('overflow', self)
|
|
160
|
+
for knob in self.knobs:
|
|
161
|
+
knob.update_ctrl(valid, notify=True)
|
|
161
162
|
|
|
162
163
|
@property
|
|
163
164
|
def std_value(self):
|
|
@@ -326,7 +327,7 @@ class Knob(wx.Panel):
|
|
|
326
327
|
self.__par = param
|
|
327
328
|
self.__par.knobs.append(self) # パラメータの関連付けを行う
|
|
328
329
|
|
|
329
|
-
if type
|
|
330
|
+
if not type:
|
|
330
331
|
type = 'slider'
|
|
331
332
|
if cw < 0:
|
|
332
333
|
cw = 0
|
|
@@ -442,6 +443,7 @@ class Knob(wx.Panel):
|
|
|
442
443
|
t = ' ' if np.isnan(v.std_value) or v.value == v.std_value else '*'
|
|
443
444
|
self.label.SetLabel(v.name + t)
|
|
444
445
|
self.label.Refresh()
|
|
446
|
+
self.Refresh()
|
|
445
447
|
|
|
446
448
|
def update_ctrl(self, valid=True, notify=False):
|
|
447
449
|
"""Called when value is being changed (internal use only)."""
|
|
@@ -478,12 +480,14 @@ class Knob(wx.Panel):
|
|
|
478
480
|
j = self.ctrl.GetValue() + bit
|
|
479
481
|
if j != v.index:
|
|
480
482
|
v.index = j
|
|
483
|
+
v.reset(v.value)
|
|
481
484
|
|
|
482
485
|
def OnScroll(self, evt): #<wx._core.ScrollEvent><wx._controls.SpinEvent><wx._core.CommandEvent>
|
|
483
486
|
v = self.__par
|
|
484
487
|
j = self.ctrl.GetValue()
|
|
485
488
|
if j != v.index:
|
|
486
489
|
v.index = j
|
|
490
|
+
v.reset(v.value)
|
|
487
491
|
evt.Skip()
|
|
488
492
|
|
|
489
493
|
def OnMouseWheel(self, evt): #<wx._core.MouseEvent>
|
|
@@ -590,7 +594,6 @@ class KnobCtrlPanel(scrolled.ScrolledPanel):
|
|
|
590
594
|
for cc in obj.Children: # child of child <wx._core.SizerItem>
|
|
591
595
|
cc.Show(not cc.IsShown())
|
|
592
596
|
self.Layout()
|
|
593
|
-
self.SendSizeEvent()
|
|
594
597
|
break
|
|
595
598
|
evt.Skip()
|
|
596
599
|
|
|
@@ -618,9 +621,7 @@ class KnobCtrlPanel(scrolled.ScrolledPanel):
|
|
|
618
621
|
## child = self.Sizer.Children[groupid]
|
|
619
622
|
## child.Show(p)
|
|
620
623
|
self.Sizer.Show(groupid % len(self.__groups), p)
|
|
621
|
-
## self.Sizer.Fit(self) # do Fit(self.Parent) if needed
|
|
622
624
|
self.Layout()
|
|
623
|
-
self.Parent.SendSizeEvent() # let parent redraw the child panel
|
|
624
625
|
|
|
625
626
|
def is_folded(self, groupid):
|
|
626
627
|
child = self.Sizer.Children[groupid]
|
|
@@ -632,9 +633,7 @@ class KnobCtrlPanel(scrolled.ScrolledPanel):
|
|
|
632
633
|
if isinstance(child.Sizer, wx.StaticBoxSizer) and child.IsShown():
|
|
633
634
|
for cc in child.Sizer.Children: # child of child <wx._core.SizerItem>
|
|
634
635
|
cc.Show(not p)
|
|
635
|
-
## self.Sizer.Fit(self) # do Fit(self.Parent) if needed
|
|
636
636
|
self.Layout()
|
|
637
|
-
self.Parent.SendSizeEvent() # let parent redraw the child panel
|
|
638
637
|
|
|
639
638
|
def layout(self, items, title=None,
|
|
640
639
|
row=0, expand=0, border=2, hspacing=1, vspacing=1,
|
mwx/framework.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
mwx/__init__.py,sha256=nN62CGTWjME7Zz2h-jIRB8MxwuErIkHPGrlBzydkF0o,643
|
|
2
2
|
mwx/bookshelf.py,sha256=so-xSLq08sMlJBErTxOaDoKUAMa_g1CkIP2pNnff68c,5607
|
|
3
|
-
mwx/controls.py,sha256=
|
|
4
|
-
mwx/framework.py,sha256=
|
|
3
|
+
mwx/controls.py,sha256=IPd2MhiWncKcsNu9m0Pi3WJU61FXUdaup8v9XmgM4Zg,47795
|
|
4
|
+
mwx/framework.py,sha256=UIFTHvaE3gjLg8LMep5_2XWIK-_XGbc6wsJ0jFkfq1Y,75587
|
|
5
5
|
mwx/graphman.py,sha256=N34F5GXpN3ZEMfUIOswlM-OCIB1KObC6X1NTq_Qc2dk,69973
|
|
6
6
|
mwx/images.py,sha256=_-Eh3xF7Khu42ivkYp97NXIzSNGbjcidqtWjZQFGtqE,47827
|
|
7
7
|
mwx/matplot2.py,sha256=xCJ_ZzdDEWmzctpPaOrzTnwXyHINP4nfFHweoTZa6ug,32899
|
|
@@ -21,8 +21,8 @@ mwx/plugins/frame_listview.py,sha256=yEYPCdLHLSMTJwTv6iYAh3Lo4lJvYfp5BxTLP3FhW9Y
|
|
|
21
21
|
mwx/plugins/line_profile.py,sha256=--9NIc3x5EfRB3L59JvD7rzENQHyiYfu7wWJo6AuMkA,820
|
|
22
22
|
mwx/py/__init__.py,sha256=xykgfOytOwNuvXsfkLoumFZSTN-iBsHOjczYXngjmUE,12
|
|
23
23
|
mwx/py/filling.py,sha256=fumUG1F5M9TL-Dfqni4G85uk7TmvnUunTbdcPDV0vfo,16857
|
|
24
|
-
mwxlib-0.99.
|
|
25
|
-
mwxlib-0.99.
|
|
26
|
-
mwxlib-0.99.
|
|
27
|
-
mwxlib-0.99.
|
|
28
|
-
mwxlib-0.99.
|
|
24
|
+
mwxlib-0.99.1.dist-info/LICENSE,sha256=PGtRKCaTkmUDlBQwpptJAxJtdqxIUtAmdBsaT9nUVkA,1091
|
|
25
|
+
mwxlib-0.99.1.dist-info/METADATA,sha256=Hen3Gyc04u6p8FXYzfrB3fwK1h-OFhYVqzlqdMkCsbs,7411
|
|
26
|
+
mwxlib-0.99.1.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
|
|
27
|
+
mwxlib-0.99.1.dist-info/top_level.txt,sha256=SI1Mh118AstnUFGPNq5aMNKiAnVNmZk1S9Ij-OwAEpY,4
|
|
28
|
+
mwxlib-0.99.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|