From 83fd24b4f26e42f9493232eee95d84758963193a Mon Sep 17 00:00:00 2001 From: Atul R Date: Fri, 4 Oct 2019 19:42:09 +0200 Subject: [PATCH] Deploy website version based on 28483e669bec0ebfdf58b3c28a299dd3729204a5 --- ...44576af60f.js => 1.cc710091ea950da6d6a4.js | 2 +- ...48779cd3.js => 128.275ddccdaf890a83df15.js | 2 +- 404.html | 6 +- blog/index.html | 8 +- blog/tags/hello/index.html | 8 +- blog/tags/index.html | 8 +- blog/tags/nodegui/index.html | 8 +- blog/welcome/index.html | 8 +- chunk-map.json | 364 +++++------ client-manifest.json | 576 +++++++++--------- ...-index-jsc-4-f-f99.e83a9966ed03cee3443f.js | 2 +- ...ent-widgetac-6-11b.b87fa94e0cd874003d59.js | 2 +- ...ex-layout-3-dc-a16.d5ab9ac7b90d9ed88203.js | 2 +- ...ode-layoutd-28-11a.f1324fa8676e4bf64b44.js | 2 +- ...ode-widget-080-a39.e1d7ab6aab225b7fb2e0.js | 2 +- ...oll-area-3-e-6-d7f.ce07722700328be8dfa5.js | 2 +- ...t-slider-3-e-0-54d.b7e761ae58b36fe089f1.js | 2 +- ...plicationd-3-e-0a3.039f8c83760f87eef546.js | 2 +- ...check-boxd-9-b-c95.54af9594d82de2f1c65c.js | 2 +- ...clipboard-69-d-2ef.2facddd2ce7d03c7d364.js | 2 +- ...i-q-cursor-362-d51.72e3b873d390560e1917.js | 2 +- ...pi-q-dial-80-b-99a.facd48a52570d2fd7472.js | 2 +- ...pi-q-icone-5-f-b0d.016d00e28e5a87f3cf94.js | 2 +- ...-q-label-2-f-9-04b.9f8c2e203f083cedfdf8.js | 2 +- ...-line-editea-0-53d.f606b13ced935ec46509.js | 2 +- ...n-window-0-e-7-299.7a1bf20062e23ed6c510.js | 2 +- ...-q-pixmap-8-dd-cb2.343e5d75db3125ddfa81.js | 2 +- ...ogress-barc-46-afe.2a5c874c4e33ecb7a2b8.js | 2 +- ...sh-button-06-c-73e.9e1e6d8a0e7c17941efd.js | 2 +- ...dio-buttone-54-746.0eceb96f43e589853010.js | 2 +- ...oll-area-8-c-4-3fd.fd580650b1d2ac9eee33.js | 2 +- ...-spin-box-1-ce-bfd.fc03e9106b39d9c9e23c.js | 2 +- ...-q-widget-04-a-59f.64a7421274fdc2d19599.js | 1 - ...-q-widget-04-a-59f.789a0ca241a0fb6ad49d.js | 1 + ...i-qt-enumsfd-7-cf3.0f709b0fb9cdc99aa034.js | 1 - ...i-qt-enumsfd-7-cf3.1eed426a340d4c937b0a.js | 1 + ...oga-widgeta-42-cc7.d048cabe40533b903ea2.js | 2 +- ...mon-errorsf-15-a5b.e038ab8ec8bf334300fb.js | 2 +- ...-debuggingb-54-9ed.750c6b37dab541484a83.js | 2 +- ...ng-started-139-387.91c824c53e601bdee051.js | 2 +- ...ent-readme-149-437.43394caf4d37e04eb78e.js | 2 +- ...etting-up-28-c-666.3ed03febaee8901fd048.js | 2 +- ...handling-7-d-4-f3f.ce2b82a97ac1f368a896.js | 2 +- ...nt-styling-293-cad.b3394daf132a97f6e2c2.js | 2 +- ...g-widgets-84-b-538.8591cd36dcfe1c65b14a.js | 2 +- ...ive-plugin-632-9db.ae1162899d532c588845.js | 2 +- ...-in-vscodebd-7-cec.a37b675eceeff564dcc8.js | 2 +- ...debuggingf-3-f-cf5.6a9f350b152e911795d0.js | 2 +- ...g-startedc-9-e-20f.058d1e127795274285bb.js | 2 +- ...dle-events-160-4b0.c02ea0616d11beafddb3.js | 2 +- ...des-images-991-065.914359cdc22f4b9051ef.js | 2 +- ...des-layoutdf-5-a64.bbcbc44e5156b817cb02.js | 2 +- ...networking-374-03e.17133e9de15be6e64aff.js | 2 +- ...chitecture-262-19e.245edae39f1ddac01224.js | 2 +- ...roll-view-76-e-87c.73c89be82bf124b2e125.js | 2 +- ...des-stylingfec-977.5838976a5f7313cc4c21.js | 2 +- ...s-tutoriale-53-6ab.3001eaf77a6eeaf068aa.js | 2 +- ...e-modules-3-ab-104.3bc40951d03693eaff7d.js | 2 +- docs/api/Component/index.html | 10 +- docs/api/EventWidget/index.html | 14 +- docs/api/FlexLayout/index.html | 14 +- docs/api/NodeLayout/index.html | 14 +- docs/api/NodeWidget/index.html | 14 +- docs/api/QAbstractScrollArea/index.html | 14 +- docs/api/QAbstractSlider/index.html | 14 +- docs/api/QApplication/index.html | 14 +- docs/api/QCheckBox/index.html | 14 +- docs/api/QClipboard/index.html | 14 +- docs/api/QCursor/index.html | 14 +- docs/api/QDial/index.html | 14 +- docs/api/QGridLayout/index.html | 10 +- docs/api/QIcon/index.html | 14 +- docs/api/QLabel/index.html | 14 +- docs/api/QLineEdit/index.html | 14 +- docs/api/QMainWindow/index.html | 14 +- docs/api/QPixmap/index.html | 14 +- docs/api/QPlainTextEdit/index.html | 10 +- docs/api/QProgressBar/index.html | 14 +- docs/api/QPushButton/index.html | 14 +- docs/api/QRadioButton/index.html | 14 +- docs/api/QScrollArea/index.html | 14 +- docs/api/QSpinBox/index.html | 14 +- docs/api/QTabWidget/index.html | 10 +- docs/api/QWidget/index.html | 14 +- docs/api/QtEnums/index.html | 14 +- docs/api/YogaWidget/index.html | 14 +- docs/api/process/index.html | 10 +- docs/api/synopsis/index.html | 10 +- docs/development/README/index.html | 14 +- docs/development/common_errors/index.html | 14 +- docs/development/debugging/index.html | 14 +- docs/development/getting-started/index.html | 14 +- docs/development/setting-up/index.html | 14 +- .../signal_and_event_handling/index.html | 14 +- docs/development/styling/index.html | 14 +- docs/development/wrapping_widgets/index.html | 14 +- docs/doc1/index.html | 10 +- docs/faq/index.html | 10 +- .../custom-nodegui-native-plugin/index.html | 14 +- docs/guides/debugging-in-vscode/index.html | 14 +- docs/guides/debugging/index.html | 14 +- docs/guides/getting-started/index.html | 14 +- docs/guides/handle-events/index.html | 14 +- docs/guides/images/index.html | 14 +- docs/guides/layout/index.html | 14 +- docs/guides/networking/index.html | 14 +- docs/guides/nodegui-architecture/index.html | 14 +- docs/guides/scroll-view/index.html | 14 +- docs/guides/styling/index.html | 14 +- docs/guides/tutorial/index.html | 14 +- .../using-native-node-modules/index.html | 14 +- docs/mdx/index.html | 10 +- ...ata---docs-150-2d6.050a67cf2c62a9aa0583.js | 1 - ...ata---docs-150-2d6.6e875209659be13f2970.js | 1 + index.html | 14 +- ...7422c98.js => main.3c22308242e28ead5e64.js | 2 +- ...nt-widget-39-a-9ea.34b0ce562deb2ec0ae92.js | 2 +- ...flex-layoutecf-540.7db8561c2c23b0d92b67.js | 2 +- ...e-layout-1-e-9-c15.192849fc91407c883037.js | 2 +- ...ode-widgeta-92-a4f.dc800d76f7062b65b2ed.js | 2 +- ...roll-area-59-d-279.378868b047b4e7fc733c.js | 2 +- ...ract-sliderdfa-ab7.73efd891b1be587b529b.js | 2 +- ...plicationc-1-d-8a4.dba24314be49483727c4.js | 2 +- ...-check-box-132-293.363eb2c9b2bdc95e76bb.js | 2 +- ...-clipboard-486-b21.5efa03bad36d45e62cbe.js | 2 +- ...i-q-cursor-887-11e.af1b21b104f06148557b.js | 2 +- ...-api-q-dialbfb-aef.e5ded32011b7d6927cdc.js | 2 +- ...pi-q-icone-6-d-093.1c4c72d6ff116744c296.js | 2 +- ...pi-q-label-165-210.1dba411adf86a92ae91f.js | 2 +- ...line-edit-13-f-b8a.df4fef6cc6001cbc07a7.js | 2 +- ...in-window-04-f-efb.699f6e2eb1ac78330311.js | 2 +- ...pi-q-pixmapfdf-820.087e26967d50eb06140d.js | 2 +- ...gress-bar-43-d-07e.a527e07318808cde454e.js | 2 +- ...sh-button-96-d-c92.b15a45966fb25f5f9917.js | 2 +- ...dio-button-367-f7c.11484c432455585a7ef3.js | 2 +- ...roll-area-46-a-96e.a5c480374e3f8b5fcea2.js | 2 +- ...q-spin-box-809-ae0.1fcda0244eebb91ff1bf.js | 2 +- ...i-q-widget-287-e6c.1a1aa4d570d756d63bb4.js | 2 +- ...i-qt-enums-423-cf9.fb1940e1fff15d344906.js | 2 +- ...ga-widget-95-c-f8b.bdbc70e8a3ba6a1d1808.js | 2 +- ...mon-errors-402-ef4.7ea9ca2120cf1ce1bce9.js | 2 +- ...-debuggingc-36-26a.3bf9d58aef0157443ea5.js | 2 +- ...g-started-89-b-c7a.863d1b0e22372d87282e.js | 2 +- ...setting-up-979-75f.8f9fc5a72c685e8d0e31.js | 2 +- ...handling-0-b-5-692.b16a5b795c3eef3ce5dc.js | 2 +- ...-styling-1-c-2-0d6.c1ae40b22fc3b93cd6fc.js | 2 +- ...ng-widgets-303-fb8.bfc04ad3ffc9ee24e861.js | 2 +- ...ve-plugin-92-b-12f.184a7a6a1f10e05c6c54.js | 2 +- ...-debugging-970-fb8.4834f7c20eceaaaee536.js | 2 +- ...-in-vscodebf-8-5b0.d26c0a02667ed3c9416d.js | 2 +- ...-started-2-b-7-1a4.cfc3dec8bc5f547dfbb8.js | 2 +- ...le-events-5-eb-540.61bb8e8da8eeda4cc040.js | 2 +- ...des-images-915-5ee.175b82933d61d3e5deb4.js | 2 +- ...des-layoutf-65-d7d.3bdf6df942a2264f480b.js | 2 +- ...-networkingdfd-ce0.332c039b051021fe2724.js | 2 +- ...chitecture-550-b82.72d9e2773d4e285ca973.js | 2 +- ...oll-view-9-a-9-2ac.f6039a7dd2d1fa4c6ca6.js | 2 +- ...s-styling-9-ea-213.d5570c147002ef8e6bfe.js | 2 +- ...tutorial-1-f-1-23b.4e417b24befa6a685ab5.js | 2 +- ...e-modules-31-f-551.0accd417ae132a661bdf.js | 2 +- ...js => runtime~main.7cbd6896b928f5c59d5f.js | 2 +- sitemap.xml | 2 +- 162 files changed, 956 insertions(+), 956 deletions(-) rename 1.9b3d421a0f44576af60f.js => 1.cc710091ea950da6d6a4.js (98%) rename 128.e842e81be02948779cd3.js => 128.275ddccdaf890a83df15.js (99%) rename component---site-src-pages-index-jsc-4-f-f99.505b05deaa8813d82ea6.js => component---site-src-pages-index-jsc-4-f-f99.e83a9966ed03cee3443f.js (66%) rename content---docs-api-event-widgetac-6-11b.a5cf10d898002591a15a.js => content---docs-api-event-widgetac-6-11b.b87fa94e0cd874003d59.js (98%) rename content---docs-api-flex-layout-3-dc-a16.315f47480f7da4c659d5.js => content---docs-api-flex-layout-3-dc-a16.d5ab9ac7b90d9ed88203.js (98%) rename content---docs-api-node-layoutd-28-11a.0dace98927a219b41b44.js => content---docs-api-node-layoutd-28-11a.f1324fa8676e4bf64b44.js (98%) rename content---docs-api-node-widget-080-a39.f21482facb1d1599ab0d.js => content---docs-api-node-widget-080-a39.e1d7ab6aab225b7fb2e0.js (99%) rename content---docs-api-q-abstract-scroll-area-3-e-6-d7f.a166f0f57747870e0ec4.js => content---docs-api-q-abstract-scroll-area-3-e-6-d7f.ce07722700328be8dfa5.js (98%) rename content---docs-api-q-abstract-slider-3-e-0-54d.1a794a8d8e995ff3f3bc.js => content---docs-api-q-abstract-slider-3-e-0-54d.b7e761ae58b36fe089f1.js (98%) rename content---docs-api-q-applicationd-3-e-0a3.6fa95396d7fbee9da501.js => content---docs-api-q-applicationd-3-e-0a3.039f8c83760f87eef546.js (98%) rename content---docs-api-q-check-boxd-9-b-c95.ecff488106003dd95b58.js => content---docs-api-q-check-boxd-9-b-c95.54af9594d82de2f1c65c.js (98%) rename content---docs-api-q-clipboard-69-d-2ef.189654ea9b37adaada9b.js => content---docs-api-q-clipboard-69-d-2ef.2facddd2ce7d03c7d364.js (98%) rename content---docs-api-q-cursor-362-d51.7f14f85b8c20c1f5cbf5.js => content---docs-api-q-cursor-362-d51.72e3b873d390560e1917.js (96%) rename content---docs-api-q-dial-80-b-99a.27cba315ea3b12bad153.js => content---docs-api-q-dial-80-b-99a.facd48a52570d2fd7472.js (98%) rename content---docs-api-q-icone-5-f-b0d.adda17d3830828da9941.js => content---docs-api-q-icone-5-f-b0d.016d00e28e5a87f3cf94.js (98%) rename content---docs-api-q-label-2-f-9-04b.1cdeec52a70db8ef7cc7.js => content---docs-api-q-label-2-f-9-04b.9f8c2e203f083cedfdf8.js (98%) rename content---docs-api-q-line-editea-0-53d.fc2fdf237ea0256a9bc8.js => content---docs-api-q-line-editea-0-53d.f606b13ced935ec46509.js (98%) rename content---docs-api-q-main-window-0-e-7-299.b20554db200b1aa6187b.js => content---docs-api-q-main-window-0-e-7-299.7a1bf20062e23ed6c510.js (98%) rename content---docs-api-q-pixmap-8-dd-cb2.3d67d264575cf7bec65c.js => content---docs-api-q-pixmap-8-dd-cb2.343e5d75db3125ddfa81.js (98%) rename content---docs-api-q-progress-barc-46-afe.9cecbb65c33965b0e7f5.js => content---docs-api-q-progress-barc-46-afe.2a5c874c4e33ecb7a2b8.js (98%) rename content---docs-api-q-push-button-06-c-73e.18589cda96f10dc9259f.js => content---docs-api-q-push-button-06-c-73e.9e1e6d8a0e7c17941efd.js (98%) rename content---docs-api-q-radio-buttone-54-746.c46ca58051e6e9f427b9.js => content---docs-api-q-radio-buttone-54-746.0eceb96f43e589853010.js (98%) rename content---docs-api-q-scroll-area-8-c-4-3fd.fd2d29a876286d824831.js => content---docs-api-q-scroll-area-8-c-4-3fd.fd580650b1d2ac9eee33.js (98%) rename content---docs-api-q-spin-box-1-ce-bfd.d62b3746ba69df91f4e1.js => content---docs-api-q-spin-box-1-ce-bfd.fc03e9106b39d9c9e23c.js (99%) delete mode 100644 content---docs-api-q-widget-04-a-59f.64a7421274fdc2d19599.js create mode 100644 content---docs-api-q-widget-04-a-59f.789a0ca241a0fb6ad49d.js delete mode 100644 content---docs-api-qt-enumsfd-7-cf3.0f709b0fb9cdc99aa034.js create mode 100644 content---docs-api-qt-enumsfd-7-cf3.1eed426a340d4c937b0a.js rename content---docs-api-yoga-widgeta-42-cc7.700c0279e1a09c33064e.js => content---docs-api-yoga-widgeta-42-cc7.d048cabe40533b903ea2.js (98%) rename content---docs-development-common-errorsf-15-a5b.7c3d3a75915f21303100.js => content---docs-development-common-errorsf-15-a5b.e038ab8ec8bf334300fb.js (96%) rename content---docs-development-debuggingb-54-9ed.373640edebafbcf8aeb7.js => content---docs-development-debuggingb-54-9ed.750c6b37dab541484a83.js (96%) rename content---docs-development-getting-started-139-387.861ce8c24b970f99c241.js => content---docs-development-getting-started-139-387.91c824c53e601bdee051.js (99%) rename content---docs-development-readme-149-437.115b92599d48666d0070.js => content---docs-development-readme-149-437.43394caf4d37e04eb78e.js (50%) rename content---docs-development-setting-up-28-c-666.7f499704e941e164e2f8.js => content---docs-development-setting-up-28-c-666.3ed03febaee8901fd048.js (98%) rename content---docs-development-signal-and-event-handling-7-d-4-f3f.7fe7b32c2a017187656e.js => content---docs-development-signal-and-event-handling-7-d-4-f3f.ce2b82a97ac1f368a896.js (99%) rename content---docs-development-styling-293-cad.57e29364f10ab314cd95.js => content---docs-development-styling-293-cad.b3394daf132a97f6e2c2.js (99%) rename content---docs-development-wrapping-widgets-84-b-538.9af215364af775c2b0eb.js => content---docs-development-wrapping-widgets-84-b-538.8591cd36dcfe1c65b14a.js (95%) rename content---docs-guides-custom-nodegui-native-plugin-632-9db.0fa0bcc582ed28185441.js => content---docs-guides-custom-nodegui-native-plugin-632-9db.ae1162899d532c588845.js (96%) rename content---docs-guides-debugging-in-vscodebd-7-cec.d799d1baeab3224d227d.js => content---docs-guides-debugging-in-vscodebd-7-cec.a37b675eceeff564dcc8.js (98%) rename content---docs-guides-debuggingf-3-f-cf5.17fd90b10558819cfd2c.js => content---docs-guides-debuggingf-3-f-cf5.6a9f350b152e911795d0.js (98%) rename content---docs-guides-getting-startedc-9-e-20f.6269380e01c70ace49d2.js => content---docs-guides-getting-startedc-9-e-20f.058d1e127795274285bb.js (98%) rename content---docs-guides-handle-events-160-4b0.ab24a11d869da8e962ad.js => content---docs-guides-handle-events-160-4b0.c02ea0616d11beafddb3.js (94%) rename content---docs-guides-images-991-065.03db921dafc991a62e06.js => content---docs-guides-images-991-065.914359cdc22f4b9051ef.js (95%) rename content---docs-guides-layoutdf-5-a64.63d6b1efae1bc7129dfc.js => content---docs-guides-layoutdf-5-a64.bbcbc44e5156b817cb02.js (99%) rename content---docs-guides-networking-374-03e.623d4b8cadf85b6d5cd8.js => content---docs-guides-networking-374-03e.17133e9de15be6e64aff.js (94%) rename content---docs-guides-nodegui-architecture-262-19e.8b39872b2c36c2047291.js => content---docs-guides-nodegui-architecture-262-19e.245edae39f1ddac01224.js (98%) rename content---docs-guides-scroll-view-76-e-87c.53cea080302f9bac3ecf.js => content---docs-guides-scroll-view-76-e-87c.73c89be82bf124b2e125.js (94%) rename content---docs-guides-stylingfec-977.abdc3277928e484ba13d.js => content---docs-guides-stylingfec-977.5838976a5f7313cc4c21.js (99%) rename content---docs-guides-tutoriale-53-6ab.fdd707e116c3ba754ce0.js => content---docs-guides-tutoriale-53-6ab.3001eaf77a6eeaf068aa.js (98%) rename content---docs-guides-using-native-node-modules-3-ab-104.b133066cc00c3c88720f.js => content---docs-guides-using-native-node-modules-3-ab-104.3bc40951d03693eaff7d.js (97%) delete mode 100644 docsMetadata---docs-150-2d6.050a67cf2c62a9aa0583.js create mode 100644 docsMetadata---docs-150-2d6.6e875209659be13f2970.js rename main.7a48394ebc7e47422c98.js => main.3c22308242e28ead5e64.js (85%) rename metadata---docs-api-event-widget-39-a-9ea.3ad7032e5b20d9cd659e.js => metadata---docs-api-event-widget-39-a-9ea.34b0ce562deb2ec0ae92.js (78%) rename metadata---docs-api-flex-layoutecf-540.51456ecddd02966bba3f.js => metadata---docs-api-flex-layoutecf-540.7db8561c2c23b0d92b67.js (81%) rename metadata---docs-api-node-layout-1-e-9-c15.ceab155a191e8fd6b3f8.js => metadata---docs-api-node-layout-1-e-9-c15.192849fc91407c883037.js (79%) rename metadata---docs-api-node-widgeta-92-a4f.4e8e4c2fcd8d294d5d33.js => metadata---docs-api-node-widgeta-92-a4f.dc800d76f7062b65b2ed.js (79%) rename metadata---docs-api-q-abstract-scroll-area-59-d-279.830987a049e659e13eb5.js => metadata---docs-api-q-abstract-scroll-area-59-d-279.378868b047b4e7fc733c.js (80%) rename metadata---docs-api-q-abstract-sliderdfa-ab7.a0fe110c4922ec9b163b.js => metadata---docs-api-q-abstract-sliderdfa-ab7.73efd891b1be587b529b.js (84%) rename metadata---docs-api-q-applicationc-1-d-8a4.7e8fedb5dc575b7eb1e4.js => metadata---docs-api-q-applicationc-1-d-8a4.dba24314be49483727c4.js (75%) rename metadata---docs-api-q-check-box-132-293.2bcffc7e89579f4aa0b8.js => metadata---docs-api-q-check-box-132-293.363eb2c9b2bdc95e76bb.js (74%) rename metadata---docs-api-q-clipboard-486-b21.541daebe97727e2fe521.js => metadata---docs-api-q-clipboard-486-b21.5efa03bad36d45e62cbe.js (80%) rename metadata---docs-api-q-cursor-887-11e.2565c6f4292aaac41bc4.js => metadata---docs-api-q-cursor-887-11e.af1b21b104f06148557b.js (82%) rename metadata---docs-api-q-dialbfb-aef.1833a299cf00db0c1dd6.js => metadata---docs-api-q-dialbfb-aef.e5ded32011b7d6927cdc.js (76%) rename metadata---docs-api-q-icone-6-d-093.ed4791cba37b43cdef97.js => metadata---docs-api-q-icone-6-d-093.1c4c72d6ff116744c296.js (72%) rename metadata---docs-api-q-label-165-210.945d42961dfc88295677.js => metadata---docs-api-q-label-165-210.1dba411adf86a92ae91f.js (78%) rename metadata---docs-api-q-line-edit-13-f-b8a.fca0ca35e830f02efb9d.js => metadata---docs-api-q-line-edit-13-f-b8a.df4fef6cc6001cbc07a7.js (72%) rename metadata---docs-api-q-main-window-04-f-efb.809594a718b59ff458c2.js => metadata---docs-api-q-main-window-04-f-efb.699f6e2eb1ac78330311.js (84%) rename metadata---docs-api-q-pixmapfdf-820.f23b49133b8588f3daec.js => metadata---docs-api-q-pixmapfdf-820.087e26967d50eb06140d.js (81%) rename metadata---docs-api-q-progress-bar-43-d-07e.08ee1613bacad45a5510.js => metadata---docs-api-q-progress-bar-43-d-07e.a527e07318808cde454e.js (81%) rename metadata---docs-api-q-push-button-96-d-c92.41704120c43af310af19.js => metadata---docs-api-q-push-button-96-d-c92.b15a45966fb25f5f9917.js (84%) rename metadata---docs-api-q-radio-button-367-f7c.e2815cee23af3e7e2c18.js => metadata---docs-api-q-radio-button-367-f7c.11484c432455585a7ef3.js (83%) rename metadata---docs-api-q-scroll-area-46-a-96e.4a0fe78cc1b07f72fe78.js => metadata---docs-api-q-scroll-area-46-a-96e.a5c480374e3f8b5fcea2.js (79%) rename metadata---docs-api-q-spin-box-809-ae0.055050a90b41e50bfa5a.js => metadata---docs-api-q-spin-box-809-ae0.1fcda0244eebb91ff1bf.js (72%) rename metadata---docs-api-q-widget-287-e6c.7f4508b8aa6a625ea9c9.js => metadata---docs-api-q-widget-287-e6c.1a1aa4d570d756d63bb4.js (75%) rename metadata---docs-api-qt-enums-423-cf9.0270a53b7868fcd4cd97.js => metadata---docs-api-qt-enums-423-cf9.fb1940e1fff15d344906.js (78%) rename metadata---docs-api-yoga-widget-95-c-f8b.525eb323f1249d3f9ae6.js => metadata---docs-api-yoga-widget-95-c-f8b.bdbc70e8a3ba6a1d1808.js (85%) rename metadata---docs-development-common-errors-402-ef4.6ddd37623148595ab0b3.js => metadata---docs-development-common-errors-402-ef4.7ea9ca2120cf1ce1bce9.js (65%) rename metadata---docs-development-debuggingc-36-26a.155c6553de08c9ea3273.js => metadata---docs-development-debuggingc-36-26a.3bf9d58aef0157443ea5.js (70%) rename metadata---docs-development-getting-started-89-b-c7a.84e0a166655b36efc010.js => metadata---docs-development-getting-started-89-b-c7a.863d1b0e22372d87282e.js (63%) rename metadata---docs-development-setting-up-979-75f.208e7e24443dbc777f36.js => metadata---docs-development-setting-up-979-75f.8f9fc5a72c685e8d0e31.js (65%) rename metadata---docs-development-signal-and-event-handling-0-b-5-692.55ae9e21c216869373d9.js => metadata---docs-development-signal-and-event-handling-0-b-5-692.b16a5b795c3eef3ce5dc.js (75%) rename metadata---docs-development-styling-1-c-2-0d6.cf646f298080dd60416c.js => metadata---docs-development-styling-1-c-2-0d6.c1ae40b22fc3b93cd6fc.js (70%) rename metadata---docs-development-wrapping-widgets-303-fb8.5e7e3a338110292682bd.js => metadata---docs-development-wrapping-widgets-303-fb8.bfc04ad3ffc9ee24e861.js (78%) rename metadata---docs-guides-custom-nodegui-native-plugin-92-b-12f.62211867bef7e4d21f3b.js => metadata---docs-guides-custom-nodegui-native-plugin-92-b-12f.184a7a6a1f10e05c6c54.js (78%) rename metadata---docs-guides-debugging-970-fb8.15de673c97f148cf7fdb.js => metadata---docs-guides-debugging-970-fb8.4834f7c20eceaaaee536.js (80%) rename metadata---docs-guides-debugging-in-vscodebf-8-5b0.b2a95b4e9c9da3fbb308.js => metadata---docs-guides-debugging-in-vscodebf-8-5b0.d26c0a02667ed3c9416d.js (82%) rename metadata---docs-guides-getting-started-2-b-7-1a4.0aedf083610e316d1470.js => metadata---docs-guides-getting-started-2-b-7-1a4.cfc3dec8bc5f547dfbb8.js (78%) rename metadata---docs-guides-handle-events-5-eb-540.1892b7b22980fc96357e.js => metadata---docs-guides-handle-events-5-eb-540.61bb8e8da8eeda4cc040.js (71%) rename metadata---docs-guides-images-915-5ee.10ba1ee39e0b960585b2.js => metadata---docs-guides-images-915-5ee.175b82933d61d3e5deb4.js (76%) rename metadata---docs-guides-layoutf-65-d7d.e307dcf56dcf4385338a.js => metadata---docs-guides-layoutf-65-d7d.3bdf6df942a2264f480b.js (80%) rename metadata---docs-guides-networkingdfd-ce0.e38d2bac3793e1a62e11.js => metadata---docs-guides-networkingdfd-ce0.332c039b051021fe2724.js (72%) rename metadata---docs-guides-nodegui-architecture-550-b82.7ea088d08ebcc99cbe05.js => metadata---docs-guides-nodegui-architecture-550-b82.72d9e2773d4e285ca973.js (87%) rename metadata---docs-guides-scroll-view-9-a-9-2ac.931ff1d4cdaec943a9e3.js => metadata---docs-guides-scroll-view-9-a-9-2ac.f6039a7dd2d1fa4c6ca6.js (72%) rename metadata---docs-guides-styling-9-ea-213.aed0dbfc3f7bae90bf3d.js => metadata---docs-guides-styling-9-ea-213.d5570c147002ef8e6bfe.js (90%) rename metadata---docs-guides-tutorial-1-f-1-23b.2ae8509926cea9815368.js => metadata---docs-guides-tutorial-1-f-1-23b.4e417b24befa6a685ab5.js (88%) rename metadata---docs-guides-using-native-node-modules-31-f-551.4f0e3fec075ffe7b94ed.js => metadata---docs-guides-using-native-node-modules-31-f-551.0accd417ae132a661bdf.js (82%) rename runtime~main.5401bcebbcd08e3b96ec.js => runtime~main.7cbd6896b928f5c59d5f.js (85%) diff --git a/1.9b3d421a0f44576af60f.js b/1.cc710091ea950da6d6a4.js similarity index 98% rename from 1.9b3d421a0f44576af60f.js rename to 1.cc710091ea950da6d6a4.js index b76d072ff..19780fb68 100644 --- a/1.9b3d421a0f44576af60f.js +++ b/1.cc710091ea950da6d6a4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{163:function(e,t,a){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var r=a(0),l=n(a(20));t.default=function(){return r.useContext(l.default)}},164:function(e,t,a){"use strict";var n=a(0),r=a.n(n),l=a(170),c=a(163),o=a.n(c),i=a(166),s=a.n(i),u=a(177),d=a.n(u),h=a(162),f=a(172),m=a.n(f),v=a(165),p=a.n(v),g=a(181),b=a.n(g);function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var a=[],n=!0,r=!1,l=void 0;try{for(var c,o=e[Symbol.iterator]();!(n=(c=o.next()).done)&&(a.push(c.value),!t||a.length!==t);n=!0);}catch(e){r=!0,l=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw l}}return a}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function y(){return(y=Object.assign||function(e){for(var t=1;t0&&r.a.createElement("div",{className:"row footer__links"},c.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e){return r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(h.a,C({className:"footer__link-item"},e,e.href?{target:"_blank",rel:"noopener noreferrer",href:e.href}:{to:s()(e.to)}),e.label))}))):null)}))),(i||n)&&r.a.createElement("div",{className:"text--center"},i&&i.src&&r.a.createElement("div",{className:"margin-bottom--sm"},r.a.createElement("img",{className:"footer__logo",alt:i.alt,src:i.src})),n)))};a(182);t.a=function(e){var t=o()().siteConfig,a=void 0===t?{}:t,n=a.favicon,c=a.tagline,i=a.title,u=a.themeConfig.image,d=a.url,h=e.children,f=e.title,m=e.noFooter,v=e.description,p=e.image,g=e.keywords,b=e.permalink,k=f||"".concat(i," · ").concat(c),y=p||u;return r.a.createElement(r.a.Fragment,null,r.a.createElement(l.a,null,r.a.createElement("meta",{charSet:"utf-8"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),r.a.createElement("meta",{name:"viewport",content:"width=device-width"}),k&&r.a.createElement("title",null,k),k&&r.a.createElement("meta",{property:"og:title",content:k}),n&&r.a.createElement("link",{rel:"shortcut icon",href:s()(n)}),v&&r.a.createElement("meta",{name:"description",content:v}),v&&r.a.createElement("meta",{property:"og:description",content:v}),g&&g.length&&r.a.createElement("meta",{property:"keywords",content:g}),y&&r.a.createElement("meta",{property:"og:image",content:d+s()(y)}),y&&r.a.createElement("meta",{property:"twitter:image",content:d+s()(y)}),y&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for ".concat(k)}),b&&r.a.createElement("meta",{property:"og:url",content:d+b}),r.a.createElement("meta",{name:"twitter:card",content:"summary"})),r.a.createElement(N,null),h,!m&&r.a.createElement(O,null))}},165:function(e,t,a){var n;!function(){"use strict";var a={}.hasOwnProperty;function r(){for(var e=[],t=0;tthis.startX&&(this.setState({checked:!0}),this.startX=t,this.activated=ta?this.previouslyChecked!==this.state.checked&&(this.setState({checked:!1}),this.previouslyChecked=this.state.checked,t.click()):this.startX-4=0||Object.prototype.hasOwnProperty.call(e,n)&&(a[n]=e[n]);return a}(t,["className","icons"])),l=(0,o.default)("react-toggle",{"react-toggle--checked":this.state.checked,"react-toggle--focus":this.state.hasFocus,"react-toggle--disabled":this.props.disabled},a);return c.default.createElement("div",{className:l,onClick:this.handleClick,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd},c.default.createElement("div",{className:"react-toggle-track"},c.default.createElement("div",{className:"react-toggle-track-check"},this.getIcon("checked")),c.default.createElement("div",{className:"react-toggle-track-x"},this.getIcon("unchecked"))),c.default.createElement("div",{className:"react-toggle-thumb"}),c.default.createElement("input",n({},r,{ref:function(t){e.input=t},onFocus:this.handleFocus,onBlur:this.handleBlur,className:"react-toggle-screenreader-only",type:"checkbox"})))}}]),t}(l.PureComponent);t.default=f,f.displayName="Toggle",f.defaultProps={icons:{checked:c.default.createElement(s.default,null),unchecked:c.default.createElement(u.default,null)}},f.propTypes={checked:i.default.bool,disabled:i.default.bool,defaultChecked:i.default.bool,onChange:i.default.func,onFocus:i.default.func,onBlur:i.default.func,className:i.default.string,name:i.default.string,value:i.default.string,id:i.default.string,"aria-labelledby":i.default.string,"aria-label":i.default.string,icons:i.default.oneOfType([i.default.bool,i.default.shape({checked:i.default.node,unchecked:i.default.node})])}},178:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=a(0),l=(n=r)&&n.__esModule?n:{default:n};t.default=function(){return l.default.createElement("svg",{width:"14",height:"11",viewBox:"0 0 14 11"},l.default.createElement("title",null,"switch-check"),l.default.createElement("path",{d:"M11.264 0L5.26 6.004 2.103 2.847 0 4.95l5.26 5.26 8.108-8.107L11.264 0",fill:"#fff",fillRule:"evenodd"}))}},179:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=a(0),l=(n=r)&&n.__esModule?n:{default:n};t.default=function(){return l.default.createElement("svg",{width:"10",height:"10",viewBox:"0 0 10 10"},l.default.createElement("title",null,"switch-x"),l.default.createElement("path",{d:"M9.9 2.12L7.78 0 4.95 2.828 2.12 0 0 2.12l2.83 2.83L0 7.776 2.123 9.9 4.95 7.07 7.78 9.9 9.9 7.776 7.072 4.95 9.9 2.12",fill:"#fff",fillRule:"evenodd"}))}},180:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.pointerCoord=function(e){if(e){var t=e.changedTouches;if(t&&t.length>0){var a=t[0];return{x:a.clientX,y:a.clientY}}var n=e.pageX;if(void 0!==n)return{x:n,y:e.pageY}}return{x:0,y:0}}},181:function(e,t,a){e.exports={displayOnlyInLargeViewport:"displayOnlyInLargeViewport_1gtM",toggle:"toggle_16vC",moon:"moon_1N64",sun:"sun_3CZP"}},182:function(e,t,a){}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{163:function(e,t,a){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var r=a(0),l=n(a(20));t.default=function(){return r.useContext(l.default)}},164:function(e,t,a){"use strict";var n=a(0),r=a.n(n),l=a(170),c=a(163),o=a.n(c),i=a(167),s=a.n(i),u=a(177),d=a.n(u),h=a(162),f=a(172),m=a.n(f),v=a(165),p=a.n(v),g=a(181),b=a.n(g);function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var a=[],n=!0,r=!1,l=void 0;try{for(var c,o=e[Symbol.iterator]();!(n=(c=o.next()).done)&&(a.push(c.value),!t||a.length!==t);n=!0);}catch(e){r=!0,l=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw l}}return a}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function y(){return(y=Object.assign||function(e){for(var t=1;t0&&r.a.createElement("div",{className:"row footer__links"},c.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e){return r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(h.a,C({className:"footer__link-item"},e,e.href?{target:"_blank",rel:"noopener noreferrer",href:e.href}:{to:s()(e.to)}),e.label))}))):null)}))),(i||n)&&r.a.createElement("div",{className:"text--center"},i&&i.src&&r.a.createElement("div",{className:"margin-bottom--sm"},r.a.createElement("img",{className:"footer__logo",alt:i.alt,src:i.src})),n)))};a(182);t.a=function(e){var t=o()().siteConfig,a=void 0===t?{}:t,n=a.favicon,c=a.tagline,i=a.title,u=a.themeConfig.image,d=a.url,h=e.children,f=e.title,m=e.noFooter,v=e.description,p=e.image,g=e.keywords,b=e.permalink,k=f||"".concat(i," · ").concat(c),y=p||u;return r.a.createElement(r.a.Fragment,null,r.a.createElement(l.a,null,r.a.createElement("meta",{charSet:"utf-8"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),r.a.createElement("meta",{name:"viewport",content:"width=device-width"}),k&&r.a.createElement("title",null,k),k&&r.a.createElement("meta",{property:"og:title",content:k}),n&&r.a.createElement("link",{rel:"shortcut icon",href:s()(n)}),v&&r.a.createElement("meta",{name:"description",content:v}),v&&r.a.createElement("meta",{property:"og:description",content:v}),g&&g.length&&r.a.createElement("meta",{property:"keywords",content:g}),y&&r.a.createElement("meta",{property:"og:image",content:d+s()(y)}),y&&r.a.createElement("meta",{property:"twitter:image",content:d+s()(y)}),y&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for ".concat(k)}),b&&r.a.createElement("meta",{property:"og:url",content:d+b}),r.a.createElement("meta",{name:"twitter:card",content:"summary"})),r.a.createElement(N,null),h,!m&&r.a.createElement(O,null))}},165:function(e,t,a){var n;!function(){"use strict";var a={}.hasOwnProperty;function r(){for(var e=[],t=0;tthis.startX&&(this.setState({checked:!0}),this.startX=t,this.activated=ta?this.previouslyChecked!==this.state.checked&&(this.setState({checked:!1}),this.previouslyChecked=this.state.checked,t.click()):this.startX-4=0||Object.prototype.hasOwnProperty.call(e,n)&&(a[n]=e[n]);return a}(t,["className","icons"])),l=(0,o.default)("react-toggle",{"react-toggle--checked":this.state.checked,"react-toggle--focus":this.state.hasFocus,"react-toggle--disabled":this.props.disabled},a);return c.default.createElement("div",{className:l,onClick:this.handleClick,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd},c.default.createElement("div",{className:"react-toggle-track"},c.default.createElement("div",{className:"react-toggle-track-check"},this.getIcon("checked")),c.default.createElement("div",{className:"react-toggle-track-x"},this.getIcon("unchecked"))),c.default.createElement("div",{className:"react-toggle-thumb"}),c.default.createElement("input",n({},r,{ref:function(t){e.input=t},onFocus:this.handleFocus,onBlur:this.handleBlur,className:"react-toggle-screenreader-only",type:"checkbox"})))}}]),t}(l.PureComponent);t.default=f,f.displayName="Toggle",f.defaultProps={icons:{checked:c.default.createElement(s.default,null),unchecked:c.default.createElement(u.default,null)}},f.propTypes={checked:i.default.bool,disabled:i.default.bool,defaultChecked:i.default.bool,onChange:i.default.func,onFocus:i.default.func,onBlur:i.default.func,className:i.default.string,name:i.default.string,value:i.default.string,id:i.default.string,"aria-labelledby":i.default.string,"aria-label":i.default.string,icons:i.default.oneOfType([i.default.bool,i.default.shape({checked:i.default.node,unchecked:i.default.node})])}},178:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=a(0),l=(n=r)&&n.__esModule?n:{default:n};t.default=function(){return l.default.createElement("svg",{width:"14",height:"11",viewBox:"0 0 14 11"},l.default.createElement("title",null,"switch-check"),l.default.createElement("path",{d:"M11.264 0L5.26 6.004 2.103 2.847 0 4.95l5.26 5.26 8.108-8.107L11.264 0",fill:"#fff",fillRule:"evenodd"}))}},179:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=a(0),l=(n=r)&&n.__esModule?n:{default:n};t.default=function(){return l.default.createElement("svg",{width:"10",height:"10",viewBox:"0 0 10 10"},l.default.createElement("title",null,"switch-x"),l.default.createElement("path",{d:"M9.9 2.12L7.78 0 4.95 2.828 2.12 0 0 2.12l2.83 2.83L0 7.776 2.123 9.9 4.95 7.07 7.78 9.9 9.9 7.776 7.072 4.95 9.9 2.12",fill:"#fff",fillRule:"evenodd"}))}},180:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.pointerCoord=function(e){if(e){var t=e.changedTouches;if(t&&t.length>0){var a=t[0];return{x:a.clientX,y:a.clientY}}var n=e.pageX;if(void 0!==n)return{x:n,y:e.pageY}}return{x:0,y:0}}},181:function(e,t,a){e.exports={displayOnlyInLargeViewport:"displayOnlyInLargeViewport_1gtM",toggle:"toggle_16vC",moon:"moon_1N64",sun:"sun_3CZP"}},182:function(e,t,a){}}]); \ No newline at end of file diff --git a/128.e842e81be02948779cd3.js b/128.275ddccdaf890a83df15.js similarity index 99% rename from 128.e842e81be02948779cd3.js rename to 128.275ddccdaf890a83df15.js index 3cc2ccf2c..e5e1d438d 100644 --- a/128.e842e81be02948779cd3.js +++ b/128.275ddccdaf890a83df15.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[128],{167:function(e,t,r){"use strict";(function(e){var n=r(184),a=r.n(n),o=r(185),i=r.n(o),s=r(0),c=r.n(s),l=r(186),u=r(18),f=r(187),d=(r(7),r(198)),p=r(199),h=function(e,t){for(var r=[e[0]],n=0,a=t.length;n=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r},k=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},C=function(e){return"object"===(void 0===e?"undefined":m(e))&&e.constructor===Object},A=Object.freeze([]),x=Object.freeze({});function S(e){return"function"==typeof e}function O(e){return e.displayName||e.name||"Component"}function I(e){return e&&"string"==typeof e.styledComponentId}var j=void 0!==e&&(e.env.REACT_APP_SC_ATTR||e.env.SC_ATTR)||"data-styled",T="undefined"!=typeof window&&"HTMLElement"in window,E="boolean"==typeof SC_DISABLE_SPEEDY&&SC_DISABLE_SPEEDY||void 0!==e&&(e.env.REACT_APP_SC_DISABLE_SPEEDY||e.env.SC_DISABLE_SPEEDY)||!1;var R=function(e){function t(r){g(this,t);for(var n=arguments.length,a=Array(n>1?n-1:0),o=1;o0?" Additional arguments: "+a.join(", "):"")));return k(i)}return b(t,e),t}(Error),P=/^[^\S\n]*?\/\* sc-component-id:\s*(\S+)\s+\*\//gm,N=function(e){var t=""+(e||""),r=[];return t.replace(P,(function(e,t,n){return r.push({componentId:t,matchIndex:n}),e})),r.map((function(e,n){var a=e.componentId,o=e.matchIndex,i=r[n+1];return{componentId:a,cssFromDOM:i?t.slice(o,i.matchIndex):t.slice(o)}}))},M=/^\s*\/\/.*$/gm,L=new a.a({global:!1,cascade:!0,keyframe:!1,prefix:!1,compress:!1,semicolon:!0}),D=new a.a({global:!1,cascade:!0,keyframe:!1,prefix:!0,compress:!1,semicolon:!1}),$=[],F=function(e){if(-2===e){var t=$;return $=[],t}},_=i()((function(e){$.push(e)})),H=void 0,z=void 0,B=void 0,G=function(e,t,r){return t>0&&-1!==r.slice(0,t).indexOf(z)&&r.slice(t-z.length,t)!==z?"."+H:e};D.use([function(e,t,r){2===e&&r.length&&r[0].lastIndexOf(z)>0&&(r[0]=r[0].replace(B,G))},_,F]),L.use([_,F]);var W=function(e){return L("",e)};function q(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"&",a=e.join("").replace(M,""),o=t&&r?r+" "+t+" { "+a+" }":a;return H=n,z=t,B=new RegExp("\\"+z+"\\b","g"),D(r||!t?"":t,o)}var U=function(){return r.nc},Y=function(e,t,r){r&&((e[t]||(e[t]=Object.create(null)))[r]=!0)},V=function(e,t){e[t]=Object.create(null)},X=function(e){return function(t,r){return void 0!==e[t]&&e[t][r]}},J=function(e){var t="";for(var r in e)t+=Object.keys(e[r]).join(" ")+" ";return t.trim()},Z=function(e){if(e.sheet)return e.sheet;for(var t=e.ownerDocument.styleSheets.length,r=0;r"+e()+""}},re=function(e,t){return function(){var r,n=((r={})[j]=J(t),r["data-styled-version"]="4.4.0",r),a=U();return a&&(n.nonce=a),c.a.createElement("style",y({},n,{dangerouslySetInnerHTML:{__html:e()}}))}},ne=function(e){return function(){return Object.keys(e)}},ae=function(e,t){return e.createTextNode(Q(t))},oe=function e(t,r){var n=void 0===t?Object.create(null):t,a=void 0===r?Object.create(null):r,o=function(e){var t=a[e];return void 0!==t?t:a[e]=[""]},i=function(){var e="";for(var t in a){var r=a[t][0];r&&(e+=Q(t)+r)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var r in e)t[r]=y({},e[r]);return t}(n),r=Object.create(null);for(var o in a)r[o]=[a[o][0]];return e(t,r)},css:i,getIds:ne(a),hasNameForId:X(n),insertMarker:o,insertRules:function(e,t,r){o(e)[0]+=t.join(" "),Y(n,e,r)},removeRules:function(e){var t=a[e];void 0!==t&&(t[0]="",V(n,e))},sealed:!1,styleTag:null,toElement:re(i,n),toHTML:te(i,n)}},ie=function(e,t,r,n,a){if(T&&!r){var o=function(e,t,r){var n=document;e?n=e.ownerDocument:t&&(n=t.ownerDocument);var a=n.createElement("style");a.setAttribute(j,""),a.setAttribute("data-styled-version","4.4.0");var o=U();if(o&&a.setAttribute("nonce",o),a.appendChild(n.createTextNode("")),e&&!t)e.appendChild(a);else{if(!t||!e||!t.parentNode)throw new R(6);t.parentNode.insertBefore(a,r?t:t.nextSibling)}return a}(e,t,n);return E?function(e,t){var r=Object.create(null),n=Object.create(null),a=void 0!==t,o=!1,i=function(t){var a=n[t];return void 0!==a?a:(n[t]=ae(e.ownerDocument,t),e.appendChild(n[t]),r[t]=Object.create(null),n[t])},s=function(){var e="";for(var t in n)e+=n[t].data;return e};return{clone:function(){throw new R(5)},css:s,getIds:ne(n),hasNameForId:X(r),insertMarker:i,insertRules:function(e,n,s){for(var c=i(e),l=[],u=n.length,f=0;f0&&(o=!0,t().insertRules(e+"-import",l))},removeRules:function(i){var s=n[i];if(void 0!==s){var c=ae(e.ownerDocument,i);e.replaceChild(c,s),n[i]=c,V(r,i),a&&o&&t().removeRules(i+"-import")}},sealed:!1,styleTag:e,toElement:re(s,r),toHTML:te(s,r)}}(o,a):function(e,t){var r=Object.create(null),n=Object.create(null),a=[],o=void 0!==t,i=!1,s=function(e){var t=n[e];return void 0!==t?t:(n[e]=a.length,a.push(0),V(r,e),n[e])},c=function(){var t=Z(e).cssRules,r="";for(var o in n){r+=Q(o);for(var i=n[o],s=ee(a,i),c=s-a[i];c0&&(i=!0,t().insertRules(n+"-import",h)),a[u]+=p,Y(r,n,l)},removeRules:function(s){var c=n[s];if(void 0!==c&&!1!==e.isConnected){var l=a[c];!function(e,t,r){for(var n=t-r,a=t;a>n;a-=1)e.deleteRule(a)}(Z(e),ee(a,c)-1,l),a[c]=0,V(r,s),o&&i&&t().removeRules(s+"-import")}},sealed:!1,styleTag:e,toElement:re(c,r),toHTML:te(c,r)}}(o,a)}return oe()},se=/\s+/,ce=void 0;ce=T?E?40:1e3:-1;var le=0,ue=void 0,fe=function(){function e(){var t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:T?document.head:null,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];g(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var r=t.tags[0];return t.importRuleTag=ie(t.target,r?r.styleTag:null,t.forceServer,!0)},le+=1,this.id=le,this.forceServer=n,this.target=n?null:r,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!T||this.forceServer)return this;var e=[],t=[],r=!1,n=document.querySelectorAll("style["+j+'][data-styled-version="4.4.0"]'),a=n.length;if(!a)return this;for(var o=0;o0&&void 0!==arguments[0]&&arguments[0];ue=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var r=e.getIds(),n=e.clone(),a=0;a1?t-1:0),n=1;n=4;)t=1540483477*(65535&(t=255&e.charCodeAt(a)|(255&e.charCodeAt(++a))<<8|(255&e.charCodeAt(++a))<<16|(255&e.charCodeAt(++a))<<24))+((1540483477*(t>>>16)&65535)<<16),n=1540483477*(65535&n)+((1540483477*(n>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),r-=4,++a;switch(r){case 3:n^=(255&e.charCodeAt(a+2))<<16;case 2:n^=(255&e.charCodeAt(a+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(a)))+((1540483477*(n>>>16)&65535)<<16)}return((n=1540483477*(65535&(n^=n>>>13))+((1540483477*(n>>>16)&65535)<<16))^n>>>15)>>>0}var ke=52,Ce=function(e){return String.fromCharCode(e+(e>25?39:97))};function Ae(e){var t="",r=void 0;for(r=e;r>ke;r=Math.floor(r/ke))t=Ce(r%ke)+t;return Ce(r%ke)+t}function xe(e,t){for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:x,n=!!r&&e.theme===r.theme,a=e.theme&&!n?e.theme:t||r.theme;return a},Te=/[[\].#*$><+~=|^:(),"'`-]+/g,Ee=/(^-|-$)/g;function Re(e){return e.replace(Te,"-").replace(Ee,"")}function Pe(e){return"string"==typeof e&&!0}var Ne={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Me={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Le=((Se={})[u.ForwardRef]={$$typeof:!0,render:!0},Se),De=Object.defineProperty,$e=Object.getOwnPropertyNames,Fe=Object.getOwnPropertySymbols,_e=void 0===Fe?function(){return[]}:Fe,He=Object.getOwnPropertyDescriptor,ze=Object.getPrototypeOf,Be=Object.prototype,Ge=Array.prototype;function We(e,t,r){if("string"!=typeof t){var n=ze(t);n&&n!==Be&&We(e,n,r);for(var a=Ge.concat($e(t),_e(t)),o=Le[e.$$typeof]||Ne,i=Le[t.$$typeof]||Ne,s=a.length,c=void 0,l=void 0;s--;)if(l=a[s],!(Me[l]||r&&r[l]||i&&i[l]||o&&o[l])&&(c=He(t,l)))try{De(e,l,c)}catch(e){}return e}return e}var qe=Object(s.createContext)(),Ue=qe.Consumer,Ye=(function(e){function t(r){g(this,t);var n=k(this,e.call(this,r));return n.getContext=Object(f.a)(n.getContext.bind(n)),n.renderInner=n.renderInner.bind(n),n}b(t,e),t.prototype.render=function(){return this.props.children?c.a.createElement(qe.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return c.a.createElement(qe.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(S(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":m(e)))throw new R(8);return y({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)}}(s.Component),function(){function e(){g(this,e),this.masterSheet=fe.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new R(2);return c.a.createElement(Xe,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new R(3)}}(),Object(s.createContext)()),Ve=Ye.Consumer,Xe=function(e){function t(r){g(this,t);var n=k(this,e.call(this,r));return n.getContext=Object(f.a)(n.getContext),n}return b(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new fe(t);throw new R(4)},t.prototype.render=function(){var e=this.props,t=e.children,r=e.sheet,n=e.target;return c.a.createElement(Ye.Provider,{value:this.getContext(r,n)},t)},t}(s.Component),Je={};var Ze=function(e){function t(){g(this,t);var r=k(this,e.call(this));return r.attrs={},r.renderOuter=r.renderOuter.bind(r),r.renderInner=r.renderInner.bind(r),r}return b(t,e),t.prototype.render=function(){return c.a.createElement(Ve,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:fe.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():c.a.createElement(Ue,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,r=t.componentStyle,n=t.defaultProps,a=(t.displayName,t.foldedComponentIds),o=t.styledComponentId,i=t.target,c=(t.usesTheme,void 0),l=void 0;r.isStatic?c=this.generateAndInjectStyles(x,this.props):(l=je(this.props,e,n),c=this.generateAndInjectStyles(l||x,this.props));var u=this.props.as||this.attrs.as||i,f=Pe(u),p={},h=y({},this.props,this.attrs),m=void 0;for(m in h)"forwardedComponent"!==m&&"as"!==m&&("forwardedRef"===m?p.ref=h[m]:"forwardedAs"===m?p.as=h[m]:f&&!Object(d.a)(m)||(p[m]=h[m]));return this.props.style&&this.attrs.style&&(p.style=y({},this.attrs.style,this.props.style)),p.className=Array.prototype.concat(a,o,c!==o?c:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),Object(s.createElement)(u,p)},t.prototype.buildExecutionContext=function(e,t,r){var n=this,a=y({},t,{theme:e});return r.length?(this.attrs={},r.forEach((function(e){var t,r=e,o=!1,i=void 0,s=void 0;for(s in S(r)&&(r=r(a),o=!0),r)i=r[s],o||!S(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||I(i)||(i=i(a)),n.attrs[s]=i,a[s]=i})),a):a},t.prototype.generateAndInjectStyles=function(e,t){var r=t.forwardedComponent,n=r.attrs,a=r.componentStyle;r.warnTooManyClasses;return a.isStatic&&!n.length?a.generateAndInjectStyles(x,this.styleSheet):a.generateAndInjectStyles(this.buildExecutionContext(e,t,n),this.styleSheet)},t}(s.Component);function Ke(e,t,r){var n=I(e),a=!Pe(e),o=t.displayName,i=void 0===o?function(e){return Pe(e)?"styled."+e:"Styled("+O(e)+")"}(e):o,s=t.componentId,l=void 0===s?function(e,t,r){var n="string"!=typeof t?"sc":Re(t),a=(Je[n]||0)+1;Je[n]=a;var o=n+"-"+e.generateName(n+a);return r?r+"-"+o:o}(Ie,t.displayName,t.parentComponentId):s,u=t.ParentComponent,f=void 0===u?Ze:u,d=t.attrs,h=void 0===d?A:d,m=t.displayName&&t.componentId?Re(t.displayName)+"-"+t.componentId:t.componentId||l,g=n&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,v=new Ie(n?e.componentStyle.rules.concat(r):r,g,m),b=void 0,k=function(e,t){return c.a.createElement(f,y({},e,{forwardedComponent:b,forwardedRef:t}))};return k.displayName=i,(b=c.a.forwardRef(k)).displayName=i,b.attrs=g,b.componentStyle=v,b.foldedComponentIds=n?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):A,b.styledComponentId=m,b.target=n?e.target:e,b.withComponent=function(e){var n=t.componentId,a=w(t,["componentId"]),o=n&&n+"-"+(Pe(e)?e:Re(O(e)));return Ke(e,y({},a,{attrs:g,componentId:o,ParentComponent:f}),r)},Object.defineProperty(b,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=n?Object(p.a)(e.defaultProps,t):t}}),b.toString=function(){return"."+b.styledComponentId},a&&We(b,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),b}var Qe=function(e){return function e(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:x;if(!Object(u.isValidElementType)(r))throw new R(1,String(r));var a=function(){return t(r,n,be.apply(void 0,arguments))};return a.withConfig=function(a){return e(t,r,y({},n,a))},a.attrs=function(a){return e(t,r,y({},n,{attrs:Array.prototype.concat(n.attrs,a).filter(Boolean)}))},a}(Ke,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){Qe[e]=Qe(e)}));!function(){function e(t,r){g(this,e),this.rules=t,this.componentId=r,this.isStatic=xe(t,A),fe.master.hasId(r)||fe.master.deferredInject(r,[])}e.prototype.createStyles=function(e,t){var r=q(ye(this.rules,e,t),"");t.inject(this.componentId,r)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();T&&(window.scCGSHMRCache={});t.a=Qe}).call(this,r(183))},183:function(e,t){var r,n,a=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===o||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:o}catch(e){r=o}try{n="function"==typeof clearTimeout?clearTimeout:i}catch(e){n=i}}();var c,l=[],u=!1,f=-1;function d(){u&&c&&(u=!1,c.length?l=c.concat(l):f=-1,l.length&&p())}function p(){if(!u){var e=s(d);u=!0;for(var t=l.length;t;){for(c=l,l=[];++f1)for(var r=1;r])/g,y=/([[}=:>])\s+/g,b=/(\{[^{]+?);(?=\})/g,w=/\s{2,}/g,k=/([^\(])(:+) */g,C=/[svh]\w+-[tblr]{2}/,A=/\(\s*(.*)\s*\)/g,x=/([\s\S]*?);/g,S=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\w-]+)[^]*/,I=/stretch|:\s*\w+\-(?:conte|avail)/,j=/([^-])(image-set\()/,T="-webkit-",E="-moz-",R="-ms-",P=59,N=125,M=123,L=40,D=41,$=91,F=93,_=10,H=13,z=9,B=64,G=32,W=38,q=45,U=95,Y=42,V=44,X=58,J=39,Z=34,K=47,Q=62,ee=43,te=126,re=0,ne=12,ae=11,oe=107,ie=109,se=115,ce=112,le=111,ue=105,fe=99,de=100,pe=112,he=1,me=1,ge=0,ve=1,ye=1,be=1,we=0,ke=0,Ce=0,Ae=[],xe=[],Se=0,Oe=null,Ie=-2,je=-1,Te=0,Ee=1,Re=2,Pe=3,Ne=0,Me=1,Le="",De="",$e="";function Fe(e,t,a,o,i){for(var s,c,u=0,f=0,d=0,p=0,v=0,y=0,b=0,w=0,C=0,x=0,S=0,O=0,I=0,j=0,U=0,we=0,xe=0,Oe=0,Ie=0,je=a.length,He=je-1,Ue="",Ye="",Ve="",Xe="",Je="",Ze="";U0&&(Ye=Ye.replace(n,"")),Ye.trim().length>0)){switch(b){case G:case z:case P:case H:case _:break;default:Ye+=a.charAt(U)}b=P}if(1===xe)switch(b){case M:case N:case P:case Z:case J:case L:case D:case V:xe=0;case z:case H:case _:case G:break;default:for(xe=0,Ie=U,v=b,U--,b=P;Ie0&&(++U,b=v);case M:Ie=je}}switch(b){case M:for(v=(Ye=Ye.trim()).charCodeAt(0),S=1,Ie=++U;U0&&(Ye=Ye.replace(n,"")),y=Ye.charCodeAt(1)){case de:case ie:case se:case q:s=t;break;default:s=Ae}if(Ie=(Ve=Fe(t,s,Ve,y,i+1)).length,Ce>0&&0===Ie&&(Ie=Ye.length),Se>0&&(s=_e(Ae,Ye,Oe),c=We(Pe,Ve,s,t,me,he,Ie,y,i,o),Ye=s.join(""),void 0!==c&&0===(Ie=(Ve=c.trim()).length)&&(y=0,Ve="")),Ie>0)switch(y){case se:Ye=Ye.replace(A,Ge);case de:case ie:case q:Ve=Ye+"{"+Ve+"}";break;case oe:Ve=(Ye=Ye.replace(h,"$1 $2"+(Me>0?Le:"")))+"{"+Ve+"}",Ve=1===ye||2===ye&&Be("@"+Ve,3)?"@"+T+Ve+"@"+Ve:"@"+Ve;break;default:Ve=Ye+Ve,o===pe&&(Xe+=Ve,Ve="")}else Ve="";break;default:Ve=Fe(t,_e(t,Ye,Oe),Ve,o,i+1)}Je+=Ve,O=0,xe=0,j=0,we=0,Oe=0,I=0,Ye="",Ve="",b=a.charCodeAt(++U);break;case N:case P:if((Ie=(Ye=(we>0?Ye.replace(n,""):Ye).trim()).length)>1)switch(0===j&&((v=Ye.charCodeAt(0))===q||v>96&&v<123)&&(Ie=(Ye=Ye.replace(" ",":")).length),Se>0&&void 0!==(c=We(Ee,Ye,t,e,me,he,Xe.length,o,i,o))&&0===(Ie=(Ye=c.trim()).length)&&(Ye="\0\0"),v=Ye.charCodeAt(0),y=Ye.charCodeAt(1),v){case re:break;case B:if(y===ue||y===fe){Ze+=Ye+a.charAt(U);break}default:if(Ye.charCodeAt(Ie-1)===X)break;Xe+=ze(Ye,v,y,Ye.charCodeAt(2))}O=0,xe=0,j=0,we=0,Oe=0,Ye="",b=a.charCodeAt(++U)}}switch(b){case H:case _:if(f+p+d+u+ke===0)switch(x){case D:case J:case Z:case B:case te:case Q:case Y:case ee:case K:case q:case X:case V:case P:case M:case N:break;default:j>0&&(xe=1)}f===K?f=0:ve+O===0&&o!==oe&&Ye.length>0&&(we=1,Ye+="\0"),Se*Ne>0&&We(Te,Ye,t,e,me,he,Xe.length,o,i,o),he=1,me++;break;case P:case N:if(f+p+d+u===0){he++;break}default:switch(he++,Ue=a.charAt(U),b){case z:case G:if(p+u+f===0)switch(w){case V:case X:case z:case G:Ue="";break;default:b!==G&&(Ue=" ")}break;case re:Ue="\\0";break;case ne:Ue="\\f";break;case ae:Ue="\\v";break;case W:p+f+u===0&&ve>0&&(Oe=1,we=1,Ue="\f"+Ue);break;case 108:if(p+f+u+ge===0&&j>0)switch(U-j){case 2:w===ce&&a.charCodeAt(U-3)===X&&(ge=w);case 8:C===le&&(ge=C)}break;case X:p+f+u===0&&(j=U);break;case V:f+d+p+u===0&&(we=1,Ue+="\r");break;case Z:case J:0===f&&(p=p===b?0:0===p?b:p);break;case $:p+f+d===0&&u++;break;case F:p+f+d===0&&u--;break;case D:p+f+u===0&&d--;break;case L:if(p+f+u===0){if(0===O)switch(2*w+3*C){case 533:break;default:S=0,O=1}d++}break;case B:f+d+p+u+j+I===0&&(I=1);break;case Y:case K:if(p+u+d>0)break;switch(f){case 0:switch(2*b+3*a.charCodeAt(U+1)){case 235:f=K;break;case 220:Ie=U,f=Y}break;case Y:b===K&&w===Y&&Ie+2!==U&&(33===a.charCodeAt(Ie+2)&&(Xe+=a.substring(Ie,U+1)),Ue="",f=0)}}if(0===f){if(ve+p+u+I===0&&o!==oe&&b!==P)switch(b){case V:case te:case Q:case ee:case D:case L:if(0===O){switch(w){case z:case G:case _:case H:Ue+="\0";break;default:Ue="\0"+Ue+(b===V?"":"\0")}we=1}else switch(b){case L:j+7===U&&108===w&&(j=0),O=++S;break;case D:0==(O=--S)&&(we=1,Ue+="\0")}break;case z:case G:switch(w){case re:case M:case N:case P:case V:case ne:case z:case G:case _:case H:break;default:0===O&&(we=1,Ue+="\0")}}Ye+=Ue,b!==G&&b!==z&&(x=b)}}C=w,w=b,U++}if(Ie=Xe.length,Ce>0&&0===Ie&&0===Je.length&&0===t[0].length==0&&(o!==ie||1===t.length&&(ve>0?De:$e)===t[0])&&(Ie=t.join(",").length+2),Ie>0){if(s=0===ve&&o!==oe?function(e){for(var t,r,a=0,o=e.length,i=Array(o);a1)){if(d=c.charCodeAt(c.length-1),p=r.charCodeAt(0),t="",0!==u)switch(d){case Y:case te:case Q:case ee:case G:case L:break;default:t=" "}switch(p){case W:r=t+De;case te:case Q:case ee:case G:case D:case L:break;case $:r=t+r+De;break;case X:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(be>0){r=t+r.substring(8,f-1);break}default:(u<1||s[u-1].length<1)&&(r=t+De+r)}break;case V:t="";default:r=f>1&&r.indexOf(":")>0?t+r.replace(k,"$1"+De+"$2"):t+r+De}c+=r}i[a]=c.replace(n,"").trim()}return i}(t):t,Se>0&&void 0!==(c=We(Re,Xe,s,e,me,he,Ie,o,i,o))&&0===(Xe=c).length)return Ze+Xe+Je;if(Xe=s.join(",")+"{"+Xe+"}",ye*ge!=0){switch(2!==ye||Be(Xe,2)||(ge=0),ge){case le:Xe=Xe.replace(g,":"+E+"$1")+Xe;break;case ce:Xe=Xe.replace(m,"::"+T+"input-$1")+Xe.replace(m,"::"+E+"$1")+Xe.replace(m,":"+R+"input-$1")+Xe}ge=0}}return Ze+Xe+Je}function _e(e,t,r){var n=t.trim().split(u),a=n,o=n.length,i=e.length;switch(i){case 0:case 1:for(var s=0,c=0===i?"":e[0]+" ";s0&&ve>0)return a.replace(d,"$1").replace(f,"$1"+$e);break;default:return e.trim()+a.replace(f,"$1"+e.trim())}default:if(r*ve>0&&a.indexOf("\f")>0)return a.replace(f,(e.charCodeAt(0)===X?"":"$1")+e.trim())}return e+a}function ze(e,t,r,n){var l,u=0,f=e+";",d=2*t+3*r+4*n;if(944===d)return function(e){var t=e.length,r=e.indexOf(":",9)+1,n=e.substring(0,r).trim(),a=e.substring(r,t-1).trim();switch(e.charCodeAt(9)*Me){case 0:break;case q:if(110!==e.charCodeAt(10))break;default:var o=a.split((a="",s)),i=0;for(r=0,t=o.length;iB&&f<90||f>96&&f<123||f===U||f===q&&l.charCodeAt(1)!==q))switch(isNaN(parseFloat(l))+(-1!==l.indexOf("("))){case 1:switch(l){case"infinite":case"alternate":case"backwards":case"running":case"normal":case"forwards":case"both":case"none":case"linear":case"ease":case"ease-in":case"ease-out":case"ease-in-out":case"paused":case"reverse":case"alternate-reverse":case"inherit":case"initial":case"unset":case"step-start":case"step-end":break;default:l+=Le}}u[r++]=l}a+=(0===i?"":",")+u.join(" ")}}return a=n+a+";",1===ye||2===ye&&Be(a,1)?T+a+a:a}(f);if(0===ye||2===ye&&!Be(f,1))return f;switch(d){case 1015:return 97===f.charCodeAt(10)?T+f+f:f;case 951:return 116===f.charCodeAt(3)?T+f+f:f;case 963:return 110===f.charCodeAt(5)?T+f+f:f;case 1009:if(100!==f.charCodeAt(4))break;case 969:case 942:return T+f+f;case 978:return T+f+E+f+f;case 1019:case 983:return T+f+E+f+R+f+f;case 883:return f.charCodeAt(8)===q?T+f+f:f.indexOf("image-set(",11)>0?f.replace(j,"$1"+T+"$2")+f:f;case 932:if(f.charCodeAt(4)===q)switch(f.charCodeAt(5)){case 103:return T+"box-"+f.replace("-grow","")+T+f+R+f.replace("grow","positive")+f;case 115:return T+f+R+f.replace("shrink","negative")+f;case 98:return T+f+R+f.replace("basis","preferred-size")+f}return T+f+R+f+f;case 964:return T+f+R+"flex-"+f+f;case 1023:if(99!==f.charCodeAt(8))break;return l=f.substring(f.indexOf(":",15)).replace("flex-","").replace("space-between","justify"),T+"box-pack"+l+T+f+R+"flex-pack"+l+f;case 1005:return o.test(f)?f.replace(a,":"+T)+f.replace(a,":"+E)+f:f;case 1e3:switch(u=(l=f.substring(13).trim()).indexOf("-")+1,l.charCodeAt(0)+l.charCodeAt(u)){case 226:l=f.replace(C,"tb");break;case 232:l=f.replace(C,"tb-rl");break;case 220:l=f.replace(C,"lr");break;default:return f}return T+f+R+l+f;case 1017:if(-1===f.indexOf("sticky",9))return f;case 975:switch(u=(f=e).length-10,d=(l=(33===f.charCodeAt(u)?f.substring(0,u):f).substring(e.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:f=f.replace(l,T+l)+";"+f;break;case 207:case 102:f=f.replace(l,T+(d>102?"inline-":"")+"box")+";"+f.replace(l,T+l)+";"+f.replace(l,R+l+"box")+";"+f}return f+";";case 938:if(f.charCodeAt(5)===q)switch(f.charCodeAt(6)){case 105:return l=f.replace("-items",""),T+f+T+"box-"+l+R+"flex-"+l+f;case 115:return T+f+R+"flex-item-"+f.replace(S,"")+f;default:return T+f+R+"flex-line-pack"+f.replace("align-content","").replace(S,"")+f}break;case 973:case 989:if(f.charCodeAt(3)!==q||122===f.charCodeAt(4))break;case 931:case 953:if(!0===I.test(e))return 115===(l=e.substring(e.indexOf(":")+1)).charCodeAt(0)?ze(e.replace("stretch","fill-available"),t,r,n).replace(":fill-available",":stretch"):f.replace(l,T+l)+f.replace(l,E+l.replace("fill-",""))+f;break;case 962:if(f=T+f+(102===f.charCodeAt(5)?R+f:"")+f,r+n===211&&105===f.charCodeAt(13)&&f.indexOf("transform",10)>0)return f.substring(0,f.indexOf(";",27)+1).replace(i,"$1"+T+"$2")+f}return f}function Be(e,t){var r=e.indexOf(1===t?":":"{"),n=e.substring(0,3!==t?r:10),a=e.substring(r+1,e.length-1);return Oe(2!==t?n:n.replace(O,"$1"),a,t)}function Ge(e,t){var r=ze(t,t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2));return r!==t+";"?r.replace(x," or ($1)").substring(4):"("+t+")"}function We(e,t,r,n,a,o,i,s,c,l){for(var u,f=0,d=t;f0&&(Le=a.replace(p,o===$?"":"-")),o=1,1===ve?$e=a:De=a;var i,s=[$e];Se>0&&void 0!==(i=We(je,r,s,s,me,he,0,0,0,0))&&"string"==typeof i&&(r=i);var c=Fe(Ae,s,r,0,0);return Se>0&&void 0!==(i=We(Ie,c,s,s,me,he,c.length,0,0,0))&&"string"!=typeof(c=i)&&(o=0),Le="",$e="",De="",ge=0,me=1,he=1,we*o==0?c:c.replace(n,"").replace(v,"").replace(y,"$1").replace(b,"$1").replace(w," ")}return Ye.use=function e(t){switch(t){case void 0:case null:Se=xe.length=0;break;default:if("function"==typeof t)xe[Se++]=t;else if("object"==typeof t)for(var r=0,n=t.length;r=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r},k=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},C=function(e){return"object"===(void 0===e?"undefined":m(e))&&e.constructor===Object},A=Object.freeze([]),x=Object.freeze({});function S(e){return"function"==typeof e}function O(e){return e.displayName||e.name||"Component"}function I(e){return e&&"string"==typeof e.styledComponentId}var j=void 0!==e&&(e.env.REACT_APP_SC_ATTR||e.env.SC_ATTR)||"data-styled",T="undefined"!=typeof window&&"HTMLElement"in window,E="boolean"==typeof SC_DISABLE_SPEEDY&&SC_DISABLE_SPEEDY||void 0!==e&&(e.env.REACT_APP_SC_DISABLE_SPEEDY||e.env.SC_DISABLE_SPEEDY)||!1;var R=function(e){function t(r){g(this,t);for(var n=arguments.length,a=Array(n>1?n-1:0),o=1;o0?" Additional arguments: "+a.join(", "):"")));return k(i)}return b(t,e),t}(Error),P=/^[^\S\n]*?\/\* sc-component-id:\s*(\S+)\s+\*\//gm,N=function(e){var t=""+(e||""),r=[];return t.replace(P,(function(e,t,n){return r.push({componentId:t,matchIndex:n}),e})),r.map((function(e,n){var a=e.componentId,o=e.matchIndex,i=r[n+1];return{componentId:a,cssFromDOM:i?t.slice(o,i.matchIndex):t.slice(o)}}))},M=/^\s*\/\/.*$/gm,L=new a.a({global:!1,cascade:!0,keyframe:!1,prefix:!1,compress:!1,semicolon:!0}),D=new a.a({global:!1,cascade:!0,keyframe:!1,prefix:!0,compress:!1,semicolon:!1}),$=[],F=function(e){if(-2===e){var t=$;return $=[],t}},_=i()((function(e){$.push(e)})),H=void 0,z=void 0,B=void 0,G=function(e,t,r){return t>0&&-1!==r.slice(0,t).indexOf(z)&&r.slice(t-z.length,t)!==z?"."+H:e};D.use([function(e,t,r){2===e&&r.length&&r[0].lastIndexOf(z)>0&&(r[0]=r[0].replace(B,G))},_,F]),L.use([_,F]);var W=function(e){return L("",e)};function q(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"&",a=e.join("").replace(M,""),o=t&&r?r+" "+t+" { "+a+" }":a;return H=n,z=t,B=new RegExp("\\"+z+"\\b","g"),D(r||!t?"":t,o)}var U=function(){return r.nc},Y=function(e,t,r){r&&((e[t]||(e[t]=Object.create(null)))[r]=!0)},V=function(e,t){e[t]=Object.create(null)},X=function(e){return function(t,r){return void 0!==e[t]&&e[t][r]}},J=function(e){var t="";for(var r in e)t+=Object.keys(e[r]).join(" ")+" ";return t.trim()},Z=function(e){if(e.sheet)return e.sheet;for(var t=e.ownerDocument.styleSheets.length,r=0;r"+e()+""}},re=function(e,t){return function(){var r,n=((r={})[j]=J(t),r["data-styled-version"]="4.4.0",r),a=U();return a&&(n.nonce=a),c.a.createElement("style",y({},n,{dangerouslySetInnerHTML:{__html:e()}}))}},ne=function(e){return function(){return Object.keys(e)}},ae=function(e,t){return e.createTextNode(Q(t))},oe=function e(t,r){var n=void 0===t?Object.create(null):t,a=void 0===r?Object.create(null):r,o=function(e){var t=a[e];return void 0!==t?t:a[e]=[""]},i=function(){var e="";for(var t in a){var r=a[t][0];r&&(e+=Q(t)+r)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var r in e)t[r]=y({},e[r]);return t}(n),r=Object.create(null);for(var o in a)r[o]=[a[o][0]];return e(t,r)},css:i,getIds:ne(a),hasNameForId:X(n),insertMarker:o,insertRules:function(e,t,r){o(e)[0]+=t.join(" "),Y(n,e,r)},removeRules:function(e){var t=a[e];void 0!==t&&(t[0]="",V(n,e))},sealed:!1,styleTag:null,toElement:re(i,n),toHTML:te(i,n)}},ie=function(e,t,r,n,a){if(T&&!r){var o=function(e,t,r){var n=document;e?n=e.ownerDocument:t&&(n=t.ownerDocument);var a=n.createElement("style");a.setAttribute(j,""),a.setAttribute("data-styled-version","4.4.0");var o=U();if(o&&a.setAttribute("nonce",o),a.appendChild(n.createTextNode("")),e&&!t)e.appendChild(a);else{if(!t||!e||!t.parentNode)throw new R(6);t.parentNode.insertBefore(a,r?t:t.nextSibling)}return a}(e,t,n);return E?function(e,t){var r=Object.create(null),n=Object.create(null),a=void 0!==t,o=!1,i=function(t){var a=n[t];return void 0!==a?a:(n[t]=ae(e.ownerDocument,t),e.appendChild(n[t]),r[t]=Object.create(null),n[t])},s=function(){var e="";for(var t in n)e+=n[t].data;return e};return{clone:function(){throw new R(5)},css:s,getIds:ne(n),hasNameForId:X(r),insertMarker:i,insertRules:function(e,n,s){for(var c=i(e),l=[],u=n.length,f=0;f0&&(o=!0,t().insertRules(e+"-import",l))},removeRules:function(i){var s=n[i];if(void 0!==s){var c=ae(e.ownerDocument,i);e.replaceChild(c,s),n[i]=c,V(r,i),a&&o&&t().removeRules(i+"-import")}},sealed:!1,styleTag:e,toElement:re(s,r),toHTML:te(s,r)}}(o,a):function(e,t){var r=Object.create(null),n=Object.create(null),a=[],o=void 0!==t,i=!1,s=function(e){var t=n[e];return void 0!==t?t:(n[e]=a.length,a.push(0),V(r,e),n[e])},c=function(){var t=Z(e).cssRules,r="";for(var o in n){r+=Q(o);for(var i=n[o],s=ee(a,i),c=s-a[i];c0&&(i=!0,t().insertRules(n+"-import",h)),a[u]+=p,Y(r,n,l)},removeRules:function(s){var c=n[s];if(void 0!==c&&!1!==e.isConnected){var l=a[c];!function(e,t,r){for(var n=t-r,a=t;a>n;a-=1)e.deleteRule(a)}(Z(e),ee(a,c)-1,l),a[c]=0,V(r,s),o&&i&&t().removeRules(s+"-import")}},sealed:!1,styleTag:e,toElement:re(c,r),toHTML:te(c,r)}}(o,a)}return oe()},se=/\s+/,ce=void 0;ce=T?E?40:1e3:-1;var le=0,ue=void 0,fe=function(){function e(){var t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:T?document.head:null,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];g(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var r=t.tags[0];return t.importRuleTag=ie(t.target,r?r.styleTag:null,t.forceServer,!0)},le+=1,this.id=le,this.forceServer=n,this.target=n?null:r,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!T||this.forceServer)return this;var e=[],t=[],r=!1,n=document.querySelectorAll("style["+j+'][data-styled-version="4.4.0"]'),a=n.length;if(!a)return this;for(var o=0;o0&&void 0!==arguments[0]&&arguments[0];ue=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var r=e.getIds(),n=e.clone(),a=0;a1?t-1:0),n=1;n=4;)t=1540483477*(65535&(t=255&e.charCodeAt(a)|(255&e.charCodeAt(++a))<<8|(255&e.charCodeAt(++a))<<16|(255&e.charCodeAt(++a))<<24))+((1540483477*(t>>>16)&65535)<<16),n=1540483477*(65535&n)+((1540483477*(n>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),r-=4,++a;switch(r){case 3:n^=(255&e.charCodeAt(a+2))<<16;case 2:n^=(255&e.charCodeAt(a+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(a)))+((1540483477*(n>>>16)&65535)<<16)}return((n=1540483477*(65535&(n^=n>>>13))+((1540483477*(n>>>16)&65535)<<16))^n>>>15)>>>0}var ke=52,Ce=function(e){return String.fromCharCode(e+(e>25?39:97))};function Ae(e){var t="",r=void 0;for(r=e;r>ke;r=Math.floor(r/ke))t=Ce(r%ke)+t;return Ce(r%ke)+t}function xe(e,t){for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:x,n=!!r&&e.theme===r.theme,a=e.theme&&!n?e.theme:t||r.theme;return a},Te=/[[\].#*$><+~=|^:(),"'`-]+/g,Ee=/(^-|-$)/g;function Re(e){return e.replace(Te,"-").replace(Ee,"")}function Pe(e){return"string"==typeof e&&!0}var Ne={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Me={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Le=((Se={})[u.ForwardRef]={$$typeof:!0,render:!0},Se),De=Object.defineProperty,$e=Object.getOwnPropertyNames,Fe=Object.getOwnPropertySymbols,_e=void 0===Fe?function(){return[]}:Fe,He=Object.getOwnPropertyDescriptor,ze=Object.getPrototypeOf,Be=Object.prototype,Ge=Array.prototype;function We(e,t,r){if("string"!=typeof t){var n=ze(t);n&&n!==Be&&We(e,n,r);for(var a=Ge.concat($e(t),_e(t)),o=Le[e.$$typeof]||Ne,i=Le[t.$$typeof]||Ne,s=a.length,c=void 0,l=void 0;s--;)if(l=a[s],!(Me[l]||r&&r[l]||i&&i[l]||o&&o[l])&&(c=He(t,l)))try{De(e,l,c)}catch(e){}return e}return e}var qe=Object(s.createContext)(),Ue=qe.Consumer,Ye=(function(e){function t(r){g(this,t);var n=k(this,e.call(this,r));return n.getContext=Object(f.a)(n.getContext.bind(n)),n.renderInner=n.renderInner.bind(n),n}b(t,e),t.prototype.render=function(){return this.props.children?c.a.createElement(qe.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return c.a.createElement(qe.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(S(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":m(e)))throw new R(8);return y({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)}}(s.Component),function(){function e(){g(this,e),this.masterSheet=fe.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new R(2);return c.a.createElement(Xe,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new R(3)}}(),Object(s.createContext)()),Ve=Ye.Consumer,Xe=function(e){function t(r){g(this,t);var n=k(this,e.call(this,r));return n.getContext=Object(f.a)(n.getContext),n}return b(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new fe(t);throw new R(4)},t.prototype.render=function(){var e=this.props,t=e.children,r=e.sheet,n=e.target;return c.a.createElement(Ye.Provider,{value:this.getContext(r,n)},t)},t}(s.Component),Je={};var Ze=function(e){function t(){g(this,t);var r=k(this,e.call(this));return r.attrs={},r.renderOuter=r.renderOuter.bind(r),r.renderInner=r.renderInner.bind(r),r}return b(t,e),t.prototype.render=function(){return c.a.createElement(Ve,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:fe.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():c.a.createElement(Ue,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,r=t.componentStyle,n=t.defaultProps,a=(t.displayName,t.foldedComponentIds),o=t.styledComponentId,i=t.target,c=(t.usesTheme,void 0),l=void 0;r.isStatic?c=this.generateAndInjectStyles(x,this.props):(l=je(this.props,e,n),c=this.generateAndInjectStyles(l||x,this.props));var u=this.props.as||this.attrs.as||i,f=Pe(u),p={},h=y({},this.props,this.attrs),m=void 0;for(m in h)"forwardedComponent"!==m&&"as"!==m&&("forwardedRef"===m?p.ref=h[m]:"forwardedAs"===m?p.as=h[m]:f&&!Object(d.a)(m)||(p[m]=h[m]));return this.props.style&&this.attrs.style&&(p.style=y({},this.attrs.style,this.props.style)),p.className=Array.prototype.concat(a,o,c!==o?c:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),Object(s.createElement)(u,p)},t.prototype.buildExecutionContext=function(e,t,r){var n=this,a=y({},t,{theme:e});return r.length?(this.attrs={},r.forEach((function(e){var t,r=e,o=!1,i=void 0,s=void 0;for(s in S(r)&&(r=r(a),o=!0),r)i=r[s],o||!S(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||I(i)||(i=i(a)),n.attrs[s]=i,a[s]=i})),a):a},t.prototype.generateAndInjectStyles=function(e,t){var r=t.forwardedComponent,n=r.attrs,a=r.componentStyle;r.warnTooManyClasses;return a.isStatic&&!n.length?a.generateAndInjectStyles(x,this.styleSheet):a.generateAndInjectStyles(this.buildExecutionContext(e,t,n),this.styleSheet)},t}(s.Component);function Ke(e,t,r){var n=I(e),a=!Pe(e),o=t.displayName,i=void 0===o?function(e){return Pe(e)?"styled."+e:"Styled("+O(e)+")"}(e):o,s=t.componentId,l=void 0===s?function(e,t,r){var n="string"!=typeof t?"sc":Re(t),a=(Je[n]||0)+1;Je[n]=a;var o=n+"-"+e.generateName(n+a);return r?r+"-"+o:o}(Ie,t.displayName,t.parentComponentId):s,u=t.ParentComponent,f=void 0===u?Ze:u,d=t.attrs,h=void 0===d?A:d,m=t.displayName&&t.componentId?Re(t.displayName)+"-"+t.componentId:t.componentId||l,g=n&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,v=new Ie(n?e.componentStyle.rules.concat(r):r,g,m),b=void 0,k=function(e,t){return c.a.createElement(f,y({},e,{forwardedComponent:b,forwardedRef:t}))};return k.displayName=i,(b=c.a.forwardRef(k)).displayName=i,b.attrs=g,b.componentStyle=v,b.foldedComponentIds=n?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):A,b.styledComponentId=m,b.target=n?e.target:e,b.withComponent=function(e){var n=t.componentId,a=w(t,["componentId"]),o=n&&n+"-"+(Pe(e)?e:Re(O(e)));return Ke(e,y({},a,{attrs:g,componentId:o,ParentComponent:f}),r)},Object.defineProperty(b,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=n?Object(p.a)(e.defaultProps,t):t}}),b.toString=function(){return"."+b.styledComponentId},a&&We(b,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),b}var Qe=function(e){return function e(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:x;if(!Object(u.isValidElementType)(r))throw new R(1,String(r));var a=function(){return t(r,n,be.apply(void 0,arguments))};return a.withConfig=function(a){return e(t,r,y({},n,a))},a.attrs=function(a){return e(t,r,y({},n,{attrs:Array.prototype.concat(n.attrs,a).filter(Boolean)}))},a}(Ke,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){Qe[e]=Qe(e)}));!function(){function e(t,r){g(this,e),this.rules=t,this.componentId=r,this.isStatic=xe(t,A),fe.master.hasId(r)||fe.master.deferredInject(r,[])}e.prototype.createStyles=function(e,t){var r=q(ye(this.rules,e,t),"");t.inject(this.componentId,r)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();T&&(window.scCGSHMRCache={});t.a=Qe}).call(this,r(183))},183:function(e,t){var r,n,a=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===o||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:o}catch(e){r=o}try{n="function"==typeof clearTimeout?clearTimeout:i}catch(e){n=i}}();var c,l=[],u=!1,f=-1;function d(){u&&c&&(u=!1,c.length?l=c.concat(l):f=-1,l.length&&p())}function p(){if(!u){var e=s(d);u=!0;for(var t=l.length;t;){for(c=l,l=[];++f1)for(var r=1;r])/g,y=/([[}=:>])\s+/g,b=/(\{[^{]+?);(?=\})/g,w=/\s{2,}/g,k=/([^\(])(:+) */g,C=/[svh]\w+-[tblr]{2}/,A=/\(\s*(.*)\s*\)/g,x=/([\s\S]*?);/g,S=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\w-]+)[^]*/,I=/stretch|:\s*\w+\-(?:conte|avail)/,j=/([^-])(image-set\()/,T="-webkit-",E="-moz-",R="-ms-",P=59,N=125,M=123,L=40,D=41,$=91,F=93,_=10,H=13,z=9,B=64,G=32,W=38,q=45,U=95,Y=42,V=44,X=58,J=39,Z=34,K=47,Q=62,ee=43,te=126,re=0,ne=12,ae=11,oe=107,ie=109,se=115,ce=112,le=111,ue=105,fe=99,de=100,pe=112,he=1,me=1,ge=0,ve=1,ye=1,be=1,we=0,ke=0,Ce=0,Ae=[],xe=[],Se=0,Oe=null,Ie=-2,je=-1,Te=0,Ee=1,Re=2,Pe=3,Ne=0,Me=1,Le="",De="",$e="";function Fe(e,t,a,o,i){for(var s,c,u=0,f=0,d=0,p=0,v=0,y=0,b=0,w=0,C=0,x=0,S=0,O=0,I=0,j=0,U=0,we=0,xe=0,Oe=0,Ie=0,je=a.length,He=je-1,Ue="",Ye="",Ve="",Xe="",Je="",Ze="";U0&&(Ye=Ye.replace(n,"")),Ye.trim().length>0)){switch(b){case G:case z:case P:case H:case _:break;default:Ye+=a.charAt(U)}b=P}if(1===xe)switch(b){case M:case N:case P:case Z:case J:case L:case D:case V:xe=0;case z:case H:case _:case G:break;default:for(xe=0,Ie=U,v=b,U--,b=P;Ie0&&(++U,b=v);case M:Ie=je}}switch(b){case M:for(v=(Ye=Ye.trim()).charCodeAt(0),S=1,Ie=++U;U0&&(Ye=Ye.replace(n,"")),y=Ye.charCodeAt(1)){case de:case ie:case se:case q:s=t;break;default:s=Ae}if(Ie=(Ve=Fe(t,s,Ve,y,i+1)).length,Ce>0&&0===Ie&&(Ie=Ye.length),Se>0&&(s=_e(Ae,Ye,Oe),c=We(Pe,Ve,s,t,me,he,Ie,y,i,o),Ye=s.join(""),void 0!==c&&0===(Ie=(Ve=c.trim()).length)&&(y=0,Ve="")),Ie>0)switch(y){case se:Ye=Ye.replace(A,Ge);case de:case ie:case q:Ve=Ye+"{"+Ve+"}";break;case oe:Ve=(Ye=Ye.replace(h,"$1 $2"+(Me>0?Le:"")))+"{"+Ve+"}",Ve=1===ye||2===ye&&Be("@"+Ve,3)?"@"+T+Ve+"@"+Ve:"@"+Ve;break;default:Ve=Ye+Ve,o===pe&&(Xe+=Ve,Ve="")}else Ve="";break;default:Ve=Fe(t,_e(t,Ye,Oe),Ve,o,i+1)}Je+=Ve,O=0,xe=0,j=0,we=0,Oe=0,I=0,Ye="",Ve="",b=a.charCodeAt(++U);break;case N:case P:if((Ie=(Ye=(we>0?Ye.replace(n,""):Ye).trim()).length)>1)switch(0===j&&((v=Ye.charCodeAt(0))===q||v>96&&v<123)&&(Ie=(Ye=Ye.replace(" ",":")).length),Se>0&&void 0!==(c=We(Ee,Ye,t,e,me,he,Xe.length,o,i,o))&&0===(Ie=(Ye=c.trim()).length)&&(Ye="\0\0"),v=Ye.charCodeAt(0),y=Ye.charCodeAt(1),v){case re:break;case B:if(y===ue||y===fe){Ze+=Ye+a.charAt(U);break}default:if(Ye.charCodeAt(Ie-1)===X)break;Xe+=ze(Ye,v,y,Ye.charCodeAt(2))}O=0,xe=0,j=0,we=0,Oe=0,Ye="",b=a.charCodeAt(++U)}}switch(b){case H:case _:if(f+p+d+u+ke===0)switch(x){case D:case J:case Z:case B:case te:case Q:case Y:case ee:case K:case q:case X:case V:case P:case M:case N:break;default:j>0&&(xe=1)}f===K?f=0:ve+O===0&&o!==oe&&Ye.length>0&&(we=1,Ye+="\0"),Se*Ne>0&&We(Te,Ye,t,e,me,he,Xe.length,o,i,o),he=1,me++;break;case P:case N:if(f+p+d+u===0){he++;break}default:switch(he++,Ue=a.charAt(U),b){case z:case G:if(p+u+f===0)switch(w){case V:case X:case z:case G:Ue="";break;default:b!==G&&(Ue=" ")}break;case re:Ue="\\0";break;case ne:Ue="\\f";break;case ae:Ue="\\v";break;case W:p+f+u===0&&ve>0&&(Oe=1,we=1,Ue="\f"+Ue);break;case 108:if(p+f+u+ge===0&&j>0)switch(U-j){case 2:w===ce&&a.charCodeAt(U-3)===X&&(ge=w);case 8:C===le&&(ge=C)}break;case X:p+f+u===0&&(j=U);break;case V:f+d+p+u===0&&(we=1,Ue+="\r");break;case Z:case J:0===f&&(p=p===b?0:0===p?b:p);break;case $:p+f+d===0&&u++;break;case F:p+f+d===0&&u--;break;case D:p+f+u===0&&d--;break;case L:if(p+f+u===0){if(0===O)switch(2*w+3*C){case 533:break;default:S=0,O=1}d++}break;case B:f+d+p+u+j+I===0&&(I=1);break;case Y:case K:if(p+u+d>0)break;switch(f){case 0:switch(2*b+3*a.charCodeAt(U+1)){case 235:f=K;break;case 220:Ie=U,f=Y}break;case Y:b===K&&w===Y&&Ie+2!==U&&(33===a.charCodeAt(Ie+2)&&(Xe+=a.substring(Ie,U+1)),Ue="",f=0)}}if(0===f){if(ve+p+u+I===0&&o!==oe&&b!==P)switch(b){case V:case te:case Q:case ee:case D:case L:if(0===O){switch(w){case z:case G:case _:case H:Ue+="\0";break;default:Ue="\0"+Ue+(b===V?"":"\0")}we=1}else switch(b){case L:j+7===U&&108===w&&(j=0),O=++S;break;case D:0==(O=--S)&&(we=1,Ue+="\0")}break;case z:case G:switch(w){case re:case M:case N:case P:case V:case ne:case z:case G:case _:case H:break;default:0===O&&(we=1,Ue+="\0")}}Ye+=Ue,b!==G&&b!==z&&(x=b)}}C=w,w=b,U++}if(Ie=Xe.length,Ce>0&&0===Ie&&0===Je.length&&0===t[0].length==0&&(o!==ie||1===t.length&&(ve>0?De:$e)===t[0])&&(Ie=t.join(",").length+2),Ie>0){if(s=0===ve&&o!==oe?function(e){for(var t,r,a=0,o=e.length,i=Array(o);a1)){if(d=c.charCodeAt(c.length-1),p=r.charCodeAt(0),t="",0!==u)switch(d){case Y:case te:case Q:case ee:case G:case L:break;default:t=" "}switch(p){case W:r=t+De;case te:case Q:case ee:case G:case D:case L:break;case $:r=t+r+De;break;case X:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(be>0){r=t+r.substring(8,f-1);break}default:(u<1||s[u-1].length<1)&&(r=t+De+r)}break;case V:t="";default:r=f>1&&r.indexOf(":")>0?t+r.replace(k,"$1"+De+"$2"):t+r+De}c+=r}i[a]=c.replace(n,"").trim()}return i}(t):t,Se>0&&void 0!==(c=We(Re,Xe,s,e,me,he,Ie,o,i,o))&&0===(Xe=c).length)return Ze+Xe+Je;if(Xe=s.join(",")+"{"+Xe+"}",ye*ge!=0){switch(2!==ye||Be(Xe,2)||(ge=0),ge){case le:Xe=Xe.replace(g,":"+E+"$1")+Xe;break;case ce:Xe=Xe.replace(m,"::"+T+"input-$1")+Xe.replace(m,"::"+E+"$1")+Xe.replace(m,":"+R+"input-$1")+Xe}ge=0}}return Ze+Xe+Je}function _e(e,t,r){var n=t.trim().split(u),a=n,o=n.length,i=e.length;switch(i){case 0:case 1:for(var s=0,c=0===i?"":e[0]+" ";s0&&ve>0)return a.replace(d,"$1").replace(f,"$1"+$e);break;default:return e.trim()+a.replace(f,"$1"+e.trim())}default:if(r*ve>0&&a.indexOf("\f")>0)return a.replace(f,(e.charCodeAt(0)===X?"":"$1")+e.trim())}return e+a}function ze(e,t,r,n){var l,u=0,f=e+";",d=2*t+3*r+4*n;if(944===d)return function(e){var t=e.length,r=e.indexOf(":",9)+1,n=e.substring(0,r).trim(),a=e.substring(r,t-1).trim();switch(e.charCodeAt(9)*Me){case 0:break;case q:if(110!==e.charCodeAt(10))break;default:var o=a.split((a="",s)),i=0;for(r=0,t=o.length;iB&&f<90||f>96&&f<123||f===U||f===q&&l.charCodeAt(1)!==q))switch(isNaN(parseFloat(l))+(-1!==l.indexOf("("))){case 1:switch(l){case"infinite":case"alternate":case"backwards":case"running":case"normal":case"forwards":case"both":case"none":case"linear":case"ease":case"ease-in":case"ease-out":case"ease-in-out":case"paused":case"reverse":case"alternate-reverse":case"inherit":case"initial":case"unset":case"step-start":case"step-end":break;default:l+=Le}}u[r++]=l}a+=(0===i?"":",")+u.join(" ")}}return a=n+a+";",1===ye||2===ye&&Be(a,1)?T+a+a:a}(f);if(0===ye||2===ye&&!Be(f,1))return f;switch(d){case 1015:return 97===f.charCodeAt(10)?T+f+f:f;case 951:return 116===f.charCodeAt(3)?T+f+f:f;case 963:return 110===f.charCodeAt(5)?T+f+f:f;case 1009:if(100!==f.charCodeAt(4))break;case 969:case 942:return T+f+f;case 978:return T+f+E+f+f;case 1019:case 983:return T+f+E+f+R+f+f;case 883:return f.charCodeAt(8)===q?T+f+f:f.indexOf("image-set(",11)>0?f.replace(j,"$1"+T+"$2")+f:f;case 932:if(f.charCodeAt(4)===q)switch(f.charCodeAt(5)){case 103:return T+"box-"+f.replace("-grow","")+T+f+R+f.replace("grow","positive")+f;case 115:return T+f+R+f.replace("shrink","negative")+f;case 98:return T+f+R+f.replace("basis","preferred-size")+f}return T+f+R+f+f;case 964:return T+f+R+"flex-"+f+f;case 1023:if(99!==f.charCodeAt(8))break;return l=f.substring(f.indexOf(":",15)).replace("flex-","").replace("space-between","justify"),T+"box-pack"+l+T+f+R+"flex-pack"+l+f;case 1005:return o.test(f)?f.replace(a,":"+T)+f.replace(a,":"+E)+f:f;case 1e3:switch(u=(l=f.substring(13).trim()).indexOf("-")+1,l.charCodeAt(0)+l.charCodeAt(u)){case 226:l=f.replace(C,"tb");break;case 232:l=f.replace(C,"tb-rl");break;case 220:l=f.replace(C,"lr");break;default:return f}return T+f+R+l+f;case 1017:if(-1===f.indexOf("sticky",9))return f;case 975:switch(u=(f=e).length-10,d=(l=(33===f.charCodeAt(u)?f.substring(0,u):f).substring(e.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:f=f.replace(l,T+l)+";"+f;break;case 207:case 102:f=f.replace(l,T+(d>102?"inline-":"")+"box")+";"+f.replace(l,T+l)+";"+f.replace(l,R+l+"box")+";"+f}return f+";";case 938:if(f.charCodeAt(5)===q)switch(f.charCodeAt(6)){case 105:return l=f.replace("-items",""),T+f+T+"box-"+l+R+"flex-"+l+f;case 115:return T+f+R+"flex-item-"+f.replace(S,"")+f;default:return T+f+R+"flex-line-pack"+f.replace("align-content","").replace(S,"")+f}break;case 973:case 989:if(f.charCodeAt(3)!==q||122===f.charCodeAt(4))break;case 931:case 953:if(!0===I.test(e))return 115===(l=e.substring(e.indexOf(":")+1)).charCodeAt(0)?ze(e.replace("stretch","fill-available"),t,r,n).replace(":fill-available",":stretch"):f.replace(l,T+l)+f.replace(l,E+l.replace("fill-",""))+f;break;case 962:if(f=T+f+(102===f.charCodeAt(5)?R+f:"")+f,r+n===211&&105===f.charCodeAt(13)&&f.indexOf("transform",10)>0)return f.substring(0,f.indexOf(";",27)+1).replace(i,"$1"+T+"$2")+f}return f}function Be(e,t){var r=e.indexOf(1===t?":":"{"),n=e.substring(0,3!==t?r:10),a=e.substring(r+1,e.length-1);return Oe(2!==t?n:n.replace(O,"$1"),a,t)}function Ge(e,t){var r=ze(t,t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2));return r!==t+";"?r.replace(x," or ($1)").substring(4):"("+t+")"}function We(e,t,r,n,a,o,i,s,c,l){for(var u,f=0,d=t;f0&&(Le=a.replace(p,o===$?"":"-")),o=1,1===ve?$e=a:De=a;var i,s=[$e];Se>0&&void 0!==(i=We(je,r,s,s,me,he,0,0,0,0))&&"string"==typeof i&&(r=i);var c=Fe(Ae,s,r,0,0);return Se>0&&void 0!==(i=We(Ie,c,s,s,me,he,c.length,0,0,0))&&"string"!=typeof(c=i)&&(o=0),Le="",$e="",De="",ge=0,me=1,he=1,we*o==0?c:c.replace(n,"").replace(v,"").replace(y,"$1").replace(b,"$1").replace(w," ")}return Ye.use=function e(t){switch(t){case void 0:case null:Se=xe.length=0;break;default:if("function"==typeof t)xe[Se++]=t;else if("object"==typeof t)for(var r=0,n=t.length;r - + Page Not Found @@ -20,9 +20,9 @@

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + - + \ No newline at end of file diff --git a/blog/index.html b/blog/index.html index e03aa7ac6..361277eed 100644 --- a/blog/index.html +++ b/blog/index.html @@ -3,7 +3,7 @@ - + Blog @@ -24,13 +24,13 @@

Welcome

May 30, 2019
Atul R

Atul R

Maintainer @NodeGui

This is the new blog site for NodeGui. This will be updated soon.

- + - + - + diff --git a/blog/tags/hello/index.html b/blog/tags/hello/index.html index 4c9db9b94..0da26ab60 100644 --- a/blog/tags/hello/index.html +++ b/blog/tags/hello/index.html @@ -3,7 +3,7 @@ - + Blog | Tagged "hello" @@ -24,13 +24,13 @@

1 post(s) tagged with "hello"

View All Tags

Welcome

May 30, 2019
Atul R

Atul R

Maintainer @NodeGui

This is the new blog site for NodeGui. This will be updated soon.

- + - + - + diff --git a/blog/tags/index.html b/blog/tags/index.html index b53b565bc..a68a2f0e1 100644 --- a/blog/tags/index.html +++ b/blog/tags/index.html @@ -3,7 +3,7 @@ - + Blog Tags @@ -22,13 +22,13 @@ - + - + - + diff --git a/blog/tags/nodegui/index.html b/blog/tags/nodegui/index.html index 4eb05f99e..e317a0810 100644 --- a/blog/tags/nodegui/index.html +++ b/blog/tags/nodegui/index.html @@ -3,7 +3,7 @@ - + Blog | Tagged "nodegui" @@ -24,13 +24,13 @@

1 post(s) tagged with "nodegui"

View All Tags

Welcome

May 30, 2019
Atul R

Atul R

Maintainer @NodeGui

This is the new blog site for NodeGui. This will be updated soon.

- + - + - + diff --git a/blog/welcome/index.html b/blog/welcome/index.html index dc1f072ec..ee7327f3d 100644 --- a/blog/welcome/index.html +++ b/blog/welcome/index.html @@ -3,7 +3,7 @@ - + Welcome @@ -24,13 +24,13 @@

Welcome

May 30, 2019
Atul R

Atul R

Maintainer @NodeGui

This is the new blog site for NodeGui. This will be updated soon.

- + - + - + diff --git a/chunk-map.json b/chunk-map.json index aa3cb8f18..b10d4da85 100644 --- a/chunk-map.json +++ b/chunk-map.json @@ -1,11 +1,11 @@ { "main": [ "/main.f66713773e9ba37b90fe.css", - "/main.7a48394ebc7e47422c98.js" + "/main.3c22308242e28ead5e64.js" ], "component---site-src-pages-index-jsc-4-f-f99": [ "/component---site-src-pages-index-jsc-4-f-f99.71bf8f44fd9ac59b6a50.css", - "/component---site-src-pages-index-jsc-4-f-f99.505b05deaa8813d82ea6.js" + "/component---site-src-pages-index-jsc-4-f-f99.e83a9966ed03cee3443f.js" ], "component---theme-blog-post-pageccc-cab": [ "/component---theme-blog-post-pageccc-cab.eaf730b8c654a212f785.js" @@ -30,7 +30,7 @@ "/component---theme-doc-legacy-page-9-e-7-ca5.d31182005d6c21dd63ac.js" ], "docsMetadata---docs-150-2d6": [ - "/docsMetadata---docs-150-2d6.050a67cf2c62a9aa0583.js" + "/docsMetadata---docs-150-2d6.6e875209659be13f2970.js" ], "component---theme-doc-legacy-item-031-769": [ "/component---theme-doc-legacy-item-031-769.1f1ce10374de019f5d3a.css", @@ -60,71 +60,71 @@ "metadata---docs-api-component-3-e-5-43d": [ "/metadata---docs-api-component-3-e-5-43d.0893689f20edabdccdd1.js" ], - "content---docs-api-node-widget-080-a39": [ - "/content---docs-api-node-widget-080-a39.f21482facb1d1599ab0d.js" - ], - "metadata---docs-api-node-widgeta-92-a4f": [ - "/metadata---docs-api-node-widgeta-92-a4f.4e8e4c2fcd8d294d5d33.js" - ], "content---docs-api-event-widgetac-6-11b": [ - "/content---docs-api-event-widgetac-6-11b.a5cf10d898002591a15a.js" + "/content---docs-api-event-widgetac-6-11b.b87fa94e0cd874003d59.js" ], "metadata---docs-api-event-widget-39-a-9ea": [ - "/metadata---docs-api-event-widget-39-a-9ea.3ad7032e5b20d9cd659e.js" + "/metadata---docs-api-event-widget-39-a-9ea.34b0ce562deb2ec0ae92.js" ], "content---docs-api-flex-layout-3-dc-a16": [ - "/content---docs-api-flex-layout-3-dc-a16.315f47480f7da4c659d5.js" + "/content---docs-api-flex-layout-3-dc-a16.d5ab9ac7b90d9ed88203.js" ], "metadata---docs-api-flex-layoutecf-540": [ - "/metadata---docs-api-flex-layoutecf-540.51456ecddd02966bba3f.js" - ], - "content---docs-api-q-abstract-scroll-area-3-e-6-d7f": [ - "/content---docs-api-q-abstract-scroll-area-3-e-6-d7f.a166f0f57747870e0ec4.js" - ], - "metadata---docs-api-q-abstract-scroll-area-59-d-279": [ - "/metadata---docs-api-q-abstract-scroll-area-59-d-279.830987a049e659e13eb5.js" - ], - "content---docs-api-q-applicationd-3-e-0a3": [ - "/content---docs-api-q-applicationd-3-e-0a3.6fa95396d7fbee9da501.js" - ], - "metadata---docs-api-q-applicationc-1-d-8a4": [ - "/metadata---docs-api-q-applicationc-1-d-8a4.7e8fedb5dc575b7eb1e4.js" + "/metadata---docs-api-flex-layoutecf-540.7db8561c2c23b0d92b67.js" ], "content---docs-api-node-layoutd-28-11a": [ - "/content---docs-api-node-layoutd-28-11a.0dace98927a219b41b44.js" + "/content---docs-api-node-layoutd-28-11a.f1324fa8676e4bf64b44.js" ], "metadata---docs-api-node-layout-1-e-9-c15": [ - "/metadata---docs-api-node-layout-1-e-9-c15.ceab155a191e8fd6b3f8.js" + "/metadata---docs-api-node-layout-1-e-9-c15.192849fc91407c883037.js" ], - "content---docs-api-q-clipboard-69-d-2ef": [ - "/content---docs-api-q-clipboard-69-d-2ef.189654ea9b37adaada9b.js" + "content---docs-api-node-widget-080-a39": [ + "/content---docs-api-node-widget-080-a39.e1d7ab6aab225b7fb2e0.js" ], - "metadata---docs-api-q-clipboard-486-b21": [ - "/metadata---docs-api-q-clipboard-486-b21.541daebe97727e2fe521.js" + "metadata---docs-api-node-widgeta-92-a4f": [ + "/metadata---docs-api-node-widgeta-92-a4f.dc800d76f7062b65b2ed.js" ], - "content---docs-api-q-cursor-362-d51": [ - "/content---docs-api-q-cursor-362-d51.7f14f85b8c20c1f5cbf5.js" + "content---docs-api-q-abstract-scroll-area-3-e-6-d7f": [ + "/content---docs-api-q-abstract-scroll-area-3-e-6-d7f.ce07722700328be8dfa5.js" ], - "metadata---docs-api-q-cursor-887-11e": [ - "/metadata---docs-api-q-cursor-887-11e.2565c6f4292aaac41bc4.js" + "metadata---docs-api-q-abstract-scroll-area-59-d-279": [ + "/metadata---docs-api-q-abstract-scroll-area-59-d-279.378868b047b4e7fc733c.js" ], "content---docs-api-q-abstract-slider-3-e-0-54d": [ - "/content---docs-api-q-abstract-slider-3-e-0-54d.1a794a8d8e995ff3f3bc.js" + "/content---docs-api-q-abstract-slider-3-e-0-54d.b7e761ae58b36fe089f1.js" ], "metadata---docs-api-q-abstract-sliderdfa-ab7": [ - "/metadata---docs-api-q-abstract-sliderdfa-ab7.a0fe110c4922ec9b163b.js" + "/metadata---docs-api-q-abstract-sliderdfa-ab7.73efd891b1be587b529b.js" ], - "content---docs-api-q-dial-80-b-99a": [ - "/content---docs-api-q-dial-80-b-99a.27cba315ea3b12bad153.js" + "content---docs-api-q-applicationd-3-e-0a3": [ + "/content---docs-api-q-applicationd-3-e-0a3.039f8c83760f87eef546.js" ], - "metadata---docs-api-q-dialbfb-aef": [ - "/metadata---docs-api-q-dialbfb-aef.1833a299cf00db0c1dd6.js" + "metadata---docs-api-q-applicationc-1-d-8a4": [ + "/metadata---docs-api-q-applicationc-1-d-8a4.dba24314be49483727c4.js" ], "content---docs-api-q-check-boxd-9-b-c95": [ - "/content---docs-api-q-check-boxd-9-b-c95.ecff488106003dd95b58.js" + "/content---docs-api-q-check-boxd-9-b-c95.54af9594d82de2f1c65c.js" ], "metadata---docs-api-q-check-box-132-293": [ - "/metadata---docs-api-q-check-box-132-293.2bcffc7e89579f4aa0b8.js" + "/metadata---docs-api-q-check-box-132-293.363eb2c9b2bdc95e76bb.js" + ], + "content---docs-api-q-clipboard-69-d-2ef": [ + "/content---docs-api-q-clipboard-69-d-2ef.2facddd2ce7d03c7d364.js" + ], + "metadata---docs-api-q-clipboard-486-b21": [ + "/metadata---docs-api-q-clipboard-486-b21.5efa03bad36d45e62cbe.js" + ], + "content---docs-api-q-cursor-362-d51": [ + "/content---docs-api-q-cursor-362-d51.72e3b873d390560e1917.js" + ], + "metadata---docs-api-q-cursor-887-11e": [ + "/metadata---docs-api-q-cursor-887-11e.af1b21b104f06148557b.js" + ], + "content---docs-api-q-dial-80-b-99a": [ + "/content---docs-api-q-dial-80-b-99a.facd48a52570d2fd7472.js" + ], + "metadata---docs-api-q-dialbfb-aef": [ + "/metadata---docs-api-q-dialbfb-aef.e5ded32011b7d6927cdc.js" ], "content---docs-api-q-grid-layouta-4-e-552": [ "/content---docs-api-q-grid-layouta-4-e-552.f8384f91986e144a1e06.js" @@ -132,35 +132,35 @@ "metadata---docs-api-q-grid-layout-7-db-030": [ "/metadata---docs-api-q-grid-layout-7-db-030.f3764e551a2bc1cf18a8.js" ], - "content---docs-api-q-label-2-f-9-04b": [ - "/content---docs-api-q-label-2-f-9-04b.1cdeec52a70db8ef7cc7.js" - ], - "metadata---docs-api-q-label-165-210": [ - "/metadata---docs-api-q-label-165-210.945d42961dfc88295677.js" - ], "content---docs-api-q-icone-5-f-b0d": [ - "/content---docs-api-q-icone-5-f-b0d.adda17d3830828da9941.js" + "/content---docs-api-q-icone-5-f-b0d.016d00e28e5a87f3cf94.js" ], "metadata---docs-api-q-icone-6-d-093": [ - "/metadata---docs-api-q-icone-6-d-093.ed4791cba37b43cdef97.js" + "/metadata---docs-api-q-icone-6-d-093.1c4c72d6ff116744c296.js" ], - "content---docs-api-q-pixmap-8-dd-cb2": [ - "/content---docs-api-q-pixmap-8-dd-cb2.3d67d264575cf7bec65c.js" + "content---docs-api-q-label-2-f-9-04b": [ + "/content---docs-api-q-label-2-f-9-04b.9f8c2e203f083cedfdf8.js" ], - "metadata---docs-api-q-pixmapfdf-820": [ - "/metadata---docs-api-q-pixmapfdf-820.f23b49133b8588f3daec.js" + "metadata---docs-api-q-label-165-210": [ + "/metadata---docs-api-q-label-165-210.1dba411adf86a92ae91f.js" ], "content---docs-api-q-line-editea-0-53d": [ - "/content---docs-api-q-line-editea-0-53d.fc2fdf237ea0256a9bc8.js" + "/content---docs-api-q-line-editea-0-53d.f606b13ced935ec46509.js" ], "metadata---docs-api-q-line-edit-13-f-b8a": [ - "/metadata---docs-api-q-line-edit-13-f-b8a.fca0ca35e830f02efb9d.js" + "/metadata---docs-api-q-line-edit-13-f-b8a.df4fef6cc6001cbc07a7.js" ], - "content---docs-api-q-progress-barc-46-afe": [ - "/content---docs-api-q-progress-barc-46-afe.9cecbb65c33965b0e7f5.js" + "content---docs-api-q-main-window-0-e-7-299": [ + "/content---docs-api-q-main-window-0-e-7-299.7a1bf20062e23ed6c510.js" ], - "metadata---docs-api-q-progress-bar-43-d-07e": [ - "/metadata---docs-api-q-progress-bar-43-d-07e.08ee1613bacad45a5510.js" + "metadata---docs-api-q-main-window-04-f-efb": [ + "/metadata---docs-api-q-main-window-04-f-efb.699f6e2eb1ac78330311.js" + ], + "content---docs-api-q-pixmap-8-dd-cb2": [ + "/content---docs-api-q-pixmap-8-dd-cb2.343e5d75db3125ddfa81.js" + ], + "metadata---docs-api-q-pixmapfdf-820": [ + "/metadata---docs-api-q-pixmapfdf-820.087e26967d50eb06140d.js" ], "content---docs-api-q-plain-text-edit-7-c-8-081": [ "/content---docs-api-q-plain-text-edit-7-c-8-081.f6a618e75ea9b4f15f6b.js" @@ -168,35 +168,35 @@ "metadata---docs-api-q-plain-text-edit-161-ecc": [ "/metadata---docs-api-q-plain-text-edit-161-ecc.e89eb96f17b29e76629e.js" ], - "content---docs-api-q-radio-buttone-54-746": [ - "/content---docs-api-q-radio-buttone-54-746.c46ca58051e6e9f427b9.js" + "content---docs-api-q-progress-barc-46-afe": [ + "/content---docs-api-q-progress-barc-46-afe.2a5c874c4e33ecb7a2b8.js" ], - "metadata---docs-api-q-radio-button-367-f7c": [ - "/metadata---docs-api-q-radio-button-367-f7c.e2815cee23af3e7e2c18.js" - ], - "content---docs-api-q-scroll-area-8-c-4-3fd": [ - "/content---docs-api-q-scroll-area-8-c-4-3fd.fd2d29a876286d824831.js" - ], - "metadata---docs-api-q-scroll-area-46-a-96e": [ - "/metadata---docs-api-q-scroll-area-46-a-96e.4a0fe78cc1b07f72fe78.js" - ], - "content---docs-api-q-main-window-0-e-7-299": [ - "/content---docs-api-q-main-window-0-e-7-299.b20554db200b1aa6187b.js" - ], - "metadata---docs-api-q-main-window-04-f-efb": [ - "/metadata---docs-api-q-main-window-04-f-efb.809594a718b59ff458c2.js" - ], - "content---docs-api-q-spin-box-1-ce-bfd": [ - "/content---docs-api-q-spin-box-1-ce-bfd.d62b3746ba69df91f4e1.js" - ], - "metadata---docs-api-q-spin-box-809-ae0": [ - "/metadata---docs-api-q-spin-box-809-ae0.055050a90b41e50bfa5a.js" + "metadata---docs-api-q-progress-bar-43-d-07e": [ + "/metadata---docs-api-q-progress-bar-43-d-07e.a527e07318808cde454e.js" ], "content---docs-api-q-push-button-06-c-73e": [ - "/content---docs-api-q-push-button-06-c-73e.18589cda96f10dc9259f.js" + "/content---docs-api-q-push-button-06-c-73e.9e1e6d8a0e7c17941efd.js" ], "metadata---docs-api-q-push-button-96-d-c92": [ - "/metadata---docs-api-q-push-button-96-d-c92.41704120c43af310af19.js" + "/metadata---docs-api-q-push-button-96-d-c92.b15a45966fb25f5f9917.js" + ], + "content---docs-api-q-radio-buttone-54-746": [ + "/content---docs-api-q-radio-buttone-54-746.0eceb96f43e589853010.js" + ], + "metadata---docs-api-q-radio-button-367-f7c": [ + "/metadata---docs-api-q-radio-button-367-f7c.11484c432455585a7ef3.js" + ], + "content---docs-api-q-scroll-area-8-c-4-3fd": [ + "/content---docs-api-q-scroll-area-8-c-4-3fd.fd580650b1d2ac9eee33.js" + ], + "metadata---docs-api-q-scroll-area-46-a-96e": [ + "/metadata---docs-api-q-scroll-area-46-a-96e.a5c480374e3f8b5fcea2.js" + ], + "content---docs-api-q-spin-box-1-ce-bfd": [ + "/content---docs-api-q-spin-box-1-ce-bfd.fc03e9106b39d9c9e23c.js" + ], + "metadata---docs-api-q-spin-box-809-ae0": [ + "/metadata---docs-api-q-spin-box-809-ae0.1fcda0244eebb91ff1bf.js" ], "content---docs-api-q-tab-widget-508-95e": [ "/content---docs-api-q-tab-widget-508-95e.b35876b3da49da08bcb5.js" @@ -204,23 +204,23 @@ "metadata---docs-api-q-tab-widgetebc-5aa": [ "/metadata---docs-api-q-tab-widgetebc-5aa.558f01cb9860e9184f4f.js" ], - "content---docs-api-qt-enumsfd-7-cf3": [ - "/content---docs-api-qt-enumsfd-7-cf3.0f709b0fb9cdc99aa034.js" - ], - "metadata---docs-api-qt-enums-423-cf9": [ - "/metadata---docs-api-qt-enums-423-cf9.0270a53b7868fcd4cd97.js" - ], - "content---docs-api-yoga-widgeta-42-cc7": [ - "/content---docs-api-yoga-widgeta-42-cc7.700c0279e1a09c33064e.js" - ], - "metadata---docs-api-yoga-widget-95-c-f8b": [ - "/metadata---docs-api-yoga-widget-95-c-f8b.525eb323f1249d3f9ae6.js" - ], "content---docs-api-q-widget-04-a-59f": [ - "/content---docs-api-q-widget-04-a-59f.64a7421274fdc2d19599.js" + "/content---docs-api-q-widget-04-a-59f.789a0ca241a0fb6ad49d.js" ], "metadata---docs-api-q-widget-287-e6c": [ - "/metadata---docs-api-q-widget-287-e6c.7f4508b8aa6a625ea9c9.js" + "/metadata---docs-api-q-widget-287-e6c.1a1aa4d570d756d63bb4.js" + ], + "content---docs-api-qt-enumsfd-7-cf3": [ + "/content---docs-api-qt-enumsfd-7-cf3.1eed426a340d4c937b0a.js" + ], + "metadata---docs-api-qt-enums-423-cf9": [ + "/metadata---docs-api-qt-enums-423-cf9.fb1940e1fff15d344906.js" + ], + "content---docs-api-yoga-widgeta-42-cc7": [ + "/content---docs-api-yoga-widgeta-42-cc7.d048cabe40533b903ea2.js" + ], + "metadata---docs-api-yoga-widget-95-c-f8b": [ + "/metadata---docs-api-yoga-widget-95-c-f8b.bdbc70e8a3ba6a1d1808.js" ], "content---docs-api-process-5-ec-b1e": [ "/content---docs-api-process-5-ec-b1e.81baa4658f7e9a835392.js" @@ -235,130 +235,130 @@ "/metadata---docs-api-synopsis-21-f-a62.a376081207def93aa340.js" ], "content---docs-development-readme-149-437": [ - "/content---docs-development-readme-149-437.115b92599d48666d0070.js" + "/content---docs-development-readme-149-437.43394caf4d37e04eb78e.js" ], "metadata---docs-development-readm-ec-6-c-332": [ "/metadata---docs-development-readm-ec-6-c-332.49158ed40eba176b8d72.js" ], - "content---docs-development-setting-up-28-c-666": [ - "/content---docs-development-setting-up-28-c-666.7f499704e941e164e2f8.js" - ], - "metadata---docs-development-setting-up-979-75f": [ - "/metadata---docs-development-setting-up-979-75f.208e7e24443dbc777f36.js" - ], - "content---docs-development-getting-started-139-387": [ - "/content---docs-development-getting-started-139-387.861ce8c24b970f99c241.js" - ], - "metadata---docs-development-getting-started-89-b-c7a": [ - "/metadata---docs-development-getting-started-89-b-c7a.84e0a166655b36efc010.js" - ], - "content---docs-development-debuggingb-54-9ed": [ - "/content---docs-development-debuggingb-54-9ed.373640edebafbcf8aeb7.js" - ], - "metadata---docs-development-debuggingc-36-26a": [ - "/metadata---docs-development-debuggingc-36-26a.155c6553de08c9ea3273.js" - ], - "content---docs-development-signal-and-event-handling-7-d-4-f3f": [ - "/content---docs-development-signal-and-event-handling-7-d-4-f3f.7fe7b32c2a017187656e.js" - ], - "metadata---docs-development-signal-and-event-handling-0-b-5-692": [ - "/metadata---docs-development-signal-and-event-handling-0-b-5-692.55ae9e21c216869373d9.js" - ], "content---docs-development-common-errorsf-15-a5b": [ - "/content---docs-development-common-errorsf-15-a5b.7c3d3a75915f21303100.js" + "/content---docs-development-common-errorsf-15-a5b.e038ab8ec8bf334300fb.js" ], "metadata---docs-development-common-errors-402-ef4": [ - "/metadata---docs-development-common-errors-402-ef4.6ddd37623148595ab0b3.js" + "/metadata---docs-development-common-errors-402-ef4.7ea9ca2120cf1ce1bce9.js" ], - "content---docs-guides-debugging-in-vscodebd-7-cec": [ - "/content---docs-guides-debugging-in-vscodebd-7-cec.d799d1baeab3224d227d.js" + "content---docs-development-debuggingb-54-9ed": [ + "/content---docs-development-debuggingb-54-9ed.750c6b37dab541484a83.js" ], - "metadata---docs-guides-debugging-in-vscodebf-8-5b0": [ - "/metadata---docs-guides-debugging-in-vscodebf-8-5b0.b2a95b4e9c9da3fbb308.js" + "metadata---docs-development-debuggingc-36-26a": [ + "/metadata---docs-development-debuggingc-36-26a.3bf9d58aef0157443ea5.js" + ], + "content---docs-development-getting-started-139-387": [ + "/content---docs-development-getting-started-139-387.91c824c53e601bdee051.js" + ], + "metadata---docs-development-getting-started-89-b-c7a": [ + "/metadata---docs-development-getting-started-89-b-c7a.863d1b0e22372d87282e.js" + ], + "content---docs-development-setting-up-28-c-666": [ + "/content---docs-development-setting-up-28-c-666.3ed03febaee8901fd048.js" + ], + "metadata---docs-development-setting-up-979-75f": [ + "/metadata---docs-development-setting-up-979-75f.8f9fc5a72c685e8d0e31.js" + ], + "content---docs-development-signal-and-event-handling-7-d-4-f3f": [ + "/content---docs-development-signal-and-event-handling-7-d-4-f3f.ce2b82a97ac1f368a896.js" + ], + "metadata---docs-development-signal-and-event-handling-0-b-5-692": [ + "/metadata---docs-development-signal-and-event-handling-0-b-5-692.b16a5b795c3eef3ce5dc.js" ], "content---docs-development-styling-293-cad": [ - "/content---docs-development-styling-293-cad.57e29364f10ab314cd95.js" + "/content---docs-development-styling-293-cad.b3394daf132a97f6e2c2.js" ], "metadata---docs-development-styling-1-c-2-0d6": [ - "/metadata---docs-development-styling-1-c-2-0d6.cf646f298080dd60416c.js" + "/metadata---docs-development-styling-1-c-2-0d6.c1ae40b22fc3b93cd6fc.js" ], "content---docs-development-wrapping-widgets-84-b-538": [ - "/content---docs-development-wrapping-widgets-84-b-538.9af215364af775c2b0eb.js" + "/content---docs-development-wrapping-widgets-84-b-538.8591cd36dcfe1c65b14a.js" ], "metadata---docs-development-wrapping-widgets-303-fb8": [ - "/metadata---docs-development-wrapping-widgets-303-fb8.5e7e3a338110292682bd.js" - ], - "content---docs-guides-getting-startedc-9-e-20f": [ - "/content---docs-guides-getting-startedc-9-e-20f.6269380e01c70ace49d2.js" - ], - "metadata---docs-guides-getting-started-2-b-7-1a4": [ - "/metadata---docs-guides-getting-started-2-b-7-1a4.0aedf083610e316d1470.js" + "/metadata---docs-development-wrapping-widgets-303-fb8.bfc04ad3ffc9ee24e861.js" ], "content---docs-guides-custom-nodegui-native-plugin-632-9db": [ - "/content---docs-guides-custom-nodegui-native-plugin-632-9db.0fa0bcc582ed28185441.js" + "/content---docs-guides-custom-nodegui-native-plugin-632-9db.ae1162899d532c588845.js" ], "metadata---docs-guides-custom-nodegui-native-plugin-92-b-12f": [ - "/metadata---docs-guides-custom-nodegui-native-plugin-92-b-12f.62211867bef7e4d21f3b.js" + "/metadata---docs-guides-custom-nodegui-native-plugin-92-b-12f.184a7a6a1f10e05c6c54.js" ], - "content---docs-guides-images-991-065": [ - "/content---docs-guides-images-991-065.03db921dafc991a62e06.js" + "content---docs-guides-debugging-in-vscodebd-7-cec": [ + "/content---docs-guides-debugging-in-vscodebd-7-cec.a37b675eceeff564dcc8.js" ], - "metadata---docs-guides-images-915-5ee": [ - "/metadata---docs-guides-images-915-5ee.10ba1ee39e0b960585b2.js" + "metadata---docs-guides-debugging-in-vscodebf-8-5b0": [ + "/metadata---docs-guides-debugging-in-vscodebf-8-5b0.d26c0a02667ed3c9416d.js" ], "content---docs-guides-debuggingf-3-f-cf5": [ - "/content---docs-guides-debuggingf-3-f-cf5.17fd90b10558819cfd2c.js" + "/content---docs-guides-debuggingf-3-f-cf5.6a9f350b152e911795d0.js" ], "metadata---docs-guides-debugging-970-fb8": [ - "/metadata---docs-guides-debugging-970-fb8.15de673c97f148cf7fdb.js" + "/metadata---docs-guides-debugging-970-fb8.4834f7c20eceaaaee536.js" + ], + "content---docs-guides-getting-startedc-9-e-20f": [ + "/content---docs-guides-getting-startedc-9-e-20f.058d1e127795274285bb.js" + ], + "metadata---docs-guides-getting-started-2-b-7-1a4": [ + "/metadata---docs-guides-getting-started-2-b-7-1a4.cfc3dec8bc5f547dfbb8.js" ], "content---docs-guides-handle-events-160-4b0": [ - "/content---docs-guides-handle-events-160-4b0.ab24a11d869da8e962ad.js" + "/content---docs-guides-handle-events-160-4b0.c02ea0616d11beafddb3.js" ], "metadata---docs-guides-handle-events-5-eb-540": [ - "/metadata---docs-guides-handle-events-5-eb-540.1892b7b22980fc96357e.js" + "/metadata---docs-guides-handle-events-5-eb-540.61bb8e8da8eeda4cc040.js" ], - "content---docs-guides-scroll-view-76-e-87c": [ - "/content---docs-guides-scroll-view-76-e-87c.53cea080302f9bac3ecf.js" + "content---docs-guides-images-991-065": [ + "/content---docs-guides-images-991-065.914359cdc22f4b9051ef.js" ], - "metadata---docs-guides-scroll-view-9-a-9-2ac": [ - "/metadata---docs-guides-scroll-view-9-a-9-2ac.931ff1d4cdaec943a9e3.js" - ], - "content---docs-guides-stylingfec-977": [ - "/content---docs-guides-stylingfec-977.abdc3277928e484ba13d.js" - ], - "metadata---docs-guides-styling-9-ea-213": [ - "/metadata---docs-guides-styling-9-ea-213.aed0dbfc3f7bae90bf3d.js" - ], - "content---docs-guides-tutoriale-53-6ab": [ - "/content---docs-guides-tutoriale-53-6ab.fdd707e116c3ba754ce0.js" - ], - "metadata---docs-guides-tutorial-1-f-1-23b": [ - "/metadata---docs-guides-tutorial-1-f-1-23b.2ae8509926cea9815368.js" - ], - "content---docs-guides-using-native-node-modules-3-ab-104": [ - "/content---docs-guides-using-native-node-modules-3-ab-104.b133066cc00c3c88720f.js" - ], - "metadata---docs-guides-using-native-node-modules-31-f-551": [ - "/metadata---docs-guides-using-native-node-modules-31-f-551.4f0e3fec075ffe7b94ed.js" - ], - "content---docs-guides-networking-374-03e": [ - "/content---docs-guides-networking-374-03e.623d4b8cadf85b6d5cd8.js" - ], - "metadata---docs-guides-networkingdfd-ce0": [ - "/metadata---docs-guides-networkingdfd-ce0.e38d2bac3793e1a62e11.js" + "metadata---docs-guides-images-915-5ee": [ + "/metadata---docs-guides-images-915-5ee.175b82933d61d3e5deb4.js" ], "content---docs-guides-layoutdf-5-a64": [ - "/content---docs-guides-layoutdf-5-a64.63d6b1efae1bc7129dfc.js" + "/content---docs-guides-layoutdf-5-a64.bbcbc44e5156b817cb02.js" ], "metadata---docs-guides-layoutf-65-d7d": [ - "/metadata---docs-guides-layoutf-65-d7d.e307dcf56dcf4385338a.js" + "/metadata---docs-guides-layoutf-65-d7d.3bdf6df942a2264f480b.js" + ], + "content---docs-guides-networking-374-03e": [ + "/content---docs-guides-networking-374-03e.17133e9de15be6e64aff.js" + ], + "metadata---docs-guides-networkingdfd-ce0": [ + "/metadata---docs-guides-networkingdfd-ce0.332c039b051021fe2724.js" ], "content---docs-guides-nodegui-architecture-262-19e": [ - "/content---docs-guides-nodegui-architecture-262-19e.8b39872b2c36c2047291.js" + "/content---docs-guides-nodegui-architecture-262-19e.245edae39f1ddac01224.js" ], "metadata---docs-guides-nodegui-architecture-550-b82": [ - "/metadata---docs-guides-nodegui-architecture-550-b82.7ea088d08ebcc99cbe05.js" + "/metadata---docs-guides-nodegui-architecture-550-b82.72d9e2773d4e285ca973.js" + ], + "content---docs-guides-scroll-view-76-e-87c": [ + "/content---docs-guides-scroll-view-76-e-87c.73c89be82bf124b2e125.js" + ], + "metadata---docs-guides-scroll-view-9-a-9-2ac": [ + "/metadata---docs-guides-scroll-view-9-a-9-2ac.f6039a7dd2d1fa4c6ca6.js" + ], + "content---docs-guides-stylingfec-977": [ + "/content---docs-guides-stylingfec-977.5838976a5f7313cc4c21.js" + ], + "metadata---docs-guides-styling-9-ea-213": [ + "/metadata---docs-guides-styling-9-ea-213.d5570c147002ef8e6bfe.js" + ], + "content---docs-guides-tutoriale-53-6ab": [ + "/content---docs-guides-tutoriale-53-6ab.3001eaf77a6eeaf068aa.js" + ], + "metadata---docs-guides-tutorial-1-f-1-23b": [ + "/metadata---docs-guides-tutorial-1-f-1-23b.4e417b24befa6a685ab5.js" + ], + "content---docs-guides-using-native-node-modules-3-ab-104": [ + "/content---docs-guides-using-native-node-modules-3-ab-104.3bc40951d03693eaff7d.js" + ], + "metadata---docs-guides-using-native-node-modules-31-f-551": [ + "/metadata---docs-guides-using-native-node-modules-31-f-551.0accd417ae132a661bdf.js" ], "component---theme-blog-tags-posts-page-687-b6c": [ "/component---theme-blog-tags-posts-page-687-b6c.7cbecfb8c53ab9b2f9ba.js" diff --git a/client-manifest.json b/client-manifest.json index cde44a76a..a4381b91c 100644 --- a/client-manifest.json +++ b/client-manifest.json @@ -460,15 +460,15 @@ "css": [ { "file": "1.196ce05925ea6d776920.css", - "hash": "604d250b5a34c84e5807", + "hash": "b0df1d2174d49a40ee1f", "publicPath": "/1.196ce05925ea6d776920.css" } ], "js": [ { - "file": "1.9b3d421a0f44576af60f.js", - "hash": "604d250b5a34c84e5807", - "publicPath": "/1.9b3d421a0f44576af60f.js" + "file": "1.cc710091ea950da6d6a4.js", + "hash": "b0df1d2174d49a40ee1f", + "publicPath": "/1.cc710091ea950da6d6a4.js" } ] }, @@ -492,15 +492,15 @@ "css": [ { "file": "component---site-src-pages-index-jsc-4-f-f99.71bf8f44fd9ac59b6a50.css", - "hash": "39e78b432cd430aaf15d", + "hash": "7cec7d0ed1c448fb9cbd", "publicPath": "/component---site-src-pages-index-jsc-4-f-f99.71bf8f44fd9ac59b6a50.css" } ], "js": [ { - "file": "component---site-src-pages-index-jsc-4-f-f99.505b05deaa8813d82ea6.js", - "hash": "39e78b432cd430aaf15d", - "publicPath": "/component---site-src-pages-index-jsc-4-f-f99.505b05deaa8813d82ea6.js" + "file": "component---site-src-pages-index-jsc-4-f-f99.e83a9966ed03cee3443f.js", + "hash": "7cec7d0ed1c448fb9cbd", + "publicPath": "/component---site-src-pages-index-jsc-4-f-f99.e83a9966ed03cee3443f.js" } ] }, @@ -602,36 +602,36 @@ "13": { "js": [ { - "file": "content---docs-api-event-widgetac-6-11b.a5cf10d898002591a15a.js", - "hash": "3a6f8ca03a6778452cd8", - "publicPath": "/content---docs-api-event-widgetac-6-11b.a5cf10d898002591a15a.js" + "file": "content---docs-api-event-widgetac-6-11b.b87fa94e0cd874003d59.js", + "hash": "04b9fbdf884b5619c109", + "publicPath": "/content---docs-api-event-widgetac-6-11b.b87fa94e0cd874003d59.js" } ] }, "14": { "js": [ { - "file": "content---docs-api-flex-layout-3-dc-a16.315f47480f7da4c659d5.js", - "hash": "dcbd0abf0f36fa1fad62", - "publicPath": "/content---docs-api-flex-layout-3-dc-a16.315f47480f7da4c659d5.js" + "file": "content---docs-api-flex-layout-3-dc-a16.d5ab9ac7b90d9ed88203.js", + "hash": "c4e00f13e4859537937b", + "publicPath": "/content---docs-api-flex-layout-3-dc-a16.d5ab9ac7b90d9ed88203.js" } ] }, "15": { "js": [ { - "file": "content---docs-api-node-layoutd-28-11a.0dace98927a219b41b44.js", - "hash": "769f716d910756af4c4b", - "publicPath": "/content---docs-api-node-layoutd-28-11a.0dace98927a219b41b44.js" + "file": "content---docs-api-node-layoutd-28-11a.f1324fa8676e4bf64b44.js", + "hash": "539b34062a883097a915", + "publicPath": "/content---docs-api-node-layoutd-28-11a.f1324fa8676e4bf64b44.js" } ] }, "16": { "js": [ { - "file": "content---docs-api-node-widget-080-a39.f21482facb1d1599ab0d.js", - "hash": "93777b530476dc9d0c43", - "publicPath": "/content---docs-api-node-widget-080-a39.f21482facb1d1599ab0d.js" + "file": "content---docs-api-node-widget-080-a39.e1d7ab6aab225b7fb2e0.js", + "hash": "19f18f275881740943ad", + "publicPath": "/content---docs-api-node-widget-080-a39.e1d7ab6aab225b7fb2e0.js" } ] }, @@ -647,63 +647,63 @@ "18": { "js": [ { - "file": "content---docs-api-q-abstract-scroll-area-3-e-6-d7f.a166f0f57747870e0ec4.js", - "hash": "6f4737a311739ac047e2", - "publicPath": "/content---docs-api-q-abstract-scroll-area-3-e-6-d7f.a166f0f57747870e0ec4.js" + "file": "content---docs-api-q-abstract-scroll-area-3-e-6-d7f.ce07722700328be8dfa5.js", + "hash": "dc1cc1d2be2687e15a4b", + "publicPath": "/content---docs-api-q-abstract-scroll-area-3-e-6-d7f.ce07722700328be8dfa5.js" } ] }, "19": { "js": [ { - "file": "content---docs-api-q-abstract-slider-3-e-0-54d.1a794a8d8e995ff3f3bc.js", - "hash": "e06581c1f6b880807ed6", - "publicPath": "/content---docs-api-q-abstract-slider-3-e-0-54d.1a794a8d8e995ff3f3bc.js" + "file": "content---docs-api-q-abstract-slider-3-e-0-54d.b7e761ae58b36fe089f1.js", + "hash": "cfe13154ccf3e3c72276", + "publicPath": "/content---docs-api-q-abstract-slider-3-e-0-54d.b7e761ae58b36fe089f1.js" } ] }, "20": { "js": [ { - "file": "content---docs-api-q-applicationd-3-e-0a3.6fa95396d7fbee9da501.js", - "hash": "eded52a2f0fb30426992", - "publicPath": "/content---docs-api-q-applicationd-3-e-0a3.6fa95396d7fbee9da501.js" + "file": "content---docs-api-q-applicationd-3-e-0a3.039f8c83760f87eef546.js", + "hash": "60338471cd7efb472ae5", + "publicPath": "/content---docs-api-q-applicationd-3-e-0a3.039f8c83760f87eef546.js" } ] }, "21": { "js": [ { - "file": "content---docs-api-q-check-boxd-9-b-c95.ecff488106003dd95b58.js", - "hash": "3897aa0cd0209967d207", - "publicPath": "/content---docs-api-q-check-boxd-9-b-c95.ecff488106003dd95b58.js" + "file": "content---docs-api-q-check-boxd-9-b-c95.54af9594d82de2f1c65c.js", + "hash": "dd595e8f5cdfaaddbdd1", + "publicPath": "/content---docs-api-q-check-boxd-9-b-c95.54af9594d82de2f1c65c.js" } ] }, "22": { "js": [ { - "file": "content---docs-api-q-clipboard-69-d-2ef.189654ea9b37adaada9b.js", - "hash": "49494ee78bb41f009381", - "publicPath": "/content---docs-api-q-clipboard-69-d-2ef.189654ea9b37adaada9b.js" + "file": "content---docs-api-q-clipboard-69-d-2ef.2facddd2ce7d03c7d364.js", + "hash": "be5eca279ade3bf270b1", + "publicPath": "/content---docs-api-q-clipboard-69-d-2ef.2facddd2ce7d03c7d364.js" } ] }, "23": { "js": [ { - "file": "content---docs-api-q-cursor-362-d51.7f14f85b8c20c1f5cbf5.js", - "hash": "304a26789a26e98c4370", - "publicPath": "/content---docs-api-q-cursor-362-d51.7f14f85b8c20c1f5cbf5.js" + "file": "content---docs-api-q-cursor-362-d51.72e3b873d390560e1917.js", + "hash": "73a9a9197e0bb9d59040", + "publicPath": "/content---docs-api-q-cursor-362-d51.72e3b873d390560e1917.js" } ] }, "24": { "js": [ { - "file": "content---docs-api-q-dial-80-b-99a.27cba315ea3b12bad153.js", - "hash": "c5a236984901d2b84904", - "publicPath": "/content---docs-api-q-dial-80-b-99a.27cba315ea3b12bad153.js" + "file": "content---docs-api-q-dial-80-b-99a.facd48a52570d2fd7472.js", + "hash": "8a2d26d8f90b8e256862", + "publicPath": "/content---docs-api-q-dial-80-b-99a.facd48a52570d2fd7472.js" } ] }, @@ -719,45 +719,45 @@ "26": { "js": [ { - "file": "content---docs-api-q-icone-5-f-b0d.adda17d3830828da9941.js", - "hash": "417f9519f803b68caa7e", - "publicPath": "/content---docs-api-q-icone-5-f-b0d.adda17d3830828da9941.js" + "file": "content---docs-api-q-icone-5-f-b0d.016d00e28e5a87f3cf94.js", + "hash": "4387979d24bb651f8e82", + "publicPath": "/content---docs-api-q-icone-5-f-b0d.016d00e28e5a87f3cf94.js" } ] }, "27": { "js": [ { - "file": "content---docs-api-q-label-2-f-9-04b.1cdeec52a70db8ef7cc7.js", - "hash": "c7ed321004ffcfcd905e", - "publicPath": "/content---docs-api-q-label-2-f-9-04b.1cdeec52a70db8ef7cc7.js" + "file": "content---docs-api-q-label-2-f-9-04b.9f8c2e203f083cedfdf8.js", + "hash": "7c72a44417d5a715e46f", + "publicPath": "/content---docs-api-q-label-2-f-9-04b.9f8c2e203f083cedfdf8.js" } ] }, "28": { "js": [ { - "file": "content---docs-api-q-line-editea-0-53d.fc2fdf237ea0256a9bc8.js", - "hash": "75665a02bdcdb8ef8cd4", - "publicPath": "/content---docs-api-q-line-editea-0-53d.fc2fdf237ea0256a9bc8.js" + "file": "content---docs-api-q-line-editea-0-53d.f606b13ced935ec46509.js", + "hash": "aebc77d6e75b5bf3e72c", + "publicPath": "/content---docs-api-q-line-editea-0-53d.f606b13ced935ec46509.js" } ] }, "29": { "js": [ { - "file": "content---docs-api-q-main-window-0-e-7-299.b20554db200b1aa6187b.js", - "hash": "7b34cd34f9c99f729b37", - "publicPath": "/content---docs-api-q-main-window-0-e-7-299.b20554db200b1aa6187b.js" + "file": "content---docs-api-q-main-window-0-e-7-299.7a1bf20062e23ed6c510.js", + "hash": "199579d2a0e12cea31f8", + "publicPath": "/content---docs-api-q-main-window-0-e-7-299.7a1bf20062e23ed6c510.js" } ] }, "30": { "js": [ { - "file": "content---docs-api-q-pixmap-8-dd-cb2.3d67d264575cf7bec65c.js", - "hash": "f3019ca5015f5b61d34b", - "publicPath": "/content---docs-api-q-pixmap-8-dd-cb2.3d67d264575cf7bec65c.js" + "file": "content---docs-api-q-pixmap-8-dd-cb2.343e5d75db3125ddfa81.js", + "hash": "22a37d53f12f2596ef1d", + "publicPath": "/content---docs-api-q-pixmap-8-dd-cb2.343e5d75db3125ddfa81.js" } ] }, @@ -773,45 +773,45 @@ "32": { "js": [ { - "file": "content---docs-api-q-progress-barc-46-afe.9cecbb65c33965b0e7f5.js", - "hash": "e07895271a8b6114c0b4", - "publicPath": "/content---docs-api-q-progress-barc-46-afe.9cecbb65c33965b0e7f5.js" + "file": "content---docs-api-q-progress-barc-46-afe.2a5c874c4e33ecb7a2b8.js", + "hash": "36a53f59f5dc6cd4b3f6", + "publicPath": "/content---docs-api-q-progress-barc-46-afe.2a5c874c4e33ecb7a2b8.js" } ] }, "33": { "js": [ { - "file": "content---docs-api-q-push-button-06-c-73e.18589cda96f10dc9259f.js", - "hash": "b480b30117fa36ae289b", - "publicPath": "/content---docs-api-q-push-button-06-c-73e.18589cda96f10dc9259f.js" + "file": "content---docs-api-q-push-button-06-c-73e.9e1e6d8a0e7c17941efd.js", + "hash": "4dafff7fe26e6769d3fa", + "publicPath": "/content---docs-api-q-push-button-06-c-73e.9e1e6d8a0e7c17941efd.js" } ] }, "34": { "js": [ { - "file": "content---docs-api-q-radio-buttone-54-746.c46ca58051e6e9f427b9.js", - "hash": "0dd4d401e19610caf8c9", - "publicPath": "/content---docs-api-q-radio-buttone-54-746.c46ca58051e6e9f427b9.js" + "file": "content---docs-api-q-radio-buttone-54-746.0eceb96f43e589853010.js", + "hash": "1ca8091fce8f84360894", + "publicPath": "/content---docs-api-q-radio-buttone-54-746.0eceb96f43e589853010.js" } ] }, "35": { "js": [ { - "file": "content---docs-api-q-scroll-area-8-c-4-3fd.fd2d29a876286d824831.js", - "hash": "003a95423ab1ecb378e5", - "publicPath": "/content---docs-api-q-scroll-area-8-c-4-3fd.fd2d29a876286d824831.js" + "file": "content---docs-api-q-scroll-area-8-c-4-3fd.fd580650b1d2ac9eee33.js", + "hash": "a1fa287accbef3815a04", + "publicPath": "/content---docs-api-q-scroll-area-8-c-4-3fd.fd580650b1d2ac9eee33.js" } ] }, "36": { "js": [ { - "file": "content---docs-api-q-spin-box-1-ce-bfd.d62b3746ba69df91f4e1.js", - "hash": "59db05675def91b37da2", - "publicPath": "/content---docs-api-q-spin-box-1-ce-bfd.d62b3746ba69df91f4e1.js" + "file": "content---docs-api-q-spin-box-1-ce-bfd.fc03e9106b39d9c9e23c.js", + "hash": "dadcfe584e39cc2ff0b5", + "publicPath": "/content---docs-api-q-spin-box-1-ce-bfd.fc03e9106b39d9c9e23c.js" } ] }, @@ -827,18 +827,18 @@ "38": { "js": [ { - "file": "content---docs-api-q-widget-04-a-59f.64a7421274fdc2d19599.js", - "hash": "a9712269061b102ec751", - "publicPath": "/content---docs-api-q-widget-04-a-59f.64a7421274fdc2d19599.js" + "file": "content---docs-api-q-widget-04-a-59f.789a0ca241a0fb6ad49d.js", + "hash": "368b12e76a69777ee712", + "publicPath": "/content---docs-api-q-widget-04-a-59f.789a0ca241a0fb6ad49d.js" } ] }, "39": { "js": [ { - "file": "content---docs-api-qt-enumsfd-7-cf3.0f709b0fb9cdc99aa034.js", - "hash": "8fe3e676b3afdf7b28f2", - "publicPath": "/content---docs-api-qt-enumsfd-7-cf3.0f709b0fb9cdc99aa034.js" + "file": "content---docs-api-qt-enumsfd-7-cf3.1eed426a340d4c937b0a.js", + "hash": "382ce84d197bae217fea", + "publicPath": "/content---docs-api-qt-enumsfd-7-cf3.1eed426a340d4c937b0a.js" } ] }, @@ -854,81 +854,81 @@ "41": { "js": [ { - "file": "content---docs-api-yoga-widgeta-42-cc7.700c0279e1a09c33064e.js", - "hash": "0e925921c6149fe05c7d", - "publicPath": "/content---docs-api-yoga-widgeta-42-cc7.700c0279e1a09c33064e.js" + "file": "content---docs-api-yoga-widgeta-42-cc7.d048cabe40533b903ea2.js", + "hash": "c33be330becbbfd752c2", + "publicPath": "/content---docs-api-yoga-widgeta-42-cc7.d048cabe40533b903ea2.js" } ] }, "42": { "js": [ { - "file": "content---docs-development-common-errorsf-15-a5b.7c3d3a75915f21303100.js", - "hash": "aebda07baf9b3d770c3a", - "publicPath": "/content---docs-development-common-errorsf-15-a5b.7c3d3a75915f21303100.js" + "file": "content---docs-development-common-errorsf-15-a5b.e038ab8ec8bf334300fb.js", + "hash": "2e56afba2aa4d4017b93", + "publicPath": "/content---docs-development-common-errorsf-15-a5b.e038ab8ec8bf334300fb.js" } ] }, "43": { "js": [ { - "file": "content---docs-development-debuggingb-54-9ed.373640edebafbcf8aeb7.js", - "hash": "061453251faa7dccb072", - "publicPath": "/content---docs-development-debuggingb-54-9ed.373640edebafbcf8aeb7.js" + "file": "content---docs-development-debuggingb-54-9ed.750c6b37dab541484a83.js", + "hash": "307f2e55c8366343a867", + "publicPath": "/content---docs-development-debuggingb-54-9ed.750c6b37dab541484a83.js" } ] }, "44": { "js": [ { - "file": "content---docs-development-getting-started-139-387.861ce8c24b970f99c241.js", - "hash": "550fa6ce0430b62e4eb7", - "publicPath": "/content---docs-development-getting-started-139-387.861ce8c24b970f99c241.js" + "file": "content---docs-development-getting-started-139-387.91c824c53e601bdee051.js", + "hash": "0ffced67cb29e716331f", + "publicPath": "/content---docs-development-getting-started-139-387.91c824c53e601bdee051.js" } ] }, "45": { "js": [ { - "file": "content---docs-development-readme-149-437.115b92599d48666d0070.js", - "hash": "11ad52417c23f238e777", - "publicPath": "/content---docs-development-readme-149-437.115b92599d48666d0070.js" + "file": "content---docs-development-readme-149-437.43394caf4d37e04eb78e.js", + "hash": "479aefd99a8c60473d39", + "publicPath": "/content---docs-development-readme-149-437.43394caf4d37e04eb78e.js" } ] }, "46": { "js": [ { - "file": "content---docs-development-setting-up-28-c-666.7f499704e941e164e2f8.js", - "hash": "988b3f0181cb53985c84", - "publicPath": "/content---docs-development-setting-up-28-c-666.7f499704e941e164e2f8.js" + "file": "content---docs-development-setting-up-28-c-666.3ed03febaee8901fd048.js", + "hash": "45a243aeb8cb9cf2967e", + "publicPath": "/content---docs-development-setting-up-28-c-666.3ed03febaee8901fd048.js" } ] }, "47": { "js": [ { - "file": "content---docs-development-signal-and-event-handling-7-d-4-f3f.7fe7b32c2a017187656e.js", - "hash": "8ca6f4032cd43ed10244", - "publicPath": "/content---docs-development-signal-and-event-handling-7-d-4-f3f.7fe7b32c2a017187656e.js" + "file": "content---docs-development-signal-and-event-handling-7-d-4-f3f.ce2b82a97ac1f368a896.js", + "hash": "a56e4c29697682586fda", + "publicPath": "/content---docs-development-signal-and-event-handling-7-d-4-f3f.ce2b82a97ac1f368a896.js" } ] }, "48": { "js": [ { - "file": "content---docs-development-styling-293-cad.57e29364f10ab314cd95.js", - "hash": "974041e71b21c9e61dcf", - "publicPath": "/content---docs-development-styling-293-cad.57e29364f10ab314cd95.js" + "file": "content---docs-development-styling-293-cad.b3394daf132a97f6e2c2.js", + "hash": "2dd1aa361d886237e36d", + "publicPath": "/content---docs-development-styling-293-cad.b3394daf132a97f6e2c2.js" } ] }, "49": { "js": [ { - "file": "content---docs-development-wrapping-widgets-84-b-538.9af215364af775c2b0eb.js", - "hash": "9ab219845a0a37a22db9", - "publicPath": "/content---docs-development-wrapping-widgets-84-b-538.9af215364af775c2b0eb.js" + "file": "content---docs-development-wrapping-widgets-84-b-538.8591cd36dcfe1c65b14a.js", + "hash": "cc4e7429d354c4f502fe", + "publicPath": "/content---docs-development-wrapping-widgets-84-b-538.8591cd36dcfe1c65b14a.js" } ] }, @@ -953,117 +953,117 @@ "52": { "js": [ { - "file": "content---docs-guides-custom-nodegui-native-plugin-632-9db.0fa0bcc582ed28185441.js", - "hash": "b68870d2a11dc42ec7cb", - "publicPath": "/content---docs-guides-custom-nodegui-native-plugin-632-9db.0fa0bcc582ed28185441.js" + "file": "content---docs-guides-custom-nodegui-native-plugin-632-9db.ae1162899d532c588845.js", + "hash": "d604aea4d283c985ea2b", + "publicPath": "/content---docs-guides-custom-nodegui-native-plugin-632-9db.ae1162899d532c588845.js" } ] }, "53": { "js": [ { - "file": "content---docs-guides-debugging-in-vscodebd-7-cec.d799d1baeab3224d227d.js", - "hash": "9ff03afc028bf711e29d", - "publicPath": "/content---docs-guides-debugging-in-vscodebd-7-cec.d799d1baeab3224d227d.js" + "file": "content---docs-guides-debugging-in-vscodebd-7-cec.a37b675eceeff564dcc8.js", + "hash": "7827fb69f3aa3e2c720d", + "publicPath": "/content---docs-guides-debugging-in-vscodebd-7-cec.a37b675eceeff564dcc8.js" } ] }, "54": { "js": [ { - "file": "content---docs-guides-debuggingf-3-f-cf5.17fd90b10558819cfd2c.js", - "hash": "3caed08b99f58c947c7d", - "publicPath": "/content---docs-guides-debuggingf-3-f-cf5.17fd90b10558819cfd2c.js" + "file": "content---docs-guides-debuggingf-3-f-cf5.6a9f350b152e911795d0.js", + "hash": "97ce16f971a6cbc6ecd4", + "publicPath": "/content---docs-guides-debuggingf-3-f-cf5.6a9f350b152e911795d0.js" } ] }, "55": { "js": [ { - "file": "content---docs-guides-getting-startedc-9-e-20f.6269380e01c70ace49d2.js", - "hash": "2bc561db0c740e4335fb", - "publicPath": "/content---docs-guides-getting-startedc-9-e-20f.6269380e01c70ace49d2.js" + "file": "content---docs-guides-getting-startedc-9-e-20f.058d1e127795274285bb.js", + "hash": "b874712cec9d8c43f58f", + "publicPath": "/content---docs-guides-getting-startedc-9-e-20f.058d1e127795274285bb.js" } ] }, "56": { "js": [ { - "file": "content---docs-guides-handle-events-160-4b0.ab24a11d869da8e962ad.js", - "hash": "5155e03fd2307f448f40", - "publicPath": "/content---docs-guides-handle-events-160-4b0.ab24a11d869da8e962ad.js" + "file": "content---docs-guides-handle-events-160-4b0.c02ea0616d11beafddb3.js", + "hash": "10d4f979771b1170e9eb", + "publicPath": "/content---docs-guides-handle-events-160-4b0.c02ea0616d11beafddb3.js" } ] }, "57": { "js": [ { - "file": "content---docs-guides-images-991-065.03db921dafc991a62e06.js", - "hash": "1207fd19a282444b3b07", - "publicPath": "/content---docs-guides-images-991-065.03db921dafc991a62e06.js" + "file": "content---docs-guides-images-991-065.914359cdc22f4b9051ef.js", + "hash": "c9ea40c24517c7851ed4", + "publicPath": "/content---docs-guides-images-991-065.914359cdc22f4b9051ef.js" } ] }, "58": { "js": [ { - "file": "content---docs-guides-layoutdf-5-a64.63d6b1efae1bc7129dfc.js", - "hash": "2a499000612e8c01cbd7", - "publicPath": "/content---docs-guides-layoutdf-5-a64.63d6b1efae1bc7129dfc.js" + "file": "content---docs-guides-layoutdf-5-a64.bbcbc44e5156b817cb02.js", + "hash": "0771e8b9b49d331a3798", + "publicPath": "/content---docs-guides-layoutdf-5-a64.bbcbc44e5156b817cb02.js" } ] }, "59": { "js": [ { - "file": "content---docs-guides-networking-374-03e.623d4b8cadf85b6d5cd8.js", - "hash": "8c318af16eca45edfbd3", - "publicPath": "/content---docs-guides-networking-374-03e.623d4b8cadf85b6d5cd8.js" + "file": "content---docs-guides-networking-374-03e.17133e9de15be6e64aff.js", + "hash": "60896b6b12ea3c20362c", + "publicPath": "/content---docs-guides-networking-374-03e.17133e9de15be6e64aff.js" } ] }, "60": { "js": [ { - "file": "content---docs-guides-nodegui-architecture-262-19e.8b39872b2c36c2047291.js", - "hash": "e4c4b2a2e69612b1b4e5", - "publicPath": "/content---docs-guides-nodegui-architecture-262-19e.8b39872b2c36c2047291.js" + "file": "content---docs-guides-nodegui-architecture-262-19e.245edae39f1ddac01224.js", + "hash": "766e5de925ba1faeb771", + "publicPath": "/content---docs-guides-nodegui-architecture-262-19e.245edae39f1ddac01224.js" } ] }, "61": { "js": [ { - "file": "content---docs-guides-scroll-view-76-e-87c.53cea080302f9bac3ecf.js", - "hash": "e92fc0d6ac4efc68e3b8", - "publicPath": "/content---docs-guides-scroll-view-76-e-87c.53cea080302f9bac3ecf.js" + "file": "content---docs-guides-scroll-view-76-e-87c.73c89be82bf124b2e125.js", + "hash": "57f9485a515cd14a88f6", + "publicPath": "/content---docs-guides-scroll-view-76-e-87c.73c89be82bf124b2e125.js" } ] }, "62": { "js": [ { - "file": "content---docs-guides-stylingfec-977.abdc3277928e484ba13d.js", - "hash": "fca8b018063c081bad42", - "publicPath": "/content---docs-guides-stylingfec-977.abdc3277928e484ba13d.js" + "file": "content---docs-guides-stylingfec-977.5838976a5f7313cc4c21.js", + "hash": "99d53fef7c470f75ea24", + "publicPath": "/content---docs-guides-stylingfec-977.5838976a5f7313cc4c21.js" } ] }, "63": { "js": [ { - "file": "content---docs-guides-tutoriale-53-6ab.fdd707e116c3ba754ce0.js", - "hash": "eaed1e92d71b1907da95", - "publicPath": "/content---docs-guides-tutoriale-53-6ab.fdd707e116c3ba754ce0.js" + "file": "content---docs-guides-tutoriale-53-6ab.3001eaf77a6eeaf068aa.js", + "hash": "ec005e084fce1c3e3c38", + "publicPath": "/content---docs-guides-tutoriale-53-6ab.3001eaf77a6eeaf068aa.js" } ] }, "64": { "js": [ { - "file": "content---docs-guides-using-native-node-modules-3-ab-104.b133066cc00c3c88720f.js", - "hash": "19662a45736639adda83", - "publicPath": "/content---docs-guides-using-native-node-modules-3-ab-104.b133066cc00c3c88720f.js" + "file": "content---docs-guides-using-native-node-modules-3-ab-104.3bc40951d03693eaff7d.js", + "hash": "8a91eb332de23591d53a", + "publicPath": "/content---docs-guides-using-native-node-modules-3-ab-104.3bc40951d03693eaff7d.js" } ] }, @@ -1079,9 +1079,9 @@ "66": { "js": [ { - "file": "docsMetadata---docs-150-2d6.050a67cf2c62a9aa0583.js", - "hash": "36bfced04b1bae0cc16d", - "publicPath": "/docsMetadata---docs-150-2d6.050a67cf2c62a9aa0583.js" + "file": "docsMetadata---docs-150-2d6.6e875209659be13f2970.js", + "hash": "3781f12a24d9a8186ab1", + "publicPath": "/docsMetadata---docs-150-2d6.6e875209659be13f2970.js" } ] }, @@ -1089,15 +1089,15 @@ "css": [ { "file": "main.f66713773e9ba37b90fe.css", - "hash": "eb66fea365d99f2bccaa", + "hash": "2b829415ddc170fe1ef7", "publicPath": "/main.f66713773e9ba37b90fe.css" } ], "js": [ { - "file": "main.7a48394ebc7e47422c98.js", - "hash": "eb66fea365d99f2bccaa", - "publicPath": "/main.7a48394ebc7e47422c98.js" + "file": "main.3c22308242e28ead5e64.js", + "hash": "2b829415ddc170fe1ef7", + "publicPath": "/main.3c22308242e28ead5e64.js" } ] }, @@ -1149,36 +1149,36 @@ "73": { "js": [ { - "file": "metadata---docs-api-event-widget-39-a-9ea.3ad7032e5b20d9cd659e.js", - "hash": "41947398a9755a817e9a", - "publicPath": "/metadata---docs-api-event-widget-39-a-9ea.3ad7032e5b20d9cd659e.js" + "file": "metadata---docs-api-event-widget-39-a-9ea.34b0ce562deb2ec0ae92.js", + "hash": "99b09ce6f61c28656d8c", + "publicPath": "/metadata---docs-api-event-widget-39-a-9ea.34b0ce562deb2ec0ae92.js" } ] }, "74": { "js": [ { - "file": "metadata---docs-api-flex-layoutecf-540.51456ecddd02966bba3f.js", - "hash": "1ad04a03de581d5ea0d1", - "publicPath": "/metadata---docs-api-flex-layoutecf-540.51456ecddd02966bba3f.js" + "file": "metadata---docs-api-flex-layoutecf-540.7db8561c2c23b0d92b67.js", + "hash": "bdd7cb6bf1a307ab90e8", + "publicPath": "/metadata---docs-api-flex-layoutecf-540.7db8561c2c23b0d92b67.js" } ] }, "75": { "js": [ { - "file": "metadata---docs-api-node-layout-1-e-9-c15.ceab155a191e8fd6b3f8.js", - "hash": "04625828ef01f8a6e66b", - "publicPath": "/metadata---docs-api-node-layout-1-e-9-c15.ceab155a191e8fd6b3f8.js" + "file": "metadata---docs-api-node-layout-1-e-9-c15.192849fc91407c883037.js", + "hash": "2c1a3d199b66e83a9fb1", + "publicPath": "/metadata---docs-api-node-layout-1-e-9-c15.192849fc91407c883037.js" } ] }, "76": { "js": [ { - "file": "metadata---docs-api-node-widgeta-92-a4f.4e8e4c2fcd8d294d5d33.js", - "hash": "435754d9330725b42197", - "publicPath": "/metadata---docs-api-node-widgeta-92-a4f.4e8e4c2fcd8d294d5d33.js" + "file": "metadata---docs-api-node-widgeta-92-a4f.dc800d76f7062b65b2ed.js", + "hash": "5b8a775a3136bde6b52c", + "publicPath": "/metadata---docs-api-node-widgeta-92-a4f.dc800d76f7062b65b2ed.js" } ] }, @@ -1194,63 +1194,63 @@ "78": { "js": [ { - "file": "metadata---docs-api-q-abstract-scroll-area-59-d-279.830987a049e659e13eb5.js", - "hash": "e4106ec16896cbd91bb3", - "publicPath": "/metadata---docs-api-q-abstract-scroll-area-59-d-279.830987a049e659e13eb5.js" + "file": "metadata---docs-api-q-abstract-scroll-area-59-d-279.378868b047b4e7fc733c.js", + "hash": "aa491be2be618b86553d", + "publicPath": "/metadata---docs-api-q-abstract-scroll-area-59-d-279.378868b047b4e7fc733c.js" } ] }, "79": { "js": [ { - "file": "metadata---docs-api-q-abstract-sliderdfa-ab7.a0fe110c4922ec9b163b.js", - "hash": "0e82b925049876d06d60", - "publicPath": "/metadata---docs-api-q-abstract-sliderdfa-ab7.a0fe110c4922ec9b163b.js" + "file": "metadata---docs-api-q-abstract-sliderdfa-ab7.73efd891b1be587b529b.js", + "hash": "35fdae6eaeaf576eb1a4", + "publicPath": "/metadata---docs-api-q-abstract-sliderdfa-ab7.73efd891b1be587b529b.js" } ] }, "80": { "js": [ { - "file": "metadata---docs-api-q-applicationc-1-d-8a4.7e8fedb5dc575b7eb1e4.js", - "hash": "52fca7ec51e487877e7e", - "publicPath": "/metadata---docs-api-q-applicationc-1-d-8a4.7e8fedb5dc575b7eb1e4.js" + "file": "metadata---docs-api-q-applicationc-1-d-8a4.dba24314be49483727c4.js", + "hash": "37ff3516140ee7cb5d0f", + "publicPath": "/metadata---docs-api-q-applicationc-1-d-8a4.dba24314be49483727c4.js" } ] }, "81": { "js": [ { - "file": "metadata---docs-api-q-check-box-132-293.2bcffc7e89579f4aa0b8.js", - "hash": "181d1a0f1f2f9605da50", - "publicPath": "/metadata---docs-api-q-check-box-132-293.2bcffc7e89579f4aa0b8.js" + "file": "metadata---docs-api-q-check-box-132-293.363eb2c9b2bdc95e76bb.js", + "hash": "6658073e96430434d77e", + "publicPath": "/metadata---docs-api-q-check-box-132-293.363eb2c9b2bdc95e76bb.js" } ] }, "82": { "js": [ { - "file": "metadata---docs-api-q-clipboard-486-b21.541daebe97727e2fe521.js", - "hash": "f13d3ff2c3f72d670b5c", - "publicPath": "/metadata---docs-api-q-clipboard-486-b21.541daebe97727e2fe521.js" + "file": "metadata---docs-api-q-clipboard-486-b21.5efa03bad36d45e62cbe.js", + "hash": "ef64dbc87f01db84b015", + "publicPath": "/metadata---docs-api-q-clipboard-486-b21.5efa03bad36d45e62cbe.js" } ] }, "83": { "js": [ { - "file": "metadata---docs-api-q-cursor-887-11e.2565c6f4292aaac41bc4.js", - "hash": "25c63faaa40241f66c15", - "publicPath": "/metadata---docs-api-q-cursor-887-11e.2565c6f4292aaac41bc4.js" + "file": "metadata---docs-api-q-cursor-887-11e.af1b21b104f06148557b.js", + "hash": "03a2ca8fe243e2e753e8", + "publicPath": "/metadata---docs-api-q-cursor-887-11e.af1b21b104f06148557b.js" } ] }, "84": { "js": [ { - "file": "metadata---docs-api-q-dialbfb-aef.1833a299cf00db0c1dd6.js", - "hash": "fb59458e3c9c8387307e", - "publicPath": "/metadata---docs-api-q-dialbfb-aef.1833a299cf00db0c1dd6.js" + "file": "metadata---docs-api-q-dialbfb-aef.e5ded32011b7d6927cdc.js", + "hash": "c5b9a9f743cd49f25588", + "publicPath": "/metadata---docs-api-q-dialbfb-aef.e5ded32011b7d6927cdc.js" } ] }, @@ -1266,45 +1266,45 @@ "86": { "js": [ { - "file": "metadata---docs-api-q-icone-6-d-093.ed4791cba37b43cdef97.js", - "hash": "1c4a9c6eeedeabfea5d4", - "publicPath": "/metadata---docs-api-q-icone-6-d-093.ed4791cba37b43cdef97.js" + "file": "metadata---docs-api-q-icone-6-d-093.1c4c72d6ff116744c296.js", + "hash": "1cea3a052884d6f13272", + "publicPath": "/metadata---docs-api-q-icone-6-d-093.1c4c72d6ff116744c296.js" } ] }, "87": { "js": [ { - "file": "metadata---docs-api-q-label-165-210.945d42961dfc88295677.js", - "hash": "f9547dcdc2d539e98242", - "publicPath": "/metadata---docs-api-q-label-165-210.945d42961dfc88295677.js" + "file": "metadata---docs-api-q-label-165-210.1dba411adf86a92ae91f.js", + "hash": "c5c4a7bab7368c933a4b", + "publicPath": "/metadata---docs-api-q-label-165-210.1dba411adf86a92ae91f.js" } ] }, "88": { "js": [ { - "file": "metadata---docs-api-q-line-edit-13-f-b8a.fca0ca35e830f02efb9d.js", - "hash": "22e7a3124039fb431cc1", - "publicPath": "/metadata---docs-api-q-line-edit-13-f-b8a.fca0ca35e830f02efb9d.js" + "file": "metadata---docs-api-q-line-edit-13-f-b8a.df4fef6cc6001cbc07a7.js", + "hash": "c0161e3673efdf8f7c41", + "publicPath": "/metadata---docs-api-q-line-edit-13-f-b8a.df4fef6cc6001cbc07a7.js" } ] }, "89": { "js": [ { - "file": "metadata---docs-api-q-main-window-04-f-efb.809594a718b59ff458c2.js", - "hash": "f72976110e75892bb927", - "publicPath": "/metadata---docs-api-q-main-window-04-f-efb.809594a718b59ff458c2.js" + "file": "metadata---docs-api-q-main-window-04-f-efb.699f6e2eb1ac78330311.js", + "hash": "d0c1fb6ee9efbed30b16", + "publicPath": "/metadata---docs-api-q-main-window-04-f-efb.699f6e2eb1ac78330311.js" } ] }, "90": { "js": [ { - "file": "metadata---docs-api-q-pixmapfdf-820.f23b49133b8588f3daec.js", - "hash": "45ffa151f2a0ee89b994", - "publicPath": "/metadata---docs-api-q-pixmapfdf-820.f23b49133b8588f3daec.js" + "file": "metadata---docs-api-q-pixmapfdf-820.087e26967d50eb06140d.js", + "hash": "cca2fcb72ef091777f47", + "publicPath": "/metadata---docs-api-q-pixmapfdf-820.087e26967d50eb06140d.js" } ] }, @@ -1320,45 +1320,45 @@ "92": { "js": [ { - "file": "metadata---docs-api-q-progress-bar-43-d-07e.08ee1613bacad45a5510.js", - "hash": "612e1c89d86f33c63d7b", - "publicPath": "/metadata---docs-api-q-progress-bar-43-d-07e.08ee1613bacad45a5510.js" + "file": "metadata---docs-api-q-progress-bar-43-d-07e.a527e07318808cde454e.js", + "hash": "ced6e9165233a902f0ab", + "publicPath": "/metadata---docs-api-q-progress-bar-43-d-07e.a527e07318808cde454e.js" } ] }, "93": { "js": [ { - "file": "metadata---docs-api-q-push-button-96-d-c92.41704120c43af310af19.js", - "hash": "52296f07998394ed05ec", - "publicPath": "/metadata---docs-api-q-push-button-96-d-c92.41704120c43af310af19.js" + "file": "metadata---docs-api-q-push-button-96-d-c92.b15a45966fb25f5f9917.js", + "hash": "8afeaf91f66cabcee6e6", + "publicPath": "/metadata---docs-api-q-push-button-96-d-c92.b15a45966fb25f5f9917.js" } ] }, "94": { "js": [ { - "file": "metadata---docs-api-q-radio-button-367-f7c.e2815cee23af3e7e2c18.js", - "hash": "35f4a507b8720b9b8f6e", - "publicPath": "/metadata---docs-api-q-radio-button-367-f7c.e2815cee23af3e7e2c18.js" + "file": "metadata---docs-api-q-radio-button-367-f7c.11484c432455585a7ef3.js", + "hash": "210634f17771e46009f2", + "publicPath": "/metadata---docs-api-q-radio-button-367-f7c.11484c432455585a7ef3.js" } ] }, "95": { "js": [ { - "file": "metadata---docs-api-q-scroll-area-46-a-96e.4a0fe78cc1b07f72fe78.js", - "hash": "0400c5c8a928d557322d", - "publicPath": "/metadata---docs-api-q-scroll-area-46-a-96e.4a0fe78cc1b07f72fe78.js" + "file": "metadata---docs-api-q-scroll-area-46-a-96e.a5c480374e3f8b5fcea2.js", + "hash": "23abe7fb83acb811ef1a", + "publicPath": "/metadata---docs-api-q-scroll-area-46-a-96e.a5c480374e3f8b5fcea2.js" } ] }, "96": { "js": [ { - "file": "metadata---docs-api-q-spin-box-809-ae0.055050a90b41e50bfa5a.js", - "hash": "03f7d3be0a59c02576de", - "publicPath": "/metadata---docs-api-q-spin-box-809-ae0.055050a90b41e50bfa5a.js" + "file": "metadata---docs-api-q-spin-box-809-ae0.1fcda0244eebb91ff1bf.js", + "hash": "231826b5661cb259a59f", + "publicPath": "/metadata---docs-api-q-spin-box-809-ae0.1fcda0244eebb91ff1bf.js" } ] }, @@ -1374,18 +1374,18 @@ "98": { "js": [ { - "file": "metadata---docs-api-q-widget-287-e6c.7f4508b8aa6a625ea9c9.js", - "hash": "7bf0027d1f04b685ba35", - "publicPath": "/metadata---docs-api-q-widget-287-e6c.7f4508b8aa6a625ea9c9.js" + "file": "metadata---docs-api-q-widget-287-e6c.1a1aa4d570d756d63bb4.js", + "hash": "296a0301da8a2e88f9b3", + "publicPath": "/metadata---docs-api-q-widget-287-e6c.1a1aa4d570d756d63bb4.js" } ] }, "99": { "js": [ { - "file": "metadata---docs-api-qt-enums-423-cf9.0270a53b7868fcd4cd97.js", - "hash": "63b0332e99ffc939c6ec", - "publicPath": "/metadata---docs-api-qt-enums-423-cf9.0270a53b7868fcd4cd97.js" + "file": "metadata---docs-api-qt-enums-423-cf9.fb1940e1fff15d344906.js", + "hash": "9af9c95d2c2fda710259", + "publicPath": "/metadata---docs-api-qt-enums-423-cf9.fb1940e1fff15d344906.js" } ] }, @@ -1401,36 +1401,36 @@ "101": { "js": [ { - "file": "metadata---docs-api-yoga-widget-95-c-f8b.525eb323f1249d3f9ae6.js", - "hash": "d3d9fa46cae16791450e", - "publicPath": "/metadata---docs-api-yoga-widget-95-c-f8b.525eb323f1249d3f9ae6.js" + "file": "metadata---docs-api-yoga-widget-95-c-f8b.bdbc70e8a3ba6a1d1808.js", + "hash": "5126ead782bb862b36c6", + "publicPath": "/metadata---docs-api-yoga-widget-95-c-f8b.bdbc70e8a3ba6a1d1808.js" } ] }, "102": { "js": [ { - "file": "metadata---docs-development-common-errors-402-ef4.6ddd37623148595ab0b3.js", - "hash": "4713cc441267f01390be", - "publicPath": "/metadata---docs-development-common-errors-402-ef4.6ddd37623148595ab0b3.js" + "file": "metadata---docs-development-common-errors-402-ef4.7ea9ca2120cf1ce1bce9.js", + "hash": "7b61c1eae78a2381aa47", + "publicPath": "/metadata---docs-development-common-errors-402-ef4.7ea9ca2120cf1ce1bce9.js" } ] }, "103": { "js": [ { - "file": "metadata---docs-development-debuggingc-36-26a.155c6553de08c9ea3273.js", - "hash": "59000796e09fe33c1184", - "publicPath": "/metadata---docs-development-debuggingc-36-26a.155c6553de08c9ea3273.js" + "file": "metadata---docs-development-debuggingc-36-26a.3bf9d58aef0157443ea5.js", + "hash": "0570fb3bb0a96d791012", + "publicPath": "/metadata---docs-development-debuggingc-36-26a.3bf9d58aef0157443ea5.js" } ] }, "104": { "js": [ { - "file": "metadata---docs-development-getting-started-89-b-c7a.84e0a166655b36efc010.js", - "hash": "6caa8c30ae67e529b7de", - "publicPath": "/metadata---docs-development-getting-started-89-b-c7a.84e0a166655b36efc010.js" + "file": "metadata---docs-development-getting-started-89-b-c7a.863d1b0e22372d87282e.js", + "hash": "a0f881778ba6048d9b65", + "publicPath": "/metadata---docs-development-getting-started-89-b-c7a.863d1b0e22372d87282e.js" } ] }, @@ -1446,36 +1446,36 @@ "106": { "js": [ { - "file": "metadata---docs-development-setting-up-979-75f.208e7e24443dbc777f36.js", - "hash": "1a6dbab3ab32b10c98ff", - "publicPath": "/metadata---docs-development-setting-up-979-75f.208e7e24443dbc777f36.js" + "file": "metadata---docs-development-setting-up-979-75f.8f9fc5a72c685e8d0e31.js", + "hash": "40a1a83697048bb5eea7", + "publicPath": "/metadata---docs-development-setting-up-979-75f.8f9fc5a72c685e8d0e31.js" } ] }, "107": { "js": [ { - "file": "metadata---docs-development-signal-and-event-handling-0-b-5-692.55ae9e21c216869373d9.js", - "hash": "32e78d3743fa0450dd81", - "publicPath": "/metadata---docs-development-signal-and-event-handling-0-b-5-692.55ae9e21c216869373d9.js" + "file": "metadata---docs-development-signal-and-event-handling-0-b-5-692.b16a5b795c3eef3ce5dc.js", + "hash": "cfb9a7b9fa754918ecec", + "publicPath": "/metadata---docs-development-signal-and-event-handling-0-b-5-692.b16a5b795c3eef3ce5dc.js" } ] }, "108": { "js": [ { - "file": "metadata---docs-development-styling-1-c-2-0d6.cf646f298080dd60416c.js", - "hash": "9d1e1c30edbffd0f86e0", - "publicPath": "/metadata---docs-development-styling-1-c-2-0d6.cf646f298080dd60416c.js" + "file": "metadata---docs-development-styling-1-c-2-0d6.c1ae40b22fc3b93cd6fc.js", + "hash": "1a26fa35469aa7c47e08", + "publicPath": "/metadata---docs-development-styling-1-c-2-0d6.c1ae40b22fc3b93cd6fc.js" } ] }, "109": { "js": [ { - "file": "metadata---docs-development-wrapping-widgets-303-fb8.5e7e3a338110292682bd.js", - "hash": "a7fd073984ff83d285ab", - "publicPath": "/metadata---docs-development-wrapping-widgets-303-fb8.5e7e3a338110292682bd.js" + "file": "metadata---docs-development-wrapping-widgets-303-fb8.bfc04ad3ffc9ee24e861.js", + "hash": "8eaa9dade4f31b691acc", + "publicPath": "/metadata---docs-development-wrapping-widgets-303-fb8.bfc04ad3ffc9ee24e861.js" } ] }, @@ -1500,117 +1500,117 @@ "112": { "js": [ { - "file": "metadata---docs-guides-custom-nodegui-native-plugin-92-b-12f.62211867bef7e4d21f3b.js", - "hash": "97c60515c62ad2ab3aba", - "publicPath": "/metadata---docs-guides-custom-nodegui-native-plugin-92-b-12f.62211867bef7e4d21f3b.js" + "file": "metadata---docs-guides-custom-nodegui-native-plugin-92-b-12f.184a7a6a1f10e05c6c54.js", + "hash": "80536ab8ff5827e5c9f3", + "publicPath": "/metadata---docs-guides-custom-nodegui-native-plugin-92-b-12f.184a7a6a1f10e05c6c54.js" } ] }, "113": { "js": [ { - "file": "metadata---docs-guides-debugging-970-fb8.15de673c97f148cf7fdb.js", - "hash": "06bec910e3c385f36c9c", - "publicPath": "/metadata---docs-guides-debugging-970-fb8.15de673c97f148cf7fdb.js" + "file": "metadata---docs-guides-debugging-970-fb8.4834f7c20eceaaaee536.js", + "hash": "b2282d1a5f493b7f9dda", + "publicPath": "/metadata---docs-guides-debugging-970-fb8.4834f7c20eceaaaee536.js" } ] }, "114": { "js": [ { - "file": "metadata---docs-guides-debugging-in-vscodebf-8-5b0.b2a95b4e9c9da3fbb308.js", - "hash": "8797649e429a19db6f96", - "publicPath": "/metadata---docs-guides-debugging-in-vscodebf-8-5b0.b2a95b4e9c9da3fbb308.js" + "file": "metadata---docs-guides-debugging-in-vscodebf-8-5b0.d26c0a02667ed3c9416d.js", + "hash": "af929449097de9bef636", + "publicPath": "/metadata---docs-guides-debugging-in-vscodebf-8-5b0.d26c0a02667ed3c9416d.js" } ] }, "115": { "js": [ { - "file": "metadata---docs-guides-getting-started-2-b-7-1a4.0aedf083610e316d1470.js", - "hash": "9669462ff1c2e7a6b3c3", - "publicPath": "/metadata---docs-guides-getting-started-2-b-7-1a4.0aedf083610e316d1470.js" + "file": "metadata---docs-guides-getting-started-2-b-7-1a4.cfc3dec8bc5f547dfbb8.js", + "hash": "9c9e40859c3866a56602", + "publicPath": "/metadata---docs-guides-getting-started-2-b-7-1a4.cfc3dec8bc5f547dfbb8.js" } ] }, "116": { "js": [ { - "file": "metadata---docs-guides-handle-events-5-eb-540.1892b7b22980fc96357e.js", - "hash": "9380e40a1bf7ac890019", - "publicPath": "/metadata---docs-guides-handle-events-5-eb-540.1892b7b22980fc96357e.js" + "file": "metadata---docs-guides-handle-events-5-eb-540.61bb8e8da8eeda4cc040.js", + "hash": "54d5128f7f207f085fed", + "publicPath": "/metadata---docs-guides-handle-events-5-eb-540.61bb8e8da8eeda4cc040.js" } ] }, "117": { "js": [ { - "file": "metadata---docs-guides-images-915-5ee.10ba1ee39e0b960585b2.js", - "hash": "76e04dce5d1ab8e42fd5", - "publicPath": "/metadata---docs-guides-images-915-5ee.10ba1ee39e0b960585b2.js" + "file": "metadata---docs-guides-images-915-5ee.175b82933d61d3e5deb4.js", + "hash": "e51f418e4ee50cadd7d3", + "publicPath": "/metadata---docs-guides-images-915-5ee.175b82933d61d3e5deb4.js" } ] }, "118": { "js": [ { - "file": "metadata---docs-guides-layoutf-65-d7d.e307dcf56dcf4385338a.js", - "hash": "00671ee792204ace87e3", - "publicPath": "/metadata---docs-guides-layoutf-65-d7d.e307dcf56dcf4385338a.js" + "file": "metadata---docs-guides-layoutf-65-d7d.3bdf6df942a2264f480b.js", + "hash": "0e33f37bd528a589435e", + "publicPath": "/metadata---docs-guides-layoutf-65-d7d.3bdf6df942a2264f480b.js" } ] }, "119": { "js": [ { - "file": "metadata---docs-guides-networkingdfd-ce0.e38d2bac3793e1a62e11.js", - "hash": "a4b67151a838dfa33d0b", - "publicPath": "/metadata---docs-guides-networkingdfd-ce0.e38d2bac3793e1a62e11.js" + "file": "metadata---docs-guides-networkingdfd-ce0.332c039b051021fe2724.js", + "hash": "4463ff528eb7034e71d7", + "publicPath": "/metadata---docs-guides-networkingdfd-ce0.332c039b051021fe2724.js" } ] }, "120": { "js": [ { - "file": "metadata---docs-guides-nodegui-architecture-550-b82.7ea088d08ebcc99cbe05.js", - "hash": "1ca4afb39a18d62b4d23", - "publicPath": "/metadata---docs-guides-nodegui-architecture-550-b82.7ea088d08ebcc99cbe05.js" + "file": "metadata---docs-guides-nodegui-architecture-550-b82.72d9e2773d4e285ca973.js", + "hash": "1bdc1dccfdc80164b158", + "publicPath": "/metadata---docs-guides-nodegui-architecture-550-b82.72d9e2773d4e285ca973.js" } ] }, "121": { "js": [ { - "file": "metadata---docs-guides-scroll-view-9-a-9-2ac.931ff1d4cdaec943a9e3.js", - "hash": "607626fb53d6b55da35c", - "publicPath": "/metadata---docs-guides-scroll-view-9-a-9-2ac.931ff1d4cdaec943a9e3.js" + "file": "metadata---docs-guides-scroll-view-9-a-9-2ac.f6039a7dd2d1fa4c6ca6.js", + "hash": "4a389e481a1914ef0dff", + "publicPath": "/metadata---docs-guides-scroll-view-9-a-9-2ac.f6039a7dd2d1fa4c6ca6.js" } ] }, "122": { "js": [ { - "file": "metadata---docs-guides-styling-9-ea-213.aed0dbfc3f7bae90bf3d.js", - "hash": "c5a8588e3d3d76a9ee5f", - "publicPath": "/metadata---docs-guides-styling-9-ea-213.aed0dbfc3f7bae90bf3d.js" + "file": "metadata---docs-guides-styling-9-ea-213.d5570c147002ef8e6bfe.js", + "hash": "77d9df1061168430f77f", + "publicPath": "/metadata---docs-guides-styling-9-ea-213.d5570c147002ef8e6bfe.js" } ] }, "123": { "js": [ { - "file": "metadata---docs-guides-tutorial-1-f-1-23b.2ae8509926cea9815368.js", - "hash": "1102de5edccee23e9a0b", - "publicPath": "/metadata---docs-guides-tutorial-1-f-1-23b.2ae8509926cea9815368.js" + "file": "metadata---docs-guides-tutorial-1-f-1-23b.4e417b24befa6a685ab5.js", + "hash": "c11dfc404c750956f9fa", + "publicPath": "/metadata---docs-guides-tutorial-1-f-1-23b.4e417b24befa6a685ab5.js" } ] }, "124": { "js": [ { - "file": "metadata---docs-guides-using-native-node-modules-31-f-551.4f0e3fec075ffe7b94ed.js", - "hash": "91c6399e8b0123e5d399", - "publicPath": "/metadata---docs-guides-using-native-node-modules-31-f-551.4f0e3fec075ffe7b94ed.js" + "file": "metadata---docs-guides-using-native-node-modules-31-f-551.0accd417ae132a661bdf.js", + "hash": "44203c62856da7847371", + "publicPath": "/metadata---docs-guides-using-native-node-modules-31-f-551.0accd417ae132a661bdf.js" } ] }, @@ -1626,9 +1626,9 @@ "126": { "js": [ { - "file": "runtime~main.5401bcebbcd08e3b96ec.js", - "hash": "7b5684847e02f5d3c69a", - "publicPath": "/runtime~main.5401bcebbcd08e3b96ec.js" + "file": "runtime~main.7cbd6896b928f5c59d5f.js", + "hash": "e76e72a45a2fa795d0f2", + "publicPath": "/runtime~main.7cbd6896b928f5c59d5f.js" } ] }, @@ -1644,9 +1644,9 @@ "128": { "js": [ { - "file": "128.e842e81be02948779cd3.js", - "hash": "b187810cec4c56cee77f", - "publicPath": "/128.e842e81be02948779cd3.js" + "file": "128.275ddccdaf890a83df15.js", + "hash": "689fb745571f2e632868", + "publicPath": "/128.275ddccdaf890a83df15.js" } ] }, diff --git a/component---site-src-pages-index-jsc-4-f-f99.505b05deaa8813d82ea6.js b/component---site-src-pages-index-jsc-4-f-f99.e83a9966ed03cee3443f.js similarity index 66% rename from component---site-src-pages-index-jsc-4-f-f99.505b05deaa8813d82ea6.js rename to component---site-src-pages-index-jsc-4-f-f99.e83a9966ed03cee3443f.js index 914d0bbd5..c2ff9b482 100644 --- a/component---site-src-pages-index-jsc-4-f-f99.505b05deaa8813d82ea6.js +++ b/component---site-src-pages-index-jsc-4-f-f99.e83a9966ed03cee3443f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{156:function(e,n,t){"use strict";t.r(n);var a=t(0),r=t.n(a),i=t(163),l=t.n(i),c=t(164),o=t(167);function u(){var e=E(["\n font-weight: 600;\n"]);return u=function(){return e},e}function m(){var e=E([""]);return m=function(){return e},e}function s(){var e=E([""]);return s=function(){return e},e}function d(){var e=E(["\n font-size: 20px;\n"]);return d=function(){return e},e}function f(){var e=E([""]);return f=function(){return e},e}function p(){var e=E(["\n flex-direction: column;\n display: flex;\n align-items: center;\n"]);return p=function(){return e},e}function g(){var e=E(["\n margin-left: auto;\n margin-right: auto;\n max-width: 1140px;\n max-width: var(--ifm-container-width);\n padding-left: 1rem;\n padding-left: var(--ifm-spacing-horizontal);\n padding-right: 1rem;\n padding-right: var(--ifm-spacing-horizontal);\n width: 100%;\n"]);return g=function(){return e},e}function v(){var e=E(["\n display: flex;\n align-items: center;\n padding: 2rem 0 0 0;\n width: 100%;\n margin: 0 auto;\n"]);return v=function(){return e},e}function h(){var e=E([""]);return h=function(){return e},e}function E(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}var b=o.a.header(h()),w=o.a.section(v()),x=o.a.div(g()),y=o.a.div(p()),O=(o.a.ol(f()),o.a.li(d()),o.a.h1(s())),k=o.a.h2(m());o.a.h4(u());function N(){var e=C(["\n width: 600px;\n max-width: 100%;\n"]);return N=function(){return e},e}function z(){var e=C(["\n font-weight: 400;\n"]);return z=function(){return e},e}function j(){var e=C(['\n background: black;\n display: flex;\n flex-direction: column;\n border: 1px solid gray;\n border-bottom: none;\n border-top-left-radius: 10px;\n border-top-right-radius: 10px;\n padding: 50px 30px 30px 30px;\n width: 600px;\n max-width: 100%;\n position: relative;\n margin-bottom: 20px;\n &::before {\n content: "○ ○ ○";\n color: gray;\n font-size: 14px;\n position: absolute;\n left: 15px;\n top: 5px;\n }\n']);return j=function(){return e},e}function S(){var e=C(['\n color: white !important;\n font-size: 14px;\n position: relative;\n &::before {\n content: "$";\n position: absolute;\n left: -13px;\n color: gray;\n }\n']);return S=function(){return e},e}function C(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}var _=o.a.code(S()),T=o.a.div(j()),P=o.a.h4(z()),W=o.a.div(N()),F=function(){return r.a.createElement(w,{id:"quick-start"},r.a.createElement(x,null,r.a.createElement(y,null,r.a.createElement(k,null,"Give it a try"),r.a.createElement(W,null,r.a.createElement(P,null,"1. Run these commands"),r.a.createElement(T,null,r.a.createElement(_,null,"git clone https://github.com/nodegui/nodegui-starter"),r.a.createElement(_,null,"cd nodegui-starter"),r.a.createElement(_,null,"npm install"),r.a.createElement(_,null,"npm start")),r.a.createElement(P,null,"2."," ",r.a.createElement("a",{className:"LinkBasics",href:"docs/guides/getting-started"},"Learn the basics")," ","or dive deeper and take a"," ",r.a.createElement("a",{className:"LinkBasics",href:"docs/api/QApplication"},"look at the APIs."))))))},G=t(171),J=t.n(G),I=t(166),L=t.n(I);function U(){var e=M(["\n padding-bottom: 40px;\n"]);return U=function(){return e},e}function B(){var e=M(["\n max-width: 170px;\n"]);return B=function(){return e},e}function q(){var e=M(["\n font-size: 1.6em;\n text-align: center;\n"]);return q=function(){return e},e}function Q(){var e=M(["\n font-size: 3em;\n font-weight: 600;\n"]);return Q=function(){return e},e}function A(){var e=M(["\n ","\n padding: 0.7rem 1.1rem;\n font-size: 1.2em;\n"]);return A=function(){return e},e}function M(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}var R=o.a.a(A(),(function(e){switch(e.type){case"primary":return"\n color: white; \n background: var(--ifm-color-primary);\n &:hover {\n color: white;\n text-decoration: none;\n background: var(--ifm-color-primary-dark);\n }\n ";case"secondary":return'\n &::after {\n content: "›";\n font-size: 24px;\n margin-left: 5px;\n text-align: center;\n }\n '}})),H=Object(o.a)(O)(Q()),V=o.a.p(q()),X=o.a.img(B()),$=Object(o.a)(b)(U());function D(){return r.a.createElement("div",null,r.a.createElement(R,{type:"primary",href:"#quick-start",target:"_self"},"Quick start"),r.a.createElement(R,{type:"secondary",href:L()("docs/guides/getting-started"),target:"_self"},"Learn basics"))}var K=function(){var e=l()().siteConfig,n=void 0===e?{}:e;return r.a.createElement($,null,r.a.createElement(x,null,r.a.createElement(y,null,r.a.createElement(X,{src:"img/logox200.png"}),r.a.createElement(H,null,n.title),r.a.createElement(V,null,n.tagline),r.a.createElement("div",{className:J.a.buttons},r.a.createElement(D,null)))))},Y=t(165),Z=t.n(Y),ee=[{title:r.a.createElement(r.a.Fragment,null,"Web Technologies"),imageUrl:"img/undraw_website_setup.svg",description:r.a.createElement(r.a.Fragment,null,"With NodeGui, you can build your app with familiar web technologies like CSS and JavaScript. There is even a"," ",r.a.createElement("a",{href:"https://react.nodegui.org"},"React based version"),".")},{title:r.a.createElement(r.a.Fragment,null,"Open Source"),imageUrl:"img/undraw_code_review.svg",description:r.a.createElement(r.a.Fragment,null,"NodeGui is an open source project maintained by an active community of contributors.")},{title:r.a.createElement(r.a.Fragment,null," Cross Platform"),imageUrl:"img/undraw_windows.svg",description:r.a.createElement(r.a.Fragment,null,"Compatible with Mac, Windows, and Linux, NodeGui apps build and run on three platforms.")}],ne=function(){return r.a.createElement("section",{className:J.a.features},r.a.createElement("div",{className:"container"},r.a.createElement("div",{className:"row"},ee.map((function(e,n){var t=e.imageUrl,a=e.title,i=e.description;return r.a.createElement("div",{key:n,className:Z()("col col--4",J.a.feature)},t&&r.a.createElement("div",{className:"text--center"},r.a.createElement("img",{className:J.a.featureImage,src:L()(t),alt:a})),r.a.createElement("h3",{className:"text--center"},a),r.a.createElement("p",{className:"text--center"},i))})))))},te=(t(188),function(e){return r.a.createElement(w,null,r.a.createElement("div",{className:"SplitView"},r.a.createElement("div",{className:"column first left ".concat(e.columnOneClass)},e.columnOne),r.a.createElement("div",{className:"column last right ".concat(e.columnTwoClass)},e.columnTwo)))});function ae(){var e=function(e,n){n||(n=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}(["\n max-height: 300px;\n padding-bottom: 40px;\n"]);return ae=function(){return e},e}var re=o.a.img(ae()),ie=function(){return r.a.createElement(te,{columnTwoClass:"text",columnOne:r.a.createElement((function(){return r.a.createElement(re,{src:"img/demo.png"})}),null),columnTwo:r.a.createElement((function(){return r.a.createElement("div",null,r.a.createElement("h3",null,"Create native apps for Windows, MacOs and Linux using JavaScript and CSS"),r.a.createElement("p",null,"lets you create truly native apps and doesn't compromise on your users' experience. It provides a core set of platform agnostic native widgets that map directly to the platform’s native UI building blocks."),r.a.createElement("p",null,"NodeGui widgets are built on top of"," ",r.a.createElement("a",{href:"https://www.qt.io/",target:"_blank"},"Qt")," ","which is a mature dekstop apps framework. NodeGui widgets are extremely customizable just like in the web but does"," ",r.a.createElement("strong",null,"NOT")," use a Web browser under the hood."))}),null)})};function le(){var e=function(e,n){n||(n=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}(["\n max-height: 300px;\n padding-bottom: 40px;\n"]);return le=function(){return e},e}var ce=o.a.img(le()),oe=function(){return r.a.createElement(te,{columnOneClass:"text",columnOne:r.a.createElement((function(){return r.a.createElement("div",null,r.a.createElement("h3",null,"Written in JavaScript—rendered with native code by Qt"),r.a.createElement("p",null,"Apps can be built completely in JavaScript. This enables native app development for whole new teams of developers, and can let existing native teams work much faster."),r.a.createElement("p",null,"With NodeGui you get flexibility of web and perfromance of Native desktop apps."))}),null),columnTwo:r.a.createElement((function(){return r.a.createElement("div",null,r.a.createElement(ce,{src:"img/code-sample.png"}))}),null)})};n.default=function(){var e=l()().siteConfig,n=void 0===e?{}:e;return r.a.createElement(c.a,{title:"Hello from ".concat(n.title),description:"Build performant, native and cross-platform desktop applications with JavaScript and CSS 🚀"},r.a.createElement(K,null),r.a.createElement("main",null,r.a.createElement(ne,null),r.a.createElement(ie,null),r.a.createElement(oe,null),r.a.createElement(F,null)))}},171:function(e,n,t){e.exports={heroBanner:"heroBanner_2Ftp",buttons:"buttons_1Wc3",features:"features_P2SU",featureImage:"featureImage_3Xqx"}},188:function(e,n,t){}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{156:function(e,n,t){"use strict";t.r(n);var a=t(0),r=t.n(a),i=t(163),l=t.n(i),c=t(164),o=t(166);function u(){var e=E(["\n font-weight: 600;\n"]);return u=function(){return e},e}function m(){var e=E([""]);return m=function(){return e},e}function s(){var e=E([""]);return s=function(){return e},e}function d(){var e=E(["\n font-size: 20px;\n"]);return d=function(){return e},e}function p(){var e=E([""]);return p=function(){return e},e}function f(){var e=E(["\n flex-direction: column;\n display: flex;\n align-items: center;\n"]);return f=function(){return e},e}function g(){var e=E(["\n margin-left: auto;\n margin-right: auto;\n max-width: 1140px;\n max-width: var(--ifm-container-width);\n padding-left: 1rem;\n padding-left: var(--ifm-spacing-horizontal);\n padding-right: 1rem;\n padding-right: var(--ifm-spacing-horizontal);\n width: 100%;\n"]);return g=function(){return e},e}function v(){var e=E(["\n display: flex;\n align-items: center;\n padding: 2rem 0 0 0;\n width: 100%;\n margin: 0 auto;\n"]);return v=function(){return e},e}function h(){var e=E([""]);return h=function(){return e},e}function E(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}var b=o.a.header(h()),w=o.a.section(v()),x=o.a.div(g()),y=o.a.div(f()),O=(o.a.ol(p()),o.a.li(d()),o.a.h1(s())),j=o.a.h2(m());o.a.h4(u());function k(){var e=C(["\n width: 600px;\n max-width: 100%;\n"]);return k=function(){return e},e}function N(){var e=C(["\n font-weight: 400;\n"]);return N=function(){return e},e}function z(){var e=C(['\n background: black;\n display: flex;\n flex-direction: column;\n border: 1px solid gray;\n border-bottom: none;\n border-top-left-radius: 10px;\n border-top-right-radius: 10px;\n padding: 50px 30px 30px 30px;\n width: 600px;\n max-width: 100%;\n position: relative;\n margin-bottom: 20px;\n &::before {\n content: "○ ○ ○";\n color: gray;\n font-size: 14px;\n position: absolute;\n left: 15px;\n top: 5px;\n }\n']);return z=function(){return e},e}function S(){var e=C(['\n color: white !important;\n font-size: 14px;\n position: relative;\n &::before {\n content: "$";\n position: absolute;\n left: -13px;\n color: gray;\n }\n']);return S=function(){return e},e}function C(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}var _=o.a.code(S()),P=o.a.div(z()),T=o.a.h4(N()),G=o.a.div(k()),J=function(){return r.a.createElement(w,{id:"quick-start"},r.a.createElement(x,null,r.a.createElement(y,null,r.a.createElement(j,null,"Give it a try"),r.a.createElement(G,null,r.a.createElement(T,null,"1. Run these commands"),r.a.createElement(P,null,r.a.createElement(_,null,"git clone https://github.com/nodegui/nodegui-starter"),r.a.createElement(_,null,"cd nodegui-starter"),r.a.createElement(_,null,"npm install"),r.a.createElement(_,null,"npm start")),r.a.createElement(T,null,"2."," ",r.a.createElement("a",{className:"LinkBasics",href:"docs/guides/getting-started"},"Learn the basics")," ","or dive deeper and take a"," ",r.a.createElement("a",{className:"LinkBasics",href:"docs/api/QApplication"},"look at the APIs."))))))},W=t(171),F=t.n(W),L=t(167),I=t.n(L);function U(){var e=M(["\n padding-bottom: 40px;\n"]);return U=function(){return e},e}function q(){var e=M(["\n max-width: 170px;\n"]);return q=function(){return e},e}function B(){var e=M(["\n font-size: 1.6em;\n text-align: center;\n"]);return B=function(){return e},e}function Q(){var e=M(["\n font-size: 3em;\n font-weight: 600;\n"]);return Q=function(){return e},e}function A(){var e=M(["\n ","\n padding: 0.7rem 1.1rem;\n font-size: 1.2em;\n"]);return A=function(){return e},e}function M(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}var R=o.a.a(A(),(function(e){switch(e.type){case"primary":return"\n color: white; \n background: var(--ifm-color-primary);\n &:hover {\n color: white;\n text-decoration: none;\n background: var(--ifm-color-primary-dark);\n }\n ";case"secondary":return'\n &::after {\n content: "›";\n font-size: 24px;\n margin-left: 5px;\n text-align: center;\n }\n '}})),H=Object(o.a)(O)(Q()),V=o.a.p(B()),X=o.a.img(q()),$=Object(o.a)(b)(U());function D(){return r.a.createElement("div",null,r.a.createElement(R,{type:"primary",href:"#quick-start",target:"_self"},"Quick start"),r.a.createElement(R,{type:"secondary",href:I()("docs/guides/getting-started"),target:"_self"},"Learn basics"))}var K=function(){var e=l()().siteConfig,n=void 0===e?{}:e;return r.a.createElement($,null,r.a.createElement(x,null,r.a.createElement(y,null,r.a.createElement(X,{src:"img/logox200.png"}),r.a.createElement(H,null,n.title),r.a.createElement(V,null,n.tagline),r.a.createElement("div",{className:F.a.buttons},r.a.createElement(D,null)))))},Y=t(165),Z=t.n(Y),ee=[{title:r.a.createElement(r.a.Fragment,null,"Web Technologies"),imageUrl:"img/undraw_website_setup.svg",description:r.a.createElement(r.a.Fragment,null,"With NodeGui, you can build your app with familiar web technologies like CSS and JavaScript. There is even a"," ",r.a.createElement("a",{href:"https://react.nodegui.org"},"React based version"),".")},{title:r.a.createElement(r.a.Fragment,null,"Open Source"),imageUrl:"img/undraw_code_review.svg",description:r.a.createElement(r.a.Fragment,null,"NodeGui is an open source project maintained by an active community of contributors.")},{title:r.a.createElement(r.a.Fragment,null," Cross Platform"),imageUrl:"img/undraw_windows.svg",description:r.a.createElement(r.a.Fragment,null,"Compatible with Mac, Windows, and Linux, NodeGui apps build and run on three platforms.")}],ne=function(){return r.a.createElement("section",{className:F.a.features},r.a.createElement("div",{className:"container"},r.a.createElement("div",{className:"row"},ee.map((function(e,n){var t=e.imageUrl,a=e.title,i=e.description;return r.a.createElement("div",{key:n,className:Z()("col col--4",F.a.feature)},t&&r.a.createElement("div",{className:"text--center"},r.a.createElement("img",{className:F.a.featureImage,src:I()(t),alt:a})),r.a.createElement("h3",{className:"text--center"},a),r.a.createElement("p",{className:"text--center"},i))})))))},te=(t(188),function(e){return r.a.createElement(w,null,r.a.createElement("div",{className:"SplitView"},r.a.createElement("div",{className:"column first left ".concat(e.columnOneClass)},e.columnOne),r.a.createElement("div",{className:"column last right ".concat(e.columnTwoClass)},e.columnTwo)))});function ae(){var e=function(e,n){n||(n=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}(["\n max-height: 300px;\n padding-bottom: 40px;\n"]);return ae=function(){return e},e}var re=o.a.img(ae()),ie=function(){return r.a.createElement(te,{columnTwoClass:"text",columnOne:r.a.createElement((function(){return r.a.createElement(re,{src:"img/demo.png"})}),null),columnTwo:r.a.createElement((function(){return r.a.createElement("div",null,r.a.createElement("h3",null,"Create native apps for Windows, MacOs and Linux using JavaScript and CSS"),r.a.createElement("p",null,"lets you create truly native apps and doesn't compromise on your users' experience. It provides a core set of platform agnostic native widgets that map directly to the platform’s native UI building blocks."),r.a.createElement("p",null,"NodeGui widgets are built on top of"," ",r.a.createElement("a",{href:"https://www.qt.io/",target:"_blank"},"Qt")," ","which is a mature dekstop apps framework. NodeGui widgets are extremely customizable just like in the web but does"," ",r.a.createElement("strong",null,"NOT")," use a Web browser under the hood."))}),null)})};function le(){var e=function(e,n){n||(n=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}(["\n max-height: 300px;\n padding-bottom: 40px;\n"]);return le=function(){return e},e}var ce=o.a.img(le()),oe=function(){return r.a.createElement(te,{columnOneClass:"text",columnOne:r.a.createElement((function(){return r.a.createElement("div",null,r.a.createElement("h3",null,"Written in JavaScript—rendered with native code by Qt"),r.a.createElement("p",null,"Apps can be built completely in JavaScript. This enables native app development for whole new teams of developers, and can let existing native teams work much faster."),r.a.createElement("p",null,"With NodeGui you get flexibility of web and perfromance of Native desktop apps."))}),null),columnTwo:r.a.createElement((function(){return r.a.createElement("div",null,r.a.createElement(ce,{src:"img/code-sample.png"}))}),null)})};function ue(){var e=se(["\n padding: 40px;\n"]);return ue=function(){return e},e}function me(){var e=se(["\n margin-top: 20px;\n margin-bottom: 40px;\n"]);return me=function(){return e},e}function se(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}var de=o.a.h2(me()),pe=o.a.div(ue()),fe=function(){return Object(a.useEffect)((function(){var e=document.createElement("script");e.src="//cdn.changelog.com/embed.js",e.async=!0,document.body.appendChild(e)}),[]),r.a.createElement(w,{id:"quick-start"},r.a.createElement(x,null,r.a.createElement(y,null,r.a.createElement(de,null,"Talks"),r.a.createElement("ul",null,r.a.createElement("li",null,r.a.createElement("div",null,r.a.createElement("p",null,r.a.createElement("a",{href:"https://changelog.com/jsparty/96"},"JS Party 96: Performant Node desktop apps with NodeGui")," ","– Listen on Changelog.com"),r.a.createElement("audio",{"data-theme":"night","data-src":"https://changelog.com/jsparty/96/embed",src:"https://cdn.changelog.com/uploads/jsparty/96/js-party-96.mp3",preload:"none",class:"changelog-episode",controls:!0})))),r.a.createElement(pe,null))))};n.default=function(){var e=l()().siteConfig,n=void 0===e?{}:e;return r.a.createElement(c.a,{title:"Hello from ".concat(n.title),description:"Build performant, native and cross-platform desktop applications with JavaScript and CSS 🚀"},r.a.createElement(K,null),r.a.createElement("main",null,r.a.createElement(ne,null),r.a.createElement(ie,null),r.a.createElement(oe,null),r.a.createElement(J,null),r.a.createElement(fe,null)))}},171:function(e,n,t){e.exports={heroBanner:"heroBanner_2Ftp",buttons:"buttons_1Wc3",features:"features_P2SU",featureImage:"featureImage_3Xqx"}},188:function(e,n,t){}}]); \ No newline at end of file diff --git a/content---docs-api-event-widgetac-6-11b.a5cf10d898002591a15a.js b/content---docs-api-event-widgetac-6-11b.b87fa94e0cd874003d59.js similarity index 98% rename from content---docs-api-event-widgetac-6-11b.a5cf10d898002591a15a.js rename to content---docs-api-event-widgetac-6-11b.b87fa94e0cd874003d59.js index 3a3eedc73..a268be15b 100644 --- a/content---docs-api-event-widgetac-6-11b.a5cf10d898002591a15a.js +++ b/content---docs-api-event-widgetac-6-11b.b87fa94e0cd874003d59.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return p}));var a=n(0),i=n.n(a),r=i.a.createContext({}),l=function(e){var t=i.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},o=function(e){var t=l(e.components);return i.a.createElement(r.Provider,{value:t},e.children)};var s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},d=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,o=e.parentName,s=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),d=l(n),p=a,b=d[o+"."+p]||d[p]||c[p]||r;return n?i.a.createElement(b,Object.assign({},{ref:t},s,{components:n})):i.a.createElement(b,Object.assign({},{ref:t},s))}));function p(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,l=new Array(r);l[0]=d;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[s]="string"==typeof e?e:a,l[1]=o;for(var p=2;p=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l={sidebar_label:"EventWidget",title:"EventWidget"},o=[{value:"Example",id:"example",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"widget.addEventListener(eventType, callback)",id:"widgetaddeventlistenereventtype-callback",children:[]},{value:"widget.removeEventListener(eventType, callback?)",id:"widgetremoveeventlistenereventtype-callback",children:[]}]}],s={rightToc:o},c="wrapper";function d(e){var t=e.components,n=r(e,["components"]);return Object(a.b)(c,i({},s,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"Abstract class that adds event handling support to all widgets.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class implements an event emitter and merges it with Qt's event and signal system. It allows us to register and unregister event and signal listener at will from javascript")),Object(a.b)("p",null,Object(a.b)("inlineCode",{parentName:"p"},"EventWidget")," is an abstract class and hence no instances of the same should be created. It exists so that we can add event handling functionalities to all widget's easily. This is an internal class."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"EventWidget is the base class for NodeWidget which means all widgets inherit it aswell. It inherits from another abstract class ",Object(a.b)("a",i({parentName:"strong"},{href:"/docs/api/YogaWidget"}),"YogaWidget"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{className:"language-javascript"}),'const { QWidget, QWidgetEvents } = require("@nodegui/nodegui");\n\nconst view = new QWidget();\n// addEventListener is a method from EventWidget\nview.addEventListener("MouseMove", () => {\n console.log("mouse moved");\n});\n\nor;\n\n// addEventListener is a method from EventWidget\nview.addEventListener(QWidgetEvents.MouseMove, () => {\n console.log("mouse moved");\n});\n')),Object(a.b)("p",null,"EventWidget will contain all methods and properties that are useful to handle events and signals of widgets in the NodeGui world."),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"EventWidget can access all the static methods defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/YogaWidget"}),"YogaWidget")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"EventWidget can access all the instance properties defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/YogaWidget"}),"YogaWidget")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"EventWidget can access all the instance methods defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/YogaWidget"}),"YogaWidget")),Object(a.b)("p",null,"Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"widgetaddeventlistenereventtype-callback"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.addEventListener(eventType, callback)")),Object(a.b)("p",null,"Adds an event listener to the widget to listen to events that occur on a widget."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("p",{parentName:"li"},Object(a.b)("inlineCode",{parentName:"p"},"eventType")," string - The event or signal you wish to listen to for the widget. Every widget exports its own enum of all possible events and signal types it can take. For example: ",Object(a.b)("inlineCode",{parentName:"p"},"QWidget")," exports ",Object(a.b)("inlineCode",{parentName:"p"},"QWidgetEvents"),", ",Object(a.b)("inlineCode",{parentName:"p"},"QPushButton")," exports ",Object(a.b)("inlineCode",{parentName:"p"},"QPushButtonEvents"),".")),Object(a.b)("li",{parentName:"ul"},Object(a.b)("p",{parentName:"li"},Object(a.b)("inlineCode",{parentName:"p"},"callback")," (payload?: NativeEvent | any) => void - A callback function to invoke when an event occurs. Usually you receive a nativeEvent or a string as argument."))),Object(a.b)("h3",{id:"widgetremoveeventlistenereventtype-callback"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.removeEventListener(eventType, callback?)")),Object(a.b)("p",null,"Removes the specified event listener from the widget."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("p",{parentName:"li"},Object(a.b)("inlineCode",{parentName:"p"},"eventType")," string - The event or signal for which you wish to remove the listener.")),Object(a.b)("li",{parentName:"ul"},Object(a.b)("p",{parentName:"li"},Object(a.b)("inlineCode",{parentName:"p"},"callback")," Function (",Object(a.b)("em",{parentName:"p"},"Optional"),") - If specified the removeEventListener will remove the specified listener only, otherwise all eventlisteners of the eventType on the widget will be removed."))))}d.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return p}));var a=n(0),i=n.n(a),r=i.a.createContext({}),l=function(e){var t=i.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},o=function(e){var t=l(e.components);return i.a.createElement(r.Provider,{value:t},e.children)};var s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},d=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,o=e.parentName,s=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),d=l(n),p=a,b=d[o+"."+p]||d[p]||c[p]||r;return n?i.a.createElement(b,Object.assign({},{ref:t},s,{components:n})):i.a.createElement(b,Object.assign({},{ref:t},s))}));function p(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,l=new Array(r);l[0]=d;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[s]="string"==typeof e?e:a,l[1]=o;for(var p=2;p=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l={sidebar_label:"EventWidget",title:"EventWidget"},o=[{value:"Example",id:"example",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"widget.addEventListener(eventType, callback)",id:"widgetaddeventlistenereventtype-callback",children:[]},{value:"widget.removeEventListener(eventType, callback?)",id:"widgetremoveeventlistenereventtype-callback",children:[]}]}],s={rightToc:o},c="wrapper";function d(e){var t=e.components,n=r(e,["components"]);return Object(a.b)(c,i({},s,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"Abstract class that adds event handling support to all widgets.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class implements an event emitter and merges it with Qt's event and signal system. It allows us to register and unregister event and signal listener at will from javascript")),Object(a.b)("p",null,Object(a.b)("inlineCode",{parentName:"p"},"EventWidget")," is an abstract class and hence no instances of the same should be created. It exists so that we can add event handling functionalities to all widget's easily. This is an internal class."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"EventWidget is the base class for NodeWidget which means all widgets inherit it aswell. It inherits from another abstract class ",Object(a.b)("a",i({parentName:"strong"},{href:"/docs/api/YogaWidget"}),"YogaWidget"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{className:"language-javascript"}),'const { QWidget, QWidgetEvents } = require("@nodegui/nodegui");\n\nconst view = new QWidget();\n// addEventListener is a method from EventWidget\nview.addEventListener("MouseMove", () => {\n console.log("mouse moved");\n});\n\nor;\n\n// addEventListener is a method from EventWidget\nview.addEventListener(QWidgetEvents.MouseMove, () => {\n console.log("mouse moved");\n});\n')),Object(a.b)("p",null,"EventWidget will contain all methods and properties that are useful to handle events and signals of widgets in the NodeGui world."),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"EventWidget can access all the static methods defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/YogaWidget"}),"YogaWidget")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"EventWidget can access all the instance properties defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/YogaWidget"}),"YogaWidget")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"EventWidget can access all the instance methods defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/YogaWidget"}),"YogaWidget")),Object(a.b)("p",null,"Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"widgetaddeventlistenereventtype-callback"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.addEventListener(eventType, callback)")),Object(a.b)("p",null,"Adds an event listener to the widget to listen to events that occur on a widget."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("p",{parentName:"li"},Object(a.b)("inlineCode",{parentName:"p"},"eventType")," string - The event or signal you wish to listen to for the widget. Every widget exports its own enum of all possible events and signal types it can take. For example: ",Object(a.b)("inlineCode",{parentName:"p"},"QWidget")," exports ",Object(a.b)("inlineCode",{parentName:"p"},"QWidgetEvents"),", ",Object(a.b)("inlineCode",{parentName:"p"},"QPushButton")," exports ",Object(a.b)("inlineCode",{parentName:"p"},"QPushButtonEvents"),".")),Object(a.b)("li",{parentName:"ul"},Object(a.b)("p",{parentName:"li"},Object(a.b)("inlineCode",{parentName:"p"},"callback")," (payload?: NativeEvent | any) => void - A callback function to invoke when an event occurs. Usually you receive a nativeEvent or a string as argument."))),Object(a.b)("h3",{id:"widgetremoveeventlistenereventtype-callback"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.removeEventListener(eventType, callback?)")),Object(a.b)("p",null,"Removes the specified event listener from the widget."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("p",{parentName:"li"},Object(a.b)("inlineCode",{parentName:"p"},"eventType")," string - The event or signal for which you wish to remove the listener.")),Object(a.b)("li",{parentName:"ul"},Object(a.b)("p",{parentName:"li"},Object(a.b)("inlineCode",{parentName:"p"},"callback")," Function (",Object(a.b)("em",{parentName:"p"},"Optional"),") - If specified the removeEventListener will remove the specified listener only, otherwise all eventlisteners of the eventType on the widget will be removed."))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-flex-layout-3-dc-a16.315f47480f7da4c659d5.js b/content---docs-api-flex-layout-3-dc-a16.d5ab9ac7b90d9ed88203.js similarity index 98% rename from content---docs-api-flex-layout-3-dc-a16.315f47480f7da4c659d5.js rename to content---docs-api-flex-layout-3-dc-a16.d5ab9ac7b90d9ed88203.js index 7976e0669..f614dccfc 100644 --- a/content---docs-api-flex-layout-3-dc-a16.315f47480f7da4c659d5.js +++ b/content---docs-api-flex-layout-3-dc-a16.d5ab9ac7b90d9ed88203.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{161:function(e,t,l){"use strict";l.d(t,"a",(function(){return d})),l.d(t,"b",(function(){return u}));var i=l(0),n=l.n(i),a=n.a.createContext({}),o=function(e){var t=n.a.useContext(a),l=t;return e&&(l="function"==typeof e?e(t):Object.assign({},t,e)),l},d=function(e){var t=o(e.components);return n.a.createElement(a.Provider,{value:t},e.children)};var c="mdxType",r={inlineCode:"code",wrapper:function(e){var t=e.children;return n.a.createElement(n.a.Fragment,{},t)}},b=Object(i.forwardRef)((function(e,t){var l=e.components,i=e.mdxType,a=e.originalType,d=e.parentName,c=function(e,t){var l={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&-1===t.indexOf(i)&&(l[i]=e[i]);return l}(e,["components","mdxType","originalType","parentName"]),b=o(l),u=i,h=b[d+"."+u]||b[u]||r[u]||a;return l?n.a.createElement(h,Object.assign({},{ref:t},c,{components:l})):n.a.createElement(h,Object.assign({},{ref:t},c))}));function u(e,t){var l=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=l.length,o=new Array(a);o[0]=b;var d={};for(var r in t)hasOwnProperty.call(t,r)&&(d[r]=t[r]);d.originalType=e,d[c]="string"==typeof e?e:i,o[1]=d;for(var u=2;u=0||(n[l]=e[l]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(n[l]=e[l])}return n}var o={sidebar_label:"FlexLayout",title:"FlexLayout"},d=[{value:"Example",id:"example",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"layout.addWidget(childWidget, childFlexNode?)",id:"layoutaddwidgetchildwidget-childflexnode",children:[]},{value:"layout.insertChildBefore(childWidget, beforeChildWidget, childFlexNode?, beforeChildFlexNode?)",id:"layoutinsertchildbeforechildwidget-beforechildwidget-childflexnode-beforechildflexnode",children:[]},{value:"layout.removeWidget(childWidget, childFlexNode?)",id:"layoutremovewidgetchildwidget-childflexnode",children:[]},{value:"layout.setFlexNode(flexNode)",id:"layoutsetflexnodeflexnode",children:[]}]}],c={rightToc:d},r="wrapper";function b(e){var t=e.components,l=a(e,["components"]);return Object(i.b)(r,n({},c,l,{components:t,mdxType:"MDXLayout"}),Object(i.b)("blockquote",null,Object(i.b)("p",{parentName:"blockquote"},"Custom layout to help layout child widgets using flex layout.")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"This class is a JS wrapper around custom Qt layout implemented using ",Object(i.b)("a",n({parentName:"strong"},{href:"https://github.com/facebook/yoga"}),"Yoga"))),Object(i.b)("p",null,"A ",Object(i.b)("inlineCode",{parentName:"p"},"FlexLayout")," can be used to layout all child NodeGui widgets using flex."),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"FlexLayout inherits from ",Object(i.b)("a",n({parentName:"strong"},{href:"/docs/api/NodeLayout"}),"NodeLayout"))),Object(i.b)("h3",{id:"example"},"Example"),Object(i.b)("pre",null,Object(i.b)("code",n({parentName:"pre"},{className:"language-javascript"}),'const { FlexLayout, QWidget, QLabel } = require("@nodegui/nodegui");\n\nconst view = new QWidget();\nconst layout = new FlexLayout();\nview.setLayout(layout);\n\nconst label = new QLabel();\nlabel.setText("label1");\nconst label2 = new QLabel();\nlabel2.setText("label2");\n\nlayout.addWidget(label);\nlayout.addWidget(label2);\n')),Object(i.b)("h2",{id:"static-methods"},"Static Methods"),Object(i.b)("p",null,"FlexLayout can access all the static methods defined in ",Object(i.b)("a",n({parentName:"p"},{href:"/docs/api/NodeLayout"}),"NodeLayout")),Object(i.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(i.b)("p",null,"FlexLayout can access all the instance properties defined in ",Object(i.b)("a",n({parentName:"p"},{href:"/docs/api/NodeLayout"}),"NodeLayout")),Object(i.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(i.b)("p",null,"FlexLayout can access all the instance methods defined in ",Object(i.b)("a",n({parentName:"p"},{href:"/docs/api/NodeLayout"}),"NodeLayout")),Object(i.b)("p",null,"Additionally it also has the following instance methods:"),Object(i.b)("h3",{id:"layoutaddwidgetchildwidget-childflexnode"},Object(i.b)("inlineCode",{parentName:"h3"},"layout.addWidget(childWidget, childFlexNode?)")),Object(i.b)("p",null,"Adds the childWidget to the layout. It calls the native method of custom FlexLayout."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"childWidget")," NodeWidget - child widget that needs to be added to the layout."),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"childFlexNode")," flexNode ref (",Object(i.b)("em",{parentName:"li"},"Optional"),") - flexNode reference of the child widget. You can get this by calling ",Object(i.b)("inlineCode",{parentName:"li"},"childWidget.getFlexNode()"),".")),Object(i.b)("h3",{id:"layoutinsertchildbeforechildwidget-beforechildwidget-childflexnode-beforechildflexnode"},Object(i.b)("inlineCode",{parentName:"h3"},"layout.insertChildBefore(childWidget, beforeChildWidget, childFlexNode?, beforeChildFlexNode?)")),Object(i.b)("p",null,"Adds the childWidget before another already set childWidget in the layout. It calls the native method of custom FlexLayout."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"childWidget")," NodeWidget - child widget that needs to be added to the layout."),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"beforeChildWidget")," NodeWidget - the widget before which the ",Object(i.b)("inlineCode",{parentName:"li"},"childWidget")," needs to be added in the layout."),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"childFlexNode")," flexNode ref (",Object(i.b)("em",{parentName:"li"},"Optional"),") - flexNode reference of the child widget. You can get this by calling ",Object(i.b)("inlineCode",{parentName:"li"},"childWidget.getFlexNode()"),"."),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"beforeChildFlexNode")," flexNode ref (",Object(i.b)("em",{parentName:"li"},"Optional"),") - flexNode reference of the before child widget. You can get this by calling ",Object(i.b)("inlineCode",{parentName:"li"},"beforeChildWidget.getFlexNode()"),".")),Object(i.b)("h3",{id:"layoutremovewidgetchildwidget-childflexnode"},Object(i.b)("inlineCode",{parentName:"h3"},"layout.removeWidget(childWidget, childFlexNode?)")),Object(i.b)("p",null,"Removes the childWidget from the layout. It calls the native method of custom FlexLayout."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"childWidget")," NodeWidget - child widget that needs to be added to the layout."),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"childFlexNode")," flexNode ref (",Object(i.b)("em",{parentName:"li"},"Optional"),") - flexNode reference of the child widget. You can get this by calling ",Object(i.b)("inlineCode",{parentName:"li"},"childWidget.getFlexNode()"),".")),Object(i.b)("h3",{id:"layoutsetflexnodeflexnode"},Object(i.b)("inlineCode",{parentName:"h3"},"layout.setFlexNode(flexNode)")),Object(i.b)("p",null,"A layout doesnt have its own flexNode. This method sets the flex Node to use for calculating position of the child widgets. Hence this should be always equal to the flex node of widget for which this layout is set. This is called internally by ",Object(i.b)("inlineCode",{parentName:"p"},"widget.setLayout"),"."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"flexNode")," flexNode ref - flexNode reference of the widget for which this layout is set. You can get this by calling ",Object(i.b)("inlineCode",{parentName:"li"},"widget.getFlexNode()"),".")))}b.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{161:function(e,t,l){"use strict";l.d(t,"a",(function(){return d})),l.d(t,"b",(function(){return u}));var i=l(0),n=l.n(i),a=n.a.createContext({}),o=function(e){var t=n.a.useContext(a),l=t;return e&&(l="function"==typeof e?e(t):Object.assign({},t,e)),l},d=function(e){var t=o(e.components);return n.a.createElement(a.Provider,{value:t},e.children)};var c="mdxType",r={inlineCode:"code",wrapper:function(e){var t=e.children;return n.a.createElement(n.a.Fragment,{},t)}},b=Object(i.forwardRef)((function(e,t){var l=e.components,i=e.mdxType,a=e.originalType,d=e.parentName,c=function(e,t){var l={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&-1===t.indexOf(i)&&(l[i]=e[i]);return l}(e,["components","mdxType","originalType","parentName"]),b=o(l),u=i,h=b[d+"."+u]||b[u]||r[u]||a;return l?n.a.createElement(h,Object.assign({},{ref:t},c,{components:l})):n.a.createElement(h,Object.assign({},{ref:t},c))}));function u(e,t){var l=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=l.length,o=new Array(a);o[0]=b;var d={};for(var r in t)hasOwnProperty.call(t,r)&&(d[r]=t[r]);d.originalType=e,d[c]="string"==typeof e?e:i,o[1]=d;for(var u=2;u=0||(n[l]=e[l]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(n[l]=e[l])}return n}var o={sidebar_label:"FlexLayout",title:"FlexLayout"},d=[{value:"Example",id:"example",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"layout.addWidget(childWidget, childFlexNode?)",id:"layoutaddwidgetchildwidget-childflexnode",children:[]},{value:"layout.insertChildBefore(childWidget, beforeChildWidget, childFlexNode?, beforeChildFlexNode?)",id:"layoutinsertchildbeforechildwidget-beforechildwidget-childflexnode-beforechildflexnode",children:[]},{value:"layout.removeWidget(childWidget, childFlexNode?)",id:"layoutremovewidgetchildwidget-childflexnode",children:[]},{value:"layout.setFlexNode(flexNode)",id:"layoutsetflexnodeflexnode",children:[]}]}],c={rightToc:d},r="wrapper";function b(e){var t=e.components,l=a(e,["components"]);return Object(i.b)(r,n({},c,l,{components:t,mdxType:"MDXLayout"}),Object(i.b)("blockquote",null,Object(i.b)("p",{parentName:"blockquote"},"Custom layout to help layout child widgets using flex layout.")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"This class is a JS wrapper around custom Qt layout implemented using ",Object(i.b)("a",n({parentName:"strong"},{href:"https://github.com/facebook/yoga"}),"Yoga"))),Object(i.b)("p",null,"A ",Object(i.b)("inlineCode",{parentName:"p"},"FlexLayout")," can be used to layout all child NodeGui widgets using flex."),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"FlexLayout inherits from ",Object(i.b)("a",n({parentName:"strong"},{href:"/docs/api/NodeLayout"}),"NodeLayout"))),Object(i.b)("h3",{id:"example"},"Example"),Object(i.b)("pre",null,Object(i.b)("code",n({parentName:"pre"},{className:"language-javascript"}),'const { FlexLayout, QWidget, QLabel } = require("@nodegui/nodegui");\n\nconst view = new QWidget();\nconst layout = new FlexLayout();\nview.setLayout(layout);\n\nconst label = new QLabel();\nlabel.setText("label1");\nconst label2 = new QLabel();\nlabel2.setText("label2");\n\nlayout.addWidget(label);\nlayout.addWidget(label2);\n')),Object(i.b)("h2",{id:"static-methods"},"Static Methods"),Object(i.b)("p",null,"FlexLayout can access all the static methods defined in ",Object(i.b)("a",n({parentName:"p"},{href:"/docs/api/NodeLayout"}),"NodeLayout")),Object(i.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(i.b)("p",null,"FlexLayout can access all the instance properties defined in ",Object(i.b)("a",n({parentName:"p"},{href:"/docs/api/NodeLayout"}),"NodeLayout")),Object(i.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(i.b)("p",null,"FlexLayout can access all the instance methods defined in ",Object(i.b)("a",n({parentName:"p"},{href:"/docs/api/NodeLayout"}),"NodeLayout")),Object(i.b)("p",null,"Additionally it also has the following instance methods:"),Object(i.b)("h3",{id:"layoutaddwidgetchildwidget-childflexnode"},Object(i.b)("inlineCode",{parentName:"h3"},"layout.addWidget(childWidget, childFlexNode?)")),Object(i.b)("p",null,"Adds the childWidget to the layout. It calls the native method of custom FlexLayout."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"childWidget")," NodeWidget - child widget that needs to be added to the layout."),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"childFlexNode")," flexNode ref (",Object(i.b)("em",{parentName:"li"},"Optional"),") - flexNode reference of the child widget. You can get this by calling ",Object(i.b)("inlineCode",{parentName:"li"},"childWidget.getFlexNode()"),".")),Object(i.b)("h3",{id:"layoutinsertchildbeforechildwidget-beforechildwidget-childflexnode-beforechildflexnode"},Object(i.b)("inlineCode",{parentName:"h3"},"layout.insertChildBefore(childWidget, beforeChildWidget, childFlexNode?, beforeChildFlexNode?)")),Object(i.b)("p",null,"Adds the childWidget before another already set childWidget in the layout. It calls the native method of custom FlexLayout."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"childWidget")," NodeWidget - child widget that needs to be added to the layout."),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"beforeChildWidget")," NodeWidget - the widget before which the ",Object(i.b)("inlineCode",{parentName:"li"},"childWidget")," needs to be added in the layout."),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"childFlexNode")," flexNode ref (",Object(i.b)("em",{parentName:"li"},"Optional"),") - flexNode reference of the child widget. You can get this by calling ",Object(i.b)("inlineCode",{parentName:"li"},"childWidget.getFlexNode()"),"."),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"beforeChildFlexNode")," flexNode ref (",Object(i.b)("em",{parentName:"li"},"Optional"),") - flexNode reference of the before child widget. You can get this by calling ",Object(i.b)("inlineCode",{parentName:"li"},"beforeChildWidget.getFlexNode()"),".")),Object(i.b)("h3",{id:"layoutremovewidgetchildwidget-childflexnode"},Object(i.b)("inlineCode",{parentName:"h3"},"layout.removeWidget(childWidget, childFlexNode?)")),Object(i.b)("p",null,"Removes the childWidget from the layout. It calls the native method of custom FlexLayout."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"childWidget")," NodeWidget - child widget that needs to be added to the layout."),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"childFlexNode")," flexNode ref (",Object(i.b)("em",{parentName:"li"},"Optional"),") - flexNode reference of the child widget. You can get this by calling ",Object(i.b)("inlineCode",{parentName:"li"},"childWidget.getFlexNode()"),".")),Object(i.b)("h3",{id:"layoutsetflexnodeflexnode"},Object(i.b)("inlineCode",{parentName:"h3"},"layout.setFlexNode(flexNode)")),Object(i.b)("p",null,"A layout doesnt have its own flexNode. This method sets the flex Node to use for calculating position of the child widgets. Hence this should be always equal to the flex node of widget for which this layout is set. This is called internally by ",Object(i.b)("inlineCode",{parentName:"p"},"widget.setLayout"),"."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"flexNode")," flexNode ref - flexNode reference of the widget for which this layout is set. You can get this by calling ",Object(i.b)("inlineCode",{parentName:"li"},"widget.getFlexNode()"),".")))}b.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-node-layoutd-28-11a.0dace98927a219b41b44.js b/content---docs-api-node-layoutd-28-11a.f1324fa8676e4bf64b44.js similarity index 98% rename from content---docs-api-node-layoutd-28-11a.0dace98927a219b41b44.js rename to content---docs-api-node-layoutd-28-11a.f1324fa8676e4bf64b44.js index f1652fbad..d81266aac 100644 --- a/content---docs-api-node-layoutd-28-11a.0dace98927a219b41b44.js +++ b/content---docs-api-node-layoutd-28-11a.f1324fa8676e4bf64b44.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{161:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return u}));var n=a(0),o=a.n(n),i=o.a.createContext({}),l=function(e){var t=o.a.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):Object.assign({},t,e)),a},r=function(e){var t=l(e.components);return o.a.createElement(i.Provider,{value:t},e.children)};var c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},s=Object(n.forwardRef)((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,r=e.parentName,c=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===t.indexOf(n)&&(a[n]=e[n]);return a}(e,["components","mdxType","originalType","parentName"]),s=l(a),u=n,p=s[r+"."+u]||s[u]||d[u]||i;return a?o.a.createElement(p,Object.assign({},{ref:t},c,{components:a})):o.a.createElement(p,Object.assign({},{ref:t},c))}));function u(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,l=new Array(i);l[0]=s;var r={};for(var d in t)hasOwnProperty.call(t,d)&&(r[d]=t[d]);r.originalType=e,r[c]="string"==typeof e?e:n,l[1]=r;for(var u=2;u=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var l={sidebar_label:"NodeLayout",title:"NodeLayout"},r=[{value:"Example",id:"example",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[{value:"layout.type",id:"layouttype",children:[]}]},{value:"Instance Methods",id:"instance-methods",children:[{value:"layout.addWidget(childWidget, ...args)",id:"layoutaddwidgetchildwidget-args",children:[]},{value:"layout.activate()",id:"layoutactivate",children:[]},{value:"layout.invalidate()",id:"layoutinvalidate",children:[]},{value:"layout.update()",id:"layoutupdate",children:[]}]}],c={rightToc:r},d="wrapper";function s(e){var t=e.components,a=i(e,["components"]);return Object(n.b)(d,o({},c,a,{components:t,mdxType:"MDXLayout"}),Object(n.b)("blockquote",null,Object(n.b)("p",{parentName:"blockquote"},"Abstract class to add functionalities common to all Layout.")),Object(n.b)("p",null,Object(n.b)("strong",{parentName:"p"},"This class implements all methods, properties of Qt's ",Object(n.b)("a",o({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qlayout.html"}),"QLayout class")," so that it can be inherited by all layouts")),Object(n.b)("p",null,Object(n.b)("inlineCode",{parentName:"p"},"NodeLayout")," is an abstract class and hence no instances of the same should be created. It exists so that we can add similar functionalities to all layout's easily. Additionally it helps in typechecking process."),Object(n.b)("p",null,Object(n.b)("strong",{parentName:"p"},"NodeLayout is the base class for all layouts. It inherits from another abstract class ",Object(n.b)("a",o({parentName:"strong"},{href:"/docs/api/Component"}),"Component"))),Object(n.b)("h3",{id:"example"},"Example"),Object(n.b)("pre",null,Object(n.b)("code",o({parentName:"pre"},{className:"language-javascript"}),'const {\n NodeLayout,\n NodeWidget,\n FlexLayout,\n GridLayout,\n QPushButton,\n QWidget\n} = require("@nodegui/nodegui");\n\n// addChildToLayout can accept any layout since it expects NodeLayout\nconst addChildToLayout = (layout: NodeLayout, widget: NodeWidget) => {\n layout.addWidget(widget);\n};\n\naddChildToLayout(new FlexLayout(), new QPushButton());\naddChildToLayout(new GridLayout(), new QWidget());\n')),Object(n.b)("p",null,"NodeLayout will list all methods and properties that are common to all layouts in the NodeGui world."),Object(n.b)("h2",{id:"static-methods"},"Static Methods"),Object(n.b)("p",null,"NodeLayout can access all the static methods defined in ",Object(n.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(n.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(n.b)("p",null,"NodeLayout can access all the instance properties defined in ",Object(n.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(n.b)("p",null,"Additionally it also has the following instance properties:"),Object(n.b)("h3",{id:"layouttype"},Object(n.b)("inlineCode",{parentName:"h3"},"layout.type")),Object(n.b)("p",null,"This will return the string ",Object(n.b)("inlineCode",{parentName:"p"},"layout")," for all layouts."),Object(n.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(n.b)("p",null,"NodeLayout can access all the instance methods defined in ",Object(n.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(n.b)("p",null,"Additionally it also has the following instance methods:"),Object(n.b)("h3",{id:"layoutaddwidgetchildwidget-args"},Object(n.b)("inlineCode",{parentName:"h3"},"layout.addWidget(childWidget, ...args)")),Object(n.b)("p",null,"This is an abstract method in NodeLayout class. All Layouts inheriting from NodeLayout should implement this method."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"childWidget")," NodeWidget - Any widget in the NodeGui world."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"...args")," any[] - Additional params as required by the layout.")),Object(n.b)("h3",{id:"layoutactivate"},Object(n.b)("inlineCode",{parentName:"h3"},"layout.activate()")),Object(n.b)("p",null,"Redoes the layout for parent widget of this layout if necessary. Returns true if the layout was redone."),Object(n.b)("h3",{id:"layoutinvalidate"},Object(n.b)("inlineCode",{parentName:"h3"},"layout.invalidate()")),Object(n.b)("p",null,"Invalidates any cached information in this layout."),Object(n.b)("h3",{id:"layoutupdate"},Object(n.b)("inlineCode",{parentName:"h3"},"layout.update()")),Object(n.b)("p",null,"Updates the layout for parent widget of this layout. You should generally not need to call this because it is automatically called at the most appropriate times."))}s.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{161:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return u}));var n=a(0),o=a.n(n),i=o.a.createContext({}),l=function(e){var t=o.a.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):Object.assign({},t,e)),a},r=function(e){var t=l(e.components);return o.a.createElement(i.Provider,{value:t},e.children)};var c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},s=Object(n.forwardRef)((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,r=e.parentName,c=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===t.indexOf(n)&&(a[n]=e[n]);return a}(e,["components","mdxType","originalType","parentName"]),s=l(a),u=n,p=s[r+"."+u]||s[u]||d[u]||i;return a?o.a.createElement(p,Object.assign({},{ref:t},c,{components:a})):o.a.createElement(p,Object.assign({},{ref:t},c))}));function u(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,l=new Array(i);l[0]=s;var r={};for(var d in t)hasOwnProperty.call(t,d)&&(r[d]=t[d]);r.originalType=e,r[c]="string"==typeof e?e:n,l[1]=r;for(var u=2;u=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var l={sidebar_label:"NodeLayout",title:"NodeLayout"},r=[{value:"Example",id:"example",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[{value:"layout.type",id:"layouttype",children:[]}]},{value:"Instance Methods",id:"instance-methods",children:[{value:"layout.addWidget(childWidget, ...args)",id:"layoutaddwidgetchildwidget-args",children:[]},{value:"layout.activate()",id:"layoutactivate",children:[]},{value:"layout.invalidate()",id:"layoutinvalidate",children:[]},{value:"layout.update()",id:"layoutupdate",children:[]}]}],c={rightToc:r},d="wrapper";function s(e){var t=e.components,a=i(e,["components"]);return Object(n.b)(d,o({},c,a,{components:t,mdxType:"MDXLayout"}),Object(n.b)("blockquote",null,Object(n.b)("p",{parentName:"blockquote"},"Abstract class to add functionalities common to all Layout.")),Object(n.b)("p",null,Object(n.b)("strong",{parentName:"p"},"This class implements all methods, properties of Qt's ",Object(n.b)("a",o({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qlayout.html"}),"QLayout class")," so that it can be inherited by all layouts")),Object(n.b)("p",null,Object(n.b)("inlineCode",{parentName:"p"},"NodeLayout")," is an abstract class and hence no instances of the same should be created. It exists so that we can add similar functionalities to all layout's easily. Additionally it helps in typechecking process."),Object(n.b)("p",null,Object(n.b)("strong",{parentName:"p"},"NodeLayout is the base class for all layouts. It inherits from another abstract class ",Object(n.b)("a",o({parentName:"strong"},{href:"/docs/api/Component"}),"Component"))),Object(n.b)("h3",{id:"example"},"Example"),Object(n.b)("pre",null,Object(n.b)("code",o({parentName:"pre"},{className:"language-javascript"}),'const {\n NodeLayout,\n NodeWidget,\n FlexLayout,\n GridLayout,\n QPushButton,\n QWidget\n} = require("@nodegui/nodegui");\n\n// addChildToLayout can accept any layout since it expects NodeLayout\nconst addChildToLayout = (layout: NodeLayout, widget: NodeWidget) => {\n layout.addWidget(widget);\n};\n\naddChildToLayout(new FlexLayout(), new QPushButton());\naddChildToLayout(new GridLayout(), new QWidget());\n')),Object(n.b)("p",null,"NodeLayout will list all methods and properties that are common to all layouts in the NodeGui world."),Object(n.b)("h2",{id:"static-methods"},"Static Methods"),Object(n.b)("p",null,"NodeLayout can access all the static methods defined in ",Object(n.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(n.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(n.b)("p",null,"NodeLayout can access all the instance properties defined in ",Object(n.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(n.b)("p",null,"Additionally it also has the following instance properties:"),Object(n.b)("h3",{id:"layouttype"},Object(n.b)("inlineCode",{parentName:"h3"},"layout.type")),Object(n.b)("p",null,"This will return the string ",Object(n.b)("inlineCode",{parentName:"p"},"layout")," for all layouts."),Object(n.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(n.b)("p",null,"NodeLayout can access all the instance methods defined in ",Object(n.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(n.b)("p",null,"Additionally it also has the following instance methods:"),Object(n.b)("h3",{id:"layoutaddwidgetchildwidget-args"},Object(n.b)("inlineCode",{parentName:"h3"},"layout.addWidget(childWidget, ...args)")),Object(n.b)("p",null,"This is an abstract method in NodeLayout class. All Layouts inheriting from NodeLayout should implement this method."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"childWidget")," NodeWidget - Any widget in the NodeGui world."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"...args")," any[] - Additional params as required by the layout.")),Object(n.b)("h3",{id:"layoutactivate"},Object(n.b)("inlineCode",{parentName:"h3"},"layout.activate()")),Object(n.b)("p",null,"Redoes the layout for parent widget of this layout if necessary. Returns true if the layout was redone."),Object(n.b)("h3",{id:"layoutinvalidate"},Object(n.b)("inlineCode",{parentName:"h3"},"layout.invalidate()")),Object(n.b)("p",null,"Invalidates any cached information in this layout."),Object(n.b)("h3",{id:"layoutupdate"},Object(n.b)("inlineCode",{parentName:"h3"},"layout.update()")),Object(n.b)("p",null,"Updates the layout for parent widget of this layout. You should generally not need to call this because it is automatically called at the most appropriate times."))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-node-widget-080-a39.f21482facb1d1599ab0d.js b/content---docs-api-node-widget-080-a39.e1d7ab6aab225b7fb2e0.js similarity index 99% rename from content---docs-api-node-widget-080-a39.f21482facb1d1599ab0d.js rename to content---docs-api-node-widget-080-a39.e1d7ab6aab225b7fb2e0.js index e7cd09e8d..21da4f261 100644 --- a/content---docs-api-node-widget-080-a39.f21482facb1d1599ab0d.js +++ b/content---docs-api-node-widget-080-a39.e1d7ab6aab225b7fb2e0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{161:function(e,t,i){"use strict";i.d(t,"a",(function(){return r})),i.d(t,"b",(function(){return c}));var n=i(0),a=i.n(n),d=a.a.createContext({}),l=function(e){var t=a.a.useContext(d),i=t;return e&&(i="function"==typeof e?e(t):Object.assign({},t,e)),i},r=function(e){var t=l(e.components);return a.a.createElement(d.Provider,{value:t},e.children)};var s="mdxType",b={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},o=Object(n.forwardRef)((function(e,t){var i=e.components,n=e.mdxType,d=e.originalType,r=e.parentName,s=function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===t.indexOf(n)&&(i[n]=e[n]);return i}(e,["components","mdxType","originalType","parentName"]),o=l(i),c=n,h=o[r+"."+c]||o[c]||b[c]||d;return i?a.a.createElement(h,Object.assign({},{ref:t},s,{components:i})):a.a.createElement(h,Object.assign({},{ref:t},s))}));function c(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var d=i.length,l=new Array(d);l[0]=o;var r={};for(var b in t)hasOwnProperty.call(t,b)&&(r[b]=t[b]);r.originalType=e,r[s]="string"==typeof e?e:n,l[1]=r;for(var c=2;c=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var l={sidebar_label:"NodeWidget",title:"NodeWidget"},r=[{value:"Example",id:"example",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[{value:"widget.layout",id:"widgetlayout",children:[]},{value:"widget.type",id:"widgettype",children:[]}]},{value:"Instance Methods",id:"instance-methods",children:[{value:"widget.show()",id:"widgetshow",children:[]},{value:"widget.resize(width, height)",id:"widgetresizewidth-height",children:[]},{value:"widget.close()",id:"widgetclose",children:[]},{value:"widget.setLayout(layout)",id:"widgetsetlayoutlayout",children:[]},{value:"widget.setStyleSheet(styleSheet)",id:"widgetsetstylesheetstylesheet",children:[]},{value:"widget.setCursor(cursor)",id:"widgetsetcursorcursor",children:[]},{value:"widget.setWindowIcon(icon)",id:"widgetsetwindowiconicon",children:[]},{value:"widget.setWindowState(state)",id:"widgetsetwindowstatestate",children:[]},{value:"widget.setWindowTitle(title)",id:"widgetsetwindowtitletitle",children:[]},{value:"widget.styleSheet()",id:"widgetstylesheet",children:[]},{value:"widget.hide()",id:"widgethide",children:[]},{value:"widget.move(x, y)",id:"widgetmovex-y",children:[]},{value:"widget.setObjectName(objectName)",id:"widgetsetobjectnameobjectname",children:[]},{value:"widget.objectName()",id:"widgetobjectname",children:[]},{value:"widget.setMouseTracking(isMouseTracked)",id:"widgetsetmousetrackingismousetracked",children:[]},{value:"widget.setEnabled(enabled)",id:"widgetsetenabledenabled",children:[]},{value:"widget.setFixedSize(width, height)",id:"widgetsetfixedsizewidth-height",children:[]},{value:"widget.setGeometry(x, y, width, height)",id:"widgetsetgeometryx-y-width-height",children:[]},{value:"widget.setMaximumSize(width, height)",id:"widgetsetmaximumsizewidth-height",children:[]},{value:"widget.setMinimumSize(width, height)",id:"widgetsetminimumsizewidth-height",children:[]},{value:"widget.repaint()",id:"widgetrepaint",children:[]},{value:"widget.update()",id:"widgetupdate",children:[]},{value:"widget.pos()",id:"widgetpos",children:[]},{value:"widget.size()",id:"widgetsize",children:[]},{value:"widget.updateGeometry()",id:"widgetupdategeometry",children:[]},{value:"widget.setAttribute(attributeName, switchOn)",id:"widgetsetattributeattributename-switchon",children:[]},{value:"widget.testAttribute(attributeName)",id:"widgettestattributeattributename",children:[]}]}],s={rightToc:r},b="wrapper";function o(e){var t=e.components,i=d(e,["components"]);return Object(n.b)(b,a({},s,i,{components:t,mdxType:"MDXLayout"}),Object(n.b)("blockquote",null,Object(n.b)("p",{parentName:"blockquote"},"Abstract class to add functionalities common to all Widgets.")),Object(n.b)("p",null,Object(n.b)("strong",{parentName:"p"},"This class implements all methods, properties of Qt's ",Object(n.b)("a",a({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qwidget.html"}),"QWidget class")," so that it can be inherited by all widgets")),Object(n.b)("p",null,Object(n.b)("inlineCode",{parentName:"p"},"NodeWidget")," is an abstract class and hence no instances of the same should be created. It exists so that we can add similar functionalities to all widget's easily. Additionally it helps in type checking process. If you wish to create a ",Object(n.b)("inlineCode",{parentName:"p"},"div")," like widget use ",Object(n.b)("a",a({parentName:"p"},{href:"/docs/api/QWidget"}),"QWidget")," instead."),Object(n.b)("p",null,Object(n.b)("strong",{parentName:"p"},"NodeWidget is the base class for all widgets. It inherits from another abstract class ",Object(n.b)("a",a({parentName:"strong"},{href:"/docs/api/EventWidget"}),"EventWidget"))),Object(n.b)("h3",{id:"example"},"Example"),Object(n.b)("pre",null,Object(n.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const {\n NodeWidget,\n QPushButton,\n QWidget,\n QRadioButton\n} = require("@nodegui/nodegui");\n\n// showWidget can accept any widget since it expects NodeWidget\nconst showWidget = (widget: NodeWidget) => {\n widget.show();\n};\n\nshowWidget(new QPushButton());\nshowWidget(new QWidget());\nshowWidget(new QRadioButton());\n')),Object(n.b)("p",null,"NodeWidget will list all methods and properties that are common to all widgets in the NodeGui world."),Object(n.b)("h2",{id:"static-methods"},"Static Methods"),Object(n.b)("p",null,"NodeWidget can access all the static methods defined in ",Object(n.b)("a",a({parentName:"p"},{href:"/docs/api/EventWidget"}),"EventWidget")),Object(n.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(n.b)("p",null,"NodeWidget can access all the instance properties defined in ",Object(n.b)("a",a({parentName:"p"},{href:"/docs/api/EventWidget"}),"EventWidget")),Object(n.b)("p",null,"Additionally it also has the following instance properties:"),Object(n.b)("h3",{id:"widgetlayout"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.layout")),Object(n.b)("p",null,"A ",Object(n.b)("inlineCode",{parentName:"p"},"NodeLayout")," representing current layout that is set on the widget."),Object(n.b)("h3",{id:"widgettype"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.type")),Object(n.b)("p",null,"This will return the string ",Object(n.b)("inlineCode",{parentName:"p"},"widget")," for all widgets."),Object(n.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(n.b)("p",null,"NodeWidget can access all the instance methods defined in ",Object(n.b)("a",a({parentName:"p"},{href:"/docs/api/EventWidget"}),"EventWidget")),Object(n.b)("p",null,"Additionally it also has the following instance methods:"),Object(n.b)("h3",{id:"widgetshow"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.show()")),Object(n.b)("p",null,"Shows the widget and its children. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#show"}),"QWidget: show"),"."),Object(n.b)("h3",{id:"widgetresizewidth-height"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.resize(width, height)")),Object(n.b)("p",null,"Resizes the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#resize-1"}),"QWidget: resize"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"width")," number - Pixels."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"height")," number - Pixels.")),Object(n.b)("h3",{id:"widgetclose"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.close()")),Object(n.b)("p",null,"Closes this widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#close"}),"QWidget: close"),".\nReturns true if the widget was closed; otherwise returns false."),Object(n.b)("h3",{id:"widgetsetlayoutlayout"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setLayout(layout)")),Object(n.b)("p",null,"Sets the layout manager for this widget to layout. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#setLayout"}),"QWidget: setLayout"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"layout")," NodeLayout - Any layout that inherits from NodeLayout class.")),Object(n.b)("h3",{id:"widgetsetstylesheetstylesheet"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setStyleSheet(styleSheet)")),Object(n.b)("p",null,"Sets the property that holds the widget's style sheet. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#styleSheet-prop"}),"QWidget: styleSheet"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"styleSheet")," string - String which holds the widget's style sheet. Make sure you create this string using ",Object(n.b)("inlineCode",{parentName:"li"},"StyleSheet.create()"))),Object(n.b)("h3",{id:"widgetsetcursorcursor"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setCursor(cursor)")),Object(n.b)("p",null,"Sets the window mouse cursor. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#cursor-prop"}),"QWidget: setCursor"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"cursor")," CursorShape - Specifies current cursor for the window ",Object(n.b)("a",a({parentName:"li"},{href:"/docs/api/QtEnums"}),"CursorShape is an enum from Qt"))),Object(n.b)("h3",{id:"widgetsetwindowiconicon"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setWindowIcon(icon)")),Object(n.b)("p",null,"Sets the window icon. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#windowIcon-prop"}),"QWidget: setWindowIcon"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"icon")," QIcon - Specifies icon for the window.")),Object(n.b)("h3",{id:"widgetsetwindowstatestate"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setWindowState(state)")),Object(n.b)("p",null,"Sets the window state. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#setWindowState"}),"QWidget: setWindowState"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"state")," WindowState - Specifies current state for the window ",Object(n.b)("a",a({parentName:"li"},{href:"/docs/api/QtEnums"}),"WindowState is an enum from Qt"))),Object(n.b)("h3",{id:"widgetsetwindowtitletitle"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setWindowTitle(title)")),Object(n.b)("p",null,"Sets the window title property. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#windowTitle-prop"}),"QWidget: setWindowTitle"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"title")," string - String which holds the windows title.")),Object(n.b)("h3",{id:"widgetstylesheet"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.styleSheet()")),Object(n.b)("p",null,"Gets the property that holds the widget's style sheet. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#styleSheet-prop"}),"QWidget: styleSheet"),"."),Object(n.b)("h3",{id:"widgethide"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.hide()")),Object(n.b)("p",null,"Hides the widget and its children. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#hide"}),"QWidget: hide"),"."),Object(n.b)("h3",{id:"widgetmovex-y"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.move(x, y)")),Object(n.b)("p",null,"Sets the screen position of the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#move-1"}),"QWidget: move"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"x")," number - Pixels."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"y")," number - Pixels.")),Object(n.b)("h3",{id:"widgetsetobjectnameobjectname"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setObjectName(objectName)")),Object(n.b)("p",null,"Sets the object name of the widget in Qt. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qobject.html#objectName-prop"}),"QObject: setObjectName"),". Object name can be analogous to ",Object(n.b)("inlineCode",{parentName:"p"},"id")," of an element in the web world. Using the objectName of the widget one can reference it in the Qt's stylesheet much like what we do with id in the web world."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"objectName")," string - String which holds the widget's object name.")),Object(n.b)("h3",{id:"widgetobjectname"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.objectName()")),Object(n.b)("p",null,"Gets the property that holds the widget's object name. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qobject.html#objectName-prop"}),"QObject: setObjectName"),"."),Object(n.b)("h3",{id:"widgetsetmousetrackingismousetracked"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setMouseTracking(isMouseTracked)")),Object(n.b)("p",null,"Sets the property that tells whether mouseTracking is enabled for the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#mouseTracking-prop"}),"QWidget: mouseTracking"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"isMouseTracked")," boolean - Set it to true to enable mouse tracking.")),Object(n.b)("h3",{id:"widgetsetenabledenabled"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setEnabled(enabled)")),Object(n.b)("p",null,"Sets the property that tells whether the widget is enabled. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#enabled-prop"}),"QWidget: enabled"),". In general an enabled widget handles keyboard and mouse events; a disabled widget does not."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"enabled")," boolean - Set it to true to enable the widget.")),Object(n.b)("h3",{id:"widgetsetfixedsizewidth-height"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setFixedSize(width, height)")),Object(n.b)("p",null,"Sets both the minimum and maximum sizes of the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#setFixedSize"}),"QWidget: setFixedSize"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"width")," number - Pixels."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"height")," number - Pixels.")),Object(n.b)("h3",{id:"widgetsetgeometryx-y-width-height"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setGeometry(x, y, width, height)")),Object(n.b)("p",null,"Sets the screen position as well as size of the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#setGeometry-1"}),"QWidget: setGeometry"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"x")," number - Pixels."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"y")," number - Pixels."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"width")," number - Pixels."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"height")," number - Pixels.")),Object(n.b)("h3",{id:"widgetsetmaximumsizewidth-height"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setMaximumSize(width, height)")),Object(n.b)("p",null,"Sets the maximum size of the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#setMaximumSize-1"}),"QWidget: setMaximumSize"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"width")," number - Pixels."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"height")," number - Pixels.")),Object(n.b)("h3",{id:"widgetsetminimumsizewidth-height"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setMinimumSize(width, height)")),Object(n.b)("p",null,"Sets the minimum size of the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#setMinimumSize-1"}),"QWidget: setMinimumSize"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"width")," number - Pixels."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"height")," number - Pixels.")),Object(n.b)("h3",{id:"widgetrepaint"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.repaint()")),Object(n.b)("p",null,"Repaints the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#repaint"}),"QWidget: repaint"),"."),Object(n.b)("h3",{id:"widgetupdate"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.update()")),Object(n.b)("p",null,"Updates the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#update"}),"QWidget: update"),"."),Object(n.b)("h3",{id:"widgetpos"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.pos()")),Object(n.b)("p",null,"Returns the current widget position. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#pos-prop"}),"QWidget: pos"),". The returned size object contains x and y coordinates in pixels."),Object(n.b)("h3",{id:"widgetsize"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.size()")),Object(n.b)("p",null,"Returns the current widget size. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#size-prop"}),"QWidget: size"),". The returned size object contains width and height in pixels."),Object(n.b)("h3",{id:"widgetupdategeometry"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.updateGeometry()")),Object(n.b)("p",null,"Notifies the layout system that this widget has changed and may need to change geometry."),Object(n.b)("h3",{id:"widgetsetattributeattributename-switchon"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setAttribute(attributeName, switchOn)")),Object(n.b)("p",null,"Sets the attribute attribute on this widget if on is true; otherwise clears the attribute. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#setAttribute"}),"QWidget: setAttribute"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"attributeName")," WidgetAttribute - Enum from WidgetAttribute."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"switchOn")," boolean - set it to true if you want to enable an attribute.")),Object(n.b)("h3",{id:"widgettestattributeattributename"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.testAttribute(attributeName)")),Object(n.b)("p",null,"Returns true if attribute attribute is set on this widget; otherwise returns false. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#testAttribute"}),"QWidget: testAttribute"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"attributeName")," WidgetAttribute - Enum from WidgetAttribute.")),Object(n.b)("h4",{id:"widgetinheritsclassname"},Object(n.b)("inlineCode",{parentName:"h4"},"widget.inherits(className)")),Object(n.b)("p",null,"Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. A class is considered to inherit itself. Example:"),Object(n.b)("pre",null,Object(n.b)("code",a({parentName:"pre"},{className:"language-ts"}),'const progressBar = new QProgressBar();\nprogressBar.inherits("QObject"); // returns true\nprogressBar.inherits("QProgressBar"); // returns true\nprogressBar.inherits("QTabWidget"); // returns false\n')),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"className")," string - Name of the class to get if this widget inherits from.")))}o.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{161:function(e,t,i){"use strict";i.d(t,"a",(function(){return r})),i.d(t,"b",(function(){return c}));var n=i(0),a=i.n(n),d=a.a.createContext({}),l=function(e){var t=a.a.useContext(d),i=t;return e&&(i="function"==typeof e?e(t):Object.assign({},t,e)),i},r=function(e){var t=l(e.components);return a.a.createElement(d.Provider,{value:t},e.children)};var s="mdxType",b={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},o=Object(n.forwardRef)((function(e,t){var i=e.components,n=e.mdxType,d=e.originalType,r=e.parentName,s=function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===t.indexOf(n)&&(i[n]=e[n]);return i}(e,["components","mdxType","originalType","parentName"]),o=l(i),c=n,h=o[r+"."+c]||o[c]||b[c]||d;return i?a.a.createElement(h,Object.assign({},{ref:t},s,{components:i})):a.a.createElement(h,Object.assign({},{ref:t},s))}));function c(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var d=i.length,l=new Array(d);l[0]=o;var r={};for(var b in t)hasOwnProperty.call(t,b)&&(r[b]=t[b]);r.originalType=e,r[s]="string"==typeof e?e:n,l[1]=r;for(var c=2;c=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var l={sidebar_label:"NodeWidget",title:"NodeWidget"},r=[{value:"Example",id:"example",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[{value:"widget.layout",id:"widgetlayout",children:[]},{value:"widget.type",id:"widgettype",children:[]}]},{value:"Instance Methods",id:"instance-methods",children:[{value:"widget.show()",id:"widgetshow",children:[]},{value:"widget.resize(width, height)",id:"widgetresizewidth-height",children:[]},{value:"widget.close()",id:"widgetclose",children:[]},{value:"widget.setLayout(layout)",id:"widgetsetlayoutlayout",children:[]},{value:"widget.setStyleSheet(styleSheet)",id:"widgetsetstylesheetstylesheet",children:[]},{value:"widget.setCursor(cursor)",id:"widgetsetcursorcursor",children:[]},{value:"widget.setWindowIcon(icon)",id:"widgetsetwindowiconicon",children:[]},{value:"widget.setWindowState(state)",id:"widgetsetwindowstatestate",children:[]},{value:"widget.setWindowTitle(title)",id:"widgetsetwindowtitletitle",children:[]},{value:"widget.styleSheet()",id:"widgetstylesheet",children:[]},{value:"widget.hide()",id:"widgethide",children:[]},{value:"widget.move(x, y)",id:"widgetmovex-y",children:[]},{value:"widget.setObjectName(objectName)",id:"widgetsetobjectnameobjectname",children:[]},{value:"widget.objectName()",id:"widgetobjectname",children:[]},{value:"widget.setMouseTracking(isMouseTracked)",id:"widgetsetmousetrackingismousetracked",children:[]},{value:"widget.setEnabled(enabled)",id:"widgetsetenabledenabled",children:[]},{value:"widget.setFixedSize(width, height)",id:"widgetsetfixedsizewidth-height",children:[]},{value:"widget.setGeometry(x, y, width, height)",id:"widgetsetgeometryx-y-width-height",children:[]},{value:"widget.setMaximumSize(width, height)",id:"widgetsetmaximumsizewidth-height",children:[]},{value:"widget.setMinimumSize(width, height)",id:"widgetsetminimumsizewidth-height",children:[]},{value:"widget.repaint()",id:"widgetrepaint",children:[]},{value:"widget.update()",id:"widgetupdate",children:[]},{value:"widget.pos()",id:"widgetpos",children:[]},{value:"widget.size()",id:"widgetsize",children:[]},{value:"widget.updateGeometry()",id:"widgetupdategeometry",children:[]},{value:"widget.setAttribute(attributeName, switchOn)",id:"widgetsetattributeattributename-switchon",children:[]},{value:"widget.testAttribute(attributeName)",id:"widgettestattributeattributename",children:[]}]}],s={rightToc:r},b="wrapper";function o(e){var t=e.components,i=d(e,["components"]);return Object(n.b)(b,a({},s,i,{components:t,mdxType:"MDXLayout"}),Object(n.b)("blockquote",null,Object(n.b)("p",{parentName:"blockquote"},"Abstract class to add functionalities common to all Widgets.")),Object(n.b)("p",null,Object(n.b)("strong",{parentName:"p"},"This class implements all methods, properties of Qt's ",Object(n.b)("a",a({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qwidget.html"}),"QWidget class")," so that it can be inherited by all widgets")),Object(n.b)("p",null,Object(n.b)("inlineCode",{parentName:"p"},"NodeWidget")," is an abstract class and hence no instances of the same should be created. It exists so that we can add similar functionalities to all widget's easily. Additionally it helps in type checking process. If you wish to create a ",Object(n.b)("inlineCode",{parentName:"p"},"div")," like widget use ",Object(n.b)("a",a({parentName:"p"},{href:"/docs/api/QWidget"}),"QWidget")," instead."),Object(n.b)("p",null,Object(n.b)("strong",{parentName:"p"},"NodeWidget is the base class for all widgets. It inherits from another abstract class ",Object(n.b)("a",a({parentName:"strong"},{href:"/docs/api/EventWidget"}),"EventWidget"))),Object(n.b)("h3",{id:"example"},"Example"),Object(n.b)("pre",null,Object(n.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const {\n NodeWidget,\n QPushButton,\n QWidget,\n QRadioButton\n} = require("@nodegui/nodegui");\n\n// showWidget can accept any widget since it expects NodeWidget\nconst showWidget = (widget: NodeWidget) => {\n widget.show();\n};\n\nshowWidget(new QPushButton());\nshowWidget(new QWidget());\nshowWidget(new QRadioButton());\n')),Object(n.b)("p",null,"NodeWidget will list all methods and properties that are common to all widgets in the NodeGui world."),Object(n.b)("h2",{id:"static-methods"},"Static Methods"),Object(n.b)("p",null,"NodeWidget can access all the static methods defined in ",Object(n.b)("a",a({parentName:"p"},{href:"/docs/api/EventWidget"}),"EventWidget")),Object(n.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(n.b)("p",null,"NodeWidget can access all the instance properties defined in ",Object(n.b)("a",a({parentName:"p"},{href:"/docs/api/EventWidget"}),"EventWidget")),Object(n.b)("p",null,"Additionally it also has the following instance properties:"),Object(n.b)("h3",{id:"widgetlayout"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.layout")),Object(n.b)("p",null,"A ",Object(n.b)("inlineCode",{parentName:"p"},"NodeLayout")," representing current layout that is set on the widget."),Object(n.b)("h3",{id:"widgettype"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.type")),Object(n.b)("p",null,"This will return the string ",Object(n.b)("inlineCode",{parentName:"p"},"widget")," for all widgets."),Object(n.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(n.b)("p",null,"NodeWidget can access all the instance methods defined in ",Object(n.b)("a",a({parentName:"p"},{href:"/docs/api/EventWidget"}),"EventWidget")),Object(n.b)("p",null,"Additionally it also has the following instance methods:"),Object(n.b)("h3",{id:"widgetshow"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.show()")),Object(n.b)("p",null,"Shows the widget and its children. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#show"}),"QWidget: show"),"."),Object(n.b)("h3",{id:"widgetresizewidth-height"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.resize(width, height)")),Object(n.b)("p",null,"Resizes the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#resize-1"}),"QWidget: resize"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"width")," number - Pixels."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"height")," number - Pixels.")),Object(n.b)("h3",{id:"widgetclose"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.close()")),Object(n.b)("p",null,"Closes this widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#close"}),"QWidget: close"),".\nReturns true if the widget was closed; otherwise returns false."),Object(n.b)("h3",{id:"widgetsetlayoutlayout"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setLayout(layout)")),Object(n.b)("p",null,"Sets the layout manager for this widget to layout. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#setLayout"}),"QWidget: setLayout"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"layout")," NodeLayout - Any layout that inherits from NodeLayout class.")),Object(n.b)("h3",{id:"widgetsetstylesheetstylesheet"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setStyleSheet(styleSheet)")),Object(n.b)("p",null,"Sets the property that holds the widget's style sheet. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#styleSheet-prop"}),"QWidget: styleSheet"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"styleSheet")," string - String which holds the widget's style sheet. Make sure you create this string using ",Object(n.b)("inlineCode",{parentName:"li"},"StyleSheet.create()"))),Object(n.b)("h3",{id:"widgetsetcursorcursor"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setCursor(cursor)")),Object(n.b)("p",null,"Sets the window mouse cursor. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#cursor-prop"}),"QWidget: setCursor"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"cursor")," CursorShape - Specifies current cursor for the window ",Object(n.b)("a",a({parentName:"li"},{href:"/docs/api/QtEnums"}),"CursorShape is an enum from Qt"))),Object(n.b)("h3",{id:"widgetsetwindowiconicon"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setWindowIcon(icon)")),Object(n.b)("p",null,"Sets the window icon. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#windowIcon-prop"}),"QWidget: setWindowIcon"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"icon")," QIcon - Specifies icon for the window.")),Object(n.b)("h3",{id:"widgetsetwindowstatestate"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setWindowState(state)")),Object(n.b)("p",null,"Sets the window state. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#setWindowState"}),"QWidget: setWindowState"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"state")," WindowState - Specifies current state for the window ",Object(n.b)("a",a({parentName:"li"},{href:"/docs/api/QtEnums"}),"WindowState is an enum from Qt"))),Object(n.b)("h3",{id:"widgetsetwindowtitletitle"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setWindowTitle(title)")),Object(n.b)("p",null,"Sets the window title property. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#windowTitle-prop"}),"QWidget: setWindowTitle"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"title")," string - String which holds the windows title.")),Object(n.b)("h3",{id:"widgetstylesheet"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.styleSheet()")),Object(n.b)("p",null,"Gets the property that holds the widget's style sheet. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#styleSheet-prop"}),"QWidget: styleSheet"),"."),Object(n.b)("h3",{id:"widgethide"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.hide()")),Object(n.b)("p",null,"Hides the widget and its children. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#hide"}),"QWidget: hide"),"."),Object(n.b)("h3",{id:"widgetmovex-y"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.move(x, y)")),Object(n.b)("p",null,"Sets the screen position of the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#move-1"}),"QWidget: move"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"x")," number - Pixels."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"y")," number - Pixels.")),Object(n.b)("h3",{id:"widgetsetobjectnameobjectname"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setObjectName(objectName)")),Object(n.b)("p",null,"Sets the object name of the widget in Qt. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qobject.html#objectName-prop"}),"QObject: setObjectName"),". Object name can be analogous to ",Object(n.b)("inlineCode",{parentName:"p"},"id")," of an element in the web world. Using the objectName of the widget one can reference it in the Qt's stylesheet much like what we do with id in the web world."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"objectName")," string - String which holds the widget's object name.")),Object(n.b)("h3",{id:"widgetobjectname"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.objectName()")),Object(n.b)("p",null,"Gets the property that holds the widget's object name. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qobject.html#objectName-prop"}),"QObject: setObjectName"),"."),Object(n.b)("h3",{id:"widgetsetmousetrackingismousetracked"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setMouseTracking(isMouseTracked)")),Object(n.b)("p",null,"Sets the property that tells whether mouseTracking is enabled for the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#mouseTracking-prop"}),"QWidget: mouseTracking"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"isMouseTracked")," boolean - Set it to true to enable mouse tracking.")),Object(n.b)("h3",{id:"widgetsetenabledenabled"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setEnabled(enabled)")),Object(n.b)("p",null,"Sets the property that tells whether the widget is enabled. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#enabled-prop"}),"QWidget: enabled"),". In general an enabled widget handles keyboard and mouse events; a disabled widget does not."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"enabled")," boolean - Set it to true to enable the widget.")),Object(n.b)("h3",{id:"widgetsetfixedsizewidth-height"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setFixedSize(width, height)")),Object(n.b)("p",null,"Sets both the minimum and maximum sizes of the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#setFixedSize"}),"QWidget: setFixedSize"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"width")," number - Pixels."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"height")," number - Pixels.")),Object(n.b)("h3",{id:"widgetsetgeometryx-y-width-height"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setGeometry(x, y, width, height)")),Object(n.b)("p",null,"Sets the screen position as well as size of the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#setGeometry-1"}),"QWidget: setGeometry"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"x")," number - Pixels."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"y")," number - Pixels."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"width")," number - Pixels."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"height")," number - Pixels.")),Object(n.b)("h3",{id:"widgetsetmaximumsizewidth-height"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setMaximumSize(width, height)")),Object(n.b)("p",null,"Sets the maximum size of the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#setMaximumSize-1"}),"QWidget: setMaximumSize"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"width")," number - Pixels."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"height")," number - Pixels.")),Object(n.b)("h3",{id:"widgetsetminimumsizewidth-height"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setMinimumSize(width, height)")),Object(n.b)("p",null,"Sets the minimum size of the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#setMinimumSize-1"}),"QWidget: setMinimumSize"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"width")," number - Pixels."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"height")," number - Pixels.")),Object(n.b)("h3",{id:"widgetrepaint"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.repaint()")),Object(n.b)("p",null,"Repaints the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#repaint"}),"QWidget: repaint"),"."),Object(n.b)("h3",{id:"widgetupdate"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.update()")),Object(n.b)("p",null,"Updates the widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#update"}),"QWidget: update"),"."),Object(n.b)("h3",{id:"widgetpos"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.pos()")),Object(n.b)("p",null,"Returns the current widget position. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#pos-prop"}),"QWidget: pos"),". The returned size object contains x and y coordinates in pixels."),Object(n.b)("h3",{id:"widgetsize"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.size()")),Object(n.b)("p",null,"Returns the current widget size. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#size-prop"}),"QWidget: size"),". The returned size object contains width and height in pixels."),Object(n.b)("h3",{id:"widgetupdategeometry"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.updateGeometry()")),Object(n.b)("p",null,"Notifies the layout system that this widget has changed and may need to change geometry."),Object(n.b)("h3",{id:"widgetsetattributeattributename-switchon"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.setAttribute(attributeName, switchOn)")),Object(n.b)("p",null,"Sets the attribute attribute on this widget if on is true; otherwise clears the attribute. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#setAttribute"}),"QWidget: setAttribute"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"attributeName")," WidgetAttribute - Enum from WidgetAttribute."),Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"switchOn")," boolean - set it to true if you want to enable an attribute.")),Object(n.b)("h3",{id:"widgettestattributeattributename"},Object(n.b)("inlineCode",{parentName:"h3"},"widget.testAttribute(attributeName)")),Object(n.b)("p",null,"Returns true if attribute attribute is set on this widget; otherwise returns false. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qwidget.html#testAttribute"}),"QWidget: testAttribute"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"attributeName")," WidgetAttribute - Enum from WidgetAttribute.")),Object(n.b)("h4",{id:"widgetinheritsclassname"},Object(n.b)("inlineCode",{parentName:"h4"},"widget.inherits(className)")),Object(n.b)("p",null,"Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. A class is considered to inherit itself. Example:"),Object(n.b)("pre",null,Object(n.b)("code",a({parentName:"pre"},{className:"language-ts"}),'const progressBar = new QProgressBar();\nprogressBar.inherits("QObject"); // returns true\nprogressBar.inherits("QProgressBar"); // returns true\nprogressBar.inherits("QTabWidget"); // returns false\n')),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"className")," string - Name of the class to get if this widget inherits from.")))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-abstract-scroll-area-3-e-6-d7f.a166f0f57747870e0ec4.js b/content---docs-api-q-abstract-scroll-area-3-e-6-d7f.ce07722700328be8dfa5.js similarity index 98% rename from content---docs-api-q-abstract-scroll-area-3-e-6-d7f.a166f0f57747870e0ec4.js rename to content---docs-api-q-abstract-scroll-area-3-e-6-d7f.ce07722700328be8dfa5.js index 4574d873a..d48d35a50 100644 --- a/content---docs-api-q-abstract-scroll-area-3-e-6-d7f.a166f0f57747870e0ec4.js +++ b/content---docs-api-q-abstract-scroll-area-3-e-6-d7f.ce07722700328be8dfa5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{161:function(e,t,r){"use strict";r.d(t,"a",(function(){return c})),r.d(t,"b",(function(){return p}));var a=r(0),n=r.n(a),o=n.a.createContext({}),i=function(e){var t=n.a.useContext(o),r=t;return e&&(r="function"==typeof e?e(t):Object.assign({},t,e)),r},c=function(e){var t=i(e.components);return n.a.createElement(o.Provider,{value:t},e.children)};var l="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.a.createElement(n.a.Fragment,{},t)}},d=Object(a.forwardRef)((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,l=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(r[a]=e[a]);return r}(e,["components","mdxType","originalType","parentName"]),d=i(r),p=a,b=d[c+"."+p]||d[p]||s[p]||o;return r?n.a.createElement(b,Object.assign({},{ref:t},l,{components:r})):n.a.createElement(b,Object.assign({},{ref:t},l))}));function p(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:a,i[1]=c;for(var p=2;p=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i={sidebar_label:"QAbstractScrollArea",title:"QAbstractScrollArea"},c=[{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"widget.setViewport(widget)",id:"widgetsetviewportwidget",children:[]},{value:"widget.viewport()",id:"widgetviewport",children:[]}]}],l={rightToc:c},s="wrapper";function d(e){var t=e.components,r=o(e,["components"]);return Object(a.b)(s,n({},l,r,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"Abstract class to add functionalities common to all scrollarea based widgets.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class implements all methods, properties of Qt's ",Object(a.b)("a",n({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qabstractscrollarea.html"}),"QAbstractScrollArea class")," so that it can be inherited by all scroll based widgets")),Object(a.b)("p",null,Object(a.b)("inlineCode",{parentName:"p"},"QAbstractScrollArea")," is an abstract class and hence no instances of the same should be created. It exists so that we can add similar functionalities to all scrollable widget's easily. If you wish to create a scrollarea use ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/QScrollArea"}),"QScrollArea")," instead."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QAbstractScrollArea is the base class for all widgets. It inherits from another abstract class ",Object(a.b)("a",n({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(a.b)("p",null,"QAbstractScrollArea will list all methods and properties that are common to all scrollable widgets in the NodeGui world."),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QAbstractScrollArea can access all the static methods defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QAbstractScrollArea can access all the instance properties defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QAbstractScrollArea can access all the instance methods defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("p",null,"Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"widgetsetviewportwidget"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.setViewport(widget)")),Object(a.b)("p",null,"Sets the viewport to be the given widget. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractscrollarea.html#setViewport"}),"QAbstractScrollArea: setViewport"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"widget")," NodeWidget.")),Object(a.b)("h3",{id:"widgetviewport"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.viewport()")),Object(a.b)("p",null,"Returns the viewport widget (NodeWidget). It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractscrollarea.html#viewport"}),"QAbstractScrollArea: viewport"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{161:function(e,t,r){"use strict";r.d(t,"a",(function(){return c})),r.d(t,"b",(function(){return p}));var a=r(0),n=r.n(a),o=n.a.createContext({}),i=function(e){var t=n.a.useContext(o),r=t;return e&&(r="function"==typeof e?e(t):Object.assign({},t,e)),r},c=function(e){var t=i(e.components);return n.a.createElement(o.Provider,{value:t},e.children)};var l="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.a.createElement(n.a.Fragment,{},t)}},d=Object(a.forwardRef)((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,l=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(r[a]=e[a]);return r}(e,["components","mdxType","originalType","parentName"]),d=i(r),p=a,b=d[c+"."+p]||d[p]||s[p]||o;return r?n.a.createElement(b,Object.assign({},{ref:t},l,{components:r})):n.a.createElement(b,Object.assign({},{ref:t},l))}));function p(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:a,i[1]=c;for(var p=2;p=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i={sidebar_label:"QAbstractScrollArea",title:"QAbstractScrollArea"},c=[{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"widget.setViewport(widget)",id:"widgetsetviewportwidget",children:[]},{value:"widget.viewport()",id:"widgetviewport",children:[]}]}],l={rightToc:c},s="wrapper";function d(e){var t=e.components,r=o(e,["components"]);return Object(a.b)(s,n({},l,r,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"Abstract class to add functionalities common to all scrollarea based widgets.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class implements all methods, properties of Qt's ",Object(a.b)("a",n({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qabstractscrollarea.html"}),"QAbstractScrollArea class")," so that it can be inherited by all scroll based widgets")),Object(a.b)("p",null,Object(a.b)("inlineCode",{parentName:"p"},"QAbstractScrollArea")," is an abstract class and hence no instances of the same should be created. It exists so that we can add similar functionalities to all scrollable widget's easily. If you wish to create a scrollarea use ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/QScrollArea"}),"QScrollArea")," instead."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QAbstractScrollArea is the base class for all widgets. It inherits from another abstract class ",Object(a.b)("a",n({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(a.b)("p",null,"QAbstractScrollArea will list all methods and properties that are common to all scrollable widgets in the NodeGui world."),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QAbstractScrollArea can access all the static methods defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QAbstractScrollArea can access all the instance properties defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QAbstractScrollArea can access all the instance methods defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("p",null,"Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"widgetsetviewportwidget"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.setViewport(widget)")),Object(a.b)("p",null,"Sets the viewport to be the given widget. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractscrollarea.html#setViewport"}),"QAbstractScrollArea: setViewport"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"widget")," NodeWidget.")),Object(a.b)("h3",{id:"widgetviewport"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.viewport()")),Object(a.b)("p",null,"Returns the viewport widget (NodeWidget). It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractscrollarea.html#viewport"}),"QAbstractScrollArea: viewport"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-abstract-slider-3-e-0-54d.1a794a8d8e995ff3f3bc.js b/content---docs-api-q-abstract-slider-3-e-0-54d.b7e761ae58b36fe089f1.js similarity index 98% rename from content---docs-api-q-abstract-slider-3-e-0-54d.1a794a8d8e995ff3f3bc.js rename to content---docs-api-q-abstract-slider-3-e-0-54d.b7e761ae58b36fe089f1.js index 62d36cc6b..2a4656ede 100644 --- a/content---docs-api-q-abstract-slider-3-e-0-54d.1a794a8d8e995ff3f3bc.js +++ b/content---docs-api-q-abstract-slider-3-e-0-54d.b7e761ae58b36fe089f1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{161:function(e,t,i){"use strict";i.d(t,"a",(function(){return s})),i.d(t,"b",(function(){return m}));var a=i(0),n=i.n(a),r=n.a.createContext({}),l=function(e){var t=n.a.useContext(r),i=t;return e&&(i="function"==typeof e?e(t):Object.assign({},t,e)),i},s=function(e){var t=l(e.components);return n.a.createElement(r.Provider,{value:t},e.children)};var c="mdxType",o={inlineCode:"code",wrapper:function(e){var t=e.children;return n.a.createElement(n.a.Fragment,{},t)}},d=Object(a.forwardRef)((function(e,t){var i=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,c=function(e,t){var i={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(i[a]=e[a]);return i}(e,["components","mdxType","originalType","parentName"]),d=l(i),m=a,b=d[s+"."+m]||d[m]||o[m]||r;return i?n.a.createElement(b,Object.assign({},{ref:t},c,{components:i})):n.a.createElement(b,Object.assign({},{ref:t},c))}));function m(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=i.length,l=new Array(r);l[0]=d;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[c]="string"==typeof e?e:a,l[1]=s;for(var m=2;m=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var l={sidebar_label:"QAbstractSlider",title:"QAbstractSlider"},s=[{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"widget.setSingleStep(step)",id:"widgetsetsinglestepstep",children:[]},{value:"widget.setMaximum(maximum)",id:"widgetsetmaximummaximum",children:[]},{value:"widget.setMinimum(minimum)",id:"widgetsetminimumminimum",children:[]},{value:"widget.setValue(value)",id:"widgetsetvaluevalue",children:[]},{value:"widget.setOrientation(orientation)",id:"widgetsetorientationorientation",children:[]},{value:"slider.maximum()",id:"slidermaximum",children:[]},{value:"slider.minimum()",id:"sliderminimum",children:[]},{value:"slider.value()",id:"slidervalue",children:[]}]}],c={rightToc:s},o="wrapper";function d(e){var t=e.components,i=r(e,["components"]);return Object(a.b)(o,n({},c,i,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"Abstract class to add functionalities common to all slider based widgets.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class implements all methods, properties of Qt's ",Object(a.b)("a",n({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qabstractslider.html"}),"QAbstractSlider class")," so that it can be inherited by all slider based widgets")),Object(a.b)("p",null,Object(a.b)("inlineCode",{parentName:"p"},"QAbstractSlider")," is an abstract class and hence no instances of the same should be created. It exists so that we can add similar functionalities to all slider widget's easily. If you wish to create a slider use ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/QDial"}),"QDial")," instead."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QAbstractSlider is the base class for all widgets. It inherits from another abstract class ",Object(a.b)("a",n({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(a.b)("p",null,"QAbstractSlider will list all methods and properties that are common to all slider widgets in the NodeGui world."),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QAbstractSlider can access all the static methods defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QAbstractSlider can access all the instance properties defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QAbstractSlider can access all the instance methods defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("p",null,"Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"widgetsetsinglestepstep"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.setSingleStep(step)")),Object(a.b)("p",null,"Sets the step value for user arrow key slider interaction. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractslider.html#singleStep-prop"}),"QAbstractSlider: setSingleStep"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"step")," number - Specified single step value.")),Object(a.b)("h3",{id:"widgetsetmaximummaximum"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.setMaximum(maximum)")),Object(a.b)("p",null,"Sets the maximum value for slider. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractslider.html#maximum-prop"}),"QAbstractSlider: setMaximum"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"maximum")," number - Specified maximum slider value.")),Object(a.b)("h3",{id:"widgetsetminimumminimum"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.setMinimum(minimum)")),Object(a.b)("p",null,"Sets the minimum value for slider. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractslider.html#minimum-prop"}),"QAbstractSlider: setMinimum"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"minimum")," number - Specified minimum slider value.")),Object(a.b)("h3",{id:"widgetsetvaluevalue"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.setValue(value)")),Object(a.b)("p",null,"Sets the current value for slider. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractslider.html#value-prop"}),"QAbstractSlider: setValue"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"value")," number - Specified current slider value.")),Object(a.b)("h3",{id:"widgetsetorientationorientation"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.setOrientation(orientation)")),Object(a.b)("p",null,"Sets the current orientation for slider. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractslider.html#orientation-prop"}),"QAbstractSlider: setOrientation"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"orientation")," Orientation - Specifies visual orientation of the slider. ",Object(a.b)("a",n({parentName:"li"},{href:"/docs/api/QtEnums"}),"Orientation is an enum from Qt"))),Object(a.b)("h3",{id:"slidermaximum"},Object(a.b)("inlineCode",{parentName:"h3"},"slider.maximum()")),Object(a.b)("p",null,"Returns the maximum value (Number) of the slider. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractslider.html#maximum-prop"}),"QAbstractSlider: maximum"),"."),Object(a.b)("h3",{id:"sliderminimum"},Object(a.b)("inlineCode",{parentName:"h3"},"slider.minimum()")),Object(a.b)("p",null,"Returns the minimum value (Number) of the slider. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractslider.html#minimum-prop"}),"QAbstractSlider: minimum"),"."),Object(a.b)("h3",{id:"slidervalue"},Object(a.b)("inlineCode",{parentName:"h3"},"slider.value()")),Object(a.b)("p",null,"Returns the current value (Number) of the slider. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractslider.html#value-prop"}),"QAbstractSlider: value"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{161:function(e,t,i){"use strict";i.d(t,"a",(function(){return s})),i.d(t,"b",(function(){return m}));var a=i(0),n=i.n(a),r=n.a.createContext({}),l=function(e){var t=n.a.useContext(r),i=t;return e&&(i="function"==typeof e?e(t):Object.assign({},t,e)),i},s=function(e){var t=l(e.components);return n.a.createElement(r.Provider,{value:t},e.children)};var c="mdxType",o={inlineCode:"code",wrapper:function(e){var t=e.children;return n.a.createElement(n.a.Fragment,{},t)}},d=Object(a.forwardRef)((function(e,t){var i=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,c=function(e,t){var i={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(i[a]=e[a]);return i}(e,["components","mdxType","originalType","parentName"]),d=l(i),m=a,b=d[s+"."+m]||d[m]||o[m]||r;return i?n.a.createElement(b,Object.assign({},{ref:t},c,{components:i})):n.a.createElement(b,Object.assign({},{ref:t},c))}));function m(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=i.length,l=new Array(r);l[0]=d;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[c]="string"==typeof e?e:a,l[1]=s;for(var m=2;m=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var l={sidebar_label:"QAbstractSlider",title:"QAbstractSlider"},s=[{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"widget.setSingleStep(step)",id:"widgetsetsinglestepstep",children:[]},{value:"widget.setMaximum(maximum)",id:"widgetsetmaximummaximum",children:[]},{value:"widget.setMinimum(minimum)",id:"widgetsetminimumminimum",children:[]},{value:"widget.setValue(value)",id:"widgetsetvaluevalue",children:[]},{value:"widget.setOrientation(orientation)",id:"widgetsetorientationorientation",children:[]},{value:"slider.maximum()",id:"slidermaximum",children:[]},{value:"slider.minimum()",id:"sliderminimum",children:[]},{value:"slider.value()",id:"slidervalue",children:[]}]}],c={rightToc:s},o="wrapper";function d(e){var t=e.components,i=r(e,["components"]);return Object(a.b)(o,n({},c,i,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"Abstract class to add functionalities common to all slider based widgets.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class implements all methods, properties of Qt's ",Object(a.b)("a",n({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qabstractslider.html"}),"QAbstractSlider class")," so that it can be inherited by all slider based widgets")),Object(a.b)("p",null,Object(a.b)("inlineCode",{parentName:"p"},"QAbstractSlider")," is an abstract class and hence no instances of the same should be created. It exists so that we can add similar functionalities to all slider widget's easily. If you wish to create a slider use ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/QDial"}),"QDial")," instead."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QAbstractSlider is the base class for all widgets. It inherits from another abstract class ",Object(a.b)("a",n({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(a.b)("p",null,"QAbstractSlider will list all methods and properties that are common to all slider widgets in the NodeGui world."),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QAbstractSlider can access all the static methods defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QAbstractSlider can access all the instance properties defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QAbstractSlider can access all the instance methods defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("p",null,"Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"widgetsetsinglestepstep"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.setSingleStep(step)")),Object(a.b)("p",null,"Sets the step value for user arrow key slider interaction. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractslider.html#singleStep-prop"}),"QAbstractSlider: setSingleStep"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"step")," number - Specified single step value.")),Object(a.b)("h3",{id:"widgetsetmaximummaximum"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.setMaximum(maximum)")),Object(a.b)("p",null,"Sets the maximum value for slider. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractslider.html#maximum-prop"}),"QAbstractSlider: setMaximum"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"maximum")," number - Specified maximum slider value.")),Object(a.b)("h3",{id:"widgetsetminimumminimum"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.setMinimum(minimum)")),Object(a.b)("p",null,"Sets the minimum value for slider. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractslider.html#minimum-prop"}),"QAbstractSlider: setMinimum"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"minimum")," number - Specified minimum slider value.")),Object(a.b)("h3",{id:"widgetsetvaluevalue"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.setValue(value)")),Object(a.b)("p",null,"Sets the current value for slider. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractslider.html#value-prop"}),"QAbstractSlider: setValue"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"value")," number - Specified current slider value.")),Object(a.b)("h3",{id:"widgetsetorientationorientation"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.setOrientation(orientation)")),Object(a.b)("p",null,"Sets the current orientation for slider. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractslider.html#orientation-prop"}),"QAbstractSlider: setOrientation"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"orientation")," Orientation - Specifies visual orientation of the slider. ",Object(a.b)("a",n({parentName:"li"},{href:"/docs/api/QtEnums"}),"Orientation is an enum from Qt"))),Object(a.b)("h3",{id:"slidermaximum"},Object(a.b)("inlineCode",{parentName:"h3"},"slider.maximum()")),Object(a.b)("p",null,"Returns the maximum value (Number) of the slider. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractslider.html#maximum-prop"}),"QAbstractSlider: maximum"),"."),Object(a.b)("h3",{id:"sliderminimum"},Object(a.b)("inlineCode",{parentName:"h3"},"slider.minimum()")),Object(a.b)("p",null,"Returns the minimum value (Number) of the slider. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractslider.html#minimum-prop"}),"QAbstractSlider: minimum"),"."),Object(a.b)("h3",{id:"slidervalue"},Object(a.b)("inlineCode",{parentName:"h3"},"slider.value()")),Object(a.b)("p",null,"Returns the current value (Number) of the slider. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractslider.html#value-prop"}),"QAbstractSlider: value"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-applicationd-3-e-0a3.6fa95396d7fbee9da501.js b/content---docs-api-q-applicationd-3-e-0a3.039f8c83760f87eef546.js similarity index 98% rename from content---docs-api-q-applicationd-3-e-0a3.6fa95396d7fbee9da501.js rename to content---docs-api-q-applicationd-3-e-0a3.039f8c83760f87eef546.js index e1e7d730f..23cb3b033 100644 --- a/content---docs-api-q-applicationd-3-e-0a3.6fa95396d7fbee9da501.js +++ b/content---docs-api-q-applicationd-3-e-0a3.039f8c83760f87eef546.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return b}));var a=n(0),i=n.n(a),p=i.a.createContext({}),c=function(e){var t=i.a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},o=function(e){var t=c(e.components);return i.a.createElement(p.Provider,{value:t},e.children)};var r="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},s=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,p=e.originalType,o=e.parentName,r=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),s=c(n),b=a,d=s[o+"."+b]||s[b]||l[b]||p;return n?i.a.createElement(d,Object.assign({},{ref:t},r,{components:n})):i.a.createElement(d,Object.assign({},{ref:t},r))}));function b(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var p=n.length,c=new Array(p);c[0]=s;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[r]="string"==typeof e?e:a,c[1]=o;for(var b=2;b=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c={sidebar_label:"QApplication",title:"QApplication"},o=[{value:"Example",id:"example",children:[]},{value:"Static Methods",id:"static-methods",children:[{value:"QApplication.instance()",id:"qapplicationinstance",children:[]},{value:"QApplication.clipboard()",id:"qapplicationclipboard",children:[]}]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"qApp.quit()",id:"qappquit",children:[]},{value:"qApp.exit(returnCode)",id:"qappexitreturncode",children:[]},{value:"qApp.processEvents()",id:"qappprocessevents",children:[]},{value:"qApp.exec()",id:"qappexec",children:[]}]}],r={rightToc:o},l="wrapper";function s(e){var t=e.components,n=p(e,["components"]);return Object(a.b)(l,i({},r,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"QApplication is the root object for the entire application. It manages app level settings.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(a.b)("a",i({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qapplication.html"}),"QApplication class"))),Object(a.b)("p",null,"The QApplication class manages the GUI application's control flow and main settings. In NodeGui you will never create an instance of it manually. NodeGui's internal runtime ",Object(a.b)("inlineCode",{parentName:"p"},"Qode")," does it for you on app start. You can access the initialised QApplication though if needed."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QApplication inherits from ",Object(a.b)("a",i({parentName:"strong"},{href:"/docs/api/Component"}),"Component"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{className:"language-js"}),'const { QApplication } = require("@nodegui/nodegui");\n\nconst qApp = QApplication.instance();\nqApp.quit();\n')),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QApplication can access all the static methods defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/Component"}),"Component"),". Additionally it also has the following static methods."),Object(a.b)("h3",{id:"qapplicationinstance"},Object(a.b)("inlineCode",{parentName:"h3"},"QApplication.instance()")),Object(a.b)("p",null,"Returns the already initialised QApplication instance. It calls the native method ",Object(a.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qcoreapplication.html#instance"}),"QApplication: instance"),"."),Object(a.b)("h3",{id:"qapplicationclipboard"},Object(a.b)("inlineCode",{parentName:"h3"},"QApplication.clipboard()")),Object(a.b)("p",null,"Returns the object for interacting with the clipboard. It calls the native method ",Object(a.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qguiapplication.html#clipboard"}),"QApplication: clipboard"),". See QClipboard."),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QApplication can access all the instance properties defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QApplication can access all the instance methods defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/Component"}),"Component"),". Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"qappquit"},Object(a.b)("inlineCode",{parentName:"h3"},"qApp.quit()")),Object(a.b)("p",null,"Quits the entire app. It calls the native method ",Object(a.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qcoreapplication.html#quit"}),"QApplication: quit"),"."),Object(a.b)("h3",{id:"qappexitreturncode"},Object(a.b)("inlineCode",{parentName:"h3"},"qApp.exit(returnCode)")),Object(a.b)("p",null,"Tells the application to exit with a return code. It calls the native method ",Object(a.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qcoreapplication.html#exit"}),"QApplication: exit"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"returnCode")," number - The exit code while quitting the app.")),Object(a.b)("h3",{id:"qappprocessevents"},Object(a.b)("inlineCode",{parentName:"h3"},"qApp.processEvents()")),Object(a.b)("p",null,"Processes all pending events for the calling thread . It calls the native method ",Object(a.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qcoreapplication.html#processEvents"}),"QApplication: processEvents"),"."),Object(a.b)("h3",{id:"qappexec"},Object(a.b)("inlineCode",{parentName:"h3"},"qApp.exec()")),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"We will never call this method in NodeGui, since Qode will execute this function for us. It exists for experiments only.")),Object(a.b)("p",null,"Enters the main event loop and waits until exit() is called. Returns the value that was passed to exit() (which is 0 if exit() is called via quit()). It calls the native method ",Object(a.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qcoreapplication.html#exec"}),"QApplication: exec"),"."),Object(a.b)("p",null,"Returns the exit code after app exits."))}s.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return b}));var a=n(0),i=n.n(a),p=i.a.createContext({}),c=function(e){var t=i.a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},o=function(e){var t=c(e.components);return i.a.createElement(p.Provider,{value:t},e.children)};var r="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},s=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,p=e.originalType,o=e.parentName,r=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),s=c(n),b=a,d=s[o+"."+b]||s[b]||l[b]||p;return n?i.a.createElement(d,Object.assign({},{ref:t},r,{components:n})):i.a.createElement(d,Object.assign({},{ref:t},r))}));function b(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var p=n.length,c=new Array(p);c[0]=s;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[r]="string"==typeof e?e:a,c[1]=o;for(var b=2;b=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c={sidebar_label:"QApplication",title:"QApplication"},o=[{value:"Example",id:"example",children:[]},{value:"Static Methods",id:"static-methods",children:[{value:"QApplication.instance()",id:"qapplicationinstance",children:[]},{value:"QApplication.clipboard()",id:"qapplicationclipboard",children:[]}]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"qApp.quit()",id:"qappquit",children:[]},{value:"qApp.exit(returnCode)",id:"qappexitreturncode",children:[]},{value:"qApp.processEvents()",id:"qappprocessevents",children:[]},{value:"qApp.exec()",id:"qappexec",children:[]}]}],r={rightToc:o},l="wrapper";function s(e){var t=e.components,n=p(e,["components"]);return Object(a.b)(l,i({},r,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"QApplication is the root object for the entire application. It manages app level settings.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(a.b)("a",i({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qapplication.html"}),"QApplication class"))),Object(a.b)("p",null,"The QApplication class manages the GUI application's control flow and main settings. In NodeGui you will never create an instance of it manually. NodeGui's internal runtime ",Object(a.b)("inlineCode",{parentName:"p"},"Qode")," does it for you on app start. You can access the initialised QApplication though if needed."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QApplication inherits from ",Object(a.b)("a",i({parentName:"strong"},{href:"/docs/api/Component"}),"Component"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{className:"language-js"}),'const { QApplication } = require("@nodegui/nodegui");\n\nconst qApp = QApplication.instance();\nqApp.quit();\n')),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QApplication can access all the static methods defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/Component"}),"Component"),". Additionally it also has the following static methods."),Object(a.b)("h3",{id:"qapplicationinstance"},Object(a.b)("inlineCode",{parentName:"h3"},"QApplication.instance()")),Object(a.b)("p",null,"Returns the already initialised QApplication instance. It calls the native method ",Object(a.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qcoreapplication.html#instance"}),"QApplication: instance"),"."),Object(a.b)("h3",{id:"qapplicationclipboard"},Object(a.b)("inlineCode",{parentName:"h3"},"QApplication.clipboard()")),Object(a.b)("p",null,"Returns the object for interacting with the clipboard. It calls the native method ",Object(a.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qguiapplication.html#clipboard"}),"QApplication: clipboard"),". See QClipboard."),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QApplication can access all the instance properties defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QApplication can access all the instance methods defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/Component"}),"Component"),". Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"qappquit"},Object(a.b)("inlineCode",{parentName:"h3"},"qApp.quit()")),Object(a.b)("p",null,"Quits the entire app. It calls the native method ",Object(a.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qcoreapplication.html#quit"}),"QApplication: quit"),"."),Object(a.b)("h3",{id:"qappexitreturncode"},Object(a.b)("inlineCode",{parentName:"h3"},"qApp.exit(returnCode)")),Object(a.b)("p",null,"Tells the application to exit with a return code. It calls the native method ",Object(a.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qcoreapplication.html#exit"}),"QApplication: exit"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"returnCode")," number - The exit code while quitting the app.")),Object(a.b)("h3",{id:"qappprocessevents"},Object(a.b)("inlineCode",{parentName:"h3"},"qApp.processEvents()")),Object(a.b)("p",null,"Processes all pending events for the calling thread . It calls the native method ",Object(a.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qcoreapplication.html#processEvents"}),"QApplication: processEvents"),"."),Object(a.b)("h3",{id:"qappexec"},Object(a.b)("inlineCode",{parentName:"h3"},"qApp.exec()")),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"We will never call this method in NodeGui, since Qode will execute this function for us. It exists for experiments only.")),Object(a.b)("p",null,"Enters the main event loop and waits until exit() is called. Returns the value that was passed to exit() (which is 0 if exit() is called via quit()). It calls the native method ",Object(a.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qcoreapplication.html#exec"}),"QApplication: exec"),"."),Object(a.b)("p",null,"Returns the exit code after app exits."))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-check-boxd-9-b-c95.ecff488106003dd95b58.js b/content---docs-api-q-check-boxd-9-b-c95.54af9594d82de2f1c65c.js similarity index 98% rename from content---docs-api-q-check-boxd-9-b-c95.ecff488106003dd95b58.js rename to content---docs-api-q-check-boxd-9-b-c95.54af9594d82de2f1c65c.js index f8de34381..41b2e2a10 100644 --- a/content---docs-api-q-check-boxd-9-b-c95.ecff488106003dd95b58.js +++ b/content---docs-api-q-check-boxd-9-b-c95.54af9594d82de2f1c65c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return d}));var c=n(0),a=n.n(c),r=a.a.createContext({}),o=function(e){var t=a.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},i=function(e){var t=o(e.components);return a.a.createElement(r.Provider,{value:t},e.children)};var l="mdxType",b={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},h=Object(c.forwardRef)((function(e,t){var n=e.components,c=e.mdxType,r=e.originalType,i=e.parentName,l=function(e,t){var n={};for(var c in e)Object.prototype.hasOwnProperty.call(e,c)&&-1===t.indexOf(c)&&(n[c]=e[c]);return n}(e,["components","mdxType","originalType","parentName"]),h=o(n),d=c,p=h[i+"."+d]||h[d]||b[d]||r;return n?a.a.createElement(p,Object.assign({},{ref:t},l,{components:n})):a.a.createElement(p,Object.assign({},{ref:t},l))}));function d(e,t){var n=arguments,c=t&&t.mdxType;if("string"==typeof e||c){var r=n.length,o=new Array(r);o[0]=h;var i={};for(var b in t)hasOwnProperty.call(t,b)&&(i[b]=t[b]);i.originalType=e,i[l]="string"==typeof e?e:c,o[1]=i;for(var d=2;d=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o={sidebar_label:"QCheckBox",title:"QCheckBox"},i=[{value:"Example",id:"example",children:[]},{value:"new QCheckBox(parent?)",id:"new-qcheckboxparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"checkbox.setText(text)",id:"checkboxsettexttext",children:[]},{value:"checkbox.isChecked()",id:"checkboxischecked",children:[]},{value:"checkbox.setChecked(check)",id:"checkboxsetcheckedcheck",children:[]}]}],l={rightToc:i},b="wrapper";function h(e){var t=e.components,n=r(e,["components"]);return Object(c.b)(b,a({},l,n,{components:t,mdxType:"MDXLayout"}),Object(c.b)("blockquote",null,Object(c.b)("p",{parentName:"blockquote"},"Create and control checkbox.")),Object(c.b)("p",null,Object(c.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(c.b)("a",a({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qcheckbox.html"}),"QCheckBox class"))),Object(c.b)("p",null,"A ",Object(c.b)("inlineCode",{parentName:"p"},"QCheckBox")," provides ability to add and manipulate native checkbox widgets."),Object(c.b)("p",null,Object(c.b)("strong",{parentName:"p"},"QCheckBox inherits from ",Object(c.b)("a",a({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(c.b)("h3",{id:"example"},"Example"),Object(c.b)("pre",null,Object(c.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const { QCheckBox } = require("@nodegui/nodegui");\n\nconst checkbox = new QCheckBox();\ncheckbox.setText("Hello");\n')),Object(c.b)("h3",{id:"new-qcheckboxparent"},Object(c.b)("inlineCode",{parentName:"h3"},"new QCheckBox(parent?)")),Object(c.b)("ul",null,Object(c.b)("li",{parentName:"ul"},Object(c.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(c.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(c.b)("h2",{id:"static-methods"},"Static Methods"),Object(c.b)("p",null,"QCheckBox can access all the static methods defined in ",Object(c.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(c.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(c.b)("p",null,"QCheckBox can access all the instance properties defined in ",Object(c.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(c.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(c.b)("p",null,"QCheckBox can access all the instance methods defined in ",Object(c.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(c.b)("p",null,"Additionally it also has the following instance methods:"),Object(c.b)("h3",{id:"checkboxsettexttext"},Object(c.b)("inlineCode",{parentName:"h3"},"checkbox.setText(text)")),Object(c.b)("p",null,"Sets the given text to the checkbox."),Object(c.b)("ul",null,Object(c.b)("li",{parentName:"ul"},Object(c.b)("inlineCode",{parentName:"li"},"text")," string")),Object(c.b)("h3",{id:"checkboxischecked"},Object(c.b)("inlineCode",{parentName:"h3"},"checkbox.isChecked()")),Object(c.b)("p",null,"returns whether the checkbox is checked or not. It calls the native method ",Object(c.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractbutton.html#checked-prop"}),"QAbstractButton: isChecked"),"."),Object(c.b)("h3",{id:"checkboxsetcheckedcheck"},Object(c.b)("inlineCode",{parentName:"h3"},"checkbox.setChecked(check)")),Object(c.b)("p",null,"This property holds whether the button is checked. It calls the native method ",Object(c.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractbutton.html#checked-prop"}),"QAbstractButton: setChecked"),"."),Object(c.b)("ul",null,Object(c.b)("li",{parentName:"ul"},Object(c.b)("inlineCode",{parentName:"li"},"check")," boolean")))}h.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return d}));var c=n(0),a=n.n(c),r=a.a.createContext({}),o=function(e){var t=a.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},i=function(e){var t=o(e.components);return a.a.createElement(r.Provider,{value:t},e.children)};var l="mdxType",b={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},h=Object(c.forwardRef)((function(e,t){var n=e.components,c=e.mdxType,r=e.originalType,i=e.parentName,l=function(e,t){var n={};for(var c in e)Object.prototype.hasOwnProperty.call(e,c)&&-1===t.indexOf(c)&&(n[c]=e[c]);return n}(e,["components","mdxType","originalType","parentName"]),h=o(n),d=c,p=h[i+"."+d]||h[d]||b[d]||r;return n?a.a.createElement(p,Object.assign({},{ref:t},l,{components:n})):a.a.createElement(p,Object.assign({},{ref:t},l))}));function d(e,t){var n=arguments,c=t&&t.mdxType;if("string"==typeof e||c){var r=n.length,o=new Array(r);o[0]=h;var i={};for(var b in t)hasOwnProperty.call(t,b)&&(i[b]=t[b]);i.originalType=e,i[l]="string"==typeof e?e:c,o[1]=i;for(var d=2;d=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o={sidebar_label:"QCheckBox",title:"QCheckBox"},i=[{value:"Example",id:"example",children:[]},{value:"new QCheckBox(parent?)",id:"new-qcheckboxparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"checkbox.setText(text)",id:"checkboxsettexttext",children:[]},{value:"checkbox.isChecked()",id:"checkboxischecked",children:[]},{value:"checkbox.setChecked(check)",id:"checkboxsetcheckedcheck",children:[]}]}],l={rightToc:i},b="wrapper";function h(e){var t=e.components,n=r(e,["components"]);return Object(c.b)(b,a({},l,n,{components:t,mdxType:"MDXLayout"}),Object(c.b)("blockquote",null,Object(c.b)("p",{parentName:"blockquote"},"Create and control checkbox.")),Object(c.b)("p",null,Object(c.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(c.b)("a",a({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qcheckbox.html"}),"QCheckBox class"))),Object(c.b)("p",null,"A ",Object(c.b)("inlineCode",{parentName:"p"},"QCheckBox")," provides ability to add and manipulate native checkbox widgets."),Object(c.b)("p",null,Object(c.b)("strong",{parentName:"p"},"QCheckBox inherits from ",Object(c.b)("a",a({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(c.b)("h3",{id:"example"},"Example"),Object(c.b)("pre",null,Object(c.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const { QCheckBox } = require("@nodegui/nodegui");\n\nconst checkbox = new QCheckBox();\ncheckbox.setText("Hello");\n')),Object(c.b)("h3",{id:"new-qcheckboxparent"},Object(c.b)("inlineCode",{parentName:"h3"},"new QCheckBox(parent?)")),Object(c.b)("ul",null,Object(c.b)("li",{parentName:"ul"},Object(c.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(c.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(c.b)("h2",{id:"static-methods"},"Static Methods"),Object(c.b)("p",null,"QCheckBox can access all the static methods defined in ",Object(c.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(c.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(c.b)("p",null,"QCheckBox can access all the instance properties defined in ",Object(c.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(c.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(c.b)("p",null,"QCheckBox can access all the instance methods defined in ",Object(c.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(c.b)("p",null,"Additionally it also has the following instance methods:"),Object(c.b)("h3",{id:"checkboxsettexttext"},Object(c.b)("inlineCode",{parentName:"h3"},"checkbox.setText(text)")),Object(c.b)("p",null,"Sets the given text to the checkbox."),Object(c.b)("ul",null,Object(c.b)("li",{parentName:"ul"},Object(c.b)("inlineCode",{parentName:"li"},"text")," string")),Object(c.b)("h3",{id:"checkboxischecked"},Object(c.b)("inlineCode",{parentName:"h3"},"checkbox.isChecked()")),Object(c.b)("p",null,"returns whether the checkbox is checked or not. It calls the native method ",Object(c.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractbutton.html#checked-prop"}),"QAbstractButton: isChecked"),"."),Object(c.b)("h3",{id:"checkboxsetcheckedcheck"},Object(c.b)("inlineCode",{parentName:"h3"},"checkbox.setChecked(check)")),Object(c.b)("p",null,"This property holds whether the button is checked. It calls the native method ",Object(c.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qabstractbutton.html#checked-prop"}),"QAbstractButton: setChecked"),"."),Object(c.b)("ul",null,Object(c.b)("li",{parentName:"ul"},Object(c.b)("inlineCode",{parentName:"li"},"check")," boolean")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-clipboard-69-d-2ef.189654ea9b37adaada9b.js b/content---docs-api-q-clipboard-69-d-2ef.2facddd2ce7d03c7d364.js similarity index 98% rename from content---docs-api-q-clipboard-69-d-2ef.189654ea9b37adaada9b.js rename to content---docs-api-q-clipboard-69-d-2ef.2facddd2ce7d03c7d364.js index 11ba646e1..12741a79e 100644 --- a/content---docs-api-q-clipboard-69-d-2ef.189654ea9b37adaada9b.js +++ b/content---docs-api-q-clipboard-69-d-2ef.2facddd2ce7d03c7d364.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return b}));var a=n(0),o=n.n(a),r=o.a.createContext({}),i=function(e){var t=o.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},c=function(e){var t=i(e.components);return o.a.createElement(r.Provider,{value:t},e.children)};var l="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},d=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,c=e.parentName,l=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),d=i(n),b=a,s=d[c+"."+b]||d[b]||p[b]||r;return n?o.a.createElement(s,Object.assign({},{ref:t},l,{components:n})):o.a.createElement(s,Object.assign({},{ref:t},l))}));function b(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=d;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[l]="string"==typeof e?e:a,i[1]=c;for(var b=2;b=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i={sidebar_label:"QClipboard",title:"QClipboard"},c=[{value:"Example",id:"example",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"clipboard.clear(mode)",id:"clipboardclearmode",children:[]},{value:"clipboard.setText(text, mode)",id:"clipboardsettexttext-mode",children:[]},{value:"clipboard.text(mode)",id:"clipboardtextmode",children:[]}]}],l={rightToc:c},p="wrapper";function d(e){var t=e.components,n=r(e,["components"]);return Object(a.b)(p,o({},l,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"The QClipboard class provides access to the window system clipboard.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(a.b)("a",o({parentName:"strong"},{href:"https://doc.qt.io/qt-5/QClipboard.html"}),"QClipboard class"))),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QClipboard inherits from ",Object(a.b)("a",o({parentName:"strong"},{href:"/docs/api/Component"}),"Component"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",o({parentName:"pre"},{className:"language-javascript"}),'const {\n QClipboard,\n QClipboardMode,\n QApplication\n} = require("@nodegui/nodegui");\n\nconst clipboard = QApplication.clipboard();\nconst text = clipboard.text(QClipboardMode.Clipboard);\n')),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QClipboard can access all the static methods defined in ",Object(a.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QClipboard can access all the instance properties defined in ",Object(a.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QClipboard can access all the instance methods defined in ",Object(a.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component"),". Additionally it has:"),Object(a.b)("h3",{id:"clipboardclearmode"},Object(a.b)("inlineCode",{parentName:"h3"},"clipboard.clear(mode)")),Object(a.b)("p",null,"Clear the clipboard contents. It calls the native method ",Object(a.b)("a",o({parentName:"p"},{href:"https://doc.qt.io/qt-5/qclipboard.html#clear"}),"QClipboard: clear"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"mode")," - This enum type is used to control which part of the system clipboard is used. See ",Object(a.b)("a",o({parentName:"li"},{href:"https://doc.qt.io/qt-5/qclipboard.html#Mode-enum"}),"https://doc.qt.io/qt-5/qclipboard.html#Mode-enum"))),Object(a.b)("h3",{id:"clipboardsettexttext-mode"},Object(a.b)("inlineCode",{parentName:"h3"},"clipboard.setText(text, mode)")),Object(a.b)("p",null,"Copies text into the clipboard as plain text. It calls the native method ",Object(a.b)("a",o({parentName:"p"},{href:"https://doc.qt.io/qt-5/qclipboard.html#setText"}),"QClipboard: setText"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("p",{parentName:"li"},Object(a.b)("inlineCode",{parentName:"p"},"text")," - The text you want to copy to clipboard.")),Object(a.b)("li",{parentName:"ul"},Object(a.b)("p",{parentName:"li"},Object(a.b)("inlineCode",{parentName:"p"},"mode")," - This enum type is used to control which part of the system clipboard is used. See ",Object(a.b)("a",o({parentName:"p"},{href:"https://doc.qt.io/qt-5/qclipboard.html#Mode-enum"}),"https://doc.qt.io/qt-5/qclipboard.html#Mode-enum")))),Object(a.b)("h3",{id:"clipboardtextmode"},Object(a.b)("inlineCode",{parentName:"h3"},"clipboard.text(mode)")),Object(a.b)("p",null,"Returns the clipboard text as plain text, or an empty string if the clipboard does not contain any text. It calls the native method ",Object(a.b)("a",o({parentName:"p"},{href:"https://doc.qt.io/qt-5/qclipboard.html#text"}),"QClipboard: text"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"mode")," - This enum type is used to control which part of the system clipboard is used. See ",Object(a.b)("a",o({parentName:"li"},{href:"https://doc.qt.io/qt-5/qclipboard.html#Mode-enum"}),"https://doc.qt.io/qt-5/qclipboard.html#Mode-enum"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return b}));var a=n(0),o=n.n(a),r=o.a.createContext({}),i=function(e){var t=o.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},c=function(e){var t=i(e.components);return o.a.createElement(r.Provider,{value:t},e.children)};var l="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},d=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,c=e.parentName,l=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),d=i(n),b=a,s=d[c+"."+b]||d[b]||p[b]||r;return n?o.a.createElement(s,Object.assign({},{ref:t},l,{components:n})):o.a.createElement(s,Object.assign({},{ref:t},l))}));function b(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=d;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[l]="string"==typeof e?e:a,i[1]=c;for(var b=2;b=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i={sidebar_label:"QClipboard",title:"QClipboard"},c=[{value:"Example",id:"example",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"clipboard.clear(mode)",id:"clipboardclearmode",children:[]},{value:"clipboard.setText(text, mode)",id:"clipboardsettexttext-mode",children:[]},{value:"clipboard.text(mode)",id:"clipboardtextmode",children:[]}]}],l={rightToc:c},p="wrapper";function d(e){var t=e.components,n=r(e,["components"]);return Object(a.b)(p,o({},l,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"The QClipboard class provides access to the window system clipboard.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(a.b)("a",o({parentName:"strong"},{href:"https://doc.qt.io/qt-5/QClipboard.html"}),"QClipboard class"))),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QClipboard inherits from ",Object(a.b)("a",o({parentName:"strong"},{href:"/docs/api/Component"}),"Component"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",o({parentName:"pre"},{className:"language-javascript"}),'const {\n QClipboard,\n QClipboardMode,\n QApplication\n} = require("@nodegui/nodegui");\n\nconst clipboard = QApplication.clipboard();\nconst text = clipboard.text(QClipboardMode.Clipboard);\n')),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QClipboard can access all the static methods defined in ",Object(a.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QClipboard can access all the instance properties defined in ",Object(a.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QClipboard can access all the instance methods defined in ",Object(a.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component"),". Additionally it has:"),Object(a.b)("h3",{id:"clipboardclearmode"},Object(a.b)("inlineCode",{parentName:"h3"},"clipboard.clear(mode)")),Object(a.b)("p",null,"Clear the clipboard contents. It calls the native method ",Object(a.b)("a",o({parentName:"p"},{href:"https://doc.qt.io/qt-5/qclipboard.html#clear"}),"QClipboard: clear"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"mode")," - This enum type is used to control which part of the system clipboard is used. See ",Object(a.b)("a",o({parentName:"li"},{href:"https://doc.qt.io/qt-5/qclipboard.html#Mode-enum"}),"https://doc.qt.io/qt-5/qclipboard.html#Mode-enum"))),Object(a.b)("h3",{id:"clipboardsettexttext-mode"},Object(a.b)("inlineCode",{parentName:"h3"},"clipboard.setText(text, mode)")),Object(a.b)("p",null,"Copies text into the clipboard as plain text. It calls the native method ",Object(a.b)("a",o({parentName:"p"},{href:"https://doc.qt.io/qt-5/qclipboard.html#setText"}),"QClipboard: setText"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("p",{parentName:"li"},Object(a.b)("inlineCode",{parentName:"p"},"text")," - The text you want to copy to clipboard.")),Object(a.b)("li",{parentName:"ul"},Object(a.b)("p",{parentName:"li"},Object(a.b)("inlineCode",{parentName:"p"},"mode")," - This enum type is used to control which part of the system clipboard is used. See ",Object(a.b)("a",o({parentName:"p"},{href:"https://doc.qt.io/qt-5/qclipboard.html#Mode-enum"}),"https://doc.qt.io/qt-5/qclipboard.html#Mode-enum")))),Object(a.b)("h3",{id:"clipboardtextmode"},Object(a.b)("inlineCode",{parentName:"h3"},"clipboard.text(mode)")),Object(a.b)("p",null,"Returns the clipboard text as plain text, or an empty string if the clipboard does not contain any text. It calls the native method ",Object(a.b)("a",o({parentName:"p"},{href:"https://doc.qt.io/qt-5/qclipboard.html#text"}),"QClipboard: text"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"mode")," - This enum type is used to control which part of the system clipboard is used. See ",Object(a.b)("a",o({parentName:"li"},{href:"https://doc.qt.io/qt-5/qclipboard.html#Mode-enum"}),"https://doc.qt.io/qt-5/qclipboard.html#Mode-enum"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-cursor-362-d51.7f14f85b8c20c1f5cbf5.js b/content---docs-api-q-cursor-362-d51.72e3b873d390560e1917.js similarity index 96% rename from content---docs-api-q-cursor-362-d51.7f14f85b8c20c1f5cbf5.js rename to content---docs-api-q-cursor-362-d51.72e3b873d390560e1917.js index 657a7a881..957979f50 100644 --- a/content---docs-api-q-cursor-362-d51.7f14f85b8c20c1f5cbf5.js +++ b/content---docs-api-q-cursor-362-d51.72e3b873d390560e1917.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{161:function(e,r,n){"use strict";n.d(r,"a",(function(){return u})),n.d(r,"b",(function(){return p}));var t=n(0),a=n.n(t),o=a.a.createContext({}),c=function(e){var r=a.a.useContext(o),n=r;return e&&(n="function"==typeof e?e(r):Object.assign({},r,e)),n},u=function(e){var r=c(e.components);return a.a.createElement(o.Provider,{value:r},e.children)};var i="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return a.a.createElement(a.a.Fragment,{},r)}},l=Object(t.forwardRef)((function(e,r){var n=e.components,t=e.mdxType,o=e.originalType,u=e.parentName,i=function(e,r){var n={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&-1===r.indexOf(t)&&(n[t]=e[t]);return n}(e,["components","mdxType","originalType","parentName"]),l=c(n),p=t,b=l[u+"."+p]||l[p]||s[p]||o;return n?a.a.createElement(b,Object.assign({},{ref:r},i,{components:n})):a.a.createElement(b,Object.assign({},{ref:r},i))}));function p(e,r){var n=arguments,t=r&&r.mdxType;if("string"==typeof e||t){var o=n.length,c=new Array(o);c[0]=l;var u={};for(var s in r)hasOwnProperty.call(r,s)&&(u[s]=r[s]);u.originalType=e,u[i]="string"==typeof e?e:t,c[1]=u;for(var p=2;p=0||(a[n]=e[n]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c={sidebar_label:"QCursor",title:"QCursor"},u=[{value:"Example",id:"example",children:[]},{value:"new QCursor(cursor)",id:"new-qcursorcursor",children:[]}],i={rightToc:u},s="wrapper";function l(e){var r=e.components,n=o(e,["components"]);return Object(t.b)(s,a({},i,n,{components:r,mdxType:"MDXLayout"}),Object(t.b)("blockquote",null,Object(t.b)("p",{parentName:"blockquote"},"The QCursor class provides scalable icons in different modes and states.")),Object(t.b)("p",null,Object(t.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(t.b)("a",a({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qcursor.html"}),"QCursor class"))),Object(t.b)("h3",{id:"example"},"Example"),Object(t.b)("pre",null,Object(t.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const { QCursor } = require("@nodegui/nodegui");\n\nconst cursor = new QCursor();\n')),Object(t.b)("h3",{id:"new-qcursorcursor"},Object(t.b)("inlineCode",{parentName:"h3"},"new QCursor(cursor)")),Object(t.b)("ul",null,Object(t.b)("li",{parentName:"ul"},Object(t.b)("inlineCode",{parentName:"li"},"cursor")," CursorShape (",Object(t.b)("em",{parentName:"li"},"optional"),"). Defines shape for the cursor. ",Object(t.b)("a",a({parentName:"li"},{href:"/docs/api/QtEnums"}),"CursorShape is an enum from Qt"))))}l.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{161:function(e,r,n){"use strict";n.d(r,"a",(function(){return u})),n.d(r,"b",(function(){return p}));var t=n(0),a=n.n(t),o=a.a.createContext({}),c=function(e){var r=a.a.useContext(o),n=r;return e&&(n="function"==typeof e?e(r):Object.assign({},r,e)),n},u=function(e){var r=c(e.components);return a.a.createElement(o.Provider,{value:r},e.children)};var i="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return a.a.createElement(a.a.Fragment,{},r)}},l=Object(t.forwardRef)((function(e,r){var n=e.components,t=e.mdxType,o=e.originalType,u=e.parentName,i=function(e,r){var n={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&-1===r.indexOf(t)&&(n[t]=e[t]);return n}(e,["components","mdxType","originalType","parentName"]),l=c(n),p=t,b=l[u+"."+p]||l[p]||s[p]||o;return n?a.a.createElement(b,Object.assign({},{ref:r},i,{components:n})):a.a.createElement(b,Object.assign({},{ref:r},i))}));function p(e,r){var n=arguments,t=r&&r.mdxType;if("string"==typeof e||t){var o=n.length,c=new Array(o);c[0]=l;var u={};for(var s in r)hasOwnProperty.call(r,s)&&(u[s]=r[s]);u.originalType=e,u[i]="string"==typeof e?e:t,c[1]=u;for(var p=2;p=0||(a[n]=e[n]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c={sidebar_label:"QCursor",title:"QCursor"},u=[{value:"Example",id:"example",children:[]},{value:"new QCursor(cursor)",id:"new-qcursorcursor",children:[]}],i={rightToc:u},s="wrapper";function l(e){var r=e.components,n=o(e,["components"]);return Object(t.b)(s,a({},i,n,{components:r,mdxType:"MDXLayout"}),Object(t.b)("blockquote",null,Object(t.b)("p",{parentName:"blockquote"},"The QCursor class provides scalable icons in different modes and states.")),Object(t.b)("p",null,Object(t.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(t.b)("a",a({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qcursor.html"}),"QCursor class"))),Object(t.b)("h3",{id:"example"},"Example"),Object(t.b)("pre",null,Object(t.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const { QCursor } = require("@nodegui/nodegui");\n\nconst cursor = new QCursor();\n')),Object(t.b)("h3",{id:"new-qcursorcursor"},Object(t.b)("inlineCode",{parentName:"h3"},"new QCursor(cursor)")),Object(t.b)("ul",null,Object(t.b)("li",{parentName:"ul"},Object(t.b)("inlineCode",{parentName:"li"},"cursor")," CursorShape (",Object(t.b)("em",{parentName:"li"},"optional"),"). Defines shape for the cursor. ",Object(t.b)("a",a({parentName:"li"},{href:"/docs/api/QtEnums"}),"CursorShape is an enum from Qt"))))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-dial-80-b-99a.27cba315ea3b12bad153.js b/content---docs-api-q-dial-80-b-99a.facd48a52570d2fd7472.js similarity index 98% rename from content---docs-api-q-dial-80-b-99a.27cba315ea3b12bad153.js rename to content---docs-api-q-dial-80-b-99a.facd48a52570d2fd7472.js index 67b48dc91..8d057b1b5 100644 --- a/content---docs-api-q-dial-80-b-99a.27cba315ea3b12bad153.js +++ b/content---docs-api-q-dial-80-b-99a.facd48a52570d2fd7472.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{161:function(e,t,a){"use strict";a.d(t,"a",(function(){return o})),a.d(t,"b",(function(){return d}));var n=a(0),i=a.n(n),l=i.a.createContext({}),r=function(e){var t=i.a.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):Object.assign({},t,e)),a},o=function(e){var t=r(e.components);return i.a.createElement(l.Provider,{value:t},e.children)};var c="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},p=Object(n.forwardRef)((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,o=e.parentName,c=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===t.indexOf(n)&&(a[n]=e[n]);return a}(e,["components","mdxType","originalType","parentName"]),p=r(a),d=n,b=p[o+"."+d]||p[d]||s[d]||l;return a?i.a.createElement(b,Object.assign({},{ref:t},c,{components:a})):i.a.createElement(b,Object.assign({},{ref:t},c))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,r=new Array(l);r[0]=p;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[c]="string"==typeof e?e:n,r[1]=o;for(var d=2;d=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var r={sidebar_label:"QDial",title:"QDial"},o=[{value:"Example",id:"example",children:[]},{value:"new QDial(parent?)",id:"new-qdialparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"dial.setNotchesVisible(visible)",id:"dialsetnotchesvisiblevisible",children:[]},{value:"dial.setWrapping(on)",id:"dialsetwrappingon",children:[]},{value:"dial.setNotchTarget(target)",id:"dialsetnotchtargettarget",children:[]},{value:"dial.notchTarget()",id:"dialnotchtarget",children:[]},{value:"dial.notchesVisible()",id:"dialnotchesvisible",children:[]},{value:"dial.notchesVisible()",id:"dialnotchesvisible-1",children:[]},{value:"dial.wrapping()",id:"dialwrapping",children:[]}]}],c={rightToc:o},s="wrapper";function p(e){var t=e.components,a=l(e,["components"]);return Object(n.b)(s,i({},c,a,{components:t,mdxType:"MDXLayout"}),Object(n.b)("blockquote",null,Object(n.b)("p",{parentName:"blockquote"},"Create and control dial slider widgets.")),Object(n.b)("p",null,Object(n.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(n.b)("a",i({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qdial.html"}),"QDial class"))),Object(n.b)("p",null,"A ",Object(n.b)("inlineCode",{parentName:"p"},"QDial")," provides ability to add and manipulate native dial slider widgets."),Object(n.b)("p",null,Object(n.b)("strong",{parentName:"p"},"QDial inherits from ",Object(n.b)("a",i({parentName:"strong"},{href:"/docs/api/QAbstractSlider"}),"QAbstractSlider"))),Object(n.b)("h3",{id:"example"},"Example"),Object(n.b)("pre",null,Object(n.b)("code",i({parentName:"pre"},{className:"language-javascript"}),'const { QDial } = require("@nodegui/nodegui");\n\nconst dial = new QDial();\n')),Object(n.b)("h3",{id:"new-qdialparent"},Object(n.b)("inlineCode",{parentName:"h3"},"new QDial(parent?)")),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(n.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(n.b)("h2",{id:"static-methods"},"Static Methods"),Object(n.b)("p",null,"QDial can access all the static methods defined in ",Object(n.b)("a",i({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(n.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(n.b)("p",null,"QDial can access all the instance properties defined in ",Object(n.b)("a",i({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(n.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(n.b)("p",null,"QDial can access all the instance methods defined in ",Object(n.b)("a",i({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget"),". Additionally it also has the following instance methods:"),Object(n.b)("h3",{id:"dialsetnotchesvisiblevisible"},Object(n.b)("inlineCode",{parentName:"h3"},"dial.setNotchesVisible(visible)")),Object(n.b)("p",null,"Sets the visibility of notches drawn around the dial. It calls the native method ",Object(n.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qdial.html#notchTarget-prop"}),"QDial: setNotchesVisible"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"visible")," boolean - Set the value as current notch visibility.")),Object(n.b)("h3",{id:"dialsetwrappingon"},Object(n.b)("inlineCode",{parentName:"h3"},"dial.setWrapping(on)")),Object(n.b)("p",null,"Sets the ability to wrap arrow around the dial instead of limiting it to upper part of the dial. It calls the native method ",Object(n.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qdial.html#wrapping-prop"}),"QDial: setWrapping"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"on")," boolean - Set the value as current wrapping setting.")),Object(n.b)("h3",{id:"dialsetnotchtargettarget"},Object(n.b)("inlineCode",{parentName:"h3"},"dial.setNotchTarget(target)")),Object(n.b)("p",null,"Sets the number of pixels between dial notches. It calls the native method ",Object(n.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qdial.html#notchTarget-prop"}),"QDial: setNotchTarget"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"target")," number - Specifies number of pixels between notches.")),Object(n.b)("h3",{id:"dialnotchtarget"},Object(n.b)("inlineCode",{parentName:"h3"},"dial.notchTarget()")),Object(n.b)("p",null,"Returns the current number of pixels between dial notches. It calls the native method ",Object(n.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qdial.html#notchTarget-prop"}),"QDial: notchTarget"),"."),Object(n.b)("h3",{id:"dialnotchesvisible"},Object(n.b)("inlineCode",{parentName:"h3"},"dial.notchesVisible()")),Object(n.b)("p",null,"Returns the visibility status (Boolean) of dial notches. It calls the native method ",Object(n.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qdial.html#notchesVisible-prop"}),"QDial: notchesVisible"),"."),Object(n.b)("h3",{id:"dialnotchesvisible-1"},Object(n.b)("inlineCode",{parentName:"h3"},"dial.notchesVisible()")),Object(n.b)("p",null,"Returns the visibility status (Boolean) of dial notches. It calls the native method ",Object(n.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qdial.html#notchesVisible-prop"}),"QDial: notchesVisible"),"."),Object(n.b)("h3",{id:"dialwrapping"},Object(n.b)("inlineCode",{parentName:"h3"},"dial.wrapping()")),Object(n.b)("p",null,"Returns the current wrapping (Boolean) state of the dial. It calls the native method ",Object(n.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qdial.html#wrapping-prop"}),"QDial: wrapping"),"."))}p.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{161:function(e,t,a){"use strict";a.d(t,"a",(function(){return o})),a.d(t,"b",(function(){return d}));var n=a(0),i=a.n(n),l=i.a.createContext({}),r=function(e){var t=i.a.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):Object.assign({},t,e)),a},o=function(e){var t=r(e.components);return i.a.createElement(l.Provider,{value:t},e.children)};var c="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},p=Object(n.forwardRef)((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,o=e.parentName,c=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===t.indexOf(n)&&(a[n]=e[n]);return a}(e,["components","mdxType","originalType","parentName"]),p=r(a),d=n,b=p[o+"."+d]||p[d]||s[d]||l;return a?i.a.createElement(b,Object.assign({},{ref:t},c,{components:a})):i.a.createElement(b,Object.assign({},{ref:t},c))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,r=new Array(l);r[0]=p;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[c]="string"==typeof e?e:n,r[1]=o;for(var d=2;d=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var r={sidebar_label:"QDial",title:"QDial"},o=[{value:"Example",id:"example",children:[]},{value:"new QDial(parent?)",id:"new-qdialparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"dial.setNotchesVisible(visible)",id:"dialsetnotchesvisiblevisible",children:[]},{value:"dial.setWrapping(on)",id:"dialsetwrappingon",children:[]},{value:"dial.setNotchTarget(target)",id:"dialsetnotchtargettarget",children:[]},{value:"dial.notchTarget()",id:"dialnotchtarget",children:[]},{value:"dial.notchesVisible()",id:"dialnotchesvisible",children:[]},{value:"dial.notchesVisible()",id:"dialnotchesvisible-1",children:[]},{value:"dial.wrapping()",id:"dialwrapping",children:[]}]}],c={rightToc:o},s="wrapper";function p(e){var t=e.components,a=l(e,["components"]);return Object(n.b)(s,i({},c,a,{components:t,mdxType:"MDXLayout"}),Object(n.b)("blockquote",null,Object(n.b)("p",{parentName:"blockquote"},"Create and control dial slider widgets.")),Object(n.b)("p",null,Object(n.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(n.b)("a",i({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qdial.html"}),"QDial class"))),Object(n.b)("p",null,"A ",Object(n.b)("inlineCode",{parentName:"p"},"QDial")," provides ability to add and manipulate native dial slider widgets."),Object(n.b)("p",null,Object(n.b)("strong",{parentName:"p"},"QDial inherits from ",Object(n.b)("a",i({parentName:"strong"},{href:"/docs/api/QAbstractSlider"}),"QAbstractSlider"))),Object(n.b)("h3",{id:"example"},"Example"),Object(n.b)("pre",null,Object(n.b)("code",i({parentName:"pre"},{className:"language-javascript"}),'const { QDial } = require("@nodegui/nodegui");\n\nconst dial = new QDial();\n')),Object(n.b)("h3",{id:"new-qdialparent"},Object(n.b)("inlineCode",{parentName:"h3"},"new QDial(parent?)")),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(n.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(n.b)("h2",{id:"static-methods"},"Static Methods"),Object(n.b)("p",null,"QDial can access all the static methods defined in ",Object(n.b)("a",i({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(n.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(n.b)("p",null,"QDial can access all the instance properties defined in ",Object(n.b)("a",i({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(n.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(n.b)("p",null,"QDial can access all the instance methods defined in ",Object(n.b)("a",i({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget"),". Additionally it also has the following instance methods:"),Object(n.b)("h3",{id:"dialsetnotchesvisiblevisible"},Object(n.b)("inlineCode",{parentName:"h3"},"dial.setNotchesVisible(visible)")),Object(n.b)("p",null,"Sets the visibility of notches drawn around the dial. It calls the native method ",Object(n.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qdial.html#notchTarget-prop"}),"QDial: setNotchesVisible"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"visible")," boolean - Set the value as current notch visibility.")),Object(n.b)("h3",{id:"dialsetwrappingon"},Object(n.b)("inlineCode",{parentName:"h3"},"dial.setWrapping(on)")),Object(n.b)("p",null,"Sets the ability to wrap arrow around the dial instead of limiting it to upper part of the dial. It calls the native method ",Object(n.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qdial.html#wrapping-prop"}),"QDial: setWrapping"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"on")," boolean - Set the value as current wrapping setting.")),Object(n.b)("h3",{id:"dialsetnotchtargettarget"},Object(n.b)("inlineCode",{parentName:"h3"},"dial.setNotchTarget(target)")),Object(n.b)("p",null,"Sets the number of pixels between dial notches. It calls the native method ",Object(n.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qdial.html#notchTarget-prop"}),"QDial: setNotchTarget"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"target")," number - Specifies number of pixels between notches.")),Object(n.b)("h3",{id:"dialnotchtarget"},Object(n.b)("inlineCode",{parentName:"h3"},"dial.notchTarget()")),Object(n.b)("p",null,"Returns the current number of pixels between dial notches. It calls the native method ",Object(n.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qdial.html#notchTarget-prop"}),"QDial: notchTarget"),"."),Object(n.b)("h3",{id:"dialnotchesvisible"},Object(n.b)("inlineCode",{parentName:"h3"},"dial.notchesVisible()")),Object(n.b)("p",null,"Returns the visibility status (Boolean) of dial notches. It calls the native method ",Object(n.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qdial.html#notchesVisible-prop"}),"QDial: notchesVisible"),"."),Object(n.b)("h3",{id:"dialnotchesvisible-1"},Object(n.b)("inlineCode",{parentName:"h3"},"dial.notchesVisible()")),Object(n.b)("p",null,"Returns the visibility status (Boolean) of dial notches. It calls the native method ",Object(n.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qdial.html#notchesVisible-prop"}),"QDial: notchesVisible"),"."),Object(n.b)("h3",{id:"dialwrapping"},Object(n.b)("inlineCode",{parentName:"h3"},"dial.wrapping()")),Object(n.b)("p",null,"Returns the current wrapping (Boolean) state of the dial. It calls the native method ",Object(n.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qdial.html#wrapping-prop"}),"QDial: wrapping"),"."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-icone-5-f-b0d.adda17d3830828da9941.js b/content---docs-api-q-icone-5-f-b0d.016d00e28e5a87f3cf94.js similarity index 98% rename from content---docs-api-q-icone-5-f-b0d.adda17d3830828da9941.js rename to content---docs-api-q-icone-5-f-b0d.016d00e28e5a87f3cf94.js index cb3e795a5..11c07e4c5 100644 --- a/content---docs-api-q-icone-5-f-b0d.adda17d3830828da9941.js +++ b/content---docs-api-q-icone-5-f-b0d.016d00e28e5a87f3cf94.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return b}));var a=n(0),r=n.n(a),i=r.a.createContext({}),o=function(e){var t=r.a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},c=function(e){var t=o(e.components);return r.a.createElement(i.Provider,{value:t},e.children)};var l="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},s=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,l=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),s=o(n),b=a,m=s[c+"."+b]||s[b]||p[b]||i;return n?r.a.createElement(m,Object.assign({},{ref:t},l,{components:n})):r.a.createElement(m,Object.assign({},{ref:t},l))}));function b(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=s;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[l]="string"==typeof e?e:a,o[1]=c;for(var b=2;b=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o={sidebar_label:"QIcon",title:"QIcon"},c=[{value:"Example",id:"example",children:[]},{value:"new QIcon(imageUrl?)",id:"new-qiconimageurl",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"icon.pixmap(width, height, mode?, state?) (v0.1.10 & up)",id:"iconpixmapwidth-height-mode-state-v0110--up",children:[]}]}],l={rightToc:c},p="wrapper";function s(e){var t=e.components,n=i(e,["components"]);return Object(a.b)(p,r({},l,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"The QIcon class provides scalable icons in different modes and states.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(a.b)("a",r({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qicon.html"}),"QIcon class"))),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QIcon inherits from ",Object(a.b)("a",r({parentName:"strong"},{href:"/docs/api/Component"}),"Component"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",r({parentName:"pre"},{className:"language-javascript"}),'const { QIcon } = require("@nodegui/nodegui");\n\nconst imageUrl = "path/to/png";\nconst icon = new QIcon(imageUrl);\n')),Object(a.b)("h3",{id:"new-qiconimageurl"},Object(a.b)("inlineCode",{parentName:"h3"},"new QIcon(imageUrl?)")),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"imageUrl")," string (",Object(a.b)("em",{parentName:"li"},"optional"),"). Absolute path of the image that needs to be loaded in the memory.")),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QIcon can access all the static methods defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QIcon can access all the instance properties defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QIcon can access all the instance methods defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/Component"}),"Component"),"\nAdditionally it also has the following instance methods:"),Object(a.b)("h3",{id:"iconpixmapwidth-height-mode-state-v0110--up"},Object(a.b)("inlineCode",{parentName:"h3"},"icon.pixmap(width, height, mode?, state?)")," (v0.1.10 & up)"),Object(a.b)("p",null,"Returns a pixmap with the requested size, mode, and state, generating one if necessary. The pixmap might be smaller than requested, but never larger.\n. It calls the native method ",Object(a.b)("a",r({parentName:"p"},{href:"https://doc.qt.io/qt-5/qicon.html#pixmap-3"}),"QIcon: pixmap"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"width"),": number,"),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"height"),": number"),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"mode?"),": QIconMode"),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"state?"),": QIconState")))}s.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return b}));var a=n(0),r=n.n(a),i=r.a.createContext({}),o=function(e){var t=r.a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},c=function(e){var t=o(e.components);return r.a.createElement(i.Provider,{value:t},e.children)};var l="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},s=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,l=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),s=o(n),b=a,m=s[c+"."+b]||s[b]||p[b]||i;return n?r.a.createElement(m,Object.assign({},{ref:t},l,{components:n})):r.a.createElement(m,Object.assign({},{ref:t},l))}));function b(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=s;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[l]="string"==typeof e?e:a,o[1]=c;for(var b=2;b=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o={sidebar_label:"QIcon",title:"QIcon"},c=[{value:"Example",id:"example",children:[]},{value:"new QIcon(imageUrl?)",id:"new-qiconimageurl",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"icon.pixmap(width, height, mode?, state?) (v0.1.10 & up)",id:"iconpixmapwidth-height-mode-state-v0110--up",children:[]}]}],l={rightToc:c},p="wrapper";function s(e){var t=e.components,n=i(e,["components"]);return Object(a.b)(p,r({},l,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"The QIcon class provides scalable icons in different modes and states.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(a.b)("a",r({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qicon.html"}),"QIcon class"))),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QIcon inherits from ",Object(a.b)("a",r({parentName:"strong"},{href:"/docs/api/Component"}),"Component"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",r({parentName:"pre"},{className:"language-javascript"}),'const { QIcon } = require("@nodegui/nodegui");\n\nconst imageUrl = "path/to/png";\nconst icon = new QIcon(imageUrl);\n')),Object(a.b)("h3",{id:"new-qiconimageurl"},Object(a.b)("inlineCode",{parentName:"h3"},"new QIcon(imageUrl?)")),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"imageUrl")," string (",Object(a.b)("em",{parentName:"li"},"optional"),"). Absolute path of the image that needs to be loaded in the memory.")),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QIcon can access all the static methods defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QIcon can access all the instance properties defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QIcon can access all the instance methods defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/Component"}),"Component"),"\nAdditionally it also has the following instance methods:"),Object(a.b)("h3",{id:"iconpixmapwidth-height-mode-state-v0110--up"},Object(a.b)("inlineCode",{parentName:"h3"},"icon.pixmap(width, height, mode?, state?)")," (v0.1.10 & up)"),Object(a.b)("p",null,"Returns a pixmap with the requested size, mode, and state, generating one if necessary. The pixmap might be smaller than requested, but never larger.\n. It calls the native method ",Object(a.b)("a",r({parentName:"p"},{href:"https://doc.qt.io/qt-5/qicon.html#pixmap-3"}),"QIcon: pixmap"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"width"),": number,"),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"height"),": number"),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"mode?"),": QIconMode"),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"state?"),": QIconState")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-label-2-f-9-04b.1cdeec52a70db8ef7cc7.js b/content---docs-api-q-label-2-f-9-04b.9f8c2e203f083cedfdf8.js similarity index 98% rename from content---docs-api-q-label-2-f-9-04b.1cdeec52a70db8ef7cc7.js rename to content---docs-api-q-label-2-f-9-04b.9f8c2e203f083cedfdf8.js index 7d0b2eb3e..41812ed95 100644 --- a/content---docs-api-q-label-2-f-9-04b.1cdeec52a70db8ef7cc7.js +++ b/content---docs-api-q-label-2-f-9-04b.9f8c2e203f083cedfdf8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return s}));var a=n(0),l=n.n(a),r=l.a.createContext({}),i=function(e){var t=l.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},o=function(e){var t=i(e.components);return l.a.createElement(r.Provider,{value:t},e.children)};var b="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return l.a.createElement(l.a.Fragment,{},t)}},p=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,o=e.parentName,b=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),p=i(n),s=a,d=p[o+"."+s]||p[s]||c[s]||r;return n?l.a.createElement(d,Object.assign({},{ref:t},b,{components:n})):l.a.createElement(d,Object.assign({},{ref:t},b))}));function s(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=p;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[b]="string"==typeof e?e:a,i[1]=o;for(var s=2;s=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var i={sidebar_label:"QLabel",title:"QLabel"},o=[{value:"Example",id:"example",children:[]},{value:"new QLabel(parent?)",id:"new-qlabelparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[{value:"label.pixmap",id:"labelpixmap",children:[]},{value:"label.text",id:"labeltext",children:[]}]},{value:"Instance Methods",id:"instance-methods",children:[{value:"label.setText(text)",id:"labelsettexttext",children:[]},{value:"label.setWordWrap(on)",id:"labelsetwordwrapon",children:[]},{value:"label.setPixmap(pixMap)",id:"labelsetpixmappixmap",children:[]}]}],b={rightToc:o},c="wrapper";function p(e){var t=e.components,n=r(e,["components"]);return Object(a.b)(c,l({},b,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"Create and control text.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(a.b)("a",l({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qlabel.html"}),"QLabel class"))),Object(a.b)("p",null,"A ",Object(a.b)("inlineCode",{parentName:"p"},"QLabel")," provides ability to add and manipulate text."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QLabel inherits from ",Object(a.b)("a",l({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",l({parentName:"pre"},{className:"language-javascript"}),'const { QLabel } = require("@nodegui/nodegui");\n\nconst label = new QLabel();\nlabel.setText("Hello");\n')),Object(a.b)("h3",{id:"new-qlabelparent"},Object(a.b)("inlineCode",{parentName:"h3"},"new QLabel(parent?)")),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(a.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QLabel can access all the static methods defined in ",Object(a.b)("a",l({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QLabel can access all the instance properties defined in ",Object(a.b)("a",l({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget"),". Additionally it also has the following instance properties:"),Object(a.b)("h3",{id:"labelpixmap"},Object(a.b)("inlineCode",{parentName:"h3"},"label.pixmap")),Object(a.b)("p",null,"The pixmap currently set on this label."),Object(a.b)("h3",{id:"labeltext"},Object(a.b)("inlineCode",{parentName:"h3"},"label.text")),Object(a.b)("p",null,"the current text set on the label."),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QLabel can access all the instance methods defined in ",Object(a.b)("a",l({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget"),". Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"labelsettexttext"},Object(a.b)("inlineCode",{parentName:"h3"},"label.setText(text)")),Object(a.b)("p",null,"Sets the given text to the label."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"text")," string")),Object(a.b)("h3",{id:"labelsetwordwrapon"},Object(a.b)("inlineCode",{parentName:"h3"},"label.setWordWrap(on)")),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"on")," boolean - If true it sets wordwrap on the label")),Object(a.b)("h3",{id:"labelsetpixmappixmap"},Object(a.b)("inlineCode",{parentName:"h3"},"label.setPixmap(pixMap)")),Object(a.b)("p",null,"Images in the form of a pixmap can be set as the label content"),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"pixMap")," ",Object(a.b)("a",l({parentName:"li"},{href:"/docs/api/QPixmap"}),"QPixmap")," - Allows to set image content in the form of a QPixmap on the label")))}p.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return s}));var a=n(0),l=n.n(a),r=l.a.createContext({}),i=function(e){var t=l.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},o=function(e){var t=i(e.components);return l.a.createElement(r.Provider,{value:t},e.children)};var b="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return l.a.createElement(l.a.Fragment,{},t)}},p=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,o=e.parentName,b=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),p=i(n),s=a,d=p[o+"."+s]||p[s]||c[s]||r;return n?l.a.createElement(d,Object.assign({},{ref:t},b,{components:n})):l.a.createElement(d,Object.assign({},{ref:t},b))}));function s(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=p;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[b]="string"==typeof e?e:a,i[1]=o;for(var s=2;s=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var i={sidebar_label:"QLabel",title:"QLabel"},o=[{value:"Example",id:"example",children:[]},{value:"new QLabel(parent?)",id:"new-qlabelparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[{value:"label.pixmap",id:"labelpixmap",children:[]},{value:"label.text",id:"labeltext",children:[]}]},{value:"Instance Methods",id:"instance-methods",children:[{value:"label.setText(text)",id:"labelsettexttext",children:[]},{value:"label.setWordWrap(on)",id:"labelsetwordwrapon",children:[]},{value:"label.setPixmap(pixMap)",id:"labelsetpixmappixmap",children:[]}]}],b={rightToc:o},c="wrapper";function p(e){var t=e.components,n=r(e,["components"]);return Object(a.b)(c,l({},b,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"Create and control text.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(a.b)("a",l({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qlabel.html"}),"QLabel class"))),Object(a.b)("p",null,"A ",Object(a.b)("inlineCode",{parentName:"p"},"QLabel")," provides ability to add and manipulate text."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QLabel inherits from ",Object(a.b)("a",l({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",l({parentName:"pre"},{className:"language-javascript"}),'const { QLabel } = require("@nodegui/nodegui");\n\nconst label = new QLabel();\nlabel.setText("Hello");\n')),Object(a.b)("h3",{id:"new-qlabelparent"},Object(a.b)("inlineCode",{parentName:"h3"},"new QLabel(parent?)")),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(a.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QLabel can access all the static methods defined in ",Object(a.b)("a",l({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QLabel can access all the instance properties defined in ",Object(a.b)("a",l({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget"),". Additionally it also has the following instance properties:"),Object(a.b)("h3",{id:"labelpixmap"},Object(a.b)("inlineCode",{parentName:"h3"},"label.pixmap")),Object(a.b)("p",null,"The pixmap currently set on this label."),Object(a.b)("h3",{id:"labeltext"},Object(a.b)("inlineCode",{parentName:"h3"},"label.text")),Object(a.b)("p",null,"the current text set on the label."),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QLabel can access all the instance methods defined in ",Object(a.b)("a",l({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget"),". Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"labelsettexttext"},Object(a.b)("inlineCode",{parentName:"h3"},"label.setText(text)")),Object(a.b)("p",null,"Sets the given text to the label."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"text")," string")),Object(a.b)("h3",{id:"labelsetwordwrapon"},Object(a.b)("inlineCode",{parentName:"h3"},"label.setWordWrap(on)")),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"on")," boolean - If true it sets wordwrap on the label")),Object(a.b)("h3",{id:"labelsetpixmappixmap"},Object(a.b)("inlineCode",{parentName:"h3"},"label.setPixmap(pixMap)")),Object(a.b)("p",null,"Images in the form of a pixmap can be set as the label content"),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"pixMap")," ",Object(a.b)("a",l({parentName:"li"},{href:"/docs/api/QPixmap"}),"QPixmap")," - Allows to set image content in the form of a QPixmap on the label")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-line-editea-0-53d.fc2fdf237ea0256a9bc8.js b/content---docs-api-q-line-editea-0-53d.f606b13ced935ec46509.js similarity index 98% rename from content---docs-api-q-line-editea-0-53d.fc2fdf237ea0256a9bc8.js rename to content---docs-api-q-line-editea-0-53d.f606b13ced935ec46509.js index 762ca87c8..ea9d24088 100644 --- a/content---docs-api-q-line-editea-0-53d.fc2fdf237ea0256a9bc8.js +++ b/content---docs-api-q-line-editea-0-53d.f606b13ced935ec46509.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return b}));var i=n(0),a=n.n(i),l=a.a.createContext({}),r=function(e){var t=a.a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},d=function(e){var t=r(e.components);return a.a.createElement(l.Provider,{value:t},e.children)};var c="mdxType",o={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},p=Object(i.forwardRef)((function(e,t){var n=e.components,i=e.mdxType,l=e.originalType,d=e.parentName,c=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&-1===t.indexOf(i)&&(n[i]=e[i]);return n}(e,["components","mdxType","originalType","parentName"]),p=r(n),b=i,s=p[d+"."+b]||p[b]||o[b]||l;return n?a.a.createElement(s,Object.assign({},{ref:t},c,{components:n})):a.a.createElement(s,Object.assign({},{ref:t},c))}));function b(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=n.length,r=new Array(l);r[0]=p;var d={};for(var o in t)hasOwnProperty.call(t,o)&&(d[o]=t[o]);d.originalType=e,d[c]="string"==typeof e?e:i,r[1]=d;for(var b=2;b=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var r={sidebar_label:"QLineEdit",title:"QLineEdit"},d=[{value:"Example",id:"example",children:[]},{value:"new QLineEdit(parent?)",id:"new-qlineeditparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[{value:"lineEdit.placeholderText",id:"lineeditplaceholdertext",children:[]}]},{value:"Instance Methods",id:"instance-methods",children:[{value:"lineEdit.setText(text)",id:"lineeditsettexttext",children:[]},{value:"lineEdit.setPlaceholderText(text)",id:"lineeditsetplaceholdertexttext",children:[]},{value:"lineEdit.text()",id:"lineedittext",children:[]},{value:"lineEdit.setReadOnly(isReadOnly)",id:"lineeditsetreadonlyisreadonly",children:[]},{value:"lineEdit.clear()",id:"lineeditclear",children:[]}]}],c={rightToc:d},o="wrapper";function p(e){var t=e.components,n=l(e,["components"]);return Object(i.b)(o,a({},c,n,{components:t,mdxType:"MDXLayout"}),Object(i.b)("blockquote",null,Object(i.b)("p",{parentName:"blockquote"},"Create and control editable text field.")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(i.b)("a",a({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qlineedit.html"}),"QLineEdit class"))),Object(i.b)("p",null,"A ",Object(i.b)("inlineCode",{parentName:"p"},"QLineEdit")," provides ability to add and manipulate native editable text field widgets."),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"QLineEdit inherits from ",Object(i.b)("a",a({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(i.b)("h3",{id:"example"},"Example"),Object(i.b)("pre",null,Object(i.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const { QLineEdit } = require("@nodegui/nodegui");\n\nconst lineEdit = new QLineEdit();\n')),Object(i.b)("h3",{id:"new-qlineeditparent"},Object(i.b)("inlineCode",{parentName:"h3"},"new QLineEdit(parent?)")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(i.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(i.b)("h2",{id:"static-methods"},"Static Methods"),Object(i.b)("p",null,"QLineEdit can access all the static methods defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(i.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(i.b)("p",null,"QLineEdit can access all the instance properties defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget"),". Additionally it also has the following instance properties:"),Object(i.b)("h3",{id:"lineeditplaceholdertext"},Object(i.b)("inlineCode",{parentName:"h3"},"lineEdit.placeholderText")),Object(i.b)("p",null,"The placeholder text set on the lineEdit."),Object(i.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(i.b)("p",null,"QLineEdit can access all the instance methods defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget"),". Additionally it also has the following instance methods:"),Object(i.b)("h3",{id:"lineeditsettexttext"},Object(i.b)("inlineCode",{parentName:"h3"},"lineEdit.setText(text)")),Object(i.b)("p",null,"Sets the given text to the lineEdit."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"text")," string")),Object(i.b)("h3",{id:"lineeditsetplaceholdertexttext"},Object(i.b)("inlineCode",{parentName:"h3"},"lineEdit.setPlaceholderText(text)")),Object(i.b)("p",null,"Sets the given text to the lineEdit's placeholder."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"text")," string")),Object(i.b)("h3",{id:"lineedittext"},Object(i.b)("inlineCode",{parentName:"h3"},"lineEdit.text()")),Object(i.b)("p",null,"Returns the currently set text from native lineEdit widget."),Object(i.b)("h3",{id:"lineeditsetreadonlyisreadonly"},Object(i.b)("inlineCode",{parentName:"h3"},"lineEdit.setReadOnly(isReadOnly)")),Object(i.b)("p",null,"Sets the lineEdit to be read only. lineEdit property holds whether the line edit is read only."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"isReadOnly")," boolean")),Object(i.b)("h3",{id:"lineeditclear"},Object(i.b)("inlineCode",{parentName:"h3"},"lineEdit.clear()")),Object(i.b)("p",null,"Clears the lineEdit."))}p.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return b}));var i=n(0),a=n.n(i),l=a.a.createContext({}),r=function(e){var t=a.a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},d=function(e){var t=r(e.components);return a.a.createElement(l.Provider,{value:t},e.children)};var c="mdxType",o={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},p=Object(i.forwardRef)((function(e,t){var n=e.components,i=e.mdxType,l=e.originalType,d=e.parentName,c=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&-1===t.indexOf(i)&&(n[i]=e[i]);return n}(e,["components","mdxType","originalType","parentName"]),p=r(n),b=i,s=p[d+"."+b]||p[b]||o[b]||l;return n?a.a.createElement(s,Object.assign({},{ref:t},c,{components:n})):a.a.createElement(s,Object.assign({},{ref:t},c))}));function b(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=n.length,r=new Array(l);r[0]=p;var d={};for(var o in t)hasOwnProperty.call(t,o)&&(d[o]=t[o]);d.originalType=e,d[c]="string"==typeof e?e:i,r[1]=d;for(var b=2;b=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var r={sidebar_label:"QLineEdit",title:"QLineEdit"},d=[{value:"Example",id:"example",children:[]},{value:"new QLineEdit(parent?)",id:"new-qlineeditparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[{value:"lineEdit.placeholderText",id:"lineeditplaceholdertext",children:[]}]},{value:"Instance Methods",id:"instance-methods",children:[{value:"lineEdit.setText(text)",id:"lineeditsettexttext",children:[]},{value:"lineEdit.setPlaceholderText(text)",id:"lineeditsetplaceholdertexttext",children:[]},{value:"lineEdit.text()",id:"lineedittext",children:[]},{value:"lineEdit.setReadOnly(isReadOnly)",id:"lineeditsetreadonlyisreadonly",children:[]},{value:"lineEdit.clear()",id:"lineeditclear",children:[]}]}],c={rightToc:d},o="wrapper";function p(e){var t=e.components,n=l(e,["components"]);return Object(i.b)(o,a({},c,n,{components:t,mdxType:"MDXLayout"}),Object(i.b)("blockquote",null,Object(i.b)("p",{parentName:"blockquote"},"Create and control editable text field.")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(i.b)("a",a({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qlineedit.html"}),"QLineEdit class"))),Object(i.b)("p",null,"A ",Object(i.b)("inlineCode",{parentName:"p"},"QLineEdit")," provides ability to add and manipulate native editable text field widgets."),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"QLineEdit inherits from ",Object(i.b)("a",a({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(i.b)("h3",{id:"example"},"Example"),Object(i.b)("pre",null,Object(i.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const { QLineEdit } = require("@nodegui/nodegui");\n\nconst lineEdit = new QLineEdit();\n')),Object(i.b)("h3",{id:"new-qlineeditparent"},Object(i.b)("inlineCode",{parentName:"h3"},"new QLineEdit(parent?)")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(i.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(i.b)("h2",{id:"static-methods"},"Static Methods"),Object(i.b)("p",null,"QLineEdit can access all the static methods defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(i.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(i.b)("p",null,"QLineEdit can access all the instance properties defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget"),". Additionally it also has the following instance properties:"),Object(i.b)("h3",{id:"lineeditplaceholdertext"},Object(i.b)("inlineCode",{parentName:"h3"},"lineEdit.placeholderText")),Object(i.b)("p",null,"The placeholder text set on the lineEdit."),Object(i.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(i.b)("p",null,"QLineEdit can access all the instance methods defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget"),". Additionally it also has the following instance methods:"),Object(i.b)("h3",{id:"lineeditsettexttext"},Object(i.b)("inlineCode",{parentName:"h3"},"lineEdit.setText(text)")),Object(i.b)("p",null,"Sets the given text to the lineEdit."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"text")," string")),Object(i.b)("h3",{id:"lineeditsetplaceholdertexttext"},Object(i.b)("inlineCode",{parentName:"h3"},"lineEdit.setPlaceholderText(text)")),Object(i.b)("p",null,"Sets the given text to the lineEdit's placeholder."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"text")," string")),Object(i.b)("h3",{id:"lineedittext"},Object(i.b)("inlineCode",{parentName:"h3"},"lineEdit.text()")),Object(i.b)("p",null,"Returns the currently set text from native lineEdit widget."),Object(i.b)("h3",{id:"lineeditsetreadonlyisreadonly"},Object(i.b)("inlineCode",{parentName:"h3"},"lineEdit.setReadOnly(isReadOnly)")),Object(i.b)("p",null,"Sets the lineEdit to be read only. lineEdit property holds whether the line edit is read only."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"isReadOnly")," boolean")),Object(i.b)("h3",{id:"lineeditclear"},Object(i.b)("inlineCode",{parentName:"h3"},"lineEdit.clear()")),Object(i.b)("p",null,"Clears the lineEdit."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-main-window-0-e-7-299.b20554db200b1aa6187b.js b/content---docs-api-q-main-window-0-e-7-299.7a1bf20062e23ed6c510.js similarity index 98% rename from content---docs-api-q-main-window-0-e-7-299.b20554db200b1aa6187b.js rename to content---docs-api-q-main-window-0-e-7-299.7a1bf20062e23ed6c510.js index 53943bc16..660e74832 100644 --- a/content---docs-api-q-main-window-0-e-7-299.b20554db200b1aa6187b.js +++ b/content---docs-api-q-main-window-0-e-7-299.7a1bf20062e23ed6c510.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return p}));var i=n(0),a=n.n(i),r=a.a.createContext({}),o=function(e){var t=a.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},c=function(e){var t=o(e.components);return a.a.createElement(r.Provider,{value:t},e.children)};var d="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},s=Object(i.forwardRef)((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,c=e.parentName,d=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&-1===t.indexOf(i)&&(n[i]=e[i]);return n}(e,["components","mdxType","originalType","parentName"]),s=o(n),p=i,b=s[c+"."+p]||s[p]||l[p]||r;return n?a.a.createElement(b,Object.assign({},{ref:t},d,{components:n})):a.a.createElement(b,Object.assign({},{ref:t},d))}));function p(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=s;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:i,o[1]=c;for(var p=2;p=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o={sidebar_label:"QMainWindow",title:"QMainWindow"},c=[{value:"Example",id:"example",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[{value:"win.layout",id:"winlayout",children:[]},{value:"win.centralWidget",id:"wincentralwidget",children:[]}]},{value:"Instance Methods",id:"instance-methods",children:[{value:"win.setCentralWidget(widget)",id:"winsetcentralwidgetwidget",children:[]}]}],d={rightToc:c},l="wrapper";function s(e){var t=e.components,n=r(e,["components"]);return Object(i.b)(l,a({},d,n,{components:t,mdxType:"MDXLayout"}),Object(i.b)("blockquote",null,Object(i.b)("p",{parentName:"blockquote"},"Create and control windows.")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(i.b)("a",a({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qmainwindow.html"}),"QMainWindow class"))),Object(i.b)("p",null,"A ",Object(i.b)("inlineCode",{parentName:"p"},"QMainWindow")," provides a main application window. Every widget in NodeGui should be a child/nested child of QMainWindow. QMainWindow in NodeGui is also responsible for FlexLayout calculations of its children."),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"QMainWindow inherits from ",Object(i.b)("a",a({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(i.b)("h3",{id:"example"},"Example"),Object(i.b)("pre",null,Object(i.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const { QMainWindow, QWidget } = require("@nodegui/nodegui");\n\nconst win = new QMainWindow();\n\nconst centralWidget = new QWidget();\nwin.setCentralWidget(centralWidget);\n\nwin.show();\n\nglobal.win = win; // prevent\'s gc of win\n')),Object(i.b)("p",null,"QMainWindow needs to have a central widget set before other widgets can be added as a children/nested children.\nOnce a central widget is set you can add children/layout to the central widget."),Object(i.b)("h2",{id:"static-methods"},"Static Methods"),Object(i.b)("p",null,"QMainWindow can access all the static methods defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(i.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(i.b)("p",null,"QMainWindow can access all the instance properties defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(i.b)("p",null,"Additionally it also has the following instance properties:"),Object(i.b)("h3",{id:"winlayout"},Object(i.b)("inlineCode",{parentName:"h3"},"win.layout")),Object(i.b)("p",null,"A ",Object(i.b)("inlineCode",{parentName:"p"},"NodeLayout")," representing current layout that is set on the window. If a centralWidget is set then the layout of central widget is returned."),Object(i.b)("h3",{id:"wincentralwidget"},Object(i.b)("inlineCode",{parentName:"h3"},"win.centralWidget")),Object(i.b)("p",null,"A ",Object(i.b)("inlineCode",{parentName:"p"},"NodeWidget")," representing currently set central widget on the window."),Object(i.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(i.b)("p",null,"QMainWindow can access all the instance methods defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(i.b)("p",null,"Additionally it also has the following instance methods:"),Object(i.b)("h3",{id:"winsetcentralwidgetwidget"},Object(i.b)("inlineCode",{parentName:"h3"},"win.setCentralWidget(widget)")),Object(i.b)("p",null,"Sets the given widget to be the main window's central widget."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"widget")," NodeWidget - Any widget that inherits from NodeWidget class.")))}s.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return p}));var i=n(0),a=n.n(i),r=a.a.createContext({}),o=function(e){var t=a.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},c=function(e){var t=o(e.components);return a.a.createElement(r.Provider,{value:t},e.children)};var d="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},s=Object(i.forwardRef)((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,c=e.parentName,d=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&-1===t.indexOf(i)&&(n[i]=e[i]);return n}(e,["components","mdxType","originalType","parentName"]),s=o(n),p=i,b=s[c+"."+p]||s[p]||l[p]||r;return n?a.a.createElement(b,Object.assign({},{ref:t},d,{components:n})):a.a.createElement(b,Object.assign({},{ref:t},d))}));function p(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=s;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:i,o[1]=c;for(var p=2;p=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o={sidebar_label:"QMainWindow",title:"QMainWindow"},c=[{value:"Example",id:"example",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[{value:"win.layout",id:"winlayout",children:[]},{value:"win.centralWidget",id:"wincentralwidget",children:[]}]},{value:"Instance Methods",id:"instance-methods",children:[{value:"win.setCentralWidget(widget)",id:"winsetcentralwidgetwidget",children:[]}]}],d={rightToc:c},l="wrapper";function s(e){var t=e.components,n=r(e,["components"]);return Object(i.b)(l,a({},d,n,{components:t,mdxType:"MDXLayout"}),Object(i.b)("blockquote",null,Object(i.b)("p",{parentName:"blockquote"},"Create and control windows.")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(i.b)("a",a({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qmainwindow.html"}),"QMainWindow class"))),Object(i.b)("p",null,"A ",Object(i.b)("inlineCode",{parentName:"p"},"QMainWindow")," provides a main application window. Every widget in NodeGui should be a child/nested child of QMainWindow. QMainWindow in NodeGui is also responsible for FlexLayout calculations of its children."),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"QMainWindow inherits from ",Object(i.b)("a",a({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(i.b)("h3",{id:"example"},"Example"),Object(i.b)("pre",null,Object(i.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const { QMainWindow, QWidget } = require("@nodegui/nodegui");\n\nconst win = new QMainWindow();\n\nconst centralWidget = new QWidget();\nwin.setCentralWidget(centralWidget);\n\nwin.show();\n\nglobal.win = win; // prevent\'s gc of win\n')),Object(i.b)("p",null,"QMainWindow needs to have a central widget set before other widgets can be added as a children/nested children.\nOnce a central widget is set you can add children/layout to the central widget."),Object(i.b)("h2",{id:"static-methods"},"Static Methods"),Object(i.b)("p",null,"QMainWindow can access all the static methods defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(i.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(i.b)("p",null,"QMainWindow can access all the instance properties defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(i.b)("p",null,"Additionally it also has the following instance properties:"),Object(i.b)("h3",{id:"winlayout"},Object(i.b)("inlineCode",{parentName:"h3"},"win.layout")),Object(i.b)("p",null,"A ",Object(i.b)("inlineCode",{parentName:"p"},"NodeLayout")," representing current layout that is set on the window. If a centralWidget is set then the layout of central widget is returned."),Object(i.b)("h3",{id:"wincentralwidget"},Object(i.b)("inlineCode",{parentName:"h3"},"win.centralWidget")),Object(i.b)("p",null,"A ",Object(i.b)("inlineCode",{parentName:"p"},"NodeWidget")," representing currently set central widget on the window."),Object(i.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(i.b)("p",null,"QMainWindow can access all the instance methods defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(i.b)("p",null,"Additionally it also has the following instance methods:"),Object(i.b)("h3",{id:"winsetcentralwidgetwidget"},Object(i.b)("inlineCode",{parentName:"h3"},"win.setCentralWidget(widget)")),Object(i.b)("p",null,"Sets the given widget to be the main window's central widget."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"widget")," NodeWidget - Any widget that inherits from NodeWidget class.")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-pixmap-8-dd-cb2.3d67d264575cf7bec65c.js b/content---docs-api-q-pixmap-8-dd-cb2.343e5d75db3125ddfa81.js similarity index 98% rename from content---docs-api-q-pixmap-8-dd-cb2.3d67d264575cf7bec65c.js rename to content---docs-api-q-pixmap-8-dd-cb2.343e5d75db3125ddfa81.js index 94bff40b3..5049748a7 100644 --- a/content---docs-api-q-pixmap-8-dd-cb2.3d67d264575cf7bec65c.js +++ b/content---docs-api-q-pixmap-8-dd-cb2.343e5d75db3125ddfa81.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return s}));var a=n(0),i=n.n(a),r=i.a.createContext({}),o=function(e){var t=i.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},p=function(e){var t=o(e.components);return i.a.createElement(r.Provider,{value:t},e.children)};var l="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},m=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,p=e.parentName,l=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),m=o(n),s=a,b=m[p+"."+s]||m[s]||c[s]||r;return n?i.a.createElement(b,Object.assign({},{ref:t},l,{components:n})):i.a.createElement(b,Object.assign({},{ref:t},l))}));function s(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=m;var p={};for(var c in t)hasOwnProperty.call(t,c)&&(p[c]=t[c]);p.originalType=e,p[l]="string"==typeof e?e:a,o[1]=p;for(var s=2;s=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var o={sidebar_label:"QPixmap",title:"QPixmap"},p=[{value:"Example",id:"example",children:[]},{value:"new QPixmap(imageUrl?)",id:"new-qpixmapimageurl",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"pixMap.load(imageUrl)",id:"pixmaploadimageurl",children:[]}]}],l={rightToc:p},c="wrapper";function m(e){var t=e.components,n=r(e,["components"]);return Object(a.b)(c,i({},l,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"The QPixmap class helps hold an image in the form of off-screen image representation.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(a.b)("a",i({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qpixmap.html"}),"QPixmap class"))),Object(a.b)("p",null,"A ",Object(a.b)("inlineCode",{parentName:"p"},"QPixmap")," provides ability to store an image in the memory."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QPixmap inherits from ",Object(a.b)("a",i({parentName:"strong"},{href:"/docs/api/Component"}),"Component"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{className:"language-javascript"}),'const { QPixmap } = require("@nodegui/nodegui");\n\nconst imageUrl = "path/to/png";\nconst pixMap = new QPixmap(imageUrl);\n')),Object(a.b)("h3",{id:"new-qpixmapimageurl"},Object(a.b)("inlineCode",{parentName:"h3"},"new QPixmap(imageUrl?)")),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"imageUrl")," string (",Object(a.b)("em",{parentName:"li"},"optional"),"). Absolute path of the image that needs to be loaded in the memory.")),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QPixmap can access all the static methods defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QPixmap can access all the instance properties defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QPixmap can access all the instance methods defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("p",null,"Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"pixmaploadimageurl"},Object(a.b)("inlineCode",{parentName:"h3"},"pixMap.load(imageUrl)")),Object(a.b)("p",null,"loads an image from the url into memory as a Pixmap.\nreturns true if load was successful otherwise returns false."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"imageUrl")," string (",Object(a.b)("em",{parentName:"li"},"optional"),"). Absolute path of the image that needs to be loaded in the memory.")),Object(a.b)("h4",{id:"pixmapsavefilename-format"},Object(a.b)("inlineCode",{parentName:"h4"},"pixMap.save(fileName, format)")),Object(a.b)("p",null,"Saves the pixmap to the file with the given fileName using the specified image file format and quality factor. Returns ",Object(a.b)("inlineCode",{parentName:"p"},"true")," if successful; otherwise returns false."),Object(a.b)("p",null,"If format is 0, an image format will be chosen from fileName's suffix."),Object(a.b)("p",null,"See also ",Object(a.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qpixmap.html#reading-and-writing-image-files"}),"Reading and Writing Image Files."),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"fileName")," string."),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"format")," string. (",Object(a.b)("em",{parentName:"li"},"optional"),").")),Object(a.b)("h4",{id:"pixmapscaledwidth-height-aspectratiomode"},Object(a.b)("inlineCode",{parentName:"h4"},"pixMap.scaled(width, height, aspectRatioMode?)")),Object(a.b)("p",null,"Scales the pixmap to provided height and width with respect to aspectRatioMode.\nThis method doesnt mutate this pixmap and rather returns a new pixmap with new height and width."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"width")," number. Width in pixels for new pixmap."),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"height")," number. Height in pixels for new pixmap."),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"aspectRatioMode")," AspectRatioMode (",Object(a.b)("em",{parentName:"li"},"optional"),"). Specifies how scaling should happen. ",Object(a.b)("a",i({parentName:"li"},{href:"/docs/api/QtEnums"}),"AspectRatio is an enum from Qt"))))}m.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return s}));var a=n(0),i=n.n(a),r=i.a.createContext({}),o=function(e){var t=i.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},p=function(e){var t=o(e.components);return i.a.createElement(r.Provider,{value:t},e.children)};var l="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},m=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,p=e.parentName,l=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),m=o(n),s=a,b=m[p+"."+s]||m[s]||c[s]||r;return n?i.a.createElement(b,Object.assign({},{ref:t},l,{components:n})):i.a.createElement(b,Object.assign({},{ref:t},l))}));function s(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=m;var p={};for(var c in t)hasOwnProperty.call(t,c)&&(p[c]=t[c]);p.originalType=e,p[l]="string"==typeof e?e:a,o[1]=p;for(var s=2;s=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var o={sidebar_label:"QPixmap",title:"QPixmap"},p=[{value:"Example",id:"example",children:[]},{value:"new QPixmap(imageUrl?)",id:"new-qpixmapimageurl",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"pixMap.load(imageUrl)",id:"pixmaploadimageurl",children:[]}]}],l={rightToc:p},c="wrapper";function m(e){var t=e.components,n=r(e,["components"]);return Object(a.b)(c,i({},l,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"The QPixmap class helps hold an image in the form of off-screen image representation.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(a.b)("a",i({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qpixmap.html"}),"QPixmap class"))),Object(a.b)("p",null,"A ",Object(a.b)("inlineCode",{parentName:"p"},"QPixmap")," provides ability to store an image in the memory."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QPixmap inherits from ",Object(a.b)("a",i({parentName:"strong"},{href:"/docs/api/Component"}),"Component"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{className:"language-javascript"}),'const { QPixmap } = require("@nodegui/nodegui");\n\nconst imageUrl = "path/to/png";\nconst pixMap = new QPixmap(imageUrl);\n')),Object(a.b)("h3",{id:"new-qpixmapimageurl"},Object(a.b)("inlineCode",{parentName:"h3"},"new QPixmap(imageUrl?)")),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"imageUrl")," string (",Object(a.b)("em",{parentName:"li"},"optional"),"). Absolute path of the image that needs to be loaded in the memory.")),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QPixmap can access all the static methods defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QPixmap can access all the instance properties defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QPixmap can access all the instance methods defined in ",Object(a.b)("a",i({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("p",null,"Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"pixmaploadimageurl"},Object(a.b)("inlineCode",{parentName:"h3"},"pixMap.load(imageUrl)")),Object(a.b)("p",null,"loads an image from the url into memory as a Pixmap.\nreturns true if load was successful otherwise returns false."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"imageUrl")," string (",Object(a.b)("em",{parentName:"li"},"optional"),"). Absolute path of the image that needs to be loaded in the memory.")),Object(a.b)("h4",{id:"pixmapsavefilename-format"},Object(a.b)("inlineCode",{parentName:"h4"},"pixMap.save(fileName, format)")),Object(a.b)("p",null,"Saves the pixmap to the file with the given fileName using the specified image file format and quality factor. Returns ",Object(a.b)("inlineCode",{parentName:"p"},"true")," if successful; otherwise returns false."),Object(a.b)("p",null,"If format is 0, an image format will be chosen from fileName's suffix."),Object(a.b)("p",null,"See also ",Object(a.b)("a",i({parentName:"p"},{href:"https://doc.qt.io/qt-5/qpixmap.html#reading-and-writing-image-files"}),"Reading and Writing Image Files."),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"fileName")," string."),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"format")," string. (",Object(a.b)("em",{parentName:"li"},"optional"),").")),Object(a.b)("h4",{id:"pixmapscaledwidth-height-aspectratiomode"},Object(a.b)("inlineCode",{parentName:"h4"},"pixMap.scaled(width, height, aspectRatioMode?)")),Object(a.b)("p",null,"Scales the pixmap to provided height and width with respect to aspectRatioMode.\nThis method doesnt mutate this pixmap and rather returns a new pixmap with new height and width."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"width")," number. Width in pixels for new pixmap."),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"height")," number. Height in pixels for new pixmap."),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"aspectRatioMode")," AspectRatioMode (",Object(a.b)("em",{parentName:"li"},"optional"),"). Specifies how scaling should happen. ",Object(a.b)("a",i({parentName:"li"},{href:"/docs/api/QtEnums"}),"AspectRatio is an enum from Qt"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-progress-barc-46-afe.9cecbb65c33965b0e7f5.js b/content---docs-api-q-progress-barc-46-afe.2a5c874c4e33ecb7a2b8.js similarity index 98% rename from content---docs-api-q-progress-barc-46-afe.9cecbb65c33965b0e7f5.js rename to content---docs-api-q-progress-barc-46-afe.2a5c874c4e33ecb7a2b8.js index dc664f22e..a5b7b4a6a 100644 --- a/content---docs-api-q-progress-barc-46-afe.9cecbb65c33965b0e7f5.js +++ b/content---docs-api-q-progress-barc-46-afe.2a5c874c4e33ecb7a2b8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{161:function(e,t,r){"use strict";r.d(t,"a",(function(){return o})),r.d(t,"b",(function(){return b}));var a=r(0),n=r.n(a),i=n.a.createContext({}),s=function(e){var t=n.a.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):Object.assign({},t,e)),r},o=function(e){var t=s(e.components);return n.a.createElement(i.Provider,{value:t},e.children)};var l="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.a.createElement(n.a.Fragment,{},t)}},c=Object(a.forwardRef)((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,o=e.parentName,l=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(r[a]=e[a]);return r}(e,["components","mdxType","originalType","parentName"]),c=s(r),b=a,u=c[o+"."+b]||c[b]||p[b]||i;return r?n.a.createElement(u,Object.assign({},{ref:t},l,{components:r})):n.a.createElement(u,Object.assign({},{ref:t},l))}));function b(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,s=new Array(i);s[0]=c;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[l]="string"==typeof e?e:a,s[1]=o;for(var b=2;b=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s={sidebar_label:"QProgressBar",title:"QProgressBar"},o=[{value:"Example",id:"example",children:[]},{value:"new QProgressBar(parent?)",id:"new-qprogressbarparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"progressBar.setValue(value)",id:"progressbarsetvaluevalue",children:[]},{value:"progressBar.setMaximum(max)",id:"progressbarsetmaximummax",children:[]},{value:"progressBar.setMinimum(min)",id:"progressbarsetminimummin",children:[]},{value:"progressBar.setOrientation(orientation)",id:"progressbarsetorientationorientation",children:[]},{value:"progressBar.value()",id:"progressbarvalue",children:[]}]}],l={rightToc:o},p="wrapper";function c(e){var t=e.components,r=i(e,["components"]);return Object(a.b)(p,n({},l,r,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"Create and control progress bar widgets.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(a.b)("a",n({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qprogressbar.html"}),"QProgressBar class"))),Object(a.b)("p",null,"A ",Object(a.b)("inlineCode",{parentName:"p"},"QProgressBar")," provides ability to add and manipulate native progress bar widgets."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QProgressBar inherits from ",Object(a.b)("a",n({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",n({parentName:"pre"},{className:"language-javascript"}),'const { QProgressBar } = require("@nodegui/nodegui");\n\nconst progressBar = new QProgressBar();\n')),Object(a.b)("h3",{id:"new-qprogressbarparent"},Object(a.b)("inlineCode",{parentName:"h3"},"new QProgressBar(parent?)")),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(a.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QProgressBar can access all the static methods defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QProgressBar can access all the instance properties defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QProgressBar can access all the instance methods defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget"),". Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"progressbarsetvaluevalue"},Object(a.b)("inlineCode",{parentName:"h3"},"progressBar.setValue(value)")),Object(a.b)("p",null,"Sets the current value of the progressBar. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qprogressbar.html#value-prop"}),"QProgressBar: setValue"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"value")," number - Set the value as current value")),Object(a.b)("h3",{id:"progressbarsetmaximummax"},Object(a.b)("inlineCode",{parentName:"h3"},"progressBar.setMaximum(max)")),Object(a.b)("p",null,"Sets the max value of the progressBar. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qprogressbar.html#maximum-prop"}),"QProgressBar: setMaximum"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"max")," number - Set the value as max value of the progress bar.")),Object(a.b)("h3",{id:"progressbarsetminimummin"},Object(a.b)("inlineCode",{parentName:"h3"},"progressBar.setMinimum(min)")),Object(a.b)("p",null,"Sets the min value of the progressBar. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qprogressbar.html#minimum-prop"}),"QProgressBar: setMinimum"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"min")," number - Set the value as min value of the progress bar.")),Object(a.b)("h3",{id:"progressbarsetorientationorientation"},Object(a.b)("inlineCode",{parentName:"h3"},"progressBar.setOrientation(orientation)")),Object(a.b)("p",null,"Sets the orientation of the progressBar. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qprogressbar.html#orientation-prop"}),"QProgressBar: setOrientation"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"orientation")," Orientation - Specifies visual orientation of the progress bar. ",Object(a.b)("a",n({parentName:"li"},{href:"/docs/api/QtEnums"}),"Orientation is an enum from Qt"))),Object(a.b)("h3",{id:"progressbarvalue"},Object(a.b)("inlineCode",{parentName:"h3"},"progressBar.value()")),Object(a.b)("p",null,"Returns the current value (Number) of the progressBar. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qprogressbar.html#value-prop"}),"QProgressBar: value"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{161:function(e,t,r){"use strict";r.d(t,"a",(function(){return o})),r.d(t,"b",(function(){return b}));var a=r(0),n=r.n(a),i=n.a.createContext({}),s=function(e){var t=n.a.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):Object.assign({},t,e)),r},o=function(e){var t=s(e.components);return n.a.createElement(i.Provider,{value:t},e.children)};var l="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.a.createElement(n.a.Fragment,{},t)}},c=Object(a.forwardRef)((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,o=e.parentName,l=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(r[a]=e[a]);return r}(e,["components","mdxType","originalType","parentName"]),c=s(r),b=a,u=c[o+"."+b]||c[b]||p[b]||i;return r?n.a.createElement(u,Object.assign({},{ref:t},l,{components:r})):n.a.createElement(u,Object.assign({},{ref:t},l))}));function b(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,s=new Array(i);s[0]=c;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[l]="string"==typeof e?e:a,s[1]=o;for(var b=2;b=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s={sidebar_label:"QProgressBar",title:"QProgressBar"},o=[{value:"Example",id:"example",children:[]},{value:"new QProgressBar(parent?)",id:"new-qprogressbarparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"progressBar.setValue(value)",id:"progressbarsetvaluevalue",children:[]},{value:"progressBar.setMaximum(max)",id:"progressbarsetmaximummax",children:[]},{value:"progressBar.setMinimum(min)",id:"progressbarsetminimummin",children:[]},{value:"progressBar.setOrientation(orientation)",id:"progressbarsetorientationorientation",children:[]},{value:"progressBar.value()",id:"progressbarvalue",children:[]}]}],l={rightToc:o},p="wrapper";function c(e){var t=e.components,r=i(e,["components"]);return Object(a.b)(p,n({},l,r,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"Create and control progress bar widgets.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(a.b)("a",n({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qprogressbar.html"}),"QProgressBar class"))),Object(a.b)("p",null,"A ",Object(a.b)("inlineCode",{parentName:"p"},"QProgressBar")," provides ability to add and manipulate native progress bar widgets."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QProgressBar inherits from ",Object(a.b)("a",n({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",n({parentName:"pre"},{className:"language-javascript"}),'const { QProgressBar } = require("@nodegui/nodegui");\n\nconst progressBar = new QProgressBar();\n')),Object(a.b)("h3",{id:"new-qprogressbarparent"},Object(a.b)("inlineCode",{parentName:"h3"},"new QProgressBar(parent?)")),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(a.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QProgressBar can access all the static methods defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QProgressBar can access all the instance properties defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QProgressBar can access all the instance methods defined in ",Object(a.b)("a",n({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget"),". Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"progressbarsetvaluevalue"},Object(a.b)("inlineCode",{parentName:"h3"},"progressBar.setValue(value)")),Object(a.b)("p",null,"Sets the current value of the progressBar. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qprogressbar.html#value-prop"}),"QProgressBar: setValue"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"value")," number - Set the value as current value")),Object(a.b)("h3",{id:"progressbarsetmaximummax"},Object(a.b)("inlineCode",{parentName:"h3"},"progressBar.setMaximum(max)")),Object(a.b)("p",null,"Sets the max value of the progressBar. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qprogressbar.html#maximum-prop"}),"QProgressBar: setMaximum"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"max")," number - Set the value as max value of the progress bar.")),Object(a.b)("h3",{id:"progressbarsetminimummin"},Object(a.b)("inlineCode",{parentName:"h3"},"progressBar.setMinimum(min)")),Object(a.b)("p",null,"Sets the min value of the progressBar. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qprogressbar.html#minimum-prop"}),"QProgressBar: setMinimum"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"min")," number - Set the value as min value of the progress bar.")),Object(a.b)("h3",{id:"progressbarsetorientationorientation"},Object(a.b)("inlineCode",{parentName:"h3"},"progressBar.setOrientation(orientation)")),Object(a.b)("p",null,"Sets the orientation of the progressBar. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qprogressbar.html#orientation-prop"}),"QProgressBar: setOrientation"),"."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"orientation")," Orientation - Specifies visual orientation of the progress bar. ",Object(a.b)("a",n({parentName:"li"},{href:"/docs/api/QtEnums"}),"Orientation is an enum from Qt"))),Object(a.b)("h3",{id:"progressbarvalue"},Object(a.b)("inlineCode",{parentName:"h3"},"progressBar.value()")),Object(a.b)("p",null,"Returns the current value (Number) of the progressBar. It calls the native method ",Object(a.b)("a",n({parentName:"p"},{href:"https://doc.qt.io/qt-5/qprogressbar.html#value-prop"}),"QProgressBar: value"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-push-button-06-c-73e.18589cda96f10dc9259f.js b/content---docs-api-q-push-button-06-c-73e.9e1e6d8a0e7c17941efd.js similarity index 98% rename from content---docs-api-q-push-button-06-c-73e.18589cda96f10dc9259f.js rename to content---docs-api-q-push-button-06-c-73e.9e1e6d8a0e7c17941efd.js index 9426e4735..4edb83fd3 100644 --- a/content---docs-api-q-push-button-06-c-73e.18589cda96f10dc9259f.js +++ b/content---docs-api-q-push-button-06-c-73e.9e1e6d8a0e7c17941efd.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return u}));var a=n(0),r=n.n(a),o=r.a.createContext({}),i=function(e){var t=r.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},c=function(e){var t=i(e.components);return r.a.createElement(o.Provider,{value:t},e.children)};var l="mdxType",b={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},s=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,l=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),s=i(n),u=a,p=s[c+"."+u]||s[u]||b[u]||o;return n?r.a.createElement(p,Object.assign({},{ref:t},l,{components:n})):r.a.createElement(p,Object.assign({},{ref:t},l))}));function u(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=s;var c={};for(var b in t)hasOwnProperty.call(t,b)&&(c[b]=t[b]);c.originalType=e,c[l]="string"==typeof e?e:a,i[1]=c;for(var u=2;u=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i={sidebar_label:"QPushButton",title:"QPushButton"},c=[{value:"Example",id:"example",children:[]},{value:"new QPushButton(parent?)",id:"new-qpushbuttonparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"button.setText(text)",id:"buttonsettexttext",children:[]},{value:"button.setFlat(isFlat)",id:"buttonsetflatisflat",children:[]},{value:"button.setIcon(icon)",id:"buttonseticonicon",children:[]}]}],l={rightToc:c},b="wrapper";function s(e){var t=e.components,n=o(e,["components"]);return Object(a.b)(b,r({},l,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"Create and control buttons.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(a.b)("a",r({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qpushbutton.html"}),"QPushButton class"))),Object(a.b)("p",null,"A ",Object(a.b)("inlineCode",{parentName:"p"},"QPushButton")," provides ability to add and manipulate native button widgets."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QPushButton inherits from ",Object(a.b)("a",r({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",r({parentName:"pre"},{className:"language-javascript"}),'const { QPushButton } = require("@nodegui/nodegui");\n\nconst button = new QPushButton();\nbutton.setText("Hello");\n')),Object(a.b)("h3",{id:"new-qpushbuttonparent"},Object(a.b)("inlineCode",{parentName:"h3"},"new QPushButton(parent?)")),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(a.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QPushButton can access all the static methods defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QPushButton can access all the instance properties defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QPushButton can access all the instance methods defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("p",null,"Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"buttonsettexttext"},Object(a.b)("inlineCode",{parentName:"h3"},"button.setText(text)")),Object(a.b)("p",null,"Sets the given text to the button."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"text")," string")),Object(a.b)("h3",{id:"buttonsetflatisflat"},Object(a.b)("inlineCode",{parentName:"h3"},"button.setFlat(isFlat)")),Object(a.b)("p",null,"Sets whether the button border is raised."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"isFlat")," boolean")),Object(a.b)("h3",{id:"buttonseticonicon"},Object(a.b)("inlineCode",{parentName:"h3"},"button.setIcon(icon)")),Object(a.b)("p",null,"Sets an icon in the button."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"icon")," QIcon")))}s.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return u}));var a=n(0),r=n.n(a),o=r.a.createContext({}),i=function(e){var t=r.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},c=function(e){var t=i(e.components);return r.a.createElement(o.Provider,{value:t},e.children)};var l="mdxType",b={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},s=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,l=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),s=i(n),u=a,p=s[c+"."+u]||s[u]||b[u]||o;return n?r.a.createElement(p,Object.assign({},{ref:t},l,{components:n})):r.a.createElement(p,Object.assign({},{ref:t},l))}));function u(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=s;var c={};for(var b in t)hasOwnProperty.call(t,b)&&(c[b]=t[b]);c.originalType=e,c[l]="string"==typeof e?e:a,i[1]=c;for(var u=2;u=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i={sidebar_label:"QPushButton",title:"QPushButton"},c=[{value:"Example",id:"example",children:[]},{value:"new QPushButton(parent?)",id:"new-qpushbuttonparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"button.setText(text)",id:"buttonsettexttext",children:[]},{value:"button.setFlat(isFlat)",id:"buttonsetflatisflat",children:[]},{value:"button.setIcon(icon)",id:"buttonseticonicon",children:[]}]}],l={rightToc:c},b="wrapper";function s(e){var t=e.components,n=o(e,["components"]);return Object(a.b)(b,r({},l,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"Create and control buttons.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(a.b)("a",r({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qpushbutton.html"}),"QPushButton class"))),Object(a.b)("p",null,"A ",Object(a.b)("inlineCode",{parentName:"p"},"QPushButton")," provides ability to add and manipulate native button widgets."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QPushButton inherits from ",Object(a.b)("a",r({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",r({parentName:"pre"},{className:"language-javascript"}),'const { QPushButton } = require("@nodegui/nodegui");\n\nconst button = new QPushButton();\nbutton.setText("Hello");\n')),Object(a.b)("h3",{id:"new-qpushbuttonparent"},Object(a.b)("inlineCode",{parentName:"h3"},"new QPushButton(parent?)")),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(a.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QPushButton can access all the static methods defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QPushButton can access all the instance properties defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QPushButton can access all the instance methods defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("p",null,"Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"buttonsettexttext"},Object(a.b)("inlineCode",{parentName:"h3"},"button.setText(text)")),Object(a.b)("p",null,"Sets the given text to the button."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"text")," string")),Object(a.b)("h3",{id:"buttonsetflatisflat"},Object(a.b)("inlineCode",{parentName:"h3"},"button.setFlat(isFlat)")),Object(a.b)("p",null,"Sets whether the button border is raised."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"isFlat")," boolean")),Object(a.b)("h3",{id:"buttonseticonicon"},Object(a.b)("inlineCode",{parentName:"h3"},"button.setIcon(icon)")),Object(a.b)("p",null,"Sets an icon in the button."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"icon")," QIcon")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-radio-buttone-54-746.c46ca58051e6e9f427b9.js b/content---docs-api-q-radio-buttone-54-746.0eceb96f43e589853010.js similarity index 98% rename from content---docs-api-q-radio-buttone-54-746.c46ca58051e6e9f427b9.js rename to content---docs-api-q-radio-buttone-54-746.0eceb96f43e589853010.js index bdd11b270..ca2057ff6 100644 --- a/content---docs-api-q-radio-buttone-54-746.c46ca58051e6e9f427b9.js +++ b/content---docs-api-q-radio-buttone-54-746.0eceb96f43e589853010.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return s}));var a=n(0),r=n.n(a),o=r.a.createContext({}),i=function(e){var t=r.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},c=function(e){var t=i(e.components);return r.a.createElement(o.Provider,{value:t},e.children)};var d="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},p=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),p=i(n),s=a,u=p[c+"."+s]||p[s]||l[s]||o;return n?r.a.createElement(u,Object.assign({},{ref:t},d,{components:n})):r.a.createElement(u,Object.assign({},{ref:t},d))}));function s(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=p;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:a,i[1]=c;for(var s=2;s=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i={sidebar_label:"QRadioButton",title:"QRadioButton"},c=[{value:"Example",id:"example",children:[]},{value:"new QRadioButton(parent?)",id:"new-qradiobuttonparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"radioButton.setText(text)",id:"radiobuttonsettexttext",children:[]}]}],d={rightToc:c},l="wrapper";function p(e){var t=e.components,n=o(e,["components"]);return Object(a.b)(l,r({},d,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"Create and control radio button.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(a.b)("a",r({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qradiobutton.html"}),"QRadioButton class"))),Object(a.b)("p",null,"A ",Object(a.b)("inlineCode",{parentName:"p"},"QRadioButton")," provides ability to add and manipulate native radio button widgets."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QRadioButton inherits from ",Object(a.b)("a",r({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",r({parentName:"pre"},{className:"language-javascript"}),'const { QRadioButton } = require("@nodegui/nodegui");\n\nconst radioButton = new QRadioButton();\nradioButton.setText("Hello");\n')),Object(a.b)("h3",{id:"new-qradiobuttonparent"},Object(a.b)("inlineCode",{parentName:"h3"},"new QRadioButton(parent?)")),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(a.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QRadioButton can access all the static methods defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QRadioButton can access all the instance properties defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QRadioButton can access all the instance methods defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("p",null,"Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"radiobuttonsettexttext"},Object(a.b)("inlineCode",{parentName:"h3"},"radioButton.setText(text)")),Object(a.b)("p",null,"Sets the given text to the radioButton."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"text")," string")))}p.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return s}));var a=n(0),r=n.n(a),o=r.a.createContext({}),i=function(e){var t=r.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},c=function(e){var t=i(e.components);return r.a.createElement(o.Provider,{value:t},e.children)};var d="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},p=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),p=i(n),s=a,u=p[c+"."+s]||p[s]||l[s]||o;return n?r.a.createElement(u,Object.assign({},{ref:t},d,{components:n})):r.a.createElement(u,Object.assign({},{ref:t},d))}));function s(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=p;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:a,i[1]=c;for(var s=2;s=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i={sidebar_label:"QRadioButton",title:"QRadioButton"},c=[{value:"Example",id:"example",children:[]},{value:"new QRadioButton(parent?)",id:"new-qradiobuttonparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"radioButton.setText(text)",id:"radiobuttonsettexttext",children:[]}]}],d={rightToc:c},l="wrapper";function p(e){var t=e.components,n=o(e,["components"]);return Object(a.b)(l,r({},d,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"Create and control radio button.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(a.b)("a",r({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qradiobutton.html"}),"QRadioButton class"))),Object(a.b)("p",null,"A ",Object(a.b)("inlineCode",{parentName:"p"},"QRadioButton")," provides ability to add and manipulate native radio button widgets."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"QRadioButton inherits from ",Object(a.b)("a",r({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(a.b)("h3",{id:"example"},"Example"),Object(a.b)("pre",null,Object(a.b)("code",r({parentName:"pre"},{className:"language-javascript"}),'const { QRadioButton } = require("@nodegui/nodegui");\n\nconst radioButton = new QRadioButton();\nradioButton.setText("Hello");\n')),Object(a.b)("h3",{id:"new-qradiobuttonparent"},Object(a.b)("inlineCode",{parentName:"h3"},"new QRadioButton(parent?)")),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(a.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"QRadioButton can access all the static methods defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"QRadioButton can access all the instance properties defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"QRadioButton can access all the instance methods defined in ",Object(a.b)("a",r({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(a.b)("p",null,"Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"radiobuttonsettexttext"},Object(a.b)("inlineCode",{parentName:"h3"},"radioButton.setText(text)")),Object(a.b)("p",null,"Sets the given text to the radioButton."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"text")," string")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-scroll-area-8-c-4-3fd.fd2d29a876286d824831.js b/content---docs-api-q-scroll-area-8-c-4-3fd.fd580650b1d2ac9eee33.js similarity index 98% rename from content---docs-api-q-scroll-area-8-c-4-3fd.fd2d29a876286d824831.js rename to content---docs-api-q-scroll-area-8-c-4-3fd.fd580650b1d2ac9eee33.js index e9c1af914..77e64d743 100644 --- a/content---docs-api-q-scroll-area-8-c-4-3fd.fd2d29a876286d824831.js +++ b/content---docs-api-q-scroll-area-8-c-4-3fd.fd580650b1d2ac9eee33.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{161:function(e,t,r){"use strict";r.d(t,"a",(function(){return o})),r.d(t,"b",(function(){return d}));var n=r(0),a=r.n(n),l=a.a.createContext({}),c=function(e){var t=a.a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):Object.assign({},t,e)),r},o=function(e){var t=c(e.components);return a.a.createElement(l.Provider,{value:t},e.children)};var i="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},p=Object(n.forwardRef)((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,o=e.parentName,i=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===t.indexOf(n)&&(r[n]=e[n]);return r}(e,["components","mdxType","originalType","parentName"]),p=c(r),d=n,b=p[o+"."+d]||p[d]||s[d]||l;return r?a.a.createElement(b,Object.assign({},{ref:t},i,{components:r})):a.a.createElement(b,Object.assign({},{ref:t},i))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,c=new Array(l);c[0]=p;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[i]="string"==typeof e?e:n,c[1]=o;for(var d=2;d=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c={sidebar_label:"QScrollArea",title:"QScrollArea"},o=[{value:"Example",id:"example",children:[]},{value:"new QScrollArea(parent?)",id:"new-qscrollareaparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"scrollArea.setWidget(widget)",id:"scrollareasetwidgetwidget",children:[]}]}],i={rightToc:o},s="wrapper";function p(e){var t=e.components,r=l(e,["components"]);return Object(n.b)(s,a({},i,r,{components:t,mdxType:"MDXLayout"}),Object(n.b)("blockquote",null,Object(n.b)("p",{parentName:"blockquote"},"A ",Object(n.b)("inlineCode",{parentName:"p"},"QScrollArea")," provides a scrolling view onto another widget.")),Object(n.b)("p",null,Object(n.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(n.b)("a",a({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qscrollarea.html"}),"QScrollArea class"))),Object(n.b)("p",null,Object(n.b)("strong",{parentName:"p"},"QScrollArea inherits from ",Object(n.b)("a",a({parentName:"strong"},{href:"/docs/api/QAbstractScrollArea"}),"QAbstractScrollArea"))),Object(n.b)("h3",{id:"example"},"Example"),Object(n.b)("pre",null,Object(n.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const { QScrollArea } = require("@nodegui/nodegui");\n\nconst scrollArea = new QScrollArea();\nscrollArea.setInlineStyle("flex: 1; width:\'100%\';");\n\nconst imageLabel = new QLabel();\nconst pixmap = new QPixmap(\n path.resolve(__dirname, "../extras/assets/kitchen.png")\n);\nimageLabel.setPixmap(pixmap);\n\nscrollArea.setWidget(imageLabel);\n')),Object(n.b)("h3",{id:"new-qscrollareaparent"},Object(n.b)("inlineCode",{parentName:"h3"},"new QScrollArea(parent?)")),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(n.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(n.b)("h2",{id:"static-methods"},"Static Methods"),Object(n.b)("p",null,"QScrollArea can access all the static methods defined in ",Object(n.b)("a",a({parentName:"p"},{href:"/docs/api/QAbstractScrollArea"}),"QAbstractScrollArea")),Object(n.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(n.b)("p",null,"QScrollArea can access all the instance properties defined in ",Object(n.b)("a",a({parentName:"p"},{href:"/docs/api/QAbstractScrollArea"}),"QAbstractScrollArea")),Object(n.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(n.b)("p",null,"QScrollArea can access all the instance methods defined in ",Object(n.b)("a",a({parentName:"p"},{href:"/docs/api/QAbstractScrollArea"}),"QAbstractScrollArea"),". Additionally it also has the following instance methods:"),Object(n.b)("h3",{id:"scrollareasetwidgetwidget"},Object(n.b)("inlineCode",{parentName:"h3"},"scrollArea.setWidget(widget)")),Object(n.b)("p",null,"Sets the scroll area's widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qscrollarea.html#setWidget"}),"QScrollArea: setWidget"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"widget")," NodeWidget - Any widget you want to enclose in a scroll area.")))}p.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{161:function(e,t,r){"use strict";r.d(t,"a",(function(){return o})),r.d(t,"b",(function(){return d}));var n=r(0),a=r.n(n),l=a.a.createContext({}),c=function(e){var t=a.a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):Object.assign({},t,e)),r},o=function(e){var t=c(e.components);return a.a.createElement(l.Provider,{value:t},e.children)};var i="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},p=Object(n.forwardRef)((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,o=e.parentName,i=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===t.indexOf(n)&&(r[n]=e[n]);return r}(e,["components","mdxType","originalType","parentName"]),p=c(r),d=n,b=p[o+"."+d]||p[d]||s[d]||l;return r?a.a.createElement(b,Object.assign({},{ref:t},i,{components:r})):a.a.createElement(b,Object.assign({},{ref:t},i))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,c=new Array(l);c[0]=p;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[i]="string"==typeof e?e:n,c[1]=o;for(var d=2;d=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c={sidebar_label:"QScrollArea",title:"QScrollArea"},o=[{value:"Example",id:"example",children:[]},{value:"new QScrollArea(parent?)",id:"new-qscrollareaparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"scrollArea.setWidget(widget)",id:"scrollareasetwidgetwidget",children:[]}]}],i={rightToc:o},s="wrapper";function p(e){var t=e.components,r=l(e,["components"]);return Object(n.b)(s,a({},i,r,{components:t,mdxType:"MDXLayout"}),Object(n.b)("blockquote",null,Object(n.b)("p",{parentName:"blockquote"},"A ",Object(n.b)("inlineCode",{parentName:"p"},"QScrollArea")," provides a scrolling view onto another widget.")),Object(n.b)("p",null,Object(n.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(n.b)("a",a({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qscrollarea.html"}),"QScrollArea class"))),Object(n.b)("p",null,Object(n.b)("strong",{parentName:"p"},"QScrollArea inherits from ",Object(n.b)("a",a({parentName:"strong"},{href:"/docs/api/QAbstractScrollArea"}),"QAbstractScrollArea"))),Object(n.b)("h3",{id:"example"},"Example"),Object(n.b)("pre",null,Object(n.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const { QScrollArea } = require("@nodegui/nodegui");\n\nconst scrollArea = new QScrollArea();\nscrollArea.setInlineStyle("flex: 1; width:\'100%\';");\n\nconst imageLabel = new QLabel();\nconst pixmap = new QPixmap(\n path.resolve(__dirname, "../extras/assets/kitchen.png")\n);\nimageLabel.setPixmap(pixmap);\n\nscrollArea.setWidget(imageLabel);\n')),Object(n.b)("h3",{id:"new-qscrollareaparent"},Object(n.b)("inlineCode",{parentName:"h3"},"new QScrollArea(parent?)")),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(n.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(n.b)("h2",{id:"static-methods"},"Static Methods"),Object(n.b)("p",null,"QScrollArea can access all the static methods defined in ",Object(n.b)("a",a({parentName:"p"},{href:"/docs/api/QAbstractScrollArea"}),"QAbstractScrollArea")),Object(n.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(n.b)("p",null,"QScrollArea can access all the instance properties defined in ",Object(n.b)("a",a({parentName:"p"},{href:"/docs/api/QAbstractScrollArea"}),"QAbstractScrollArea")),Object(n.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(n.b)("p",null,"QScrollArea can access all the instance methods defined in ",Object(n.b)("a",a({parentName:"p"},{href:"/docs/api/QAbstractScrollArea"}),"QAbstractScrollArea"),". Additionally it also has the following instance methods:"),Object(n.b)("h3",{id:"scrollareasetwidgetwidget"},Object(n.b)("inlineCode",{parentName:"h3"},"scrollArea.setWidget(widget)")),Object(n.b)("p",null,"Sets the scroll area's widget. It calls the native method ",Object(n.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qscrollarea.html#setWidget"}),"QScrollArea: setWidget"),"."),Object(n.b)("ul",null,Object(n.b)("li",{parentName:"ul"},Object(n.b)("inlineCode",{parentName:"li"},"widget")," NodeWidget - Any widget you want to enclose in a scroll area.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-spin-box-1-ce-bfd.d62b3746ba69df91f4e1.js b/content---docs-api-q-spin-box-1-ce-bfd.fc03e9106b39d9c9e23c.js similarity index 99% rename from content---docs-api-q-spin-box-1-ce-bfd.d62b3746ba69df91f4e1.js rename to content---docs-api-q-spin-box-1-ce-bfd.fc03e9106b39d9c9e23c.js index 8c08d6878..c109c7bd5 100644 --- a/content---docs-api-q-spin-box-1-ce-bfd.d62b3746ba69df91f4e1.js +++ b/content---docs-api-q-spin-box-1-ce-bfd.fc03e9106b39d9c9e23c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return b}));var i=n(0),a=n.n(i),o=a.a.createContext({}),p=function(e){var t=a.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},r=function(e){var t=p(e.components);return a.a.createElement(o.Provider,{value:t},e.children)};var l="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},c=Object(i.forwardRef)((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,r=e.parentName,l=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&-1===t.indexOf(i)&&(n[i]=e[i]);return n}(e,["components","mdxType","originalType","parentName"]),c=p(n),b=i,u=c[r+"."+b]||c[b]||s[b]||o;return n?a.a.createElement(u,Object.assign({},{ref:t},l,{components:n})):a.a.createElement(u,Object.assign({},{ref:t},l))}));function b(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,p=new Array(o);p[0]=c;var r={};for(var s in t)hasOwnProperty.call(t,s)&&(r[s]=t[s]);r.originalType=e,r[l]="string"==typeof e?e:i,p[1]=r;for(var b=2;b=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p={sidebar_label:"QSpinBox",title:"QSpinBox"},r=[{value:"Example",id:"example",children:[]},{value:"new QSpinBox(parent?)",id:"new-qspinboxparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"spinBox.setValue(val)",id:"spinboxsetvalueval",children:[]},{value:"spinBox.setRange(minimum, maximum)",id:"spinboxsetrangeminimum-maximum",children:[]},{value:"spinBox.setPrefix(prefix)",id:"spinboxsetprefixprefix",children:[]},{value:"spinBox.setSuffix(suffix)",id:"spinboxsetsuffixsuffix",children:[]},{value:"spinBox.setSingleStep(val)",id:"spinboxsetsinglestepval",children:[]},{value:"spinBox.cleanText()",id:"spinboxcleantext",children:[]},{value:"spinBox.minimum()",id:"spinboxminimum",children:[]},{value:"spinBox.maximum()",id:"spinboxmaximum",children:[]},{value:"spinBox.value()",id:"spinboxvalue",children:[]}]}],l={rightToc:r},s="wrapper";function c(e){var t=e.components,n=o(e,["components"]);return Object(i.b)(s,a({},l,n,{components:t,mdxType:"MDXLayout"}),Object(i.b)("blockquote",null,Object(i.b)("p",{parentName:"blockquote"},"Create and control spin box widgets.")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(i.b)("a",a({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qspinbox.html"}),"QSpinBox class"))),Object(i.b)("p",null,"A ",Object(i.b)("inlineCode",{parentName:"p"},"QSpinBox")," provides ability to add and manipulate native spin box widgets."),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"QSpinBox inherits from ",Object(i.b)("a",a({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(i.b)("h3",{id:"example"},"Example"),Object(i.b)("pre",null,Object(i.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const { QSpinBox } = require("@nodegui/nodegui");\n\nconst spinBox = new QSpinBox();\n')),Object(i.b)("h3",{id:"new-qspinboxparent"},Object(i.b)("inlineCode",{parentName:"h3"},"new QSpinBox(parent?)")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(i.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(i.b)("h2",{id:"static-methods"},"Static Methods"),Object(i.b)("p",null,"QSpinBox can access all the static methods defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(i.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(i.b)("p",null,"QSpinBox can access all the instance properties defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(i.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(i.b)("p",null,"QSpinBox can access all the instance methods defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget"),". Additionally it also has the following instance methods:"),Object(i.b)("h3",{id:"spinboxsetvalueval"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.setValue(val)")),Object(i.b)("p",null,"Sets the current value of the spinBox. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#value-prop"}),"QSpinBox: setValue"),"."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"val")," number - Set the value as current value")),Object(i.b)("h3",{id:"spinboxsetrangeminimum-maximum"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.setRange(minimum, maximum)")),Object(i.b)("p",null,"Sets the min/max value of the spinBox. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#setRange"}),"QSpinBox: setRange"),"."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"max")," number - Set the value as max value of the progress bar.")),Object(i.b)("h3",{id:"spinboxsetprefixprefix"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.setPrefix(prefix)")),Object(i.b)("p",null,"Sets the prefix of the spinBox. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#prefix-prop"}),"QSpinBox: setPrefix"),"."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"prefix")," string - Specifies prefix content shows before the spinBox value. ",Object(i.b)("a",a({parentName:"li"},{href:"/docs/api/QtEnums"}),"Prefix is an enum from Qt"))),Object(i.b)("h3",{id:"spinboxsetsuffixsuffix"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.setSuffix(suffix)")),Object(i.b)("p",null,"Sets the suffix of the spinBox. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#suffix-prop"}),"QSpinBox: setSuffix"),"."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"suffix")," string - Specifies suffix content shows after the spinBox value. ",Object(i.b)("a",a({parentName:"li"},{href:"/docs/api/QtEnums"}),"Suffix is an enum from Qt"))),Object(i.b)("h3",{id:"spinboxsetsinglestepval"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.setSingleStep(val)")),Object(i.b)("p",null,"Sets the single step value of the spinBox. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#singleStep-prop"}),"QSpinBox: setSingleStep"),"."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"val")," number - Specifies amount value changes with each step. ",Object(i.b)("a",a({parentName:"li"},{href:"/docs/api/QtEnums"}),"Suffix is an enum from Qt"))),Object(i.b)("h3",{id:"spinboxcleantext"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.cleanText()")),Object(i.b)("p",null,"Returns the text content (String) of the spinBox excluding any prefix, suffix, or leading or trailing whitespace. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#minimum-prop"}),"QSpinBox: value"),"."),Object(i.b)("h3",{id:"spinboxminimum"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.minimum()")),Object(i.b)("p",null,"Returns the minimum value (Number) of the spinBox. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#minimum-prop"}),"QSpinBox: value"),"."),Object(i.b)("h3",{id:"spinboxmaximum"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.maximum()")),Object(i.b)("p",null,"Returns the maximum value (Number) of the spinBox. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#maximum-prop"}),"QSpinBox: value"),"."),Object(i.b)("h3",{id:"spinboxvalue"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.value()")),Object(i.b)("p",null,"Returns the current value (Number) of the spinBox. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#value-prop"}),"QSpinBox: value"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{161:function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return b}));var i=n(0),a=n.n(i),o=a.a.createContext({}),p=function(e){var t=a.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},r=function(e){var t=p(e.components);return a.a.createElement(o.Provider,{value:t},e.children)};var l="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},c=Object(i.forwardRef)((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,r=e.parentName,l=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&-1===t.indexOf(i)&&(n[i]=e[i]);return n}(e,["components","mdxType","originalType","parentName"]),c=p(n),b=i,u=c[r+"."+b]||c[b]||s[b]||o;return n?a.a.createElement(u,Object.assign({},{ref:t},l,{components:n})):a.a.createElement(u,Object.assign({},{ref:t},l))}));function b(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,p=new Array(o);p[0]=c;var r={};for(var s in t)hasOwnProperty.call(t,s)&&(r[s]=t[s]);r.originalType=e,r[l]="string"==typeof e?e:i,p[1]=r;for(var b=2;b=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p={sidebar_label:"QSpinBox",title:"QSpinBox"},r=[{value:"Example",id:"example",children:[]},{value:"new QSpinBox(parent?)",id:"new-qspinboxparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"spinBox.setValue(val)",id:"spinboxsetvalueval",children:[]},{value:"spinBox.setRange(minimum, maximum)",id:"spinboxsetrangeminimum-maximum",children:[]},{value:"spinBox.setPrefix(prefix)",id:"spinboxsetprefixprefix",children:[]},{value:"spinBox.setSuffix(suffix)",id:"spinboxsetsuffixsuffix",children:[]},{value:"spinBox.setSingleStep(val)",id:"spinboxsetsinglestepval",children:[]},{value:"spinBox.cleanText()",id:"spinboxcleantext",children:[]},{value:"spinBox.minimum()",id:"spinboxminimum",children:[]},{value:"spinBox.maximum()",id:"spinboxmaximum",children:[]},{value:"spinBox.value()",id:"spinboxvalue",children:[]}]}],l={rightToc:r},s="wrapper";function c(e){var t=e.components,n=o(e,["components"]);return Object(i.b)(s,a({},l,n,{components:t,mdxType:"MDXLayout"}),Object(i.b)("blockquote",null,Object(i.b)("p",{parentName:"blockquote"},"Create and control spin box widgets.")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(i.b)("a",a({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qspinbox.html"}),"QSpinBox class"))),Object(i.b)("p",null,"A ",Object(i.b)("inlineCode",{parentName:"p"},"QSpinBox")," provides ability to add and manipulate native spin box widgets."),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"QSpinBox inherits from ",Object(i.b)("a",a({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(i.b)("h3",{id:"example"},"Example"),Object(i.b)("pre",null,Object(i.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const { QSpinBox } = require("@nodegui/nodegui");\n\nconst spinBox = new QSpinBox();\n')),Object(i.b)("h3",{id:"new-qspinboxparent"},Object(i.b)("inlineCode",{parentName:"h3"},"new QSpinBox(parent?)")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(i.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(i.b)("h2",{id:"static-methods"},"Static Methods"),Object(i.b)("p",null,"QSpinBox can access all the static methods defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(i.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(i.b)("p",null,"QSpinBox can access all the instance properties defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(i.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(i.b)("p",null,"QSpinBox can access all the instance methods defined in ",Object(i.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget"),". Additionally it also has the following instance methods:"),Object(i.b)("h3",{id:"spinboxsetvalueval"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.setValue(val)")),Object(i.b)("p",null,"Sets the current value of the spinBox. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#value-prop"}),"QSpinBox: setValue"),"."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"val")," number - Set the value as current value")),Object(i.b)("h3",{id:"spinboxsetrangeminimum-maximum"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.setRange(minimum, maximum)")),Object(i.b)("p",null,"Sets the min/max value of the spinBox. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#setRange"}),"QSpinBox: setRange"),"."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"max")," number - Set the value as max value of the progress bar.")),Object(i.b)("h3",{id:"spinboxsetprefixprefix"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.setPrefix(prefix)")),Object(i.b)("p",null,"Sets the prefix of the spinBox. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#prefix-prop"}),"QSpinBox: setPrefix"),"."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"prefix")," string - Specifies prefix content shows before the spinBox value. ",Object(i.b)("a",a({parentName:"li"},{href:"/docs/api/QtEnums"}),"Prefix is an enum from Qt"))),Object(i.b)("h3",{id:"spinboxsetsuffixsuffix"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.setSuffix(suffix)")),Object(i.b)("p",null,"Sets the suffix of the spinBox. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#suffix-prop"}),"QSpinBox: setSuffix"),"."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"suffix")," string - Specifies suffix content shows after the spinBox value. ",Object(i.b)("a",a({parentName:"li"},{href:"/docs/api/QtEnums"}),"Suffix is an enum from Qt"))),Object(i.b)("h3",{id:"spinboxsetsinglestepval"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.setSingleStep(val)")),Object(i.b)("p",null,"Sets the single step value of the spinBox. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#singleStep-prop"}),"QSpinBox: setSingleStep"),"."),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"val")," number - Specifies amount value changes with each step. ",Object(i.b)("a",a({parentName:"li"},{href:"/docs/api/QtEnums"}),"Suffix is an enum from Qt"))),Object(i.b)("h3",{id:"spinboxcleantext"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.cleanText()")),Object(i.b)("p",null,"Returns the text content (String) of the spinBox excluding any prefix, suffix, or leading or trailing whitespace. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#minimum-prop"}),"QSpinBox: value"),"."),Object(i.b)("h3",{id:"spinboxminimum"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.minimum()")),Object(i.b)("p",null,"Returns the minimum value (Number) of the spinBox. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#minimum-prop"}),"QSpinBox: value"),"."),Object(i.b)("h3",{id:"spinboxmaximum"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.maximum()")),Object(i.b)("p",null,"Returns the maximum value (Number) of the spinBox. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#maximum-prop"}),"QSpinBox: value"),"."),Object(i.b)("h3",{id:"spinboxvalue"},Object(i.b)("inlineCode",{parentName:"h3"},"spinBox.value()")),Object(i.b)("p",null,"Returns the current value (Number) of the spinBox. It calls the native method ",Object(i.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qspinbox.html#value-prop"}),"QSpinBox: value"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-q-widget-04-a-59f.64a7421274fdc2d19599.js b/content---docs-api-q-widget-04-a-59f.64a7421274fdc2d19599.js deleted file mode 100644 index 0788eb69b..000000000 --- a/content---docs-api-q-widget-04-a-59f.64a7421274fdc2d19599.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{103:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return o})),n.d(t,"rightToc",(function(){return c})),n.d(t,"default",(function(){return l}));n(0);var r=n(161);function a(){return(a=Object.assign||function(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o={sidebar_label:"QWidget",title:"QWidget"},c=[{value:"Example",id:"example",children:[]},{value:"new QWidget(parent?)",id:"new-qwidgetparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[]}],d={rightToc:c},p="wrapper";function l(e){var t=e.components,n=i(e,["components"]);return Object(r.b)(p,a({},d,n,{components:t,mdxType:"MDXLayout"}),Object(r.b)("blockquote",null,Object(r.b)("p",{parentName:"blockquote"},"Create and control views.")),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(r.b)("a",a({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qwidget.html"}),"QWidget class"))),Object(r.b)("p",null,"A ",Object(r.b)("inlineCode",{parentName:"p"},"QWidget")," can be used to encapsulate other widgets and provide structure. It functions similar to a ",Object(r.b)("inlineCode",{parentName:"p"},"div")," in the web world."),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"},"QWidget inherits from ",Object(r.b)("a",a({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(r.b)("h3",{id:"example"},"Example"),Object(r.b)("pre",null,Object(r.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const { QWidget } = require("@nodegui/nodegui");\n\nconst view = new QWidget();\nview.setObjectName("container"); //Similar to setting `id` on the web\nview.setLayout(new FlexLayout());\n')),Object(r.b)("h3",{id:"new-qwidgetparent"},Object(r.b)("inlineCode",{parentName:"h3"},"new QWidget(parent?)")),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(r.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(r.b)("h2",{id:"static-methods"},"Static Methods"),Object(r.b)("p",null,"QWidget can access all the static methods defined in ",Object(r.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(r.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(r.b)("p",null,"QWidget can access all the instance properties defined in ",Object(r.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(r.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(r.b)("p",null,"QWidget can access all the instance methods defined in ",Object(r.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")))}l.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return s}));var r=n(0),a=n.n(r),i=a.a.createContext({}),o=function(e){var t=a.a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},c=function(e){var t=o(e.components);return a.a.createElement(i.Provider,{value:t},e.children)};var d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},l=Object(r.forwardRef)((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,d=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===t.indexOf(r)&&(n[r]=e[r]);return n}(e,["components","mdxType","originalType","parentName"]),l=o(n),s=r,b=l[c+"."+s]||l[s]||p[s]||i;return n?a.a.createElement(b,Object.assign({},{ref:t},d,{components:n})):a.a.createElement(b,Object.assign({},{ref:t},d))}));function s(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=l;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[d]="string"==typeof e?e:r,o[1]=c;for(var s=2;s=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o={sidebar_label:"QWidget",title:"QWidget"},c=[{value:"Example",id:"example",children:[]},{value:"new QWidget(parent?)",id:"new-qwidgetparent",children:[]},{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[]}],d={rightToc:c},p="wrapper";function l(e){var t=e.components,n=i(e,["components"]);return Object(r.b)(p,a({},d,n,{components:t,mdxType:"MDXLayout"}),Object(r.b)("blockquote",null,Object(r.b)("p",{parentName:"blockquote"},"Create and control views.")),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"},"This class is a JS wrapper around Qt's ",Object(r.b)("a",a({parentName:"strong"},{href:"https://doc.qt.io/qt-5/qwidget.html"}),"QWidget class"))),Object(r.b)("p",null,"A ",Object(r.b)("inlineCode",{parentName:"p"},"QWidget")," can be used to encapsulate other widgets and provide structure. It functions similar to a ",Object(r.b)("inlineCode",{parentName:"p"},"div")," in the web world."),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"},"QWidget inherits from ",Object(r.b)("a",a({parentName:"strong"},{href:"/docs/api/NodeWidget"}),"NodeWidget"))),Object(r.b)("h3",{id:"example"},"Example"),Object(r.b)("pre",null,Object(r.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const { QWidget } = require("@nodegui/nodegui");\n\nconst view = new QWidget();\nview.setObjectName("container"); //Similar to setting `id` on the web\nview.setLayout(new FlexLayout());\n')),Object(r.b)("h3",{id:"new-qwidgetparent"},Object(r.b)("inlineCode",{parentName:"h3"},"new QWidget(parent?)")),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"parent")," NodeWidget (",Object(r.b)("em",{parentName:"li"},"optional"),"). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.")),Object(r.b)("h2",{id:"static-methods"},"Static Methods"),Object(r.b)("p",null,"QWidget can access all the static methods defined in ",Object(r.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(r.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(r.b)("p",null,"QWidget can access all the instance properties defined in ",Object(r.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")),Object(r.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(r.b)("p",null,"QWidget can access all the instance methods defined in ",Object(r.b)("a",a({parentName:"p"},{href:"/docs/api/NodeWidget"}),"NodeWidget")))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-qt-enumsfd-7-cf3.0f709b0fb9cdc99aa034.js b/content---docs-api-qt-enumsfd-7-cf3.0f709b0fb9cdc99aa034.js deleted file mode 100644 index 7eae4faf0..000000000 --- a/content---docs-api-qt-enumsfd-7-cf3.0f709b0fb9cdc99aa034.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{161:function(e,n,t){"use strict";t.d(n,"a",(function(){return c})),t.d(n,"b",(function(){return s}));var r=t(0),a=t.n(r),o=a.a.createContext({}),i=function(e){var n=a.a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):Object.assign({},n,e)),t},c=function(e){var n=i(e.components);return a.a.createElement(o.Provider,{value:n},e.children)};var u="mdxType",l={inlineCode:"code",wrapper:function(e){var n=e.children;return a.a.createElement(a.a.Fragment,{},n)}},p=Object(r.forwardRef)((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,u=function(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===n.indexOf(r)&&(t[r]=e[r]);return t}(e,["components","mdxType","originalType","parentName"]),p=i(t),s=r,m=p[c+"."+s]||p[s]||l[s]||o;return t?a.a.createElement(m,Object.assign({},{ref:n},u,{components:t})):a.a.createElement(m,Object.assign({},{ref:n},u))}));function s(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,i=new Array(o);i[0]=p;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[u]="string"==typeof e?e:r,i[1]=c;for(var s=2;s=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i={sidebar_label:"Qt Enums",title:"Qt Enums"},c=[{value:"Enums from Qt",id:"enums-from-qt",children:[{value:"Example",id:"example",children:[]}]}],u={rightToc:c},l="wrapper";function p(e){var n=e.components,t=o(e,["components"]);return Object(r.b)(l,a({},u,t,{components:n,mdxType:"MDXLayout"}),Object(r.b)("h2",{id:"enums-from-qt"},"Enums from Qt"),Object(r.b)("p",null,"For a complete list of Enums that we can use from Javascript see file"),Object(r.b)("p",null,"Qt enums: ",Object(r.b)("a",a({parentName:"p"},{href:"https://github.com/nodegui/nodegui/blob/master/src/lib/QtEnums/index.ts"}),Object(r.b)("inlineCode",{parentName:"a"},"src/lib/QtEnums/index.ts"))," in the NodeGui repo."),Object(r.b)("p",null,"All the enums in this file can be imported directly from ",Object(r.b)("inlineCode",{parentName:"p"},"@nodegui/@nodegui"),"."),Object(r.b)("h3",{id:"example"},"Example"),Object(r.b)("pre",null,Object(r.b)("code",a({parentName:"pre"},{className:"language-js"}),'import { AspectRatioMode } from "@nodegui/nodegui";\n')))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/content---docs-api-qt-enumsfd-7-cf3.1eed426a340d4c937b0a.js b/content---docs-api-qt-enumsfd-7-cf3.1eed426a340d4c937b0a.js new file mode 100644 index 000000000..013a3b6c7 --- /dev/null +++ b/content---docs-api-qt-enumsfd-7-cf3.1eed426a340d4c937b0a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{101:function(e,n,t){"use strict";t.r(n),t.d(n,"frontMatter",(function(){return i})),t.d(n,"rightToc",(function(){return c})),t.d(n,"default",(function(){return p}));t(0);var r=t(161);function a(){return(a=Object.assign||function(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i={sidebar_label:"Qt Enums",title:"Qt Enums"},c=[{value:"Enums from Qt",id:"enums-from-qt",children:[{value:"Example",id:"example",children:[]}]}],u={rightToc:c},l="wrapper";function p(e){var n=e.components,t=o(e,["components"]);return Object(r.b)(l,a({},u,t,{components:n,mdxType:"MDXLayout"}),Object(r.b)("h2",{id:"enums-from-qt"},"Enums from Qt"),Object(r.b)("p",null,"For a complete list of Enums that we can use from Javascript see file"),Object(r.b)("p",null,"Qt enums: ",Object(r.b)("a",a({parentName:"p"},{href:"https://github.com/nodegui/nodegui/blob/master/src/lib/QtEnums/index.ts"}),Object(r.b)("inlineCode",{parentName:"a"},"src/lib/QtEnums/index.ts"))," in the NodeGui repo."),Object(r.b)("p",null,"All the enums in this file can be imported directly from ",Object(r.b)("inlineCode",{parentName:"p"},"@nodegui/@nodegui"),"."),Object(r.b)("h3",{id:"example"},"Example"),Object(r.b)("pre",null,Object(r.b)("code",a({parentName:"pre"},{className:"language-js"}),'import { AspectRatioMode } from "@nodegui/nodegui";\n')))}p.isMDXComponent=!0},161:function(e,n,t){"use strict";t.d(n,"a",(function(){return c})),t.d(n,"b",(function(){return s}));var r=t(0),a=t.n(r),o=a.a.createContext({}),i=function(e){var n=a.a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):Object.assign({},n,e)),t},c=function(e){var n=i(e.components);return a.a.createElement(o.Provider,{value:n},e.children)};var u="mdxType",l={inlineCode:"code",wrapper:function(e){var n=e.children;return a.a.createElement(a.a.Fragment,{},n)}},p=Object(r.forwardRef)((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,u=function(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===n.indexOf(r)&&(t[r]=e[r]);return t}(e,["components","mdxType","originalType","parentName"]),p=i(t),s=r,m=p[c+"."+s]||p[s]||l[s]||o;return t?a.a.createElement(m,Object.assign({},{ref:n},u,{components:t})):a.a.createElement(m,Object.assign({},{ref:n},u))}));function s(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,i=new Array(o);i[0]=p;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[u]="string"==typeof e?e:r,i[1]=c;for(var s=2;s=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i={sidebar_label:"YogaWidget",title:"YogaWidget"},c=[{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"widget.getFlexNode()",id:"widgetgetflexnode",children:[]}]}],s={rightToc:c},l="wrapper";function d(e){var t=e.components,n=r(e,["components"]);return Object(a.b)(l,o({},s,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"Abstract class to add common functionality related to Flex layout to all Widgets.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class implements methods related to flex layout required to be present in all widgets")),Object(a.b)("p",null,Object(a.b)("inlineCode",{parentName:"p"},"YogaWidget")," is an abstract class and hence no instances of the same should be created. It exists so that we can add similar functionalities related to flex layout to all widget's easily. We implement flex layout using a library called ",Object(a.b)("a",o({parentName:"p"},{href:"https://github.com/facebook/yoga"}),"Yoga"),". As part of yoga every widget needs to store its own flex properties such as alignItems, flexDirection etc. This is done with the help of YogaWidget."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"YogaWidget is the base class for EventWidget which means all widgets inherit it aswell. It inherits from another abstract class ",Object(a.b)("a",o({parentName:"strong"},{href:"/docs/api/Component"}),"Component"))),Object(a.b)("pre",null,Object(a.b)("code",o({parentName:"pre"},{className:"language-javascript"}),'const { QWidget } = require("@nodegui/nodegui");\n\nconst view = new QWidget();\n// getFlexNode is a method from YogaWidget\nconst flexNode = view.getFlexNode();\n')),Object(a.b)("p",null,"YogaWidget helps in storing all flex properties of a widget."),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"YogaWidget can access all the static methods defined in ",Object(a.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"YogaWidget can access all the instance properties defined in ",Object(a.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"YogaWidget can access all the instance methods defined in ",Object(a.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("p",null,"Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"widgetgetflexnode"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.getFlexNode()")),Object(a.b)("p",null,"Returns a native reference to the flex node used in c++ instance for the widget. This is not a regular javascript object and hence no methods or properties can be accessed from it. It exists so that we pass around a widgets flex node to layouts, etc."))}d.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return p}));var a=n(0),o=n.n(a),r=o.a.createContext({}),i=function(e){var t=o.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},c=function(e){var t=i(e.components);return o.a.createElement(r.Provider,{value:t},e.children)};var s="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},d=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,c=e.parentName,s=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),d=i(n),p=a,u=d[c+"."+p]||d[p]||l[p]||r;return n?o.a.createElement(u,Object.assign({},{ref:t},s,{components:n})):o.a.createElement(u,Object.assign({},{ref:t},s))}));function p(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:a,i[1]=c;for(var p=2;p=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i={sidebar_label:"YogaWidget",title:"YogaWidget"},c=[{value:"Static Methods",id:"static-methods",children:[]},{value:"Instance Properties",id:"instance-properties",children:[]},{value:"Instance Methods",id:"instance-methods",children:[{value:"widget.getFlexNode()",id:"widgetgetflexnode",children:[]}]}],s={rightToc:c},l="wrapper";function d(e){var t=e.components,n=r(e,["components"]);return Object(a.b)(l,o({},s,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"Abstract class to add common functionality related to Flex layout to all Widgets.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"This class implements methods related to flex layout required to be present in all widgets")),Object(a.b)("p",null,Object(a.b)("inlineCode",{parentName:"p"},"YogaWidget")," is an abstract class and hence no instances of the same should be created. It exists so that we can add similar functionalities related to flex layout to all widget's easily. We implement flex layout using a library called ",Object(a.b)("a",o({parentName:"p"},{href:"https://github.com/facebook/yoga"}),"Yoga"),". As part of yoga every widget needs to store its own flex properties such as alignItems, flexDirection etc. This is done with the help of YogaWidget."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"YogaWidget is the base class for EventWidget which means all widgets inherit it aswell. It inherits from another abstract class ",Object(a.b)("a",o({parentName:"strong"},{href:"/docs/api/Component"}),"Component"))),Object(a.b)("pre",null,Object(a.b)("code",o({parentName:"pre"},{className:"language-javascript"}),'const { QWidget } = require("@nodegui/nodegui");\n\nconst view = new QWidget();\n// getFlexNode is a method from YogaWidget\nconst flexNode = view.getFlexNode();\n')),Object(a.b)("p",null,"YogaWidget helps in storing all flex properties of a widget."),Object(a.b)("h2",{id:"static-methods"},"Static Methods"),Object(a.b)("p",null,"YogaWidget can access all the static methods defined in ",Object(a.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-properties"},"Instance Properties"),Object(a.b)("p",null,"YogaWidget can access all the instance properties defined in ",Object(a.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("h2",{id:"instance-methods"},"Instance Methods"),Object(a.b)("p",null,"YogaWidget can access all the instance methods defined in ",Object(a.b)("a",o({parentName:"p"},{href:"/docs/api/Component"}),"Component")),Object(a.b)("p",null,"Additionally it also has the following instance methods:"),Object(a.b)("h3",{id:"widgetgetflexnode"},Object(a.b)("inlineCode",{parentName:"h3"},"widget.getFlexNode()")),Object(a.b)("p",null,"Returns a native reference to the flex node used in c++ instance for the widget. This is not a regular javascript object and hence no methods or properties can be accessed from it. It exists so that we pass around a widgets flex node to layouts, etc."))}d.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return p}));var a=n(0),o=n.n(a),r=o.a.createContext({}),i=function(e){var t=o.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},c=function(e){var t=i(e.components);return o.a.createElement(r.Provider,{value:t},e.children)};var s="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},d=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,c=e.parentName,s=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),d=i(n),p=a,u=d[c+"."+p]||d[p]||l[p]||r;return n?o.a.createElement(u,Object.assign({},{ref:t},s,{components:n})):o.a.createElement(u,Object.assign({},{ref:t},s))}));function p(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:a,i[1]=c;for(var p=2;p=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i={},c=[],l={rightToc:c},u="wrapper";function p(e){var t=e.components,n=o(e,["components"]);return Object(r.b)(u,a({},l,n,{components:t,mdxType:"MDXLayout"}),Object(r.b)("h1",{id:"common-errors"},"Common errors"),Object(r.b)("ol",null,Object(r.b)("li",{parentName:"ol"},Object(r.b)("p",{parentName:"li"},Object(r.b)("strong",{parentName:"p"},"Segmentation fault:")," Segmentation fault occurs when you access a Pointer that is pointing to an invalid memory address. One major reason for this can be that JS garbage collector would have garbage collected the addon generated value and you try accessing it after a while. This is mostly the case if you see seg fault happening randomly after some time of startup.")),Object(r.b)("li",{parentName:"ol"},Object(r.b)("p",{parentName:"li"},Object(r.b)("strong",{parentName:"p"},"Widget not visible in Flex layout")," Widget might have gotten zero height/width. This can occur if yoga was not able to get the default height/width of the widget. Make sure you have implemented",Object(r.b)("br",{parentName:"p"}),"\n",Object(r.b)("inlineCode",{parentName:"p"},"YGNodeSetMeasureFunc(this->instance->getFlexNode(), &extrautils::measureQtWidget);"),"\nif its a leaf node widget(doesnt contain any children)."))))}p.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return s}));var r=n(0),a=n.n(r),o=a.a.createContext({}),i=function(e){var t=a.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},c=function(e){var t=i(e.components);return a.a.createElement(o.Provider,{value:t},e.children)};var l="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},p=Object(r.forwardRef)((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===t.indexOf(r)&&(n[r]=e[r]);return n}(e,["components","mdxType","originalType","parentName"]),p=i(n),s=r,f=p[c+"."+s]||p[s]||u[s]||o;return n?a.a.createElement(f,Object.assign({},{ref:t},l,{components:n})):a.a.createElement(f,Object.assign({},{ref:t},l))}));function s(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=p;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[l]="string"==typeof e?e:r,i[1]=c;for(var s=2;s=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i={},c=[],l={rightToc:c},u="wrapper";function p(e){var t=e.components,n=o(e,["components"]);return Object(r.b)(u,a({},l,n,{components:t,mdxType:"MDXLayout"}),Object(r.b)("h1",{id:"common-errors"},"Common errors"),Object(r.b)("ol",null,Object(r.b)("li",{parentName:"ol"},Object(r.b)("p",{parentName:"li"},Object(r.b)("strong",{parentName:"p"},"Segmentation fault:")," Segmentation fault occurs when you access a Pointer that is pointing to an invalid memory address. One major reason for this can be that JS garbage collector would have garbage collected the addon generated value and you try accessing it after a while. This is mostly the case if you see seg fault happening randomly after some time of startup.")),Object(r.b)("li",{parentName:"ol"},Object(r.b)("p",{parentName:"li"},Object(r.b)("strong",{parentName:"p"},"Widget not visible in Flex layout")," Widget might have gotten zero height/width. This can occur if yoga was not able to get the default height/width of the widget. Make sure you have implemented",Object(r.b)("br",{parentName:"p"}),"\n",Object(r.b)("inlineCode",{parentName:"p"},"YGNodeSetMeasureFunc(this->instance->getFlexNode(), &extrautils::measureQtWidget);"),"\nif its a leaf node widget(doesnt contain any children)."))))}p.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return s}));var r=n(0),a=n.n(r),o=a.a.createContext({}),i=function(e){var t=a.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},c=function(e){var t=i(e.components);return a.a.createElement(o.Provider,{value:t},e.children)};var l="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},p=Object(r.forwardRef)((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===t.indexOf(r)&&(n[r]=e[r]);return n}(e,["components","mdxType","originalType","parentName"]),p=i(n),s=r,f=p[c+"."+s]||p[s]||u[s]||o;return n?a.a.createElement(f,Object.assign({},{ref:t},l,{components:n})):a.a.createElement(f,Object.assign({},{ref:t},l))}));function s(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=p;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[l]="string"==typeof e?e:r,i[1]=c;for(var s=2;s=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c={},i=[{value:"Debugging JS",id:"debugging-js",children:[]},{value:"Debugging C++",id:"debugging-c",children:[]}],u={rightToc:i},d="wrapper";function p(e){var n=e.components,t=o(e,["components"]);return Object(r.b)(d,a({},u,t,{components:n,mdxType:"MDXLayout"}),Object(r.b)("h1",{id:"debugging"},"debugging"),Object(r.b)("h2",{id:"debugging-js"},"Debugging JS"),Object(r.b)("p",null,"// TODO"),Object(r.b)("h2",{id:"debugging-c"},"Debugging C++"),Object(r.b)("p",null,Object(r.b)("a",a({parentName:"p"},{href:"https://medium.com/@atulanand94/debugging-nodejs-c-addons-using-vs-code-27e9940fc3ad"}),"https://medium.com/@atulanand94/debugging-nodejs-c-addons-using-vs-code-27e9940fc3ad")),Object(r.b)("p",null,Object(r.b)("a",a({parentName:"p"},{href:"https://medium.com/cameron-nokes/how-to-debug-native-node-addons-in-mac-osx-66f69f81afcb"}),"https://medium.com/cameron-nokes/how-to-debug-native-node-addons-in-mac-osx-66f69f81afcb")))}p.isMDXComponent=!0},161:function(e,n,t){"use strict";t.d(n,"a",(function(){return i})),t.d(n,"b",(function(){return g}));var r=t(0),a=t.n(r),o=a.a.createContext({}),c=function(e){var n=a.a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):Object.assign({},n,e)),t},i=function(e){var n=c(e.components);return a.a.createElement(o.Provider,{value:n},e.children)};var u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.a.createElement(a.a.Fragment,{},n)}},p=Object(r.forwardRef)((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,u=function(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===n.indexOf(r)&&(t[r]=e[r]);return t}(e,["components","mdxType","originalType","parentName"]),p=c(t),g=r,s=p[i+"."+g]||p[g]||d[g]||o;return t?a.a.createElement(s,Object.assign({},{ref:n},u,{components:t})):a.a.createElement(s,Object.assign({},{ref:n},u))}));function g(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,c=new Array(o);c[0]=p;var i={};for(var d in n)hasOwnProperty.call(n,d)&&(i[d]=n[d]);i.originalType=e,i[u]="string"==typeof e?e:r,c[1]=i;for(var g=2;g=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c={},i=[{value:"Debugging JS",id:"debugging-js",children:[]},{value:"Debugging C++",id:"debugging-c",children:[]}],u={rightToc:i},d="wrapper";function p(e){var n=e.components,t=o(e,["components"]);return Object(r.b)(d,a({},u,t,{components:n,mdxType:"MDXLayout"}),Object(r.b)("h1",{id:"debugging"},"debugging"),Object(r.b)("h2",{id:"debugging-js"},"Debugging JS"),Object(r.b)("p",null,"// TODO"),Object(r.b)("h2",{id:"debugging-c"},"Debugging C++"),Object(r.b)("p",null,Object(r.b)("a",a({parentName:"p"},{href:"https://medium.com/@atulanand94/debugging-nodejs-c-addons-using-vs-code-27e9940fc3ad"}),"https://medium.com/@atulanand94/debugging-nodejs-c-addons-using-vs-code-27e9940fc3ad")),Object(r.b)("p",null,Object(r.b)("a",a({parentName:"p"},{href:"https://medium.com/cameron-nokes/how-to-debug-native-node-addons-in-mac-osx-66f69f81afcb"}),"https://medium.com/cameron-nokes/how-to-debug-native-node-addons-in-mac-osx-66f69f81afcb")))}p.isMDXComponent=!0},161:function(e,n,t){"use strict";t.d(n,"a",(function(){return i})),t.d(n,"b",(function(){return g}));var r=t(0),a=t.n(r),o=a.a.createContext({}),c=function(e){var n=a.a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):Object.assign({},n,e)),t},i=function(e){var n=c(e.components);return a.a.createElement(o.Provider,{value:n},e.children)};var u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.a.createElement(a.a.Fragment,{},n)}},p=Object(r.forwardRef)((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,u=function(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===n.indexOf(r)&&(t[r]=e[r]);return t}(e,["components","mdxType","originalType","parentName"]),p=c(t),g=r,s=p[i+"."+g]||p[g]||d[g]||o;return t?a.a.createElement(s,Object.assign({},{ref:n},u,{components:t})):a.a.createElement(s,Object.assign({},{ref:n},u))}));function g(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,c=new Array(o);c[0]=p;var i={};for(var d in n)hasOwnProperty.call(n,d)&&(i[d]=n[d]);i.originalType=e,i[u]="string"==typeof e?e:r,c[1]=i;for(var g=2;g=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var r={},l=[{value:"Getting started",id:"getting-started",children:[]},{value:"Code Structure",id:"code-structure",children:[]},{value:"Wrapping a widget",id:"wrapping-a-widget",children:[]},{value:"Learning Materials",id:"learning-materials",children:[]}],s={rightToc:l},d="wrapper";function c(e){var t=e.components,n=o(e,["components"]);return Object(a.b)(d,i({},s,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("h2",{id:"getting-started"},"Getting started"),Object(a.b)("p",null,"This library aims to be a nodejs addon which can export Qt Widgets to the Javascript world. By doing so one can develop fully fledged cross platform native GUI applications using only Javascript."),Object(a.b)("p",null,"The library depends on ",Object(a.b)("inlineCode",{parentName:"p"},"qode")," which is a lightly modified version of NodeJS. The slight modification was needed to make it work with this addon. In essense, we will do ",Object(a.b)("inlineCode",{parentName:"p"},"qode your_file.js")," instead of ",Object(a.b)("inlineCode",{parentName:"p"},"node your_file.js"),"."),Object(a.b)("p",null,"Qode is inspired by this post by ",Object(a.b)("a",i({parentName:"p"},{href:"https://github.com/zcbenz"}),"Cheng Zhao"),": ",Object(a.b)("a",i({parentName:"p"},{href:"https://electronjs.org/blog/electron-internals-node-integration"}),"https://electronjs.org/blog/electron-internals-node-integration")),Object(a.b)("p",null,"This library does not modify Qt in any way and only use it as it is. This library also dynamically links to Qt. So it needs Qt libs to be installed in your system to work (This is done to keep in compliance with open source LGPL license of Qt). We can think of exporting the required libs later."),Object(a.b)("h2",{id:"code-structure"},"Code Structure"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{}),".\n├── binding.gyp\n├── config\n├── demo.ts\n├── package.json\n├── src\n│   ├── cpp <-- C++ source code\n│   └── lib <-- Typescript source code\n├── tsconfig.json\n└── yarn.lock\n")),Object(a.b)("p",null,"The main folder is ",Object(a.b)("inlineCode",{parentName:"p"},"src"),". It contains"),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"cpp")," : This folder contains all the C++ source code. Basically all the wrapper code using NAPI to export Qt Widgets and other helper functions to Javascript."),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"lib")," : This folder contains all the Typescript code of the library. This is used to add additonal helper methods and types to exported addon.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"Detailed version:")),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{}),".\n├── binding.gyp\n├── config\n│   ├── application.gypi\n│   ├── common.gypi\n│   └── yoga.gypi\n├── demo.ts\n├── package.json\n├── src\n│   ├── cpp\n│   │   ├── Extras\n│   │   ├── QtGui <------ All exported classes found inside Qts Gui dynamic library\n│   │   ├── QtWidgets <------ All exported classes found inside Qts Widgets dynamic library\n│   │   ├── core\n│   │   └── main.cpp\n│   └── lib\n│   ├── QtGui\n│   ├── QtWidgets\n│   └── core\n├── tsconfig.json\n└── yarn.lock\n\n")),Object(a.b)("p",null,"First step to seeing how everything works is to take a look at ",Object(a.b)("inlineCode",{parentName:"p"},"demo.ts")," file. This file is basically like a Kitchen application showcasing all the exported widgets currently with the library."),Object(a.b)("p",null,"Make sure you have read how to write native NodeJS Addons blog first. ",Object(a.b)("a",i({parentName:"p"},{href:"https://medium.com/@atulanand94/beginners-guide-to-writing-nodejs-addons-using-c-and-n-api-node-addon-api-9b3b718a9a7f"}),"https://medium.com/@atulanand94/beginners-guide-to-writing-nodejs-addons-using-c-and-n-api-node-addon-api-9b3b718a9a7f")),Object(a.b)("p",null,"Once you have done that check out ",Object(a.b)("inlineCode",{parentName:"p"},"src/cpp/main.cpp")," and ",Object(a.b)("inlineCode",{parentName:"p"},"config/application.gypi")," to see the list of exported C++ classes."),Object(a.b)("p",null,"Then maybe you can take a look at ",Object(a.b)("inlineCode",{parentName:"p"},"src/cpp/QtWidgets/QLabel/qlabel_wrap.h"),". This will show you how to wrap a simple Qt Widget.\nCheck the corresponding JS file for the addon here ",Object(a.b)("inlineCode",{parentName:"p"},"src/lib/QtWidgets/QLabel/index.ts"),"."),Object(a.b)("h2",{id:"wrapping-a-widget"},"Wrapping a widget"),Object(a.b)("p",null,"Create wrappers for each and every Qt class that you will use with N-API (using node-addon-api since it is c++) and export it onto JS side."),Object(a.b)("p",null,"Taking the example of QLabel, if you look inside the directory ",Object(a.b)("inlineCode",{parentName:"p"},"src/cpp/QtWidgets/QLabel"),", you should see:"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{}),"├── QLabel\n│   ├── nlabel.cpp\n│   ├── nlabel.h <---- Extended QLabel\n│   ├── nlabel_moc.cpp <--- Autogenerated file by qt moc.\n│   ├── qlabel_wrap.cpp\n│   └── qlabel_wrap.h <--- Wrapper file\n")),Object(a.b)("p",null,"The idea is :"),Object(a.b)("ol",null,Object(a.b)("li",{parentName:"ol"},"We will first extend QLabel class to form NLabel. NLabel is basically QLabel with some extra methods and variables. More on it below."),Object(a.b)("li",{parentName:"ol"},"Then we will use NLabel and wrap it using NAPI and export it to JS side. This is what qlabel_wrap does.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"NLabel"),": Since NLabel has inherited from QLabel we can treat is as QLabel with extra methods and properties. Primary reason to extend QLabel to create NLabel is to add support for Event listeners and CSS styling using Flex.\nSo if you take a look at NLabel you will see, it inherits from QLabel and NodeWidget. NodeWidget inturn inherits from YogaWidget and EventWidget. Event widget adds event handling support. YogaWidget is a class that contains the magic that enables a regular Qt Widget to have Yoga node. A Yoga node is an instance used by yoga library to calculate a widgets position on the screen. Yoga is a library that will layout the widget on the screen. To do so we will specify the flex properties like alignitems, justify content, margin, paddings etc on the Yoga node of the widget. Apart from adding yoga node, YogaWidget adds support for specifying those yoga properties via Qt's stylesheet. (This is done by using Q_PROPERTY). To make this work we need to use something called as Q_OBJECT inside the class which is a C++ macro. Q_OBJECT will be expanded to relevant code by the compiler. In Qt whenever we add Q_OBJECT to a header file, we need to use a pre compiler called Qt MOC (Meta Object Compiler). The way we use it is"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{}),"moc headername.h -o headername_moc.cpp --include // example : ../../core/YogaWidget/yogawidget.h\n")),Object(a.b)("p",null,"So for nlabel I would run it as:"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{}),"moc nlabel.h -o nlabel_moc.cpp --include ../../core/YogaWidget/yogawidget.h\n")),Object(a.b)("p",null,"This will run moc on ",Object(a.b)("inlineCode",{parentName:"p"},"headername.h")," and generate ",Object(a.b)("inlineCode",{parentName:"p"},"headername_moc.cpp"),". We will include ",Object(a.b)("inlineCode",{parentName:"p"},"headername_moc.cpp")," in ",Object(a.b)("inlineCode",{parentName:"p"},"config/moc.gypi"),". If you dont do this. Then it will give a symbol not found error."),Object(a.b)("p",null,"I hope QLabel's example is enough for now. For more examples and inspirations we can take a look at other wrapped widgets."),Object(a.b)("h2",{id:"learning-materials"},"Learning Materials"),Object(a.b)("ol",null,Object(a.b)("li",{parentName:"ol"},"Beginners guide to NodeJS Addon - ",Object(a.b)("a",i({parentName:"li"},{href:"https://medium.com/@atulanand94/beginners-guide-to-writing-nodejs-addons-using-c-and-n-api-node-addon-api-9b3b718a9a7f"}),"https://medium.com/@atulanand94/beginners-guide-to-writing-nodejs-addons-using-c-and-n-api-node-addon-api-9b3b718a9a7f")),Object(a.b)("li",{parentName:"ol"},"First read this: N-API in nodejs docs"),Object(a.b)("li",{parentName:"ol"},Object(a.b)("a",i({parentName:"li"},{href:"https://www.youtube.com/watch?v=-Oniup60Afs&feature=youtu.be"}),"https://www.youtube.com/watch?v=-Oniup60Afs&feature=youtu.be")),Object(a.b)("li",{parentName:"ol"},"See samples at ",Object(a.b)("a",i({parentName:"li"},{href:"https://github.com/nodejs/abi-stable-node-addon-examples/"}),"https://github.com/nodejs/abi-stable-node-addon-examples/"),"\n4.1. You can see the readme of ",Object(a.b)("a",i({parentName:"li"},{href:"https://github.com/nodejs/node-addon-api.git/"}),"https://github.com/nodejs/node-addon-api.git/")),Object(a.b)("li",{parentName:"ol"},"See node-qt implementation. It is implemented in Nan (explained in video)."),Object(a.b)("li",{parentName:"ol"},"Now try to match the implementation in node-qt and convert to N-API using examples from samples."),Object(a.b)("li",{parentName:"ol"},"Implementations not in node-qt need to be done with effort.")))}c.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return p}));var a=n(0),i=n.n(a),o=i.a.createContext({}),r=function(e){var t=i.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},l=function(e){var t=r(e.components);return i.a.createElement(o.Provider,{value:t},e.children)};var s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},c=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,s=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),c=r(n),p=a,b=c[l+"."+p]||c[p]||d[p]||o;return n?i.a.createElement(b,Object.assign({},{ref:t},s,{components:n})):i.a.createElement(b,Object.assign({},{ref:t},s))}));function p(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,r=new Array(o);r[0]=c;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[s]="string"==typeof e?e:a,r[1]=l;for(var p=2;p=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var r={},l=[{value:"Getting started",id:"getting-started",children:[]},{value:"Code Structure",id:"code-structure",children:[]},{value:"Wrapping a widget",id:"wrapping-a-widget",children:[]},{value:"Learning Materials",id:"learning-materials",children:[]}],s={rightToc:l},d="wrapper";function c(e){var t=e.components,n=o(e,["components"]);return Object(a.b)(d,i({},s,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("h2",{id:"getting-started"},"Getting started"),Object(a.b)("p",null,"This library aims to be a nodejs addon which can export Qt Widgets to the Javascript world. By doing so one can develop fully fledged cross platform native GUI applications using only Javascript."),Object(a.b)("p",null,"The library depends on ",Object(a.b)("inlineCode",{parentName:"p"},"qode")," which is a lightly modified version of NodeJS. The slight modification was needed to make it work with this addon. In essense, we will do ",Object(a.b)("inlineCode",{parentName:"p"},"qode your_file.js")," instead of ",Object(a.b)("inlineCode",{parentName:"p"},"node your_file.js"),"."),Object(a.b)("p",null,"Qode is inspired by this post by ",Object(a.b)("a",i({parentName:"p"},{href:"https://github.com/zcbenz"}),"Cheng Zhao"),": ",Object(a.b)("a",i({parentName:"p"},{href:"https://electronjs.org/blog/electron-internals-node-integration"}),"https://electronjs.org/blog/electron-internals-node-integration")),Object(a.b)("p",null,"This library does not modify Qt in any way and only use it as it is. This library also dynamically links to Qt. So it needs Qt libs to be installed in your system to work (This is done to keep in compliance with open source LGPL license of Qt). We can think of exporting the required libs later."),Object(a.b)("h2",{id:"code-structure"},"Code Structure"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{}),".\n├── binding.gyp\n├── config\n├── demo.ts\n├── package.json\n├── src\n│   ├── cpp <-- C++ source code\n│   └── lib <-- Typescript source code\n├── tsconfig.json\n└── yarn.lock\n")),Object(a.b)("p",null,"The main folder is ",Object(a.b)("inlineCode",{parentName:"p"},"src"),". It contains"),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"cpp")," : This folder contains all the C++ source code. Basically all the wrapper code using NAPI to export Qt Widgets and other helper functions to Javascript."),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"lib")," : This folder contains all the Typescript code of the library. This is used to add additonal helper methods and types to exported addon.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"Detailed version:")),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{}),".\n├── binding.gyp\n├── config\n│   ├── application.gypi\n│   ├── common.gypi\n│   └── yoga.gypi\n├── demo.ts\n├── package.json\n├── src\n│   ├── cpp\n│   │   ├── Extras\n│   │   ├── QtGui <------ All exported classes found inside Qts Gui dynamic library\n│   │   ├── QtWidgets <------ All exported classes found inside Qts Widgets dynamic library\n│   │   ├── core\n│   │   └── main.cpp\n│   └── lib\n│   ├── QtGui\n│   ├── QtWidgets\n│   └── core\n├── tsconfig.json\n└── yarn.lock\n\n")),Object(a.b)("p",null,"First step to seeing how everything works is to take a look at ",Object(a.b)("inlineCode",{parentName:"p"},"demo.ts")," file. This file is basically like a Kitchen application showcasing all the exported widgets currently with the library."),Object(a.b)("p",null,"Make sure you have read how to write native NodeJS Addons blog first. ",Object(a.b)("a",i({parentName:"p"},{href:"https://medium.com/@atulanand94/beginners-guide-to-writing-nodejs-addons-using-c-and-n-api-node-addon-api-9b3b718a9a7f"}),"https://medium.com/@atulanand94/beginners-guide-to-writing-nodejs-addons-using-c-and-n-api-node-addon-api-9b3b718a9a7f")),Object(a.b)("p",null,"Once you have done that check out ",Object(a.b)("inlineCode",{parentName:"p"},"src/cpp/main.cpp")," and ",Object(a.b)("inlineCode",{parentName:"p"},"config/application.gypi")," to see the list of exported C++ classes."),Object(a.b)("p",null,"Then maybe you can take a look at ",Object(a.b)("inlineCode",{parentName:"p"},"src/cpp/QtWidgets/QLabel/qlabel_wrap.h"),". This will show you how to wrap a simple Qt Widget.\nCheck the corresponding JS file for the addon here ",Object(a.b)("inlineCode",{parentName:"p"},"src/lib/QtWidgets/QLabel/index.ts"),"."),Object(a.b)("h2",{id:"wrapping-a-widget"},"Wrapping a widget"),Object(a.b)("p",null,"Create wrappers for each and every Qt class that you will use with N-API (using node-addon-api since it is c++) and export it onto JS side."),Object(a.b)("p",null,"Taking the example of QLabel, if you look inside the directory ",Object(a.b)("inlineCode",{parentName:"p"},"src/cpp/QtWidgets/QLabel"),", you should see:"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{}),"├── QLabel\n│   ├── nlabel.cpp\n│   ├── nlabel.h <---- Extended QLabel\n│   ├── nlabel_moc.cpp <--- Autogenerated file by qt moc.\n│   ├── qlabel_wrap.cpp\n│   └── qlabel_wrap.h <--- Wrapper file\n")),Object(a.b)("p",null,"The idea is :"),Object(a.b)("ol",null,Object(a.b)("li",{parentName:"ol"},"We will first extend QLabel class to form NLabel. NLabel is basically QLabel with some extra methods and variables. More on it below."),Object(a.b)("li",{parentName:"ol"},"Then we will use NLabel and wrap it using NAPI and export it to JS side. This is what qlabel_wrap does.")),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"NLabel"),": Since NLabel has inherited from QLabel we can treat is as QLabel with extra methods and properties. Primary reason to extend QLabel to create NLabel is to add support for Event listeners and CSS styling using Flex.\nSo if you take a look at NLabel you will see, it inherits from QLabel and NodeWidget. NodeWidget inturn inherits from YogaWidget and EventWidget. Event widget adds event handling support. YogaWidget is a class that contains the magic that enables a regular Qt Widget to have Yoga node. A Yoga node is an instance used by yoga library to calculate a widgets position on the screen. Yoga is a library that will layout the widget on the screen. To do so we will specify the flex properties like alignitems, justify content, margin, paddings etc on the Yoga node of the widget. Apart from adding yoga node, YogaWidget adds support for specifying those yoga properties via Qt's stylesheet. (This is done by using Q_PROPERTY). To make this work we need to use something called as Q_OBJECT inside the class which is a C++ macro. Q_OBJECT will be expanded to relevant code by the compiler. In Qt whenever we add Q_OBJECT to a header file, we need to use a pre compiler called Qt MOC (Meta Object Compiler). The way we use it is"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{}),"moc headername.h -o headername_moc.cpp --include // example : ../../core/YogaWidget/yogawidget.h\n")),Object(a.b)("p",null,"So for nlabel I would run it as:"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{}),"moc nlabel.h -o nlabel_moc.cpp --include ../../core/YogaWidget/yogawidget.h\n")),Object(a.b)("p",null,"This will run moc on ",Object(a.b)("inlineCode",{parentName:"p"},"headername.h")," and generate ",Object(a.b)("inlineCode",{parentName:"p"},"headername_moc.cpp"),". We will include ",Object(a.b)("inlineCode",{parentName:"p"},"headername_moc.cpp")," in ",Object(a.b)("inlineCode",{parentName:"p"},"config/moc.gypi"),". If you dont do this. Then it will give a symbol not found error."),Object(a.b)("p",null,"I hope QLabel's example is enough for now. For more examples and inspirations we can take a look at other wrapped widgets."),Object(a.b)("h2",{id:"learning-materials"},"Learning Materials"),Object(a.b)("ol",null,Object(a.b)("li",{parentName:"ol"},"Beginners guide to NodeJS Addon - ",Object(a.b)("a",i({parentName:"li"},{href:"https://medium.com/@atulanand94/beginners-guide-to-writing-nodejs-addons-using-c-and-n-api-node-addon-api-9b3b718a9a7f"}),"https://medium.com/@atulanand94/beginners-guide-to-writing-nodejs-addons-using-c-and-n-api-node-addon-api-9b3b718a9a7f")),Object(a.b)("li",{parentName:"ol"},"First read this: N-API in nodejs docs"),Object(a.b)("li",{parentName:"ol"},Object(a.b)("a",i({parentName:"li"},{href:"https://www.youtube.com/watch?v=-Oniup60Afs&feature=youtu.be"}),"https://www.youtube.com/watch?v=-Oniup60Afs&feature=youtu.be")),Object(a.b)("li",{parentName:"ol"},"See samples at ",Object(a.b)("a",i({parentName:"li"},{href:"https://github.com/nodejs/abi-stable-node-addon-examples/"}),"https://github.com/nodejs/abi-stable-node-addon-examples/"),"\n4.1. You can see the readme of ",Object(a.b)("a",i({parentName:"li"},{href:"https://github.com/nodejs/node-addon-api.git/"}),"https://github.com/nodejs/node-addon-api.git/")),Object(a.b)("li",{parentName:"ol"},"See node-qt implementation. It is implemented in Nan (explained in video)."),Object(a.b)("li",{parentName:"ol"},"Now try to match the implementation in node-qt and convert to N-API using examples from samples."),Object(a.b)("li",{parentName:"ol"},"Implementations not in node-qt need to be done with effort.")))}c.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return p}));var a=n(0),i=n.n(a),o=i.a.createContext({}),r=function(e){var t=i.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},l=function(e){var t=r(e.components);return i.a.createElement(o.Provider,{value:t},e.children)};var s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},c=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,s=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),c=r(n),p=a,b=c[l+"."+p]||c[p]||d[p]||o;return n?i.a.createElement(b,Object.assign({},{ref:t},s,{components:n})):i.a.createElement(b,Object.assign({},{ref:t},s))}));function p(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,r=new Array(o);r[0]=c;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[s]="string"==typeof e?e:a,r[1]=l;for(var p=2;p=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i={},p=[],l={rightToc:p},u="wrapper";function c(e){var t=e.components,n=o(e,["components"]);return Object(r.b)(u,a({},l,n,{components:t,mdxType:"MDXLayout"}),Object(r.b)("h1",{id:"contributors-guide"},"Contributor's guide"),Object(r.b)("p",null,"This guide is for everyone who want's to contribute to the development of NodeGui."),Object(r.b)("p",null,"Please make sure you have read the ",Object(r.b)("a",a({parentName:"p"},{href:"/"}),"User's guides")," before reading this guide."),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/setting-up"}),"Setting up the NodeGui Contributor's Environment"),Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/setting-up#macosx"}),"Setting up macOS")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/setting-up#windows"}),"Setting up Windows")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/setting-up#linux"}),"Setting up Linux")))),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/getting-started"}),"Getting started"),Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/getting-started#Code-Structure"}),"Code Structure")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/getting-started#Wrapping-a-widget"}),"Wrapping a widget: TLDR version")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/getting-started#Learning-Materials"}),"Learning Materials")))),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/styling"}),"Styling"),Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/styling#painting"}),"Painting")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/styling#layout"}),"Layout")))),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/signal_and_event_handling"}),"Signal and Event Handling")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/debugging"}),"Debugging")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/common_errors"}),"Common Errors")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/wrapping_widgets"}),"Wrapping a Widget: Detailed")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"tutorial/support.md"}),"Getting Support"))),Object(r.b)("h1",{id:"where-to-start-or-how-can-you-help"},"Where to start or How can you help?"),Object(r.b)("p",null," You can follow the contributors guide above to get a gist."),Object(r.b)("p",null," It is fairly straightforward to get started. I would start with a project of my own and start adding missing functionalities."),Object(r.b)("p",null," Or simply put I would recommend you start by adding an unexported method to an existing widget."),Object(r.b)("p",null," ",Object(r.b)("strong",{parentName:"p"},"For example:")),Object(r.b)("p",null," You could add the corresponding Qt method to QProgressbar\n",Object(r.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qprogressbar.html#textVisible-prop"}),"https://doc.qt.io/qt-5/qprogressbar.html#textVisible-prop")," to get a grip on it."),Object(r.b)("p",null," This PR can be used as a guide"),Object(r.b)("p",null," ",Object(r.b)("a",a({parentName:"p"},{href:"https://github.com/nodegui/nodegui/issues/36"}),"https://github.com/nodegui/nodegui/issues/36")),Object(r.b)("p",null," ",Object(r.b)("a",a({parentName:"p"},{href:"https://github.com/nodegui/nodegui/pull/39"}),"https://github.com/nodegui/nodegui/pull/39")),Object(r.b)("p",null," You can also take a look at few bugs or the issue board here to know what you can pick up if you are out of ideas."),Object(r.b)("p",null," ",Object(r.b)("a",a({parentName:"p"},{href:"https://github.com/nodegui/nodegui/projects/"}),"https://github.com/nodegui/nodegui/projects/")),Object(r.b)("p",null," ",Object(r.b)("a",a({parentName:"p"},{href:"https://github.com/nodegui/react-nodegui/projects/"}),"https://github.com/nodegui/react-nodegui/projects/")))}c.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return b}));var r=n(0),a=n.n(r),o=a.a.createContext({}),i=function(e){var t=a.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},p=function(e){var t=i(e.components);return a.a.createElement(o.Provider,{value:t},e.children)};var l="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},c=Object(r.forwardRef)((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===t.indexOf(r)&&(n[r]=e[r]);return n}(e,["components","mdxType","originalType","parentName"]),c=i(n),b=r,s=c[p+"."+b]||c[b]||u[b]||o;return n?a.a.createElement(s,Object.assign({},{ref:t},l,{components:n})):a.a.createElement(s,Object.assign({},{ref:t},l))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=c;var p={};for(var u in t)hasOwnProperty.call(t,u)&&(p[u]=t[u]);p.originalType=e,p[l]="string"==typeof e?e:r,i[1]=p;for(var b=2;b=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i={},p=[],l={rightToc:p},c="wrapper";function u(e){var t=e.components,n=o(e,["components"]);return Object(r.b)(c,a({},l,n,{components:t,mdxType:"MDXLayout"}),Object(r.b)("h1",{id:"contributors-guide"},"Contributor's guide"),Object(r.b)("p",null,"This guide is for everyone who want's to contribute to the development of NodeGui."),Object(r.b)("p",null,"Please make sure you have read the ",Object(r.b)("a",a({parentName:"p"},{href:"/"}),"User's guides")," before reading this guide."),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/setting-up"}),"Setting up the NodeGui Contributor's Environment"),Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/setting-up#macosx"}),"Setting up macOS")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/setting-up#windows"}),"Setting up Windows")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/setting-up#linux"}),"Setting up Linux")))),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/getting-started"}),"Getting started"),Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/getting-started#Code-Structure"}),"Code Structure")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/getting-started#Wrapping-a-widget"}),"Wrapping a widget: TLDR version")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/getting-started#Learning-Materials"}),"Learning Materials")))),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/styling"}),"Styling"),Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/styling#painting"}),"Painting")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/styling#layout"}),"Layout")))),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/signal_and_event_handling"}),"Signal and Event Handling")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/debugging"}),"Debugging")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/common_errors"}),"Common Errors")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",a({parentName:"li"},{href:"/docs/development/wrapping_widgets"}),"Wrapping a Widget: Detailed"))),Object(r.b)("h1",{id:"where-to-start-or-how-can-you-help"},"Where to start or How can you help?"),Object(r.b)("p",null," You can follow the contributors guide above to get a gist."),Object(r.b)("p",null," It is fairly straightforward to get started. I would start with a project of my own and start adding missing functionalities."),Object(r.b)("p",null," Or simply put I would recommend you start by adding an unexported method to an existing widget."),Object(r.b)("p",null," ",Object(r.b)("strong",{parentName:"p"},"For example:")),Object(r.b)("p",null," You could add the corresponding Qt method to QProgressbar\n",Object(r.b)("a",a({parentName:"p"},{href:"https://doc.qt.io/qt-5/qprogressbar.html#textVisible-prop"}),"https://doc.qt.io/qt-5/qprogressbar.html#textVisible-prop")," to get a grip on it."),Object(r.b)("p",null," This PR can be used as a guide"),Object(r.b)("p",null," ",Object(r.b)("a",a({parentName:"p"},{href:"https://github.com/nodegui/nodegui/issues/36"}),"https://github.com/nodegui/nodegui/issues/36")),Object(r.b)("p",null," ",Object(r.b)("a",a({parentName:"p"},{href:"https://github.com/nodegui/nodegui/pull/39"}),"https://github.com/nodegui/nodegui/pull/39")),Object(r.b)("p",null," You can also take a look at few bugs or the issue board here to know what you can pick up if you are out of ideas."),Object(r.b)("p",null," ",Object(r.b)("a",a({parentName:"p"},{href:"https://github.com/nodegui/nodegui/projects/"}),"https://github.com/nodegui/nodegui/projects/")),Object(r.b)("p",null," ",Object(r.b)("a",a({parentName:"p"},{href:"https://github.com/nodegui/react-nodegui/projects/"}),"https://github.com/nodegui/react-nodegui/projects/")))}u.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return b}));var r=n(0),a=n.n(r),o=a.a.createContext({}),i=function(e){var t=a.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},p=function(e){var t=i(e.components);return a.a.createElement(o.Provider,{value:t},e.children)};var l="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},u=Object(r.forwardRef)((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===t.indexOf(r)&&(n[r]=e[r]);return n}(e,["components","mdxType","originalType","parentName"]),u=i(n),b=r,s=u[p+"."+b]||u[b]||c[b]||o;return n?a.a.createElement(s,Object.assign({},{ref:t},l,{components:n})):a.a.createElement(s,Object.assign({},{ref:t},l))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=u;var p={};for(var c in t)hasOwnProperty.call(t,c)&&(p[c]=t[c]);p.originalType=e,p[l]="string"==typeof e?e:r,i[1]=p;for(var b=2;b=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i={},l=[{value:"Development setup and getting started",id:"development-setup-and-getting-started",children:[{value:"MacOSX:",id:"macosx",children:[]},{value:"Windows:",id:"windows",children:[]},{value:"Linux:",id:"linux",children:[]},{value:"Common:",id:"common",children:[]}]}],c={rightToc:l},p="wrapper";function b(e){var t=e.components,n=r(e,["components"]);return Object(a.b)(p,o({},c,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("h1",{id:"setup-project-for-development"},"Setup project for development"),Object(a.b)("h2",{id:"development-setup-and-getting-started"},"Development setup and getting started"),Object(a.b)("p",null,"Make sure you follow the setup guide of ",Object(a.b)("a",o({parentName:"p"},{href:"https://github.com/nodegui/qode"}),"Qode")," so that you have a build environment ready for Qode."),Object(a.b)("h3",{id:"macosx"},"MacOSX:"),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"Requirements")),Object(a.b)("ol",null,Object(a.b)("li",{parentName:"ol"},"Node version: > 11"),Object(a.b)("li",{parentName:"ol"},"CMake 3.1 and up (Installation instructions can be found here: ",Object(a.b)("a",o({parentName:"li"},{href:"https://cmake.org/install/"}),"https://cmake.org/install/"),")"),Object(a.b)("li",{parentName:"ol"},"Make, GCC v7"),Object(a.b)("li",{parentName:"ol"},"Qt (",Object(a.b)("em",{parentName:"li"},"Optional"),"): Make sure you followed the setup instructions from ",Object(a.b)("a",o({parentName:"li"},{href:"https://github.com/nodegui/qode"}),"Qode"))),Object(a.b)("h3",{id:"windows"},"Windows:"),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"Requirements")),Object(a.b)("ol",null,Object(a.b)("li",{parentName:"ol"},"Node version: > 11"),Object(a.b)("li",{parentName:"ol"},"CMake 3.1 and up (Installation instructions can be found here: ",Object(a.b)("a",o({parentName:"li"},{href:"https://cmake.org/install/"}),"https://cmake.org/install/"),")"),Object(a.b)("li",{parentName:"ol"},"Visual Studio Community 2017"),Object(a.b)("li",{parentName:"ol"},"Powershell"),Object(a.b)("li",{parentName:"ol"},"Qt (",Object(a.b)("em",{parentName:"li"},"Optional"),"): Make sure you followed the setup instructions from ",Object(a.b)("a",o({parentName:"li"},{href:"https://github.com/nodegui/qode"}),"Qode"))),Object(a.b)("h3",{id:"linux"},"Linux:"),Object(a.b)("p",null,"Supported versions: Ubuntu 17.10 and up"),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"Requirements")),Object(a.b)("ol",null,Object(a.b)("li",{parentName:"ol"},"Node version: > 11"),Object(a.b)("li",{parentName:"ol"},"CMake 3.1 and up (Installation instructions can be found here: ",Object(a.b)("a",o({parentName:"li"},{href:"https://cmake.org/install/"}),"https://cmake.org/install/"),")"),Object(a.b)("li",{parentName:"ol"},"Make, GCC v7, pkg-config"),Object(a.b)("li",{parentName:"ol"},"Qt (",Object(a.b)("em",{parentName:"li"},"Optional"),"): Make sure you followed the setup instructions from ",Object(a.b)("a",o({parentName:"li"},{href:"https://github.com/nodegui/qode"}),"Qode"))),Object(a.b)("p",null,"On Ubuntu: ",Object(a.b)("inlineCode",{parentName:"p"},"$ sudo apt-get install pkg-config build-essentials")," should install everything except Qt5."),Object(a.b)("p",null,"Note: If you are using your own version of Qt make sure to"),Object(a.b)("p",null,Object(a.b)("inlineCode",{parentName:"p"},'export PKG_CONFIG_PATH="/5.13.0/gcc_64/lib/pkgconfig"')),Object(a.b)("h3",{id:"common"},"Common:"),Object(a.b)("ol",null,Object(a.b)("li",{parentName:"ol"},"Once you have setup the platform specific stuff as mentioned above, follow these:"),Object(a.b)("li",{parentName:"ol"},Object(a.b)("inlineCode",{parentName:"li"},"git clone")," this repo."),Object(a.b)("li",{parentName:"ol"},Object(a.b)("inlineCode",{parentName:"li"},"yarn install")),Object(a.b)("li",{parentName:"ol"},Object(a.b)("inlineCode",{parentName:"li"},"yarn build:addon")),Object(a.b)("li",{parentName:"ol"},Object(a.b)("inlineCode",{parentName:"li"},"yarn dev"))),Object(a.b)("p",null,"If you want to run with your own version of Qt make sure to pass qt_home_dir variable when building addon."),Object(a.b)("p",null,Object(a.b)("inlineCode",{parentName:"p"},"npm run rebuild:addon [--qt_home_dir=/path/to/qt]")))}b.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return u}));var a=n(0),o=n.n(a),r=o.a.createContext({}),i=function(e){var t=o.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},l=function(e){var t=i(e.components);return o.a.createElement(r.Provider,{value:t},e.children)};var c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},b=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,c=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),b=i(n),u=a,s=b[l+"."+u]||b[u]||p[u]||r;return n?o.a.createElement(s,Object.assign({},{ref:t},c,{components:n})):o.a.createElement(s,Object.assign({},{ref:t},c))}));function u(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=b;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var u=2;u=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i={},l=[{value:"Development setup and getting started",id:"development-setup-and-getting-started",children:[{value:"MacOSX:",id:"macosx",children:[]},{value:"Windows:",id:"windows",children:[]},{value:"Linux:",id:"linux",children:[]},{value:"Common:",id:"common",children:[]}]}],c={rightToc:l},p="wrapper";function b(e){var t=e.components,n=r(e,["components"]);return Object(a.b)(p,o({},c,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("h1",{id:"setup-project-for-development"},"Setup project for development"),Object(a.b)("h2",{id:"development-setup-and-getting-started"},"Development setup and getting started"),Object(a.b)("p",null,"Make sure you follow the setup guide of ",Object(a.b)("a",o({parentName:"p"},{href:"https://github.com/nodegui/qode"}),"Qode")," so that you have a build environment ready for Qode."),Object(a.b)("h3",{id:"macosx"},"MacOSX:"),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"Requirements")),Object(a.b)("ol",null,Object(a.b)("li",{parentName:"ol"},"Node version: > 11"),Object(a.b)("li",{parentName:"ol"},"CMake 3.1 and up (Installation instructions can be found here: ",Object(a.b)("a",o({parentName:"li"},{href:"https://cmake.org/install/"}),"https://cmake.org/install/"),")"),Object(a.b)("li",{parentName:"ol"},"Make, GCC v7"),Object(a.b)("li",{parentName:"ol"},"Qt (",Object(a.b)("em",{parentName:"li"},"Optional"),"): Make sure you followed the setup instructions from ",Object(a.b)("a",o({parentName:"li"},{href:"https://github.com/nodegui/qode"}),"Qode"))),Object(a.b)("h3",{id:"windows"},"Windows:"),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"Requirements")),Object(a.b)("ol",null,Object(a.b)("li",{parentName:"ol"},"Node version: > 11"),Object(a.b)("li",{parentName:"ol"},"CMake 3.1 and up (Installation instructions can be found here: ",Object(a.b)("a",o({parentName:"li"},{href:"https://cmake.org/install/"}),"https://cmake.org/install/"),")"),Object(a.b)("li",{parentName:"ol"},"Visual Studio Community 2017"),Object(a.b)("li",{parentName:"ol"},"Powershell"),Object(a.b)("li",{parentName:"ol"},"Qt (",Object(a.b)("em",{parentName:"li"},"Optional"),"): Make sure you followed the setup instructions from ",Object(a.b)("a",o({parentName:"li"},{href:"https://github.com/nodegui/qode"}),"Qode"))),Object(a.b)("h3",{id:"linux"},"Linux:"),Object(a.b)("p",null,"Supported versions: Ubuntu 17.10 and up"),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"Requirements")),Object(a.b)("ol",null,Object(a.b)("li",{parentName:"ol"},"Node version: > 11"),Object(a.b)("li",{parentName:"ol"},"CMake 3.1 and up (Installation instructions can be found here: ",Object(a.b)("a",o({parentName:"li"},{href:"https://cmake.org/install/"}),"https://cmake.org/install/"),")"),Object(a.b)("li",{parentName:"ol"},"Make, GCC v7, pkg-config"),Object(a.b)("li",{parentName:"ol"},"Qt (",Object(a.b)("em",{parentName:"li"},"Optional"),"): Make sure you followed the setup instructions from ",Object(a.b)("a",o({parentName:"li"},{href:"https://github.com/nodegui/qode"}),"Qode"))),Object(a.b)("p",null,"On Ubuntu: ",Object(a.b)("inlineCode",{parentName:"p"},"$ sudo apt-get install pkg-config build-essentials")," should install everything except Qt5."),Object(a.b)("p",null,"Note: If you are using your own version of Qt make sure to"),Object(a.b)("p",null,Object(a.b)("inlineCode",{parentName:"p"},'export PKG_CONFIG_PATH="/5.13.0/gcc_64/lib/pkgconfig"')),Object(a.b)("h3",{id:"common"},"Common:"),Object(a.b)("ol",null,Object(a.b)("li",{parentName:"ol"},"Once you have setup the platform specific stuff as mentioned above, follow these:"),Object(a.b)("li",{parentName:"ol"},Object(a.b)("inlineCode",{parentName:"li"},"git clone")," this repo."),Object(a.b)("li",{parentName:"ol"},Object(a.b)("inlineCode",{parentName:"li"},"yarn install")),Object(a.b)("li",{parentName:"ol"},Object(a.b)("inlineCode",{parentName:"li"},"yarn build:addon")),Object(a.b)("li",{parentName:"ol"},Object(a.b)("inlineCode",{parentName:"li"},"yarn dev"))),Object(a.b)("p",null,"If you want to run with your own version of Qt make sure to pass qt_home_dir variable when building addon."),Object(a.b)("p",null,Object(a.b)("inlineCode",{parentName:"p"},"npm run rebuild:addon [--qt_home_dir=/path/to/qt]")))}b.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return u}));var a=n(0),o=n.n(a),r=o.a.createContext({}),i=function(e){var t=o.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},l=function(e){var t=i(e.components);return o.a.createElement(r.Provider,{value:t},e.children)};var c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},b=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,c=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),b=i(n),u=a,s=b[l+"."+u]||b[u]||p[u]||r;return n?o.a.createElement(s,Object.assign({},{ref:t},c,{components:n})):o.a.createElement(s,Object.assign({},{ref:t},c))}));function u(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=b;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var u=2;u=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s={},r=[],l={rightToc:r},c="wrapper";function d(e){var t=e.components,n=a(e,["components"]);return Object(i.b)(c,o({},l,n,{components:t,mdxType:"MDXLayout"}),Object(i.b)("h1",{id:"event-handling"},"Event handling"),Object(i.b)("p",null,"In Qt you can respond to an external event like a key press via event handling. Events always are processed by the event loop. Alongside events Qt also has a concept of Signals/Slots. Signals and slots are used to primarily communicate between widgets (more precisely QObjects). So the most common way of interacting between Qt Widgets is done through signals/slots. (More details here: ",Object(i.b)("a",o({parentName:"p"},{href:"https://doc.qt.io/qt-5/signalsandslots.html"}),"https://doc.qt.io/qt-5/signalsandslots.html"),"). Hence we would be implementing support for both events and signals."),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Technicals:")),Object(i.b)("blockquote",null,Object(i.b)("p",{parentName:"blockquote"},'An event is a message encapsulated in a class (QEvent) which is processed in an event loop and dispatched to a recipient that can either accept the message or pass it along to others to process. They are usually created in response to external system events like mouse clicks.\nSignals and Slots are a convenient way for QObjects to communicate with one another and are more similar to callback functions. In most circumstances, when a "signal" is emitted, any slot function connected to it is called directly. The exception is when signals and slots cross thread boundaries. In this case, the signal will essentially be converted into an event.')),Object(i.b)("h1",{id:"implementing-signal-handling"},"Implementing Signal handling"),Object(i.b)("p",null,"In Qt signals and slots are used to communicate between different qt widgets. So they can be used to implement things like\nonClick, onHover etc."),Object(i.b)("p",null,"The way Qt Signals work is explained here:"),Object(i.b)("p",null,Object(i.b)("a",o({parentName:"p"},{href:"https://doc.qt.io/qt-5/signalsandslots.html"}),"https://doc.qt.io/qt-5/signalsandslots.html")),Object(i.b)("p",null,"The way you use them in Qt for a PushButton is explained here:\n",Object(i.b)("a",o({parentName:"p"},{href:"https://wiki.qt.io/How_to_Use_QPushButton#Signals"}),"https://wiki.qt.io/How_to_Use_QPushButton#Signals")),Object(i.b)("h1",{id:"adding-signalevent-handling-support-to-a-nodewidget"},"Adding signal/event handling support to a NodeWidget"),Object(i.b)("p",null,"We will take the example of PushButton"),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Javascript")),Object(i.b)("p",null,"Steps:"),Object(i.b)("p",null,"The widget should inherit from ",Object(i.b)("inlineCode",{parentName:"p"},"NodeWidget"),". NodeWidget inherits from EventWidget internally. EventWidget constructor needs native object while initialising. So arrange your code such that native object gets initialised before calling ",Object(i.b)("inlineCode",{parentName:"p"},"super(native)"),"."),Object(i.b)("p",null,"EventWidget adds ",Object(i.b)("inlineCode",{parentName:"p"},"addEventListener")," method to the widget which can be called\nlike this:"),Object(i.b)("pre",null,Object(i.b)("code",o({parentName:"pre"},{className:"language-js"}),'button.addEventListener("clicked", () => {\n console.log("clicked");\n});\n')),Object(i.b)("p",null,"To help the user know what all signals/events are supported, export an enum like ",Object(i.b)("inlineCode",{parentName:"p"},"QPushButtonEvents")," as shown below."),Object(i.b)("p",null,"So the user can then use it as below:"),Object(i.b)("pre",null,Object(i.b)("code",o({parentName:"pre"},{className:"language-js"}),'button.addEventListener(QPushButtonEvents.clicked, () => {\n console.log("clicked");\n});\n')),Object(i.b)("p",null,"Example:"),Object(i.b)("pre",null,Object(i.b)("code",o({parentName:"pre"},{className:"language-js"}),'import addon from "../../core/addon";\nimport { NodeWidget } from "../../QtGui/QWidget";\nimport { BaseWidgetEvents } from "../../core/EventWidget";\n\nexport const QPushButtonEvents = Object.freeze({\n ...BaseWidgetEvents,\n clicked: "clicked",\n pressed: "pressed",\n released: "released",\n toggled: "toggled"\n});\n\nexport class QPushButton extends NodeWidget {\n native: NativeElement;\n constructor(parent?: NodeWidget) {\n let native;\n if (parent) {\n native = new addon.QPushButton(parent.native);\n } else {\n native = new addon.QPushButton();\n }\n super(native);\n this.parent = parent;\n this.native = native;\n // bind member functions\n this.setText.bind(this);\n }\n\n setText(text: string | number) {\n this.native.setText(`${text}`);\n }\n}\n')),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"C++")),Object(i.b)("p",null,"Steps:"),Object(i.b)("ol",null,Object(i.b)("li",{parentName:"ol"},Object(i.b)("inlineCode",{parentName:"li"},"NPushButton"))),Object(i.b)("p",null,"Inherit from both QPushButton and NodeWidget. Make sure you have added NODEWIDGET_IMPLEMENTATIONS macro. This adds a crucial method for events support. It will override ",Object(i.b)("inlineCode",{parentName:"p"},"event(QEvent *)")," method of QPushbutton so that nodejs can listen to the events of this widget. This makes sure we convert all the QEvent's of this widget to an event for the nodejs event emitter."),Object(i.b)("p",null,"Also make sure to connect all the signals of the widgets to the event emitter instance from NodeJS. This way we kindof convert the signal to a simple nodejs event."),Object(i.b)("pre",null,Object(i.b)("code",o({parentName:"pre"},{className:"language-cpp"}),'#pragma once\n\n#include \n#include "src/cpp/core/NodeWidget/nodewidget.h"\n#include "napi.h"\n\nclass NPushButton: public QPushButton, public NodeWidget\n{\n NODEWIDGET_IMPLEMENTATIONS(QPushButton)\npublic:\n using QPushButton::QPushButton; //inherit all constructors of QPushButton\n\n // override this method and implement all signals here\n void connectWidgetSignalsToEventEmitter() {\n // Qt Connects: Implement all signal connects here\n QObject::connect(this, &QPushButton::clicked, [=](bool checked) {\n Napi::Env env = this->emitOnNode.Env();\n Napi::HandleScope scope(env);\n this->emitOnNode.Call({ Napi::String::New(env, "clicked"), Napi::Value::From(env, checked) });\n });\n QObject::connect(this, &QPushButton::released, [=]() {\n Napi::Env env = this->emitOnNode.Env();\n Napi::HandleScope scope(env);\n this->emitOnNode.Call({ Napi::String::New(env, "released") });\n });\n QObject::connect(this, &QPushButton::pressed, [=]() {\n Napi::Env env = this->emitOnNode.Env();\n Napi::HandleScope scope(env);\n this->emitOnNode.Call({ Napi::String::New(env, "pressed") });\n });\n QObject::connect(this, &QPushButton::toggled, [=](bool checked) {\n Napi::Env env = this->emitOnNode.Env();\n Napi::HandleScope scope(env);\n this->emitOnNode.Call({ Napi::String::New(env, "toggled"), Napi::Value::From(env, checked) });\n });\n }\n};\n\n')),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Additional")),Object(i.b)("p",null,"Make sure ",Object(i.b)("inlineCode",{parentName:"p"},"npushbutton.h")," is added to ",Object(i.b)("inlineCode",{parentName:"p"},"config/moc.json"),".\nAnd run ",Object(i.b)("inlineCode",{parentName:"p"},"npm run automoc")," before running ",Object(i.b)("inlineCode",{parentName:"p"},"npm run build:addon")),Object(i.b)("p",null,"We need to run Qt's MOC (Meta Object Compiler) on the file whenever we use Q_OBJECT in a class or use QObject::connect. This is so that Qt can expand the macros and add necessary implementations to our class."),Object(i.b)("h1",{id:"how-does-it-work-"},"How does it work ?"),Object(i.b)("ol",null,Object(i.b)("li",{parentName:"ol"},"On JS side for each widget instance we create an instance of NodeJS's Event Emitter. This is done by the class ",Object(i.b)("inlineCode",{parentName:"li"},"EventWidget")," from which ",Object(i.b)("inlineCode",{parentName:"li"},"NodeWidget")," inherits"),Object(i.b)("li",{parentName:"ol"},"We send this event emiiter's ",Object(i.b)("inlineCode",{parentName:"li"},"emit")," function to the C++ side by calling ",Object(i.b)("inlineCode",{parentName:"li"},"initNodeEventEmitter")," method and store a pointer to the event emitter's emit function using ",Object(i.b)("inlineCode",{parentName:"li"},"emitOnNode"),". initNodeEventEmitter function is added by a macro from EventWidget (c++). You can find the initNodeEventEmitter method with the event widget macros."),Object(i.b)("li",{parentName:"ol"},"We setup Qt's connect method for all the signals that we want to listen to and call the emitOnNode (which is actually emit from Event emitter) whenever a signal arrives. This is done manually on every widget by overriding the method ",Object(i.b)("inlineCode",{parentName:"li"},"connectWidgetSignalsToEventEmitter"),". Check ",Object(i.b)("inlineCode",{parentName:"li"},"npushbutton.h")," for details. This takes care of all the signals of the widgets. Now to export all qt events of the widget, we had overriden the widgets ",Object(i.b)("inlineCode",{parentName:"li"},"event(Event*)")," method to listen to events received by the widget and send it to the event emitter. This is done inside the EVENTWIDGET_IMPLEMENTATIONS macro")))}d.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return p}));var i=n(0),o=n.n(i),a=o.a.createContext({}),s=function(e){var t=o.a.useContext(a),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},r=function(e){var t=s(e.components);return o.a.createElement(a.Provider,{value:t},e.children)};var l="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},d=Object(i.forwardRef)((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,r=e.parentName,l=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&-1===t.indexOf(i)&&(n[i]=e[i]);return n}(e,["components","mdxType","originalType","parentName"]),d=s(n),p=i,u=d[r+"."+p]||d[p]||c[p]||a;return n?o.a.createElement(u,Object.assign({},{ref:t},l,{components:n})):o.a.createElement(u,Object.assign({},{ref:t},l))}));function p(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,s=new Array(a);s[0]=d;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r[l]="string"==typeof e?e:i,s[1]=r;for(var p=2;p=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s={},r=[],l={rightToc:r},c="wrapper";function d(e){var t=e.components,n=a(e,["components"]);return Object(i.b)(c,o({},l,n,{components:t,mdxType:"MDXLayout"}),Object(i.b)("h1",{id:"event-handling"},"Event handling"),Object(i.b)("p",null,"In Qt you can respond to an external event like a key press via event handling. Events always are processed by the event loop. Alongside events Qt also has a concept of Signals/Slots. Signals and slots are used to primarily communicate between widgets (more precisely QObjects). So the most common way of interacting between Qt Widgets is done through signals/slots. (More details here: ",Object(i.b)("a",o({parentName:"p"},{href:"https://doc.qt.io/qt-5/signalsandslots.html"}),"https://doc.qt.io/qt-5/signalsandslots.html"),"). Hence we would be implementing support for both events and signals."),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Technicals:")),Object(i.b)("blockquote",null,Object(i.b)("p",{parentName:"blockquote"},'An event is a message encapsulated in a class (QEvent) which is processed in an event loop and dispatched to a recipient that can either accept the message or pass it along to others to process. They are usually created in response to external system events like mouse clicks.\nSignals and Slots are a convenient way for QObjects to communicate with one another and are more similar to callback functions. In most circumstances, when a "signal" is emitted, any slot function connected to it is called directly. The exception is when signals and slots cross thread boundaries. In this case, the signal will essentially be converted into an event.')),Object(i.b)("h1",{id:"implementing-signal-handling"},"Implementing Signal handling"),Object(i.b)("p",null,"In Qt signals and slots are used to communicate between different qt widgets. So they can be used to implement things like\nonClick, onHover etc."),Object(i.b)("p",null,"The way Qt Signals work is explained here:"),Object(i.b)("p",null,Object(i.b)("a",o({parentName:"p"},{href:"https://doc.qt.io/qt-5/signalsandslots.html"}),"https://doc.qt.io/qt-5/signalsandslots.html")),Object(i.b)("p",null,"The way you use them in Qt for a PushButton is explained here:\n",Object(i.b)("a",o({parentName:"p"},{href:"https://wiki.qt.io/How_to_Use_QPushButton#Signals"}),"https://wiki.qt.io/How_to_Use_QPushButton#Signals")),Object(i.b)("h1",{id:"adding-signalevent-handling-support-to-a-nodewidget"},"Adding signal/event handling support to a NodeWidget"),Object(i.b)("p",null,"We will take the example of PushButton"),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Javascript")),Object(i.b)("p",null,"Steps:"),Object(i.b)("p",null,"The widget should inherit from ",Object(i.b)("inlineCode",{parentName:"p"},"NodeWidget"),". NodeWidget inherits from EventWidget internally. EventWidget constructor needs native object while initialising. So arrange your code such that native object gets initialised before calling ",Object(i.b)("inlineCode",{parentName:"p"},"super(native)"),"."),Object(i.b)("p",null,"EventWidget adds ",Object(i.b)("inlineCode",{parentName:"p"},"addEventListener")," method to the widget which can be called\nlike this:"),Object(i.b)("pre",null,Object(i.b)("code",o({parentName:"pre"},{className:"language-js"}),'button.addEventListener("clicked", () => {\n console.log("clicked");\n});\n')),Object(i.b)("p",null,"To help the user know what all signals/events are supported, export an enum like ",Object(i.b)("inlineCode",{parentName:"p"},"QPushButtonEvents")," as shown below."),Object(i.b)("p",null,"So the user can then use it as below:"),Object(i.b)("pre",null,Object(i.b)("code",o({parentName:"pre"},{className:"language-js"}),'button.addEventListener(QPushButtonEvents.clicked, () => {\n console.log("clicked");\n});\n')),Object(i.b)("p",null,"Example:"),Object(i.b)("pre",null,Object(i.b)("code",o({parentName:"pre"},{className:"language-js"}),'import addon from "../../core/addon";\nimport { NodeWidget } from "../../QtGui/QWidget";\nimport { BaseWidgetEvents } from "../../core/EventWidget";\n\nexport const QPushButtonEvents = Object.freeze({\n ...BaseWidgetEvents,\n clicked: "clicked",\n pressed: "pressed",\n released: "released",\n toggled: "toggled"\n});\n\nexport class QPushButton extends NodeWidget {\n native: NativeElement;\n constructor(parent?: NodeWidget) {\n let native;\n if (parent) {\n native = new addon.QPushButton(parent.native);\n } else {\n native = new addon.QPushButton();\n }\n super(native);\n this.parent = parent;\n this.native = native;\n // bind member functions\n this.setText.bind(this);\n }\n\n setText(text: string | number) {\n this.native.setText(`${text}`);\n }\n}\n')),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"C++")),Object(i.b)("p",null,"Steps:"),Object(i.b)("ol",null,Object(i.b)("li",{parentName:"ol"},Object(i.b)("inlineCode",{parentName:"li"},"NPushButton"))),Object(i.b)("p",null,"Inherit from both QPushButton and NodeWidget. Make sure you have added NODEWIDGET_IMPLEMENTATIONS macro. This adds a crucial method for events support. It will override ",Object(i.b)("inlineCode",{parentName:"p"},"event(QEvent *)")," method of QPushbutton so that nodejs can listen to the events of this widget. This makes sure we convert all the QEvent's of this widget to an event for the nodejs event emitter."),Object(i.b)("p",null,"Also make sure to connect all the signals of the widgets to the event emitter instance from NodeJS. This way we kindof convert the signal to a simple nodejs event."),Object(i.b)("pre",null,Object(i.b)("code",o({parentName:"pre"},{className:"language-cpp"}),'#pragma once\n\n#include \n#include "src/cpp/core/NodeWidget/nodewidget.h"\n#include "napi.h"\n\nclass NPushButton: public QPushButton, public NodeWidget\n{\n NODEWIDGET_IMPLEMENTATIONS(QPushButton)\npublic:\n using QPushButton::QPushButton; //inherit all constructors of QPushButton\n\n // override this method and implement all signals here\n void connectWidgetSignalsToEventEmitter() {\n // Qt Connects: Implement all signal connects here\n QObject::connect(this, &QPushButton::clicked, [=](bool checked) {\n Napi::Env env = this->emitOnNode.Env();\n Napi::HandleScope scope(env);\n this->emitOnNode.Call({ Napi::String::New(env, "clicked"), Napi::Value::From(env, checked) });\n });\n QObject::connect(this, &QPushButton::released, [=]() {\n Napi::Env env = this->emitOnNode.Env();\n Napi::HandleScope scope(env);\n this->emitOnNode.Call({ Napi::String::New(env, "released") });\n });\n QObject::connect(this, &QPushButton::pressed, [=]() {\n Napi::Env env = this->emitOnNode.Env();\n Napi::HandleScope scope(env);\n this->emitOnNode.Call({ Napi::String::New(env, "pressed") });\n });\n QObject::connect(this, &QPushButton::toggled, [=](bool checked) {\n Napi::Env env = this->emitOnNode.Env();\n Napi::HandleScope scope(env);\n this->emitOnNode.Call({ Napi::String::New(env, "toggled"), Napi::Value::From(env, checked) });\n });\n }\n};\n\n')),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Additional")),Object(i.b)("p",null,"Make sure ",Object(i.b)("inlineCode",{parentName:"p"},"npushbutton.h")," is added to ",Object(i.b)("inlineCode",{parentName:"p"},"config/moc.json"),".\nAnd run ",Object(i.b)("inlineCode",{parentName:"p"},"npm run automoc")," before running ",Object(i.b)("inlineCode",{parentName:"p"},"npm run build:addon")),Object(i.b)("p",null,"We need to run Qt's MOC (Meta Object Compiler) on the file whenever we use Q_OBJECT in a class or use QObject::connect. This is so that Qt can expand the macros and add necessary implementations to our class."),Object(i.b)("h1",{id:"how-does-it-work-"},"How does it work ?"),Object(i.b)("ol",null,Object(i.b)("li",{parentName:"ol"},"On JS side for each widget instance we create an instance of NodeJS's Event Emitter. This is done by the class ",Object(i.b)("inlineCode",{parentName:"li"},"EventWidget")," from which ",Object(i.b)("inlineCode",{parentName:"li"},"NodeWidget")," inherits"),Object(i.b)("li",{parentName:"ol"},"We send this event emiiter's ",Object(i.b)("inlineCode",{parentName:"li"},"emit")," function to the C++ side by calling ",Object(i.b)("inlineCode",{parentName:"li"},"initNodeEventEmitter")," method and store a pointer to the event emitter's emit function using ",Object(i.b)("inlineCode",{parentName:"li"},"emitOnNode"),". initNodeEventEmitter function is added by a macro from EventWidget (c++). You can find the initNodeEventEmitter method with the event widget macros."),Object(i.b)("li",{parentName:"ol"},"We setup Qt's connect method for all the signals that we want to listen to and call the emitOnNode (which is actually emit from Event emitter) whenever a signal arrives. This is done manually on every widget by overriding the method ",Object(i.b)("inlineCode",{parentName:"li"},"connectWidgetSignalsToEventEmitter"),". Check ",Object(i.b)("inlineCode",{parentName:"li"},"npushbutton.h")," for details. This takes care of all the signals of the widgets. Now to export all qt events of the widget, we had overriden the widgets ",Object(i.b)("inlineCode",{parentName:"li"},"event(Event*)")," method to listen to events received by the widget and send it to the event emitter. This is done inside the EVENTWIDGET_IMPLEMENTATIONS macro")))}d.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return p}));var i=n(0),o=n.n(i),a=o.a.createContext({}),s=function(e){var t=o.a.useContext(a),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},r=function(e){var t=s(e.components);return o.a.createElement(a.Provider,{value:t},e.children)};var l="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},d=Object(i.forwardRef)((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,r=e.parentName,l=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&-1===t.indexOf(i)&&(n[i]=e[i]);return n}(e,["components","mdxType","originalType","parentName"]),d=s(n),p=i,u=d[r+"."+p]||d[p]||c[p]||a;return n?o.a.createElement(u,Object.assign({},{ref:t},l,{components:n})):o.a.createElement(u,Object.assign({},{ref:t},l))}));function p(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,s=new Array(a);s[0]=d;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r[l]="string"==typeof e?e:i,s[1]=r;for(var p=2;p=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l={},r=[{value:"Painting",id:"painting",children:[]},{value:"Layout",id:"layout",children:[{value:"Implementation",id:"implementation",children:[]},{value:"FlexItem",id:"flexitem",children:[]},{value:"YogaWidget",id:"yogawidget",children:[]},{value:"NodeWidget",id:"nodewidget",children:[]}]}],s={rightToc:r},c="wrapper";function d(e){var t=e.components,n=o(e,["components"]);return Object(a.b)(c,i({},s,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("h1",{id:"how-styling-works"},"How styling works?"),Object(a.b)("p",null,"There are two parts to styling."),Object(a.b)("ol",null,Object(a.b)("li",{parentName:"ol"},"Layout"),Object(a.b)("li",{parentName:"ol"},"Painting : Colors, text color, etc")),Object(a.b)("h2",{id:"painting"},"Painting"),Object(a.b)("p",null,"The regular styles such as text color, font-size, font weight etc are achieved using Qt's stylesheet.\nWe just call Qt's setStyleSheet method on the native widget and pass in the styles as a string."),Object(a.b)("p",null,"This method is implemented as part of ",Object(a.b)("inlineCode",{parentName:"p"},"QWIDGET_WRAPPED_METHODS_DECLARATION")," in ",Object(a.b)("inlineCode",{parentName:"p"},"qwidget_macro.h"),".\nSo all widgets using this macro will get the setStyleSheet method."),Object(a.b)("h2",{id:"layout"},"Layout"),Object(a.b)("p",null,"Layouting is basically positioning widgets on the screen. It takes into account everything from margins, paddings, positions etc. Our main focus will be Flex layouting. For flex layout we are using yoga library from facebook. This is the same library used by React Native. Before looking at flaxlayout in this libarary I recommend browsing Yoga's C API doc here: ",Object(a.b)("inlineCode",{parentName:"p"},"deps/yoga/doc.md")),Object(a.b)("p",null,"In case ",Object(a.b)("inlineCode",{parentName:"p"},"nodegui"),". I have implemented a custom Qt layout by extending ",Object(a.b)("inlineCode",{parentName:"p"},"QLayout"),", hence Qt is able to take over automagically when window is resized or any other layouting event occurs.\nYou can find the implementation at ",Object(a.b)("inlineCode",{parentName:"p"},"src/cpp/core/FlexLayout/flexlayout.h"),"."),Object(a.b)("p",null,"The c++ api provided by this custom layout looks like this:"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{className:"language-cpp"})," // FlexLayout is a custom Layout built for QT. This layout will be used to layout qt widgets using facebook's yoga library.\n // Thus giving ability to layout Qt Widgets using Flexbox.\n // Usage:\n QWidget *container = new QWidget();\n YGNodeRef root = YGNodeNew();\n YGNodeRef child1 = YGNodeNew();\n YGNodeRef child2 = YGNodeNew();\n FlexLayout * flayout = new FlexLayout(container,root);\n// or FlexLayout * flayout = new FlexLayout(container);\n// or FlexLayout *flayout = new FlexLayout();\n\n flayout->addWidget(btn1, child1);\n flayout->addWidget(btn2, child2);\n\n")),Object(a.b)("p",null,"This layout is exported to Javascript side via ",Object(a.b)("inlineCode",{parentName:"p"},"src/cpp/core/FlexLayout/flexlayout_wrap.h")),Object(a.b)("p",null,"The JS Api looks like this:"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{className:"language-js"}),'const view = new QWidget(rootView);\n\nconst flayout = new FlexLayout(); // Create layout\nflayout.setFlexNode(view.getFlexNode()); // Set widget\'s flex as layout\'s flex node.\n\nview.setLayout(flayout); // set layout as view\'s layout\n\nconst label = new QLabel(view);\nlabel.setText("Hello12321");\n\nconst label2 = new QLabel(view);\nlabel2.setText("SECOND LABEL");\n\nflayout.addWidget(label2, label2.getFlexNode()); // Add child to layout\nflayout.addWidget(label, label.getFlexNode()); // Add child to layout\n')),Object(a.b)("h3",{id:"implementation"},"Implementation"),Object(a.b)("ol",null,Object(a.b)("li",{parentName:"ol"},Object(a.b)("p",{parentName:"li"},"Every widget that wants to use flex layout should extend from ",Object(a.b)("inlineCode",{parentName:"p"},"flexItem")," found at ",Object(a.b)("inlineCode",{parentName:"p"},"src/cpp/core/FlexLayout/flexitem.h"),".\nFor example, see ",Object(a.b)("inlineCode",{parentName:"p"},"nlabel.h")," at ",Object(a.b)("inlineCode",{parentName:"p"},"src/cpp/QtWidgets/QLabel/nlabel.h")),Object(a.b)("p",{parentName:"li"},"NLabel inherits from ",Object(a.b)("inlineCode",{parentName:"p"},"NodeWidget")," which inherits from ",Object(a.b)("inlineCode",{parentName:"p"},"YogaWidget")," which inturn inherits from ",Object(a.b)("inlineCode",{parentName:"p"},"FlexItem")),Object(a.b)("ul",{parentName:"li"},Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"FlexItem")," adds a YogaNode to every widget."),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"YogaWidget")," adds Yoga specific q-properties to the widget, which is useful to assign yoga properties via qstylesheet. More on this below."),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"NodeWidget")," adds layout support via ",Object(a.b)("inlineCode",{parentName:"li"},"YogaWidget")," and event handling support via ",Object(a.b)("inlineCode",{parentName:"li"},"EventWidget"))))),Object(a.b)("h3",{id:"flexitem"},"FlexItem"),Object(a.b)("p",null,"FlexItem : ",Object(a.b)("inlineCode",{parentName:"p"},"src/cpp/core/FlexLayout/flexitem.h")," add flexnode to each widget.\nFlexItem adds methods like getFlexNode."),Object(a.b)("h3",{id:"yogawidget"},"YogaWidget"),Object(a.b)("p",null,"Qt StyleSheet allows you to specify style properties just like in web. You could specify font-size, margin, padding, etc. Qt StyleSheet also allows custom style properties via Qt's q-property system."),Object(a.b)("p",null,"So in order to enable yoga based properties like alignItems, justifyContent, flex, etc via qt's stylesheet we\ndeclare and define q properties for each of those custom properties we want.\nThis allows us to use something like:"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{className:"language-js"}),"view.setStyleSheet(`\n background-color:green;\n qproperty-flex: 1;\n qproperty-alignItems: 'center';\n`);\n")),Object(a.b)("p",null,"Notice ",Object(a.b)("inlineCode",{parentName:"p"},"qproperty-")," prefix? These are the custom q-properties we defined in ",Object(a.b)("inlineCode",{parentName:"p"},"YogaWidget.h"),". We do not need to prefix ",Object(a.b)("inlineCode",{parentName:"p"},"qproperty-")," if a stylehsheet string is passed through ",Object(a.b)("inlineCode",{parentName:"p"},"StyleSheet.create()"),". StyleSheet.create has an autoprefixer which will do the right thing."),Object(a.b)("h3",{id:"nodewidget"},"NodeWidget"),Object(a.b)("p",null,"Every widget we implement should inherit from NodeWidget. This helps us add all the properties we want in the widgets via a single class. NodeWidget is the class that contains properties and methods shared by all widgets. This class allows us to add features to all widgets easily."))}d.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return p}));var a=n(0),i=n.n(a),o=i.a.createContext({}),l=function(e){var t=i.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},r=function(e){var t=l(e.components);return i.a.createElement(o.Provider,{value:t},e.children)};var s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},d=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,r=e.parentName,s=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),d=l(n),p=a,b=d[r+"."+p]||d[p]||c[p]||o;return n?i.a.createElement(b,Object.assign({},{ref:t},s,{components:n})):i.a.createElement(b,Object.assign({},{ref:t},s))}));function p(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r[s]="string"==typeof e?e:a,l[1]=r;for(var p=2;p=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l={},r=[{value:"Painting",id:"painting",children:[]},{value:"Layout",id:"layout",children:[{value:"Implementation",id:"implementation",children:[]},{value:"FlexItem",id:"flexitem",children:[]},{value:"YogaWidget",id:"yogawidget",children:[]},{value:"NodeWidget",id:"nodewidget",children:[]}]}],s={rightToc:r},c="wrapper";function d(e){var t=e.components,n=o(e,["components"]);return Object(a.b)(c,i({},s,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("h1",{id:"how-styling-works"},"How styling works?"),Object(a.b)("p",null,"There are two parts to styling."),Object(a.b)("ol",null,Object(a.b)("li",{parentName:"ol"},"Layout"),Object(a.b)("li",{parentName:"ol"},"Painting : Colors, text color, etc")),Object(a.b)("h2",{id:"painting"},"Painting"),Object(a.b)("p",null,"The regular styles such as text color, font-size, font weight etc are achieved using Qt's stylesheet.\nWe just call Qt's setStyleSheet method on the native widget and pass in the styles as a string."),Object(a.b)("p",null,"This method is implemented as part of ",Object(a.b)("inlineCode",{parentName:"p"},"QWIDGET_WRAPPED_METHODS_DECLARATION")," in ",Object(a.b)("inlineCode",{parentName:"p"},"qwidget_macro.h"),".\nSo all widgets using this macro will get the setStyleSheet method."),Object(a.b)("h2",{id:"layout"},"Layout"),Object(a.b)("p",null,"Layouting is basically positioning widgets on the screen. It takes into account everything from margins, paddings, positions etc. Our main focus will be Flex layouting. For flex layout we are using yoga library from facebook. This is the same library used by React Native. Before looking at flaxlayout in this libarary I recommend browsing Yoga's C API doc here: ",Object(a.b)("inlineCode",{parentName:"p"},"deps/yoga/doc.md")),Object(a.b)("p",null,"In case ",Object(a.b)("inlineCode",{parentName:"p"},"nodegui"),". I have implemented a custom Qt layout by extending ",Object(a.b)("inlineCode",{parentName:"p"},"QLayout"),", hence Qt is able to take over automagically when window is resized or any other layouting event occurs.\nYou can find the implementation at ",Object(a.b)("inlineCode",{parentName:"p"},"src/cpp/core/FlexLayout/flexlayout.h"),"."),Object(a.b)("p",null,"The c++ api provided by this custom layout looks like this:"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{className:"language-cpp"})," // FlexLayout is a custom Layout built for QT. This layout will be used to layout qt widgets using facebook's yoga library.\n // Thus giving ability to layout Qt Widgets using Flexbox.\n // Usage:\n QWidget *container = new QWidget();\n YGNodeRef root = YGNodeNew();\n YGNodeRef child1 = YGNodeNew();\n YGNodeRef child2 = YGNodeNew();\n FlexLayout * flayout = new FlexLayout(container,root);\n// or FlexLayout * flayout = new FlexLayout(container);\n// or FlexLayout *flayout = new FlexLayout();\n\n flayout->addWidget(btn1, child1);\n flayout->addWidget(btn2, child2);\n\n")),Object(a.b)("p",null,"This layout is exported to Javascript side via ",Object(a.b)("inlineCode",{parentName:"p"},"src/cpp/core/FlexLayout/flexlayout_wrap.h")),Object(a.b)("p",null,"The JS Api looks like this:"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{className:"language-js"}),'const view = new QWidget(rootView);\n\nconst flayout = new FlexLayout(); // Create layout\nflayout.setFlexNode(view.getFlexNode()); // Set widget\'s flex as layout\'s flex node.\n\nview.setLayout(flayout); // set layout as view\'s layout\n\nconst label = new QLabel(view);\nlabel.setText("Hello12321");\n\nconst label2 = new QLabel(view);\nlabel2.setText("SECOND LABEL");\n\nflayout.addWidget(label2, label2.getFlexNode()); // Add child to layout\nflayout.addWidget(label, label.getFlexNode()); // Add child to layout\n')),Object(a.b)("h3",{id:"implementation"},"Implementation"),Object(a.b)("ol",null,Object(a.b)("li",{parentName:"ol"},Object(a.b)("p",{parentName:"li"},"Every widget that wants to use flex layout should extend from ",Object(a.b)("inlineCode",{parentName:"p"},"flexItem")," found at ",Object(a.b)("inlineCode",{parentName:"p"},"src/cpp/core/FlexLayout/flexitem.h"),".\nFor example, see ",Object(a.b)("inlineCode",{parentName:"p"},"nlabel.h")," at ",Object(a.b)("inlineCode",{parentName:"p"},"src/cpp/QtWidgets/QLabel/nlabel.h")),Object(a.b)("p",{parentName:"li"},"NLabel inherits from ",Object(a.b)("inlineCode",{parentName:"p"},"NodeWidget")," which inherits from ",Object(a.b)("inlineCode",{parentName:"p"},"YogaWidget")," which inturn inherits from ",Object(a.b)("inlineCode",{parentName:"p"},"FlexItem")),Object(a.b)("ul",{parentName:"li"},Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"FlexItem")," adds a YogaNode to every widget."),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"YogaWidget")," adds Yoga specific q-properties to the widget, which is useful to assign yoga properties via qstylesheet. More on this below."),Object(a.b)("li",{parentName:"ul"},Object(a.b)("inlineCode",{parentName:"li"},"NodeWidget")," adds layout support via ",Object(a.b)("inlineCode",{parentName:"li"},"YogaWidget")," and event handling support via ",Object(a.b)("inlineCode",{parentName:"li"},"EventWidget"))))),Object(a.b)("h3",{id:"flexitem"},"FlexItem"),Object(a.b)("p",null,"FlexItem : ",Object(a.b)("inlineCode",{parentName:"p"},"src/cpp/core/FlexLayout/flexitem.h")," add flexnode to each widget.\nFlexItem adds methods like getFlexNode."),Object(a.b)("h3",{id:"yogawidget"},"YogaWidget"),Object(a.b)("p",null,"Qt StyleSheet allows you to specify style properties just like in web. You could specify font-size, margin, padding, etc. Qt StyleSheet also allows custom style properties via Qt's q-property system."),Object(a.b)("p",null,"So in order to enable yoga based properties like alignItems, justifyContent, flex, etc via qt's stylesheet we\ndeclare and define q properties for each of those custom properties we want.\nThis allows us to use something like:"),Object(a.b)("pre",null,Object(a.b)("code",i({parentName:"pre"},{className:"language-js"}),"view.setStyleSheet(`\n background-color:green;\n qproperty-flex: 1;\n qproperty-alignItems: 'center';\n`);\n")),Object(a.b)("p",null,"Notice ",Object(a.b)("inlineCode",{parentName:"p"},"qproperty-")," prefix? These are the custom q-properties we defined in ",Object(a.b)("inlineCode",{parentName:"p"},"YogaWidget.h"),". We do not need to prefix ",Object(a.b)("inlineCode",{parentName:"p"},"qproperty-")," if a stylehsheet string is passed through ",Object(a.b)("inlineCode",{parentName:"p"},"StyleSheet.create()"),". StyleSheet.create has an autoprefixer which will do the right thing."),Object(a.b)("h3",{id:"nodewidget"},"NodeWidget"),Object(a.b)("p",null,"Every widget we implement should inherit from NodeWidget. This helps us add all the properties we want in the widgets via a single class. NodeWidget is the class that contains properties and methods shared by all widgets. This class allows us to add features to all widgets easily."))}d.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return p}));var a=n(0),i=n.n(a),o=i.a.createContext({}),l=function(e){var t=i.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},r=function(e){var t=l(e.components);return i.a.createElement(o.Provider,{value:t},e.children)};var s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},d=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,r=e.parentName,s=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),d=l(n),p=a,b=d[r+"."+p]||d[p]||c[p]||o;return n?i.a.createElement(b,Object.assign({},{ref:t},s,{components:n})):i.a.createElement(b,Object.assign({},{ref:t},s))}));function p(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r[s]="string"==typeof e?e:a,l[1]=r;for(var p=2;p=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i={},c=[],p={rightToc:c},u="wrapper";function f(e){var n=e.components,r=a(e,["components"]);return Object(t.b)(u,o({},p,r,{components:n,mdxType:"MDXLayout"}),Object(t.b)("h1",{id:"exporting-a-new-method-from-a-widget"},"Exporting a new method from a widget"),Object(t.b)("h1",{id:"exporting-a-new-widget-from-scratch"},"Exporting a new widget from scratch"))}f.isMDXComponent=!0},161:function(e,n,r){"use strict";r.d(n,"a",(function(){return c})),r.d(n,"b",(function(){return l}));var t=r(0),o=r.n(t),a=o.a.createContext({}),i=function(e){var n=o.a.useContext(a),r=n;return e&&(r="function"==typeof e?e(n):Object.assign({},n,e)),r},c=function(e){var n=i(e.components);return o.a.createElement(a.Provider,{value:n},e.children)};var p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return o.a.createElement(o.a.Fragment,{},n)}},f=Object(t.forwardRef)((function(e,n){var r=e.components,t=e.mdxType,a=e.originalType,c=e.parentName,p=function(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&-1===n.indexOf(t)&&(r[t]=e[t]);return r}(e,["components","mdxType","originalType","parentName"]),f=i(r),l=t,s=f[c+"."+l]||f[l]||u[l]||a;return r?o.a.createElement(s,Object.assign({},{ref:n},p,{components:r})):o.a.createElement(s,Object.assign({},{ref:n},p))}));function l(e,n){var r=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var u in n)hasOwnProperty.call(n,u)&&(c[u]=n[u]);c.originalType=e,c[p]="string"==typeof e?e:t,i[1]=c;for(var l=2;l=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i={},c=[],p={rightToc:c},u="wrapper";function f(e){var n=e.components,r=a(e,["components"]);return Object(t.b)(u,o({},p,r,{components:n,mdxType:"MDXLayout"}),Object(t.b)("h1",{id:"exporting-a-new-method-from-a-widget"},"Exporting a new method from a widget"),Object(t.b)("h1",{id:"exporting-a-new-widget-from-scratch"},"Exporting a new widget from scratch"))}f.isMDXComponent=!0},161:function(e,n,r){"use strict";r.d(n,"a",(function(){return c})),r.d(n,"b",(function(){return l}));var t=r(0),o=r.n(t),a=o.a.createContext({}),i=function(e){var n=o.a.useContext(a),r=n;return e&&(r="function"==typeof e?e(n):Object.assign({},n,e)),r},c=function(e){var n=i(e.components);return o.a.createElement(a.Provider,{value:n},e.children)};var p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return o.a.createElement(o.a.Fragment,{},n)}},f=Object(t.forwardRef)((function(e,n){var r=e.components,t=e.mdxType,a=e.originalType,c=e.parentName,p=function(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&-1===n.indexOf(t)&&(r[t]=e[t]);return r}(e,["components","mdxType","originalType","parentName"]),f=i(r),l=t,s=f[c+"."+l]||f[l]||u[l]||a;return r?o.a.createElement(s,Object.assign({},{ref:n},p,{components:r})):o.a.createElement(s,Object.assign({},{ref:n},p))}));function l(e,n){var r=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var u in n)hasOwnProperty.call(n,u)&&(c[u]=n[u]);c.originalType=e,c[p]="string"==typeof e?e:t,i[1]=c;for(var l=2;l=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i={sidebar_label:"Custom NodeGui Plugin",title:"Custom NodeGui Plugin"},c=[],u={rightToc:c},p="wrapper";function l(e){var n=e.components,r=a(e,["components"]);return Object(t.b)(p,o({},u,r,{components:n,mdxType:"MDXLayout"}),Object(t.b)("p",null,"WIP"))}l.isMDXComponent=!0},161:function(e,n,r){"use strict";r.d(n,"a",(function(){return c})),r.d(n,"b",(function(){return f}));var t=r(0),o=r.n(t),a=o.a.createContext({}),i=function(e){var n=o.a.useContext(a),r=n;return e&&(r="function"==typeof e?e(n):Object.assign({},n,e)),r},c=function(e){var n=i(e.components);return o.a.createElement(a.Provider,{value:n},e.children)};var u="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return o.a.createElement(o.a.Fragment,{},n)}},l=Object(t.forwardRef)((function(e,n){var r=e.components,t=e.mdxType,a=e.originalType,c=e.parentName,u=function(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&-1===n.indexOf(t)&&(r[t]=e[t]);return r}(e,["components","mdxType","originalType","parentName"]),l=i(r),f=t,s=l[c+"."+f]||l[f]||p[f]||a;return r?o.a.createElement(s,Object.assign({},{ref:n},u,{components:r})):o.a.createElement(s,Object.assign({},{ref:n},u))}));function f(e,n){var r=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var a=r.length,i=new Array(a);i[0]=l;var c={};for(var p in n)hasOwnProperty.call(n,p)&&(c[p]=n[p]);c.originalType=e,c[u]="string"==typeof e?e:t,i[1]=c;for(var f=2;f=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i={sidebar_label:"Custom NodeGui Plugin",title:"Custom NodeGui Plugin"},c=[],u={rightToc:c},p="wrapper";function l(e){var n=e.components,r=a(e,["components"]);return Object(t.b)(p,o({},u,r,{components:n,mdxType:"MDXLayout"}),Object(t.b)("p",null,"WIP"))}l.isMDXComponent=!0},161:function(e,n,r){"use strict";r.d(n,"a",(function(){return c})),r.d(n,"b",(function(){return f}));var t=r(0),o=r.n(t),a=o.a.createContext({}),i=function(e){var n=o.a.useContext(a),r=n;return e&&(r="function"==typeof e?e(n):Object.assign({},n,e)),r},c=function(e){var n=i(e.components);return o.a.createElement(a.Provider,{value:n},e.children)};var u="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return o.a.createElement(o.a.Fragment,{},n)}},l=Object(t.forwardRef)((function(e,n){var r=e.components,t=e.mdxType,a=e.originalType,c=e.parentName,u=function(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&-1===n.indexOf(t)&&(r[t]=e[t]);return r}(e,["components","mdxType","originalType","parentName"]),l=i(r),f=t,s=l[c+"."+f]||l[f]||p[f]||a;return r?o.a.createElement(s,Object.assign({},{ref:n},u,{components:r})):o.a.createElement(s,Object.assign({},{ref:n},u))}));function f(e,n){var r=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var a=r.length,i=new Array(a);i[0]=l;var c={};for(var p in n)hasOwnProperty.call(n,p)&&(c[p]=n[p]);c.originalType=e,c[u]="string"==typeof e?e:t,i[1]=c;for(var f=2;f=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i={sidebar_label:"Debugging in VSCode",title:"Debugging in VSCode"},c=[],p={rightToc:c},u="wrapper";function l(e){var n=e.components,t=o(e,["components"]);return Object(r.b)(u,a({},p,t,{components:n,mdxType:"MDXLayout"}),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},Object(r.b)("strong",{parentName:"p"},"Open a NodeGui project in VSCode.")),Object(r.b)("pre",{parentName:"li"},Object(r.b)("code",a({parentName:"pre"},{className:"language-sh"}),"$ git clone git@github.com:nodegui/nodegui-starter.git\n$ code nodegui-starter\n"))),Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},Object(r.b)("strong",{parentName:"p"},"Add a file ",Object(r.b)("inlineCode",{parentName:"strong"},".vscode/launch.json")," with the following configuration:")),Object(r.b)("pre",{parentName:"li"},Object(r.b)("code",a({parentName:"pre"},{className:"language-json"}),'{\n "version": "0.2.0",\n "configurations": [\n {\n "name": "Debug Qode Process",\n "type": "node",\n "request": "launch",\n "cwd": "${workspaceRoot}",\n "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/qode",\n "windows": {\n "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/qode.exe"\n },\n "args": ["./dist/index.js"],\n "outputCapture": "std"\n }\n ]\n}\n')),Object(r.b)("p",{parentName:"li"},Object(r.b)("strong",{parentName:"p"},"Tip"),": You could also configure a preLaunchTask for building typescript before launching the debugger everytime.")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},Object(r.b)("strong",{parentName:"p"},"Debugging")),Object(r.b)("p",{parentName:"li"},"Set some breakpoints in ",Object(r.b)("inlineCode",{parentName:"p"},"index.js"),", and start debugging in the ",Object(r.b)("a",a({parentName:"p"},{href:"https://code.visualstudio.com/docs/editor/debugging"}),"Debug View"),". You should be able to hit the breakpoints."))))}l.isMDXComponent=!0},161:function(e,n,t){"use strict";t.d(n,"a",(function(){return c})),t.d(n,"b",(function(){return b}));var r=t(0),a=t.n(r),o=a.a.createContext({}),i=function(e){var n=a.a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):Object.assign({},n,e)),t},c=function(e){var n=i(e.components);return a.a.createElement(o.Provider,{value:n},e.children)};var p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.a.createElement(a.a.Fragment,{},n)}},l=Object(r.forwardRef)((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,p=function(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===n.indexOf(r)&&(t[r]=e[r]);return t}(e,["components","mdxType","originalType","parentName"]),l=i(t),b=r,s=l[c+"."+b]||l[b]||u[b]||o;return t?a.a.createElement(s,Object.assign({},{ref:n},p,{components:t})):a.a.createElement(s,Object.assign({},{ref:n},p))}));function b(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,i=new Array(o);i[0]=l;var c={};for(var u in n)hasOwnProperty.call(n,u)&&(c[u]=n[u]);c.originalType=e,c[p]="string"==typeof e?e:r,i[1]=c;for(var b=2;b=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i={sidebar_label:"Debugging in VSCode",title:"Debugging in VSCode"},c=[],p={rightToc:c},u="wrapper";function l(e){var n=e.components,t=o(e,["components"]);return Object(r.b)(u,a({},p,t,{components:n,mdxType:"MDXLayout"}),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},Object(r.b)("strong",{parentName:"p"},"Open a NodeGui project in VSCode.")),Object(r.b)("pre",{parentName:"li"},Object(r.b)("code",a({parentName:"pre"},{className:"language-sh"}),"$ git clone git@github.com:nodegui/nodegui-starter.git\n$ code nodegui-starter\n"))),Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},Object(r.b)("strong",{parentName:"p"},"Add a file ",Object(r.b)("inlineCode",{parentName:"strong"},".vscode/launch.json")," with the following configuration:")),Object(r.b)("pre",{parentName:"li"},Object(r.b)("code",a({parentName:"pre"},{className:"language-json"}),'{\n "version": "0.2.0",\n "configurations": [\n {\n "name": "Debug Qode Process",\n "type": "node",\n "request": "launch",\n "cwd": "${workspaceRoot}",\n "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/qode",\n "windows": {\n "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/qode.exe"\n },\n "args": ["./dist/index.js"],\n "outputCapture": "std"\n }\n ]\n}\n')),Object(r.b)("p",{parentName:"li"},Object(r.b)("strong",{parentName:"p"},"Tip"),": You could also configure a preLaunchTask for building typescript before launching the debugger everytime.")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},Object(r.b)("strong",{parentName:"p"},"Debugging")),Object(r.b)("p",{parentName:"li"},"Set some breakpoints in ",Object(r.b)("inlineCode",{parentName:"p"},"index.js"),", and start debugging in the ",Object(r.b)("a",a({parentName:"p"},{href:"https://code.visualstudio.com/docs/editor/debugging"}),"Debug View"),". You should be able to hit the breakpoints."))))}l.isMDXComponent=!0},161:function(e,n,t){"use strict";t.d(n,"a",(function(){return c})),t.d(n,"b",(function(){return b}));var r=t(0),a=t.n(r),o=a.a.createContext({}),i=function(e){var n=a.a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):Object.assign({},n,e)),t},c=function(e){var n=i(e.components);return a.a.createElement(o.Provider,{value:n},e.children)};var p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.a.createElement(a.a.Fragment,{},n)}},l=Object(r.forwardRef)((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,p=function(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===n.indexOf(r)&&(t[r]=e[r]);return t}(e,["components","mdxType","originalType","parentName"]),l=i(t),b=r,s=l[c+"."+b]||l[b]||u[b]||o;return t?a.a.createElement(s,Object.assign({},{ref:n},p,{components:t})):a.a.createElement(s,Object.assign({},{ref:n},p))}));function b(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,i=new Array(o);i[0]=l;var c={};for(var u in n)hasOwnProperty.call(n,u)&&(c[u]=n[u]);c.originalType=e,c[p]="string"==typeof e?e:r,i[1]=c;for(var b=2;b=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var a={sidebar_label:"Debugging",title:"Debugging"},c=[{value:"Application Debugging",id:"application-debugging",children:[]},{value:"Debugging Qode process",id:"debugging-qode-process",children:[{value:"Command Line Switches",id:"command-line-switches",children:[]},{value:"External Debuggers",id:"external-debuggers",children:[]}]}],p={rightToc:c},l="wrapper";function u(e){var n=e.components,t=i(e,["components"]);return Object(o.b)(l,r({},p,t,{components:n,mdxType:"MDXLayout"}),Object(o.b)("h2",{id:"application-debugging"},"Application Debugging"),Object(o.b)("p",null,"Whenever your NodeGui application is not behaving the way you wanted it to,\nan array of debugging tools might help you find coding errors, performance\nbottlenecks, or optimization opportunities."),Object(o.b)("p",null,"Since a NodeGui application runs on Qode. And Qode is essentially Node.Js. We can consider a NodeGui app as a regular NodeJs app. Hence, you can use any debugging tool that you use with Node.Js\nOne of the most popular way of debugging a Node.Js app is by making use of the ",Object(o.b)("a",r({parentName:"p"},{href:"https://nodejs.org/en/docs/inspector/"}),"Chromium Developer Tools"),"."),Object(o.b)("p",null,"Google offers ",Object(o.b)("a",r({parentName:"p"},{href:"https://developer.chrome.com/devtools"}),"excellent documentation for their developer tools"),".\nWe recommend that you make yourself familiar with them - they are usually one\nof the most powerful utilities in any NodeGui Developer's tool belt."),Object(o.b)("h2",{id:"debugging-qode-process"},"Debugging Qode process"),Object(o.b)("p",null,"To debug JavaScript that's executed in the Qode/Node process you will need to use an external debugger and\nlaunch Qode with the ",Object(o.b)("inlineCode",{parentName:"p"},"--inspect")," or ",Object(o.b)("inlineCode",{parentName:"p"},"--inspect-brk")," switch. Once you run it you can open up Chrome and visit ",Object(o.b)("inlineCode",{parentName:"p"},"chrome://inspect")," where you should see your app listed."),Object(o.b)("h3",{id:"command-line-switches"},"Command Line Switches"),Object(o.b)("p",null,"Use one of the following command line switches to enable debugging of the process:"),Object(o.b)("h4",{id:"--inspectport"},Object(o.b)("inlineCode",{parentName:"h4"},"--inspect=[port]")),Object(o.b)("p",null,"Qode will listen for V8 inspector protocol messages on the specified ",Object(o.b)("inlineCode",{parentName:"p"},"port"),",\nan external debugger will need to connect on this port. The default ",Object(o.b)("inlineCode",{parentName:"p"},"port")," is\n",Object(o.b)("inlineCode",{parentName:"p"},"9229"),"."),Object(o.b)("pre",null,Object(o.b)("code",r({parentName:"pre"},{className:"language-shell"}),"qode --inspect=9229 your/app\n")),Object(o.b)("h4",{id:"--inspect-brkport"},Object(o.b)("inlineCode",{parentName:"h4"},"--inspect-brk=[port]")),Object(o.b)("p",null,"Like ",Object(o.b)("inlineCode",{parentName:"p"},"--inspect")," but pauses execution on the first line of JavaScript."),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"Note")),Object(o.b)("p",null,"If you are using the official boilerplate ",Object(o.b)("inlineCode",{parentName:"p"},"nodegui-starter"),", then you can achieve this by running"),Object(o.b)("pre",null,Object(o.b)("code",r({parentName:"pre"},{}),"npm run debug\n")),Object(o.b)("h3",{id:"external-debuggers"},"External Debuggers"),Object(o.b)("p",null,"You will need to use a debugger that supports the V8 inspector protocol."),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"Connect Chrome by visiting ",Object(o.b)("inlineCode",{parentName:"li"},"chrome://inspect")," and selecting to inspect the\nlaunched NodeGui app present there."),Object(o.b)("li",{parentName:"ul"},Object(o.b)("a",r({parentName:"li"},{href:"/docs/guides/debugging-in-vscode"}),"Debugging the NodeGui app in VSCode"))))}u.isMDXComponent=!0},161:function(e,n,t){"use strict";t.d(n,"a",(function(){return c})),t.d(n,"b",(function(){return s}));var o=t(0),r=t.n(o),i=r.a.createContext({}),a=function(e){var n=r.a.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):Object.assign({},n,e)),t},c=function(e){var n=a(e.components);return r.a.createElement(i.Provider,{value:n},e.children)};var p="mdxType",l={inlineCode:"code",wrapper:function(e){var n=e.children;return r.a.createElement(r.a.Fragment,{},n)}},u=Object(o.forwardRef)((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,p=function(e,n){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===n.indexOf(o)&&(t[o]=e[o]);return t}(e,["components","mdxType","originalType","parentName"]),u=a(t),s=o,b=u[c+"."+s]||u[s]||l[s]||i;return t?r.a.createElement(b,Object.assign({},{ref:n},p,{components:t})):r.a.createElement(b,Object.assign({},{ref:n},p))}));function s(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=u;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[p]="string"==typeof e?e:o,a[1]=c;for(var s=2;s=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var a={sidebar_label:"Debugging",title:"Debugging"},c=[{value:"Application Debugging",id:"application-debugging",children:[]},{value:"Debugging Qode process",id:"debugging-qode-process",children:[{value:"Command Line Switches",id:"command-line-switches",children:[]},{value:"External Debuggers",id:"external-debuggers",children:[]}]}],p={rightToc:c},l="wrapper";function u(e){var n=e.components,t=i(e,["components"]);return Object(o.b)(l,r({},p,t,{components:n,mdxType:"MDXLayout"}),Object(o.b)("h2",{id:"application-debugging"},"Application Debugging"),Object(o.b)("p",null,"Whenever your NodeGui application is not behaving the way you wanted it to,\nan array of debugging tools might help you find coding errors, performance\nbottlenecks, or optimization opportunities."),Object(o.b)("p",null,"Since a NodeGui application runs on Qode. And Qode is essentially Node.Js. We can consider a NodeGui app as a regular NodeJs app. Hence, you can use any debugging tool that you use with Node.Js\nOne of the most popular way of debugging a Node.Js app is by making use of the ",Object(o.b)("a",r({parentName:"p"},{href:"https://nodejs.org/en/docs/inspector/"}),"Chromium Developer Tools"),"."),Object(o.b)("p",null,"Google offers ",Object(o.b)("a",r({parentName:"p"},{href:"https://developer.chrome.com/devtools"}),"excellent documentation for their developer tools"),".\nWe recommend that you make yourself familiar with them - they are usually one\nof the most powerful utilities in any NodeGui Developer's tool belt."),Object(o.b)("h2",{id:"debugging-qode-process"},"Debugging Qode process"),Object(o.b)("p",null,"To debug JavaScript that's executed in the Qode/Node process you will need to use an external debugger and\nlaunch Qode with the ",Object(o.b)("inlineCode",{parentName:"p"},"--inspect")," or ",Object(o.b)("inlineCode",{parentName:"p"},"--inspect-brk")," switch. Once you run it you can open up Chrome and visit ",Object(o.b)("inlineCode",{parentName:"p"},"chrome://inspect")," where you should see your app listed."),Object(o.b)("h3",{id:"command-line-switches"},"Command Line Switches"),Object(o.b)("p",null,"Use one of the following command line switches to enable debugging of the process:"),Object(o.b)("h4",{id:"--inspectport"},Object(o.b)("inlineCode",{parentName:"h4"},"--inspect=[port]")),Object(o.b)("p",null,"Qode will listen for V8 inspector protocol messages on the specified ",Object(o.b)("inlineCode",{parentName:"p"},"port"),",\nan external debugger will need to connect on this port. The default ",Object(o.b)("inlineCode",{parentName:"p"},"port")," is\n",Object(o.b)("inlineCode",{parentName:"p"},"9229"),"."),Object(o.b)("pre",null,Object(o.b)("code",r({parentName:"pre"},{className:"language-shell"}),"qode --inspect=9229 your/app\n")),Object(o.b)("h4",{id:"--inspect-brkport"},Object(o.b)("inlineCode",{parentName:"h4"},"--inspect-brk=[port]")),Object(o.b)("p",null,"Like ",Object(o.b)("inlineCode",{parentName:"p"},"--inspect")," but pauses execution on the first line of JavaScript."),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"Note")),Object(o.b)("p",null,"If you are using the official boilerplate ",Object(o.b)("inlineCode",{parentName:"p"},"nodegui-starter"),", then you can achieve this by running"),Object(o.b)("pre",null,Object(o.b)("code",r({parentName:"pre"},{}),"npm run debug\n")),Object(o.b)("h3",{id:"external-debuggers"},"External Debuggers"),Object(o.b)("p",null,"You will need to use a debugger that supports the V8 inspector protocol."),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"Connect Chrome by visiting ",Object(o.b)("inlineCode",{parentName:"li"},"chrome://inspect")," and selecting to inspect the\nlaunched NodeGui app present there."),Object(o.b)("li",{parentName:"ul"},Object(o.b)("a",r({parentName:"li"},{href:"/docs/guides/debugging-in-vscode"}),"Debugging the NodeGui app in VSCode"))))}u.isMDXComponent=!0},161:function(e,n,t){"use strict";t.d(n,"a",(function(){return c})),t.d(n,"b",(function(){return s}));var o=t(0),r=t.n(o),i=r.a.createContext({}),a=function(e){var n=r.a.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):Object.assign({},n,e)),t},c=function(e){var n=a(e.components);return r.a.createElement(i.Provider,{value:n},e.children)};var p="mdxType",l={inlineCode:"code",wrapper:function(e){var n=e.children;return r.a.createElement(r.a.Fragment,{},n)}},u=Object(o.forwardRef)((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,p=function(e,n){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===n.indexOf(o)&&(t[o]=e[o]);return t}(e,["components","mdxType","originalType","parentName"]),u=a(t),s=o,b=u[c+"."+s]||u[s]||l[s]||i;return t?r.a.createElement(b,Object.assign({},{ref:n},p,{components:t})):r.a.createElement(b,Object.assign({},{ref:n},p))}));function s(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=u;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[p]="string"==typeof e?e:o,a[1]=c;for(var s=2;s=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i={sidebar_label:"Getting started",title:"Getting started"},l=[{value:"Developer environment",id:"developer-environment",children:[{value:"Setting up on macOS",id:"setting-up-on-macos",children:[]},{value:"Setting up on Windows",id:"setting-up-on-windows",children:[]},{value:"Setting up on Linux",id:"setting-up-on-linux",children:[]},{value:"A Good Editor",id:"a-good-editor",children:[]},{value:"Hello World",id:"hello-world",children:[]},{value:"Now what?",id:"now-what",children:[]}]}],s={rightToc:l},p="wrapper";function u(e){var t=e.components,n=r(e,["components"]);return Object(o.b)(p,a({},s,n,{components:t,mdxType:"MDXLayout"}),Object(o.b)("p",null,"NodeGui enables you to create desktop applications with JavaScript. You could see it\nas a lightly modified variant of the Node.js runtime that is focused on desktop applications\ninstead of web servers."),Object(o.b)("p",null,"NodeGui is also an efficient JavaScript binding to a cross platform graphical user interface\n(GUI) library ",Object(o.b)("inlineCode",{parentName:"p"},"Qt"),". Qt is one of the most mature and efficient library for building desktop applications.\nThis enabled NodeGui to be extrememly memory and CPU efficient as compared to other popular Javascript Desktop GUI solutions. A hello world app built with NodeGui runs on less than 20Mb of memory."),Object(o.b)("h2",{id:"developer-environment"},"Developer environment"),Object(o.b)("p",null,"To turn your operating system into an environment capable of building desktop apps with NodeGui, you would need Node.js, npm,a code editor of your choice, and a rudimentary understanding of your operating system's command line client."),Object(o.b)("p",null,"Along with these, there are a few operating system dependent instructions that are listed below."),Object(o.b)("h3",{id:"setting-up-on-macos"},"Setting up on macOS"),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"Requirements:")),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"NodeGui supports macOS 10.10 (Yosemite) and up. NodeGui currently only supports 64bit OS."),Object(o.b)("li",{parentName:"ul"},"CMake 3.1 and up (Installation instructions can be found here: ",Object(o.b)("a",a({parentName:"li"},{href:"https://cmake.org/install/"}),"https://cmake.org/install/"),")"),Object(o.b)("li",{parentName:"ul"},"Make, GCC v7"),Object(o.b)("li",{parentName:"ul"},"Currently supported Node.Js versions are 12.x and up.")),Object(o.b)("p",null,"We strongly suggest you use some kind of version manager for Node.Js. This would allow you to switch to any version of nodejs quite easily. We recommend ",Object(o.b)("inlineCode",{parentName:"p"},"nvm"),": ",Object(o.b)("a",a({parentName:"p"},{href:"https://github.com/nvm-sh/nvm"}),"https://github.com/nvm-sh/nvm")),Object(o.b)("p",null,"Confirm that both ",Object(o.b)("inlineCode",{parentName:"p"},"node")," and ",Object(o.b)("inlineCode",{parentName:"p"},"npm")," are available by running:"),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-sh"}),"# This command should print the version of Node.js\nnode -v\n\n# This command should print the version of npm\nnpm -v\n")),Object(o.b)("p",null,"If both commands printed a version number, you are all set! Before you get\nstarted, you might want to install a ",Object(o.b)("a",a({parentName:"p"},{href:"#a-good-editor"}),"code editor")," suited\nfor JavaScript development."),Object(o.b)("h3",{id:"setting-up-on-windows"},"Setting up on Windows"),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"NodeGui supports Windows 7 and later versions – attempting to develop NodeGui\napplications on earlier versions of Windows might not work. NodeGui currently only supports 64bit OS.")),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"Requirements:")),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"Visual studio 2017 and up."),Object(o.b)("li",{parentName:"ul"},"CMake 3.1 and up (Installation instructions can be found here: ",Object(o.b)("a",a({parentName:"li"},{href:"https://cmake.org/install/"}),"https://cmake.org/install/"),")"),Object(o.b)("li",{parentName:"ul"},"Currently supported Node.Js versions are 12.x and up.")),Object(o.b)("p",null,"We strongly suggest you use some kind of version manager for Node.Js. This would allow you to switch to any version of nodejs quite easily. We recommend ",Object(o.b)("inlineCode",{parentName:"p"},"nvm"),": ",Object(o.b)("a",a({parentName:"p"},{href:"https://github.com/nvm-sh/nvm"}),"https://github.com/nvm-sh/nvm")),Object(o.b)("p",null,"We strongly recommend Powershell as preferred terminal in Windows."),Object(o.b)("p",null,"Confirm that both ",Object(o.b)("inlineCode",{parentName:"p"},"node")," and ",Object(o.b)("inlineCode",{parentName:"p"},"npm")," are available by running:"),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-powershell"}),"# This command should print the version of Node.js\nnode -v\n\n# This command should print the version of npm\nnpm -v\n")),Object(o.b)("p",null,"If both commands printed a version number, you are all set! Before you get\nstarted, you might want to install a ",Object(o.b)("a",a({parentName:"p"},{href:"#a-good-editor"}),"code editor")," suited\nfor JavaScript development."),Object(o.b)("h3",{id:"setting-up-on-linux"},"Setting up on Linux"),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"NodeGui currently supports Ubuntu 16.04 and Debian 10 and up. Although other Linux distributions can also be easily supported. NodeGui currently only supports 64bit OS.")),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"Requirements:")),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"Make, GCC v7"),Object(o.b)("li",{parentName:"ul"},"CMake 3.1 and up (Installation instructions can be found here: ",Object(o.b)("a",a({parentName:"li"},{href:"https://cmake.org/install/"}),"https://cmake.org/install/"),")"),Object(o.b)("li",{parentName:"ul"},"Currently supported Node.Js versions are 12.x and up."),Object(o.b)("li",{parentName:"ul"},"On Ubuntu and Ubuntu-based distros it is advisable to run ",Object(o.b)("inlineCode",{parentName:"li"},"sudo apt-get update"),", followed by ",Object(o.b)("inlineCode",{parentName:"li"},"sudo apt-get install pkg-config build-essential"))),Object(o.b)("p",null,"We strongly suggest you use some kind of version manager for Node.Js. This would allow you to switch to any version of nodejs quite easily. We recommend ",Object(o.b)("inlineCode",{parentName:"p"},"nvm"),": ",Object(o.b)("a",a({parentName:"p"},{href:"https://github.com/nvm-sh/nvm"}),"https://github.com/nvm-sh/nvm")),Object(o.b)("p",null,"Confirm that both ",Object(o.b)("inlineCode",{parentName:"p"},"node")," and ",Object(o.b)("inlineCode",{parentName:"p"},"npm")," are available by running:"),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-sh"}),"# This command should print the version of Node.js\nnode -v\n\n# This command should print the version of npm\nnpm -v\n")),Object(o.b)("p",null,"If both commands printed a version number, you are all set! Before you get\nstarted, you might want to install a ",Object(o.b)("a",a({parentName:"p"},{href:"#a-good-editor"}),"code editor")," suited\nfor JavaScript development."),Object(o.b)("h3",{id:"a-good-editor"},"A Good Editor"),Object(o.b)("p",null,"We might suggest two free popular editors:\nGitHub's ",Object(o.b)("a",a({parentName:"p"},{href:"https://atom.io/"}),"Atom")," and Microsoft's ",Object(o.b)("a",a({parentName:"p"},{href:"https://code.visualstudio.com/"}),"Visual Studio Code"),". Both of\nthem have excellent JavaScript support."),Object(o.b)("p",null,"If you are one of the many developers with a strong preference, know that\nvirtually all code editors and IDEs these days support JavaScript."),Object(o.b)("h3",{id:"hello-world"},"Hello World"),Object(o.b)("p",null,"Clone and run the code in this tutorial by using the\n",Object(o.b)("a",a({parentName:"p"},{href:"https://github.com/nodegui/nodegui-starter"}),Object(o.b)("inlineCode",{parentName:"a"},"nodegui/nodegui-starter"))," repository."),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"Note"),": Running this requires ",Object(o.b)("a",a({parentName:"p"},{href:"https://git-scm.com"}),"Git")," and ",Object(o.b)("a",a({parentName:"p"},{href:"https://www.npmjs.com/"}),"npm"),"."),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-sh"}),"# Clone the repository\n$ git clone https://github.com/nodegui/nodegui-starter\n# Go into the repository\n$ cd nodegui-starter\n# Install dependencies\n$ npm install\n# Run the app\n$ npm start\n")),Object(o.b)("p",null,"That's it!"),Object(o.b)("p",null,"Congratulations! You've successfully run and modified your first NodeGui app."),Object(o.b)("h3",{id:"now-what"},"Now what?"),Object(o.b)("p",null,"If you're curious to learn more about NodeGui, continue on to the ",Object(o.b)("a",a({parentName:"p"},{href:"/docs/guides/tutorial"}),"tutorial"),"."))}u.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return c}));var o=n(0),a=n.n(o),r=a.a.createContext({}),i=function(e){var t=a.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},l=function(e){var t=i(e.components);return a.a.createElement(r.Provider,{value:t},e.children)};var s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},u=Object(o.forwardRef)((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,s=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===t.indexOf(o)&&(n[o]=e[o]);return n}(e,["components","mdxType","originalType","parentName"]),u=i(n),c=o,d=u[l+"."+c]||u[c]||p[c]||r;return n?a.a.createElement(d,Object.assign({},{ref:t},s,{components:n})):a.a.createElement(d,Object.assign({},{ref:t},s))}));function c(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=u;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:o,i[1]=l;for(var c=2;c=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i={sidebar_label:"Getting started",title:"Getting started"},l=[{value:"Developer environment",id:"developer-environment",children:[{value:"Setting up on macOS",id:"setting-up-on-macos",children:[]},{value:"Setting up on Windows",id:"setting-up-on-windows",children:[]},{value:"Setting up on Linux",id:"setting-up-on-linux",children:[]},{value:"A Good Editor",id:"a-good-editor",children:[]},{value:"Hello World",id:"hello-world",children:[]},{value:"Now what?",id:"now-what",children:[]}]}],s={rightToc:l},p="wrapper";function u(e){var t=e.components,n=r(e,["components"]);return Object(o.b)(p,a({},s,n,{components:t,mdxType:"MDXLayout"}),Object(o.b)("p",null,"NodeGui enables you to create desktop applications with JavaScript. You could see it\nas a lightly modified variant of the Node.js runtime that is focused on desktop applications\ninstead of web servers."),Object(o.b)("p",null,"NodeGui is also an efficient JavaScript binding to a cross platform graphical user interface\n(GUI) library ",Object(o.b)("inlineCode",{parentName:"p"},"Qt"),". Qt is one of the most mature and efficient library for building desktop applications.\nThis enabled NodeGui to be extrememly memory and CPU efficient as compared to other popular Javascript Desktop GUI solutions. A hello world app built with NodeGui runs on less than 20Mb of memory."),Object(o.b)("h2",{id:"developer-environment"},"Developer environment"),Object(o.b)("p",null,"To turn your operating system into an environment capable of building desktop apps with NodeGui, you would need Node.js, npm,a code editor of your choice, and a rudimentary understanding of your operating system's command line client."),Object(o.b)("p",null,"Along with these, there are a few operating system dependent instructions that are listed below."),Object(o.b)("h3",{id:"setting-up-on-macos"},"Setting up on macOS"),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"Requirements:")),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"NodeGui supports macOS 10.10 (Yosemite) and up. NodeGui currently only supports 64bit OS."),Object(o.b)("li",{parentName:"ul"},"CMake 3.1 and up (Installation instructions can be found here: ",Object(o.b)("a",a({parentName:"li"},{href:"https://cmake.org/install/"}),"https://cmake.org/install/"),")"),Object(o.b)("li",{parentName:"ul"},"Make, GCC v7"),Object(o.b)("li",{parentName:"ul"},"Currently supported Node.Js versions are 12.x and up.")),Object(o.b)("p",null,"We strongly suggest you use some kind of version manager for Node.Js. This would allow you to switch to any version of nodejs quite easily. We recommend ",Object(o.b)("inlineCode",{parentName:"p"},"nvm"),": ",Object(o.b)("a",a({parentName:"p"},{href:"https://github.com/nvm-sh/nvm"}),"https://github.com/nvm-sh/nvm")),Object(o.b)("p",null,"Confirm that both ",Object(o.b)("inlineCode",{parentName:"p"},"node")," and ",Object(o.b)("inlineCode",{parentName:"p"},"npm")," are available by running:"),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-sh"}),"# This command should print the version of Node.js\nnode -v\n\n# This command should print the version of npm\nnpm -v\n")),Object(o.b)("p",null,"If both commands printed a version number, you are all set! Before you get\nstarted, you might want to install a ",Object(o.b)("a",a({parentName:"p"},{href:"#a-good-editor"}),"code editor")," suited\nfor JavaScript development."),Object(o.b)("h3",{id:"setting-up-on-windows"},"Setting up on Windows"),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"NodeGui supports Windows 7 and later versions – attempting to develop NodeGui\napplications on earlier versions of Windows might not work. NodeGui currently only supports 64bit OS.")),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"Requirements:")),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"Visual studio 2017 and up."),Object(o.b)("li",{parentName:"ul"},"CMake 3.1 and up (Installation instructions can be found here: ",Object(o.b)("a",a({parentName:"li"},{href:"https://cmake.org/install/"}),"https://cmake.org/install/"),")"),Object(o.b)("li",{parentName:"ul"},"Currently supported Node.Js versions are 12.x and up.")),Object(o.b)("p",null,"We strongly suggest you use some kind of version manager for Node.Js. This would allow you to switch to any version of nodejs quite easily. We recommend ",Object(o.b)("inlineCode",{parentName:"p"},"nvm"),": ",Object(o.b)("a",a({parentName:"p"},{href:"https://github.com/nvm-sh/nvm"}),"https://github.com/nvm-sh/nvm")),Object(o.b)("p",null,"We strongly recommend Powershell as preferred terminal in Windows."),Object(o.b)("p",null,"Confirm that both ",Object(o.b)("inlineCode",{parentName:"p"},"node")," and ",Object(o.b)("inlineCode",{parentName:"p"},"npm")," are available by running:"),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-powershell"}),"# This command should print the version of Node.js\nnode -v\n\n# This command should print the version of npm\nnpm -v\n")),Object(o.b)("p",null,"If both commands printed a version number, you are all set! Before you get\nstarted, you might want to install a ",Object(o.b)("a",a({parentName:"p"},{href:"#a-good-editor"}),"code editor")," suited\nfor JavaScript development."),Object(o.b)("h3",{id:"setting-up-on-linux"},"Setting up on Linux"),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"NodeGui currently supports Ubuntu 16.04 and Debian 10 and up. Although other Linux distributions can also be easily supported. NodeGui currently only supports 64bit OS.")),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"Requirements:")),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"Make, GCC v7"),Object(o.b)("li",{parentName:"ul"},"CMake 3.1 and up (Installation instructions can be found here: ",Object(o.b)("a",a({parentName:"li"},{href:"https://cmake.org/install/"}),"https://cmake.org/install/"),")"),Object(o.b)("li",{parentName:"ul"},"Currently supported Node.Js versions are 12.x and up."),Object(o.b)("li",{parentName:"ul"},"On Ubuntu and Ubuntu-based distros it is advisable to run ",Object(o.b)("inlineCode",{parentName:"li"},"sudo apt-get update"),", followed by ",Object(o.b)("inlineCode",{parentName:"li"},"sudo apt-get install pkg-config build-essential"))),Object(o.b)("p",null,"We strongly suggest you use some kind of version manager for Node.Js. This would allow you to switch to any version of nodejs quite easily. We recommend ",Object(o.b)("inlineCode",{parentName:"p"},"nvm"),": ",Object(o.b)("a",a({parentName:"p"},{href:"https://github.com/nvm-sh/nvm"}),"https://github.com/nvm-sh/nvm")),Object(o.b)("p",null,"Confirm that both ",Object(o.b)("inlineCode",{parentName:"p"},"node")," and ",Object(o.b)("inlineCode",{parentName:"p"},"npm")," are available by running:"),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-sh"}),"# This command should print the version of Node.js\nnode -v\n\n# This command should print the version of npm\nnpm -v\n")),Object(o.b)("p",null,"If both commands printed a version number, you are all set! Before you get\nstarted, you might want to install a ",Object(o.b)("a",a({parentName:"p"},{href:"#a-good-editor"}),"code editor")," suited\nfor JavaScript development."),Object(o.b)("h3",{id:"a-good-editor"},"A Good Editor"),Object(o.b)("p",null,"We might suggest two free popular editors:\nGitHub's ",Object(o.b)("a",a({parentName:"p"},{href:"https://atom.io/"}),"Atom")," and Microsoft's ",Object(o.b)("a",a({parentName:"p"},{href:"https://code.visualstudio.com/"}),"Visual Studio Code"),". Both of\nthem have excellent JavaScript support."),Object(o.b)("p",null,"If you are one of the many developers with a strong preference, know that\nvirtually all code editors and IDEs these days support JavaScript."),Object(o.b)("h3",{id:"hello-world"},"Hello World"),Object(o.b)("p",null,"Clone and run the code in this tutorial by using the\n",Object(o.b)("a",a({parentName:"p"},{href:"https://github.com/nodegui/nodegui-starter"}),Object(o.b)("inlineCode",{parentName:"a"},"nodegui/nodegui-starter"))," repository."),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"Note"),": Running this requires ",Object(o.b)("a",a({parentName:"p"},{href:"https://git-scm.com"}),"Git")," and ",Object(o.b)("a",a({parentName:"p"},{href:"https://www.npmjs.com/"}),"npm"),"."),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-sh"}),"# Clone the repository\n$ git clone https://github.com/nodegui/nodegui-starter\n# Go into the repository\n$ cd nodegui-starter\n# Install dependencies\n$ npm install\n# Run the app\n$ npm start\n")),Object(o.b)("p",null,"That's it!"),Object(o.b)("p",null,"Congratulations! You've successfully run and modified your first NodeGui app."),Object(o.b)("h3",{id:"now-what"},"Now what?"),Object(o.b)("p",null,"If you're curious to learn more about NodeGui, continue on to the ",Object(o.b)("a",a({parentName:"p"},{href:"/docs/guides/tutorial"}),"tutorial"),"."))}u.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return c}));var o=n(0),a=n.n(o),r=a.a.createContext({}),i=function(e){var t=a.a.useContext(r),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},l=function(e){var t=i(e.components);return a.a.createElement(r.Provider,{value:t},e.children)};var s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},u=Object(o.forwardRef)((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,s=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===t.indexOf(o)&&(n[o]=e[o]);return n}(e,["components","mdxType","originalType","parentName"]),u=i(n),c=o,d=u[l+"."+c]||u[c]||p[c]||r;return n?a.a.createElement(d,Object.assign({},{ref:t},s,{components:n})):a.a.createElement(d,Object.assign({},{ref:t},s))}));function c(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=u;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:o,i[1]=l;for(var c=2;c=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c={sidebar_label:"Handle Events",title:"Handle Events"},i=[],p={rightToc:i},u="wrapper";function l(e){var n=e.components,r=o(e,["components"]);return Object(t.b)(u,a({},p,r,{components:n,mdxType:"MDXLayout"}),Object(t.b)("p",null,"WIP"))}l.isMDXComponent=!0},161:function(e,n,r){"use strict";r.d(n,"a",(function(){return i})),r.d(n,"b",(function(){return f}));var t=r(0),a=r.n(t),o=a.a.createContext({}),c=function(e){var n=a.a.useContext(o),r=n;return e&&(r="function"==typeof e?e(n):Object.assign({},n,e)),r},i=function(e){var n=c(e.components);return a.a.createElement(o.Provider,{value:n},e.children)};var p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.a.createElement(a.a.Fragment,{},n)}},l=Object(t.forwardRef)((function(e,n){var r=e.components,t=e.mdxType,o=e.originalType,i=e.parentName,p=function(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&-1===n.indexOf(t)&&(r[t]=e[t]);return r}(e,["components","mdxType","originalType","parentName"]),l=c(r),f=t,s=l[i+"."+f]||l[f]||u[f]||o;return r?a.a.createElement(s,Object.assign({},{ref:n},p,{components:r})):a.a.createElement(s,Object.assign({},{ref:n},p))}));function f(e,n){var r=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var o=r.length,c=new Array(o);c[0]=l;var i={};for(var u in n)hasOwnProperty.call(n,u)&&(i[u]=n[u]);i.originalType=e,i[p]="string"==typeof e?e:t,c[1]=i;for(var f=2;f=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c={sidebar_label:"Handle Events",title:"Handle Events"},i=[],p={rightToc:i},u="wrapper";function l(e){var n=e.components,r=o(e,["components"]);return Object(t.b)(u,a({},p,r,{components:n,mdxType:"MDXLayout"}),Object(t.b)("p",null,"WIP"))}l.isMDXComponent=!0},161:function(e,n,r){"use strict";r.d(n,"a",(function(){return i})),r.d(n,"b",(function(){return f}));var t=r(0),a=r.n(t),o=a.a.createContext({}),c=function(e){var n=a.a.useContext(o),r=n;return e&&(r="function"==typeof e?e(n):Object.assign({},n,e)),r},i=function(e){var n=c(e.components);return a.a.createElement(o.Provider,{value:n},e.children)};var p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.a.createElement(a.a.Fragment,{},n)}},l=Object(t.forwardRef)((function(e,n){var r=e.components,t=e.mdxType,o=e.originalType,i=e.parentName,p=function(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&-1===n.indexOf(t)&&(r[t]=e[t]);return r}(e,["components","mdxType","originalType","parentName"]),l=c(r),f=t,s=l[i+"."+f]||l[f]||u[f]||o;return r?a.a.createElement(s,Object.assign({},{ref:n},p,{components:r})):a.a.createElement(s,Object.assign({},{ref:n},p))}));function f(e,n){var r=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var o=r.length,c=new Array(o);c[0]=l;var i={};for(var u in n)hasOwnProperty.call(n,u)&&(i[u]=n[u]);i.originalType=e,i[p]="string"==typeof e?e:t,c[1]=i;for(var f=2;f=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c={sidebar_label:"Images",title:"Images"},i=[],p={rightToc:i},u="wrapper";function l(e){var n=e.components,r=o(e,["components"]);return Object(t.b)(u,a({},p,r,{components:n,mdxType:"MDXLayout"}),Object(t.b)("p",null,"WIP"))}l.isMDXComponent=!0},161:function(e,n,r){"use strict";r.d(n,"a",(function(){return i})),r.d(n,"b",(function(){return f}));var t=r(0),a=r.n(t),o=a.a.createContext({}),c=function(e){var n=a.a.useContext(o),r=n;return e&&(r="function"==typeof e?e(n):Object.assign({},n,e)),r},i=function(e){var n=c(e.components);return a.a.createElement(o.Provider,{value:n},e.children)};var p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.a.createElement(a.a.Fragment,{},n)}},l=Object(t.forwardRef)((function(e,n){var r=e.components,t=e.mdxType,o=e.originalType,i=e.parentName,p=function(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&-1===n.indexOf(t)&&(r[t]=e[t]);return r}(e,["components","mdxType","originalType","parentName"]),l=c(r),f=t,s=l[i+"."+f]||l[f]||u[f]||o;return r?a.a.createElement(s,Object.assign({},{ref:n},p,{components:r})):a.a.createElement(s,Object.assign({},{ref:n},p))}));function f(e,n){var r=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var o=r.length,c=new Array(o);c[0]=l;var i={};for(var u in n)hasOwnProperty.call(n,u)&&(i[u]=n[u]);i.originalType=e,i[p]="string"==typeof e?e:t,c[1]=i;for(var f=2;f=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c={sidebar_label:"Images",title:"Images"},i=[],p={rightToc:i},u="wrapper";function l(e){var n=e.components,r=o(e,["components"]);return Object(t.b)(u,a({},p,r,{components:n,mdxType:"MDXLayout"}),Object(t.b)("p",null,"WIP"))}l.isMDXComponent=!0},161:function(e,n,r){"use strict";r.d(n,"a",(function(){return i})),r.d(n,"b",(function(){return f}));var t=r(0),a=r.n(t),o=a.a.createContext({}),c=function(e){var n=a.a.useContext(o),r=n;return e&&(r="function"==typeof e?e(n):Object.assign({},n,e)),r},i=function(e){var n=c(e.components);return a.a.createElement(o.Provider,{value:n},e.children)};var p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.a.createElement(a.a.Fragment,{},n)}},l=Object(t.forwardRef)((function(e,n){var r=e.components,t=e.mdxType,o=e.originalType,i=e.parentName,p=function(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&-1===n.indexOf(t)&&(r[t]=e[t]);return r}(e,["components","mdxType","originalType","parentName"]),l=c(r),f=t,s=l[i+"."+f]||l[f]||u[f]||o;return r?a.a.createElement(s,Object.assign({},{ref:n},p,{components:r})):a.a.createElement(s,Object.assign({},{ref:n},p))}));function f(e,n){var r=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var o=r.length,c=new Array(o);c[0]=l;var i={};for(var u in n)hasOwnProperty.call(n,u)&&(i[u]=n[u]);i.originalType=e,i[p]="string"==typeof e?e:t,c[1]=i;for(var f=2;f=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l={sidebar_label:"Layout",title:"Layout"},r=[{value:"Fixed Dimensions",id:"fixed-dimensions",children:[]},{value:"Dynamic Layouts",id:"dynamic-layouts",children:[]},{value:"FlexLayout",id:"flexlayout",children:[{value:"Example:",id:"example",children:[]},{value:"TLDR",id:"tldr",children:[]}]},{value:"Conclusion",id:"conclusion",children:[]}],s={rightToc:r},c="wrapper";function u(e){var t=e.components,n=i(e,["components"]);return Object(a.b)(c,o({},s,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("p",null,"NodeGui uses a layout system to automatically arranging child widgets within a widget to ensure that they make good use of the available space."),Object(a.b)("h2",{id:"fixed-dimensions"},"Fixed Dimensions"),Object(a.b)("p",null,"A widget's height and width determine its size on the screen. The simplest way to set the dimensions of a widget is by adding a fixed width and height to style. Setting dimensions this way is common for widgets that should always render at exactly the same size, regardless of screen dimensions."),Object(a.b)("pre",null,Object(a.b)("code",o({parentName:"pre"},{className:"language-javascript"}),'\nconst { QMainWindow, QWidget } = require("@nodegui/nodegui");\n\nconst win = new QMainWindow();\nconst view = new QWidget(win);\n\nview.setInlineStyle("width:50px; height:30px; background-color: yellow;");\n\nwin.show();\n(global as any).win = win;\n\n')),Object(a.b)("h2",{id:"dynamic-layouts"},"Dynamic Layouts"),Object(a.b)("p",null,"Dynamic layouts automatically position and resize widgets when the amount of space available for them changes, ensuring that they are consistently arranged and that the user interface as a whole remains usable."),Object(a.b)("p",null,"NodeGui currently supports the following layouts at the moment:"),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},"FlexLayout"),Object(a.b)("li",{parentName:"ul"},"QGridLayout")),Object(a.b)("p",null,Object(a.b)("em",{parentName:"p"},"More layouts will be added as time goes on. You can also add layouts yourself by creating custom native plugins for NodeGui usng the ",Object(a.b)("a",o({parentName:"em"},{href:"/docs/guides/custom-nodegui-native-plugin"}),"Custom Native Plugin API."))),Object(a.b)("h2",{id:"flexlayout"},"FlexLayout"),Object(a.b)("p",null,"Use FlexLayout to have the children expand and shrink dynamically based on available space. Normally you will use ",Object(a.b)("inlineCode",{parentName:"p"},"flex: 1"),", which tells a widget to fill all available space, shared evenly amongst other widgets with the same parent. The larger the flex given, the higher the ratio of space a component will take compared to its siblings."),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"A widget can only expand to fill available space if its parent has dimensions greater than 0. If a parent does not have either a fixed width and height or flex, the parent will have dimensions of 0 and the flex children will not be visible.")),Object(a.b)("p",null,"Flexbox is designed to provide a consistent layout on different screen sizes. You will normally use a combination of flexDirection, alignItems, and justifyContent to achieve the right layout."),Object(a.b)("h3",{id:"example"},"Example:"),Object(a.b)("p",null,"Lets say you want to build a UI that has a parent view which has two child widgets. One a label with text Hello and another a view with background color white. Now you want the label to occupy 1/3 of the available space while the white colored child view to occupy the remaining 2/3 space."),Object(a.b)("img",{src:"/img/docs/flex-layout-1.png",alt:"flex layout example 1",style:{maxWidth:700,width:"100%"}}),Object(a.b)("p",null,"The code for that would look something like this:"),Object(a.b)("pre",null,Object(a.b)("code",o({parentName:"pre"},{className:"language-javascript"}),'let { QLabel, FlexLayout, QWidget, QMainWindow } = require("@nodegui/nodegui");\n\n// Create a root view and assign a flex layout to it.\nconst rootView = new QWidget();\nrootView.setLayout(new FlexLayout());\nrootView.setObjectName("rootView");\n\n// Create two widgets - one label and one view\nconst label = new QLabel();\nlabel.setText("Hello");\nlabel.setObjectName("label");\n\nconst view = new QWidget();\nview.setObjectName("view");\n\n// Now tell rootView layout that the label and the other view are its children\nrootView.layout.addWidget(label);\nrootView.layout.addWidget(view);\n\n// Tell FlexLayout how you want children of rootView to be poisitioned\nrootView.setStyleSheet(`\n #rootView{\n flex: 1;\n background-color: blue;\n }\n #label {\n flex: 1;\n color: white;\n background-color: green;\n }\n #view {\n flex: 3;\n background-color: white;\n }\n`);\n\nconst win = new QMainWindow();\nwin.setCentralWidget(rootView);\nwin.show();\nglobal.win = win;\n')),Object(a.b)("h3",{id:"tldr"},"TLDR"),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("p",{parentName:"li"},"First step is to set a layout on the parent widget. You can do this using the widget's ",Object(a.b)("inlineCode",{parentName:"p"},"setLayout")," method. Here we are using FlexLayout.")),Object(a.b)("li",{parentName:"ul"},Object(a.b)("p",{parentName:"li"},"For a layout to work you must let the layout know which widgets are the children and how to lay them on the available screen space within the parent widget. You do this using a layout's ",Object(a.b)("inlineCode",{parentName:"p"},"addWidget")," method. In the case of FlexLayout you will specify properties by setting flex properties on the parent and child widgets."))),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"To know more on how FlexBox layout works in depth you can visit: ",Object(a.b)("a",o({parentName:"p"},{href:"https://facebook.github.io/react-native/docs/0.60/flexbox"}),"https://facebook.github.io/react-native/docs/0.60/flexbox"),"."),Object(a.b)("p",{parentName:"blockquote"},"NodeGui uses the same library that React Native uses underneath for FlexBox (",Object(a.b)("a",o({parentName:"p"},{href:"https://github.com/facebook/yoga"}),"Yoga"),").")),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},"You can specify layout properties via inline styles also.")),Object(a.b)("h2",{id:"conclusion"},"Conclusion"),Object(a.b)("p",null,"The primary layout in NodeGui is the Flexbox layout. Flexbox layout can be controlled via stylesheet just as in web. So both paint and layout properties are available at the same place."),Object(a.b)("p",null,"NodeGui will also try to support other available layouts in Qt. But, If you need a special layout that Qt/NodeGui doesnt yet support you can always create a ",Object(a.b)("a",o({parentName:"p"},{href:"/docs/guides/custom-nodegui-native-plugin"}),"native plugin for NodeGui")," and use Qt's APIs to create one. In fact, Qt doesnt have a FlexLayout built in, FlexLayout is actually a custom Qt layout written with the help of Yoga library."))}u.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return d}));var a=n(0),o=n.n(a),i=o.a.createContext({}),l=function(e){var t=o.a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},r=function(e){var t=l(e.components);return o.a.createElement(i.Provider,{value:t},e.children)};var s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},u=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,r=e.parentName,s=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),u=l(n),d=a,b=u[r+"."+d]||u[d]||c[d]||i;return n?o.a.createElement(b,Object.assign({},{ref:t},s,{components:n})):o.a.createElement(b,Object.assign({},{ref:t},s))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=u;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r[s]="string"==typeof e?e:a,l[1]=r;for(var d=2;d=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l={sidebar_label:"Layout",title:"Layout"},r=[{value:"Fixed Dimensions",id:"fixed-dimensions",children:[]},{value:"Dynamic Layouts",id:"dynamic-layouts",children:[]},{value:"FlexLayout",id:"flexlayout",children:[{value:"Example:",id:"example",children:[]},{value:"TLDR",id:"tldr",children:[]}]},{value:"Conclusion",id:"conclusion",children:[]}],s={rightToc:r},c="wrapper";function u(e){var t=e.components,n=i(e,["components"]);return Object(a.b)(c,o({},s,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("p",null,"NodeGui uses a layout system to automatically arranging child widgets within a widget to ensure that they make good use of the available space."),Object(a.b)("h2",{id:"fixed-dimensions"},"Fixed Dimensions"),Object(a.b)("p",null,"A widget's height and width determine its size on the screen. The simplest way to set the dimensions of a widget is by adding a fixed width and height to style. Setting dimensions this way is common for widgets that should always render at exactly the same size, regardless of screen dimensions."),Object(a.b)("pre",null,Object(a.b)("code",o({parentName:"pre"},{className:"language-javascript"}),'\nconst { QMainWindow, QWidget } = require("@nodegui/nodegui");\n\nconst win = new QMainWindow();\nconst view = new QWidget(win);\n\nview.setInlineStyle("width:50px; height:30px; background-color: yellow;");\n\nwin.show();\n(global as any).win = win;\n\n')),Object(a.b)("h2",{id:"dynamic-layouts"},"Dynamic Layouts"),Object(a.b)("p",null,"Dynamic layouts automatically position and resize widgets when the amount of space available for them changes, ensuring that they are consistently arranged and that the user interface as a whole remains usable."),Object(a.b)("p",null,"NodeGui currently supports the following layouts at the moment:"),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},"FlexLayout"),Object(a.b)("li",{parentName:"ul"},"QGridLayout")),Object(a.b)("p",null,Object(a.b)("em",{parentName:"p"},"More layouts will be added as time goes on. You can also add layouts yourself by creating custom native plugins for NodeGui usng the ",Object(a.b)("a",o({parentName:"em"},{href:"/docs/guides/custom-nodegui-native-plugin"}),"Custom Native Plugin API."))),Object(a.b)("h2",{id:"flexlayout"},"FlexLayout"),Object(a.b)("p",null,"Use FlexLayout to have the children expand and shrink dynamically based on available space. Normally you will use ",Object(a.b)("inlineCode",{parentName:"p"},"flex: 1"),", which tells a widget to fill all available space, shared evenly amongst other widgets with the same parent. The larger the flex given, the higher the ratio of space a component will take compared to its siblings."),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"A widget can only expand to fill available space if its parent has dimensions greater than 0. If a parent does not have either a fixed width and height or flex, the parent will have dimensions of 0 and the flex children will not be visible.")),Object(a.b)("p",null,"Flexbox is designed to provide a consistent layout on different screen sizes. You will normally use a combination of flexDirection, alignItems, and justifyContent to achieve the right layout."),Object(a.b)("h3",{id:"example"},"Example:"),Object(a.b)("p",null,"Lets say you want to build a UI that has a parent view which has two child widgets. One a label with text Hello and another a view with background color white. Now you want the label to occupy 1/3 of the available space while the white colored child view to occupy the remaining 2/3 space."),Object(a.b)("img",{src:"/img/docs/flex-layout-1.png",alt:"flex layout example 1",style:{maxWidth:700,width:"100%"}}),Object(a.b)("p",null,"The code for that would look something like this:"),Object(a.b)("pre",null,Object(a.b)("code",o({parentName:"pre"},{className:"language-javascript"}),'let { QLabel, FlexLayout, QWidget, QMainWindow } = require("@nodegui/nodegui");\n\n// Create a root view and assign a flex layout to it.\nconst rootView = new QWidget();\nrootView.setLayout(new FlexLayout());\nrootView.setObjectName("rootView");\n\n// Create two widgets - one label and one view\nconst label = new QLabel();\nlabel.setText("Hello");\nlabel.setObjectName("label");\n\nconst view = new QWidget();\nview.setObjectName("view");\n\n// Now tell rootView layout that the label and the other view are its children\nrootView.layout.addWidget(label);\nrootView.layout.addWidget(view);\n\n// Tell FlexLayout how you want children of rootView to be poisitioned\nrootView.setStyleSheet(`\n #rootView{\n flex: 1;\n background-color: blue;\n }\n #label {\n flex: 1;\n color: white;\n background-color: green;\n }\n #view {\n flex: 3;\n background-color: white;\n }\n`);\n\nconst win = new QMainWindow();\nwin.setCentralWidget(rootView);\nwin.show();\nglobal.win = win;\n')),Object(a.b)("h3",{id:"tldr"},"TLDR"),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("p",{parentName:"li"},"First step is to set a layout on the parent widget. You can do this using the widget's ",Object(a.b)("inlineCode",{parentName:"p"},"setLayout")," method. Here we are using FlexLayout.")),Object(a.b)("li",{parentName:"ul"},Object(a.b)("p",{parentName:"li"},"For a layout to work you must let the layout know which widgets are the children and how to lay them on the available screen space within the parent widget. You do this using a layout's ",Object(a.b)("inlineCode",{parentName:"p"},"addWidget")," method. In the case of FlexLayout you will specify properties by setting flex properties on the parent and child widgets."))),Object(a.b)("blockquote",null,Object(a.b)("p",{parentName:"blockquote"},"To know more on how FlexBox layout works in depth you can visit: ",Object(a.b)("a",o({parentName:"p"},{href:"https://facebook.github.io/react-native/docs/0.60/flexbox"}),"https://facebook.github.io/react-native/docs/0.60/flexbox"),"."),Object(a.b)("p",{parentName:"blockquote"},"NodeGui uses the same library that React Native uses underneath for FlexBox (",Object(a.b)("a",o({parentName:"p"},{href:"https://github.com/facebook/yoga"}),"Yoga"),").")),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},"You can specify layout properties via inline styles also.")),Object(a.b)("h2",{id:"conclusion"},"Conclusion"),Object(a.b)("p",null,"The primary layout in NodeGui is the Flexbox layout. Flexbox layout can be controlled via stylesheet just as in web. So both paint and layout properties are available at the same place."),Object(a.b)("p",null,"NodeGui will also try to support other available layouts in Qt. But, If you need a special layout that Qt/NodeGui doesnt yet support you can always create a ",Object(a.b)("a",o({parentName:"p"},{href:"/docs/guides/custom-nodegui-native-plugin"}),"native plugin for NodeGui")," and use Qt's APIs to create one. In fact, Qt doesnt have a FlexLayout built in, FlexLayout is actually a custom Qt layout written with the help of Yoga library."))}u.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return d}));var a=n(0),o=n.n(a),i=o.a.createContext({}),l=function(e){var t=o.a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},r=function(e){var t=l(e.components);return o.a.createElement(i.Provider,{value:t},e.children)};var s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},u=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,r=e.parentName,s=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}(e,["components","mdxType","originalType","parentName"]),u=l(n),d=a,b=u[r+"."+d]||u[d]||c[d]||i;return n?o.a.createElement(b,Object.assign({},{ref:t},s,{components:n})):o.a.createElement(b,Object.assign({},{ref:t},s))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=u;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r[s]="string"==typeof e?e:a,l[1]=r;for(var d=2;d=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c={sidebar_label:"Networking",title:"Networking"},i=[],p={rightToc:i},u="wrapper";function l(e){var n=e.components,r=a(e,["components"]);return Object(t.b)(u,o({},p,r,{components:n,mdxType:"MDXLayout"}),Object(t.b)("p",null,"WIP"))}l.isMDXComponent=!0},161:function(e,n,r){"use strict";r.d(n,"a",(function(){return i})),r.d(n,"b",(function(){return f}));var t=r(0),o=r.n(t),a=o.a.createContext({}),c=function(e){var n=o.a.useContext(a),r=n;return e&&(r="function"==typeof e?e(n):Object.assign({},n,e)),r},i=function(e){var n=c(e.components);return o.a.createElement(a.Provider,{value:n},e.children)};var p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return o.a.createElement(o.a.Fragment,{},n)}},l=Object(t.forwardRef)((function(e,n){var r=e.components,t=e.mdxType,a=e.originalType,i=e.parentName,p=function(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&-1===n.indexOf(t)&&(r[t]=e[t]);return r}(e,["components","mdxType","originalType","parentName"]),l=c(r),f=t,s=l[i+"."+f]||l[f]||u[f]||a;return r?o.a.createElement(s,Object.assign({},{ref:n},p,{components:r})):o.a.createElement(s,Object.assign({},{ref:n},p))}));function f(e,n){var r=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var a=r.length,c=new Array(a);c[0]=l;var i={};for(var u in n)hasOwnProperty.call(n,u)&&(i[u]=n[u]);i.originalType=e,i[p]="string"==typeof e?e:t,c[1]=i;for(var f=2;f=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c={sidebar_label:"Networking",title:"Networking"},i=[],p={rightToc:i},u="wrapper";function l(e){var n=e.components,r=a(e,["components"]);return Object(t.b)(u,o({},p,r,{components:n,mdxType:"MDXLayout"}),Object(t.b)("p",null,"WIP"))}l.isMDXComponent=!0},161:function(e,n,r){"use strict";r.d(n,"a",(function(){return i})),r.d(n,"b",(function(){return f}));var t=r(0),o=r.n(t),a=o.a.createContext({}),c=function(e){var n=o.a.useContext(a),r=n;return e&&(r="function"==typeof e?e(n):Object.assign({},n,e)),r},i=function(e){var n=c(e.components);return o.a.createElement(a.Provider,{value:n},e.children)};var p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return o.a.createElement(o.a.Fragment,{},n)}},l=Object(t.forwardRef)((function(e,n){var r=e.components,t=e.mdxType,a=e.originalType,i=e.parentName,p=function(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&-1===n.indexOf(t)&&(r[t]=e[t]);return r}(e,["components","mdxType","originalType","parentName"]),l=c(r),f=t,s=l[i+"."+f]||l[f]||u[f]||a;return r?o.a.createElement(s,Object.assign({},{ref:n},p,{components:r})):o.a.createElement(s,Object.assign({},{ref:n},p))}));function f(e,n){var r=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var a=r.length,c=new Array(a);c[0]=l;var i={};for(var u in n)hasOwnProperty.call(n,u)&&(i[u]=n[u]);i.originalType=e,i[p]="string"==typeof e?e:t,c[1]=i;for(var f=2;f=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i={sidebar_label:"Architecture",title:"Architecture"},s=[{value:"Qode",id:"qode",children:[]},{value:"Using NodeGui APIs",id:"using-nodegui-apis",children:[]},{value:"Using Nodejs APIs",id:"using-nodejs-apis",children:[]}],l={rightToc:s},c="wrapper";function d(e){var n=e.components,t=r(e,["components"]);return Object(o.b)(c,a({},l,t,{components:n,mdxType:"MDXLayout"}),Object(o.b)("p",null,"By looking at how NodeGui works internally, we would get a clear picture on why the APIs are designed the way they are."),Object(o.b)("h2",{id:"qode"},"Qode"),Object(o.b)("p",null,"NodeGui uses Qt for creating Windows and other UI element. Hence it exports thin wrappers of native C++ widgets from Qt into Javascript world. Now, every Qt application needs to initialize an instance of ",Object(o.b)("inlineCode",{parentName:"p"},"QApplication")," before creating widgets. The way we do it in C++ Qt application is (dont worry if it doesnt make sense right now):"),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-cpp"}),' #include \n #include \n\n int main(int argc, char *argv[])\n {\n QApplication app(argc, argv); // Important\n\n QPushButton hello("Hello world!");\n hello.resize(100, 30);\n hello.show();\n\n return app.exec(); // Important\n }\n')),Object(o.b)("p",null,"Like many Gui libraries Qt uses an event/message loop to handle events from widgets. Hence, when we call ",Object(o.b)("inlineCode",{parentName:"p"},"app.exec()")," Qt starts its message loop and blocks on that line. This is all good when there is only one message loop in the entire app. But since we want to use Qt with NodeJS and NodeJs has its own event loop, we cannot run both Qt and NodeJs on the same thread easily."),Object(o.b)("p",null,"Then following questions arise:"),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},Object(o.b)("strong",{parentName:"li"},"What if we run Qt on a separate thread?")," : No this is not possible since Qt has a requirement that it needs to run on the main thread."),Object(o.b)("li",{parentName:"ul"},Object(o.b)("strong",{parentName:"li"},"What if we run Node on a separate thread?")," : This would mean we need to build a complex bridge between Node and Qt threads to make them communicate. A strict no no.")),Object(o.b)("p",null,"So in order to make both NodeJs and Qt work together we need to find a way to merge these two event loop into one. This is achieved by a custom NodeJs binary we call as ",Object(o.b)("inlineCode",{parentName:"p"},"Qode"),"."),Object(o.b)("p",null,"Qode is a lightly modified fork of Node.js that merges Node's event loop with Qt's event loop. The idea of merging event loops is inspired by Electron and ",Object(o.b)("a",a({parentName:"p"},{href:"https://github.com/yue"}),"other")," Gui libraries developed by ",Object(o.b)("a",a({parentName:"p"},{href:"https://github.com/zcbenz"}),"zcbenz (Cheng Zhao)"),". It has been detailed in a post here: ",Object(o.b)("a",a({parentName:"p"},{href:"https://electronjs.org/blog/electron-internals-node-integration"}),"Electron internals"),". Hence, we reused the logic from electron to achieve smooth integration between Qt and NodeJs."),Object(o.b)("p",null,"The idea is to release a corresponding Qode binary for every NodeJs version that comes out after Node v12.6.\nThe source code of Qode can be found ",Object(o.b)("a",a({parentName:"p"},{href:"https://github.com/nodegui/qode"}),"here"),"."),Object(o.b)("p",null,Object(o.b)("em",{parentName:"p"},"*","PS: Qode is a fork of ",Object(o.b)("a",a({parentName:"em"},{href:"https://github.com/yue/yode"}),"Yode"))),Object(o.b)("h2",{id:"using-nodegui-apis"},"Using NodeGui APIs"),Object(o.b)("p",null,"NodeGui offers a number of APIs that support the development of a desktop\napplication. You'd access NodeGui's APIs by requiring its included module:"),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'require("@nodegui/nodegui");\n')),Object(o.b)("p",null,"A window in NodeGui is for instance created using the ",Object(o.b)("inlineCode",{parentName:"p"},"QMainWindow"),"\nclass."),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const { QMainWindow } = require("@nodegui/nodegui");\n\nconst win = new QMainWindow();\n')),Object(o.b)("h2",{id:"using-nodejs-apis"},"Using Nodejs APIs"),Object(o.b)("p",null,"NodeGui exposes full access to Node.js. This has two important implications:"),Object(o.b)("ol",null,Object(o.b)("li",{parentName:"ol"},"All APIs available in Node.js are available in NodeGui. Calling the\nfollowing code from an NodeGui app works:")),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-javascript"}),"const fs = require(\"fs\");\n\nconst root = fs.readdirSync(\"/\");\n\n// This will print all files at the root-level of the disk,\n// either '/' or 'C:\\'.\nconsole.log(root);\n")),Object(o.b)("ol",{start:2},Object(o.b)("li",{parentName:"ol"},"You can use Node.js modules in your application. Pick your favorite npm\nmodule. npm offers currently the world's biggest repository of open-source\ncode – the ability to use well-maintained and tested code that used to be\nreserved for server applications is one of the key features of NodeGui.")),Object(o.b)("p",null,"As an example, to use the official AWS SDK in your application, you'd first\ninstall it as a dependency:"),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-sh"}),"npm install --save aws-sdk\n")),Object(o.b)("p",null,"Then, in your NodeGui app, require and use the module as if you were\nbuilding a Node.js application:"),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'// A ready-to-use S3 Client\nconst S3 = require("aws-sdk/clients/s3");\n')),Object(o.b)("p",null,"There is one important caveat: Native Node.js modules (that is, modules that\nrequire compilation of native code before they can be used) will need to be\ncompiled with Qode or a compatible Node version to be used with NodeGui."),Object(o.b)("p",null,"The vast majority of Node.js modules are ",Object(o.b)("em",{parentName:"p"},"not")," native. Only 400 out of the\n~650.000 modules are native. However, if you do need native modules, please\nconsult ",Object(o.b)("a",a({parentName:"p"},{href:"/docs/guides/using-native-node-modules"}),"this guide on how to recompile them for NodeGui"),"."))}d.isMDXComponent=!0},161:function(e,n,t){"use strict";t.d(n,"a",(function(){return s})),t.d(n,"b",(function(){return p}));var o=t(0),a=t.n(o),r=a.a.createContext({}),i=function(e){var n=a.a.useContext(r),t=n;return e&&(t="function"==typeof e?e(n):Object.assign({},n,e)),t},s=function(e){var n=i(e.components);return a.a.createElement(r.Provider,{value:n},e.children)};var l="mdxType",c={inlineCode:"code",wrapper:function(e){var n=e.children;return a.a.createElement(a.a.Fragment,{},n)}},d=Object(o.forwardRef)((function(e,n){var t=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,l=function(e,n){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===n.indexOf(o)&&(t[o]=e[o]);return t}(e,["components","mdxType","originalType","parentName"]),d=i(t),p=o,u=d[s+"."+p]||d[p]||c[p]||r;return t?a.a.createElement(u,Object.assign({},{ref:n},l,{components:t})):a.a.createElement(u,Object.assign({},{ref:n},l))}));function p(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var r=t.length,i=new Array(r);i[0]=d;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[l]="string"==typeof e?e:o,i[1]=s;for(var p=2;p=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i={sidebar_label:"Architecture",title:"Architecture"},s=[{value:"Qode",id:"qode",children:[]},{value:"Using NodeGui APIs",id:"using-nodegui-apis",children:[]},{value:"Using Nodejs APIs",id:"using-nodejs-apis",children:[]}],l={rightToc:s},c="wrapper";function d(e){var n=e.components,t=r(e,["components"]);return Object(o.b)(c,a({},l,t,{components:n,mdxType:"MDXLayout"}),Object(o.b)("p",null,"By looking at how NodeGui works internally, we would get a clear picture on why the APIs are designed the way they are."),Object(o.b)("h2",{id:"qode"},"Qode"),Object(o.b)("p",null,"NodeGui uses Qt for creating Windows and other UI element. Hence it exports thin wrappers of native C++ widgets from Qt into Javascript world. Now, every Qt application needs to initialize an instance of ",Object(o.b)("inlineCode",{parentName:"p"},"QApplication")," before creating widgets. The way we do it in C++ Qt application is (dont worry if it doesnt make sense right now):"),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-cpp"}),' #include \n #include \n\n int main(int argc, char *argv[])\n {\n QApplication app(argc, argv); // Important\n\n QPushButton hello("Hello world!");\n hello.resize(100, 30);\n hello.show();\n\n return app.exec(); // Important\n }\n')),Object(o.b)("p",null,"Like many Gui libraries Qt uses an event/message loop to handle events from widgets. Hence, when we call ",Object(o.b)("inlineCode",{parentName:"p"},"app.exec()")," Qt starts its message loop and blocks on that line. This is all good when there is only one message loop in the entire app. But since we want to use Qt with NodeJS and NodeJs has its own event loop, we cannot run both Qt and NodeJs on the same thread easily."),Object(o.b)("p",null,"Then following questions arise:"),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},Object(o.b)("strong",{parentName:"li"},"What if we run Qt on a separate thread?")," : No this is not possible since Qt has a requirement that it needs to run on the main thread."),Object(o.b)("li",{parentName:"ul"},Object(o.b)("strong",{parentName:"li"},"What if we run Node on a separate thread?")," : This would mean we need to build a complex bridge between Node and Qt threads to make them communicate. A strict no no.")),Object(o.b)("p",null,"So in order to make both NodeJs and Qt work together we need to find a way to merge these two event loop into one. This is achieved by a custom NodeJs binary we call as ",Object(o.b)("inlineCode",{parentName:"p"},"Qode"),"."),Object(o.b)("p",null,"Qode is a lightly modified fork of Node.js that merges Node's event loop with Qt's event loop. The idea of merging event loops is inspired by Electron and ",Object(o.b)("a",a({parentName:"p"},{href:"https://github.com/yue"}),"other")," Gui libraries developed by ",Object(o.b)("a",a({parentName:"p"},{href:"https://github.com/zcbenz"}),"zcbenz (Cheng Zhao)"),". It has been detailed in a post here: ",Object(o.b)("a",a({parentName:"p"},{href:"https://electronjs.org/blog/electron-internals-node-integration"}),"Electron internals"),". Hence, we reused the logic from electron to achieve smooth integration between Qt and NodeJs."),Object(o.b)("p",null,"The idea is to release a corresponding Qode binary for every NodeJs version that comes out after Node v12.6.\nThe source code of Qode can be found ",Object(o.b)("a",a({parentName:"p"},{href:"https://github.com/nodegui/qode"}),"here"),"."),Object(o.b)("p",null,Object(o.b)("em",{parentName:"p"},"*","PS: Qode is a fork of ",Object(o.b)("a",a({parentName:"em"},{href:"https://github.com/yue/yode"}),"Yode"))),Object(o.b)("h2",{id:"using-nodegui-apis"},"Using NodeGui APIs"),Object(o.b)("p",null,"NodeGui offers a number of APIs that support the development of a desktop\napplication. You'd access NodeGui's APIs by requiring its included module:"),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'require("@nodegui/nodegui");\n')),Object(o.b)("p",null,"A window in NodeGui is for instance created using the ",Object(o.b)("inlineCode",{parentName:"p"},"QMainWindow"),"\nclass."),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'const { QMainWindow } = require("@nodegui/nodegui");\n\nconst win = new QMainWindow();\n')),Object(o.b)("h2",{id:"using-nodejs-apis"},"Using Nodejs APIs"),Object(o.b)("p",null,"NodeGui exposes full access to Node.js. This has two important implications:"),Object(o.b)("ol",null,Object(o.b)("li",{parentName:"ol"},"All APIs available in Node.js are available in NodeGui. Calling the\nfollowing code from an NodeGui app works:")),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-javascript"}),"const fs = require(\"fs\");\n\nconst root = fs.readdirSync(\"/\");\n\n// This will print all files at the root-level of the disk,\n// either '/' or 'C:\\'.\nconsole.log(root);\n")),Object(o.b)("ol",{start:2},Object(o.b)("li",{parentName:"ol"},"You can use Node.js modules in your application. Pick your favorite npm\nmodule. npm offers currently the world's biggest repository of open-source\ncode – the ability to use well-maintained and tested code that used to be\nreserved for server applications is one of the key features of NodeGui.")),Object(o.b)("p",null,"As an example, to use the official AWS SDK in your application, you'd first\ninstall it as a dependency:"),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-sh"}),"npm install --save aws-sdk\n")),Object(o.b)("p",null,"Then, in your NodeGui app, require and use the module as if you were\nbuilding a Node.js application:"),Object(o.b)("pre",null,Object(o.b)("code",a({parentName:"pre"},{className:"language-javascript"}),'// A ready-to-use S3 Client\nconst S3 = require("aws-sdk/clients/s3");\n')),Object(o.b)("p",null,"There is one important caveat: Native Node.js modules (that is, modules that\nrequire compilation of native code before they can be used) will need to be\ncompiled with Qode or a compatible Node version to be used with NodeGui."),Object(o.b)("p",null,"The vast majority of Node.js modules are ",Object(o.b)("em",{parentName:"p"},"not")," native. Only 400 out of the\n~650.000 modules are native. However, if you do need native modules, please\nconsult ",Object(o.b)("a",a({parentName:"p"},{href:"/docs/guides/using-native-node-modules"}),"this guide on how to recompile them for NodeGui"),"."))}d.isMDXComponent=!0},161:function(e,n,t){"use strict";t.d(n,"a",(function(){return s})),t.d(n,"b",(function(){return p}));var o=t(0),a=t.n(o),r=a.a.createContext({}),i=function(e){var n=a.a.useContext(r),t=n;return e&&(t="function"==typeof e?e(n):Object.assign({},n,e)),t},s=function(e){var n=i(e.components);return a.a.createElement(r.Provider,{value:n},e.children)};var l="mdxType",c={inlineCode:"code",wrapper:function(e){var n=e.children;return a.a.createElement(a.a.Fragment,{},n)}},d=Object(o.forwardRef)((function(e,n){var t=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,l=function(e,n){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===n.indexOf(o)&&(t[o]=e[o]);return t}(e,["components","mdxType","originalType","parentName"]),d=i(t),p=o,u=d[s+"."+p]||d[p]||c[p]||r;return t?a.a.createElement(u,Object.assign({},{ref:n},l,{components:t})):a.a.createElement(u,Object.assign({},{ref:n},l))}));function p(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var r=t.length,i=new Array(r);i[0]=d;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[l]="string"==typeof e?e:o,i[1]=s;for(var p=2;p=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c={sidebar_label:"Scroll View",title:"Scroll View"},i=[],l={rightToc:i},p="wrapper";function u(e){var n=e.components,r=a(e,["components"]);return Object(t.b)(p,o({},l,r,{components:n,mdxType:"MDXLayout"}),Object(t.b)("p",null,"WIP"))}u.isMDXComponent=!0},161:function(e,n,r){"use strict";r.d(n,"a",(function(){return i})),r.d(n,"b",(function(){return f}));var t=r(0),o=r.n(t),a=o.a.createContext({}),c=function(e){var n=o.a.useContext(a),r=n;return e&&(r="function"==typeof e?e(n):Object.assign({},n,e)),r},i=function(e){var n=c(e.components);return o.a.createElement(a.Provider,{value:n},e.children)};var l="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return o.a.createElement(o.a.Fragment,{},n)}},u=Object(t.forwardRef)((function(e,n){var r=e.components,t=e.mdxType,a=e.originalType,i=e.parentName,l=function(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&-1===n.indexOf(t)&&(r[t]=e[t]);return r}(e,["components","mdxType","originalType","parentName"]),u=c(r),f=t,s=u[i+"."+f]||u[f]||p[f]||a;return r?o.a.createElement(s,Object.assign({},{ref:n},l,{components:r})):o.a.createElement(s,Object.assign({},{ref:n},l))}));function f(e,n){var r=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var a=r.length,c=new Array(a);c[0]=u;var i={};for(var p in n)hasOwnProperty.call(n,p)&&(i[p]=n[p]);i.originalType=e,i[l]="string"==typeof e?e:t,c[1]=i;for(var f=2;f=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c={sidebar_label:"Scroll View",title:"Scroll View"},i=[],l={rightToc:i},p="wrapper";function u(e){var n=e.components,r=a(e,["components"]);return Object(t.b)(p,o({},l,r,{components:n,mdxType:"MDXLayout"}),Object(t.b)("p",null,"WIP"))}u.isMDXComponent=!0},161:function(e,n,r){"use strict";r.d(n,"a",(function(){return i})),r.d(n,"b",(function(){return f}));var t=r(0),o=r.n(t),a=o.a.createContext({}),c=function(e){var n=o.a.useContext(a),r=n;return e&&(r="function"==typeof e?e(n):Object.assign({},n,e)),r},i=function(e){var n=c(e.components);return o.a.createElement(a.Provider,{value:n},e.children)};var l="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return o.a.createElement(o.a.Fragment,{},n)}},u=Object(t.forwardRef)((function(e,n){var r=e.components,t=e.mdxType,a=e.originalType,i=e.parentName,l=function(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&-1===n.indexOf(t)&&(r[t]=e[t]);return r}(e,["components","mdxType","originalType","parentName"]),u=c(r),f=t,s=u[i+"."+f]||u[f]||p[f]||a;return r?o.a.createElement(s,Object.assign({},{ref:n},l,{components:r})):o.a.createElement(s,Object.assign({},{ref:n},l))}));function f(e,n){var r=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var a=r.length,c=new Array(a);c[0]=u;var i={};for(var p in n)hasOwnProperty.call(n,p)&&(i[p]=n[p]);i.originalType=e,i[l]="string"==typeof e?e:t,c[1]=i;for(var f=2;f=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var a={sidebar_label:"Styling",title:"Styling"},i=[{value:"Overview",id:"overview",children:[]},{value:"Global styles",id:"global-styles",children:[]},{value:"Inline styles",id:"inline-styles",children:[]},{value:"Selectors",id:"selectors",children:[]},{value:"Pseudo states",id:"pseudo-states",children:[]},{value:"Cascading",id:"cascading",children:[]},{value:"Properties",id:"properties",children:[]},{value:"Supported properties",id:"supported-properties",children:[]},{value:"Advanced usage (Setting QObject Properties)",id:"advanced-usage-setting-qobject-properties",children:[]}],r={rightToc:i},c="wrapper";function p(e){var t=e.components,n=l(e,["components"]);return Object(o.b)(c,s({},r,n,{components:t,mdxType:"MDXLayout"}),Object(o.b)("p",null,"With NodeGui, you can style a widget to your needs. If you are familiar with CSS in the web world you would feel right at home. All widgets have a method ",Object(o.b)("inlineCode",{parentName:"p"},"setInlineStyle")," for setting inline styles for the respective widget. The style names and values usually match how CSS works on the web."),Object(o.b)("p",null,"Here's an example:"),Object(o.b)("pre",null,Object(o.b)("code",s({parentName:"pre"},{className:"language-js"}),'const { QLabel, QMainWindow } = require("@nodegui/nodegui");\n\nconst win = new QMainWindow();\n\nconst label = new QLabel(win);\nlabel.setText("Hello world");\nlabel.setInlineStyle("color: green; background-color: white;");\n\nwin.show();\nglobal.win = win;\n')),Object(o.b)("h2",{id:"overview"},"Overview"),Object(o.b)("p",null,"NodeGui makes use of ",Object(o.b)("a",s({parentName:"p"},{href:"https://doc.qt.io/qt-5/stylesheet-syntax.html"}),"Qt's stylesheet")," for styling. Qt Style Sheet terminology and syntactic rules are almost identical to those of HTML CSS. Additionally, NodeGui adds support for layout using flex properties like align-items, justify-content, etc. Flexbox layout support is added using ",Object(o.b)("a",s({parentName:"p"},{href:"https://github.com/facebook/yoga"}),"facebook's yoga library"),"."),Object(o.b)("p",null,"You would write your style properties in a string and pass it to the NodeGui widgets either via global styles or inline styles (similar to how it works in the web)."),Object(o.b)("h2",{id:"global-styles"},"Global styles"),Object(o.b)("p",null,"Lets take a look at an example:"),Object(o.b)("pre",null,Object(o.b)("code",s({parentName:"pre"},{className:"language-js"}),'const { QLabel, FlexLayout, QWidget } = require("@nodegui/nodegui");\n\nconst view = new QWidget();\nview.setObjectName("rootView");\nview.setLayout(new FlexLayout());\n\nconst label = new QLabel();\nlabel.setObjectName("helloLabel");\nlabel.setText("Hello");\n\nconst label2 = new QLabel();\nlabel2.setObjectName("worldLabel");\nlabel2.setText("World");\n\nview.layout.addWidget(label);\nview.layout.addWidget(label2);\n\nview.setStyleSheet(`\n #helloLabel {\n color: red;\n padding: 10px;\n }\n #worldLabel {\n color: green;\n padding: 10px;\n }\n #rootView {\n background-color: black;\n }\n`);\nview.show();\n(global as any).view = view;\n\n')),Object(o.b)("p",null,"In the case of global stylesheet you can define all your style properties in a stylesheet string and the tell the root view or window to set it as a stylsheet for it and its child widgets. The only difference here from web is that you can set a stylesheet on a widget at any level in the whole tree of widgets, the stylesheet will affect the widget and its children."),Object(o.b)("p",null,"In the above example, in order to reference a widget in a stylesheet we will assign it a ",Object(o.b)("inlineCode",{parentName:"p"},"objectName")," using setObjectName instance method. Think of objectName as something similar to an ",Object(o.b)("inlineCode",{parentName:"p"},"id")," in the case of web. Now using the objectName you could reference the widget in the stylesheet and set style properties on them. Do not worry about the layout stuff that is going on here, that will be covered in the next section."),Object(o.b)("p",null,"Global stylesheet really becomes powerful when you use things like pseudo-selectors (hover, checked, etc). It also has helps in implementing cascaded styles which allow you to style a group of widgets at once. We will see more about these features below."),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"More details on all the features and the syntax can be found here: ",Object(o.b)("a",s({parentName:"p"},{href:"https://doc.qt.io/qt-5/stylesheet-syntax.html"}),"https://doc.qt.io/qt-5/stylesheet-syntax.html"))),Object(o.b)("h2",{id:"inline-styles"},"Inline styles"),Object(o.b)("p",null,"Lets look at this example again:"),Object(o.b)("pre",null,Object(o.b)("code",s({parentName:"pre"},{className:"language-js"}),'const { QLabel, QMainWindow } = require("@nodegui/nodegui");\n\nconst win = new QMainWindow();\n\nconst label = new QLabel(win);\nlabel.setText("Hello world");\nlabel.setInlineStyle("color: green; background-color: white;");\n\nwin.show();\nglobal.win = win;\n')),Object(o.b)("p",null,"In most cases it would be easier to style the widgets inline. NodeGui supports inline styling using ",Object(o.b)("inlineCode",{parentName:"p"},"setInlineStyle")," instance method. Inline styles will only affect the widget to which the style is applied to and is often easier to understand and manage. All properties you use in the global stylesheet are available in inline styles as well."),Object(o.b)("h2",{id:"selectors"},"Selectors"),Object(o.b)("p",null,"NodeGui style sheets support all the selectors defined in CSS2.\nSome examples include:"),Object(o.b)("pre",null,Object(o.b)("code",s({parentName:"pre"},{className:"language-css"}),"* {\n color: blue;\n}\n\nQPushButton {\n padding: 10px;\n}\n\n#okButton {\n margin: 10px;\n}\n\n#mainView > QPushButton {\n margin: 10px;\n}\n")),Object(o.b)("p",null,"To see a complete list of selectors see here: ",Object(o.b)("a",s({parentName:"p"},{href:"https://doc.qt.io/qt-5/stylesheet-syntax.html#selector-types"}),"https://doc.qt.io/qt-5/stylesheet-syntax.html#selector-types")),Object(o.b)("h2",{id:"pseudo-states"},"Pseudo states"),Object(o.b)("p",null,"Like in the web, you can style your widget based on its state. An example would be, you might want the color of the button text to be red when its hovered upon. These are possible with pseudo states. Pseudo-states appear at the end of the selector, with a colon (:) in between."),Object(o.b)("pre",null,Object(o.b)("code",s({parentName:"pre"},{className:"language-css"}),"#okButton:hover {\n color: red;\n}\n")),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"More details here : ",Object(o.b)("a",s({parentName:"p"},{href:"https://doc.qt.io/qt-5/stylesheet-syntax.html#pseudo-states"}),"https://doc.qt.io/qt-5/stylesheet-syntax.html#pseudo-states"))),Object(o.b)("h2",{id:"cascading"},"Cascading"),Object(o.b)("p",null,"Style sheets can be set on the parent widgets and on child widgets. An arbitrary widget's effective style sheet is obtained by merging the style sheets set on the widget's ancestors (parent, grandparent, etc.)."),Object(o.b)("p",null,"When conflicts arise, the widget's own inline style sheet is always preferred to any inherited style sheet, irrespective of the specificity of the conflicting rules. Likewise, the parent widget's style sheet is preferred to the grandparent's, etc."),Object(o.b)("p",null,"The behaviour is similar to what we see on the web."),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"For more in depth examples see here: ",Object(o.b)("a",s({parentName:"p"},{href:"https://doc.qt.io/qt-5/stylesheet-syntax.html#cascading"}),"https://doc.qt.io/qt-5/stylesheet-syntax.html#cascading"))),Object(o.b)("h2",{id:"properties"},"Properties"),Object(o.b)("p",null,"NodeGui style sheets is a css string."),Object(o.b)("p",null,"For example:"),Object(o.b)("pre",null,Object(o.b)("code",s({parentName:"pre"},{}),"const textStyle = `\n color: 'green';\n padding: 12;\n height: '100%';\n`;\n\n")),Object(o.b)("p",null,"Here if you look carefully, you would notice that there are some differences in the way we write style properties as compared to web.\nThe quotes you see around ",Object(o.b)("inlineCode",{parentName:"p"},"'green'")," and ",Object(o.b)("inlineCode",{parentName:"p"},"'100%'")," are necessary so that Qt doesnt interpret them as numbers.\nSo the rule of thumb is that any integer based property like margin, border, etc can be written without quotes while any string property, it is better to surround them with quotes. PS: Qt does recognise some string based properties without quotes also."),Object(o.b)("h2",{id:"supported-properties"},"Supported properties"),Object(o.b)("p",null,"Since we are not running inside a web browser, there are few differences in the properties you could use in NodeGui vs in web."),Object(o.b)("p",null,"The complete list is detailed here: ",Object(o.b)("a",s({parentName:"p"},{href:"https://doc.qt.io/qt-5/stylesheet-reference.html#list-of-properties"}),"https://doc.qt.io/qt-5/stylesheet-reference.html#list-of-properties")),Object(o.b)("p",null,"Apart from the properties listed in the link, NodeGui also supports layout properties related to Flex. You can use all flex properties such as align-items, justify-content, flex, etc on all widgets. ",Object(o.b)("a",s({parentName:"p"},{href:"/docs/guides/layout"}),"The layout styling will be coverted in more detail in the section: Layout.")),Object(o.b)("h2",{id:"advanced-usage-setting-qobject-properties"},"Advanced usage (Setting QObject Properties)"),Object(o.b)("p",null,"In Qt, every widget has certain properties set on them using something called as ",Object(o.b)("a",s({parentName:"p"},{href:"https://doc.qt.io/qt-5/qobject.html#Q_PROPERTY"}),"Q_PROPERTY"),". There are many q-properties that are defined on each widget already. You can also define custom qproperties in the native C++ code yourself too. What does it have to do with styling ? The thing is some of these properties can be altered using qt stylesheet. In Qt's terminology, these properties are called designable properties."),Object(o.b)("p",null,"For example:"),Object(o.b)("pre",null,Object(o.b)("code",s({parentName:"pre"},{className:"language-css"}),"MyLabel {\n qproperty-alignment: AlignCenter;\n}\nMyGroupBox {\n qproperty-titlecolor: rgb(100, 200, 100);\n}\nQPushButton {\n qproperty-iconsize: 20px 20px;\n}\n")),Object(o.b)("p",null,'You can discover these properties by following Qt\'s documentation or by running a simple google search like "center text in QLabel using stylesheet in Qt". These are advanced properties and in practice will come in use rarely but its good to know.'),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"More details : ",Object(o.b)("a",s({parentName:"p"},{href:"https://doc.qt.io/qt-5/stylesheet-syntax.html#setting-qobject-properties"}),"https://doc.qt.io/qt-5/stylesheet-syntax.html#setting-qobject-properties"))),Object(o.b)("hr",null),Object(o.b)("p",null,"In this section, we mostly covered the paint properties in the NodeGui stylesheet. The next section would cover on how you can use flex to layout your widgets with stylesheet."))}p.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return b}));var o=n(0),s=n.n(o),l=s.a.createContext({}),a=function(e){var t=s.a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},i=function(e){var t=a(e.components);return s.a.createElement(l.Provider,{value:t},e.children)};var r="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return s.a.createElement(s.a.Fragment,{},t)}},p=Object(o.forwardRef)((function(e,t){var n=e.components,o=e.mdxType,l=e.originalType,i=e.parentName,r=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===t.indexOf(o)&&(n[o]=e[o]);return n}(e,["components","mdxType","originalType","parentName"]),p=a(n),b=o,d=p[i+"."+b]||p[b]||c[b]||l;return n?s.a.createElement(d,Object.assign({},{ref:t},r,{components:n})):s.a.createElement(d,Object.assign({},{ref:t},r))}));function b(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=n.length,a=new Array(l);a[0]=p;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[r]="string"==typeof e?e:o,a[1]=i;for(var b=2;b=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var a={sidebar_label:"Styling",title:"Styling"},i=[{value:"Overview",id:"overview",children:[]},{value:"Global styles",id:"global-styles",children:[]},{value:"Inline styles",id:"inline-styles",children:[]},{value:"Selectors",id:"selectors",children:[]},{value:"Pseudo states",id:"pseudo-states",children:[]},{value:"Cascading",id:"cascading",children:[]},{value:"Properties",id:"properties",children:[]},{value:"Supported properties",id:"supported-properties",children:[]},{value:"Advanced usage (Setting QObject Properties)",id:"advanced-usage-setting-qobject-properties",children:[]}],r={rightToc:i},c="wrapper";function p(e){var t=e.components,n=l(e,["components"]);return Object(o.b)(c,s({},r,n,{components:t,mdxType:"MDXLayout"}),Object(o.b)("p",null,"With NodeGui, you can style a widget to your needs. If you are familiar with CSS in the web world you would feel right at home. All widgets have a method ",Object(o.b)("inlineCode",{parentName:"p"},"setInlineStyle")," for setting inline styles for the respective widget. The style names and values usually match how CSS works on the web."),Object(o.b)("p",null,"Here's an example:"),Object(o.b)("pre",null,Object(o.b)("code",s({parentName:"pre"},{className:"language-js"}),'const { QLabel, QMainWindow } = require("@nodegui/nodegui");\n\nconst win = new QMainWindow();\n\nconst label = new QLabel(win);\nlabel.setText("Hello world");\nlabel.setInlineStyle("color: green; background-color: white;");\n\nwin.show();\nglobal.win = win;\n')),Object(o.b)("h2",{id:"overview"},"Overview"),Object(o.b)("p",null,"NodeGui makes use of ",Object(o.b)("a",s({parentName:"p"},{href:"https://doc.qt.io/qt-5/stylesheet-syntax.html"}),"Qt's stylesheet")," for styling. Qt Style Sheet terminology and syntactic rules are almost identical to those of HTML CSS. Additionally, NodeGui adds support for layout using flex properties like align-items, justify-content, etc. Flexbox layout support is added using ",Object(o.b)("a",s({parentName:"p"},{href:"https://github.com/facebook/yoga"}),"facebook's yoga library"),"."),Object(o.b)("p",null,"You would write your style properties in a string and pass it to the NodeGui widgets either via global styles or inline styles (similar to how it works in the web)."),Object(o.b)("h2",{id:"global-styles"},"Global styles"),Object(o.b)("p",null,"Lets take a look at an example:"),Object(o.b)("pre",null,Object(o.b)("code",s({parentName:"pre"},{className:"language-js"}),'const { QLabel, FlexLayout, QWidget } = require("@nodegui/nodegui");\n\nconst view = new QWidget();\nview.setObjectName("rootView");\nview.setLayout(new FlexLayout());\n\nconst label = new QLabel();\nlabel.setObjectName("helloLabel");\nlabel.setText("Hello");\n\nconst label2 = new QLabel();\nlabel2.setObjectName("worldLabel");\nlabel2.setText("World");\n\nview.layout.addWidget(label);\nview.layout.addWidget(label2);\n\nview.setStyleSheet(`\n #helloLabel {\n color: red;\n padding: 10px;\n }\n #worldLabel {\n color: green;\n padding: 10px;\n }\n #rootView {\n background-color: black;\n }\n`);\nview.show();\n(global as any).view = view;\n\n')),Object(o.b)("p",null,"In the case of global stylesheet you can define all your style properties in a stylesheet string and the tell the root view or window to set it as a stylsheet for it and its child widgets. The only difference here from web is that you can set a stylesheet on a widget at any level in the whole tree of widgets, the stylesheet will affect the widget and its children."),Object(o.b)("p",null,"In the above example, in order to reference a widget in a stylesheet we will assign it a ",Object(o.b)("inlineCode",{parentName:"p"},"objectName")," using setObjectName instance method. Think of objectName as something similar to an ",Object(o.b)("inlineCode",{parentName:"p"},"id")," in the case of web. Now using the objectName you could reference the widget in the stylesheet and set style properties on them. Do not worry about the layout stuff that is going on here, that will be covered in the next section."),Object(o.b)("p",null,"Global stylesheet really becomes powerful when you use things like pseudo-selectors (hover, checked, etc). It also has helps in implementing cascaded styles which allow you to style a group of widgets at once. We will see more about these features below."),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"More details on all the features and the syntax can be found here: ",Object(o.b)("a",s({parentName:"p"},{href:"https://doc.qt.io/qt-5/stylesheet-syntax.html"}),"https://doc.qt.io/qt-5/stylesheet-syntax.html"))),Object(o.b)("h2",{id:"inline-styles"},"Inline styles"),Object(o.b)("p",null,"Lets look at this example again:"),Object(o.b)("pre",null,Object(o.b)("code",s({parentName:"pre"},{className:"language-js"}),'const { QLabel, QMainWindow } = require("@nodegui/nodegui");\n\nconst win = new QMainWindow();\n\nconst label = new QLabel(win);\nlabel.setText("Hello world");\nlabel.setInlineStyle("color: green; background-color: white;");\n\nwin.show();\nglobal.win = win;\n')),Object(o.b)("p",null,"In most cases it would be easier to style the widgets inline. NodeGui supports inline styling using ",Object(o.b)("inlineCode",{parentName:"p"},"setInlineStyle")," instance method. Inline styles will only affect the widget to which the style is applied to and is often easier to understand and manage. All properties you use in the global stylesheet are available in inline styles as well."),Object(o.b)("h2",{id:"selectors"},"Selectors"),Object(o.b)("p",null,"NodeGui style sheets support all the selectors defined in CSS2.\nSome examples include:"),Object(o.b)("pre",null,Object(o.b)("code",s({parentName:"pre"},{className:"language-css"}),"* {\n color: blue;\n}\n\nQPushButton {\n padding: 10px;\n}\n\n#okButton {\n margin: 10px;\n}\n\n#mainView > QPushButton {\n margin: 10px;\n}\n")),Object(o.b)("p",null,"To see a complete list of selectors see here: ",Object(o.b)("a",s({parentName:"p"},{href:"https://doc.qt.io/qt-5/stylesheet-syntax.html#selector-types"}),"https://doc.qt.io/qt-5/stylesheet-syntax.html#selector-types")),Object(o.b)("h2",{id:"pseudo-states"},"Pseudo states"),Object(o.b)("p",null,"Like in the web, you can style your widget based on its state. An example would be, you might want the color of the button text to be red when its hovered upon. These are possible with pseudo states. Pseudo-states appear at the end of the selector, with a colon (:) in between."),Object(o.b)("pre",null,Object(o.b)("code",s({parentName:"pre"},{className:"language-css"}),"#okButton:hover {\n color: red;\n}\n")),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"More details here : ",Object(o.b)("a",s({parentName:"p"},{href:"https://doc.qt.io/qt-5/stylesheet-syntax.html#pseudo-states"}),"https://doc.qt.io/qt-5/stylesheet-syntax.html#pseudo-states"))),Object(o.b)("h2",{id:"cascading"},"Cascading"),Object(o.b)("p",null,"Style sheets can be set on the parent widgets and on child widgets. An arbitrary widget's effective style sheet is obtained by merging the style sheets set on the widget's ancestors (parent, grandparent, etc.)."),Object(o.b)("p",null,"When conflicts arise, the widget's own inline style sheet is always preferred to any inherited style sheet, irrespective of the specificity of the conflicting rules. Likewise, the parent widget's style sheet is preferred to the grandparent's, etc."),Object(o.b)("p",null,"The behaviour is similar to what we see on the web."),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"For more in depth examples see here: ",Object(o.b)("a",s({parentName:"p"},{href:"https://doc.qt.io/qt-5/stylesheet-syntax.html#cascading"}),"https://doc.qt.io/qt-5/stylesheet-syntax.html#cascading"))),Object(o.b)("h2",{id:"properties"},"Properties"),Object(o.b)("p",null,"NodeGui style sheets is a css string."),Object(o.b)("p",null,"For example:"),Object(o.b)("pre",null,Object(o.b)("code",s({parentName:"pre"},{}),"const textStyle = `\n color: 'green';\n padding: 12;\n height: '100%';\n`;\n\n")),Object(o.b)("p",null,"Here if you look carefully, you would notice that there are some differences in the way we write style properties as compared to web.\nThe quotes you see around ",Object(o.b)("inlineCode",{parentName:"p"},"'green'")," and ",Object(o.b)("inlineCode",{parentName:"p"},"'100%'")," are necessary so that Qt doesnt interpret them as numbers.\nSo the rule of thumb is that any integer based property like margin, border, etc can be written without quotes while any string property, it is better to surround them with quotes. PS: Qt does recognise some string based properties without quotes also."),Object(o.b)("h2",{id:"supported-properties"},"Supported properties"),Object(o.b)("p",null,"Since we are not running inside a web browser, there are few differences in the properties you could use in NodeGui vs in web."),Object(o.b)("p",null,"The complete list is detailed here: ",Object(o.b)("a",s({parentName:"p"},{href:"https://doc.qt.io/qt-5/stylesheet-reference.html#list-of-properties"}),"https://doc.qt.io/qt-5/stylesheet-reference.html#list-of-properties")),Object(o.b)("p",null,"Apart from the properties listed in the link, NodeGui also supports layout properties related to Flex. You can use all flex properties such as align-items, justify-content, flex, etc on all widgets. ",Object(o.b)("a",s({parentName:"p"},{href:"/docs/guides/layout"}),"The layout styling will be coverted in more detail in the section: Layout.")),Object(o.b)("h2",{id:"advanced-usage-setting-qobject-properties"},"Advanced usage (Setting QObject Properties)"),Object(o.b)("p",null,"In Qt, every widget has certain properties set on them using something called as ",Object(o.b)("a",s({parentName:"p"},{href:"https://doc.qt.io/qt-5/qobject.html#Q_PROPERTY"}),"Q_PROPERTY"),". There are many q-properties that are defined on each widget already. You can also define custom qproperties in the native C++ code yourself too. What does it have to do with styling ? The thing is some of these properties can be altered using qt stylesheet. In Qt's terminology, these properties are called designable properties."),Object(o.b)("p",null,"For example:"),Object(o.b)("pre",null,Object(o.b)("code",s({parentName:"pre"},{className:"language-css"}),"MyLabel {\n qproperty-alignment: AlignCenter;\n}\nMyGroupBox {\n qproperty-titlecolor: rgb(100, 200, 100);\n}\nQPushButton {\n qproperty-iconsize: 20px 20px;\n}\n")),Object(o.b)("p",null,'You can discover these properties by following Qt\'s documentation or by running a simple google search like "center text in QLabel using stylesheet in Qt". These are advanced properties and in practice will come in use rarely but its good to know.'),Object(o.b)("blockquote",null,Object(o.b)("p",{parentName:"blockquote"},"More details : ",Object(o.b)("a",s({parentName:"p"},{href:"https://doc.qt.io/qt-5/stylesheet-syntax.html#setting-qobject-properties"}),"https://doc.qt.io/qt-5/stylesheet-syntax.html#setting-qobject-properties"))),Object(o.b)("hr",null),Object(o.b)("p",null,"In this section, we mostly covered the paint properties in the NodeGui stylesheet. The next section would cover on how you can use flex to layout your widgets with stylesheet."))}p.isMDXComponent=!0},161:function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return b}));var o=n(0),s=n.n(o),l=s.a.createContext({}),a=function(e){var t=s.a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):Object.assign({},t,e)),n},i=function(e){var t=a(e.components);return s.a.createElement(l.Provider,{value:t},e.children)};var r="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return s.a.createElement(s.a.Fragment,{},t)}},p=Object(o.forwardRef)((function(e,t){var n=e.components,o=e.mdxType,l=e.originalType,i=e.parentName,r=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===t.indexOf(o)&&(n[o]=e[o]);return n}(e,["components","mdxType","originalType","parentName"]),p=a(n),b=o,d=p[i+"."+b]||p[b]||c[b]||l;return n?s.a.createElement(d,Object.assign({},{ref:t},r,{components:n})):s.a.createElement(d,Object.assign({},{ref:t},r))}));function b(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=n.length,a=new Array(l);a[0]=p;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[r]="string"==typeof e?e:o,a[1]=i;for(var b=2;b=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var r={sidebar_label:"Learn the Basics",title:"Learn the Basics"},s=[{value:"NodeGui development in a nutshell",id:"nodegui-development-in-a-nutshell",children:[]},{value:"What's going on here?",id:"whats-going-on-here",children:[]},{value:"Trying out the starter project",id:"trying-out-the-starter-project",children:[]},{value:"What else other than a basic window?",id:"what-else-other-than-a-basic-window",children:[]}],l={rightToc:s},c="wrapper";function u(e){var n=e.components,t=i(e,["components"]);return Object(a.b)(c,o({},l,t,{components:n,mdxType:"MDXLayout"}),Object(a.b)("p",null,"NodeGui uses native components instead of web based components as building blocks. So to understand the basic structure of a NodeGui app, you need to be familiar with Javascript or Typescript. This tutorial is aimed at everyone who has some web experience with web development."),Object(a.b)("h2",{id:"nodegui-development-in-a-nutshell"},"NodeGui development in a nutshell"),Object(a.b)("p",null,"As far as development is concerned, an NodeGui application is essentially a Node.js application. The starting point is a ",Object(a.b)("inlineCode",{parentName:"p"},"package.json")," that is identical to that of a Node.js module. A most basic NodeGui app would have the following\nfolder structure:"),Object(a.b)("pre",null,Object(a.b)("code",o({parentName:"pre"},{className:"language-text"}),"your-app/\n├── package.json\n├── index.js\n")),Object(a.b)("p",null,"All APIs and features found in NodeGui are accessible through the ",Object(a.b)("inlineCode",{parentName:"p"},"@nodegui/nodegui")," module, which can be required like any other Node.js module. Additionally you have access to all Node.js apis and node modules."),Object(a.b)("pre",null,Object(a.b)("code",o({parentName:"pre"},{className:"language-javascript"}),'require("@nodegui/nodegui");\n')),Object(a.b)("p",null,"The ",Object(a.b)("inlineCode",{parentName:"p"},"@nodegui/nodegui")," module exports features in namespaces. As an example, a window can be created\nusing the ",Object(a.b)("inlineCode",{parentName:"p"},"QMainWindow")," class. A simple ",Object(a.b)("inlineCode",{parentName:"p"},"main.js")," file might open a window:"),Object(a.b)("pre",null,Object(a.b)("code",o({parentName:"pre"},{className:"language-javascript"}),'const { QMainWindow } = require("@nodegui/nodegui");\n\nconst win = new QMainWindow();\nwin.show();\n\nglobal.win = win; // To prevent win from being garbage collected.\n')),Object(a.b)("p",null,"The ",Object(a.b)("inlineCode",{parentName:"p"},"index.js")," should create windows and handle all the system events your\napplication might encounter."),Object(a.b)("h2",{id:"whats-going-on-here"},"What's going on here?"),Object(a.b)("p",null,"Firstly, we are running a regular Node.js app. This means that we are not running in a browser environment. The window you see is actually a native widget created by Qt. QMainWindow is essentially a lightweight javascript wrapper over Qt's QMainWindow. Hence every method you call on QMainWindow instance is actually affecting a native window widget. This is very light weight as compared to browser based solutions and hence is more closer to the Operating system.s"),Object(a.b)("h2",{id:"trying-out-the-starter-project"},"Trying out the starter project"),Object(a.b)("p",null,"Clone and run the code by using the\n",Object(a.b)("a",o({parentName:"p"},{href:"https://github.com/nodegui/nodegui-starter"}),Object(a.b)("inlineCode",{parentName:"a"},"nodegui/nodegui-starter"))," repository."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"Note"),": Running this requires ",Object(a.b)("a",o({parentName:"p"},{href:"https://git-scm.com"}),"Git")," and ",Object(a.b)("a",o({parentName:"p"},{href:"https://www.npmjs.com/"}),"npm"),"."),Object(a.b)("pre",null,Object(a.b)("code",o({parentName:"pre"},{className:"language-sh"}),"# Clone the repository\n$ git clone https://github.com/nodegui/nodegui-starter\n# Go into the repository\n$ cd nodegui-starter\n# Install dependencies\n$ npm install\n# Run the app\n$ npm start\n")),Object(a.b)("h2",{id:"what-else-other-than-a-basic-window"},"What else other than a basic window?"),Object(a.b)("p",null,"NodeGui has support for basic widgets like QWidget (similar to div), QCheckBox, QPushButton and many more.\nYou can take a look at the list of native widgets that NodeGui currently supports here : ",Object(a.b)("a",o({parentName:"p"},{href:"/docs/api/QWidget"}),"Native widgets in NodeGui"),".\nWith time more widgets and APIs will be added to NodeGui. Apart from modules in NodeGui, you also have access to the entire node modules ecosystem. Thus, any node module that you can use with Node.js, can be used with NodeGui. This makes it extremely powerful."),Object(a.b)("p",null,"Fine, I want something more custom and beautiful than just native looking widgets. What do I do?"),Object(a.b)("p",null,"To make things more beautiful, you will have to ",Object(a.b)("a",o({parentName:"p"},{href:"styling"}),"learn about styling"),". Lets take a look at that next."))}u.isMDXComponent=!0},161:function(e,n,t){"use strict";t.d(n,"a",(function(){return s})),t.d(n,"b",(function(){return d}));var a=t(0),o=t.n(a),i=o.a.createContext({}),r=function(e){var n=o.a.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):Object.assign({},n,e)),t},s=function(e){var n=r(e.components);return o.a.createElement(i.Provider,{value:n},e.children)};var l="mdxType",c={inlineCode:"code",wrapper:function(e){var n=e.children;return o.a.createElement(o.a.Fragment,{},n)}},u=Object(a.forwardRef)((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,l=function(e,n){var t={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===n.indexOf(a)&&(t[a]=e[a]);return t}(e,["components","mdxType","originalType","parentName"]),u=r(t),d=a,p=u[s+"."+d]||u[d]||c[d]||i;return t?o.a.createElement(p,Object.assign({},{ref:n},l,{components:t})):o.a.createElement(p,Object.assign({},{ref:n},l))}));function d(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,r=new Array(i);r[0]=u;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[l]="string"==typeof e?e:a,r[1]=s;for(var d=2;d=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var r={sidebar_label:"Learn the Basics",title:"Learn the Basics"},s=[{value:"NodeGui development in a nutshell",id:"nodegui-development-in-a-nutshell",children:[]},{value:"What's going on here?",id:"whats-going-on-here",children:[]},{value:"Trying out the starter project",id:"trying-out-the-starter-project",children:[]},{value:"What else other than a basic window?",id:"what-else-other-than-a-basic-window",children:[]}],l={rightToc:s},c="wrapper";function u(e){var n=e.components,t=i(e,["components"]);return Object(a.b)(c,o({},l,t,{components:n,mdxType:"MDXLayout"}),Object(a.b)("p",null,"NodeGui uses native components instead of web based components as building blocks. So to understand the basic structure of a NodeGui app, you need to be familiar with Javascript or Typescript. This tutorial is aimed at everyone who has some web experience with web development."),Object(a.b)("h2",{id:"nodegui-development-in-a-nutshell"},"NodeGui development in a nutshell"),Object(a.b)("p",null,"As far as development is concerned, an NodeGui application is essentially a Node.js application. The starting point is a ",Object(a.b)("inlineCode",{parentName:"p"},"package.json")," that is identical to that of a Node.js module. A most basic NodeGui app would have the following\nfolder structure:"),Object(a.b)("pre",null,Object(a.b)("code",o({parentName:"pre"},{className:"language-text"}),"your-app/\n├── package.json\n├── index.js\n")),Object(a.b)("p",null,"All APIs and features found in NodeGui are accessible through the ",Object(a.b)("inlineCode",{parentName:"p"},"@nodegui/nodegui")," module, which can be required like any other Node.js module. Additionally you have access to all Node.js apis and node modules."),Object(a.b)("pre",null,Object(a.b)("code",o({parentName:"pre"},{className:"language-javascript"}),'require("@nodegui/nodegui");\n')),Object(a.b)("p",null,"The ",Object(a.b)("inlineCode",{parentName:"p"},"@nodegui/nodegui")," module exports features in namespaces. As an example, a window can be created\nusing the ",Object(a.b)("inlineCode",{parentName:"p"},"QMainWindow")," class. A simple ",Object(a.b)("inlineCode",{parentName:"p"},"main.js")," file might open a window:"),Object(a.b)("pre",null,Object(a.b)("code",o({parentName:"pre"},{className:"language-javascript"}),'const { QMainWindow } = require("@nodegui/nodegui");\n\nconst win = new QMainWindow();\nwin.show();\n\nglobal.win = win; // To prevent win from being garbage collected.\n')),Object(a.b)("p",null,"The ",Object(a.b)("inlineCode",{parentName:"p"},"index.js")," should create windows and handle all the system events your\napplication might encounter."),Object(a.b)("h2",{id:"whats-going-on-here"},"What's going on here?"),Object(a.b)("p",null,"Firstly, we are running a regular Node.js app. This means that we are not running in a browser environment. The window you see is actually a native widget created by Qt. QMainWindow is essentially a lightweight javascript wrapper over Qt's QMainWindow. Hence every method you call on QMainWindow instance is actually affecting a native window widget. This is very light weight as compared to browser based solutions and hence is more closer to the Operating system.s"),Object(a.b)("h2",{id:"trying-out-the-starter-project"},"Trying out the starter project"),Object(a.b)("p",null,"Clone and run the code by using the\n",Object(a.b)("a",o({parentName:"p"},{href:"https://github.com/nodegui/nodegui-starter"}),Object(a.b)("inlineCode",{parentName:"a"},"nodegui/nodegui-starter"))," repository."),Object(a.b)("p",null,Object(a.b)("strong",{parentName:"p"},"Note"),": Running this requires ",Object(a.b)("a",o({parentName:"p"},{href:"https://git-scm.com"}),"Git")," and ",Object(a.b)("a",o({parentName:"p"},{href:"https://www.npmjs.com/"}),"npm"),"."),Object(a.b)("pre",null,Object(a.b)("code",o({parentName:"pre"},{className:"language-sh"}),"# Clone the repository\n$ git clone https://github.com/nodegui/nodegui-starter\n# Go into the repository\n$ cd nodegui-starter\n# Install dependencies\n$ npm install\n# Run the app\n$ npm start\n")),Object(a.b)("h2",{id:"what-else-other-than-a-basic-window"},"What else other than a basic window?"),Object(a.b)("p",null,"NodeGui has support for basic widgets like QWidget (similar to div), QCheckBox, QPushButton and many more.\nYou can take a look at the list of native widgets that NodeGui currently supports here : ",Object(a.b)("a",o({parentName:"p"},{href:"/docs/api/QWidget"}),"Native widgets in NodeGui"),".\nWith time more widgets and APIs will be added to NodeGui. Apart from modules in NodeGui, you also have access to the entire node modules ecosystem. Thus, any node module that you can use with Node.js, can be used with NodeGui. This makes it extremely powerful."),Object(a.b)("p",null,"Fine, I want something more custom and beautiful than just native looking widgets. What do I do?"),Object(a.b)("p",null,"To make things more beautiful, you will have to ",Object(a.b)("a",o({parentName:"p"},{href:"styling"}),"learn about styling"),". Lets take a look at that next."))}u.isMDXComponent=!0},161:function(e,n,t){"use strict";t.d(n,"a",(function(){return s})),t.d(n,"b",(function(){return d}));var a=t(0),o=t.n(a),i=o.a.createContext({}),r=function(e){var n=o.a.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):Object.assign({},n,e)),t},s=function(e){var n=r(e.components);return o.a.createElement(i.Provider,{value:n},e.children)};var l="mdxType",c={inlineCode:"code",wrapper:function(e){var n=e.children;return o.a.createElement(o.a.Fragment,{},n)}},u=Object(a.forwardRef)((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,l=function(e,n){var t={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===n.indexOf(a)&&(t[a]=e[a]);return t}(e,["components","mdxType","originalType","parentName"]),u=r(t),d=a,p=u[s+"."+d]||u[d]||c[d]||i;return t?o.a.createElement(p,Object.assign({},{ref:n},l,{components:t})):o.a.createElement(p,Object.assign({},{ref:n},l))}));function d(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,r=new Array(i);r[0]=u;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[l]="string"==typeof e?e:a,r[1]=s;for(var d=2;d=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var i={sidebar_label:"Native Node Modules",title:"Using native Node Modules"},l=[{value:"How to install native modules",id:"how-to-install-native-modules",children:[]},{value:"Troubleshooting",id:"troubleshooting",children:[]},{value:"Modules that rely on node-pre-gyp",id:"modules-that-rely-on-node-pre-gyp",children:[]}],u={rightToc:l},d="wrapper";function s(e){var n=e.components,t=a(e,["components"]);return Object(o.b)(d,r({},u,t,{components:n,mdxType:"MDXLayout"}),Object(o.b)("p",null,"Native Node modules are supported by NodeGui, but since NodeGui is very\nlikely to use a different V8 version from the Node binary installed on your\nsystem, the modules you use will need to be recompiled for NodeGui's node/v8 version. Otherwise,\nyou will get the following class of error when you try to run your app:"),Object(o.b)("pre",null,Object(o.b)("code",r({parentName:"pre"},{className:"language-sh"}),"Error: The module '/path/to/native/module.node'\nwas compiled against a different Node.js version using\nNODE_MODULE_VERSION $XYZ. This version of Node.js requires\nNODE_MODULE_VERSION $ABC. Please try re-compiling or re-installing\nthe module (for instance, using `npm rebuild` or `npm install`).\n")),Object(o.b)("h2",{id:"how-to-install-native-modules"},"How to install native modules"),Object(o.b)("p",null,"To compile native Node modules against a build of NodeGui that doesn't\nmatch a public release, instruct ",Object(o.b)("inlineCode",{parentName:"p"},"npm")," to use the version of Qode (NodeJs) you have bundled\nwith your custom build."),Object(o.b)("pre",null,Object(o.b)("code",r({parentName:"pre"},{className:"language-sh"}),"npm rebuild --nodedir=/path/to/nodegui/vendor/qode\n")),Object(o.b)("p",null,"or"),Object(o.b)("pre",null,Object(o.b)("code",r({parentName:"pre"},{className:"language-sh"}),"qode /path/to/npm rebuild\n")),Object(o.b)("h2",{id:"troubleshooting"},"Troubleshooting"),Object(o.b)("p",null,"If you installed a native module and found it was not working, you need to check\nthe following things:"),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"When in doubt, rebuild native modules with qode first."),Object(o.b)("li",{parentName:"ul"},"Make sure the native module is compatible with the target platform and\narchitecture for your NodeGui app."),Object(o.b)("li",{parentName:"ul"},"After you upgrade NodeGui, you usually need to rebuild the modules.")),Object(o.b)("h2",{id:"modules-that-rely-on-node-pre-gyp"},"Modules that rely on ",Object(o.b)("inlineCode",{parentName:"h2"},"node-pre-gyp")),Object(o.b)("p",null,"The ",Object(o.b)("a",r({parentName:"p"},{href:"https://github.com/mapbox/node-pre-gyp"}),Object(o.b)("inlineCode",{parentName:"a"},"node-pre-gyp")," tool")," provides a way to deploy native Node\nmodules with prebuilt binaries, and many popular modules are using it."),Object(o.b)("p",null,"Usually those modules work fine under NodeGui, but sometimes when NodeGui uses\na newer version of V8 than Node and/or there are ABI changes, bad things may\nhappen. So in general, it is recommended to always build native modules from\nsource code."))}s.isMDXComponent=!0},161:function(e,n,t){"use strict";t.d(n,"a",(function(){return l})),t.d(n,"b",(function(){return p}));var o=t(0),r=t.n(o),a=r.a.createContext({}),i=function(e){var n=r.a.useContext(a),t=n;return e&&(t="function"==typeof e?e(n):Object.assign({},n,e)),t},l=function(e){var n=i(e.components);return r.a.createElement(a.Provider,{value:n},e.children)};var u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.a.createElement(r.a.Fragment,{},n)}},s=Object(o.forwardRef)((function(e,n){var t=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=function(e,n){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===n.indexOf(o)&&(t[o]=e[o]);return t}(e,["components","mdxType","originalType","parentName"]),s=i(t),p=o,c=s[l+"."+p]||s[p]||d[p]||a;return t?r.a.createElement(c,Object.assign({},{ref:n},u,{components:t})):r.a.createElement(c,Object.assign({},{ref:n},u))}));function p(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=s;var l={};for(var d in n)hasOwnProperty.call(n,d)&&(l[d]=n[d]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var p=2;p=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var i={sidebar_label:"Native Node Modules",title:"Using native Node Modules"},l=[{value:"How to install native modules",id:"how-to-install-native-modules",children:[]},{value:"Troubleshooting",id:"troubleshooting",children:[]},{value:"Modules that rely on node-pre-gyp",id:"modules-that-rely-on-node-pre-gyp",children:[]}],u={rightToc:l},d="wrapper";function s(e){var n=e.components,t=a(e,["components"]);return Object(o.b)(d,r({},u,t,{components:n,mdxType:"MDXLayout"}),Object(o.b)("p",null,"Native Node modules are supported by NodeGui, but since NodeGui is very\nlikely to use a different V8 version from the Node binary installed on your\nsystem, the modules you use will need to be recompiled for NodeGui's node/v8 version. Otherwise,\nyou will get the following class of error when you try to run your app:"),Object(o.b)("pre",null,Object(o.b)("code",r({parentName:"pre"},{className:"language-sh"}),"Error: The module '/path/to/native/module.node'\nwas compiled against a different Node.js version using\nNODE_MODULE_VERSION $XYZ. This version of Node.js requires\nNODE_MODULE_VERSION $ABC. Please try re-compiling or re-installing\nthe module (for instance, using `npm rebuild` or `npm install`).\n")),Object(o.b)("h2",{id:"how-to-install-native-modules"},"How to install native modules"),Object(o.b)("p",null,"To compile native Node modules against a build of NodeGui that doesn't\nmatch a public release, instruct ",Object(o.b)("inlineCode",{parentName:"p"},"npm")," to use the version of Qode (NodeJs) you have bundled\nwith your custom build."),Object(o.b)("pre",null,Object(o.b)("code",r({parentName:"pre"},{className:"language-sh"}),"npm rebuild --nodedir=/path/to/nodegui/vendor/qode\n")),Object(o.b)("p",null,"or"),Object(o.b)("pre",null,Object(o.b)("code",r({parentName:"pre"},{className:"language-sh"}),"qode /path/to/npm rebuild\n")),Object(o.b)("h2",{id:"troubleshooting"},"Troubleshooting"),Object(o.b)("p",null,"If you installed a native module and found it was not working, you need to check\nthe following things:"),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"When in doubt, rebuild native modules with qode first."),Object(o.b)("li",{parentName:"ul"},"Make sure the native module is compatible with the target platform and\narchitecture for your NodeGui app."),Object(o.b)("li",{parentName:"ul"},"After you upgrade NodeGui, you usually need to rebuild the modules.")),Object(o.b)("h2",{id:"modules-that-rely-on-node-pre-gyp"},"Modules that rely on ",Object(o.b)("inlineCode",{parentName:"h2"},"node-pre-gyp")),Object(o.b)("p",null,"The ",Object(o.b)("a",r({parentName:"p"},{href:"https://github.com/mapbox/node-pre-gyp"}),Object(o.b)("inlineCode",{parentName:"a"},"node-pre-gyp")," tool")," provides a way to deploy native Node\nmodules with prebuilt binaries, and many popular modules are using it."),Object(o.b)("p",null,"Usually those modules work fine under NodeGui, but sometimes when NodeGui uses\na newer version of V8 than Node and/or there are ABI changes, bad things may\nhappen. So in general, it is recommended to always build native modules from\nsource code."))}s.isMDXComponent=!0},161:function(e,n,t){"use strict";t.d(n,"a",(function(){return l})),t.d(n,"b",(function(){return p}));var o=t(0),r=t.n(o),a=r.a.createContext({}),i=function(e){var n=r.a.useContext(a),t=n;return e&&(t="function"==typeof e?e(n):Object.assign({},n,e)),t},l=function(e){var n=i(e.components);return r.a.createElement(a.Provider,{value:n},e.children)};var u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.a.createElement(r.a.Fragment,{},n)}},s=Object(o.forwardRef)((function(e,n){var t=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=function(e,n){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===n.indexOf(o)&&(t[o]=e[o]);return t}(e,["components","mdxType","originalType","parentName"]),s=i(t),p=o,c=s[l+"."+p]||s[p]||d[p]||a;return t?r.a.createElement(c,Object.assign({},{ref:n},u,{components:t})):r.a.createElement(c,Object.assign({},{ref:n},u))}));function p(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=s;var l={};for(var d in n)hasOwnProperty.call(n,d)&&(l[d]=n[d]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var p=2;p - + Component @@ -28,19 +28,19 @@

Component

Abstract class that is root most base class for all widgets and layouts in the NodeGui World.

This class is used to add core properties to all widgets, layouts etc in NodeGui world. Currently it helps us maintain references to the native C++ instance of the widget or layout. It also helps in preventing gc of child elements of a layout or widget

Component is an abstract class and hence no instances of the same should be created. It exists so that we can add core functionalities to all widgets and layouts easily. This is an internal class.

Component is the base class for YogaWidget and NodeLayout which means all widgets and layouts inherit it aswell. Its the root base class in NodeGui world

To get a clearer picture you can take a look at the Component source code here: src/lib/core/Component/index.ts

Static Methods

There are no public static methods for Component.

Instance Properties

There are no public instance properties for Component.

Instance Methods

There are no public instance methods for Component.

- + - + - + - + diff --git a/docs/api/EventWidget/index.html b/docs/api/EventWidget/index.html index d676a815b..3c1215cb7 100644 --- a/docs/api/EventWidget/index.html +++ b/docs/api/EventWidget/index.html @@ -3,7 +3,7 @@ - + EventWidget @@ -28,25 +28,25 @@

EventWidget

Abstract class that adds event handling support to all widgets.

This class implements an event emitter and merges it with Qt's event and signal system. It allows us to register and unregister event and signal listener at will from javascript

EventWidget is an abstract class and hence no instances of the same should be created. It exists so that we can add event handling functionalities to all widget's easily. This is an internal class.

EventWidget is the base class for NodeWidget which means all widgets inherit it aswell. It inherits from another abstract class YogaWidget

Example

const { QWidget, QWidgetEvents } = require("@nodegui/nodegui");
const view = new QWidget();
// addEventListener is a method from EventWidget
view.addEventListener("MouseMove", () => {
console.log("mouse moved");
});
or;
// addEventListener is a method from EventWidget
view.addEventListener(QWidgetEvents.MouseMove, () => {
console.log("mouse moved");
});

EventWidget will contain all methods and properties that are useful to handle events and signals of widgets in the NodeGui world.

Static Methods

EventWidget can access all the static methods defined in YogaWidget

Instance Properties

EventWidget can access all the instance properties defined in YogaWidget

Instance Methods

EventWidget can access all the instance methods defined in YogaWidget

Additionally it also has the following instance methods:

widget.addEventListener(eventType, callback)

Adds an event listener to the widget to listen to events that occur on a widget.

  • eventType string - The event or signal you wish to listen to for the widget. Every widget exports its own enum of all possible events and signal types it can take. For example: QWidget exports QWidgetEvents, QPushButton exports QPushButtonEvents.

  • callback (payload?: NativeEvent | any) => void - A callback function to invoke when an event occurs. Usually you receive a nativeEvent or a string as argument.

widget.removeEventListener(eventType, callback?)

Removes the specified event listener from the widget.

  • eventType string - The event or signal for which you wish to remove the listener.

  • callback Function (Optional) - If specified the removeEventListener will remove the specified listener only, otherwise all eventlisteners of the eventType on the widget will be removed.

- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/FlexLayout/index.html b/docs/api/FlexLayout/index.html index aaadbc0c1..0b09eba73 100644 --- a/docs/api/FlexLayout/index.html +++ b/docs/api/FlexLayout/index.html @@ -3,7 +3,7 @@ - + FlexLayout @@ -28,25 +28,25 @@

FlexLayout

Custom layout to help layout child widgets using flex layout.

This class is a JS wrapper around custom Qt layout implemented using Yoga

A FlexLayout can be used to layout all child NodeGui widgets using flex.

FlexLayout inherits from NodeLayout

Example

const { FlexLayout, QWidget, QLabel } = require("@nodegui/nodegui");
const view = new QWidget();
const layout = new FlexLayout();
view.setLayout(layout);
const label = new QLabel();
label.setText("label1");
const label2 = new QLabel();
label2.setText("label2");
layout.addWidget(label);
layout.addWidget(label2);

Static Methods

FlexLayout can access all the static methods defined in NodeLayout

Instance Properties

FlexLayout can access all the instance properties defined in NodeLayout

Instance Methods

FlexLayout can access all the instance methods defined in NodeLayout

Additionally it also has the following instance methods:

layout.addWidget(childWidget, childFlexNode?)

Adds the childWidget to the layout. It calls the native method of custom FlexLayout.

  • childWidget NodeWidget - child widget that needs to be added to the layout.
  • childFlexNode flexNode ref (Optional) - flexNode reference of the child widget. You can get this by calling childWidget.getFlexNode().

layout.insertChildBefore(childWidget, beforeChildWidget, childFlexNode?, beforeChildFlexNode?)

Adds the childWidget before another already set childWidget in the layout. It calls the native method of custom FlexLayout.

  • childWidget NodeWidget - child widget that needs to be added to the layout.
  • beforeChildWidget NodeWidget - the widget before which the childWidget needs to be added in the layout.
  • childFlexNode flexNode ref (Optional) - flexNode reference of the child widget. You can get this by calling childWidget.getFlexNode().
  • beforeChildFlexNode flexNode ref (Optional) - flexNode reference of the before child widget. You can get this by calling beforeChildWidget.getFlexNode().

layout.removeWidget(childWidget, childFlexNode?)

Removes the childWidget from the layout. It calls the native method of custom FlexLayout.

  • childWidget NodeWidget - child widget that needs to be added to the layout.
  • childFlexNode flexNode ref (Optional) - flexNode reference of the child widget. You can get this by calling childWidget.getFlexNode().

layout.setFlexNode(flexNode)

A layout doesnt have its own flexNode. This method sets the flex Node to use for calculating position of the child widgets. Hence this should be always equal to the flex node of widget for which this layout is set. This is called internally by widget.setLayout.

  • flexNode flexNode ref - flexNode reference of the widget for which this layout is set. You can get this by calling widget.getFlexNode().
- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/NodeLayout/index.html b/docs/api/NodeLayout/index.html index 3d4f90613..bd4ef8e6a 100644 --- a/docs/api/NodeLayout/index.html +++ b/docs/api/NodeLayout/index.html @@ -3,7 +3,7 @@ - + NodeLayout @@ -28,25 +28,25 @@

NodeLayout

Abstract class to add functionalities common to all Layout.

This class implements all methods, properties of Qt's QLayout class so that it can be inherited by all layouts

NodeLayout is an abstract class and hence no instances of the same should be created. It exists so that we can add similar functionalities to all layout's easily. Additionally it helps in typechecking process.

NodeLayout is the base class for all layouts. It inherits from another abstract class Component

Example

const {
NodeLayout,
NodeWidget,
FlexLayout,
GridLayout,
QPushButton,
QWidget
} = require("@nodegui/nodegui");
// addChildToLayout can accept any layout since it expects NodeLayout
const addChildToLayout = (layout: NodeLayout, widget: NodeWidget) => {
layout.addWidget(widget);
};
addChildToLayout(new FlexLayout(), new QPushButton());
addChildToLayout(new GridLayout(), new QWidget());

NodeLayout will list all methods and properties that are common to all layouts in the NodeGui world.

Static Methods

NodeLayout can access all the static methods defined in Component

Instance Properties

NodeLayout can access all the instance properties defined in Component

Additionally it also has the following instance properties:

layout.type

This will return the string layout for all layouts.

Instance Methods

NodeLayout can access all the instance methods defined in Component

Additionally it also has the following instance methods:

layout.addWidget(childWidget, ...args)

This is an abstract method in NodeLayout class. All Layouts inheriting from NodeLayout should implement this method.

  • childWidget NodeWidget - Any widget in the NodeGui world.
  • ...args any[] - Additional params as required by the layout.

layout.activate()

Redoes the layout for parent widget of this layout if necessary. Returns true if the layout was redone.

layout.invalidate()

Invalidates any cached information in this layout.

layout.update()

Updates the layout for parent widget of this layout. You should generally not need to call this because it is automatically called at the most appropriate times.

- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/NodeWidget/index.html b/docs/api/NodeWidget/index.html index aaba79f2c..664541405 100644 --- a/docs/api/NodeWidget/index.html +++ b/docs/api/NodeWidget/index.html @@ -3,7 +3,7 @@ - + NodeWidget @@ -29,25 +29,25 @@ Returns true if the widget was closed; otherwise returns false.

widget.setLayout(layout)

Sets the layout manager for this widget to layout. It calls the native method QWidget: setLayout.

  • layout NodeLayout - Any layout that inherits from NodeLayout class.

widget.setStyleSheet(styleSheet)

Sets the property that holds the widget's style sheet. It calls the native method QWidget: styleSheet.

  • styleSheet string - String which holds the widget's style sheet. Make sure you create this string using StyleSheet.create()

widget.setCursor(cursor)

Sets the window mouse cursor. It calls the native method QWidget: setCursor.

widget.setWindowIcon(icon)

Sets the window icon. It calls the native method QWidget: setWindowIcon.

  • icon QIcon - Specifies icon for the window.

widget.setWindowState(state)

Sets the window state. It calls the native method QWidget: setWindowState.

widget.setWindowTitle(title)

Sets the window title property. It calls the native method QWidget: setWindowTitle.

  • title string - String which holds the windows title.

widget.styleSheet()

Gets the property that holds the widget's style sheet. It calls the native method QWidget: styleSheet.

widget.hide()

Hides the widget and its children. It calls the native method QWidget: hide.

widget.move(x, y)

Sets the screen position of the widget. It calls the native method QWidget: move.

  • x number - Pixels.
  • y number - Pixels.

widget.setObjectName(objectName)

Sets the object name of the widget in Qt. It calls the native method QObject: setObjectName. Object name can be analogous to id of an element in the web world. Using the objectName of the widget one can reference it in the Qt's stylesheet much like what we do with id in the web world.

  • objectName string - String which holds the widget's object name.

widget.objectName()

Gets the property that holds the widget's object name. It calls the native method QObject: setObjectName.

widget.setMouseTracking(isMouseTracked)

Sets the property that tells whether mouseTracking is enabled for the widget. It calls the native method QWidget: mouseTracking.

  • isMouseTracked boolean - Set it to true to enable mouse tracking.

widget.setEnabled(enabled)

Sets the property that tells whether the widget is enabled. It calls the native method QWidget: enabled. In general an enabled widget handles keyboard and mouse events; a disabled widget does not.

  • enabled boolean - Set it to true to enable the widget.

widget.setFixedSize(width, height)

Sets both the minimum and maximum sizes of the widget. It calls the native method QWidget: setFixedSize.

  • width number - Pixels.
  • height number - Pixels.

widget.setGeometry(x, y, width, height)

Sets the screen position as well as size of the widget. It calls the native method QWidget: setGeometry.

  • x number - Pixels.
  • y number - Pixels.
  • width number - Pixels.
  • height number - Pixels.

widget.setMaximumSize(width, height)

Sets the maximum size of the widget. It calls the native method QWidget: setMaximumSize.

  • width number - Pixels.
  • height number - Pixels.

widget.setMinimumSize(width, height)

Sets the minimum size of the widget. It calls the native method QWidget: setMinimumSize.

  • width number - Pixels.
  • height number - Pixels.

widget.repaint()

Repaints the widget. It calls the native method QWidget: repaint.

widget.update()

Updates the widget. It calls the native method QWidget: update.

widget.pos()

Returns the current widget position. It calls the native method QWidget: pos. The returned size object contains x and y coordinates in pixels.

widget.size()

Returns the current widget size. It calls the native method QWidget: size. The returned size object contains width and height in pixels.

widget.updateGeometry()

Notifies the layout system that this widget has changed and may need to change geometry.

widget.setAttribute(attributeName, switchOn)

Sets the attribute attribute on this widget if on is true; otherwise clears the attribute. It calls the native method QWidget: setAttribute.

  • attributeName WidgetAttribute - Enum from WidgetAttribute.
  • switchOn boolean - set it to true if you want to enable an attribute.

widget.testAttribute(attributeName)

Returns true if attribute attribute is set on this widget; otherwise returns false. It calls the native method QWidget: testAttribute.

  • attributeName WidgetAttribute - Enum from WidgetAttribute.

widget.inherits(className)

Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. A class is considered to inherit itself. Example:

const progressBar = new QProgressBar();
progressBar.inherits("QObject"); // returns true
progressBar.inherits("QProgressBar"); // returns true
progressBar.inherits("QTabWidget"); // returns false
  • className string - Name of the class to get if this widget inherits from.
- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QAbstractScrollArea/index.html b/docs/api/QAbstractScrollArea/index.html index bf7fa813d..09d8454af 100644 --- a/docs/api/QAbstractScrollArea/index.html +++ b/docs/api/QAbstractScrollArea/index.html @@ -3,7 +3,7 @@ - + QAbstractScrollArea @@ -28,25 +28,25 @@

QAbstractScrollArea

Abstract class to add functionalities common to all scrollarea based widgets.

This class implements all methods, properties of Qt's QAbstractScrollArea class so that it can be inherited by all scroll based widgets

QAbstractScrollArea is an abstract class and hence no instances of the same should be created. It exists so that we can add similar functionalities to all scrollable widget's easily. If you wish to create a scrollarea use QScrollArea instead.

QAbstractScrollArea is the base class for all widgets. It inherits from another abstract class NodeWidget

QAbstractScrollArea will list all methods and properties that are common to all scrollable widgets in the NodeGui world.

Static Methods

QAbstractScrollArea can access all the static methods defined in NodeWidget

Instance Properties

QAbstractScrollArea can access all the instance properties defined in NodeWidget

Instance Methods

QAbstractScrollArea can access all the instance methods defined in NodeWidget

Additionally it also has the following instance methods:

widget.setViewport(widget)

Sets the viewport to be the given widget. It calls the native method QAbstractScrollArea: setViewport.

  • widget NodeWidget.

widget.viewport()

Returns the viewport widget (NodeWidget). It calls the native method QAbstractScrollArea: viewport.

- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QAbstractSlider/index.html b/docs/api/QAbstractSlider/index.html index a4e530e97..9e863c90c 100644 --- a/docs/api/QAbstractSlider/index.html +++ b/docs/api/QAbstractSlider/index.html @@ -3,7 +3,7 @@ - + QAbstractSlider @@ -28,25 +28,25 @@

QAbstractSlider

Abstract class to add functionalities common to all slider based widgets.

This class implements all methods, properties of Qt's QAbstractSlider class so that it can be inherited by all slider based widgets

QAbstractSlider is an abstract class and hence no instances of the same should be created. It exists so that we can add similar functionalities to all slider widget's easily. If you wish to create a slider use QDial instead.

QAbstractSlider is the base class for all widgets. It inherits from another abstract class NodeWidget

QAbstractSlider will list all methods and properties that are common to all slider widgets in the NodeGui world.

Static Methods

QAbstractSlider can access all the static methods defined in NodeWidget

Instance Properties

QAbstractSlider can access all the instance properties defined in NodeWidget

Instance Methods

QAbstractSlider can access all the instance methods defined in NodeWidget

Additionally it also has the following instance methods:

widget.setSingleStep(step)

Sets the step value for user arrow key slider interaction. It calls the native method QAbstractSlider: setSingleStep.

  • step number - Specified single step value.

widget.setMaximum(maximum)

Sets the maximum value for slider. It calls the native method QAbstractSlider: setMaximum.

  • maximum number - Specified maximum slider value.

widget.setMinimum(minimum)

Sets the minimum value for slider. It calls the native method QAbstractSlider: setMinimum.

  • minimum number - Specified minimum slider value.

widget.setValue(value)

Sets the current value for slider. It calls the native method QAbstractSlider: setValue.

  • value number - Specified current slider value.

widget.setOrientation(orientation)

Sets the current orientation for slider. It calls the native method QAbstractSlider: setOrientation.

slider.maximum()

Returns the maximum value (Number) of the slider. It calls the native method QAbstractSlider: maximum.

slider.minimum()

Returns the minimum value (Number) of the slider. It calls the native method QAbstractSlider: minimum.

slider.value()

Returns the current value (Number) of the slider. It calls the native method QAbstractSlider: value.

- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QApplication/index.html b/docs/api/QApplication/index.html index d156f895b..04d6e16a0 100644 --- a/docs/api/QApplication/index.html +++ b/docs/api/QApplication/index.html @@ -3,7 +3,7 @@ - + QApplication @@ -28,25 +28,25 @@

QApplication

QApplication is the root object for the entire application. It manages app level settings.

This class is a JS wrapper around Qt's QApplication class

The QApplication class manages the GUI application's control flow and main settings. In NodeGui you will never create an instance of it manually. NodeGui's internal runtime Qode does it for you on app start. You can access the initialised QApplication though if needed.

QApplication inherits from Component

Example

const { QApplication } = require("@nodegui/nodegui");
const qApp = QApplication.instance();
qApp.quit();

Static Methods

QApplication can access all the static methods defined in Component. Additionally it also has the following static methods.

QApplication.instance()

Returns the already initialised QApplication instance. It calls the native method QApplication: instance.

QApplication.clipboard()

Returns the object for interacting with the clipboard. It calls the native method QApplication: clipboard. See QClipboard.

Instance Properties

QApplication can access all the instance properties defined in Component

Instance Methods

QApplication can access all the instance methods defined in Component. Additionally it also has the following instance methods:

qApp.quit()

Quits the entire app. It calls the native method QApplication: quit.

qApp.exit(returnCode)

Tells the application to exit with a return code. It calls the native method QApplication: exit.

  • returnCode number - The exit code while quitting the app.

qApp.processEvents()

Processes all pending events for the calling thread . It calls the native method QApplication: processEvents.

qApp.exec()

We will never call this method in NodeGui, since Qode will execute this function for us. It exists for experiments only.

Enters the main event loop and waits until exit() is called. Returns the value that was passed to exit() (which is 0 if exit() is called via quit()). It calls the native method QApplication: exec.

Returns the exit code after app exits.

- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QCheckBox/index.html b/docs/api/QCheckBox/index.html index f899f5077..a66966f86 100644 --- a/docs/api/QCheckBox/index.html +++ b/docs/api/QCheckBox/index.html @@ -3,7 +3,7 @@ - + QCheckBox @@ -28,25 +28,25 @@

QCheckBox

Create and control checkbox.

This class is a JS wrapper around Qt's QCheckBox class

A QCheckBox provides ability to add and manipulate native checkbox widgets.

QCheckBox inherits from NodeWidget

Example

const { QCheckBox } = require("@nodegui/nodegui");
const checkbox = new QCheckBox();
checkbox.setText("Hello");

new QCheckBox(parent?)

  • parent NodeWidget (optional). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.

Static Methods

QCheckBox can access all the static methods defined in NodeWidget

Instance Properties

QCheckBox can access all the instance properties defined in NodeWidget

Instance Methods

QCheckBox can access all the instance methods defined in NodeWidget

Additionally it also has the following instance methods:

checkbox.setText(text)

Sets the given text to the checkbox.

  • text string

checkbox.isChecked()

returns whether the checkbox is checked or not. It calls the native method QAbstractButton: isChecked.

checkbox.setChecked(check)

This property holds whether the button is checked. It calls the native method QAbstractButton: setChecked.

  • check boolean
- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QClipboard/index.html b/docs/api/QClipboard/index.html index c5367bdc6..f9224aa59 100644 --- a/docs/api/QClipboard/index.html +++ b/docs/api/QClipboard/index.html @@ -3,7 +3,7 @@ - + QClipboard @@ -28,25 +28,25 @@

QClipboard

The QClipboard class provides access to the window system clipboard.

This class is a JS wrapper around Qt's QClipboard class

QClipboard inherits from Component

Example

const {
QClipboard,
QClipboardMode,
QApplication
} = require("@nodegui/nodegui");
const clipboard = QApplication.clipboard();
const text = clipboard.text(QClipboardMode.Clipboard);

Static Methods

QClipboard can access all the static methods defined in Component

Instance Properties

QClipboard can access all the instance properties defined in Component

Instance Methods

QClipboard can access all the instance methods defined in Component. Additionally it has:

clipboard.clear(mode)

Clear the clipboard contents. It calls the native method QClipboard: clear.

clipboard.setText(text, mode)

Copies text into the clipboard as plain text. It calls the native method QClipboard: setText.

clipboard.text(mode)

Returns the clipboard text as plain text, or an empty string if the clipboard does not contain any text. It calls the native method QClipboard: text.

- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QCursor/index.html b/docs/api/QCursor/index.html index 35cfc4631..c0414c3e3 100644 --- a/docs/api/QCursor/index.html +++ b/docs/api/QCursor/index.html @@ -3,7 +3,7 @@ - + QCursor @@ -28,25 +28,25 @@ - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QDial/index.html b/docs/api/QDial/index.html index 5a6f871ee..88fe53f93 100644 --- a/docs/api/QDial/index.html +++ b/docs/api/QDial/index.html @@ -3,7 +3,7 @@ - + QDial @@ -28,25 +28,25 @@

QDial

Create and control dial slider widgets.

This class is a JS wrapper around Qt's QDial class

A QDial provides ability to add and manipulate native dial slider widgets.

QDial inherits from QAbstractSlider

Example

const { QDial } = require("@nodegui/nodegui");
const dial = new QDial();

new QDial(parent?)

  • parent NodeWidget (optional). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.

Static Methods

QDial can access all the static methods defined in NodeWidget

Instance Properties

QDial can access all the instance properties defined in NodeWidget

Instance Methods

QDial can access all the instance methods defined in NodeWidget. Additionally it also has the following instance methods:

dial.setNotchesVisible(visible)

Sets the visibility of notches drawn around the dial. It calls the native method QDial: setNotchesVisible.

  • visible boolean - Set the value as current notch visibility.

dial.setWrapping(on)

Sets the ability to wrap arrow around the dial instead of limiting it to upper part of the dial. It calls the native method QDial: setWrapping.

  • on boolean - Set the value as current wrapping setting.

dial.setNotchTarget(target)

Sets the number of pixels between dial notches. It calls the native method QDial: setNotchTarget.

  • target number - Specifies number of pixels between notches.

dial.notchTarget()

Returns the current number of pixels between dial notches. It calls the native method QDial: notchTarget.

dial.notchesVisible()

Returns the visibility status (Boolean) of dial notches. It calls the native method QDial: notchesVisible.

dial.notchesVisible()

Returns the visibility status (Boolean) of dial notches. It calls the native method QDial: notchesVisible.

dial.wrapping()

Returns the current wrapping (Boolean) state of the dial. It calls the native method QDial: wrapping.

- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QGridLayout/index.html b/docs/api/QGridLayout/index.html index 71065c7a7..9c85a74c2 100644 --- a/docs/api/QGridLayout/index.html +++ b/docs/api/QGridLayout/index.html @@ -3,7 +3,7 @@ - + QGridLayout @@ -28,19 +28,19 @@

QGridLayout

The QGridLayout class lays out widgets in a grid.

This class is a JS wrapper around Qt's QGridLayout

QGridLayout inherits from NodeLayout

Example

const { QGridLayout, QWidget, QLabel } = require("@nodegui/nodegui");
const view = new QWidget();
const layout = new QGridLayout();
view.setLayout(layout);
const label = new QLabel();
label.setText("label1");
const label2 = new QLabel();
label2.setText("label2");
layout.addWidget(label);
layout.addWidget(label2);

Static Methods

QGridLayout can access all the static methods defined in NodeLayout

Instance Properties

QGridLayout can access all the instance properties defined in NodeLayout

Instance Methods

QGridLayout can access all the instance methods defined in NodeLayout

Additionally it also has the following instance methods:

layout.addWidget(childWidget)

Adds the childWidget to the layout. It calls the native method QGridLayout QGridLayout: addWidget.

  • childWidget NodeWidget - child widget that needs to be added to the layout.

layout.removeWidget(childWidget)

Removes the childWidget from the layout. It calls the native method of custom QGridLayout. QGridLayout: removeWidget.

  • childWidget NodeWidget - child widget that needs to be added to the layout.
- + - + - + - + diff --git a/docs/api/QIcon/index.html b/docs/api/QIcon/index.html index 58fd93f39..0d3092097 100644 --- a/docs/api/QIcon/index.html +++ b/docs/api/QIcon/index.html @@ -3,7 +3,7 @@ - + QIcon @@ -30,25 +30,25 @@ Additionally it also has the following instance methods:

QIcon: pixmap.

  • width: number,
  • height: number
  • mode?: QIconMode
  • state?: QIconState
- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QLabel/index.html b/docs/api/QLabel/index.html index 5fb3ca852..22a085db9 100644 --- a/docs/api/QLabel/index.html +++ b/docs/api/QLabel/index.html @@ -3,7 +3,7 @@ - + QLabel @@ -28,25 +28,25 @@

QLabel

Create and control text.

This class is a JS wrapper around Qt's QLabel class

A QLabel provides ability to add and manipulate text.

QLabel inherits from NodeWidget

Example

const { QLabel } = require("@nodegui/nodegui");
const label = new QLabel();
label.setText("Hello");

new QLabel(parent?)

  • parent NodeWidget (optional). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.

Static Methods

QLabel can access all the static methods defined in NodeWidget

Instance Properties

QLabel can access all the instance properties defined in NodeWidget. Additionally it also has the following instance properties:

label.pixmap

The pixmap currently set on this label.

label.text

the current text set on the label.

Instance Methods

QLabel can access all the instance methods defined in NodeWidget. Additionally it also has the following instance methods:

label.setText(text)

Sets the given text to the label.

  • text string

label.setWordWrap(on)

  • on boolean - If true it sets wordwrap on the label

label.setPixmap(pixMap)

Images in the form of a pixmap can be set as the label content

  • pixMap QPixmap - Allows to set image content in the form of a QPixmap on the label
- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QLineEdit/index.html b/docs/api/QLineEdit/index.html index 5c8aaf753..aefa09c4f 100644 --- a/docs/api/QLineEdit/index.html +++ b/docs/api/QLineEdit/index.html @@ -3,7 +3,7 @@ - + QLineEdit @@ -28,25 +28,25 @@

QLineEdit

Create and control editable text field.

This class is a JS wrapper around Qt's QLineEdit class

A QLineEdit provides ability to add and manipulate native editable text field widgets.

QLineEdit inherits from NodeWidget

Example

const { QLineEdit } = require("@nodegui/nodegui");
const lineEdit = new QLineEdit();

new QLineEdit(parent?)

  • parent NodeWidget (optional). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.

Static Methods

QLineEdit can access all the static methods defined in NodeWidget

Instance Properties

QLineEdit can access all the instance properties defined in NodeWidget. Additionally it also has the following instance properties:

lineEdit.placeholderText

The placeholder text set on the lineEdit.

Instance Methods

QLineEdit can access all the instance methods defined in NodeWidget. Additionally it also has the following instance methods:

lineEdit.setText(text)

Sets the given text to the lineEdit.

  • text string

lineEdit.setPlaceholderText(text)

Sets the given text to the lineEdit's placeholder.

  • text string

lineEdit.text()

Returns the currently set text from native lineEdit widget.

lineEdit.setReadOnly(isReadOnly)

Sets the lineEdit to be read only. lineEdit property holds whether the line edit is read only.

  • isReadOnly boolean

lineEdit.clear()

Clears the lineEdit.

- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QMainWindow/index.html b/docs/api/QMainWindow/index.html index 05fbaa0f6..188778d0a 100644 --- a/docs/api/QMainWindow/index.html +++ b/docs/api/QMainWindow/index.html @@ -3,7 +3,7 @@ - + QMainWindow @@ -29,25 +29,25 @@ Once a central widget is set you can add children/layout to the central widget.

Static Methods

QMainWindow can access all the static methods defined in NodeWidget

Instance Properties

QMainWindow can access all the instance properties defined in NodeWidget

Additionally it also has the following instance properties:

win.layout

A NodeLayout representing current layout that is set on the window. If a centralWidget is set then the layout of central widget is returned.

win.centralWidget

A NodeWidget representing currently set central widget on the window.

Instance Methods

QMainWindow can access all the instance methods defined in NodeWidget

Additionally it also has the following instance methods:

win.setCentralWidget(widget)

Sets the given widget to be the main window's central widget.

  • widget NodeWidget - Any widget that inherits from NodeWidget class.
- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QPixmap/index.html b/docs/api/QPixmap/index.html index 10149c571..f070192a9 100644 --- a/docs/api/QPixmap/index.html +++ b/docs/api/QPixmap/index.html @@ -3,7 +3,7 @@ - + QPixmap @@ -30,25 +30,25 @@ returns true if load was successful otherwise returns false.

  • im This method doesnt mutate this pixmap and rather returns a new pixmap with new height and width.

    • width number. Width in pixels for new pixmap.
    • height number. Height in pixels for new pixmap.
    • aspectRatioMode AspectRatioMode (optional). Specifies how scaling should happen. AspectRatio is an enum from Qt
    - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QPlainTextEdit/index.html b/docs/api/QPlainTextEdit/index.html index 930f82c4c..51c0bffaa 100644 --- a/docs/api/QPlainTextEdit/index.html +++ b/docs/api/QPlainTextEdit/index.html @@ -3,7 +3,7 @@ - + QPlainTextEdit @@ -28,19 +28,19 @@

    QPlainTextEdit

    Used to edit and display plain text.

    This class is a JS wrapper around Qt's QPlainTextEdit class

    A QPlainTextEdit provides ability to add and manipulate native editable text field widgets.

    QPlainTextEdit inherits from NodeWidget

    Example

    const { QPlainTextEdit } = require("@nodegui/nodegui");
    const plainTextEdit = new QPlainTextEdit();

    new QPlainTextEdit(parent?)

    • parent NodeWidget (optional). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.

    Static Methods

    QPlainTextEdit can access all the static methods defined in NodeWidget

    Instance Properties

    QPlainTextEdit can access all the instance properties defined in NodeWidget.

    plainTextEdit.placeholderText

    The placeholder text set on the plainTextEdit.

    Instance Methods

    QPlainTextEdit can access all the instance methods defined in NodeWidget.

    plainTextEdit.setPlainText(text)

    Sets the given text to the plainTextEdit. It calls the native method QPlainTextEdit: setPlainText.

    • text string

    plainTextEdit.setPlaceholderText(text)

    Sets the given text to the plainTextEdit's placeholder.

    • text string

    plainTextEdit.toPlainText()

    Returns the text of the text edit as plain text. QPlainTextEdit: toPlainText.

    plainTextEdit.setReadOnly(isReadOnly)

    Sets the plainTextEdit to be read only. QPlainTextEdit: isReadOnly.

    plainTextEdit.clear()

    Deletes all the text in the text edit.QPlainTextEdit: clear.

    plainTextEdit.setWordWrapMode(mode)

    This property holds the mode QPlainTextEdit will use when wrapping text by words.QPlainTextEdit: setWordWrapMode.

    • mode: QTextOptionWrapMode

    plainTextEdit.wordWrapMode()

    returns word wrap mode. QPlainTextEdit: wordWrapMode.

    plainTextEdit.setLineWrapMode(mode)

    This property holds the line wrap mode. QPlainTextEdit: setLineWrapMode.

    • mode: LineWrapMode

    plainTextEdit.lineWrapMode()

    returns line wrap mode. QPlainTextEdit: setLineWrapMode.

    - + - + - + - + diff --git a/docs/api/QProgressBar/index.html b/docs/api/QProgressBar/index.html index 8b751b5f8..9c1a8cda2 100644 --- a/docs/api/QProgressBar/index.html +++ b/docs/api/QProgressBar/index.html @@ -3,7 +3,7 @@ - + QProgressBar @@ -28,25 +28,25 @@

    QProgressBar

    Create and control progress bar widgets.

    This class is a JS wrapper around Qt's QProgressBar class

    A QProgressBar provides ability to add and manipulate native progress bar widgets.

    QProgressBar inherits from NodeWidget

    Example

    const { QProgressBar } = require("@nodegui/nodegui");
    const progressBar = new QProgressBar();

    new QProgressBar(parent?)

    • parent NodeWidget (optional). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.

    Static Methods

    QProgressBar can access all the static methods defined in NodeWidget

    Instance Properties

    QProgressBar can access all the instance properties defined in NodeWidget

    Instance Methods

    QProgressBar can access all the instance methods defined in NodeWidget. Additionally it also has the following instance methods:

    progressBar.setValue(value)

    Sets the current value of the progressBar. It calls the native method QProgressBar: setValue.

    • value number - Set the value as current value

    progressBar.setMaximum(max)

    Sets the max value of the progressBar. It calls the native method QProgressBar: setMaximum.

    • max number - Set the value as max value of the progress bar.

    progressBar.setMinimum(min)

    Sets the min value of the progressBar. It calls the native method QProgressBar: setMinimum.

    • min number - Set the value as min value of the progress bar.

    progressBar.setOrientation(orientation)

    Sets the orientation of the progressBar. It calls the native method QProgressBar: setOrientation.

    progressBar.value()

    Returns the current value (Number) of the progressBar. It calls the native method QProgressBar: value.

    - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QPushButton/index.html b/docs/api/QPushButton/index.html index d52093e2a..64988f3da 100644 --- a/docs/api/QPushButton/index.html +++ b/docs/api/QPushButton/index.html @@ -3,7 +3,7 @@ - + QPushButton @@ -28,25 +28,25 @@

    QPushButton

    Create and control buttons.

    This class is a JS wrapper around Qt's QPushButton class

    A QPushButton provides ability to add and manipulate native button widgets.

    QPushButton inherits from NodeWidget

    Example

    const { QPushButton } = require("@nodegui/nodegui");
    const button = new QPushButton();
    button.setText("Hello");

    new QPushButton(parent?)

    • parent NodeWidget (optional). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.

    Static Methods

    QPushButton can access all the static methods defined in NodeWidget

    Instance Properties

    QPushButton can access all the instance properties defined in NodeWidget

    Instance Methods

    QPushButton can access all the instance methods defined in NodeWidget

    Additionally it also has the following instance methods:

    button.setText(text)

    Sets the given text to the button.

    • text string

    button.setFlat(isFlat)

    Sets whether the button border is raised.

    • isFlat boolean

    button.setIcon(icon)

    Sets an icon in the button.

    • icon QIcon
    - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QRadioButton/index.html b/docs/api/QRadioButton/index.html index e62eff4d2..7659ea147 100644 --- a/docs/api/QRadioButton/index.html +++ b/docs/api/QRadioButton/index.html @@ -3,7 +3,7 @@ - + QRadioButton @@ -28,25 +28,25 @@

    QRadioButton

    Create and control radio button.

    This class is a JS wrapper around Qt's QRadioButton class

    A QRadioButton provides ability to add and manipulate native radio button widgets.

    QRadioButton inherits from NodeWidget

    Example

    const { QRadioButton } = require("@nodegui/nodegui");
    const radioButton = new QRadioButton();
    radioButton.setText("Hello");

    new QRadioButton(parent?)

    • parent NodeWidget (optional). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.

    Static Methods

    QRadioButton can access all the static methods defined in NodeWidget

    Instance Properties

    QRadioButton can access all the instance properties defined in NodeWidget

    Instance Methods

    QRadioButton can access all the instance methods defined in NodeWidget

    Additionally it also has the following instance methods:

    radioButton.setText(text)

    Sets the given text to the radioButton.

    • text string
    - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QScrollArea/index.html b/docs/api/QScrollArea/index.html index 4dcb2f056..9c49bb576 100644 --- a/docs/api/QScrollArea/index.html +++ b/docs/api/QScrollArea/index.html @@ -3,7 +3,7 @@ - + QScrollArea @@ -28,25 +28,25 @@

    QScrollArea

    A QScrollArea provides a scrolling view onto another widget.

    This class is a JS wrapper around Qt's QScrollArea class

    QScrollArea inherits from QAbstractScrollArea

    Example

    const { QScrollArea } = require("@nodegui/nodegui");
    const scrollArea = new QScrollArea();
    scrollArea.setInlineStyle("flex: 1; width:'100%';");
    const imageLabel = new QLabel();
    const pixmap = new QPixmap(
    path.resolve(__dirname, "../extras/assets/kitchen.png")
    );
    imageLabel.setPixmap(pixmap);
    scrollArea.setWidget(imageLabel);

    new QScrollArea(parent?)

    • parent NodeWidget (optional). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.

    Static Methods

    QScrollArea can access all the static methods defined in QAbstractScrollArea

    Instance Properties

    QScrollArea can access all the instance properties defined in QAbstractScrollArea

    Instance Methods

    QScrollArea can access all the instance methods defined in QAbstractScrollArea. Additionally it also has the following instance methods:

    scrollArea.setWidget(widget)

    Sets the scroll area's widget. It calls the native method QScrollArea: setWidget.

    • widget NodeWidget - Any widget you want to enclose in a scroll area.
    - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QSpinBox/index.html b/docs/api/QSpinBox/index.html index 89dd59448..932568368 100644 --- a/docs/api/QSpinBox/index.html +++ b/docs/api/QSpinBox/index.html @@ -3,7 +3,7 @@ - + QSpinBox @@ -28,25 +28,25 @@

    QSpinBox

    Create and control spin box widgets.

    This class is a JS wrapper around Qt's QSpinBox class

    A QSpinBox provides ability to add and manipulate native spin box widgets.

    QSpinBox inherits from NodeWidget

    Example

    const { QSpinBox } = require("@nodegui/nodegui");
    const spinBox = new QSpinBox();

    new QSpinBox(parent?)

    • parent NodeWidget (optional). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.

    Static Methods

    QSpinBox can access all the static methods defined in NodeWidget

    Instance Properties

    QSpinBox can access all the instance properties defined in NodeWidget

    Instance Methods

    QSpinBox can access all the instance methods defined in NodeWidget. Additionally it also has the following instance methods:

    spinBox.setValue(val)

    Sets the current value of the spinBox. It calls the native method QSpinBox: setValue.

    • val number - Set the value as current value

    spinBox.setRange(minimum, maximum)

    Sets the min/max value of the spinBox. It calls the native method QSpinBox: setRange.

    • max number - Set the value as max value of the progress bar.

    spinBox.setPrefix(prefix)

    Sets the prefix of the spinBox. It calls the native method QSpinBox: setPrefix.

    spinBox.setSuffix(suffix)

    Sets the suffix of the spinBox. It calls the native method QSpinBox: setSuffix.

    spinBox.setSingleStep(val)

    Sets the single step value of the spinBox. It calls the native method QSpinBox: setSingleStep.

    spinBox.cleanText()

    Returns the text content (String) of the spinBox excluding any prefix, suffix, or leading or trailing whitespace. It calls the native method QSpinBox: value.

    spinBox.minimum()

    Returns the minimum value (Number) of the spinBox. It calls the native method QSpinBox: value.

    spinBox.maximum()

    Returns the maximum value (Number) of the spinBox. It calls the native method QSpinBox: value.

    spinBox.value()

    Returns the current value (Number) of the spinBox. It calls the native method QSpinBox: value.

    - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QTabWidget/index.html b/docs/api/QTabWidget/index.html index 2c9713457..d68412bb4 100644 --- a/docs/api/QTabWidget/index.html +++ b/docs/api/QTabWidget/index.html @@ -3,7 +3,7 @@ - + QTabWidget @@ -28,19 +28,19 @@ - + - + - + - + diff --git a/docs/api/QWidget/index.html b/docs/api/QWidget/index.html index 05c072610..a8387440f 100644 --- a/docs/api/QWidget/index.html +++ b/docs/api/QWidget/index.html @@ -3,7 +3,7 @@ - + QWidget @@ -28,25 +28,25 @@

    QWidget

    Create and control views.

    This class is a JS wrapper around Qt's QWidget class

    A QWidget can be used to encapsulate other widgets and provide structure. It functions similar to a div in the web world.

    QWidget inherits from NodeWidget

    Example

    const { QWidget } = require("@nodegui/nodegui");
    const view = new QWidget();
    view.setObjectName("container"); //Similar to setting `id` on the web
    view.setLayout(new FlexLayout());

    new QWidget(parent?)

    • parent NodeWidget (optional). Any widget inheriting from NodeWidget can be passed as a parent. This will make this widget, the child of the parent widget.

    Static Methods

    QWidget can access all the static methods defined in NodeWidget

    Instance Properties

    QWidget can access all the instance properties defined in NodeWidget

    Instance Methods

    QWidget can access all the instance methods defined in NodeWidget

    - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/QtEnums/index.html b/docs/api/QtEnums/index.html index 13a08b52c..bae7ece48 100644 --- a/docs/api/QtEnums/index.html +++ b/docs/api/QtEnums/index.html @@ -3,7 +3,7 @@ - + Qt Enums @@ -28,25 +28,25 @@ - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/YogaWidget/index.html b/docs/api/YogaWidget/index.html index d9abbb764..96ada0142 100644 --- a/docs/api/YogaWidget/index.html +++ b/docs/api/YogaWidget/index.html @@ -3,7 +3,7 @@ - + YogaWidget @@ -28,25 +28,25 @@

    YogaWidget

    Abstract class to add common functionality related to Flex layout to all Widgets.

    This class implements methods related to flex layout required to be present in all widgets

    YogaWidget is an abstract class and hence no instances of the same should be created. It exists so that we can add similar functionalities related to flex layout to all widget's easily. We implement flex layout using a library called Yoga. As part of yoga every widget needs to store its own flex properties such as alignItems, flexDirection etc. This is done with the help of YogaWidget.

    YogaWidget is the base class for EventWidget which means all widgets inherit it aswell. It inherits from another abstract class Component

    const { QWidget } = require("@nodegui/nodegui");
    const view = new QWidget();
    // getFlexNode is a method from YogaWidget
    const flexNode = view.getFlexNode();

    YogaWidget helps in storing all flex properties of a widget.

    Static Methods

    YogaWidget can access all the static methods defined in Component

    Instance Properties

    YogaWidget can access all the instance properties defined in Component

    Instance Methods

    YogaWidget can access all the instance methods defined in Component

    Additionally it also has the following instance methods:

    widget.getFlexNode()

    Returns a native reference to the flex node used in c++ instance for the widget. This is not a regular javascript object and hence no methods or properties can be accessed from it. It exists so that we pass around a widgets flex node to layouts, etc.

    - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/api/process/index.html b/docs/api/process/index.html index 9185bed0f..14af4461a 100644 --- a/docs/api/process/index.html +++ b/docs/api/process/index.html @@ -3,7 +3,7 @@ - + process @@ -30,19 +30,19 @@ It adds the following properties :

    Properties

    process.versions.qode Readonly

    A String representing Qode's version string. Qode is a lightly modified version of NodeJs that allows running Qt and NodeJs under a single process.

    process.versions.qt(compiled) Readonly

    A String representing Qt version used when compile Qode binary. This can be useful to know which version of Qt is binary compatible with the version of Qode you are running. This is useful when running qode with a different version of Qt than what it was compiled with.

    process.versions.qt(runtime) Readonly

    A String representing Qt version of the Qt library loaded during runtime. This can be useful to know which version of Qt you are using at runtime as compared to the version of Qt used when Qode was compiled.This is possible since Qt is dynamically linked to Qode and you could replace the Qt dynamic libraries with any binary compatible library. Hence, this is useful when running qode with a different version of Qt than what it was compiled with.

    - + - + - + - + diff --git a/docs/api/synopsis/index.html b/docs/api/synopsis/index.html index af971c1ae..50b2ab9aa 100644 --- a/docs/api/synopsis/index.html +++ b/docs/api/synopsis/index.html @@ -3,7 +3,7 @@ - + Synopsis @@ -33,19 +33,19 @@ desktop applications. So, you can think of NodeGui as NodeJs + Gui Widgets power built-in modules.

    const {
    QMainWindow,
    QWidget,
    QLabel,
    FlexLayout
    } = require("@nodegui/nodegui");
    const win = new QMainWindow();
    const centralWidget = new QWidget();
    centralWidget.setObjectName("myroot");
    const rootLayout = new FlexLayout();
    centralWidget.setLayout(rootLayout);
    const label = new QLabel();
    label.setInlineStyle("font-size: 16px; font-weight: bold;");
    label.setText("Hello World");
    rootLayout.addWidget(label);
    win.setCentralWidget(centralWidget);
    win.setStyleSheet(
    `
    #myroot {
    background-color: #009688;
    }
    `
    );
    win.show();
    global.win = win;
    - + - + - + - + diff --git a/docs/development/README/index.html b/docs/development/README/index.html index dbf2083be..2ccbf7e9e 100644 --- a/docs/development/README/index.html +++ b/docs/development/README/index.html @@ -3,7 +3,7 @@ - + README @@ -25,27 +25,27 @@
    -

    README

    Contributor's guide

    This guide is for everyone who want's to contribute to the development of NodeGui.

    Please make sure you have read the User's guides before reading this guide.

    Where to start or How can you help?

    You can follow the contributors guide above to get a gist.

    It is fairly straightforward to get started. I would start with a project of my own and start adding missing functionalities.

    Or simply put I would recommend you start by adding an unexported method to an existing widget.

    For example:

    You could add the corresponding Qt method to QProgressbar +

    README

    Contributor's guide

    This guide is for everyone who want's to contribute to the development of NodeGui.

    Please make sure you have read the User's guides before reading this guide.

    Where to start or How can you help?

    You can follow the contributors guide above to get a gist.

    It is fairly straightforward to get started. I would start with a project of my own and start adding missing functionalities.

    Or simply put I would recommend you start by adding an unexported method to an existing widget.

    For example:

    You could add the corresponding Qt method to QProgressbar https://doc.qt.io/qt-5/qprogressbar.html#textVisible-prop to get a grip on it.

    This PR can be used as a guide

    https://github.com/nodegui/nodegui/issues/36

    https://github.com/nodegui/nodegui/pull/39

    You can also take a look at few bugs or the issue board here to know what you can pick up if you are out of ideas.

    https://github.com/nodegui/nodegui/projects/

    https://github.com/nodegui/react-nodegui/projects/

    - + - + - + - + - + diff --git a/docs/development/common_errors/index.html b/docs/development/common_errors/index.html index 87bfcae36..408a2a33e 100644 --- a/docs/development/common_errors/index.html +++ b/docs/development/common_errors/index.html @@ -3,7 +3,7 @@ - + common_errors @@ -30,25 +30,25 @@ if its a leaf node widget(doesnt contain any children).

  • - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/development/debugging/index.html b/docs/development/debugging/index.html index 5af877dce..5d299eee0 100644 --- a/docs/development/debugging/index.html +++ b/docs/development/debugging/index.html @@ -3,7 +3,7 @@ - + debugging @@ -28,25 +28,25 @@ - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/development/getting-started/index.html b/docs/development/getting-started/index.html index 380795b0f..200fcfec5 100644 --- a/docs/development/getting-started/index.html +++ b/docs/development/getting-started/index.html @@ -3,7 +3,7 @@ - + getting-started @@ -31,25 +31,25 @@ So if you take a look at NLabel you will see, it inherits from QLabel and NodeWi 4.1. You can see the readme of https://github.com/nodejs/node-addon-api.git/
  • See node-qt implementation. It is implemented in Nan (explained in video).
  • Now try to match the implementation in node-qt and convert to N-API using examples from samples.
  • Implementations not in node-qt need to be done with effort.
  • - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/development/setting-up/index.html b/docs/development/setting-up/index.html index f6ee6fdcf..e33b71471 100644 --- a/docs/development/setting-up/index.html +++ b/docs/development/setting-up/index.html @@ -3,7 +3,7 @@ - + setting-up @@ -28,25 +28,25 @@

    setting-up

    Setup project for development

    Development setup and getting started

    Make sure you follow the setup guide of Qode so that you have a build environment ready for Qode.

    MacOSX:

    Requirements

    1. Node version: > 11
    2. CMake 3.1 and up (Installation instructions can be found here: https://cmake.org/install/)
    3. Make, GCC v7
    4. Qt (Optional): Make sure you followed the setup instructions from Qode

    Windows:

    Requirements

    1. Node version: > 11
    2. CMake 3.1 and up (Installation instructions can be found here: https://cmake.org/install/)
    3. Visual Studio Community 2017
    4. Powershell
    5. Qt (Optional): Make sure you followed the setup instructions from Qode

    Linux:

    Supported versions: Ubuntu 17.10 and up

    Requirements

    1. Node version: > 11
    2. CMake 3.1 and up (Installation instructions can be found here: https://cmake.org/install/)
    3. Make, GCC v7, pkg-config
    4. Qt (Optional): Make sure you followed the setup instructions from Qode

    On Ubuntu: $ sudo apt-get install pkg-config build-essentials should install everything except Qt5.

    Note: If you are using your own version of Qt make sure to

    export PKG_CONFIG_PATH="<path to qt installation>/5.13.0/gcc_64/lib/pkgconfig"

    Common:

    1. Once you have setup the platform specific stuff as mentioned above, follow these:
    2. git clone this repo.
    3. yarn install
    4. yarn build:addon
    5. yarn dev

    If you want to run with your own version of Qt make sure to pass qt_home_dir variable when building addon.

    npm run rebuild:addon [--qt_home_dir=/path/to/qt]

    - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/development/signal_and_event_handling/index.html b/docs/development/signal_and_event_handling/index.html index bf4133592..2bfaabe48 100644 --- a/docs/development/signal_and_event_handling/index.html +++ b/docs/development/signal_and_event_handling/index.html @@ -3,7 +3,7 @@ - + signal_and_event_handling @@ -33,25 +33,25 @@ like this:

    And run npm run automoc before running npm run build:addon

    We need to run Qt's MOC (Meta Object Compiler) on the file whenever we use Q_OBJECT in a class or use QObject::connect. This is so that Qt can expand the macros and add necessary implementations to our class.

    How does it work ?

    1. On JS side for each widget instance we create an instance of NodeJS's Event Emitter. This is done by the class EventWidget from which NodeWidget inherits
    2. We send this event emiiter's emit function to the C++ side by calling initNodeEventEmitter method and store a pointer to the event emitter's emit function using emitOnNode. initNodeEventEmitter function is added by a macro from EventWidget (c++). You can find the initNodeEventEmitter method with the event widget macros.
    3. We setup Qt's connect method for all the signals that we want to listen to and call the emitOnNode (which is actually emit from Event emitter) whenever a signal arrives. This is done manually on every widget by overriding the method connectWidgetSignalsToEventEmitter. Check npushbutton.h for details. This takes care of all the signals of the widgets. Now to export all qt events of the widget, we had overriden the widgets event(Event*) method to listen to events received by the widget and send it to the event emitter. This is done inside the EVENTWIDGET_IMPLEMENTATIONS macro
    - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/development/styling/index.html b/docs/development/styling/index.html index 27dc28e41..6bb185066 100644 --- a/docs/development/styling/index.html +++ b/docs/development/styling/index.html @@ -3,7 +3,7 @@ - + styling @@ -35,25 +35,25 @@ declare and define q properties for each of those custom properties we want. This allows us to use something like:

    view.setStyleSheet(`
    background-color:green;
    qproperty-flex: 1;
    qproperty-alignItems: 'center';
    `);

    Notice qproperty- prefix? These are the custom q-properties we defined in YogaWidget.h. We do not need to prefix qproperty- if a stylehsheet string is passed through StyleSheet.create(). StyleSheet.create has an autoprefixer which will do the right thing.

    NodeWidget

    Every widget we implement should inherit from NodeWidget. This helps us add all the properties we want in the widgets via a single class. NodeWidget is the class that contains properties and methods shared by all widgets. This class allows us to add features to all widgets easily.

    - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/development/wrapping_widgets/index.html b/docs/development/wrapping_widgets/index.html index 701b49e65..2d06ccb3c 100644 --- a/docs/development/wrapping_widgets/index.html +++ b/docs/development/wrapping_widgets/index.html @@ -3,7 +3,7 @@ - + wrapping_widgets @@ -28,25 +28,25 @@

    wrapping_widgets

    Exporting a new method from a widget

    Exporting a new widget from scratch

    - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/doc1/index.html b/docs/doc1/index.html index 25dfce4ee..a0c2a19ab 100644 --- a/docs/doc1/index.html +++ b/docs/doc1/index.html @@ -3,7 +3,7 @@ - + Style Guide @@ -28,19 +28,19 @@

    Style Guide

    You can write content using GitHub-flavored Markdown syntax.

    Markdown Syntax

    To serve as an example page when styling markdown based Docusaurus sites.

    Headers

    H1 - Create the best documentation

    H2 - Create the best documentation

    H3 - Create the best documentation

    H4 - Create the best documentation

    H5 - Create the best documentation
    H6 - Create the best documentation

    Emphasis

    Emphasis, aka italics, with asterisks or underscores.

    Strong emphasis, aka bold, with asterisks or underscores.

    Combined emphasis with asterisks and underscores.

    Strikethrough uses two tildes. Scratch this.


    Lists

    1. First ordered list item
    2. Another item ⋅⋅* Unordered sub-list.
    3. Actual numbers don't matter, just that it's a number ⋅⋅1. Ordered sub-list
    4. And another item.

    ⋅⋅⋅You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown).

    ⋅⋅⋅To have a line break without a paragraph, you will need to use two trailing spaces.⋅⋅ ⋅⋅⋅Note that this line is separate, but within the same paragraph.⋅⋅ ⋅⋅⋅(This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.)

    • Unordered list can use asterisks
    • Or minuses
    • Or pluses

    Links

    I'm an inline-style link

    I'm an inline-style link with title

    I'm a reference-style link

    I'm a relative reference to a repository file

    You can use numbers for reference-style link definitions

    Or leave it empty and use the link text itself.

    URLs and URLs in angle brackets will automatically get turned into links. http://www.example.com or http://www.example.com and sometimes example.com (but not on Github, for example).

    Some text to show that the reference links can follow later.


    Images

    Here's our logo (hover to see the title text):

    Inline-style: alt text

    Reference-style: alt text


    Code

    var s = 'JavaScript syntax highlighting';
    alert(s);
    s = "Python syntax highlighting"
    print s
    No language indicated, so no syntax highlighting.
    But let's throw in a <b>tag</b>.

    Tables

    Colons can be used to align columns.

    TablesAreCool
    col 3 isright-aligned$1600
    col 2 iscentered$12
    zebra stripesare neat$1

    There must be at least 3 dashes separating each header cell. The outer pipes (|) are optional, and you don't need to make the raw Markdown line up prettily. You can also use inline Markdown.

    MarkdownLessPretty
    Stillrendersnicely
    123

    Blockquotes

    Blockquotes are very handy in email to emulate reply text. This line is part of the same quote.

    Quote break.

    This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can put Markdown into a blockquote.


    Inline HTML

    Definition list
    Is something people use sometimes.
    Markdown in HTML
    Does *not* work **very** well. Use HTML tags.

    Line Breaks

    Here's a line for us to start with.

    This line is separated from the one above by two newlines, so it will be a separate paragraph.

    This line is also a separate paragraph, but... This line is only separated by a single newline, so it's a separate line in the same paragraph.

    - + - + - + - + diff --git a/docs/faq/index.html b/docs/faq/index.html index 4efeb05de..8fd04bcb9 100644 --- a/docs/faq/index.html +++ b/docs/faq/index.html @@ -3,7 +3,7 @@ - + FAQ @@ -39,19 +39,19 @@ garbage collected.

    If you encounter this problem, the following articles m code from this:

    const { QWidget } = require("@nodegui/nodegui");
    const view = new QWidget();
    view.setObjectName("container");
    view.setLayout(new FlexLayout());

    to this:

    const { QWidget } = require("@nodegui/nodegui");
    const view = new QWidget();
    view.setObjectName("container");
    view.setLayout(new FlexLayout());
    global.view = view; //prevent GC
    - + - + - + - + diff --git a/docs/guides/custom-nodegui-native-plugin/index.html b/docs/guides/custom-nodegui-native-plugin/index.html index 7b9e81dd6..332834364 100644 --- a/docs/guides/custom-nodegui-native-plugin/index.html +++ b/docs/guides/custom-nodegui-native-plugin/index.html @@ -3,7 +3,7 @@ - + Custom NodeGui Plugin @@ -28,25 +28,25 @@ - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/guides/debugging-in-vscode/index.html b/docs/guides/debugging-in-vscode/index.html index 6a0779d21..84e0cc843 100644 --- a/docs/guides/debugging-in-vscode/index.html +++ b/docs/guides/debugging-in-vscode/index.html @@ -3,7 +3,7 @@ - + Debugging in VSCode @@ -28,25 +28,25 @@

    Debugging in VSCode

    • Open a NodeGui project in VSCode.

      $ git clone git@github.com:nodegui/nodegui-starter.git
      $ code nodegui-starter
    • Add a file .vscode/launch.json with the following configuration:

      {
      "version": "0.2.0",
      "configurations": [
      {
      "name": "Debug Qode Process",
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceRoot}",
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/qode",
      "windows": {
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/qode.exe"
      },
      "args": ["./dist/index.js"],
      "outputCapture": "std"
      }
      ]
      }

      Tip: You could also configure a preLaunchTask for building typescript before launching the debugger everytime.

    • Debugging

      Set some breakpoints in index.js, and start debugging in the Debug View. You should be able to hit the breakpoints.

    - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/guides/debugging/index.html b/docs/guides/debugging/index.html index 4344f2e01..b5bd4a94f 100644 --- a/docs/guides/debugging/index.html +++ b/docs/guides/debugging/index.html @@ -3,7 +3,7 @@ - + Debugging @@ -37,25 +37,25 @@ an external debugger will need to connect on this port. The default port
  • Debugging the NodeGui app in VSCode
- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/guides/getting-started/index.html b/docs/guides/getting-started/index.html index a1deecf59..49a4a9a54 100644 --- a/docs/guides/getting-started/index.html +++ b/docs/guides/getting-started/index.html @@ -3,7 +3,7 @@ - + Getting started @@ -43,25 +43,25 @@ virtually all code editors and IDEs these days support JavaScript.

nodegui/nodegui-starter repository.

Note: Running this requires Git and npm.

# Clone the repository
$ git clone https://github.com/nodegui/nodegui-starter
# Go into the repository
$ cd nodegui-starter
# Install dependencies
$ npm install
# Run the app
$ npm start

That's it!

Congratulations! You've successfully run and modified your first NodeGui app.

Now what?

If you're curious to learn more about NodeGui, continue on to the tutorial.

- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/guides/handle-events/index.html b/docs/guides/handle-events/index.html index 939e20e42..b47c3a18e 100644 --- a/docs/guides/handle-events/index.html +++ b/docs/guides/handle-events/index.html @@ -3,7 +3,7 @@ - + Handle Events @@ -28,25 +28,25 @@ - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/guides/images/index.html b/docs/guides/images/index.html index a19b0f8dc..487c898cd 100644 --- a/docs/guides/images/index.html +++ b/docs/guides/images/index.html @@ -3,7 +3,7 @@ - + Images @@ -28,25 +28,25 @@ - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/guides/layout/index.html b/docs/guides/layout/index.html index 7fdfe516f..1bdb22fd3 100644 --- a/docs/guides/layout/index.html +++ b/docs/guides/layout/index.html @@ -3,7 +3,7 @@ - + Layout @@ -28,25 +28,25 @@

Layout

NodeGui uses a layout system to automatically arranging child widgets within a widget to ensure that they make good use of the available space.

Fixed Dimensions

A widget's height and width determine its size on the screen. The simplest way to set the dimensions of a widget is by adding a fixed width and height to style. Setting dimensions this way is common for widgets that should always render at exactly the same size, regardless of screen dimensions.

const { QMainWindow, QWidget } = require("@nodegui/nodegui");
const win = new QMainWindow();
const view = new QWidget(win);
view.setInlineStyle("width:50px; height:30px; background-color: yellow;");
win.show();
(global as any).win = win;

Dynamic Layouts

Dynamic layouts automatically position and resize widgets when the amount of space available for them changes, ensuring that they are consistently arranged and that the user interface as a whole remains usable.

NodeGui currently supports the following layouts at the moment:

  • FlexLayout
  • QGridLayout

More layouts will be added as time goes on. You can also add layouts yourself by creating custom native plugins for NodeGui usng the Custom Native Plugin API.

FlexLayout

Use FlexLayout to have the children expand and shrink dynamically based on available space. Normally you will use flex: 1, which tells a widget to fill all available space, shared evenly amongst other widgets with the same parent. The larger the flex given, the higher the ratio of space a component will take compared to its siblings.

A widget can only expand to fill available space if its parent has dimensions greater than 0. If a parent does not have either a fixed width and height or flex, the parent will have dimensions of 0 and the flex children will not be visible.

Flexbox is designed to provide a consistent layout on different screen sizes. You will normally use a combination of flexDirection, alignItems, and justifyContent to achieve the right layout.

Example:

Lets say you want to build a UI that has a parent view which has two child widgets. One a label with text Hello and another a view with background color white. Now you want the label to occupy 1/3 of the available space while the white colored child view to occupy the remaining 2/3 space.

flex layout example 1

The code for that would look something like this:

let { QLabel, FlexLayout, QWidget, QMainWindow } = require("@nodegui/nodegui");
// Create a root view and assign a flex layout to it.
const rootView = new QWidget();
rootView.setLayout(new FlexLayout());
rootView.setObjectName("rootView");
// Create two widgets - one label and one view
const label = new QLabel();
label.setText("Hello");
label.setObjectName("label");
const view = new QWidget();
view.setObjectName("view");
// Now tell rootView layout that the label and the other view are its children
rootView.layout.addWidget(label);
rootView.layout.addWidget(view);
// Tell FlexLayout how you want children of rootView to be poisitioned
rootView.setStyleSheet(`
#rootView{
flex: 1;
background-color: blue;
}
#label {
flex: 1;
color: white;
background-color: green;
}
#view {
flex: 3;
background-color: white;
}
`);
const win = new QMainWindow();
win.setCentralWidget(rootView);
win.show();
global.win = win;

TLDR

  • First step is to set a layout on the parent widget. You can do this using the widget's setLayout method. Here we are using FlexLayout.

  • For a layout to work you must let the layout know which widgets are the children and how to lay them on the available screen space within the parent widget. You do this using a layout's addWidget method. In the case of FlexLayout you will specify properties by setting flex properties on the parent and child widgets.

To know more on how FlexBox layout works in depth you can visit: https://facebook.github.io/react-native/docs/0.60/flexbox.

NodeGui uses the same library that React Native uses underneath for FlexBox (Yoga).

  • You can specify layout properties via inline styles also.

Conclusion

The primary layout in NodeGui is the Flexbox layout. Flexbox layout can be controlled via stylesheet just as in web. So both paint and layout properties are available at the same place.

NodeGui will also try to support other available layouts in Qt. But, If you need a special layout that Qt/NodeGui doesnt yet support you can always create a native plugin for NodeGui and use Qt's APIs to create one. In fact, Qt doesnt have a FlexLayout built in, FlexLayout is actually a custom Qt layout written with the help of Yoga library.

- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/guides/networking/index.html b/docs/guides/networking/index.html index f74df111c..dfed120b8 100644 --- a/docs/guides/networking/index.html +++ b/docs/guides/networking/index.html @@ -3,7 +3,7 @@ - + Networking @@ -28,25 +28,25 @@ - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/guides/nodegui-architecture/index.html b/docs/guides/nodegui-architecture/index.html index 25ca058d3..d2a07cca6 100644 --- a/docs/guides/nodegui-architecture/index.html +++ b/docs/guides/nodegui-architecture/index.html @@ -3,7 +3,7 @@ - + Architecture @@ -41,25 +41,25 @@ compiled with Qode or a compatible Node version to be used with NodeGui.

T consult this guide on how to recompile them for NodeGui.

- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/guides/scroll-view/index.html b/docs/guides/scroll-view/index.html index ad079a249..fd05a408a 100644 --- a/docs/guides/scroll-view/index.html +++ b/docs/guides/scroll-view/index.html @@ -3,7 +3,7 @@ - + Scroll View @@ -28,25 +28,25 @@ - + - + - + - + - + - + \ No newline at end of file diff --git a/docs/guides/styling/index.html b/docs/guides/styling/index.html index 78a1eff3c..faa951e63 100644 --- a/docs/guides/styling/index.html +++ b/docs/guides/styling/index.html @@ -3,7 +3,7 @@ - + Styling @@ -31,25 +31,25 @@ The quotes you see around 'green' and '100%&#x So the rule of thumb is that any integer based property like margin, border, etc can be written without quotes while any string property, it is better to surround them with quotes. PS: Qt does recognise some string based properties without quotes also.

Supported properties

Since we are not running inside a web browser, there are few differences in the properties you could use in NodeGui vs in web.

The complete list is detailed here: https://doc.qt.io/qt-5/stylesheet-reference.html#list-of-properties

Apart from the properties listed in the link, NodeGui also supports layout properties related to Flex. You can use all flex properties such as align-items, justify-content, flex, etc on all widgets. The layout styling will be coverted in more detail in the section: Layout.

Advanced usage (Setting QObject Properties)

In Qt, every widget has certain properties set on them using something called as Q_PROPERTY. There are many q-properties that are defined on each widget already. You can also define custom qproperties in the native C++ code yourself too. What does it have to do with styling ? The thing is some of these properties can be altered using qt stylesheet. In Qt's terminology, these properties are called designable properties.

For example:

MyLabel {
qproperty-alignment: AlignCenter;
}
MyGroupBox {
qproperty-titlecolor: rgb(100, 200, 100);
}
QPushButton {
qproperty-iconsize: 20px 20px;
}

You can discover these properties by following Qt's documentation or by running a simple google search like "center text in QLabel using stylesheet in Qt". These are advanced properties and in practice will come in use rarely but its good to know.

More details : https://doc.qt.io/qt-5/stylesheet-syntax.html#setting-qobject-properties


In this section, we mostly covered the paint properties in the NodeGui stylesheet. The next section would cover on how you can use flex to layout your widgets with stylesheet.

- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/guides/tutorial/index.html b/docs/guides/tutorial/index.html index c76ab51fe..e5f8932a6 100644 --- a/docs/guides/tutorial/index.html +++ b/docs/guides/tutorial/index.html @@ -3,7 +3,7 @@ - + Learn the Basics @@ -34,25 +34,25 @@ You can take a look at the list of native widgets that NodeGui currently support With time more widgets and APIs will be added to NodeGui. Apart from modules in NodeGui, you also have access to the entire node modules ecosystem. Thus, any node module that you can use with Node.js, can be used with NodeGui. This makes it extremely powerful.

Fine, I want something more custom and beautiful than just native looking widgets. What do I do?

To make things more beautiful, you will have to learn about styling. Lets take a look at that next.

- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/guides/using-native-node-modules/index.html b/docs/guides/using-native-node-modules/index.html index 1526c8c50..e6263640e 100644 --- a/docs/guides/using-native-node-modules/index.html +++ b/docs/guides/using-native-node-modules/index.html @@ -3,7 +3,7 @@ - + Using native Node Modules @@ -39,25 +39,25 @@ happen. So in general, it is recommended to always build native modules from source code.

- + - + - + - + - + - + \ No newline at end of file diff --git a/docs/mdx/index.html b/docs/mdx/index.html index a765d3f55..30f1d1193 100644 --- a/docs/mdx/index.html +++ b/docs/mdx/index.html @@ -3,7 +3,7 @@ - + Powered by MDX @@ -28,19 +28,19 @@

Powered by MDX

You can write JSX and use React components within your Markdown thanks to MDX.

Docusaurus green and Facebook blue are my favorite colors.

I can write Markdown alongside my JSX!

- + - + - + - + diff --git a/docsMetadata---docs-150-2d6.050a67cf2c62a9aa0583.js b/docsMetadata---docs-150-2d6.050a67cf2c62a9aa0583.js deleted file mode 100644 index fee5cdc5c..000000000 --- a/docsMetadata---docs-150-2d6.050a67cf2c62a9aa0583.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{42:function(e){e.exports=JSON.parse('{"docs":{"doc1":{"id":"doc1","title":"Style Guide","sidebar_label":"Style Guide","description":"You can write content using [GitHub-flavored Markdown syntax](https://github.github.com/gfm/).","source":"@site/docs/doc1.md","permalink":"/docs/doc1"},"faq":{"title":"FAQ","sidebar_label":"FAQ","id":"faq","description":"## Why am I having trouble installing Qode?","source":"@site/docs/faq.md","permalink":"/docs/faq"},"mdx":{"id":"mdx","title":"Powered by MDX","description":"You can write JSX and use React components within your Markdown thanks to [MDX](https://mdxjs.com/).","source":"@site/docs/mdx.md","permalink":"/docs/mdx"},"api/Component":{"sidebar_label":"Component","title":"Component","id":"api/Component","description":"> Abstract class that is root most base class for all widgets and layouts in the NodeGui World.","source":"@site/docs/api/Component.md","permalink":"/docs/api/Component","sidebar":"api","category":"Internal Modules","next":"api/EventWidget","previous":"api/QtEnums","previous_title":"Qt Enums","next_title":"EventWidget"},"api/NodeWidget":{"sidebar_label":"NodeWidget","title":"NodeWidget","id":"api/NodeWidget","description":"> Abstract class to add functionalities common to all Widgets.","source":"@site/docs/api/NodeWidget.md","permalink":"/docs/api/NodeWidget","sidebar":"api","category":"Internal Modules","next":"api/YogaWidget","previous":"api/NodeLayout","previous_title":"NodeLayout","next_title":"YogaWidget"},"api/EventWidget":{"sidebar_label":"EventWidget","title":"EventWidget","id":"api/EventWidget","description":"> Abstract class that adds event handling support to all widgets.","source":"@site/docs/api/EventWidget.md","permalink":"/docs/api/EventWidget","sidebar":"api","category":"Internal Modules","next":"api/NodeLayout","previous":"api/Component","previous_title":"Component","next_title":"NodeLayout"},"api/FlexLayout":{"sidebar_label":"FlexLayout","title":"FlexLayout","id":"api/FlexLayout","description":"> Custom layout to help layout child widgets using flex layout.","source":"@site/docs/api/FlexLayout.md","permalink":"/docs/api/FlexLayout","sidebar":"api","category":"Layouts","next":"api/QGridLayout","previous":"api/QWidget","previous_title":"QWidget","next_title":"QGridLayout"},"api/QAbstractScrollArea":{"sidebar_label":"QAbstractScrollArea","title":"QAbstractScrollArea","id":"api/QAbstractScrollArea","description":"> Abstract class to add functionalities common to all scrollarea based widgets.","source":"@site/docs/api/QAbstractScrollArea.md","permalink":"/docs/api/QAbstractScrollArea","sidebar":"api","category":"Internal Modules","next":"api/QAbstractSlider","previous":"api/YogaWidget","previous_title":"YogaWidget","next_title":"QAbstractSlider"},"api/QApplication":{"sidebar_label":"QApplication","title":"QApplication","id":"api/QApplication","description":"> QApplication is the root object for the entire application. It manages app level settings.","source":"@site/docs/api/QApplication.md","permalink":"/docs/api/QApplication","sidebar":"api","category":"Widgets","next":"api/QCheckBox","previous":"api/synopsis","previous_title":"Synopsis","next_title":"QCheckBox"},"api/NodeLayout":{"sidebar_label":"NodeLayout","title":"NodeLayout","id":"api/NodeLayout","description":"> Abstract class to add functionalities common to all Layout.","source":"@site/docs/api/NodeLayout.md","permalink":"/docs/api/NodeLayout","sidebar":"api","category":"Internal Modules","next":"api/NodeWidget","previous":"api/EventWidget","previous_title":"EventWidget","next_title":"NodeWidget"},"api/QClipboard":{"sidebar_label":"QClipboard","title":"QClipboard","id":"api/QClipboard","description":"> The QClipboard class provides access to the window system clipboard.","source":"@site/docs/api/QClipboard.md","permalink":"/docs/api/QClipboard","sidebar":"api","category":"Modules","next":"api/QCursor","previous":"api/QGridLayout","previous_title":"QGridLayout","next_title":"QCursor"},"api/QCursor":{"sidebar_label":"QCursor","title":"QCursor","id":"api/QCursor","description":"> The QCursor class provides scalable icons in different modes and states.","source":"@site/docs/api/QCursor.md","permalink":"/docs/api/QCursor","sidebar":"api","category":"Modules","next":"api/QPixmap","previous":"api/QClipboard","previous_title":"QClipboard","next_title":"QPixmap"},"api/QAbstractSlider":{"sidebar_label":"QAbstractSlider","title":"QAbstractSlider","id":"api/QAbstractSlider","description":"> Abstract class to add functionalities common to all slider based widgets.","source":"@site/docs/api/QAbstractSlider.md","permalink":"/docs/api/QAbstractSlider","sidebar":"api","category":"Internal Modules","next":"api/process","previous":"api/QAbstractScrollArea","previous_title":"QAbstractScrollArea","next_title":"process"},"api/QDial":{"sidebar_label":"QDial","title":"QDial","id":"api/QDial","description":"> Create and control dial slider widgets.","source":"@site/docs/api/QDial.md","permalink":"/docs/api/QDial","sidebar":"api","category":"Widgets","next":"api/QIcon","previous":"api/QCheckBox","previous_title":"QCheckBox","next_title":"QIcon"},"api/QCheckBox":{"sidebar_label":"QCheckBox","title":"QCheckBox","id":"api/QCheckBox","description":"> Create and control checkbox.","source":"@site/docs/api/QCheckBox.md","permalink":"/docs/api/QCheckBox","sidebar":"api","category":"Widgets","next":"api/QDial","previous":"api/QApplication","previous_title":"QApplication","next_title":"QDial"},"api/QGridLayout":{"sidebar_label":"QGridLayout","title":"QGridLayout","id":"api/QGridLayout","description":"> The QGridLayout class lays out widgets in a grid.","source":"@site/docs/api/QGridLayout.md","permalink":"/docs/api/QGridLayout","sidebar":"api","category":"Layouts","next":"api/QClipboard","previous":"api/FlexLayout","previous_title":"FlexLayout","next_title":"QClipboard"},"api/QLabel":{"sidebar_label":"QLabel","title":"QLabel","id":"api/QLabel","description":"> Create and control text.","source":"@site/docs/api/QLabel.md","permalink":"/docs/api/QLabel","sidebar":"api","category":"Widgets","next":"api/QLineEdit","previous":"api/QIcon","previous_title":"QIcon","next_title":"QLineEdit"},"api/QIcon":{"sidebar_label":"QIcon","title":"QIcon","id":"api/QIcon","description":"> The QIcon class provides scalable icons in different modes and states.","source":"@site/docs/api/QIcon.md","permalink":"/docs/api/QIcon","sidebar":"api","category":"Widgets","next":"api/QLabel","previous":"api/QDial","previous_title":"QDial","next_title":"QLabel"},"api/QPixmap":{"sidebar_label":"QPixmap","title":"QPixmap","id":"api/QPixmap","description":"> The QPixmap class helps hold an image in the form of off-screen image representation.","source":"@site/docs/api/QPixmap.md","permalink":"/docs/api/QPixmap","sidebar":"api","category":"Modules","next":"api/QtEnums","previous":"api/QCursor","previous_title":"QCursor","next_title":"Qt Enums"},"api/QLineEdit":{"sidebar_label":"QLineEdit","title":"QLineEdit","id":"api/QLineEdit","description":"> Create and control editable text field.","source":"@site/docs/api/QLineEdit.md","permalink":"/docs/api/QLineEdit","sidebar":"api","category":"Widgets","next":"api/QMainWindow","previous":"api/QLabel","previous_title":"QLabel","next_title":"QMainWindow"},"api/QProgressBar":{"sidebar_label":"QProgressBar","title":"QProgressBar","id":"api/QProgressBar","description":"> Create and control progress bar widgets.","source":"@site/docs/api/QProgressBar.md","permalink":"/docs/api/QProgressBar","sidebar":"api","category":"Widgets","next":"api/QPushButton","previous":"api/QPlainTextEdit","previous_title":"QPlainTextEdit","next_title":"QPushButton"},"api/QPlainTextEdit":{"sidebar_label":"QPlainTextEdit","title":"QPlainTextEdit","id":"api/QPlainTextEdit","description":"> Used to edit and display plain text.","source":"@site/docs/api/QPlainTextEdit.md","permalink":"/docs/api/QPlainTextEdit","sidebar":"api","category":"Widgets","next":"api/QProgressBar","previous":"api/QMainWindow","previous_title":"QMainWindow","next_title":"QProgressBar"},"api/QRadioButton":{"sidebar_label":"QRadioButton","title":"QRadioButton","id":"api/QRadioButton","description":"> Create and control radio button.","source":"@site/docs/api/QRadioButton.md","permalink":"/docs/api/QRadioButton","sidebar":"api","category":"Widgets","next":"api/QScrollArea","previous":"api/QPushButton","previous_title":"QPushButton","next_title":"QScrollArea"},"api/QScrollArea":{"sidebar_label":"QScrollArea","title":"QScrollArea","id":"api/QScrollArea","description":"> A `QScrollArea` provides a scrolling view onto another widget.","source":"@site/docs/api/QScrollArea.md","permalink":"/docs/api/QScrollArea","sidebar":"api","category":"Widgets","next":"api/QSpinBox","previous":"api/QRadioButton","previous_title":"QRadioButton","next_title":"QSpinBox"},"api/QMainWindow":{"sidebar_label":"QMainWindow","title":"QMainWindow","id":"api/QMainWindow","description":"> Create and control windows.","source":"@site/docs/api/QMainWindow.md","permalink":"/docs/api/QMainWindow","sidebar":"api","category":"Widgets","next":"api/QPlainTextEdit","previous":"api/QLineEdit","previous_title":"QLineEdit","next_title":"QPlainTextEdit"},"api/QSpinBox":{"sidebar_label":"QSpinBox","title":"QSpinBox","id":"api/QSpinBox","description":"> Create and control spin box widgets.","source":"@site/docs/api/QSpinBox.md","permalink":"/docs/api/QSpinBox","sidebar":"api","category":"Widgets","next":"api/QTabWidget","previous":"api/QScrollArea","previous_title":"QScrollArea","next_title":"QTabWidget"},"api/QPushButton":{"sidebar_label":"QPushButton","title":"QPushButton","id":"api/QPushButton","description":"> Create and control buttons.","source":"@site/docs/api/QPushButton.md","permalink":"/docs/api/QPushButton","sidebar":"api","category":"Widgets","next":"api/QRadioButton","previous":"api/QProgressBar","previous_title":"QProgressBar","next_title":"QRadioButton"},"api/QTabWidget":{"sidebar_label":"QTabWidget","title":"QTabWidget","id":"api/QTabWidget","description":"Will be available from NodeGUI v0.1.10 and up","source":"@site/docs/api/QTabWidget.md","permalink":"/docs/api/QTabWidget","sidebar":"api","category":"Widgets","next":"api/QWidget","previous":"api/QSpinBox","previous_title":"QSpinBox","next_title":"QWidget"},"api/QtEnums":{"sidebar_label":"Qt Enums","title":"Qt Enums","id":"api/QtEnums","description":"## Enums from Qt","source":"@site/docs/api/QtEnums.md","permalink":"/docs/api/QtEnums","sidebar":"api","category":"Modules","next":"api/Component","previous":"api/QPixmap","previous_title":"QPixmap","next_title":"Component"},"api/YogaWidget":{"sidebar_label":"YogaWidget","title":"YogaWidget","id":"api/YogaWidget","description":"> Abstract class to add common functionality related to Flex layout to all Widgets.","source":"@site/docs/api/YogaWidget.md","permalink":"/docs/api/YogaWidget","sidebar":"api","category":"Internal Modules","next":"api/QAbstractScrollArea","previous":"api/NodeWidget","previous_title":"NodeWidget","next_title":"QAbstractScrollArea"},"api/QWidget":{"sidebar_label":"QWidget","title":"QWidget","id":"api/QWidget","description":"> Create and control views.","source":"@site/docs/api/QWidget.md","permalink":"/docs/api/QWidget","sidebar":"api","category":"Widgets","next":"api/FlexLayout","previous":"api/QTabWidget","previous_title":"QTabWidget","next_title":"FlexLayout"},"api/process":{"sidebar_label":"process","title":"process","id":"api/process","description":"> Extensions to process object.","source":"@site/docs/api/process.md","permalink":"/docs/api/process","sidebar":"api","category":"APIs","previous":"api/QAbstractSlider","previous_title":"QAbstractSlider"},"api/synopsis":{"sidebar_label":"Synopsis","title":"Synopsis","id":"api/synopsis","description":"> How to use Node.js and NodeGui\'s APIs.","source":"@site/docs/api/synopsis.md","permalink":"/docs/api/synopsis","sidebar":"api","category":"General","next":"api/QApplication","next_title":"QApplication"},"development/README":{"id":"development/README","title":"README","description":"# Contributor\'s guide","source":"@site/docs/development/README.md","permalink":"/docs/development/README"},"development/setting-up":{"id":"development/setting-up","title":"setting-up","description":"# Setup project for development","source":"@site/docs/development/setting-up.md","permalink":"/docs/development/setting-up"},"development/getting-started":{"id":"development/getting-started","title":"getting-started","description":"## Getting started","source":"@site/docs/development/getting-started.md","permalink":"/docs/development/getting-started"},"development/debugging":{"id":"development/debugging","title":"debugging","description":"# debugging","source":"@site/docs/development/debugging.md","permalink":"/docs/development/debugging"},"development/signal_and_event_handling":{"id":"development/signal_and_event_handling","title":"signal_and_event_handling","description":"# Event handling","source":"@site/docs/development/signal_and_event_handling.md","permalink":"/docs/development/signal_and_event_handling"},"development/common_errors":{"id":"development/common_errors","title":"common_errors","description":"# Common errors","source":"@site/docs/development/common_errors.md","permalink":"/docs/development/common_errors"},"guides/debugging-in-vscode":{"sidebar_label":"Debugging in VSCode","title":"Debugging in VSCode","id":"guides/debugging-in-vscode","description":"- **Open a NodeGui project in VSCode.**","source":"@site/docs/guides/debugging-in-vscode.md","permalink":"/docs/guides/debugging-in-vscode","sidebar":"guides","category":"Guides","next":"guides/using-native-node-modules","previous":"guides/debugging","previous_title":"Debugging","next_title":"Using native Node Modules"},"development/styling":{"id":"development/styling","title":"styling","description":"# How styling works?","source":"@site/docs/development/styling.md","permalink":"/docs/development/styling"},"development/wrapping_widgets":{"id":"development/wrapping_widgets","title":"wrapping_widgets","description":"# Exporting a new method from a widget","source":"@site/docs/development/wrapping_widgets.md","permalink":"/docs/development/wrapping_widgets"},"guides/getting-started":{"sidebar_label":"Getting started","title":"Getting started","id":"guides/getting-started","description":"NodeGui enables you to create desktop applications with JavaScript. You could see it","source":"@site/docs/guides/getting-started.md","permalink":"/docs/guides/getting-started","sidebar":"guides","category":"The Basics","next":"guides/tutorial","next_title":"Learn the Basics"},"guides/custom-nodegui-native-plugin":{"sidebar_label":"Custom NodeGui Plugin","title":"Custom NodeGui Plugin","id":"guides/custom-nodegui-native-plugin","description":"WIP","source":"@site/docs/guides/custom-nodegui-native-plugin.md","permalink":"/docs/guides/custom-nodegui-native-plugin","sidebar":"guides","category":"Guides","previous":"guides/using-native-node-modules","previous_title":"Using native Node Modules"},"guides/images":{"sidebar_label":"Images","title":"Images","id":"guides/images","description":"WIP","source":"@site/docs/guides/images.md","permalink":"/docs/guides/images","sidebar":"guides","category":"The Basics","next":"guides/networking","previous":"guides/scroll-view","previous_title":"Scroll View","next_title":"Networking"},"guides/debugging":{"sidebar_label":"Debugging","title":"Debugging","id":"guides/debugging","description":"## Application Debugging","source":"@site/docs/guides/debugging.md","permalink":"/docs/guides/debugging","sidebar":"guides","category":"Guides","next":"guides/debugging-in-vscode","previous":"guides/nodegui-architecture","previous_title":"Architecture","next_title":"Debugging in VSCode"},"guides/handle-events":{"sidebar_label":"Handle Events","title":"Handle Events","id":"guides/handle-events","description":"WIP","source":"@site/docs/guides/handle-events.md","permalink":"/docs/guides/handle-events","sidebar":"guides","category":"The Basics","next":"guides/scroll-view","previous":"guides/layout","previous_title":"Layout","next_title":"Scroll View"},"guides/scroll-view":{"sidebar_label":"Scroll View","title":"Scroll View","id":"guides/scroll-view","description":"WIP","source":"@site/docs/guides/scroll-view.md","permalink":"/docs/guides/scroll-view","sidebar":"guides","category":"The Basics","next":"guides/images","previous":"guides/handle-events","previous_title":"Handle Events","next_title":"Images"},"guides/styling":{"sidebar_label":"Styling","title":"Styling","id":"guides/styling","description":"With NodeGui, you can style a widget to your needs. If you are familiar with CSS in the web world you would feel right at home. All widgets have a method `setInlineStyle` for setting inline styles for the respective widget. The style names and values usually match how CSS works on the web.","source":"@site/docs/guides/styling.md","permalink":"/docs/guides/styling","sidebar":"guides","category":"The Basics","next":"guides/layout","previous":"guides/tutorial","previous_title":"Learn the Basics","next_title":"Layout"},"guides/tutorial":{"sidebar_label":"Learn the Basics","title":"Learn the Basics","id":"guides/tutorial","description":"NodeGui uses native components instead of web based components as building blocks. So to understand the basic structure of a NodeGui app, you need to be familiar with Javascript or Typescript. This tutorial is aimed at everyone who has some web experience with web development.","source":"@site/docs/guides/tutorial.md","permalink":"/docs/guides/tutorial","sidebar":"guides","category":"The Basics","next":"guides/styling","previous":"guides/getting-started","previous_title":"Getting started","next_title":"Styling"},"guides/using-native-node-modules":{"sidebar_label":"Native Node Modules","title":"Using native Node Modules","id":"guides/using-native-node-modules","description":"Native Node modules are supported by NodeGui, but since NodeGui is very","source":"@site/docs/guides/using-native-node-modules.md","permalink":"/docs/guides/using-native-node-modules","sidebar":"guides","category":"Guides","next":"guides/custom-nodegui-native-plugin","previous":"guides/debugging-in-vscode","previous_title":"Debugging in VSCode","next_title":"Custom NodeGui Plugin"},"guides/networking":{"sidebar_label":"Networking","title":"Networking","id":"guides/networking","description":"WIP","source":"@site/docs/guides/networking.md","permalink":"/docs/guides/networking","sidebar":"guides","category":"The Basics","next":"guides/nodegui-architecture","previous":"guides/images","previous_title":"Images","next_title":"Architecture"},"guides/layout":{"sidebar_label":"Layout","title":"Layout","id":"guides/layout","description":"NodeGui uses a layout system to automatically arranging child widgets within a widget to ensure that they make good use of the available space.","source":"@site/docs/guides/layout.md","permalink":"/docs/guides/layout","sidebar":"guides","category":"The Basics","next":"guides/handle-events","previous":"guides/styling","previous_title":"Styling","next_title":"Handle Events"},"guides/nodegui-architecture":{"sidebar_label":"Architecture","title":"Architecture","id":"guides/nodegui-architecture","description":"By looking at how NodeGui works internally, we would get a clear picture on why the APIs are designed the way they are.","source":"@site/docs/guides/nodegui-architecture.md","permalink":"/docs/guides/nodegui-architecture","sidebar":"guides","category":"Guides","next":"guides/debugging","previous":"guides/networking","previous_title":"Networking","next_title":"Debugging"}},"docsDir":"/Users/atulr/Project/nodegui/nodegui/website/docs","docsSidebars":{"api":[{"type":"category","label":"General","items":[{"type":"doc","id":"api/synopsis"}]},{"type":"category","label":"Widgets","items":[{"type":"doc","id":"api/QApplication"},{"type":"doc","id":"api/QCheckBox"},{"type":"doc","id":"api/QDial"},{"type":"doc","id":"api/QIcon"},{"type":"doc","id":"api/QLabel"},{"type":"doc","id":"api/QLineEdit"},{"type":"doc","id":"api/QMainWindow"},{"type":"doc","id":"api/QPlainTextEdit"},{"type":"doc","id":"api/QProgressBar"},{"type":"doc","id":"api/QPushButton"},{"type":"doc","id":"api/QRadioButton"},{"type":"doc","id":"api/QScrollArea"},{"type":"doc","id":"api/QSpinBox"},{"type":"doc","id":"api/QTabWidget"},{"type":"doc","id":"api/QWidget"}]},{"type":"category","label":"Layouts","items":[{"type":"doc","id":"api/FlexLayout"},{"type":"doc","id":"api/QGridLayout"}]},{"type":"category","label":"Modules","items":[{"type":"doc","id":"api/QClipboard"},{"type":"doc","id":"api/QCursor"},{"type":"doc","id":"api/QPixmap"},{"type":"doc","id":"api/QtEnums"}]},{"type":"category","label":"Internal Modules","items":[{"type":"doc","id":"api/Component"},{"type":"doc","id":"api/EventWidget"},{"type":"doc","id":"api/NodeLayout"},{"type":"doc","id":"api/NodeWidget"},{"type":"doc","id":"api/YogaWidget"},{"type":"doc","id":"api/QAbstractScrollArea"},{"type":"doc","id":"api/QAbstractSlider"}]},{"type":"category","label":"APIs","items":[{"type":"doc","id":"api/process"}]}],"guides":[{"type":"category","label":"The Basics","items":[{"type":"doc","id":"guides/getting-started"},{"type":"doc","id":"guides/tutorial"},{"type":"doc","id":"guides/styling"},{"type":"doc","id":"guides/layout"},{"type":"doc","id":"guides/handle-events"},{"type":"doc","id":"guides/scroll-view"},{"type":"doc","id":"guides/images"},{"type":"doc","id":"guides/networking"}]},{"type":"category","label":"Guides","items":[{"type":"doc","id":"guides/nodegui-architecture"},{"type":"doc","id":"guides/debugging"},{"type":"doc","id":"guides/debugging-in-vscode"},{"type":"doc","id":"guides/using-native-node-modules"},{"type":"doc","id":"guides/custom-nodegui-native-plugin"}]}]},"sourceToPermalink":{"@site/docs/doc1.md":"/docs/doc1","@site/docs/faq.md":"/docs/faq","@site/docs/mdx.md":"/docs/mdx","@site/docs/api/Component.md":"/docs/api/Component","@site/docs/api/NodeWidget.md":"/docs/api/NodeWidget","@site/docs/api/EventWidget.md":"/docs/api/EventWidget","@site/docs/api/FlexLayout.md":"/docs/api/FlexLayout","@site/docs/api/QAbstractScrollArea.md":"/docs/api/QAbstractScrollArea","@site/docs/api/QApplication.md":"/docs/api/QApplication","@site/docs/api/NodeLayout.md":"/docs/api/NodeLayout","@site/docs/api/QClipboard.md":"/docs/api/QClipboard","@site/docs/api/QCursor.md":"/docs/api/QCursor","@site/docs/api/QAbstractSlider.md":"/docs/api/QAbstractSlider","@site/docs/api/QDial.md":"/docs/api/QDial","@site/docs/api/QCheckBox.md":"/docs/api/QCheckBox","@site/docs/api/QGridLayout.md":"/docs/api/QGridLayout","@site/docs/api/QLabel.md":"/docs/api/QLabel","@site/docs/api/QIcon.md":"/docs/api/QIcon","@site/docs/api/QPixmap.md":"/docs/api/QPixmap","@site/docs/api/QLineEdit.md":"/docs/api/QLineEdit","@site/docs/api/QProgressBar.md":"/docs/api/QProgressBar","@site/docs/api/QPlainTextEdit.md":"/docs/api/QPlainTextEdit","@site/docs/api/QRadioButton.md":"/docs/api/QRadioButton","@site/docs/api/QScrollArea.md":"/docs/api/QScrollArea","@site/docs/api/QMainWindow.md":"/docs/api/QMainWindow","@site/docs/api/QSpinBox.md":"/docs/api/QSpinBox","@site/docs/api/QPushButton.md":"/docs/api/QPushButton","@site/docs/api/QTabWidget.md":"/docs/api/QTabWidget","@site/docs/api/QtEnums.md":"/docs/api/QtEnums","@site/docs/api/YogaWidget.md":"/docs/api/YogaWidget","@site/docs/api/QWidget.md":"/docs/api/QWidget","@site/docs/api/process.md":"/docs/api/process","@site/docs/api/synopsis.md":"/docs/api/synopsis","@site/docs/development/README.md":"/docs/development/README","@site/docs/development/setting-up.md":"/docs/development/setting-up","@site/docs/development/getting-started.md":"/docs/development/getting-started","@site/docs/development/debugging.md":"/docs/development/debugging","@site/docs/development/signal_and_event_handling.md":"/docs/development/signal_and_event_handling","@site/docs/development/common_errors.md":"/docs/development/common_errors","@site/docs/guides/debugging-in-vscode.md":"/docs/guides/debugging-in-vscode","@site/docs/development/styling.md":"/docs/development/styling","@site/docs/development/wrapping_widgets.md":"/docs/development/wrapping_widgets","@site/docs/guides/getting-started.md":"/docs/guides/getting-started","@site/docs/guides/custom-nodegui-native-plugin.md":"/docs/guides/custom-nodegui-native-plugin","@site/docs/guides/images.md":"/docs/guides/images","@site/docs/guides/debugging.md":"/docs/guides/debugging","@site/docs/guides/handle-events.md":"/docs/guides/handle-events","@site/docs/guides/scroll-view.md":"/docs/guides/scroll-view","@site/docs/guides/styling.md":"/docs/guides/styling","@site/docs/guides/tutorial.md":"/docs/guides/tutorial","@site/docs/guides/using-native-node-modules.md":"/docs/guides/using-native-node-modules","@site/docs/guides/networking.md":"/docs/guides/networking","@site/docs/guides/layout.md":"/docs/guides/layout","@site/docs/guides/nodegui-architecture.md":"/docs/guides/nodegui-architecture"},"permalinkToId":{"/docs/doc1":"doc1","/docs/faq":"faq","/docs/mdx":"mdx","/docs/api/Component":"api/Component","/docs/api/NodeWidget":"api/NodeWidget","/docs/api/EventWidget":"api/EventWidget","/docs/api/FlexLayout":"api/FlexLayout","/docs/api/QAbstractScrollArea":"api/QAbstractScrollArea","/docs/api/QApplication":"api/QApplication","/docs/api/NodeLayout":"api/NodeLayout","/docs/api/QClipboard":"api/QClipboard","/docs/api/QCursor":"api/QCursor","/docs/api/QAbstractSlider":"api/QAbstractSlider","/docs/api/QDial":"api/QDial","/docs/api/QCheckBox":"api/QCheckBox","/docs/api/QGridLayout":"api/QGridLayout","/docs/api/QLabel":"api/QLabel","/docs/api/QIcon":"api/QIcon","/docs/api/QPixmap":"api/QPixmap","/docs/api/QLineEdit":"api/QLineEdit","/docs/api/QProgressBar":"api/QProgressBar","/docs/api/QPlainTextEdit":"api/QPlainTextEdit","/docs/api/QRadioButton":"api/QRadioButton","/docs/api/QScrollArea":"api/QScrollArea","/docs/api/QMainWindow":"api/QMainWindow","/docs/api/QSpinBox":"api/QSpinBox","/docs/api/QPushButton":"api/QPushButton","/docs/api/QTabWidget":"api/QTabWidget","/docs/api/QtEnums":"api/QtEnums","/docs/api/YogaWidget":"api/YogaWidget","/docs/api/QWidget":"api/QWidget","/docs/api/process":"api/process","/docs/api/synopsis":"api/synopsis","/docs/development/README":"development/README","/docs/development/setting-up":"development/setting-up","/docs/development/getting-started":"development/getting-started","/docs/development/debugging":"development/debugging","/docs/development/signal_and_event_handling":"development/signal_and_event_handling","/docs/development/common_errors":"development/common_errors","/docs/guides/debugging-in-vscode":"guides/debugging-in-vscode","/docs/development/styling":"development/styling","/docs/development/wrapping_widgets":"development/wrapping_widgets","/docs/guides/getting-started":"guides/getting-started","/docs/guides/custom-nodegui-native-plugin":"guides/custom-nodegui-native-plugin","/docs/guides/images":"guides/images","/docs/guides/debugging":"guides/debugging","/docs/guides/handle-events":"guides/handle-events","/docs/guides/scroll-view":"guides/scroll-view","/docs/guides/styling":"guides/styling","/docs/guides/tutorial":"guides/tutorial","/docs/guides/using-native-node-modules":"guides/using-native-node-modules","/docs/guides/networking":"guides/networking","/docs/guides/layout":"guides/layout","/docs/guides/nodegui-architecture":"guides/nodegui-architecture"}}')}}]); \ No newline at end of file diff --git a/docsMetadata---docs-150-2d6.6e875209659be13f2970.js b/docsMetadata---docs-150-2d6.6e875209659be13f2970.js new file mode 100644 index 000000000..822b6bc22 --- /dev/null +++ b/docsMetadata---docs-150-2d6.6e875209659be13f2970.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{42:function(e){e.exports=JSON.parse('{"docs":{"doc1":{"id":"doc1","title":"Style Guide","sidebar_label":"Style Guide","description":"You can write content using [GitHub-flavored Markdown syntax](https://github.github.com/gfm/).","source":"@site/docs/doc1.md","permalink":"/docs/doc1"},"faq":{"title":"FAQ","sidebar_label":"FAQ","id":"faq","description":"## Why am I having trouble installing Qode?","source":"@site/docs/faq.md","permalink":"/docs/faq"},"mdx":{"id":"mdx","title":"Powered by MDX","description":"You can write JSX and use React components within your Markdown thanks to [MDX](https://mdxjs.com/).","source":"@site/docs/mdx.md","permalink":"/docs/mdx"},"api/Component":{"sidebar_label":"Component","title":"Component","id":"api/Component","description":"> Abstract class that is root most base class for all widgets and layouts in the NodeGui World.","source":"@site/docs/api/Component.md","permalink":"/docs/api/Component","sidebar":"api","category":"Internal Modules","next":"api/EventWidget","previous":"api/QtEnums","previous_title":"Qt Enums","next_title":"EventWidget"},"api/EventWidget":{"sidebar_label":"EventWidget","title":"EventWidget","id":"api/EventWidget","description":"> Abstract class that adds event handling support to all widgets.","source":"@site/docs/api/EventWidget.md","permalink":"/docs/api/EventWidget","sidebar":"api","category":"Internal Modules","next":"api/NodeLayout","previous":"api/Component","previous_title":"Component","next_title":"NodeLayout"},"api/FlexLayout":{"sidebar_label":"FlexLayout","title":"FlexLayout","id":"api/FlexLayout","description":"> Custom layout to help layout child widgets using flex layout.","source":"@site/docs/api/FlexLayout.md","permalink":"/docs/api/FlexLayout","sidebar":"api","category":"Layouts","next":"api/QGridLayout","previous":"api/QWidget","previous_title":"QWidget","next_title":"QGridLayout"},"api/NodeLayout":{"sidebar_label":"NodeLayout","title":"NodeLayout","id":"api/NodeLayout","description":"> Abstract class to add functionalities common to all Layout.","source":"@site/docs/api/NodeLayout.md","permalink":"/docs/api/NodeLayout","sidebar":"api","category":"Internal Modules","next":"api/NodeWidget","previous":"api/EventWidget","previous_title":"EventWidget","next_title":"NodeWidget"},"api/NodeWidget":{"sidebar_label":"NodeWidget","title":"NodeWidget","id":"api/NodeWidget","description":"> Abstract class to add functionalities common to all Widgets.","source":"@site/docs/api/NodeWidget.md","permalink":"/docs/api/NodeWidget","sidebar":"api","category":"Internal Modules","next":"api/YogaWidget","previous":"api/NodeLayout","previous_title":"NodeLayout","next_title":"YogaWidget"},"api/QAbstractScrollArea":{"sidebar_label":"QAbstractScrollArea","title":"QAbstractScrollArea","id":"api/QAbstractScrollArea","description":"> Abstract class to add functionalities common to all scrollarea based widgets.","source":"@site/docs/api/QAbstractScrollArea.md","permalink":"/docs/api/QAbstractScrollArea","sidebar":"api","category":"Internal Modules","next":"api/QAbstractSlider","previous":"api/YogaWidget","previous_title":"YogaWidget","next_title":"QAbstractSlider"},"api/QAbstractSlider":{"sidebar_label":"QAbstractSlider","title":"QAbstractSlider","id":"api/QAbstractSlider","description":"> Abstract class to add functionalities common to all slider based widgets.","source":"@site/docs/api/QAbstractSlider.md","permalink":"/docs/api/QAbstractSlider","sidebar":"api","category":"Internal Modules","next":"api/process","previous":"api/QAbstractScrollArea","previous_title":"QAbstractScrollArea","next_title":"process"},"api/QApplication":{"sidebar_label":"QApplication","title":"QApplication","id":"api/QApplication","description":"> QApplication is the root object for the entire application. It manages app level settings.","source":"@site/docs/api/QApplication.md","permalink":"/docs/api/QApplication","sidebar":"api","category":"Widgets","next":"api/QCheckBox","previous":"api/synopsis","previous_title":"Synopsis","next_title":"QCheckBox"},"api/QCheckBox":{"sidebar_label":"QCheckBox","title":"QCheckBox","id":"api/QCheckBox","description":"> Create and control checkbox.","source":"@site/docs/api/QCheckBox.md","permalink":"/docs/api/QCheckBox","sidebar":"api","category":"Widgets","next":"api/QDial","previous":"api/QApplication","previous_title":"QApplication","next_title":"QDial"},"api/QClipboard":{"sidebar_label":"QClipboard","title":"QClipboard","id":"api/QClipboard","description":"> The QClipboard class provides access to the window system clipboard.","source":"@site/docs/api/QClipboard.md","permalink":"/docs/api/QClipboard","sidebar":"api","category":"Modules","next":"api/QCursor","previous":"api/QGridLayout","previous_title":"QGridLayout","next_title":"QCursor"},"api/QCursor":{"sidebar_label":"QCursor","title":"QCursor","id":"api/QCursor","description":"> The QCursor class provides scalable icons in different modes and states.","source":"@site/docs/api/QCursor.md","permalink":"/docs/api/QCursor","sidebar":"api","category":"Modules","next":"api/QPixmap","previous":"api/QClipboard","previous_title":"QClipboard","next_title":"QPixmap"},"api/QDial":{"sidebar_label":"QDial","title":"QDial","id":"api/QDial","description":"> Create and control dial slider widgets.","source":"@site/docs/api/QDial.md","permalink":"/docs/api/QDial","sidebar":"api","category":"Widgets","next":"api/QIcon","previous":"api/QCheckBox","previous_title":"QCheckBox","next_title":"QIcon"},"api/QGridLayout":{"sidebar_label":"QGridLayout","title":"QGridLayout","id":"api/QGridLayout","description":"> The QGridLayout class lays out widgets in a grid.","source":"@site/docs/api/QGridLayout.md","permalink":"/docs/api/QGridLayout","sidebar":"api","category":"Layouts","next":"api/QClipboard","previous":"api/FlexLayout","previous_title":"FlexLayout","next_title":"QClipboard"},"api/QIcon":{"sidebar_label":"QIcon","title":"QIcon","id":"api/QIcon","description":"> The QIcon class provides scalable icons in different modes and states.","source":"@site/docs/api/QIcon.md","permalink":"/docs/api/QIcon","sidebar":"api","category":"Widgets","next":"api/QLabel","previous":"api/QDial","previous_title":"QDial","next_title":"QLabel"},"api/QLabel":{"sidebar_label":"QLabel","title":"QLabel","id":"api/QLabel","description":"> Create and control text.","source":"@site/docs/api/QLabel.md","permalink":"/docs/api/QLabel","sidebar":"api","category":"Widgets","next":"api/QLineEdit","previous":"api/QIcon","previous_title":"QIcon","next_title":"QLineEdit"},"api/QLineEdit":{"sidebar_label":"QLineEdit","title":"QLineEdit","id":"api/QLineEdit","description":"> Create and control editable text field.","source":"@site/docs/api/QLineEdit.md","permalink":"/docs/api/QLineEdit","sidebar":"api","category":"Widgets","next":"api/QMainWindow","previous":"api/QLabel","previous_title":"QLabel","next_title":"QMainWindow"},"api/QMainWindow":{"sidebar_label":"QMainWindow","title":"QMainWindow","id":"api/QMainWindow","description":"> Create and control windows.","source":"@site/docs/api/QMainWindow.md","permalink":"/docs/api/QMainWindow","sidebar":"api","category":"Widgets","next":"api/QPlainTextEdit","previous":"api/QLineEdit","previous_title":"QLineEdit","next_title":"QPlainTextEdit"},"api/QPixmap":{"sidebar_label":"QPixmap","title":"QPixmap","id":"api/QPixmap","description":"> The QPixmap class helps hold an image in the form of off-screen image representation.","source":"@site/docs/api/QPixmap.md","permalink":"/docs/api/QPixmap","sidebar":"api","category":"Modules","next":"api/QtEnums","previous":"api/QCursor","previous_title":"QCursor","next_title":"Qt Enums"},"api/QPlainTextEdit":{"sidebar_label":"QPlainTextEdit","title":"QPlainTextEdit","id":"api/QPlainTextEdit","description":"> Used to edit and display plain text.","source":"@site/docs/api/QPlainTextEdit.md","permalink":"/docs/api/QPlainTextEdit","sidebar":"api","category":"Widgets","next":"api/QProgressBar","previous":"api/QMainWindow","previous_title":"QMainWindow","next_title":"QProgressBar"},"api/QProgressBar":{"sidebar_label":"QProgressBar","title":"QProgressBar","id":"api/QProgressBar","description":"> Create and control progress bar widgets.","source":"@site/docs/api/QProgressBar.md","permalink":"/docs/api/QProgressBar","sidebar":"api","category":"Widgets","next":"api/QPushButton","previous":"api/QPlainTextEdit","previous_title":"QPlainTextEdit","next_title":"QPushButton"},"api/QPushButton":{"sidebar_label":"QPushButton","title":"QPushButton","id":"api/QPushButton","description":"> Create and control buttons.","source":"@site/docs/api/QPushButton.md","permalink":"/docs/api/QPushButton","sidebar":"api","category":"Widgets","next":"api/QRadioButton","previous":"api/QProgressBar","previous_title":"QProgressBar","next_title":"QRadioButton"},"api/QRadioButton":{"sidebar_label":"QRadioButton","title":"QRadioButton","id":"api/QRadioButton","description":"> Create and control radio button.","source":"@site/docs/api/QRadioButton.md","permalink":"/docs/api/QRadioButton","sidebar":"api","category":"Widgets","next":"api/QScrollArea","previous":"api/QPushButton","previous_title":"QPushButton","next_title":"QScrollArea"},"api/QScrollArea":{"sidebar_label":"QScrollArea","title":"QScrollArea","id":"api/QScrollArea","description":"> A `QScrollArea` provides a scrolling view onto another widget.","source":"@site/docs/api/QScrollArea.md","permalink":"/docs/api/QScrollArea","sidebar":"api","category":"Widgets","next":"api/QSpinBox","previous":"api/QRadioButton","previous_title":"QRadioButton","next_title":"QSpinBox"},"api/QSpinBox":{"sidebar_label":"QSpinBox","title":"QSpinBox","id":"api/QSpinBox","description":"> Create and control spin box widgets.","source":"@site/docs/api/QSpinBox.md","permalink":"/docs/api/QSpinBox","sidebar":"api","category":"Widgets","next":"api/QTabWidget","previous":"api/QScrollArea","previous_title":"QScrollArea","next_title":"QTabWidget"},"api/QTabWidget":{"sidebar_label":"QTabWidget","title":"QTabWidget","id":"api/QTabWidget","description":"Will be available from NodeGUI v0.1.10 and up","source":"@site/docs/api/QTabWidget.md","permalink":"/docs/api/QTabWidget","sidebar":"api","category":"Widgets","next":"api/QWidget","previous":"api/QSpinBox","previous_title":"QSpinBox","next_title":"QWidget"},"api/QWidget":{"sidebar_label":"QWidget","title":"QWidget","id":"api/QWidget","description":"> Create and control views.","source":"@site/docs/api/QWidget.md","permalink":"/docs/api/QWidget","sidebar":"api","category":"Widgets","next":"api/FlexLayout","previous":"api/QTabWidget","previous_title":"QTabWidget","next_title":"FlexLayout"},"api/QtEnums":{"sidebar_label":"Qt Enums","title":"Qt Enums","id":"api/QtEnums","description":"## Enums from Qt","source":"@site/docs/api/QtEnums.md","permalink":"/docs/api/QtEnums","sidebar":"api","category":"Modules","next":"api/Component","previous":"api/QPixmap","previous_title":"QPixmap","next_title":"Component"},"api/YogaWidget":{"sidebar_label":"YogaWidget","title":"YogaWidget","id":"api/YogaWidget","description":"> Abstract class to add common functionality related to Flex layout to all Widgets.","source":"@site/docs/api/YogaWidget.md","permalink":"/docs/api/YogaWidget","sidebar":"api","category":"Internal Modules","next":"api/QAbstractScrollArea","previous":"api/NodeWidget","previous_title":"NodeWidget","next_title":"QAbstractScrollArea"},"api/process":{"sidebar_label":"process","title":"process","id":"api/process","description":"> Extensions to process object.","source":"@site/docs/api/process.md","permalink":"/docs/api/process","sidebar":"api","category":"APIs","previous":"api/QAbstractSlider","previous_title":"QAbstractSlider"},"api/synopsis":{"sidebar_label":"Synopsis","title":"Synopsis","id":"api/synopsis","description":"> How to use Node.js and NodeGui\'s APIs.","source":"@site/docs/api/synopsis.md","permalink":"/docs/api/synopsis","sidebar":"api","category":"General","next":"api/QApplication","next_title":"QApplication"},"development/README":{"id":"development/README","title":"README","description":"# Contributor\'s guide","source":"@site/docs/development/README.md","permalink":"/docs/development/README"},"development/common_errors":{"id":"development/common_errors","title":"common_errors","description":"# Common errors","source":"@site/docs/development/common_errors.md","permalink":"/docs/development/common_errors"},"development/debugging":{"id":"development/debugging","title":"debugging","description":"# debugging","source":"@site/docs/development/debugging.md","permalink":"/docs/development/debugging"},"development/getting-started":{"id":"development/getting-started","title":"getting-started","description":"## Getting started","source":"@site/docs/development/getting-started.md","permalink":"/docs/development/getting-started"},"development/setting-up":{"id":"development/setting-up","title":"setting-up","description":"# Setup project for development","source":"@site/docs/development/setting-up.md","permalink":"/docs/development/setting-up"},"development/signal_and_event_handling":{"id":"development/signal_and_event_handling","title":"signal_and_event_handling","description":"# Event handling","source":"@site/docs/development/signal_and_event_handling.md","permalink":"/docs/development/signal_and_event_handling"},"development/styling":{"id":"development/styling","title":"styling","description":"# How styling works?","source":"@site/docs/development/styling.md","permalink":"/docs/development/styling"},"development/wrapping_widgets":{"id":"development/wrapping_widgets","title":"wrapping_widgets","description":"# Exporting a new method from a widget","source":"@site/docs/development/wrapping_widgets.md","permalink":"/docs/development/wrapping_widgets"},"guides/custom-nodegui-native-plugin":{"sidebar_label":"Custom NodeGui Plugin","title":"Custom NodeGui Plugin","id":"guides/custom-nodegui-native-plugin","description":"WIP","source":"@site/docs/guides/custom-nodegui-native-plugin.md","permalink":"/docs/guides/custom-nodegui-native-plugin","sidebar":"guides","category":"Guides","previous":"guides/using-native-node-modules","previous_title":"Using native Node Modules"},"guides/debugging-in-vscode":{"sidebar_label":"Debugging in VSCode","title":"Debugging in VSCode","id":"guides/debugging-in-vscode","description":"- **Open a NodeGui project in VSCode.**","source":"@site/docs/guides/debugging-in-vscode.md","permalink":"/docs/guides/debugging-in-vscode","sidebar":"guides","category":"Guides","next":"guides/using-native-node-modules","previous":"guides/debugging","previous_title":"Debugging","next_title":"Using native Node Modules"},"guides/debugging":{"sidebar_label":"Debugging","title":"Debugging","id":"guides/debugging","description":"## Application Debugging","source":"@site/docs/guides/debugging.md","permalink":"/docs/guides/debugging","sidebar":"guides","category":"Guides","next":"guides/debugging-in-vscode","previous":"guides/nodegui-architecture","previous_title":"Architecture","next_title":"Debugging in VSCode"},"guides/getting-started":{"sidebar_label":"Getting started","title":"Getting started","id":"guides/getting-started","description":"NodeGui enables you to create desktop applications with JavaScript. You could see it","source":"@site/docs/guides/getting-started.md","permalink":"/docs/guides/getting-started","sidebar":"guides","category":"The Basics","next":"guides/tutorial","next_title":"Learn the Basics"},"guides/handle-events":{"sidebar_label":"Handle Events","title":"Handle Events","id":"guides/handle-events","description":"WIP","source":"@site/docs/guides/handle-events.md","permalink":"/docs/guides/handle-events","sidebar":"guides","category":"The Basics","next":"guides/scroll-view","previous":"guides/layout","previous_title":"Layout","next_title":"Scroll View"},"guides/images":{"sidebar_label":"Images","title":"Images","id":"guides/images","description":"WIP","source":"@site/docs/guides/images.md","permalink":"/docs/guides/images","sidebar":"guides","category":"The Basics","next":"guides/networking","previous":"guides/scroll-view","previous_title":"Scroll View","next_title":"Networking"},"guides/layout":{"sidebar_label":"Layout","title":"Layout","id":"guides/layout","description":"NodeGui uses a layout system to automatically arranging child widgets within a widget to ensure that they make good use of the available space.","source":"@site/docs/guides/layout.md","permalink":"/docs/guides/layout","sidebar":"guides","category":"The Basics","next":"guides/handle-events","previous":"guides/styling","previous_title":"Styling","next_title":"Handle Events"},"guides/networking":{"sidebar_label":"Networking","title":"Networking","id":"guides/networking","description":"WIP","source":"@site/docs/guides/networking.md","permalink":"/docs/guides/networking","sidebar":"guides","category":"The Basics","next":"guides/nodegui-architecture","previous":"guides/images","previous_title":"Images","next_title":"Architecture"},"guides/nodegui-architecture":{"sidebar_label":"Architecture","title":"Architecture","id":"guides/nodegui-architecture","description":"By looking at how NodeGui works internally, we would get a clear picture on why the APIs are designed the way they are.","source":"@site/docs/guides/nodegui-architecture.md","permalink":"/docs/guides/nodegui-architecture","sidebar":"guides","category":"Guides","next":"guides/debugging","previous":"guides/networking","previous_title":"Networking","next_title":"Debugging"},"guides/scroll-view":{"sidebar_label":"Scroll View","title":"Scroll View","id":"guides/scroll-view","description":"WIP","source":"@site/docs/guides/scroll-view.md","permalink":"/docs/guides/scroll-view","sidebar":"guides","category":"The Basics","next":"guides/images","previous":"guides/handle-events","previous_title":"Handle Events","next_title":"Images"},"guides/styling":{"sidebar_label":"Styling","title":"Styling","id":"guides/styling","description":"With NodeGui, you can style a widget to your needs. If you are familiar with CSS in the web world you would feel right at home. All widgets have a method `setInlineStyle` for setting inline styles for the respective widget. The style names and values usually match how CSS works on the web.","source":"@site/docs/guides/styling.md","permalink":"/docs/guides/styling","sidebar":"guides","category":"The Basics","next":"guides/layout","previous":"guides/tutorial","previous_title":"Learn the Basics","next_title":"Layout"},"guides/tutorial":{"sidebar_label":"Learn the Basics","title":"Learn the Basics","id":"guides/tutorial","description":"NodeGui uses native components instead of web based components as building blocks. So to understand the basic structure of a NodeGui app, you need to be familiar with Javascript or Typescript. This tutorial is aimed at everyone who has some web experience with web development.","source":"@site/docs/guides/tutorial.md","permalink":"/docs/guides/tutorial","sidebar":"guides","category":"The Basics","next":"guides/styling","previous":"guides/getting-started","previous_title":"Getting started","next_title":"Styling"},"guides/using-native-node-modules":{"sidebar_label":"Native Node Modules","title":"Using native Node Modules","id":"guides/using-native-node-modules","description":"Native Node modules are supported by NodeGui, but since NodeGui is very","source":"@site/docs/guides/using-native-node-modules.md","permalink":"/docs/guides/using-native-node-modules","sidebar":"guides","category":"Guides","next":"guides/custom-nodegui-native-plugin","previous":"guides/debugging-in-vscode","previous_title":"Debugging in VSCode","next_title":"Custom NodeGui Plugin"}},"docsDir":"/Users/atulr/Project/nodegui/nodegui/website/docs","docsSidebars":{"api":[{"type":"category","label":"General","items":[{"type":"doc","id":"api/synopsis"}]},{"type":"category","label":"Widgets","items":[{"type":"doc","id":"api/QApplication"},{"type":"doc","id":"api/QCheckBox"},{"type":"doc","id":"api/QDial"},{"type":"doc","id":"api/QIcon"},{"type":"doc","id":"api/QLabel"},{"type":"doc","id":"api/QLineEdit"},{"type":"doc","id":"api/QMainWindow"},{"type":"doc","id":"api/QPlainTextEdit"},{"type":"doc","id":"api/QProgressBar"},{"type":"doc","id":"api/QPushButton"},{"type":"doc","id":"api/QRadioButton"},{"type":"doc","id":"api/QScrollArea"},{"type":"doc","id":"api/QSpinBox"},{"type":"doc","id":"api/QTabWidget"},{"type":"doc","id":"api/QWidget"}]},{"type":"category","label":"Layouts","items":[{"type":"doc","id":"api/FlexLayout"},{"type":"doc","id":"api/QGridLayout"}]},{"type":"category","label":"Modules","items":[{"type":"doc","id":"api/QClipboard"},{"type":"doc","id":"api/QCursor"},{"type":"doc","id":"api/QPixmap"},{"type":"doc","id":"api/QtEnums"}]},{"type":"category","label":"Internal Modules","items":[{"type":"doc","id":"api/Component"},{"type":"doc","id":"api/EventWidget"},{"type":"doc","id":"api/NodeLayout"},{"type":"doc","id":"api/NodeWidget"},{"type":"doc","id":"api/YogaWidget"},{"type":"doc","id":"api/QAbstractScrollArea"},{"type":"doc","id":"api/QAbstractSlider"}]},{"type":"category","label":"APIs","items":[{"type":"doc","id":"api/process"}]}],"guides":[{"type":"category","label":"The Basics","items":[{"type":"doc","id":"guides/getting-started"},{"type":"doc","id":"guides/tutorial"},{"type":"doc","id":"guides/styling"},{"type":"doc","id":"guides/layout"},{"type":"doc","id":"guides/handle-events"},{"type":"doc","id":"guides/scroll-view"},{"type":"doc","id":"guides/images"},{"type":"doc","id":"guides/networking"}]},{"type":"category","label":"Guides","items":[{"type":"doc","id":"guides/nodegui-architecture"},{"type":"doc","id":"guides/debugging"},{"type":"doc","id":"guides/debugging-in-vscode"},{"type":"doc","id":"guides/using-native-node-modules"},{"type":"doc","id":"guides/custom-nodegui-native-plugin"}]}]},"sourceToPermalink":{"@site/docs/doc1.md":"/docs/doc1","@site/docs/faq.md":"/docs/faq","@site/docs/mdx.md":"/docs/mdx","@site/docs/api/Component.md":"/docs/api/Component","@site/docs/api/EventWidget.md":"/docs/api/EventWidget","@site/docs/api/FlexLayout.md":"/docs/api/FlexLayout","@site/docs/api/NodeLayout.md":"/docs/api/NodeLayout","@site/docs/api/NodeWidget.md":"/docs/api/NodeWidget","@site/docs/api/QAbstractScrollArea.md":"/docs/api/QAbstractScrollArea","@site/docs/api/QAbstractSlider.md":"/docs/api/QAbstractSlider","@site/docs/api/QApplication.md":"/docs/api/QApplication","@site/docs/api/QCheckBox.md":"/docs/api/QCheckBox","@site/docs/api/QClipboard.md":"/docs/api/QClipboard","@site/docs/api/QCursor.md":"/docs/api/QCursor","@site/docs/api/QDial.md":"/docs/api/QDial","@site/docs/api/QGridLayout.md":"/docs/api/QGridLayout","@site/docs/api/QIcon.md":"/docs/api/QIcon","@site/docs/api/QLabel.md":"/docs/api/QLabel","@site/docs/api/QLineEdit.md":"/docs/api/QLineEdit","@site/docs/api/QMainWindow.md":"/docs/api/QMainWindow","@site/docs/api/QPixmap.md":"/docs/api/QPixmap","@site/docs/api/QPlainTextEdit.md":"/docs/api/QPlainTextEdit","@site/docs/api/QProgressBar.md":"/docs/api/QProgressBar","@site/docs/api/QPushButton.md":"/docs/api/QPushButton","@site/docs/api/QRadioButton.md":"/docs/api/QRadioButton","@site/docs/api/QScrollArea.md":"/docs/api/QScrollArea","@site/docs/api/QSpinBox.md":"/docs/api/QSpinBox","@site/docs/api/QTabWidget.md":"/docs/api/QTabWidget","@site/docs/api/QWidget.md":"/docs/api/QWidget","@site/docs/api/QtEnums.md":"/docs/api/QtEnums","@site/docs/api/YogaWidget.md":"/docs/api/YogaWidget","@site/docs/api/process.md":"/docs/api/process","@site/docs/api/synopsis.md":"/docs/api/synopsis","@site/docs/development/README.md":"/docs/development/README","@site/docs/development/common_errors.md":"/docs/development/common_errors","@site/docs/development/debugging.md":"/docs/development/debugging","@site/docs/development/getting-started.md":"/docs/development/getting-started","@site/docs/development/setting-up.md":"/docs/development/setting-up","@site/docs/development/signal_and_event_handling.md":"/docs/development/signal_and_event_handling","@site/docs/development/styling.md":"/docs/development/styling","@site/docs/development/wrapping_widgets.md":"/docs/development/wrapping_widgets","@site/docs/guides/custom-nodegui-native-plugin.md":"/docs/guides/custom-nodegui-native-plugin","@site/docs/guides/debugging-in-vscode.md":"/docs/guides/debugging-in-vscode","@site/docs/guides/debugging.md":"/docs/guides/debugging","@site/docs/guides/getting-started.md":"/docs/guides/getting-started","@site/docs/guides/handle-events.md":"/docs/guides/handle-events","@site/docs/guides/images.md":"/docs/guides/images","@site/docs/guides/layout.md":"/docs/guides/layout","@site/docs/guides/networking.md":"/docs/guides/networking","@site/docs/guides/nodegui-architecture.md":"/docs/guides/nodegui-architecture","@site/docs/guides/scroll-view.md":"/docs/guides/scroll-view","@site/docs/guides/styling.md":"/docs/guides/styling","@site/docs/guides/tutorial.md":"/docs/guides/tutorial","@site/docs/guides/using-native-node-modules.md":"/docs/guides/using-native-node-modules"},"permalinkToId":{"/docs/doc1":"doc1","/docs/faq":"faq","/docs/mdx":"mdx","/docs/api/Component":"api/Component","/docs/api/EventWidget":"api/EventWidget","/docs/api/FlexLayout":"api/FlexLayout","/docs/api/NodeLayout":"api/NodeLayout","/docs/api/NodeWidget":"api/NodeWidget","/docs/api/QAbstractScrollArea":"api/QAbstractScrollArea","/docs/api/QAbstractSlider":"api/QAbstractSlider","/docs/api/QApplication":"api/QApplication","/docs/api/QCheckBox":"api/QCheckBox","/docs/api/QClipboard":"api/QClipboard","/docs/api/QCursor":"api/QCursor","/docs/api/QDial":"api/QDial","/docs/api/QGridLayout":"api/QGridLayout","/docs/api/QIcon":"api/QIcon","/docs/api/QLabel":"api/QLabel","/docs/api/QLineEdit":"api/QLineEdit","/docs/api/QMainWindow":"api/QMainWindow","/docs/api/QPixmap":"api/QPixmap","/docs/api/QPlainTextEdit":"api/QPlainTextEdit","/docs/api/QProgressBar":"api/QProgressBar","/docs/api/QPushButton":"api/QPushButton","/docs/api/QRadioButton":"api/QRadioButton","/docs/api/QScrollArea":"api/QScrollArea","/docs/api/QSpinBox":"api/QSpinBox","/docs/api/QTabWidget":"api/QTabWidget","/docs/api/QWidget":"api/QWidget","/docs/api/QtEnums":"api/QtEnums","/docs/api/YogaWidget":"api/YogaWidget","/docs/api/process":"api/process","/docs/api/synopsis":"api/synopsis","/docs/development/README":"development/README","/docs/development/common_errors":"development/common_errors","/docs/development/debugging":"development/debugging","/docs/development/getting-started":"development/getting-started","/docs/development/setting-up":"development/setting-up","/docs/development/signal_and_event_handling":"development/signal_and_event_handling","/docs/development/styling":"development/styling","/docs/development/wrapping_widgets":"development/wrapping_widgets","/docs/guides/custom-nodegui-native-plugin":"guides/custom-nodegui-native-plugin","/docs/guides/debugging-in-vscode":"guides/debugging-in-vscode","/docs/guides/debugging":"guides/debugging","/docs/guides/getting-started":"guides/getting-started","/docs/guides/handle-events":"guides/handle-events","/docs/guides/images":"guides/images","/docs/guides/layout":"guides/layout","/docs/guides/networking":"guides/networking","/docs/guides/nodegui-architecture":"guides/nodegui-architecture","/docs/guides/scroll-view":"guides/scroll-view","/docs/guides/styling":"guides/styling","/docs/guides/tutorial":"guides/tutorial","/docs/guides/using-native-node-modules":"guides/using-native-node-modules"}}')}}]); \ No newline at end of file diff --git a/index.html b/index.html index d663375ca..d50b4a104 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ - + Hello from NodeGui @@ -21,20 +21,20 @@
-

NodeGui

Build performant, native, cross platform desktop apps with JavaScript and CSS 🚀

[object Object]

Web Technologies

With NodeGui, you can build your app with familiar web technologies like CSS and JavaScript. There is even a React based version.

[object Object]

Open Source

NodeGui is an open source project maintained by an active community of contributors.

[object Object]

Cross Platform

Compatible with Mac, Windows, and Linux, NodeGui apps build and run on three platforms.

Create native apps for Windows, MacOs and Linux using JavaScript and CSS

lets you create truly native apps and doesn't compromise on your users' experience. It provides a core set of platform agnostic native widgets that map directly to the platform’s native UI building blocks.

NodeGui widgets are built on top of Qt which is a mature dekstop apps framework. NodeGui widgets are extremely customizable just like in the web but does NOT use a Web browser under the hood.

Written in JavaScript—rendered with native code by Qt

Apps can be built completely in JavaScript. This enables native app development for whole new teams of developers, and can let existing native teams work much faster.

With NodeGui you get flexibility of web and perfromance of Native desktop apps.

Give it a try

1. Run these commands

git clone https://github.com/nodegui/nodegui-startercd nodegui-starternpm installnpm start

2. Learn the basics or dive deeper and take a look at the APIs.

+

NodeGui

Build performant, native, cross platform desktop apps with JavaScript and CSS 🚀

[object Object]

Web Technologies

With NodeGui, you can build your app with familiar web technologies like CSS and JavaScript. There is even a React based version.

[object Object]

Open Source

NodeGui is an open source project maintained by an active community of contributors.

[object Object]

Cross Platform

Compatible with Mac, Windows, and Linux, NodeGui apps build and run on three platforms.

Create native apps for Windows, MacOs and Linux using JavaScript and CSS

lets you create truly native apps and doesn't compromise on your users' experience. It provides a core set of platform agnostic native widgets that map directly to the platform’s native UI building blocks.

NodeGui widgets are built on top of Qt which is a mature dekstop apps framework. NodeGui widgets are extremely customizable just like in the web but does NOT use a Web browser under the hood.

Written in JavaScript—rendered with native code by Qt

Apps can be built completely in JavaScript. This enables native app development for whole new teams of developers, and can let existing native teams work much faster.

With NodeGui you get flexibility of web and perfromance of Native desktop apps.

Give it a try

1. Run these commands

git clone https://github.com/nodegui/nodegui-startercd nodegui-starternpm installnpm start

2. Learn the basics or dive deeper and take a look at the APIs.

- + - + - + - + - + \ No newline at end of file diff --git a/main.7a48394ebc7e47422c98.js b/main.3c22308242e28ead5e64.js similarity index 85% rename from main.7a48394ebc7e47422c98.js rename to main.3c22308242e28ead5e64.js index 05905a1a8..463f37abb 100644 --- a/main.7a48394ebc7e47422c98.js +++ b/main.3c22308242e28ead5e64.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[67],[function(e,t,n){"use strict";e.exports=n(25)},function(e,t,n){"use strict";function o(){return(o=Object.assign||function(e){for(var t=1;t=0;f--){var p=i[f];"."===p?a(i,f):".."===p?(a(i,f),d++):d&&(a(i,f),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&r(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};function u(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var l=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,o){return e(t,n[o])}));if("object"==typeof t||"object"==typeof n){var o=u(t),r=u(n);return o!==t||r!==n?e(o,r):Object.keys(Object.assign({},t,n)).every((function(o){return e(t[o],n[o])}))}return!1},c=n(3);function s(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function f(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function m(e){var t=e.pathname,n=e.search,o=e.hash,r=t||"/";return n&&"?"!==n&&(r+="?"===n.charAt(0)?n:"?"+n),o&&"#"!==o&&(r+="#"===o.charAt(0)?o:"#"+o),r}function h(e,t,n,r){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",o="",r=t.indexOf("#");-1!==r&&(o=t.substr(r),t=t.substr(0,r));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===o?"":o}}(e)).state=t:(void 0===(a=Object(o.a)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(e){throw e instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):e}return n&&(a.key=n),r?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,r.pathname)):a.pathname=r.pathname:a.pathname||(a.pathname="/"),a}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&l(e.state,t.state)}function b(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,o,r){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof o?o(a,r):r(!0):r(!1!==a)}else r(!0)},appendListener:function(e){var n=!0;function o(){n&&e.apply(void 0,arguments)}return t.push(o),function(){n=!1,t=t.filter((function(e){return e!==o}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),o=0;ot?n.splice(t,n.length-t,o):n.push(o),d({action:"PUSH",location:o,index:t,entries:n})}}))},replace:function(e,t){var o=h(e,t,f(),w.location);s.confirmTransitionTo(o,"REPLACE",n,(function(e){e&&(w.entries[w.index]=o,d({action:"REPLACE",location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t=0||(r[n]=e[n]);return r}n.d(t,"a",(function(){return o}))},function(e,t,n){e.exports=n(29)()},function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return l}));var o=n(2),r=n(1),a=n(0),i=n.n(a);function u(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var r=e.path?Object(o.e)(t,e):n.length?n[n.length-1].match:o.b.computeRootMatch(t);return r&&(n.push({route:e,match:r}),e.routes&&u(e.routes,t,n)),r})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?i.a.createElement(o.c,n,e.map((function(e,n){return i.a.createElement(o.a,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render(Object(r.a)({},n,{},t,{route:e})):i.a.createElement(e.component,Object(r.a)({},n,t,{route:e}))}})}))):null}},function(e){e.exports=JSON.parse('{"/":{"component":"component---site-src-pages-index-jsc-4-f-f99"},"/blog/welcome":{"component":"component---theme-blog-post-pageccc-cab","content":"content---blog-welcome-286-e55","metadata":"metadata---blog-welcome-27-a-91f","prevItem":null,"nextItem":null},"/blog":{"component":"component---theme-blog-list-pagea-6-a-7ba","items":[{"content":"content---blogaf-1-856","metadata":"metadata---blog-welcome-27-a-91f"}],"metadata":"metadata---blog-83-c-2b0"},"/docs":{"component":"component---theme-doc-legacy-page-9-e-7-ca5","docsMetadata":"docsMetadata---docs-150-2d6"},"/docs/doc1":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-doc-1-b-2-f-e80","metadata":"metadata---docs-doc-12-a-3-5a1"},"/docs/faq":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-faq-048-db5","metadata":"metadata---docs-faq-59-d-2b9"},"/docs/mdx":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-mdxce-3-7d1","metadata":"metadata---docs-mdx-786-f56"},"/docs/api/Component":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-component-4-ef-195","metadata":"metadata---docs-api-component-3-e-5-43d"},"/docs/api/NodeWidget":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-node-widget-080-a39","metadata":"metadata---docs-api-node-widgeta-92-a4f"},"/docs/api/EventWidget":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-event-widgetac-6-11b","metadata":"metadata---docs-api-event-widget-39-a-9ea"},"/docs/api/FlexLayout":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-flex-layout-3-dc-a16","metadata":"metadata---docs-api-flex-layoutecf-540"},"/docs/api/QAbstractScrollArea":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-abstract-scroll-area-3-e-6-d7f","metadata":"metadata---docs-api-q-abstract-scroll-area-59-d-279"},"/docs/api/QApplication":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-applicationd-3-e-0a3","metadata":"metadata---docs-api-q-applicationc-1-d-8a4"},"/docs/api/NodeLayout":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-node-layoutd-28-11a","metadata":"metadata---docs-api-node-layout-1-e-9-c15"},"/docs/api/QClipboard":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-clipboard-69-d-2ef","metadata":"metadata---docs-api-q-clipboard-486-b21"},"/docs/api/QCursor":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-cursor-362-d51","metadata":"metadata---docs-api-q-cursor-887-11e"},"/docs/api/QAbstractSlider":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-abstract-slider-3-e-0-54d","metadata":"metadata---docs-api-q-abstract-sliderdfa-ab7"},"/docs/api/QDial":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-dial-80-b-99a","metadata":"metadata---docs-api-q-dialbfb-aef"},"/docs/api/QCheckBox":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-check-boxd-9-b-c95","metadata":"metadata---docs-api-q-check-box-132-293"},"/docs/api/QGridLayout":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-grid-layouta-4-e-552","metadata":"metadata---docs-api-q-grid-layout-7-db-030"},"/docs/api/QLabel":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-label-2-f-9-04b","metadata":"metadata---docs-api-q-label-165-210"},"/docs/api/QIcon":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-icone-5-f-b0d","metadata":"metadata---docs-api-q-icone-6-d-093"},"/docs/api/QPixmap":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-pixmap-8-dd-cb2","metadata":"metadata---docs-api-q-pixmapfdf-820"},"/docs/api/QLineEdit":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-line-editea-0-53d","metadata":"metadata---docs-api-q-line-edit-13-f-b8a"},"/docs/api/QProgressBar":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-progress-barc-46-afe","metadata":"metadata---docs-api-q-progress-bar-43-d-07e"},"/docs/api/QPlainTextEdit":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-plain-text-edit-7-c-8-081","metadata":"metadata---docs-api-q-plain-text-edit-161-ecc"},"/docs/api/QRadioButton":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-radio-buttone-54-746","metadata":"metadata---docs-api-q-radio-button-367-f7c"},"/docs/api/QScrollArea":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-scroll-area-8-c-4-3fd","metadata":"metadata---docs-api-q-scroll-area-46-a-96e"},"/docs/api/QMainWindow":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-main-window-0-e-7-299","metadata":"metadata---docs-api-q-main-window-04-f-efb"},"/docs/api/QSpinBox":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-spin-box-1-ce-bfd","metadata":"metadata---docs-api-q-spin-box-809-ae0"},"/docs/api/QPushButton":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-push-button-06-c-73e","metadata":"metadata---docs-api-q-push-button-96-d-c92"},"/docs/api/QTabWidget":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-tab-widget-508-95e","metadata":"metadata---docs-api-q-tab-widgetebc-5aa"},"/docs/api/QtEnums":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-qt-enumsfd-7-cf3","metadata":"metadata---docs-api-qt-enums-423-cf9"},"/docs/api/YogaWidget":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-yoga-widgeta-42-cc7","metadata":"metadata---docs-api-yoga-widget-95-c-f8b"},"/docs/api/QWidget":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-q-widget-04-a-59f","metadata":"metadata---docs-api-q-widget-287-e6c"},"/docs/api/process":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-process-5-ec-b1e","metadata":"metadata---docs-api-process-32-d-09e"},"/docs/api/synopsis":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-api-synopsis-7-bb-e1c","metadata":"metadata---docs-api-synopsis-21-f-a62"},"/docs/development/README":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-development-readme-149-437","metadata":"metadata---docs-development-readm-ec-6-c-332"},"/docs/development/setting-up":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-development-setting-up-28-c-666","metadata":"metadata---docs-development-setting-up-979-75f"},"/docs/development/getting-started":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-development-getting-started-139-387","metadata":"metadata---docs-development-getting-started-89-b-c7a"},"/docs/development/debugging":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-development-debuggingb-54-9ed","metadata":"metadata---docs-development-debuggingc-36-26a"},"/docs/development/signal_and_event_handling":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-development-signal-and-event-handling-7-d-4-f3f","metadata":"metadata---docs-development-signal-and-event-handling-0-b-5-692"},"/docs/development/common_errors":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-development-common-errorsf-15-a5b","metadata":"metadata---docs-development-common-errors-402-ef4"},"/docs/guides/debugging-in-vscode":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-guides-debugging-in-vscodebd-7-cec","metadata":"metadata---docs-guides-debugging-in-vscodebf-8-5b0"},"/docs/development/styling":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-development-styling-293-cad","metadata":"metadata---docs-development-styling-1-c-2-0d6"},"/docs/development/wrapping_widgets":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-development-wrapping-widgets-84-b-538","metadata":"metadata---docs-development-wrapping-widgets-303-fb8"},"/docs/guides/getting-started":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-guides-getting-startedc-9-e-20f","metadata":"metadata---docs-guides-getting-started-2-b-7-1a4"},"/docs/guides/custom-nodegui-native-plugin":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-guides-custom-nodegui-native-plugin-632-9db","metadata":"metadata---docs-guides-custom-nodegui-native-plugin-92-b-12f"},"/docs/guides/images":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-guides-images-991-065","metadata":"metadata---docs-guides-images-915-5ee"},"/docs/guides/debugging":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-guides-debuggingf-3-f-cf5","metadata":"metadata---docs-guides-debugging-970-fb8"},"/docs/guides/handle-events":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-guides-handle-events-160-4b0","metadata":"metadata---docs-guides-handle-events-5-eb-540"},"/docs/guides/scroll-view":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-guides-scroll-view-76-e-87c","metadata":"metadata---docs-guides-scroll-view-9-a-9-2ac"},"/docs/guides/styling":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-guides-stylingfec-977","metadata":"metadata---docs-guides-styling-9-ea-213"},"/docs/guides/tutorial":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-guides-tutoriale-53-6ab","metadata":"metadata---docs-guides-tutorial-1-f-1-23b"},"/docs/guides/using-native-node-modules":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-guides-using-native-node-modules-3-ab-104","metadata":"metadata---docs-guides-using-native-node-modules-31-f-551"},"/docs/guides/networking":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-guides-networking-374-03e","metadata":"metadata---docs-guides-networkingdfd-ce0"},"/docs/guides/layout":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-guides-layoutdf-5-a64","metadata":"metadata---docs-guides-layoutf-65-d7d"},"/docs/guides/nodegui-architecture":{"component":"component---theme-doc-legacy-item-031-769","content":"content---docs-guides-nodegui-architecture-262-19e","metadata":"metadata---docs-guides-nodegui-architecture-550-b82"},"/blog/tags/nodegui":{"component":"component---theme-blog-tags-posts-page-687-b6c","items":[{"content":"content---blogaf-1-856","metadata":"metadata---blog-welcome-27-a-91f"}],"metadata":"metadata---blog-tags-nodegui-632-d46"},"/blog/tags/hello":{"component":"component---theme-blog-tags-posts-page-687-b6c","items":[{"content":"content---blogaf-1-856","metadata":"metadata---blog-welcome-27-a-91f"}],"metadata":"metadata---blog-tags-hellob-02-3e8"},"/blog/tags":{"component":"component---theme-blog-tags-list-page-01-a-d0b","tags":"tags---blog-tags-8-d-7-36d"}}')},function(e,t,n){"use strict";t.a={plugins:[],themes:[],customFields:{},themeConfig:{navbar:{title:"NodeGui",logo:{alt:"NodeGui Logo",src:"img/logo-circle.png"},links:[{to:"docs/guides/getting-started",label:"Docs",position:"right"},{to:"docs/api/QApplication",label:"API",position:"right"},{to:"blog",label:"Blog",position:"right"},{href:"https://github.com/nodegui/nodegui",label:"GitHub",position:"right"}]},footer:{style:"dark",links:[{title:"Docs",items:[{to:"docs/guides/getting-started",label:"Getting Started"},{to:"docs/api/QApplication",label:"API"}]},{title:"Community",items:[{label:"Spectrum",href:"https://spectrum.chat/nodegui"},{label:"Twitter",to:"https://twitter.com/node_gui"},{label:"Medium",to:"https://medium.com/nodegui"}]},{title:"More",items:[{label:"Blog",to:"blog"},{label:"React NodeGui",to:"https://react.nodegui.org"},{label:"FAQ",to:"docs/faq"}]}],copyright:"Copyright © 2019 NodeGui"},googleAnalytics:{trackingID:"UA-145065218-1"}},title:"NodeGui",tagline:"Build performant, native, cross platform desktop apps with JavaScript and CSS 🚀",url:"https://nodegui.org",baseUrl:"/",favicon:"img/favicon.ico",organizationName:"nodegui",projectName:"nodegui",presets:[["@docusaurus/preset-classic",{docs:{sidebarPath:"/Users/atulr/Project/nodegui/nodegui/website/sidebars.js"},theme:{customCss:"/Users/atulr/Project/nodegui/nodegui/website/src/css/custom.css"}}]]}},function(e,t,n){var o,r;void 0===(r="function"==typeof(o=function(){var e,t,n={version:"0.2.0"},o=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function r(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(o[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=r(e,o.minimum,1),n.status=1===e?null:e;var l=n.render(!t),c=l.querySelector(o.barSelector),s=o.speed,d=o.easing;return l.offsetWidth,i((function(t){""===o.positionUsing&&(o.positionUsing=n.getPositioningCSS()),u(c,function(e,t,n){var r;return(r="translate3d"===o.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===o.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,r}(e,s,d)),1===e?(u(l,{transition:"none",opacity:1}),l.offsetWidth,setTimeout((function(){u(l,{transition:"all "+s+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),s)}),s)):setTimeout(t,s)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),o.trickleSpeed)};return o.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*r(Math.random()*t,.1,.95)),t=r(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*o.trickleRate)},e=0,t=0,n.promise=function(o){return o&&"resolved"!==o.state()?(0===t&&n.start(),e++,t++,o.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=o.template;var r,i=t.querySelector(o.barSelector),l=e?"-100":a(n.status||0),s=document.querySelector(o.parent);return u(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),o.showSpinner||(r=t.querySelector(o.spinnerSelector))&&f(r),s!=document.body&&c(s,"nprogress-custom-parent"),s.appendChild(t),t},n.remove=function(){s(document.documentElement,"nprogress-busy"),s(document.querySelector(o.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var i=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),u=function(){var e=["Webkit","O","Moz","ms"],t={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()})),t[n]||(t[n]=function(t){var n=document.body.style;if(t in n)return t;for(var o,r=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);r--;)if((o=e[r]+a)in n)return o;return t}(n))}function o(e,t,o){t=n(t),e.style[t]=o}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function l(e,t){return("string"==typeof e?e:d(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=d(e),o=n+t;l(n,t)||(e.className=o.substring(1))}function s(e,t){var n,o=d(e);l(e,t)&&(n=o.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function d(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n})?o.call(t,n,t,e):o)||(e.exports=r)},,function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return w}));var o=n(2),r=n(5),a=n(0),i=n.n(a),u=n(4),l=(n(7),n(1)),c=n(6),s=n(3),d=function(e){function t(){for(var t,n=arguments.length,o=new Array(n),r=0;rR.length&&R.push(e)}function A(e,t,n){return null==e?0:function e(t,n,o,r){var u=typeof t;"undefined"!==u&&"boolean"!==u||(t=null);var l=!1;if(null===t)l=!0;else switch(u){case"string":case"number":l=!0;break;case"object":switch(t.$$typeof){case a:case i:l=!0}}if(l)return o(r,t,""===n?"."+z(t,0):n),1;if(l=0,n=""===n?".":n+":",Array.isArray(t))for(var c=0;c