170 wx.CallAfter(self.RefreshModel) |
170 wx.CallAfter(self.RefreshModel) |
171 wx.CallAfter(self.RefreshSectionStyling) |
171 wx.CallAfter(self.RefreshSectionStyling) |
172 event.Skip() |
172 event.Skip() |
173 |
173 |
174 def OnDoDrop(self, event): |
174 def OnDoDrop(self, event): |
175 self.ResetBuffer() |
175 try: |
176 wx.CallAfter(self.RefreshModel) |
176 values = eval(event.GetDragText()) |
|
177 except: |
|
178 values = event.GetDragText() |
|
179 if isinstance(values, tuple): |
|
180 message = None |
|
181 if values[3] == self.Controler.GetCurrentLocation(): |
|
182 self.ResetBuffer() |
|
183 event.SetDragText(values[0]) |
|
184 wx.CallAfter(self.RefreshModel) |
|
185 else: |
|
186 event.SetDragText("") |
|
187 else: |
|
188 self.ResetBuffer() |
|
189 wx.CallAfter(self.RefreshModel) |
177 event.Skip() |
190 event.Skip() |
178 |
191 |
179 # Buffer the last model state |
192 # Buffer the last model state |
180 def RefreshBuffer(self): |
193 def RefreshBuffer(self): |
181 self.Controler.BufferCodeFile() |
194 self.Controler.BufferCodeFile() |
729 def OnVariablesGridCellLeftClick(self, event): |
742 def OnVariablesGridCellLeftClick(self, event): |
730 if event.GetCol() == 0: |
743 if event.GetCol() == 0: |
731 row = event.GetRow() |
744 row = event.GetRow() |
732 data_type = self.Table.GetValueByName(row, "Type") |
745 data_type = self.Table.GetValueByName(row, "Type") |
733 var_name = self.Table.GetValueByName(row, "Name") |
746 var_name = self.Table.GetValueByName(row, "Name") |
734 location = "_".join(map(lambda x:str(x), self.Controler.GetCurrentLocation())) |
747 data = wx.TextDataObject(str((var_name, "Global", data_type, |
735 data = wx.TextDataObject(str(("%s_%s" % (var_name, location), |
748 self.Controler.GetCurrentLocation()))) |
736 "Global", data_type, ""))) |
|
737 dragSource = wx.DropSource(self.VariablesGrid) |
749 dragSource = wx.DropSource(self.VariablesGrid) |
738 dragSource.SetData(data) |
750 dragSource.SetData(data) |
739 dragSource.DoDragDrop() |
751 dragSource.DoDragDrop() |
740 return |
752 return |
741 event.Skip() |
753 event.Skip() |
745 # CodeFileEditor Main Frame Class |
757 # CodeFileEditor Main Frame Class |
746 #------------------------------------------------------------------------------- |
758 #------------------------------------------------------------------------------- |
747 |
759 |
748 class CodeFileEditor(ConfTreeNodeEditor): |
760 class CodeFileEditor(ConfTreeNodeEditor): |
749 |
761 |
750 CONFNODEEDITOR_TABS = [ |
762 CONFNODEEDITOR_TABS = [] |
751 (_("Variables"), "_create_VariablesPanel")] |
763 CODE_EDITOR = None |
752 |
764 |
753 def _create_VariablesPanel(self, prnt): |
765 def _create_CodePanel(self, prnt): |
754 self.VariablesPanel = VariablesEditor(prnt, self.ParentWindow, self.Controler) |
766 self.CodeEditorPanel = wx.SplitterWindow(prnt) |
755 |
767 self.CodeEditorPanel.SetMinimumPaneSize(1) |
756 return self.VariablesPanel |
768 |
|
769 self.VariablesPanel = VariablesEditor(self.CodeEditorPanel, |
|
770 self.ParentWindow, self.Controler) |
|
771 |
|
772 if self.CODE_EDITOR is not None: |
|
773 self.CodeEditor = self.CODE_EDITOR(self.CodeEditorPanel, |
|
774 self.ParentWindow, self.Controler) |
|
775 |
|
776 self.CodeEditorPanel.SplitHorizontally(self.VariablesPanel, |
|
777 self.CodeEditor, 150) |
|
778 else: |
|
779 self.CodeEditorPanel.Initialize(self.VariablesPanel) |
|
780 |
|
781 return self.CodeEditorPanel |
757 |
782 |
758 def __init__(self, parent, controler, window): |
783 def __init__(self, parent, controler, window): |
759 ConfTreeNodeEditor.__init__(self, parent, controler, window) |
784 ConfTreeNodeEditor.__init__(self, parent, controler, window) |
|
785 |
|
786 wx.CallAfter(self.CodeEditorPanel.SetSashPosition, 150) |
760 |
787 |
761 def GetBufferState(self): |
788 def GetBufferState(self): |
762 return self.Controler.GetBufferState() |
789 return self.Controler.GetBufferState() |
763 |
790 |
764 def Undo(self): |
791 def Undo(self): |
771 |
798 |
772 def RefreshView(self): |
799 def RefreshView(self): |
773 ConfTreeNodeEditor.RefreshView(self) |
800 ConfTreeNodeEditor.RefreshView(self) |
774 |
801 |
775 self.VariablesPanel.RefreshView() |
802 self.VariablesPanel.RefreshView() |
776 |
803 self.CodeEditor.RefreshView() |
|
804 |
|
805 def Find(self, direction, search_params): |
|
806 self.CodeEditor.Find(direction, search_params) |
|
807 |