mirror of
https://github.com/lxsang/Diya-API.git
synced 2024-12-26 19:38:22 +01:00
WIP: widgets implementation
This commit is contained in:
parent
91cfa95ef7
commit
e99500acca
@ -103,9 +103,9 @@ Diya2DNode >> updateTF [
|
||||
"scale"
|
||||
scale = (1@1) ifFalse:[
|
||||
tf := tf +* (Array2D scaleMatrix2D: scale)].
|
||||
self parent isRoot ifFalse: [ tf := self parent tf +* tf ].
|
||||
children ifNotNil: [
|
||||
children do:[:c| c updateTF ]].
|
||||
self parent ifNil: [ ^self ].
|
||||
self parent isRoot ifFalse: [tf := self parent tf +* tf ].
|
||||
children ifNotNil: [children do:[:c| c updateTF ]].
|
||||
|
||||
]
|
||||
|
||||
|
@ -8,8 +8,8 @@ Class {
|
||||
'fontSize',
|
||||
'fontFamilly',
|
||||
'borderColor',
|
||||
'width',
|
||||
'height'
|
||||
'bgcolor2',
|
||||
'fontStyle'
|
||||
],
|
||||
#category : #'Diya-Graphics'
|
||||
}
|
||||
@ -19,6 +19,16 @@ Diya2DNodeStyle >> bgcolor [
|
||||
^ bgcolor
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
Diya2DNodeStyle >> bgcolor2 [
|
||||
^ bgcolor2
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
Diya2DNodeStyle >> bgcolor2: anObject [
|
||||
bgcolor2 := anObject
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
Diya2DNodeStyle >> bgcolor: anObject [
|
||||
bgcolor := anObject
|
||||
@ -75,21 +85,11 @@ Diya2DNodeStyle >> fontSize: anObject [
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
Diya2DNodeStyle >> height [
|
||||
^ height
|
||||
Diya2DNodeStyle >> fontStyle [
|
||||
^ fontStyle
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
Diya2DNodeStyle >> height: anObject [
|
||||
height := anObject
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
Diya2DNodeStyle >> width [
|
||||
^ width
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
Diya2DNodeStyle >> width: anObject [
|
||||
width := anObject
|
||||
Diya2DNodeStyle >> fontStyle: anObject [
|
||||
fontStyle := anObject
|
||||
]
|
||||
|
18
Diya/DiyaDefaultStyle.class.st
Normal file
18
Diya/DiyaDefaultStyle.class.st
Normal file
@ -0,0 +1,18 @@
|
||||
Class {
|
||||
#name : #DiyaDefaultStyle,
|
||||
#superclass : #Diya2DNodeStyle,
|
||||
#category : #'Diya-Graphics'
|
||||
}
|
||||
|
||||
{ #category : #initialization }
|
||||
DiyaDefaultStyle >> initialize [
|
||||
super initialize.
|
||||
bgcolor := (Color r: 0.2118 g: 0.2118 b: 0.2118).
|
||||
color := Color white.
|
||||
border := 1.
|
||||
fontSize := 18.
|
||||
fontFamilly := DiyaFontManager uniqueInstance defaultFamily.
|
||||
fontStyle := DiyaFontManager uniqueInstance defaultStyle.
|
||||
borderColor := (Color r: 0.051 g: 0.051 b: 0.051).
|
||||
bgcolor2 := (Color r: 0.1529 g: 0.1529 b: 0.1529)
|
||||
]
|
@ -33,16 +33,6 @@ DiyaExampleApp >> setup [
|
||||
node borderWidth: 3.0.
|
||||
node extent:200@200.
|
||||
|
||||
"style := DiyaFontManager uniqueInstance style: 'Regular' from:'Ubuntu'.
|
||||
tex1 := (style textureOf: 18).
|
||||
style := DiyaFontManager uniqueInstance style: 'Regular' from: 'bootstrap-icons'.
|
||||
node := root addNode: (DiyaRectangle size: tex1 extent) at: 250 @ 300.
|
||||
node color: (Color orange).
|
||||
node texture: tex1.
|
||||
node borderColor: Color red.
|
||||
node borderWidth: 3.0."
|
||||
|
||||
|
||||
node := root addNode: (DiyaText data: String loremIpsum) at: 10@400.
|
||||
node extent: 240@320.
|
||||
node wordWrap: true.
|
||||
@ -51,7 +41,6 @@ DiyaExampleApp >> setup [
|
||||
node color: (Color red).
|
||||
node borderWidth: 2.0.
|
||||
|
||||
|
||||
ell := root addNode: (DiyaEllipse rx:150 ry: 100) at: 320@300.
|
||||
ell borderColor: Color red.
|
||||
ell color: Color white.
|
||||
@ -62,7 +51,6 @@ DiyaExampleApp >> setup [
|
||||
ell on: #(mousebuttondown fingerdown) do:[:e|
|
||||
txtNode data: 'Ellipse clicked', (ell local:e mapped worldPosition) asIntegerPoint asString].
|
||||
|
||||
|
||||
node := root addNode: (DiyaConvexPolygon points:{250@100. 400@250. 450@80. 350@60}).
|
||||
node color: Color green.
|
||||
node borderColor: Color red.
|
||||
|
@ -1,5 +1,55 @@
|
||||
Class {
|
||||
#name : #DiyaLabel,
|
||||
#superclass : #DiyaWidget,
|
||||
#instVars : [
|
||||
'txt',
|
||||
'icon'
|
||||
],
|
||||
#category : #'Diya-Widgets'
|
||||
}
|
||||
|
||||
{ #category : #accessing }
|
||||
DiyaLabel >> applyStyle [
|
||||
txt color: style color.
|
||||
txt fontName: style fontFamily style: style fontStyle size: style fontSize.
|
||||
txt wordWrap: true.
|
||||
icon ifNotNil: [
|
||||
icon color: style color.
|
||||
icon fontSize: style fontSize
|
||||
].
|
||||
"update extent"
|
||||
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
DiyaLabel >> icon [
|
||||
^ icon
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
DiyaLabel >> icon: anObject [
|
||||
icon := nil.
|
||||
anObject isNumber ifTrue: [ icon := root addNode: (DiyaFontIcon data: anObject) ].
|
||||
anObject isString ifTrue: [ icon := root addNode: (DiyaImageView from: anObject)].
|
||||
icon ifNil: [ ^ DiyaCoreAPIError signal: 'Invalid icon identification'].
|
||||
dirty := true.
|
||||
]
|
||||
|
||||
{ #category : #initialization }
|
||||
DiyaLabel >> initialize [
|
||||
super initialize.
|
||||
txt := root addNode:(DiyaText new).
|
||||
icon := nil.
|
||||
self extent: 0@0.
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
DiyaLabel >> txt [
|
||||
^ txt
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
DiyaLabel >> txt: anObject [
|
||||
txt data: anObject.
|
||||
dirty := true
|
||||
]
|
||||
|
@ -1,5 +1,48 @@
|
||||
Class {
|
||||
#name : #DiyaWidget,
|
||||
#superclass : #Diya2DNode,
|
||||
#instVars : [
|
||||
'style',
|
||||
'extent'
|
||||
],
|
||||
#category : #'Diya-Widgets'
|
||||
}
|
||||
|
||||
{ #category : #'instance creation' }
|
||||
DiyaWidget class >> fromStyle: aStyle [
|
||||
^self new style: aStyle; yourself
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
DiyaWidget >> applyStyle [
|
||||
self subclassResponsibility
|
||||
]
|
||||
|
||||
{ #category : #geometry }
|
||||
DiyaWidget >> extent: size [
|
||||
extent := size.
|
||||
dirty := true.
|
||||
]
|
||||
|
||||
{ #category : #initialization }
|
||||
DiyaWidget >> initialize [
|
||||
super initialize.
|
||||
self style: DiyaDefaultStyle new.
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
DiyaWidget >> style [
|
||||
^ style
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
DiyaWidget >> style: anObject [
|
||||
style := anObject.
|
||||
self applyStyle.
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
DiyaWidget >> update [
|
||||
self applyStyle.
|
||||
^ true
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user