1
2
3
4
5
6 import wx
7 import wx.adv
8
9
10 import gettext
11
12
13
14 from Gnumed.wxpython.gmDateTimeInput import cDateInputPhraseWheel
15
16
17
20
21 kwds["style"] = kwds.get("style", 0) | wx.DEFAULT_DIALOG_STYLE | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX | wx.RESIZE_BORDER
22 wx.Dialog.__init__(self, *args, **kwds)
23 self.SetSize(wx.DLG_UNIT(self, wx.Size(400, 200)))
24 self._PRW_lmp = cDateInputPhraseWheel(self, wx.ID_ANY, "")
25 self._CHBOX_first_pregnancy = wx.CheckBox(self, wx.ID_ANY, _("&First pregnancy"))
26 self._PRW_edc = cDateInputPhraseWheel(self, wx.ID_ANY, "")
27 self._TCTRL_details = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_MULTILINE | wx.TE_WORDWRAP)
28 self._CALCTRL = wx.adv.CalendarCtrl(self, wx.ID_ANY, style=wx.adv.CAL_SHOW_SURROUNDING_WEEKS)
29 self._TCTRL_algo = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_MULTILINE | wx.TE_WORDWRAP)
30 self._BTN_save = wx.Button(self, wx.ID_SAVE, "", style=wx.BU_EXACTFIT)
31 self._BTN_cancel = wx.Button(self, wx.ID_CANCEL, "", style=wx.BU_EXACTFIT)
32
33 self.__set_properties()
34 self.__do_layout()
35
36 self.Bind(wx.EVT_CHECKBOX, self._on_first_pregnancy_toggled, self._CHBOX_first_pregnancy)
37 self.Bind(wx.adv.EVT_CALENDAR, self._on_lmp_picked_in_calendar, self._CALCTRL)
38 self.Bind(wx.EVT_BUTTON, self._on_save_button_pressed, self._BTN_save)
39
40
42
43 self.SetTitle(_("Due Date Calculator"))
44 self.SetSize(wx.DLG_UNIT(self, wx.Size(400, 200)))
45 self._PRW_lmp.SetToolTip(_("Required: Enter the 1st day of the Last Menstrual Period."))
46 self._CHBOX_first_pregnancy.SetToolTip(_("Check here if this is the first pregnancy."))
47 self._CHBOX_first_pregnancy.SetValue(1)
48 self._PRW_edc.SetToolTip(_("Expected Date of Confinement.\n\nYou can also just enter a date here if one is known from external sources."))
49 self._TCTRL_details.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_BACKGROUND))
50 self._TCTRL_algo.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_BACKGROUND))
51 self._BTN_save.SetToolTip(_("Save the Expected Due Date."))
52 self._BTN_cancel.SetToolTip(_("Close without saving."))
53
54
56
57 __szr_main = wx.BoxSizer(wx.VERTICAL)
58 __szr_buttons = wx.BoxSizer(wx.HORIZONTAL)
59 __szr_middle = wx.BoxSizer(wx.HORIZONTAL)
60 __szr_right = wx.BoxSizer(wx.VERTICAL)
61 __szr_left = wx.BoxSizer(wx.VERTICAL)
62 __fgszr_input_fields = wx.FlexGridSizer(3, 2, 1, 3)
63 __lbl_lmp = wx.StaticText(self, wx.ID_ANY, _("LMP (1st)"))
64 __lbl_lmp.SetForegroundColour(wx.Colour(255, 0, 0))
65 __fgszr_input_fields.Add(__lbl_lmp, 0, wx.ALIGN_CENTER_VERTICAL, 0)
66 __fgszr_input_fields.Add(self._PRW_lmp, 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
67 __fgszr_input_fields.Add((20, 20), 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
68 __fgszr_input_fields.Add(self._CHBOX_first_pregnancy, 1, wx.ALIGN_CENTER_VERTICAL, 0)
69 __lbl_due_date = wx.StaticText(self, wx.ID_ANY, _("EDC"))
70 __fgszr_input_fields.Add(__lbl_due_date, 0, wx.ALIGN_CENTER_VERTICAL, 0)
71 __fgszr_input_fields.Add(self._PRW_edc, 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
72 __fgszr_input_fields.AddGrowableCol(1)
73 __szr_left.Add(__fgszr_input_fields, 0, wx.EXPAND, 1)
74 __szr_left.Add(self._TCTRL_details, 1, wx.EXPAND | wx.TOP, 4)
75 __szr_middle.Add(__szr_left, 1, wx.EXPAND, 1)
76 __lbl_select_lmp = wx.StaticText(self, wx.ID_ANY, _("or pick 1st day of LMP:"))
77 __szr_right.Add(__lbl_select_lmp, 0, wx.ALIGN_CENTER | wx.BOTTOM, 5)
78 __szr_right.Add(self._CALCTRL, 0, 0, 10)
79 __szr_right.Add(self._TCTRL_algo, 1, wx.EXPAND | wx.TOP, 5)
80 __szr_middle.Add(__szr_right, 0, wx.EXPAND | wx.LEFT, 10)
81 __szr_main.Add(__szr_middle, 1, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 3)
82 __szr_buttons.Add((20, 20), 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
83 __szr_buttons.Add(self._BTN_save, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
84 __szr_buttons.Add(self._BTN_cancel, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 5)
85 __szr_buttons.Add((20, 20), 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
86 __szr_main.Add(__szr_buttons, 0, wx.ALL | wx.EXPAND, 3)
87 self.SetSizer(__szr_main)
88 self.Layout()
89
90
92 print("Event handler '_on_first_pregnancy_toggled' not implemented!")
93 event.Skip()
94
96 print("Event handler '_on_lmp_picked_in_calendar' not implemented!")
97 event.Skip()
98
100 print("Event handler '_on_save_button_pressed' not implemented!")
101 event.Skip()
102
103
104