Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
WUI ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠΈΠ΅ C++-ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉ Π±ΡΠΊΠ΅Π½Π΄ ΠΎΠΊΠΎΠ½ ΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ.
ΠΠ°ΡΠ½ΠΈΡΠ΅ Ρ Hello world; Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ β
examples/demo, ΠΎΠ½ ΠΆΠ΅ ΠΆΠΈΠ²ΠΎΠΉ Showcase.
ΠΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ»
- ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅
framework, Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΏΠΎΠ»Π½ΡΡ ΡΠ΅ΠΌΡ ΠΈ Π»ΠΎΠΊΠ°Π»Ρ. - Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅
shared_ptr<window>ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈΡ Ρ ΡΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ. - ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ callback, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅
framework::run(). - ΠΠ»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅
framework::stop().
ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΈ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅
ΠΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π° β {left, top, right, bottom}, Π° Π½Π΅ x/y/width/height.
ΠΠ΅ΡΠ΅ΡΡΠΈΡΡΠ²Π°ΠΉΡΠ΅ ΠΈΡ
ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°. panel ΡΠΈΡΡΠ΅Ρ ΡΠΎΠ½, Π½ΠΎ Π½Π΅ Π²Π»Π°Π΄Π΅Π΅Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ
ΠΊΠΎΠ½ΡΡΠΎΠ»Π°ΠΌΠΈ ΠΈ Π½Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅Ρ ΠΈΡ
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΠΎΠ±Π°Π²Π»ΡΠΉΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ
Π² ΠΎΠΊΠ½ΠΎ Π² Π½ΡΠΆΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΠΊΠ½ΠΎ Ρ
ΡΠ°Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ, ΠΊΠΎΠ½ΡΡΠΎΠ» β ΡΠ»Π°Π±ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ. ΠΠ΅ Π·Π°Ρ
Π²Π°ΡΡΠ²Π°ΠΉΡΠ΅
shared_ptr ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π² Π΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ callback: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ weak_ptr.
Π‘ΡΡΠ»ΠΊΠΈ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π΄ΠΎ ΡΠ½ΡΡΠΈΡ callback.
Π‘ΠΌ. Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅
ΠΠ»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ callback ΠΊΠ½ΠΎΠΏΠΎΠΊ, Π²Π²ΠΎΠ΄Π° ΠΈ select, Π΄Π»Ρ ΠΎΠ±ΡΠΈΡ
ΡΠΎΠ±ΡΡΠΈΠΉ β ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ ΠΎΠΊΠ½Π°. subscribe() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ID Π΄Π»Ρ unsubscribe().
Π§Π΅ΠΊΠ±ΠΎΠΊΡ ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄ΠΎ callback. Callback ΠΌΠ΅Π½Ρ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ
Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π° Π½Π΅ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ ID ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. Π‘ΠΌ. ΡΠΎΠ±ΡΡΠΈΡ
ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ.
Π’Π΅ΠΌΡ, Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠΎΠ½ΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ°
Π¨ΡΠΈΡΡ Π² JSON-ΡΠ΅ΠΌΠ΅ β ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΅ΠΌΡ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ window->update_theme();
ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π»ΠΎΠΊΠ°Π»ΠΈ ΡΠ²Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π‘ΠΌ. ΡΠ΅ΡΡΡΡΡ, ΡΠ΅ΠΌΡ, Π»ΠΎΠΊΠ°Π»ΠΈ.
ΠΠ΅Π½ΡΠΉΡΠ΅ UI Π² ΠΏΠΎΡΠΎΠΊΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ Π΅Π³ΠΎ ΠΎΠΊΠ½Π°. Callback ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ
Π² ΡΠ°Π·Π½ΡΡ
ΠΏΠΎΡΠΎΠΊΠ°Ρ
Π½Π° ΡΠ°Π·Π½ΡΡ
ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ
. ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
window::emit_event(). ΠΠ΅ΡΠ΅Π΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ worker ΠΈΠ·ΡΡΠΈΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΡ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌ
macOS ΠΈ WASM ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ±ΡΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ, Π½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΎΠΉ ΡΠ΅ΡΡΡΡΠΎΠ², Π±ΡΡΠ΅ΡΠΎΠΌ ΠΎΠ±ΠΌΠ΅Π½Π°, ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠΌΠΈ. Π Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Π½Π΅Ρ ΡΠ°Π±ΠΎΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² WUI ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠΈΠ°Π»ΠΎΠ³ΠΈ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΡΠ΅ΠΉ ΠΈΠΌΠ΅ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ.