44 ("function", _("Function")), |
44 ("function", _("Function")), |
45 ("functionBlock", _("Function Block")), |
45 ("functionBlock", _("Function Block")), |
46 ("program", _("Program")), |
46 ("program", _("Program")), |
47 ("configuration", _("Configuration"))] |
47 ("configuration", _("Configuration"))] |
48 |
48 |
49 [ID_SEARCHINPROJECTDIALOG, ID_SEARCHINPROJECTDIALOGPATTERNLABEL, |
|
50 ID_SEARCHINPROJECTDIALOGPATTERN, ID_SEARCHINPROJECTDIALOGCASESENSITIVE, |
|
51 ID_SEARCHINPROJECTDIALOGREGULAREXPRESSION, ID_SEARCHINPROJECTDIALOGSCOPESTATICBOX, |
|
52 ID_SEARCHINPROJECTDIALOGWHOLEPROJECT, ID_SEARCHINPROJECTDIALOGONLYELEMENTS, |
|
53 ID_SEARCHINPROJECTDIALOGELEMENTSLIST, |
|
54 ] = [wx.NewId() for _init_ctrls in range(9)] |
|
55 |
|
56 class SearchInProjectDialog(wx.Dialog): |
49 class SearchInProjectDialog(wx.Dialog): |
57 |
50 |
58 if wx.VERSION < (2, 6, 0): |
51 def __init__(self, parent): |
59 def Bind(self, event, function, id = None): |
52 wx.Dialog.__init__(self, parent, title=_('Search in Project'), |
60 if id is not None: |
53 size=wx.Size(600, 300), style=wx.DEFAULT_DIALOG_STYLE| |
61 event(self, id, function) |
54 wx.RESIZE_BORDER) |
62 else: |
|
63 event(self, function) |
|
64 |
|
65 def _init_coll_MainSizer_Items(self, parent): |
|
66 parent.AddSizer(self.PatternSizer, 0, border=20, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
|
67 parent.AddSizer(self.ScopeSizer, 0, border=20, flag=wx.GROW|wx.LEFT|wx.RIGHT) |
|
68 parent.AddSizer(self.ButtonSizer, 0, border=20, flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
|
69 |
|
70 def _init_coll_MainSizer_Growables(self, parent): |
|
71 parent.AddGrowableCol(0) |
|
72 parent.AddGrowableRow(1) |
|
73 |
|
74 def _init_coll_PatternSizer_Items(self, parent): |
|
75 parent.AddWindow(self.PatternLabel, 0, border=0, flag=wx.ALIGN_BOTTOM) |
|
76 parent.AddWindow(self.CaseSensitive, 0, border=0, flag=wx.GROW) |
|
77 parent.AddWindow(self.Pattern, 0, border=0, flag=wx.GROW) |
|
78 parent.AddWindow(self.RegularExpression, 0, border=0, flag=wx.GROW) |
|
79 |
|
80 def _init_coll_PatternSizer_Growables(self, parent): |
|
81 parent.AddGrowableCol(0) |
|
82 |
|
83 def _init_coll_ScopeSizer_Items(self, parent): |
|
84 parent.AddSizer(self.ScopeSelectionSizer, 1, border=5, flag=wx.GROW|wx.TOP|wx.LEFT|wx.BOTTOM) |
|
85 parent.AddWindow(self.ElementsList, 1, border=5, flag=wx.GROW|wx.TOP|wx.RIGHT|wx.BOTTOM) |
|
86 |
|
87 def _init_coll_ScopeSelectionSizer_Items(self, parent): |
|
88 parent.AddWindow(self.WholeProject, 0, border=5, flag=wx.GROW|wx.BOTTOM) |
|
89 parent.AddWindow(self.OnlyElements, 0, border=0, flag=wx.GROW) |
|
90 |
|
91 def _init_sizers(self): |
|
92 self.MainSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=3, vgap=10) |
|
93 self.PatternSizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=5) |
|
94 self.ScopeSizer = wx.StaticBoxSizer(self.ScopeStaticBox, wx.HORIZONTAL) |
|
95 self.ScopeSelectionSizer = wx.BoxSizer(wx.VERTICAL) |
|
96 |
55 |
97 self._init_coll_MainSizer_Items(self.MainSizer) |
56 main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=3, vgap=10) |
98 self._init_coll_MainSizer_Growables(self.MainSizer) |
57 main_sizer.AddGrowableCol(0) |
99 self._init_coll_PatternSizer_Items(self.PatternSizer) |
58 main_sizer.AddGrowableRow(1) |
100 self._init_coll_PatternSizer_Growables(self.PatternSizer) |
|
101 self._init_coll_ScopeSizer_Items(self.ScopeSizer) |
|
102 self._init_coll_ScopeSelectionSizer_Items(self.ScopeSelectionSizer) |
|
103 |
59 |
104 self.SetSizer(self.MainSizer) |
60 pattern_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=5) |
105 |
61 pattern_sizer.AddGrowableCol(0) |
106 def _init_ctrls(self, prnt): |
62 main_sizer.AddSizer(pattern_sizer, border=20, |
107 wx.Dialog.__init__(self, id=ID_SEARCHINPROJECTDIALOG, |
63 flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
108 name='SearchInProjectDialog', parent=prnt, |
|
109 size=wx.Size(600, 300), style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER, |
|
110 title=_('Search in Project')) |
|
111 |
64 |
112 self.PatternLabel = wx.StaticText(id=ID_SEARCHINPROJECTDIALOGPATTERNLABEL, |
65 pattern_label = wx.StaticText(self, label=_('Pattern to search:')) |
113 label=_('Pattern to search:'), name='PatternLabel', parent=self, |
66 pattern_sizer.AddWindow(pattern_label, flag=wx.ALIGN_BOTTOM) |
114 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
|
115 |
|
116 self.Pattern = wx.TextCtrl(id=ID_SEARCHINPROJECTDIALOGPATTERN, |
|
117 name='Pattern', parent=self, pos=wx.Point(0, 0), |
|
118 size=wx.Size(0, 24), style=0) |
|
119 |
|
120 self.CaseSensitive = wx.CheckBox(id=ID_SEARCHINPROJECTDIALOGCASESENSITIVE, |
|
121 label=_('Case sensitive'), name='CaseSensitive', parent=self, |
|
122 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
|
123 |
67 |
124 self.RegularExpression = wx.CheckBox(id=ID_SEARCHINPROJECTDIALOGREGULAREXPRESSION, |
68 self.CaseSensitive = wx.CheckBox(self, label=_('Case sensitive')) |
125 label=_('Regular expression'), name='RegularExpression', parent=self, |
69 pattern_sizer.AddWindow(self.CaseSensitive, flag=wx.GROW) |
126 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
|
127 |
70 |
128 self.ScopeStaticBox = wx.StaticBox(id=ID_SEARCHINPROJECTDIALOGSCOPESTATICBOX, |
71 self.Pattern = wx.TextCtrl(self, size=wx.Size(0, 24)) |
129 label=_('Scope'), name='ScopeStaticBox', parent=self, |
72 pattern_sizer.AddWindow(self.Pattern, flag=wx.GROW) |
130 pos=wx.Point(0, 0), size=wx.Size(0, 0), style=0) |
|
131 |
73 |
132 self.WholeProject = wx.RadioButton(id=ID_SEARCHINPROJECTDIALOGWHOLEPROJECT, |
74 self.RegularExpression = wx.CheckBox(self, label=_('Regular expression')) |
133 label=_('Whole Project'), name='WholeProject', parent=self, |
75 pattern_sizer.AddWindow(self.RegularExpression, flag=wx.GROW) |
134 pos=wx.Point(0, 0), size=wx.Size(0, 24), style=wx.RB_GROUP) |
76 |
135 self.Bind(wx.EVT_RADIOBUTTON, self.OnScopeChanged, id=ID_SEARCHINPROJECTDIALOGWHOLEPROJECT) |
77 scope_staticbox = wx.StaticBox(self, label=_('Scope')) |
|
78 scope_sizer = wx.StaticBoxSizer(scope_staticbox, wx.HORIZONTAL) |
|
79 main_sizer.AddSizer(scope_sizer, border=20, |
|
80 flag=wx.GROW|wx.LEFT|wx.RIGHT) |
|
81 |
|
82 scope_selection_sizer = wx.BoxSizer(wx.VERTICAL) |
|
83 scope_sizer.AddSizer(scope_selection_sizer, 1, border=5, |
|
84 flag=wx.GROW|wx.TOP|wx.LEFT|wx.BOTTOM) |
|
85 |
|
86 self.WholeProject = wx.RadioButton(self, label=_('Whole Project'), |
|
87 size=wx.Size(0, 24), style=wx.RB_GROUP) |
136 self.WholeProject.SetValue(True) |
88 self.WholeProject.SetValue(True) |
|
89 self.Bind(wx.EVT_RADIOBUTTON, self.OnScopeChanged, self.WholeProject) |
|
90 scope_selection_sizer.AddWindow(self.WholeProject, border=5, |
|
91 flag=wx.GROW|wx.BOTTOM) |
137 |
92 |
138 self.OnlyElements = wx.RadioButton(id=ID_SEARCHINPROJECTDIALOGONLYELEMENTS, |
93 self.OnlyElements = wx.RadioButton(self, |
139 label=_('Only Elements'), name='OnlyElements', parent=self, |
94 label=_('Only Elements'), size=wx.Size(0, 24)) |
140 pos=wx.Point(0, 0), size=wx.Size(0, 24), style=0) |
95 self.Bind(wx.EVT_RADIOBUTTON, self.OnScopeChanged, self.OnlyElements) |
141 self.Bind(wx.EVT_RADIOBUTTON, self.OnScopeChanged, id=ID_SEARCHINPROJECTDIALOGONLYELEMENTS) |
|
142 self.OnlyElements.SetValue(False) |
96 self.OnlyElements.SetValue(False) |
|
97 scope_selection_sizer.AddWindow(self.OnlyElements, flag=wx.GROW) |
143 |
98 |
144 self.ElementsList = wx.CheckListBox(id=ID_SEARCHINPROJECTDIALOGELEMENTSLIST, |
99 self.ElementsList = wx.CheckListBox(self) |
145 name='ElementsList', parent=self, pos=wx.Point(0, 0), |
|
146 size=wx.Size(0, 0), style=0) |
|
147 self.ElementsList.Enable(False) |
100 self.ElementsList.Enable(False) |
|
101 scope_sizer.AddWindow(self.ElementsList, 1, border=5, |
|
102 flag=wx.GROW|wx.TOP|wx.RIGHT|wx.BOTTOM) |
148 |
103 |
149 self.ButtonSizer = self.CreateButtonSizer(wx.OK|wx.CANCEL|wx.CENTRE) |
104 self.ButtonSizer = self.CreateButtonSizer(wx.OK|wx.CANCEL|wx.CENTRE) |
150 if wx.VERSION >= (2, 5, 0): |
105 ok_button = self.ButtonSizer.GetAffirmativeButton() |
151 ok_button = self.ButtonSizer.GetAffirmativeButton() |
|
152 else: |
|
153 ok_button = self.ButtonSizer.GetChildren()[0].GetSizer().GetChildren()[0].GetWindow() |
|
154 ok_button.SetLabel(_('Search')) |
106 ok_button.SetLabel(_('Search')) |
155 self.Bind(wx.EVT_BUTTON, self.OnOK, id=ok_button.GetId()) |
107 self.Bind(wx.EVT_BUTTON, self.OnOK, ok_button) |
|
108 main_sizer.AddSizer(self.ButtonSizer, border=20, |
|
109 flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
156 |
110 |
157 self._init_sizers() |
111 self.SetSizer(main_sizer) |
158 |
112 |
159 def __init__(self, parent): |
|
160 self._init_ctrls(parent) |
|
161 |
|
162 for name, label in GetElementsChoices(): |
113 for name, label in GetElementsChoices(): |
163 self.ElementsList.Append(_(label)) |
114 self.ElementsList.Append(_(label)) |
164 |
115 |
165 self.Pattern.SetFocus() |
116 self.Pattern.SetFocus() |
166 |
117 |