1- import {
2- QWidget ,
3- NodeWidget ,
4- WidgetAttribute ,
5- WindowType
6- } from "@nodegui/nodegui" ;
1+ import { QWidget , NodeWidget } from "@nodegui/nodegui" ;
72import { registerComponent } from "../config" ;
83
94type Geometry = {
@@ -16,18 +11,16 @@ export interface ListenerMap {
1611 [ key : string ] : ( payload ?: any ) => void ;
1712}
1813export interface ViewProps {
14+ visible ?: boolean ;
15+ styleSheet ?: string ;
16+ style ?: string ; // Inline style from NodeGui
1917 geometry ?: Geometry ;
2018 id ?: string ;
21- style ?: string ; // Inline style from NodeGui
22- styleSheet ?: string ;
23- visible ?: boolean ;
24- ref ?: any ;
25- on ?: ListenerMap ;
2619 mouseTracking ?: boolean ;
2720 enabled ?: boolean ;
28- attributes ?: WidgetAttribute [ ] ;
29- windowFlags ?: WindowType [ ] ;
3021 windowOpacity ?: Number ;
22+ on ?: ListenerMap ;
23+ ref ?: any ;
3124}
3225
3326export const setProps = (
@@ -36,35 +29,38 @@ export const setProps = (
3629 oldProps : ViewProps
3730) => {
3831 const setter : ViewProps = {
39- set geometry ( geometry : Geometry ) {
40- widget . setGeometry (
41- geometry . x ,
42- geometry . y ,
43- geometry . width ,
44- geometry . height
45- ) ;
46- } ,
4732 set visible ( shouldShow : boolean ) {
4833 shouldShow ? widget . show ( ) : widget . hide ( ) ;
4934 } ,
35+ set styleSheet ( styleSheet : string ) {
36+ widget . setStyleSheet ( styleSheet ) ;
37+ } ,
5038 set style ( inlineStyle : string ) {
5139 if ( newProps . styleSheet ) {
5240 console . warn ( "Both styleSheet and inlineStyle can't be used together" ) ;
5341 }
5442 widget . setInlineStyle ( inlineStyle ) ;
5543 } ,
56- set styleSheet ( styleSheet : string ) {
57- widget . setStyleSheet ( styleSheet ) ;
44+ set geometry ( geometry : Geometry ) {
45+ widget . setGeometry (
46+ geometry . x ,
47+ geometry . y ,
48+ geometry . width ,
49+ geometry . height
50+ ) ;
5851 } ,
5952 set id ( id : string ) {
6053 widget . setObjectName ( id ) ;
6154 } ,
6255 set mouseTracking ( isMouseTracked : boolean ) {
63- widget . setMouseTracking ( isMouseTracked ) ; //TODO: add a getter for this in nodegui
56+ widget . setMouseTracking ( isMouseTracked ) ;
6457 } ,
6558 set enabled ( enable : boolean ) {
6659 widget . setEnabled ( enable ) ;
6760 } ,
61+ set windowOpacity ( opacity : Number ) {
62+ widget . setWindowOpacity ( opacity ) ;
63+ } ,
6864 set on ( listenerMap : ListenerMap ) {
6965 const listenerMapLatest = Object . assign ( { } , listenerMap ) ;
7066 const oldListenerMap = Object . assign ( { } , oldProps . on ) ;
@@ -83,29 +79,6 @@ export const setProps = (
8379 widget . addEventListener ( eventType , newEvtListener ) ;
8480 }
8581 ) ;
86- } ,
87- set attributes ( attributes : WidgetAttribute [ ] ) {
88- const oldAttributes = oldProps . attributes || [ ] ;
89- const newAttributes = attributes || [ ] ;
90- oldAttributes . forEach ( eachOldAttribute => {
91- widget . setAttribute ( eachOldAttribute , false ) ;
92- } ) ;
93- newAttributes . forEach ( eachNewAttribute => {
94- widget . setAttribute ( eachNewAttribute , true ) ;
95- } ) ;
96- } ,
97- set windowFlags ( windowTypes : WindowType [ ] ) {
98- const oldFlags = oldProps . windowFlags || [ ] ;
99- const newFlags = windowTypes || [ ] ;
100- oldFlags . forEach ( eachOldFlag => {
101- widget . setWindowFlag ( eachOldFlag , false ) ;
102- } ) ;
103- newFlags . forEach ( eachNewWindowFlag => {
104- widget . setWindowFlag ( eachNewWindowFlag , true ) ;
105- } ) ;
106- } ,
107- set windowOpacity ( opacity : Number ) {
108- widget . setWindowOpacity ( opacity ) ;
10982 }
11083 } ;
11184 Object . assign ( setter , newProps ) ;
0 commit comments