16 'helv' : 'Helvetica', |
16 'helv' : 'Helvetica', |
17 'other': 'new century schoolbook', |
17 'other': 'new century schoolbook', |
18 'size' : 12, |
18 'size' : 12, |
19 'size2': 10, |
19 'size2': 10, |
20 } |
20 } |
21 |
|
22 if wx.VERSION >= (2, 8, 0): |
|
23 import wx.aui |
|
24 |
|
25 class MDICppEditor(wx.aui.AuiMDIChildFrame): |
|
26 def __init__(self, parent, name, window, controler): |
|
27 wx.aui.AuiMDIChildFrame.__init__(self, parent, -1, title = name) |
|
28 |
|
29 sizer = wx.BoxSizer(wx.HORIZONTAL) |
|
30 |
|
31 self.Viewer = CppEditor(self, name, window, controler) |
|
32 |
|
33 sizer.AddWindow(self.Viewer, 1, border=0, flag=wx.GROW) |
|
34 |
|
35 self.SetSizer(sizer) |
|
36 |
|
37 def GetViewer(self): |
|
38 return self.Viewer |
|
39 |
|
40 class MDIVariablesEditor(wx.aui.AuiMDIChildFrame): |
|
41 def __init__(self, parent, name, window, controler): |
|
42 wx.aui.AuiMDIChildFrame.__init__(self, parent, -1, title = name) |
|
43 |
|
44 sizer = wx.BoxSizer(wx.HORIZONTAL) |
|
45 |
|
46 self.Viewer = VariablesEditor(self, window, controler) |
|
47 |
|
48 sizer.AddWindow(self.Viewer, 1, border=0, flag=wx.GROW) |
|
49 |
|
50 self.SetSizer(sizer) |
|
51 |
|
52 def GetViewer(self): |
|
53 return self.Viewer |
|
54 |
21 |
55 |
22 |
56 def AppendMenu(parent, help, id, kind, text): |
23 def AppendMenu(parent, help, id, kind, text): |
57 if wx.VERSION >= (2, 6, 0): |
24 if wx.VERSION >= (2, 6, 0): |
58 parent.Append(help=help, id=id, kind=kind, text=text) |
25 parent.Append(help=help, id=id, kind=kind, text=text) |
817 |
784 |
818 #------------------------------------------------------------------------------- |
785 #------------------------------------------------------------------------------- |
819 # SVGUIEditor Main Frame Class |
786 # SVGUIEditor Main Frame Class |
820 #------------------------------------------------------------------------------- |
787 #------------------------------------------------------------------------------- |
821 |
788 |
822 if wx.VERSION >= (2, 8, 0): |
|
823 base_class = wx.aui.AuiMDIParentFrame |
|
824 else: |
|
825 base_class = wx.Frame |
|
826 |
789 |
827 CFILE_PARTS = ["Includes", "Variables", "Globals", "Init", "CleanUp", "Retrieve", |
790 CFILE_PARTS = ["Includes", "Variables", "Globals", "Init", "CleanUp", "Retrieve", |
828 "Publish"] |
791 "Publish"] |
829 |
792 |
830 [ID_CFILEEDITOR, ID_CFILEEDITORMAINSPLITTER, |
793 [ID_CFILEEDITOR, ID_CFILEEDITORMAINSPLITTER, |
831 ID_CFILEEDITORCFILETREE, ID_CFILEEDITORPARTSOPENED, |
794 ID_CFILEEDITORCFILETREE, ID_CFILEEDITORPARTSOPENED, |
832 ] = [wx.NewId() for _init_ctrls in range(4)] |
795 ] = [wx.NewId() for _init_ctrls in range(4)] |
833 |
796 |
834 class CFileEditor(base_class): |
797 class CFileEditor(wx.Frame): |
835 |
798 |
836 if wx.VERSION < (2, 6, 0): |
799 if wx.VERSION < (2, 6, 0): |
837 def Bind(self, event, function, id = None): |
800 def Bind(self, event, function, id = None): |
838 if id is not None: |
801 if id is not None: |
839 event(self, id, function) |
802 event(self, id, function) |
861 |
824 |
862 self._init_coll_MenuBar_Menus(self.MenuBar) |
825 self._init_coll_MenuBar_Menus(self.MenuBar) |
863 self._init_coll_EditMenu_Items(self.EditMenu) |
826 self._init_coll_EditMenu_Items(self.EditMenu) |
864 |
827 |
865 def _init_ctrls(self, prnt): |
828 def _init_ctrls(self, prnt): |
866 if wx.VERSION >= (2, 8, 0): |
829 wx.Frame.__init__(self, id=ID_CFILEEDITOR, name=u'CFileEditor', |
867 wx.aui.AuiMDIParentFrame.__init__(self, winid=ID_CFILEEDITOR, name=u'CFileEditor', |
830 parent=prnt, pos=wx.DefaultPosition, size=wx.Size(800, 650), |
868 parent=prnt, pos=wx.DefaultPosition, size=wx.Size(800, 650), |
831 style=wx.DEFAULT_FRAME_STYLE, title=u'CFileEditor') |
869 style=wx.DEFAULT_FRAME_STYLE|wx.SUNKEN_BORDER|wx.CLIP_CHILDREN, title=u'CFileEditor') |
|
870 else: |
|
871 wx.Frame.__init__(self, id=ID_CFILEEDITOR, name=u'CFileEditor', |
|
872 parent=prnt, pos=wx.DefaultPosition, size=wx.Size(800, 650), |
|
873 style=wx.DEFAULT_FRAME_STYLE, title=u'CFileEditor') |
|
874 self._init_utils() |
832 self._init_utils() |
875 self.SetClientSize(wx.Size(1000, 600)) |
833 self.SetClientSize(wx.Size(1000, 600)) |
876 self.SetMenuBar(self.MenuBar) |
834 self.SetMenuBar(self.MenuBar) |
877 self.Bind(wx.EVT_CLOSE, self.OnCloseFrame) |
835 self.Bind(wx.EVT_CLOSE, self.OnCloseFrame) |
878 |
836 |
914 else: |
872 else: |
915 wx.EVT_NOTEBOOK_PAGE_CHANGED(self.PartsOpened, ID_CFILEEDITORPARTSOPENED, |
873 wx.EVT_NOTEBOOK_PAGE_CHANGED(self.PartsOpened, ID_CFILEEDITORPARTSOPENED, |
916 self.OnPartSelectedChanged) |
874 self.OnPartSelectedChanged) |
917 |
875 |
918 self.MainSplitter.SplitVertically(self.ProjectTree, self.PartsOpened, 200) |
876 self.MainSplitter.SplitVertically(self.ProjectTree, self.PartsOpened, 200) |
919 |
877 else: |
|
878 self.PartsOpened = wx.aui.AuiNotebook(self) |
|
879 self.PartsOpened.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, |
|
880 self.OnPartSelectedChanged) |
|
881 self.AUIManager.AddPane(self.PartsOpened, wx.aui.AuiPaneInfo().CentrePane()) |
|
882 |
920 self.StatusBar = wx.StatusBar( name='HelpBar', |
883 self.StatusBar = wx.StatusBar( name='HelpBar', |
921 parent=self, style=wx.ST_SIZEGRIP) |
884 parent=self, style=wx.ST_SIZEGRIP) |
922 self.SetStatusBar(self.StatusBar) |
885 self.SetStatusBar(self.StatusBar) |
923 |
886 |
924 if wx.VERSION >= (2, 8, 0): |
887 if wx.VERSION >= (2, 8, 0): |
954 event.Skip() |
917 event.Skip() |
955 |
918 |
956 #------------------------------------------------------------------------------- |
919 #------------------------------------------------------------------------------- |
957 # Notebook Unified Functions |
920 # Notebook Unified Functions |
958 #------------------------------------------------------------------------------- |
921 #------------------------------------------------------------------------------- |
959 |
922 |
960 def GetPageCount(self): |
|
961 if wx.VERSION >= (2, 8, 0): |
|
962 notebook = self.GetNotebook() |
|
963 if notebook is not None: |
|
964 return notebook.GetPageCount() |
|
965 else: |
|
966 return 0 |
|
967 else: |
|
968 return self.PartsOpened.GetPageCount() |
|
969 |
|
970 def GetPage(self, idx): |
|
971 if wx.VERSION >= (2, 8, 0): |
|
972 notebook = self.GetNotebook() |
|
973 if notebook is not None: |
|
974 return notebook.GetPage(idx).GetViewer() |
|
975 else: |
|
976 return None |
|
977 else: |
|
978 return self.PartsOpened.GetPage(idx) |
|
979 |
|
980 def GetPageSelection(self): |
|
981 if wx.VERSION >= (2, 8, 0): |
|
982 notebook = self.GetNotebook() |
|
983 if notebook is not None: |
|
984 return notebook.GetSelection() |
|
985 else: |
|
986 return -1 |
|
987 else: |
|
988 return self.PartsOpened.GetSelection() |
|
989 |
|
990 def SetPageSelection(self, idx): |
|
991 if wx.VERSION >= (2, 8, 0): |
|
992 notebook = self.GetNotebook() |
|
993 if notebook is not None: |
|
994 notebook.SetSelection(idx) |
|
995 else: |
|
996 self.PartsOpened.SetSelection(idx) |
|
997 |
|
998 def DeletePage(self, idx): |
|
999 if wx.VERSION >= (2, 8, 0): |
|
1000 notebook = self.GetNotebook() |
|
1001 if notebook is not None: |
|
1002 notebook.DeletePage(idx) |
|
1003 else: |
|
1004 self.PartsOpened.DeletePage(idx) |
|
1005 |
|
1006 def DeleteAllPages(self): |
923 def DeleteAllPages(self): |
1007 if wx.VERSION >= (2, 8, 0): |
924 if wx.VERSION >= (2, 8, 0): |
1008 notebook = self.GetNotebook() |
925 for idx in xrange(self.PartsOpened.GetPageCount()): |
1009 if notebook is not None: |
926 self.PartsOpened.DeletePage(0) |
1010 for idx in xrange(notebook.GetPageCount()): |
|
1011 notebook.DeletePage(0) |
|
1012 else: |
927 else: |
1013 self.PartsOpened.DeleteAllPages() |
928 self.PartsOpened.DeleteAllPages() |
1014 |
929 |
1015 def SetPageText(self, idx, text): |
|
1016 if wx.VERSION >= (2, 8, 0): |
|
1017 notebook = self.GetNotebook() |
|
1018 if notebook is not None: |
|
1019 return notebook.SetPageText(idx, text) |
|
1020 else: |
|
1021 return self.PartsOpened.SetPageText(idx, text) |
|
1022 |
|
1023 def SetPageBitmap(self, idx, bitmap): |
930 def SetPageBitmap(self, idx, bitmap): |
1024 if wx.VERSION >= (2, 8, 0): |
931 if wx.VERSION >= (2, 8, 0): |
1025 notebook = self.GetNotebook() |
932 return self.PartsOpened.SetPageBitmap(idx, bitmap) |
1026 if notebook is not None: |
|
1027 return notebook.SetPageBitmap(idx, bitmap) |
|
1028 else: |
933 else: |
1029 return self.PartsOpened.SetPageImage(idx, bitmap) |
934 return self.PartsOpened.SetPageImage(idx, bitmap) |
1030 |
935 |
1031 def GetPageText(self, idx): |
|
1032 if wx.VERSION >= (2, 8, 0): |
|
1033 notebook = self.GetNotebook() |
|
1034 if notebook is not None: |
|
1035 return notebook.GetPageText(idx) |
|
1036 else: |
|
1037 return "" |
|
1038 else: |
|
1039 return self.PartsOpened.GetPageText(idx) |
|
1040 |
|
1041 def IsOpened(self, name): |
936 def IsOpened(self, name): |
1042 for idx in xrange(self.GetPageCount()): |
937 for idx in xrange(self.PartsOpened.GetPageCount()): |
1043 if self.GetPage(idx).IsViewing(name): |
938 if self.PartsOpened.GetPage(idx).IsViewing(name): |
1044 return idx |
939 return idx |
1045 return None |
940 return None |
1046 |
941 |
1047 def RefreshTitle(self): |
942 def RefreshTitle(self): |
1048 self.SetTitle("CFileEditor - %s"%self.Controler.GetFilename()) |
943 self.SetTitle("CFileEditor - %s"%self.Controler.GetFilename()) |
1055 undo, redo = self.Controler.GetBufferState() |
950 undo, redo = self.Controler.GetBufferState() |
1056 self.EditMenu.Enable(wx.ID_UNDO, undo) |
951 self.EditMenu.Enable(wx.ID_UNDO, undo) |
1057 self.EditMenu.Enable(wx.ID_REDO, redo) |
952 self.EditMenu.Enable(wx.ID_REDO, redo) |
1058 |
953 |
1059 def OnRefreshMenu(self, event): |
954 def OnRefreshMenu(self, event): |
1060 selected = self.GetPageSelection() |
955 selected = self.PartsOpened.GetSelection() |
1061 if selected != -1: |
956 if selected != -1: |
1062 window = self.GetPage(selected) |
957 window = self.PartsOpened.GetPage(selected) |
1063 window.RefreshView() |
958 window.RefreshView() |
1064 event.Skip() |
959 event.Skip() |
1065 |
960 |
1066 def OnUndoMenu(self, event): |
961 def OnUndoMenu(self, event): |
1067 self.Controler.LoadPrevious() |
962 self.Controler.LoadPrevious() |
1068 selected = self.GetPageSelection() |
963 selected = self.PartsOpened.GetSelection() |
1069 if selected != -1: |
964 if selected != -1: |
1070 window = self.GetPage(selected) |
965 window = self.PartsOpened.GetPage(selected) |
1071 window.RefreshView() |
966 window.RefreshView() |
1072 self.RefreshTitle() |
967 self.RefreshTitle() |
1073 self.RefreshEditMenu() |
968 self.RefreshEditMenu() |
1074 event.Skip() |
969 event.Skip() |
1075 |
970 |
1076 def OnRedoMenu(self, event): |
971 def OnRedoMenu(self, event): |
1077 self.Controler.LoadNext() |
972 self.Controler.LoadNext() |
1078 selected = self.GetPageSelection() |
973 selected = self.PartsOpened.GetSelection() |
1079 if selected != -1: |
974 if selected != -1: |
1080 window = self.GetPage(selected) |
975 window = self.PartsOpened.GetPage(selected) |
1081 window.RefreshView() |
976 window.RefreshView() |
1082 self.RefreshTitle() |
977 self.RefreshTitle() |
1083 self.RefreshEditMenu() |
978 self.RefreshEditMenu() |
1084 event.Skip() |
979 event.Skip() |
1085 |
980 |
1086 #------------------------------------------------------------------------------- |
981 #------------------------------------------------------------------------------- |
1087 # CFile Editor Panels Management Functions |
982 # CFile Editor Panels Management Functions |
1088 #------------------------------------------------------------------------------- |
983 #------------------------------------------------------------------------------- |
1089 |
984 |
1090 def OnPartSelectedChanged(self, event): |
985 def OnPartSelectedChanged(self, event): |
1091 if wx.VERSION < (2, 8, 0) or event.GetActive(): |
986 old_selected = self.PartsOpened.GetSelection() |
1092 old_selected = self.GetPageSelection() |
987 if old_selected >= 0: |
1093 if old_selected >= 0: |
988 self.PartsOpened.GetPage(old_selected).ResetBuffer() |
1094 self.GetPage(old_selected).ResetBuffer() |
989 selected = event.GetSelection() |
1095 if wx.VERSION >= (2, 8, 0): |
990 if selected >= 0: |
1096 window = event.GetEventObject().GetViewer() |
991 window = self.PartsOpened.GetPage(selected) |
1097 else: |
992 window.RefreshView() |
1098 selected = event.GetSelection() |
|
1099 if selected >= 0: |
|
1100 window = self.GetPage(selected) |
|
1101 else: |
|
1102 window = None |
|
1103 if window: |
|
1104 window.RefreshView() |
|
1105 event.Skip() |
993 event.Skip() |
1106 |
994 |
1107 #------------------------------------------------------------------------------- |
995 #------------------------------------------------------------------------------- |
1108 # CFile Tree Management Functions |
996 # CFile Tree Management Functions |
1109 #------------------------------------------------------------------------------- |
997 #------------------------------------------------------------------------------- |
1124 event.Skip() |
1012 event.Skip() |
1125 |
1013 |
1126 def EditCFilePart(self, name, onlyopened = False): |
1014 def EditCFilePart(self, name, onlyopened = False): |
1127 openedidx = self.IsOpened(name) |
1015 openedidx = self.IsOpened(name) |
1128 if openedidx is not None: |
1016 if openedidx is not None: |
1129 old_selected = self.GetPageSelection() |
1017 old_selected = self.PartsOpened.GetSelection() |
1130 if old_selected != openedidx: |
1018 if old_selected != openedidx: |
1131 if old_selected >= 0: |
1019 if old_selected >= 0: |
1132 self.GetPage(old_selected).ResetBuffer() |
1020 self.PartsOpened.GetPage(old_selected).ResetBuffer() |
1133 self.SetPageSelection(openedidx) |
1021 self.PartsOpened.SetSelection(openedidx) |
1134 self.GetPage(openedidx).RefreshView() |
1022 self.PartsOpened.GetPage(openedidx).RefreshView() |
1135 elif not onlyopened: |
1023 elif not onlyopened: |
1136 if wx.VERSION >= (2, 8, 0): |
1024 if name == "Variables": |
1137 if name == "Variables": |
1025 new_window = VariablesEditor(self.PartsOpened, self, self.Controler) |
1138 new_window = MDIVariablesEditor(self, name, self, self.Controler) |
1026 self.PartsOpened.AddPage(new_window, name) |
1139 else: |
|
1140 new_window = MDICppEditor(self, name, self, self.Controler) |
|
1141 new_window.Bind(wx.EVT_ACTIVATE, self.OnPartSelectedChanged) |
|
1142 new_window.Layout() |
|
1143 else: |
1027 else: |
1144 if name == "Variables": |
1028 new_window = CppEditor(self.PartsOpened, name, self, self.Controler) |
1145 new_window = VariablesEditor(self.TabsOpened, self, self.Controler) |
1029 self.PartsOpened.AddPage(new_window, name) |
1146 self.TabsOpened.AddPage(new_window, name) |
|
1147 else: |
|
1148 new_window = CppEditor(self.TabsOpened, name, self, self.Controler) |
|
1149 self.TabsOpened.AddPage(new_window, name) |
|
1150 openedidx = self.IsOpened(name) |
1030 openedidx = self.IsOpened(name) |
1151 old_selected = self.GetPageSelection() |
1031 old_selected = self.PartsOpened.GetSelection() |
1152 if old_selected != openedidx: |
1032 if old_selected != openedidx: |
1153 if old_selected >= 0: |
1033 if old_selected >= 0: |
1154 self.GetPage(old_selected).ResetBuffer() |
1034 self.PartsOpened.GetPage(old_selected).ResetBuffer() |
1155 for i in xrange(self.GetPageCount()): |
1035 for i in xrange(self.PartsOpened.GetPageCount()): |
1156 window = self.GetPage(i) |
1036 window = self.PartsOpened.GetPage(i) |
1157 if window.IsViewing(name): |
1037 if window.IsViewing(name): |
1158 self.SetPageSelection(i) |
1038 self.PartsOpened.SetSelection(i) |
1159 window.RefreshView() |
1039 window.RefreshView() |
1160 window.SetFocus() |
1040 window.SetFocus() |