mirror of https://github.com/chriskiehl/Gooey.git
9 changed files with 541 additions and 406 deletions
Unified View
Diff Options
-
283gooey/gui/widgets/choosers.py
-
162gooey/gui/widgets/components.py
-
124gooey/gui/widgets/widget_pack.py
-
94gooey/gui/windows/advanced_config.py
-
136gooey/gui/windows/base_window.py
-
37gooey/gui/windows/footer.py
-
87gooey/gui/windows/header.py
-
9gooey/gui/windows/layouts.py
-
15gooey/gui/windows/runtime_display_panel.py
@ -1,143 +1,140 @@ |
|||||
from gooey.gui.lang import i18n |
|
||||
|
|
||||
__author__ = 'Chris' |
|
||||
|
|
||||
import wx |
|
||||
|
|
||||
from gooey.gui.util import wx_util |
|
||||
from gooey.gui.widgets.calender_dialog import CalendarDlg |
|
||||
|
|
||||
|
|
||||
class AbstractChooser(object): |
|
||||
def __init__(self, data): |
|
||||
self.data = data |
|
||||
|
|
||||
# parent |
|
||||
self.panel = None |
|
||||
|
|
||||
self.button_text = i18n._('browse') |
|
||||
|
|
||||
# Widgets |
|
||||
self.title = None |
|
||||
self.help_msg = None |
|
||||
self.text_box = None |
|
||||
self.button = None |
|
||||
self.panel = None |
|
||||
|
|
||||
def build(self, parent): |
|
||||
return self.do_layout(parent) |
|
||||
|
|
||||
def do_layout(self, parent): |
|
||||
self.panel = wx.Panel(parent) |
|
||||
self.panel.SetDoubleBuffered(True) |
|
||||
self.title = self.CreateNameLabelWidget(self.panel) |
|
||||
self.help_msg = self.CreateHelpMsgWidget(self.panel) |
|
||||
self.text_box = wx.TextCtrl(self.panel) |
|
||||
self.button = wx.Button(self.panel, label=self.button_text, size=(73, 23)) |
|
||||
|
|
||||
vertical_container = wx.BoxSizer(wx.VERTICAL) |
|
||||
widget_sizer = wx.BoxSizer(wx.HORIZONTAL) |
|
||||
|
|
||||
vertical_container.Add(self.title) |
|
||||
vertical_container.AddSpacer(2) |
|
||||
|
|
||||
if self.help_msg.GetLabelText(): |
|
||||
vertical_container.Add(self.help_msg, 1, wx.EXPAND) |
|
||||
vertical_container.AddSpacer(2) |
|
||||
else: |
|
||||
vertical_container.AddStretchSpacer(1) |
|
||||
|
|
||||
widget_sizer.Add(self.text_box, 1, wx.EXPAND) |
|
||||
widget_sizer.AddSpacer(10) |
|
||||
widget_sizer.Add(self.button, 0) |
|
||||
|
|
||||
vertical_container.Add(widget_sizer, 0, wx.EXPAND) |
|
||||
self.panel.SetSizer(vertical_container) |
|
||||
|
|
||||
self.panel.Bind(wx.EVT_SIZE, self.OnResize) |
|
||||
self.panel.Bind(wx.EVT_BUTTON, self.on_button, self.button) |
|
||||
return self.panel |
|
||||
|
|
||||
def CreateHelpMsgWidget(self, parent): |
|
||||
base_text = wx.StaticText(parent, label=self.data['help_msg']) |
|
||||
# if self.data['nargs']: |
|
||||
# base_text.SetLabelText(base_text.GetLabelText() + self.CreateNargsMsg(action)) |
|
||||
wx_util.dark_grey(base_text) |
|
||||
return base_text |
|
||||
|
|
||||
def CreateNameLabelWidget(self, parent): |
|
||||
label = self.data['title'].title() |
|
||||
text = wx.StaticText(parent, label=label) |
|
||||
wx_util.make_bold(text) |
|
||||
return text |
|
||||
|
|
||||
def OnResize(self, evt): |
|
||||
if self.help_msg is None: |
|
||||
return |
|
||||
|
|
||||
container_width, _ = self.panel.Size |
|
||||
text_width, _ = self.help_msg.Size |
|
||||
|
|
||||
if text_width != container_width: |
|
||||
self.help_msg.SetLabel(self.help_msg.GetLabelText().replace('\n', ' ')) |
|
||||
self.help_msg.Wrap(container_width) |
|
||||
evt.Skip() |
|
||||
|
|
||||
def on_button(self, evt): |
|
||||
raise NotImplementedError |
|
||||
|
|
||||
|
|
||||
|
|
||||
class FileChooser(AbstractChooser): |
|
||||
def __init__(self, data): |
|
||||
AbstractChooser.__init__(self, data) |
|
||||
|
|
||||
def on_button(self, evt): |
|
||||
dlg = wx.FileDialog(self.panel, style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST) |
|
||||
result = (dlg.GetPath() |
|
||||
if dlg.ShowModal() == wx.ID_OK |
|
||||
else None) |
|
||||
if result: |
|
||||
self.text_box.SetLabelText(result) |
|
||||
|
|
||||
|
|
||||
class DirectoryChooser(AbstractChooser): |
|
||||
def __init__(self, data): |
|
||||
AbstractChooser.__init__(self, data) |
|
||||
|
|
||||
def on_button(self, evt): |
|
||||
dlg = wx.DirDialog(self.panel, 'Select directory', style=wx.DD_DEFAULT_STYLE) |
|
||||
result = (dlg.GetPath() |
|
||||
if dlg.ShowModal() == wx.ID_OK |
|
||||
else None) |
|
||||
if result: |
|
||||
self.text_box.SetLabelText(result) |
|
||||
|
|
||||
|
|
||||
class CalendarChooser(AbstractChooser): |
|
||||
def __init__(self, data): |
|
||||
AbstractChooser.__init__(self, data) |
|
||||
self.button_text = 'Choose Date' |
|
||||
|
|
||||
def on_button(self, evt): |
|
||||
dlg = CalendarDlg(self.panel) |
|
||||
dlg.ShowModal() |
|
||||
if dlg.GetPath(): |
|
||||
self.text_box.SetLabelText(dlg.GetPath()) |
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
# import wx |
||||
|
# |
||||
|
# from gooey.gui.lang import i18n |
||||
|
# from gooey.gui.util import wx_util |
||||
|
# from gooey.gui.widgets.calender_dialog import CalendarDlg |
||||
|
# |
||||
|
# |
||||
|
# class AbstractChooser(object): |
||||
|
# def __init__(self, data): |
||||
|
# self.data = data |
||||
|
# |
||||
|
# # parent |
||||
|
# self.panel = None |
||||
|
# |
||||
|
# self.button_text = i18n._('browse') |
||||
|
# |
||||
|
# # Widgets |
||||
|
# self.title = None |
||||
|
# self.help_msg = None |
||||
|
# self.text_box = None |
||||
|
# self.button = None |
||||
|
# self.panel = None |
||||
|
# |
||||
|
# def build(self, parent): |
||||
|
# return self.do_layout(parent) |
||||
|
# |
||||
|
# def do_layout(self, parent): |
||||
|
# self.panel = wx.Panel(parent) |
||||
|
# self.panel.SetDoubleBuffered(True) |
||||
|
# self.title = self.CreateNameLabelWidget(self.panel) |
||||
|
# self.help_msg = self.CreateHelpMsgWidget(self.panel) |
||||
|
# self.text_box = wx.TextCtrl(self.panel) |
||||
|
# self.button = wx.Button(self.panel, label=self.button_text, size=(73, 23)) |
||||
|
# |
||||
|
# vertical_container = wx.BoxSizer(wx.VERTICAL) |
||||
|
# widget_sizer = wx.BoxSizer(wx.HORIZONTAL) |
||||
|
# |
||||
|
# vertical_container.Add(self.title) |
||||
|
# vertical_container.AddSpacer(2) |
||||
|
# |
||||
|
# if self.help_msg.GetLabelText(): |
||||
|
# vertical_container.Add(self.help_msg, 1, wx.EXPAND) |
||||
|
# vertical_container.AddSpacer(2) |
||||
|
# else: |
||||
|
# vertical_container.AddStretchSpacer(1) |
||||
|
# |
||||
|
# widget_sizer.Add(self.text_box, 1, wx.EXPAND) |
||||
|
# widget_sizer.AddSpacer(10) |
||||
|
# widget_sizer.Add(self.button, 0) |
||||
|
# |
||||
|
# vertical_container.Add(widget_sizer, 0, wx.EXPAND) |
||||
|
# self.panel.SetSizer(vertical_container) |
||||
|
# |
||||
|
# self.panel.Bind(wx.EVT_SIZE, self.OnResize) |
||||
|
# self.panel.Bind(wx.EVT_BUTTON, self.on_button, self.button) |
||||
|
# return self.panel |
||||
|
# |
||||
|
# def CreateHelpMsgWidget(self, parent): |
||||
|
# base_text = wx.StaticText(parent, label=self.data['help_msg']) |
||||
|
# # if self.data['nargs']: |
||||
|
# # base_text.SetLabelText(base_text.GetLabelText() + self.CreateNargsMsg(action)) |
||||
|
# wx_util.dark_grey(base_text) |
||||
|
# return base_text |
||||
|
# |
||||
|
# def CreateNameLabelWidget(self, parent): |
||||
|
# label = self.data['title'].title() |
||||
|
# text = wx.StaticText(parent, label=label) |
||||
|
# wx_util.make_bold(text) |
||||
|
# return text |
||||
|
# |
||||
|
# def OnResize(self, evt): |
||||
|
# if self.help_msg is None: |
||||
|
# return |
||||
|
# |
||||
|
# container_width, _ = self.panel.Size |
||||
|
# text_width, _ = self.help_msg.Size |
||||
|
# |
||||
|
# if text_width != container_width: |
||||
|
# self.help_msg.SetLabel(self.help_msg.GetLabelText().replace('\n', ' ')) |
||||
|
# self.help_msg.Wrap(container_width) |
||||
|
# evt.Skip() |
||||
|
# |
||||
|
# def on_button(self, evt): |
||||
|
# raise NotImplementedError |
||||
|
# |
||||
|
# |
||||
|
# |
||||
|
# class FileChooser(AbstractChooser): |
||||
|
# def __init__(self, data): |
||||
|
# AbstractChooser.__init__(self, data) |
||||
|
# |
||||
|
# def on_button(self, evt): |
||||
|
# dlg = wx.FileDialog(self.panel, style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST) |
||||
|
# result = (dlg.GetPath() |
||||
|
# if dlg.ShowModal() == wx.ID_OK |
||||
|
# else None) |
||||
|
# if result: |
||||
|
# self.text_box.SetLabelText(result) |
||||
|
# |
||||
|
# |
||||
|
# class DirectoryChooser(AbstractChooser): |
||||
|
# def __init__(self, data): |
||||
|
# AbstractChooser.__init__(self, data) |
||||
|
# |
||||
|
# def on_button(self, evt): |
||||
|
# dlg = wx.DirDialog(self.panel, 'Select directory', style=wx.DD_DEFAULT_STYLE) |
||||
|
# result = (dlg.GetPath() |
||||
|
# if dlg.ShowModal() == wx.ID_OK |
||||
|
# else None) |
||||
|
# if result: |
||||
|
# self.text_box.SetLabelText(result) |
||||
|
# |
||||
|
# |
||||
|
# class CalendarChooser(AbstractChooser): |
||||
|
# def __init__(self, data): |
||||
|
# AbstractChooser.__init__(self, data) |
||||
|
# self.button_text = 'Choose Date' |
||||
|
# |
||||
|
# def on_button(self, evt): |
||||
|
# dlg = CalendarDlg(self.panel) |
||||
|
# dlg.ShowModal() |
||||
|
# if dlg.GetPath(): |
||||
|
# self.text_box.SetLabelText(dlg.GetPath()) |
||||
|
# |
||||
|
# |
||||
|
# |
||||
|
# |
||||
|
# |
||||
|
# |
||||
|
# |
||||
|
# |
||||
|
# |
||||
|
# |
||||
|
# |
||||
|
# |
||||
|
# |
||||
|
# |
||||
|
# |
||||
|
# |
||||
|
# |
Write
Preview
Loading…
Cancel
Save