From 592adb36f1f97d30f7edd4e25c0961ba0bca404b Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Wed, 31 Jul 2019 20:22:18 +0300 Subject: [PATCH] Start implementing fit browser lite --- gui/builtinContextMenus/__init__.py | 3 +- gui/builtinContextMenus/fitAddBrowse.py | 64 +++++++++++++++++++++++++ gui/builtinViews/fitListLite.py | 12 +++++ 3 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 gui/builtinContextMenus/fitAddBrowse.py create mode 100644 gui/builtinViews/fitListLite.py diff --git a/gui/builtinContextMenus/__init__.py b/gui/builtinContextMenus/__init__.py index a84562d93..39b19107c 100644 --- a/gui/builtinContextMenus/__init__.py +++ b/gui/builtinContextMenus/__init__.py @@ -1,8 +1,9 @@ # Various command and projected-related items which we want to have first, # before generic commands from gui.builtinContextMenus import fitOpenNewTab -from gui.builtinContextMenus import envEffectAdd +from gui.builtinContextMenus import fitAddBrowse from gui.builtinContextMenus import fitAddCurrentlyOpen +from gui.builtinContextMenus import envEffectAdd from gui.builtinContextMenus import commandFitAdd from gui.builtinContextMenus.targetProfile import adder # Often-used item manipulations diff --git a/gui/builtinContextMenus/fitAddBrowse.py b/gui/builtinContextMenus/fitAddBrowse.py new file mode 100644 index 000000000..d6221c364 --- /dev/null +++ b/gui/builtinContextMenus/fitAddBrowse.py @@ -0,0 +1,64 @@ +# noinspection PyPackageRequirements +import wx + +import gui.mainFrame +from gui.contextMenu import ContextMenuUnconditional + + +class AddBrowsedFits(ContextMenuUnconditional): + + def __init__(self): + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + + def display(self, callingWindow, srcContext): + if srcContext not in ('projected', 'commandView', 'graphFitList', 'graphTgtList'): + return False + return True + + def getText(self, callingWindow, itmContext): + return 'Add Fit...' + + def activate(self, callingWindow, fullContext, i): + dlg = FitBrowserLiteDialog(self.mainFrame) + if dlg.ShowModal() == wx.ID_OK: + pass + + +AddBrowsedFits.register() + + +class FitBrowserLiteDialog(wx.Dialog): + + def __init__(self, parent): + from gui.builtinViews.fitListLite import FitListView + wx.Dialog.__init__(self, parent, title='Add Fits', style=wx.DEFAULT_DIALOG_STYLE) + self.SetMinSize((500, 200)) + + mainSizer = wx.BoxSizer(wx.VERTICAL) + + searchSizer = wx.BoxSizer(wx.HORIZONTAL) + searchBox = wx.TextCtrl(self, wx.ID_ANY, style=wx.TE_PROCESS_ENTER) + searchSizer.Add(searchBox, 1, wx.EXPAND | wx.ALL, 5) + mainSizer.Add(searchSizer, 0, wx.EXPAND | wx.ALL, 0) + + listSizer = wx.BoxSizer(wx.HORIZONTAL) + fromList = FitListView(self) + listSizer.Add(fromList, 1, wx.EXPAND | wx.ALL, 5) + + listButtonSizer = wx.BoxSizer(wx.VERTICAL) + self.addButton = wx.Button(self, wx.ID_ANY, '>>', wx.DefaultPosition, wx.DefaultSize, 0) + self.removeButton = wx.Button(self, wx.ID_ANY, '<<', wx.DefaultPosition, wx.DefaultSize, 0) + + listSizer.Add(listButtonSizer, 0, wx.EXPAND | wx.ALL, 5) + + toList = FitListView(self) + listSizer.Add(toList, 1, wx.EXPAND | wx.ALL, 5) + mainSizer.Add(listSizer, 1, wx.EXPAND | wx.ALL, 0) + + buttonSizer = self.CreateButtonSizer(wx.OK | wx.CANCEL) + if buttonSizer: + mainSizer.Add(buttonSizer, 0, wx.EXPAND | wx.ALL, 5) + + self.SetSizer(mainSizer) + self.CenterOnParent() + self.Fit() diff --git a/gui/builtinViews/fitListLite.py b/gui/builtinViews/fitListLite.py new file mode 100644 index 000000000..03ded05e9 --- /dev/null +++ b/gui/builtinViews/fitListLite.py @@ -0,0 +1,12 @@ +# noinspection PyPackageRequirements +import wx + +import gui.display as d + + +class FitListView(d.Display): + + DEFAULT_COLS = ['Base Name'] + + def __init__(self, parent): + super().__init__(parent, style=wx.BORDER_NONE)