Skip to content

Commit 16ccd1e

Browse files
author
YesDrX
committed
add doc-string to the macro
1 parent 2d0cb0f commit 16ccd1e

File tree

1 file changed

+206
-0
lines changed

1 file changed

+206
-0
lines changed

webui/bindings_prefix.nim

Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,212 @@ proc getLegacyConstantName(oldName: string): string =
165165
template helper(body:untyped):untyped = body
166166

167167
macro 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

Comments
 (0)