9 enum DirTypes { includes, libraries, executables };
11 char * settingsDirectoryNames[DirTypes] =
18 class GlobalSettings : GlobalAppSettings
20 settingsName = "ecereIDE";
23 List systemDirs[DirTypes];
27 virtual void Window::UpdateRecentMenus();
32 for(c = 0; c < DirTypes::enumSize; c++)
33 systemDirs[c].Free(Link::Free);
34 recentFiles.Free(Link::Free);
35 recentProjects.Free(Link::Free);
38 void OnAskReloadSettings()
40 /*if(MessageBox { type = YesNo, master = this,
41 text = "Global Settings Modified Externally",
42 contents = "The global settings were modified by another instance.\n"
43 "Would you like to reload them?" }.Modal() == Yes)*/
51 if(GlobalAppSettings::Load())
55 for(c = 0; c < DirTypes::enumSize; c++)
57 systemDirs[c].Free(Link::Free);
58 GetGlobalValue("Directories", settingsDirectoryNames[c],
59 stringList, &systemDirs[c]);
62 recentFiles.Free(Link::Free);
63 GetGlobalValue("Recent", "Files",
64 stringList, &recentFiles);
66 recentProjects.Free(Link::Free);
67 GetGlobalValue("Recent", "Projects",
68 stringList, &recentProjects);
72 UpdateRecentMenus(owner);
78 if(GlobalAppSettings::Save())
81 for(c = 0; c < DirTypes::enumSize; c++)
82 PutGlobalValue("Directories",
83 settingsDirectoryNames[c], stringList, &systemDirs[c]);
84 PutGlobalValue("Recent", "Files",
85 stringList, &recentFiles);
86 PutGlobalValue("Recent", "Projects",
87 stringList, &recentProjects);
92 void AddRecentFile(char * fileName)
94 NamedItem recent, next;
95 for(recent = recentFiles.first; recent; recent = next)
98 if(recent.name && !strcmp(recent.name, fileName))
101 recentFiles.Delete(recent);
104 while(recentFiles.count >= MaxRecent)
106 recent = recentFiles.last;
109 recentFiles.Delete(recent);
111 recent = { name = CopyString(fileName) };
112 recentFiles.Insert(null, recent);
113 UpdateRecentMenus(owner);
116 void AddRecentProject(char * projectName)
118 NamedItem recent, next;
119 for(recent = recentProjects.first; recent; recent = next)
122 if(recent.name && !strcmp(recent.name, projectName))
125 recentProjects.Delete(recent);
128 while(recentProjects.count >= MaxRecent)
130 recent = recentProjects.last;
133 recentProjects.Delete(recent);
135 recent = { name = CopyString(projectName) };
136 recentProjects.Insert(null, recent);
137 UpdateRecentMenus(owner);