Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_BookmarkPlugin.c
Go to the documentation of this file.
1#ifdef WORKBENCH
2[WorkbenchPluginAttribute(name: "Bookmark 1", category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS, shortcut: "Ctrl+1", wbModules: { "ResourceManager" }, awesomeFontCode: 0xF02E)]
3class SCR_BookmarkPlugin1 : WorkbenchPlugin
4{
5 //------------------------------------------------------------------------------------------------
6 protected int GetBookmarkIndex()
7 {
8 return 1;
9 }
10
11 //------------------------------------------------------------------------------------------------
12 override void Run()
13 {
14 ResourceManager resourceManager = Workbench.GetModule(ResourceManager);
15
16 array<ResourceName> selection = {};
17 resourceManager.GetResourceBrowserSelection(selection.Insert, true);
18
19 int bookmarkIndex = GetBookmarkIndex();
20 SCR_BookmarkSettingsPlugin settings = SCR_BookmarkSettingsPlugin.Cast(Workbench.GetModule(ResourceManager).GetPlugin(SCR_BookmarkSettingsPlugin));
21 ResourceName bookmarkFile = settings.GetBookmarkFile(bookmarkIndex);
22
23 // 0 = open
24 // 1 = set/replace
25 // -1 = error
26 int action;
27 if (selection.IsEmpty() || bookmarkFile == selection[0])
28 {
29 action = 0; // open
30 }
31 else if (bookmarkFile) // !.IsEmpty()
32 {
33 SCR_BookmarkPluginPrompt prompt = new SCR_BookmarkPluginPrompt();
34 if (Workbench.ScriptDialog("Open or Replace", string.Format("Do you want to open the existing bookmark '%1'\nor replace it (bookmark %2) by the selected file '%3'?", FilePath.StripPath(bookmarkFile), bookmarkIndex, FilePath.StripPath(selection[0])), prompt) == 0)
35 return; // cancel
36
37 action = prompt.GetSelectedAction();
38 }
39 else
40 {
41 action = 1; // set/replace
42 }
43
44 switch (action)
45 {
46 case -1: // error - cannot happen
47 return;
48
49 case 0: // open
50 if (bookmarkFile) // !.IsEmpty()
51 {
52 PrintFormat("Opening bookmark %1: @\"%2\"", bookmarkIndex, bookmarkFile, level: LogLevel.NORMAL);
53 resourceManager.SetOpenedResource(bookmarkFile);
54 }
55 else
56 {
57 PrintFormat("Bookmark %1 is not defined", bookmarkIndex, level: LogLevel.NORMAL);
58 }
59
60 break;
61
62 case 1: // set/replace
63 bookmarkFile = selection[0];
64 if (settings.SetBookmarkFile(bookmarkIndex, bookmarkFile))
65 PrintFormat("Bookmark %1 now points to @\"%2\"", bookmarkIndex, bookmarkFile.GetPath(), level: LogLevel.NORMAL);
66 else
67 PrintFormat("Cannot set bookmark's value, the provided index is invalid (%1)", bookmarkIndex, level: LogLevel.ERROR);
68
69 break;
70 }
71 }
72
73 //------------------------------------------------------------------------------------------------
74 [ButtonAttribute("Close")]
75 protected int ButtonClose()
76 {
77 return 1;
78 }
79}
80
81[WorkbenchPluginAttribute(name: "Bookmark 2", category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS, shortcut: "Ctrl+2", wbModules: { "ResourceManager" }, awesomeFontCode: 0xF02E)]
82class SCR_BookmarkPlugin2 : SCR_BookmarkPlugin1 { override protected int GetBookmarkIndex() { return 2; } }
83
84[WorkbenchPluginAttribute(name: "Bookmark 3", category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS, shortcut: "Ctrl+3", wbModules: { "ResourceManager" }, awesomeFontCode: 0xF02E)]
85class SCR_BookmarkPlugin3 : SCR_BookmarkPlugin1 { override protected int GetBookmarkIndex() { return 3; } }
86
87[WorkbenchPluginAttribute(name: "Bookmark 4", category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS, shortcut: "Ctrl+4", wbModules: { "ResourceManager" }, awesomeFontCode: 0xF02E)]
88class SCR_BookmarkPlugin4 : SCR_BookmarkPlugin1 { override protected int GetBookmarkIndex() { return 4; } }
89
90[WorkbenchPluginAttribute(name: "Bookmark 5", category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS, shortcut: "Ctrl+5", wbModules: { "ResourceManager" }, awesomeFontCode: 0xF02E)]
91class SCR_BookmarkPlugin5 : SCR_BookmarkPlugin1 { override protected int GetBookmarkIndex() { return 5; } }
92
93[WorkbenchPluginAttribute(name: "Bookmark 6", category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS, shortcut: "Ctrl+6", wbModules: { "ResourceManager" }, awesomeFontCode: 0xF02E)]
94class SCR_BookmarkPlugin6 : SCR_BookmarkPlugin1 { override protected int GetBookmarkIndex() { return 6; } }
95
96[WorkbenchPluginAttribute(name: "Bookmark 7", category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS, shortcut: "Ctrl+7", wbModules: { "ResourceManager" }, awesomeFontCode: 0xF02E)]
97class SCR_BookmarkPlugin7 : SCR_BookmarkPlugin1 { override protected int GetBookmarkIndex() { return 7; } }
98
99[WorkbenchPluginAttribute(name: "Bookmark 8", category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS, shortcut: "Ctrl+8", wbModules: { "ResourceManager" }, awesomeFontCode: 0xF02E)]
100class SCR_BookmarkPlugin8 : SCR_BookmarkPlugin1 { override protected int GetBookmarkIndex() { return 8; } }
101
102[WorkbenchPluginAttribute(name: "Bookmark 9", category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS, shortcut: "Ctrl+9", wbModules: { "ResourceManager" }, awesomeFontCode: 0xF02E)]
103class SCR_BookmarkPlugin9 : SCR_BookmarkPlugin1 { override protected int GetBookmarkIndex() { return 9; } }
104
105[WorkbenchPluginAttribute(name: "Bookmark 10", category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS, shortcut: "Ctrl+0", wbModules: { "ResourceManager" }, awesomeFontCode: 0xF02E)]
106class SCR_BookmarkPlugin0 : SCR_BookmarkPlugin1 { override protected int GetBookmarkIndex() { return 10; } }
107
108class SCR_BookmarkPluginPrompt
109{
110 protected int m_iAction = -1;
111
112 //------------------------------------------------------------------------------------------------
114 {
115 return m_iAction;
116 }
117
118 //------------------------------------------------------------------------------------------------
119 [ButtonAttribute("Open", true)]
120 protected int ButtonOpen()
121 {
122 m_iAction = 0;
123 return 1; // action selected
124 }
125
126 //------------------------------------------------------------------------------------------------
127 [ButtonAttribute("Replace")]
128 protected int ButtonReplace()
129 {
130 m_iAction = 1;
131 return 1; // action selected
132 }
133
134 //------------------------------------------------------------------------------------------------
135 [ButtonAttribute("Cancel")]
136 protected int ButtonCancel()
137 {
138 m_iAction = -1;
139 return 0; // choice cancelled - same as clicking "close" on the window
140 }
141}
142
143[WorkbenchPluginAttribute(name: "Bookmarks Configuration", description: "Configure bookmarks", wbModules: { "ResourceManager" }, awesomeFontCode: 0xF02E)]
144class SCR_BookmarkSettingsPlugin : WorkbenchPlugin
145{
146 [Attribute(uiwidget: UIWidgets.ResourcePickerThumbnail, category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS)]
147 protected ResourceName m_sBookmark_1; // underscore to have a space between "bookmark" and "1"
148
149 [Attribute(uiwidget: UIWidgets.ResourcePickerThumbnail, category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS)]
150 protected ResourceName m_sBookmark_2;
151
152 [Attribute(uiwidget: UIWidgets.ResourcePickerThumbnail, category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS)]
153 protected ResourceName m_sBookmark_3;
154
155 [Attribute(uiwidget: UIWidgets.ResourcePickerThumbnail, category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS)]
156 protected ResourceName m_sBookmark_4;
157
158 [Attribute(uiwidget: UIWidgets.ResourcePickerThumbnail, category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS)]
159 protected ResourceName m_sBookmark_5;
160
161 [Attribute(uiwidget: UIWidgets.ResourcePickerThumbnail, category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS)]
162 protected ResourceName m_sBookmark_6;
163
164 [Attribute(uiwidget: UIWidgets.ResourcePickerThumbnail, category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS)]
165 protected ResourceName m_sBookmark_7;
166
167 [Attribute(uiwidget: UIWidgets.ResourcePickerThumbnail, category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS)]
168 protected ResourceName m_sBookmark_8;
169
170 [Attribute(uiwidget: UIWidgets.ResourcePickerThumbnail, category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS)]
171 protected ResourceName m_sBookmark_9;
172
173 [Attribute(uiwidget: UIWidgets.ResourcePickerThumbnail, category: SCR_PluginCategory.RESOURCEMANAGER_BOOKMARKS)]
174 protected ResourceName m_sBookmark_10;
175
176 //------------------------------------------------------------------------------------------------
177 protected override void Configure()
178 {
179 array<ResourceName> save = { m_sBookmark_1, m_sBookmark_2, m_sBookmark_3, m_sBookmark_4, m_sBookmark_5, m_sBookmark_6, m_sBookmark_7, m_sBookmark_8, m_sBookmark_9, m_sBookmark_10 };
180 if (Workbench.ScriptDialog("Configure Bookmarks", "Select which files will be opened upon pressing bookmarks's shortcuts (Ctrl+#).", this) == 0)
181 {
182 // Cancel = revert values
183
184 m_sBookmark_1 = save[0];
185 m_sBookmark_2 = save[1];
186 m_sBookmark_3 = save[2];
187 m_sBookmark_4 = save[3];
188 m_sBookmark_5 = save[4];
189 m_sBookmark_6 = save[5];
190 m_sBookmark_7 = save[6];
191 m_sBookmark_8 = save[7];
192 m_sBookmark_9 = save[8];
193 m_sBookmark_10 = save[9];
194 }
195 }
196
197 //------------------------------------------------------------------------------------------------
200 ResourceName GetBookmarkFile(int bookmarkIndex)
201 {
202 switch (bookmarkIndex)
203 {
204 case 1: return m_sBookmark_1;
205 case 2: return m_sBookmark_2;
206 case 3: return m_sBookmark_3;
207 case 4: return m_sBookmark_4;
208 case 5: return m_sBookmark_5;
209 case 6: return m_sBookmark_6;
210 case 7: return m_sBookmark_7;
211 case 8: return m_sBookmark_8;
212 case 9: return m_sBookmark_9;
213 case 10: return m_sBookmark_10;
214 }
215
216 return ResourceName.Empty;
217 }
218
219 //------------------------------------------------------------------------------------------------
223 bool SetBookmarkFile(int bookmarkIndex, ResourceName newBookmark)
224 {
225 switch (bookmarkIndex)
226 {
227 case 1: m_sBookmark_1 = newBookmark; return true;
228 case 2: m_sBookmark_2 = newBookmark; return true;
229 case 3: m_sBookmark_3 = newBookmark; return true;
230 case 4: m_sBookmark_4 = newBookmark; return true;
231 case 5: m_sBookmark_5 = newBookmark; return true;
232 case 6: m_sBookmark_6 = newBookmark; return true;
233 case 7: m_sBookmark_7 = newBookmark; return true;
234 case 8: m_sBookmark_8 = newBookmark; return true;
235 case 9: m_sBookmark_9 = newBookmark; return true;
236 case 10: m_sBookmark_10 = newBookmark; return true;
237 }
238
239 return false;
240 }
241
242 //------------------------------------------------------------------------------------------------
243 [ButtonAttribute("Save")]
244 protected int ButtonSave()
245 {
246 return 1;
247 }
248
249 //------------------------------------------------------------------------------------------------
250 [ButtonAttribute("Cancel")]
251 protected int ButtonCancel()
252 {
253 return 0;
254 }
255}
256#endif // WORKBENCH
GenerateFlowMaps WorkbenchPlugin WorkbenchPluginAttribute("Regenerate river flow-maps", "Generate and save/overwrite river flow-maps", "", "", {"WorldEditor"}, "", 0xf773)
Definition FlowmapTool.c:59
override void Run()
bool ButtonCancel()
override void Configure()
class WorkbenchDialog_AbortRetryIgnore ButtonAttribute("OK", true)
LogLevel
Enum with severity of the logging message.
Definition LogLevel.c:14
proto void PrintFormat(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL, LogLevel level=LogLevel.NORMAL)
SCR_FieldOfViewSettings Attribute
proto external BaseUserAction GetSelectedAction()