| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1105,19 +1105,30 @@ def test_range_slider(orientation): | |||
| 1105 | 1105 | # Check initial value is set correctly | |
| 1106 | 1106 | assert_allclose(slider.val, (0.1, 0.34)) | |
| 1107 | 1107 | ||
| 1108 | + def handle_positions(slider): | ||
| 1109 | + if orientation == "vertical": | ||
| 1110 | + return [h.get_ydata()[0] for h in slider._handles] | ||
| 1111 | + else: | ||
| 1112 | + return [h.get_xdata()[0] for h in slider._handles] | ||
| 1113 | + | ||
| 1108 | 1114 | slider.set_val((0.2, 0.6)) | |
| 1109 | 1115 | assert_allclose(slider.val, (0.2, 0.6)) | |
| 1116 | + assert_allclose(handle_positions(slider), (0.2, 0.6)) | ||
| 1117 | + | ||
| 1110 | 1118 | box = slider.poly.get_extents().transformed(ax.transAxes.inverted()) | |
| 1111 | 1119 | assert_allclose(box.get_points().flatten()[idx], [0.2, .25, 0.6, .75]) | |
| 1112 | 1120 | ||
| 1113 | 1121 | slider.set_val((0.2, 0.1)) | |
| 1114 | 1122 | assert_allclose(slider.val, (0.1, 0.2)) | |
| 1123 | + assert_allclose(handle_positions(slider), (0.1, 0.2)) | ||
| 1115 | 1124 | ||
| 1116 | 1125 | slider.set_val((-1, 10)) | |
| 1117 | 1126 | assert_allclose(slider.val, (0, 1)) | |
| 1127 | + assert_allclose(handle_positions(slider), (0, 1)) | ||
| 1118 | 1128 | ||
| 1119 | 1129 | slider.reset() | |
| 1120 | - assert_allclose(slider.val, [0.1, 0.34]) | ||
| 1130 | + assert_allclose(slider.val, (0.1, 0.34)) | ||
| 1131 | + assert_allclose(handle_positions(slider), (0.1, 0.34)) | ||
| 1121 | 1132 | ||
| 1122 | 1133 | ||
| 1123 | 1134 | def check_polygon_selector(event_sequence, expected_result, selections_count, | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -813,7 +813,10 @@ def _update_val_from_pos(self, pos): | |||
| 813 | 813 | val = self._max_in_bounds(pos) | |
| 814 | 814 | self.set_max(val) | |
| 815 | 815 | if self._active_handle: | |
| 816 | - self._active_handle.set_xdata([val]) | ||
| 816 | + if self.orientation == "vertical": | ||
| 817 | + self._active_handle.set_ydata([val]) | ||
| 818 | + else: | ||
| 819 | + self._active_handle.set_xdata([val]) | ||
| 817 | 820 | ||
| 818 | 821 | def _update(self, event): | |
| 819 | 822 | """Update the slider position.""" | |
@@ -836,11 +839,16 @@ def _update(self, event): | |||
| 836 | 839 | return | |
| 837 | 840 | ||
| 838 | 841 | # determine which handle was grabbed | |
| 839 | - handle = self._handles[ | ||
| 840 | - np.argmin( | ||
| 842 | + if self.orientation == "vertical": | ||
| 843 | + handle_index = np.argmin( | ||
| 844 | + np.abs([h.get_ydata()[0] - event.ydata for h in self._handles]) | ||
| 845 | + ) | ||
| 846 | + else: | ||
| 847 | + handle_index = np.argmin( | ||
| 841 | 848 | np.abs([h.get_xdata()[0] - event.xdata for h in self._handles]) | |
| 842 | 849 | ) | |
| 843 | - ] | ||
| 850 | + handle = self._handles[handle_index] | ||
| 851 | + | ||
| 844 | 852 | # these checks ensure smooth behavior if the handles swap which one | |
| 845 | 853 | # has a higher value. i.e. if one is dragged over and past the other. | |
| 846 | 854 | if handle is not self._active_handle: | |
@@ -904,14 +912,22 @@ def set_val(self, val): | |||
| 904 | 912 | xy[2] = .75, val[1] | |
| 905 | 913 | xy[3] = .75, val[0] | |
| 906 | 914 | xy[4] = .25, val[0] | |
| 915 | + | ||
| 916 | + self._handles[0].set_ydata([val[0]]) | ||
| 917 | + self._handles[1].set_ydata([val[1]]) | ||
| 907 | 918 | else: | |
| 908 | 919 | xy[0] = val[0], .25 | |
| 909 | 920 | xy[1] = val[0], .75 | |
| 910 | 921 | xy[2] = val[1], .75 | |
| 911 | 922 | xy[3] = val[1], .25 | |
| 912 | 923 | xy[4] = val[0], .25 | |
| 924 | + | ||
| 925 | + self._handles[0].set_xdata([val[0]]) | ||
| 926 | + self._handles[1].set_xdata([val[1]]) | ||
| 927 | + | ||
| 913 | 928 | self.poly.xy = xy | |
| 914 | 929 | self.valtext.set_text(self._format(val)) | |
| 930 | + | ||
| 915 | 931 | if self.drawon: | |
| 916 | 932 | self.ax.figure.canvas.draw_idle() | |
| 917 | 933 | self.val = val | |
| Back | FazBrowse Home | New Git URL |
0 commit comments