Italian [risolto] B4J - CSS multipli

ivanomonti

Expert
Licensed User
Longtime User
Buongiorno a tutti e buon lunedì (credo)

1) il form master ha dentro di se il suo css

CSS di root:
    MainForm = Form1
    MainForm.Stylesheets.Add(File.GetUri(File.DirAssets,"dark.css"))
    MainForm.SetFormStyle("UNDECORATED")
    MainForm.Show
    Dim cc As ClassCalendar
    cc.Initialize
    cc.ini_base_form(MainForm,0,0,MainForm.Width,MainForm.Height)

mi chiedevo, se volessi che una serie di oggetti avessero il proprio css separato, non so come spiegare, ma colori diversi dal colore di root, è possibile dire questo bottone ha questo css e quest'altro questo cssed il resto va con quello di root.

Se si, come funziona o meglio ancora come posso procedere!
 

Sagenut

Expert
Licensed User
Longtime User
Puoi usare la libreria CSSUTILS.
Con quella puoi impostare vari parametri su una specifica View.
 

ivanomonti

Expert
Licensed User
Longtime User
Puoi usare la libreria CSSUTILS.
Con quella puoi impostare vari parametri su una specifica View.

ti faccio un esempuio pratico,
button (sempre quello di default no custom object)
Bottone calendario ad esempio lo voglio rosso, verde ciclamino, quindi sempre per la stessa view (button) come posso impostare su 3 bottoni uguali tre colori diversi
  1. primo rosso
  2. secondo Verde
  3. terzo Giallo

    Grazie
 

Sagenut

Expert
Licensed User
Longtime User
Con la Sub colore puoi impostare il colore di fondo di una view al colore che vuoi.
Poi credo che sarai in grado di applicare lo stesso sistema anche alle altre cose che può impostare la CSSUTILS.
B4X:
Sub Process_Globals
    Private fx As JFX
    Private MainForm As Form
    Private Button1 As Button
    Private Button2 As Button
    Private Button3 As Button
End Sub

Sub AppStart (Form1 As Form, Args() As String)
    MainForm = Form1
    MainForm.RootPane.LoadLayout("Layout1") 'Load the layout file.
    MainForm.Show
    Colore(Button1, fx.Colors.Red)
    Colore(Button2, fx.Colors.Green)
    Colore(Button3, fx.Colors.Yellow)
End Sub

'Return true to allow the default exceptions handler to handle the uncaught exception.
Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
    Return True
End Sub

Sub Colore (view As Node, col As Paint) As String
    Return CSSUtils.SetBackgroundColor(view, col)
End Sub
La Sub è anche superflua in quanto essendo una sola riga di codice conviene sostituire le 3 chiamate con il comando diretto.
 
Last edited:
Top