Skip to content

Commit 8d05b68

Browse files
committed
Add UI config for windows and linux platforms
1 parent 59499ec commit 8d05b68

2 files changed

Lines changed: 38 additions & 9 deletions

File tree

dearbagplayer/config.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import sys
2+
3+
4+
class Config:
5+
6+
# UI settings
7+
delta_width_vp = 0
8+
delta_height_vp = 0
9+
delta_height_child = 15
10+
vertical_separator_width = 15
11+
enable_vp_resize = True
12+
13+
def __init__(self, verbose=False):
14+
if sys.platform.startswith('win'):
15+
self.delta_width_vp = 17
16+
self.delta_height_vp = 40
17+
self.enable_vp_resize = False
18+
elif sys.platform.startswith('linux'):
19+
self.delta_width_vp = 0
20+
self.delta_height_vp = 0
21+
self.enable_vp_resize = True
22+
else:
23+
pass
24+
if verbose:
25+
print(f'Use UI configurations for {sys.platform}. Viewport resize: {self.enable_vp_resize}')

dearbagplayer/dearbagplayer.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from .rosbag_parser import RosbagParser
1111
from .data_pool_window import DataPoolWindow
1212
from .plot_window import PlotWindow
13+
from .config import Config
1314
from . import __version__
1415
except ImportError as e:
1516
raise ImportError(f"{str(e)}")
@@ -60,10 +61,11 @@ def __init__(self, topics=None):
6061
self.data_pool_min_width = -1
6162

6263
# UI design
63-
self.delta_width_vp = 0 # viewport width - non-primary window width
64-
self.delta_height_vp = 0 # viewport height - non-primary window height
65-
self.delta_height_child = 15 # non-primary window height - child height
66-
self.vertical_separator_width = 15
64+
self.config = Config(verbose=True)
65+
self.delta_width_vp = self.config.delta_width_vp # viewport width - non-primary window width
66+
self.delta_height_vp = self.config.delta_height_vp # viewport height - non-primary window height
67+
self.delta_height_child = self.config.delta_height_child # non-primary window height - child height
68+
self.vertical_separator_width = self.config.vertical_separator_width
6769

6870
def initTimeline(self):
6971
self.max_time = 0.0
@@ -228,7 +230,7 @@ def run(self):
228230
# dpg.set_viewport_large_icon("path/to/icon.ico")
229231

230232
# Viewport
231-
dpg.create_viewport(title=f"DearBagPlayer - {__version__}", resizable=True,
233+
dpg.create_viewport(title=f"DearBagPlayer - {__version__}", resizable=self.config.enable_vp_resize,
232234
width=800, height=600, x_pos=0, y_pos=0,
233235
min_width=800, min_height=600)
234236

@@ -274,10 +276,12 @@ def run(self):
274276
self.plot_window.submit(main_window_group)
275277

276278
# Bind resize handler
277-
# with dpg.item_handler_registry(tag="resize_handler"):
278-
# dpg.add_item_resize_handler(callback=self.resizeMainWindowCb)
279-
# dpg.bind_item_handler_registry("main_window", "resize_handler")
280-
dpg.set_viewport_resize_callback(callback=self.resizeViewportCb)
279+
if self.config.enable_vp_resize:
280+
dpg.set_viewport_resize_callback(callback=self.resizeViewportCb)
281+
else:
282+
with dpg.item_handler_registry(tag="resize_handler"):
283+
dpg.add_item_resize_handler(callback=self.resizeMainWindowCb)
284+
dpg.bind_item_handler_registry("main_window", "resize_handler")
281285

282286
dpg.setup_dearpygui()
283287
dpg.show_viewport()

0 commit comments

Comments
 (0)