@@ -165,6 +165,212 @@ proc getLegacyConstantName(oldName: string): string =
165165template helper (body:untyped ):untyped = body
166166
167167macro renameEnumFields (enumdef : untyped ): untyped =
168+ # # renameEnumFields is a type pragma macro to change enum definition, so that it's compatible with
169+ # # the old versions.
170+ # #
171+ # # The following results are output during compileTime. For example, WebuiBrowser.NoBrowser
172+ # # will be renamed to WebuiBrowser.wbNoBrowser. Note that "wb" is a short name for "WebuiBrowser", and
173+ # # it's used to prefix the original enum field to avoid potential naming collisions.
174+ # #
175+ # # There is also a generated function to mimic the legacy NoBrowser constant
176+ # # proc NoBrowser*(): WebuiBrowserHelper {.inline, deprecated.} = WebuiBrowserHelper.wbNoBrowser
177+ # #
178+ # # ==================================================
179+ # # [WebUI] Renaming Enum Definition:
180+ # # # Original Enum Def:
181+ # # ==================================================
182+ # # WebuiBrowser* {..} = enum ## -- Enums ---------------------------
183+ # # NoBrowser = 0, ## 0. No web browser
184+ # # AnyBrowser = 1, ## 1. Default recommended web browser
185+ # # Chrome, ## 2. Google Chrome
186+ # # Firefox, ## 3. Mozilla Firefox
187+ # # Edge, ## 4. Microsoft Edge
188+ # # Safari, ## 5. Apple Safari
189+ # # Chromium, ## 6. The Chromium Project
190+ # # Opera, ## 7. Opera Browser
191+ # # Brave, ## 8. The Brave Browser
192+ # # Vivaldi, ## 9. The Vivaldi Browser
193+ # # Epic, ## 10. The Epic Browser
194+ # # Yandex, ## 11. The Yandex Browser
195+ # # ChromiumBased, ## 12. Any Chromium based browser
196+ # # Webview ## 13. WebView (Non-web-browser)
197+ # # ==================================================
198+ # # # Renamed Enum Def:
199+ # # WebuiBrowser* = enum
200+ # # wbNoBrowser = 0, wbAnyBrowser = 1, wbChrome, wbFirefox, wbEdge, wbSafari,
201+ # # wbChromium, wbOpera, wbBrave, wbVivaldi, wbEpic, wbYandex, wbChromiumBased,
202+ # # wbWebview
203+ # # ==================================================
204+ # # # Generated procs to mimic legacy constants:
205+ # # proc NoBrowser*(): WebuiBrowserHelper {.inline, deprecated.} =
206+ # # WebuiBrowserHelper.wbNoBrowser
207+
208+ # # proc AnyBrowser*(): WebuiBrowserHelper {.inline, deprecated.} =
209+ # # WebuiBrowserHelper.wbAnyBrowser
210+
211+ # # proc Chrome*(): WebuiBrowserHelper {.inline, deprecated.} =
212+ # # WebuiBrowserHelper.wbChrome
213+
214+ # # proc Firefox*(): WebuiBrowserHelper {.inline, deprecated.} =
215+ # # WebuiBrowserHelper.wbFirefox
216+
217+ # # proc Edge*(): WebuiBrowserHelper {.inline, deprecated.} =
218+ # # WebuiBrowserHelper.wbEdge
219+
220+ # # proc Safari*(): WebuiBrowserHelper {.inline, deprecated.} =
221+ # # WebuiBrowserHelper.wbSafari
222+
223+ # # proc Chromium*(): WebuiBrowserHelper {.inline, deprecated.} =
224+ # # WebuiBrowserHelper.wbChromium
225+
226+ # # proc Opera*(): WebuiBrowserHelper {.inline, deprecated.} =
227+ # # WebuiBrowserHelper.wbOpera
228+
229+ # # proc Brave*(): WebuiBrowserHelper {.inline, deprecated.} =
230+ # # WebuiBrowserHelper.wbBrave
231+
232+ # # proc Vivaldi*(): WebuiBrowserHelper {.inline, deprecated.} =
233+ # # WebuiBrowserHelper.wbVivaldi
234+
235+ # # proc Epic*(): WebuiBrowserHelper {.inline, deprecated.} =
236+ # # WebuiBrowserHelper.wbEpic
237+
238+ # # proc Yandex*(): WebuiBrowserHelper {.inline, deprecated.} =
239+ # # WebuiBrowserHelper.wbYandex
240+
241+ # # proc ChromiumBased*(): WebuiBrowserHelper {.inline, deprecated.} =
242+ # # WebuiBrowserHelper.wbChromiumBased
243+
244+ # # proc Webview*(): WebuiBrowserHelper {.inline, deprecated.} =
245+ # # WebuiBrowserHelper.wbWebview
246+
247+ # # **************************************************
248+
249+
250+ # # ==================================================
251+ # # [WebUI] Renaming Enum Definition:
252+ # # # Original Enum Def:
253+ # # ==================================================
254+ # # WebuiRuntime* {..} = enum
255+ # # None = 0, ## 0. Prevent WebUI from using any runtime for .js and .ts files
256+ # # Deno, ## 1. Use Deno runtime for .js and .ts files
257+ # # NodeJS, ## 2. Use Nodejs runtime for .js files
258+ # # Bun ## 3. Use Bun runtime for .js and .ts files
259+ # # ==================================================
260+ # # # Renamed Enum Def:
261+ # # WebuiRuntime* = enum
262+ # # wrNone = 0, wrDeno, wrNodeJS, wrBun
263+ # # ==================================================
264+ # # # Generated procs to mimic legacy constants:
265+ # # proc None*(): WebuiRuntimeHelper {.inline, deprecated.} =
266+ # # WebuiRuntimeHelper.wrNone
267+
268+ # # proc Deno*(): WebuiRuntimeHelper {.inline, deprecated.} =
269+ # # WebuiRuntimeHelper.wrDeno
270+
271+ # # proc NodeJS*(): WebuiRuntimeHelper {.inline, deprecated.} =
272+ # # WebuiRuntimeHelper.wrNodeJS
273+
274+ # # proc Bun*(): WebuiRuntimeHelper {.inline, deprecated.} =
275+ # # WebuiRuntimeHelper.wrBun
276+
277+ # # **************************************************
278+
279+
280+ # # ==================================================
281+ # # [WebUI] Renaming Enum Definition:
282+ # # # Original Enum Def:
283+ # # ==================================================
284+ # # WebuiEvent* {..} = enum
285+ # # WEBUI_EVENTS_DISCONNECTED = 0, ## 0. Window disconnection event
286+ # # WEBUI_EVENTS_CONNECTED, ## 1. Window connection event
287+ # # WEBUI_EVENTS_MOUSE_CLICK, ## 2. Mouse click event
288+ # # WEBUI_EVENTS_NAVIGATION, ## 3. Window navigation event
289+ # # WEBUI_EVENTS_CALLBACK ## 4. Function call event
290+ # # ==================================================
291+ # # # Renamed Enum Def:
292+ # # WebuiEvent* = enum
293+ # # weDisconnected = 0, weConnected, weMouseClick, weNavigation, weCallback
294+ # # ==================================================
295+ # # # Generated procs to mimic legacy constants:
296+ # # proc EventsDisconnected*(): WebuiEventHelper {.inline, deprecated.} =
297+ # # WebuiEventHelper.weDisconnected
298+
299+ # # proc EventsConnected*(): WebuiEventHelper {.inline, deprecated.} =
300+ # # WebuiEventHelper.weConnected
301+
302+ # # proc EventsMouseClick*(): WebuiEventHelper {.inline, deprecated.} =
303+ # # WebuiEventHelper.weMouseClick
304+
305+ # # proc EventsNavigation*(): WebuiEventHelper {.inline, deprecated.} =
306+ # # WebuiEventHelper.weNavigation
307+
308+ # # proc EventsCallback*(): WebuiEventHelper {.inline, deprecated.} =
309+ # # WebuiEventHelper.weCallback
310+
311+ # # **************************************************
312+
313+
314+ # # ==================================================
315+ # # [WebUI] Renaming Enum Definition:
316+ # # # Original Enum Def:
317+ # # ==================================================
318+ # # WebuiConfig* {..} = enum
319+ # # show_wait_connection = 0, ## Control if WebUI should block and process the UI events
320+ # # ## one a time in a single thread `True`, or process every
321+ # # ## event in a new non-blocking thread `False`. This updates
322+ # # ## all windows. You can use `webui_set_event_blocking()` for
323+ # # ## a specific single window update.
324+ # # ##
325+ # # ## Default: False
326+ # # ui_event_blocking, ## Automatically refresh the window UI when any file in the
327+ # # ## root folder gets changed.
328+ # # ##
329+ # # ## Default: False
330+ # # folder_monitor, ## Allow multiple clients to connect to the same window,
331+ # # ## This is helpful for web apps (non-desktop software),
332+ # # ## Please see the documentation for more details.
333+ # # ##
334+ # # ## Default: False
335+ # # multi_client, ## Allow or prevent WebUI from adding `webui_auth` cookies.
336+ # # ## WebUI uses these cookies to identify clients and block
337+ # # ## unauthorized access to the window content using a URL.
338+ # # ## Please keep this option to `True` if you want only a single
339+ # # ## client to access the window content.
340+ # # ##
341+ # # ## Default: True
342+ # # use_cookies, ## If the backend uses asynchronous operations, set this
343+ # # ## option to `True`. This will make webui wait until the
344+ # # ## backend sets a response using `webui_return_x()`.
345+ # # asynchronous_response
346+ # # ==================================================
347+ # # # Renamed Enum Def:
348+ # # WebuiConfig* = enum
349+ # # wcWaitConnection = 0, wcEventBlocking, wcMonitor, wcClient, wcCookies,
350+ # # wcResponse
351+ # # ==================================================
352+ # # # Generated procs to mimic legacy constants:
353+ # # proc ShowWaitConnection*(): WebuiConfigHelper {.inline, deprecated.} =
354+ # # WebuiConfigHelper.wcWaitConnection
355+
356+ # # proc UiEventBlocking*(): WebuiConfigHelper {.inline, deprecated.} =
357+ # # WebuiConfigHelper.wcEventBlocking
358+
359+ # # proc FolderMonitor*(): WebuiConfigHelper {.inline, deprecated.} =
360+ # # WebuiConfigHelper.wcMonitor
361+
362+ # # proc MultiClient*(): WebuiConfigHelper {.inline, deprecated.} =
363+ # # WebuiConfigHelper.wcClient
364+
365+ # # proc UseCookies*(): WebuiConfigHelper {.inline, deprecated.} =
366+ # # WebuiConfigHelper.wcCookies
367+
368+ # # proc AsynchronousResponse*(): WebuiConfigHelper {.inline, deprecated.} =
369+ # # WebuiConfigHelper.wcResponse
370+
371+ # # **************************************************
372+
373+
168374 if enumdef.kind != nnkTypeDef:
169375 raise newException (Exception , " generateDeprecatedEnumConst macro can only be used on enum type definitions" )
170376
0 commit comments