Skip to content

Commit 806f498

Browse files
committed
Extract wx btn icons to function
1 parent ba98ac3 commit 806f498

File tree

1 file changed

+23
-13
lines changed

1 file changed

+23
-13
lines changed

src/ndv/views/_wx/_array_view.py

+23-13
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import warnings
44
from pathlib import Path
5+
from sys import version_info
56
from typing import TYPE_CHECKING, Any, cast
67

78
import wx
@@ -52,6 +53,24 @@ def __init__(self, parent: wx.Window):
5253
self.SetSizer(sizer)
5354

5455

56+
def _add_icon(btn: wx.AnyButton, icon: str) -> None:
57+
# Avoids https://github.com/urllib3/urllib3/issues/3020
58+
if version_info.minor < 10:
59+
return
60+
61+
icon_path = svg_path(icon)
62+
wx_icon = wx.svg.SVGimage.CreateFromFile(str(icon_path))
63+
side_length = btn.Size.height
64+
# NB 5 is a magic number for the margins
65+
bmp_side_len = side_length - 5
66+
bmp_size = wx.Size(bmp_side_len, bmp_side_len)
67+
btn.SetBitmap(wx_icon.ConvertToScaledBitmap(bmp_size))
68+
69+
btn_side_len = side_length
70+
btn_size = wx.Size(btn_side_len, btn_side_len)
71+
btn.SetMaxSize(btn_size)
72+
73+
5574
# mostly copied from _qt.qt_view._QLUTWidget
5675
class _WxLUTWidget(wx.Panel):
5776
def __init__(self, parent: wx.Window) -> None:
@@ -73,17 +92,7 @@ def __init__(self, parent: wx.Window) -> None:
7392
self.auto_clim = wx.ToggleButton(self, label="Auto")
7493

7594
self.histogram = wx.ToggleButton(self)
76-
# FIXME: Polish this code, make reusable
77-
icon_path = svg_path("foundation:graph-bar")
78-
icon = wx.svg.SVGimage.CreateFromFile(str(icon_path))
79-
# NB 5 is a magic number for the margins
80-
bmp_side_len = self.auto_clim.Size.height - 5
81-
bmp_size = wx.Size(bmp_side_len, bmp_side_len)
82-
self.histogram.SetBitmap(icon.ConvertToScaledBitmap(bmp_size))
83-
84-
btn_side_len = self.auto_clim.Size.height
85-
btn_size = wx.Size(btn_side_len, btn_side_len)
86-
self.histogram.SetMaxSize(btn_size)
95+
_add_icon(self.histogram, "foundation:graph-bar")
8796

8897
# Layout
8998
sizer = wx.BoxSizer(wx.HORIZONTAL)
@@ -272,7 +281,8 @@ def __init__(self, canvas_widget: wx.Window, parent: wx.Window = None):
272281
)
273282

274283
# Reset zoom button
275-
self.reset_zoom_btn = wx.Button(self, label="Reset Zoom")
284+
self.reset_zoom_btn = wx.Button(self)
285+
_add_icon(self.reset_zoom_btn, "fluent:full-screen-maximize-24-filled")
276286

277287
# 3d view button
278288
self.ndims_btn = wx.ToggleButton(self, label="3D")
@@ -283,8 +293,8 @@ def __init__(self, canvas_widget: wx.Window, parent: wx.Window = None):
283293
btns = wx.BoxSizer(wx.HORIZONTAL)
284294
btns.AddStretchSpacer()
285295
btns.Add(self.channel_mode_combo, 0, wx.ALL, 5)
286-
btns.Add(self.reset_zoom_btn, 0, wx.ALL, 5)
287296
btns.Add(self.ndims_btn, 0, wx.ALL, 5)
297+
btns.Add(self.reset_zoom_btn, 0, wx.ALL, 5)
288298

289299
self._top_info = top_info = wx.BoxSizer(wx.HORIZONTAL)
290300
top_info.Add(self._data_info_label, 0, wx.EXPAND | wx.BOTTOM, 0)

0 commit comments

Comments
 (0)