Code: Select all
Global NewMap vstyle.l()
Global styletxt.s
Declare SetStyle()
Procedure initstyle(style.s)
! elStyle = document.createElement('style')
! elStyle.type= 'text/css'
! elHead = document.getElementsByTagName('head')[0]
! elHead.appendChild( elStyle )
Protected j
j=CreateJSON(-1)
ParseJSON(j, ReplaceString(style,"'",Chr(34)))
ExtractJSONMap(JSONValue(j), vstyle())
FreeJSON(j)
SetStyle()
EndProcedure
Procedure addstyle(class.s, prop.s,p1.s="",p2.s="",p3.s="",p4.s="")
If p1<>"":prop=ReplaceString(prop,"$1",p1):EndIf
If p2<>"":prop=ReplaceString(prop,"$2",p2):EndIf
If p3<>"":prop=ReplaceString(prop,"$3",p3):EndIf
If p4<>"":prop=ReplaceString(prop,"$4",p4):EndIf
styletxt+class+"{"+prop+"}"+#CRLF$
EndProcedure
Procedure.s jscolor(c.l)
ProcedureReturn "RGBA("+Str(Red(c))+","+Str(Green(c))+","+Str(Blue(c))+","+StrF(Alpha(c)/255)+")"
EndProcedure
Procedure SetStyle()
Protected v.l
styletxt=""
addstyle("body","font: 10px arial; color: #000;")
addstyle(".spiderwindow-title","font-size: 140%;")
ForEach vstyle()
v= vstyle()
Select MapKey(vstyle())
Case "g_radius"
addstyle(".spiderwindow,.sbWebBorder,iframe","border-radius: 4px;")
addstyle(".spiderwindow-content","border-radius: 0 0 4px 4px;")
Case "wt_back-color"
addstyle(".spiderwindow","background-color: $1;",jscolor(v))
Case "wt_color"
addstyle(".spiderwindow-title","color: $1;",jscolor(v))
Case "wc_back-color"
addstyle(".spiderwindow-content","background-color: $1;",jscolor(v))
Case "w_shadow"
addstyle(".spiderwindow","box-shadow: $1px $1px $2px 0px #000;",Str(v),Str(v*4))
EndSelect
Next
! elStyle.innerHTML = v_styletxt
EndProcedure
Procedure clearCanvas(CanvasGadget)
w = GadgetWidth(CanvasGadget)
h = GadgetHeight(CanvasGadget)
AddPathBox(0, 0, w, h)
VectorSourceColor(RGBA(30, 30, 30, 255))
FillPath()
EndProcedure
Procedure drawLine(mx, my)
MovePathCursor(mx, my)
AddPathCurve(mx+100, my, 250, 30, 350, 30)
VectorSourceColor(RGBA(255, 0, 0, 255))
StrokePath(2)
EndProcedure
Procedure WindowEvents()
Select EventWindow()
Case 2
mx = WindowX(2) + WindowWidth(2)
my = WindowY(2) + WindowHeight(2)
If StartVectorDrawing(CanvasVectorOutput(2))
clearCanvas(2)
drawLine(mx, my)
EndIf
EndSelect
EndProcedure
initstyle("{'g_radius':8,'wt_back-color':3523245567,'wt_color':4294967295,'wc_back-color':4280427042,'b_back-color':4283539158,'b_color':4278190080,'wb_width':0,'wb_color':0,'w_shadow':2,'b_shadow':5,'p_back-color':4285241782}")
OpenWindow(1,230,5,200,70,"Samples",#PB_Window_Background)
CanvasGadget(2, 0, 0, WindowWidth(1), WindowHeight(1), #PB_Canvas_Keyboard)
BindEvent(#PB_Event_MoveWindow, @WindowEvents())
If StartVectorDrawing(CanvasVectorOutput(2))
clearCanvas(2)
StopVectorDrawing()
EndIf
OpenWindow(2,230,5,200,40,"Samples",#PB_Window_TitleBar)