home *** CD-ROM | disk | FTP | other *** search
Text File | 2001-01-01 | 25.7 KB | 1,004 lines |
- ;-> Orologio by Stefano Regattin
- ;d> 9 ottobre 1998 da Clock
- ;m> 10,11,16,17,19,24,29 ottobre 1998
- ;m> 4,6 novembre 1998
- ;m> 13,14,23 dicembre 1998
- ;m> 3 gennaio 1999
- ;m> 9,12 marzo 1999
- ;m> 25,26 settembre 1999
- ;m> 1,2,3,5,6,7,8,9,10,11,22,27,28 febbraio 2000
- ;m> 2,3,4,6,9,10,30,31 marzo 2000
- ;m> 6,9,16,25,30 aprile 2000
- ;m> 1,7,9,21 maggio 2000
- ;m> 2,15 giugno 2000
- ;m> 12,13 agosto 2000
- ;m> 16 novembre 2000
- ;m> 1 gennaio 2001
- ;------------------
- #HaiCambiatoLeDimensioniDellaFinestra=2
- #HaiPremutoUnTastoDelTopo=8
- #HaiRilasciatoUnGadget=$40
- #HaiChiusoLaFinestra=$200
-
- DEFTYPE .l RastPortFinestra
-
- DEFTYPE .b AltezzaFont,AltezzaFontRegistrata
- DEFTYPE .b NumeroToolType,StatoAllarme,ToolTypeScritti
-
- DEFTYPE .w
-
- Statement AggiustaDimensioniFinestraZero{}
- SHARED Angolo$
- SHARED LunXFinestraZero
- SHARED LunXSchermo
- SHARED LunYFinestraZero
- SHARED PosXFinestraZero
- SHARED PosXFinestraZeroAngoloOpposto
- SHARED PosYFinestraZero
- SHARED PosYFinestraZeroAngoloOpposto
- Select Angolo$
- Case "TOP-RIGHT"
- If PosXFinestraZero+(LunXFinestraZero-1)<>PosXFinestraZeroAngoloOpposto
- PosXFinestraZero=PosXFinestraZeroAngoloOpposto-(LunXFinestraZero-1)
- EndIf
- Case "BOTTOM-RIGHT"
- If PosXFinestraZero+(LunXFinestraZero-1)<>PosXFinestraZeroAngoloOpposto
- PosXFinestraZero=PosXFinestraZeroAngoloOpposto-(LunXFinestraZero-1)
- EndIf
- If PosYFinestraZero+(LunYFinestraZero-1)<>PosYFinestraZeroAngoloOpposto
- PosYFinestraZero=PosYFinestraZeroAngoloOpposto-(LunYFinestraZero-1)
- EndIf
- Case "BOTTOM-LEFT"
- If PosYFinestraZero+(LunYFinestraZero-1)<>PosYFinestraZeroAngoloOpposto
- PosYFinestraZero=PosYFinestraZeroAngoloOpposto-(LunYFinestraZero-1)
- EndIf
- End Select
- If LunXFinestraZero>LunXSchermo Then LunXFinestraZero=LunXSchermo
- If PosXFinestraZero+LunXFinestraZero-1>LunXSchermo Then PosXFinestraZero=LunXSchermo-LunXFinestraZero
- If PosXFinestraZero<0 Then PosXFinestraZero=0
- If LunYFinestraZero>WBHeight Then LunYFinestraZero=WBHeight
- If PosYFinestraZero+LunYFinestraZero-1>WBHeight Then PosYFinestraZero=WBHeight-LunYFinestraZero
- If PosYFinestraZero<AltezzaFontSchermo+3 Then PosYFinestraZero=AltezzaFontSchermo+3
- End Statement
-
- Statement ApriFinestraZero{}
- SHARED ColoreSfondo
- SHARED LunXFinestraZero
- SHARED LunYFinestraZero
- SHARED PosXFinestraZero
- SHARED PosYFinestraZero
- SHARED RastPortFinestra
- Window 0,PosXFinestraZero,PosYFinestraZero,LunXFinestraZero,LunYFinestraZero,$40F,"",1,2
- WTitle "Orologio","by Stefano Regattin e-mail->stefano.regattin@tin.it"
- RastPortFinestra=RastPort(0)
- WindowFont 0
- Menus Off
- WCls ColoreSfondo
- End Statement
-
- Statement LeggiToolType{}
- SHARED Angolo$
- SHARED AngoloRegistrato$
- SHARED ColoreSfondo
- SHARED ColoreSfondoRegistrato
- SHARED ColoreTesto
- SHARED ColoreTestoRegistrato
- SHARED FontOrologio$
- SHARED FontOrologioRegistrato$
- SHARED IconaOrologio$
- SHARED AltezzaFont
- SHARED AltezzaFontRegistrata
- SHARED PosXFinestraZero
- SHARED PosXFinestraZeroRegistrata
- SHARED PosYFinestraZero
- SHARED PosYFinestraZeroRegistrata
- ToolTypeLetti.l=GetIconObject(IconaOrologio$)
- If ToolTypeLetti>0
- NuovoFontOrologio$=FindToolValue("FONTNAME")
- NuovaAltezzaFont$=FindToolValue("FONTSIZE")
- NuovaPosXFinestraZero$=FindToolValue("WINDOWX")
- NuovaPosYFinestraZero$=FindToolValue("WINDOWY")
- NuovoAngolo$=FindToolValue("ANGLE")
- NuovoColoreTesto$=FindToolValue("TEXTCOLOR")
- NuovoColoreSfondo$=FindToolValue("BACKCOLOR")
-
- If NuovoFontOrologio$<>""
- FontOrologioRegistrato$=NuovoFontOrologio$
- FontOrologio$=NuovoFontOrologio$
- EndIf
-
- If NuovaAltezzaFont$<>""
- AltezzaFontRegistrata=Val(NuovaAltezzaFont$)
- AltezzaFont=Val(NuovaAltezzaFont$)
- EndIf
-
- If NuovaPosXFinestraZero$<>""
- PosXFinestraZeroRegistrata=Val(NuovaPosXFinestraZero$)
- PosXFinestraZero=Val(NuovaPosXFinestraZero$)
- EndIf
-
- If NuovaPosYFinestraZero$<>""
- PosYFinestraZeroRegistrata=Val(NuovaPosYFinestraZero$)
- PosYFinestraZero=Val(NuovaPosYFinestraZero$)
- EndIf
-
- If NuovoAngolo$<>""
- AngoloRegistrato$=NuovoAngolo$
- Angolo$=NuovoAngolo$
- EndIf
-
- If NuovoColoreTesto$<>""
- ColoreTestoRegistrato=Val(NuovoColoreTesto$)
- ColoreTesto=Val(NuovoColoreTesto$)
- EndIf
-
- If NuovoColoreSfondo$<>""
- ColoreSfondoRegistrato=Val(NuovoColoreSfondo$)
- ColoreSfondo=Val(NuovoColoreSfondo$)
- EndIf
-
- FreeIconObject
-
- EndIf
- End Statement
-
- Statement ScriviToolType{}
- SHARED Angolo$
- SHARED AngoloRegistrato$
- SHARED ColoreSfondo
- SHARED ColoreSfondoRegistrato
- SHARED ColoreTesto
- SHARED ColoreTestoRegistrato
- SHARED FontOrologio$
- SHARED FontOrologioRegistrato$
- SHARED IconaOrologio$
- SHARED AltezzaFont
- SHARED AltezzaFontRegistrata
- SHARED PosXFinestraZero
- SHARED PosXFinestraZeroAngoloOpposto
- SHARED PosXFinestraZeroRegistrata
- SHARED PosYFinestraZero
- SHARED PosYFinestraZeroAngoloOpposto
- SHARED PosYFinestraZeroRegistrata
- SHARED ToolTypeScritti
- ToolTypeLetti.l=GetIconObject(IconaOrologio$)
- If ToolTypeLetti>0
- If FindToolType("DONOTWAIT")=False Then NewToolType "DONOTWAIT",""
-
- If FindToolType("FONTNAME")=True
- SetToolValue "FONTNAME",FontOrologio$
- Else
- NewToolType "FONTNAME",FontOrologio$
- EndIf
-
- If FindToolType("FONTSIZE")=True
- SetToolValue "FONTSIZE",Str$(AltezzaFont)
- Else
- NewToolType "FONTSIZE",Str$(AltezzaFont)
- EndIf
-
- Select Angolo$
- Case "TOP-LEFT"
- If FindToolType("WINDOWX")=True
- SetToolValue "WINDOWX",Str$(PosXFinestraZero)
- Else
- NewToolType "WINDOWX",Str$(PosXFinestraZero)
- EndIf
-
- If FindToolType("WINDOWY")=True
- SetToolValue "WINDOWY",Str$(PosYFinestraZero)
- Else
- NewToolType "WINDOWY",Str$(PosYFinestraZero)
- EndIf
- Case "TOP-RIGHT"
- If FindToolType("WINDOWX")=True
- SetToolValue "WINDOWX",Str$(PosXFinestraZeroAngoloOpposto)
- Else
- NewToolType "WINDOWX",Str$(PosXFinestraZeroAngoloOpposto)
- EndIf
-
- If FindToolType("WINDOWY")=True
- SetToolValue "WINDOWY",Str$(PosYFinestraZero)
- Else
- NewToolType "WINDOWY",Str$(PosYFinestraZero)
- EndIf
- Case "BOTTOM-RIGHT"
- If FindToolType("WINDOWX")=True
- SetToolValue "WINDOWX",Str$(PosXFinestraZeroAngoloOpposto)
- Else
- NewToolType "WINDOWX",Str$(PosXFinestraZeroAngoloOpposto)
- EndIf
-
- If FindToolType("WINDOWY")=True
- SetToolValue "WINDOWY",Str$(PosYFinestraZeroAngoloOpposto)
- Else
- NewToolType "WINDOWY",Str$(PosYFinestraZeroAngoloOpposto)
- EndIf
- Case "BOTTOM-LEFT"
- If FindToolType("WINDOWX")=True
- SetToolValue "WINDOWX",Str$(PosXFinestraZero)
- Else
- NewToolType "WINDOWX",Str$(PosXFinestraZero)
- EndIf
-
- If FindToolType("WINDOWY")=True
- SetToolValue "WINDOWY",Str$(PosYFinestraZeroAngoloOpposto)
- Else
- NewToolType "WINDOWY",Str$(PosYFinestraZeroAngoloOpposto)
- EndIf
- End Select
-
- If FindToolType("ANGLE")=True
- SetToolValue "ANGLE",Angolo$
- Else
- NewToolType "ANGLE",Angolo$
- EndIf
-
- If FindToolType("TEXTCOLOR")=True
- SetToolValue "TEXTCOLOR",Str$(ColoreTesto)
- Else
- NewToolType "TEXTCOLOR",Str$(ColoreTesto)
- EndIf
-
- If FindToolType("BACKCOLOR")=True
- SetToolValue "BACKCOLOR",Str$(ColoreSfondo)
- Else
- NewToolType "BACKCOLOR",Str$(ColoreSfondo)
- EndIf
-
- ToolTypeScritti=PutIconObject(IconaOrologio$)
- If ToolTypeScritti=True
- FontOrologioRegistrato$=FontOrologio$
- AltezzaFontRegistrata=AltezzaFont
- AngoloRegistrato$=Angolo$
- Select Angolo$
- Case "TOP-LEFT"
- PosXFinestraZeroRegistrata=PosXFinestraZero
- PosYFinestraZeroRegistrata=PosYFinestraZero
- Case "TOP-RIGHT"
- PosXFinestraZeroRegistrata=PosXFinestraZeroAngoloOpposto
- PosYFinestraZeroRegistrata=PosYFinestraZero
- Case "BOTTOM-RIGHT"
- PosXFinestraZeroRegistrata=PosXFinestraZeroAngoloOpposto
- PosYFinestraZeroRegistrata=PosYFinestraZeroAngoloOpposto
- Case "BOTTOM-LEFT"
- PosXFinestraZeroRegistrata=PosXFinestraZeroAngolo
- PosYFinestraZeroRegistrata=PosYFinestraZeroAngoloOpposto
- End Select
- ColoreTestoRegistrato=ColoreTesto
- ColoreSfondoRegistrato=ColoreSfondo
- EndIf
-
- FreeIconObject
-
- EndIf
- End Statement
-
- Statement CercaFont{}
- SHARED FontOrologio$
- SHARED AltezzaFont
- NEWTYPE .FontInfo
- Nome$
- Altezza.w
- Stile.b
- Segnalatori
- PennaUno
- PennaDue
- ModoDisegno
- Pad
- End NEWTYPE
-
- *Font.FontInfo=ASLFontRequest(0)
-
- If *Font<>0
- FontOrologio$=*Font\Nome
- AltezzaFont=*Font\Altezza
- EndIf
- End Statement
-
- Statement CambiaColori{}
- SHARED ColoreSfondo
- SHARED ColoreTesto
- SHARED LunXSchermo
- ColoriWB=2^WBDepth
- SpazioColori=Max(ColoriWB/16,1)*8
- PosXFinestraDue=WindowX
- PosYFinestraDue=WindowY
- LunXFinestraDue=WLeftOff+16*8+4
- LunYFinestraDue=WTopOff+SpazioColori+1+13+12+4
-
- If PosXFinestraDue+LunXFinestraDue>LunXSchermo Then PosXFinestraDue=LunXSchermo-LunXFinestraDue
- If PosYFinestraDue+LunYFinestraDue>WBHeight Then PosYFinestraDue=WBHeight-LunYFinestraDue
-
- Window 2,PosXFinestraDue,PosYFinestraDue,LunXFinestraDue,LunYFinestraDue,$140E,"",-1,-1,1
- WTitle "Colori","Cambia i colori dell'orologio"
- WindowFont 1
- Menus Off
-
- XFinaleBordo=InnerWidth-8
- GadgetBorder 4,SpazioColori+3,XFinaleBordo,8
- GadgetBorder 4,SpazioColori+16,XFinaleBordo,8
-
- For Colore=0 To ColoriWB-1
- XColore=(Colore MOD 16)*8
- YColore=(Colore/16)*8
- WBox XColore,YColore,XColore+7,YColore+7,Colore
- Next
-
- Repeat
- WBox 4,SpazioColori+3,XFinaleBordo+3,SpazioColori+10,ColoreTesto
- WBox 4,SpazioColori+16,XFinaleBordo+3,SpazioColori+23,ColoreSfondo
-
- EventoFinestraDue.l=WaitEvent
-
- Select EventoFinestraDue
- Case #HaiPremutoUnTastoDelTopo
- If WMouseX>-1 AND WMouseY>-1 AND WMouseX<128 AND WMouseY<SpazioColori
- Colore=WMouseY/8*16+WMouseX/8
- Select MButtons
- Case 1
- If Colore<>ColoreSfondo Then ColoreTesto=Colore
- Case 2
- If Colore<>ColoreTesto Then ColoreSfondo=Colore
- End Select
- EndIf
- End Select
- Until EventoFinestraDue=#HaiChiusoLaFinestra
- CloseWindow 2
- Use Window 1
- End Statement
-
- Statement Parametri{}
- SHARED Angolo$
- SHARED AngoloRegistrato$
- SHARED ColoreSfondo
- SHARED ColoreSfondoRegistrato
- SHARED ColoreTesto
- SHARED ColoreTestoRegistrato
- SHARED OraAllarme$
- SHARED OraDiOggi$
- SHARED FontOrologio$
- SHARED FontOrologioRegistrato$
- SHARED AltezzaFont
- SHARED AltezzaFontRegistrata
- SHARED LunXFinestraZero
- SHARED LunYFinestraZero
- SHARED LunXSchermo
- SHARED PosXFinestraZero
- SHARED PosXFinestraZeroAngoloOpposto
- SHARED PosXFinestraZeroRegistrata
- SHARED PosYFinestraZero
- SHARED PosYFinestraZeroAngoloOpposto
- SHARED PosYFinestraZeroRegistrata
- SHARED StatoAllarme
- SHARED ToolTypeScritti
- Dim Freccia(5)
- BitMap 0,32,16,2
- Freccia(0)=0:Freccia(1)=0
- Freccia(2)=7:Freccia(3)=0
- Freccia(4)=0:Freccia(5)=7
- Polyf 3,&Freccia(0),1
- GetaShape 0,0,0,8,8
- XFlip 0
- Blit 0,8,0
- GetaShape 0,0,0,8,8
- GetaShape 1,8,0,8,8
- YFlip 1
- Blit 1,16,0
- GetaShape 1,8,0,8,8
- GetaShape 2,16,0,8,8
- XFlip 2
- Blit 2,24,0
- GetaShape 2,16,0,8,8
- GetaShape 3,24,0,8,8
- Freccia(0)=0:Freccia(1)=8
- Freccia(2)=7:Freccia(3)=8
- Freccia(4)=0:Freccia(5)=15
- Polyf 3,&Freccia(0),2
- GetaShape 4,0,8,8,8
- XFlip 4
- Blit 4,8,8
- GetaShape 4,0,8,8,8
- GetaShape 5,8,8,8,8
- YFlip 5
- Blit 5,16,8
- GetaShape 5,8,8,8,8
- GetaShape 6,16,8,8,8
- XFlip 6
- Blit 6,24,8
- GetaShape 6,16,8,8,8
- GetaShape 7,24,8,8,8
-
- Free BitMap 0
-
- Use IntuiFont 1
- StringGadget 0, 1, 1, 0, 0,6,6*8
- StringGadget 0, 1,14, 0, 1,25,106
- StringGadget 0, 75, 1, 0, 2,4,4*8
- StringGadget 0, 9,27, 0, 3,5,5*8
- StringGadget 0, 67,27, 0, 4,5,5*8
- StringGadget 0, 9,62, 0, 5,5,5*8
- StringGadget 0, 67,62, 0, 6,5,5*8
- ShapeGadget 0, 92,42,512, 7,0,4
- ShapeGadget 0,103,42,512, 8,1,5
- ShapeGadget 0,103,51,512, 9,2,6
- ShapeGadget 0, 92,51,512,10,3,7
- TextGadget 0, 58, 1, 1,11,"A"
- TextGadget 0, 1,75, 0,12," Colori "
- TextGadget 0, 1,87, 1,13,"*** Salva ***"
-
- PosXFinestraZero=WindowX-WLeftOff
- PosYFinestraZero=WindowY-WTopOff
- PosXFinestraZeroAngoloOpposto=PosXFinestraZero+(LunXFinestraZero-1)
- PosYFinestraZeroAngoloOpposto=PosYFinestraZero+(LunYFinestraZero-1)
-
- PosXFinestraUno=WindowX
- PosYFinestraUno=WindowY
- LunXFinestraUno=124
- LunYFinestraUno=WTopOff+105
-
- If PosXFinestraUno+LunXFinestraUno>LunXSchermo Then PosXFinestraUno=LunXSchermo-LunXFinestraUno
- If PosYFinestraUno+LunYFinestraUno>WBHeight Then PosYFinestraUno=WBHeight-LunYFinestraUno
-
- Window 1,PosXFinestraUno,PosYFinestraUno,LunXFinestraUno,LunYFinestraUno,$140E,"",-1,-1,0
- WTitle "Parametri","Imposta i parametri dell'orologio"
- WColour 1,0
- WindowFont 1
- Menus Off
-
- GadgetBorder 92,42,19,17
- WLocate 0,29:Print "X"
- WLocate 58,29:Print "Y"
- WLocate 1,43:Print"Angolo"
- WLocate 40,52:Print"fisso>"
- WLocate 0,64:Print "X"
- WLocate 58,64:Print "Y"
-
- Toggle 0,11,StatoAllarme
- Redraw 1,11
-
- Select Angolo$
- Case "TOP-LEFT"
- Enable 0,3
- Enable 0,4
- Disable 0,5
- Disable 0,6
- Toggle 0,7,On
- Redraw 1,7
- Case "TOP-RIGHT"
- Enable 0,3
- Disable 0,4
- Disable 0,5
- Enable 0,6
- Toggle 0,8,On
- Redraw 1,8
- Case "BOTTOM-RIGHT"
- Disable 0,3
- Disable 0,4
- Enable 0,5
- Enable 0,6
- Toggle 0,9,On
- Redraw 1,9
- Case "BOTTOM-LEFT"
- Disable 0,3
- Enable 0,4
- Enable 0,5
- Disable 0,6
- Toggle 0,10,On
- Redraw 1,10
- End Select
-
- Redraw 1,3
- Redraw 1,4
- Redraw 1,5
- Redraw 1,6
-
- If OraAllarme$="" Then OraAllarme$=UnLeft$(OraDiOggi$,3)
-
- Repeat
- SetString 0,0,OraAllarme$
- Redraw 1,0
- SetString 0,1,FontOrologio$
- Redraw 1,1
- SetString 0,2,Str$(AltezzaFont)
- Redraw 1,2
- SetString 0,3,Str$(PosXFinestraZero)
- Redraw 1,3
- SetString 0,4,Str$(PosYFinestraZero)
- Redraw 1,4
- SetString 0,5,Str$(PosXFinestraZeroAngoloOpposto)
- Redraw 1,5
- SetString 0,6,Str$(PosYFinestraZeroAngoloOpposto)
- Redraw 1,6
-
- ValoriCambiati.b=False
- If FontOrologio$<>FontOrologioRegistrato$ Then ValoriCambiati=True
- If AltezzaFont<>AltezzaFontRegistrata Then ValoriCambiati=True
- Select Angolo$
- Case "TOP-LEFT"
- If PosXFinestraZero<>PosXFinestraZeroRegistrata Then ValoriCambiati=True
- If PosYFinestraZero<>PosYFinestraZeroRegistrata Then ValoriCambiati=True
- Case "TOP-RIGHT"
- If PosXFinestraZero+(LunXFinestraZero-1)<>PosXFinestraZeroRegistrata Then ValoriCambiati=True
- If PosYFinestraZero<>PosYFinestraZeroRegistrata Then ValoriCambiati=True
- Case "BOTTOM-RIGHT"
- If PosXFinestraZero+(LunXFinestraZero-1)<>PosXFinestraZeroRegistrata Then ValoriCambiati=True
- If PosYFinestraZero+(LunYFinestraZero-1)<>PosYFinestraZeroRegistrata Then ValoriCambiati=True
- Case "BOTTOM-LEFT"
- If PosXFinestraZero<>PosXFinestraZeroRegistrata Then ValoriCambiati=True
- If PosYFinestraZero+(LunYFinestraZero-1)<>PosYFinestraZeroRegistrata Then ValoriCambiati=True
- End Select
- If Angolo$<>AngoloRegistrato$ Then ValoriCambiati=True
- If ColoreTesto<>ColoreTestoRegistrato Then ValoriCambiati=True
- If ColoreSfondo<>ColoreSfondoRegistrato Then ValoriCambiati=True
- If ValoriCambiati=True Then Enable 0,13 Else Toggle 0,13,Off:Disable 0,13
- Redraw 1,13
-
- EventoFinestraUno.l=WaitEvent
-
- Select EventoFinestraUno
- Case #HaiRilasciatoUnGadget
- If GadgetHit<7 Then ActivateString 1,GadgetHit
- Select GadgetHit
- Case 0
- OraAllarme$=StringText$(0,0)
- Case 1
- NuovoFontOrologio$=StringText$(0,1)
- If NuovoFontOrologio$="" Then CercaFont{}
- If Right$(NuovoFontOrologio$,5)<>".font" Then NuovoFontOrologio$+".font"
- If Len(NuovoFontOrologio$)>0
- If Exists("FONTS:"+NuovoFontOrologio$)
- FontOrologio$=NuovoFontOrologio$
- EndIf
- EndIf
- Case 2
- AltezzaFont=Val(StringText$(0,2))
- AltezzaFont=Max(AltezzaFont,6)
- Case 3
- PosXFinestraZero=Val(StringText$(0,3))
- Case 4
- PosYFinestraZero=Val(StringText$(0,4))
- Case 5
- PosXFinestraZeroAngoloOpposto=Val(StringText$(0,5))
- Case 6
- PosYFinestraZeroAngoloOpposto=Val(StringText$(0,6))
- Case 7
- If GadgetStatus(0,7)=True Then Angolo$="TOP-LEFT"
- Case 8
- If GadgetStatus(0,8)=True Then Angolo$="TOP-RIGHT"
- Case 9
- If GadgetStatus(0,9)=True Then Angolo$="BOTTOM-RIGHT"
- Case 10
- If GadgetStatus(0,10)=True Then Angolo$="BOTTOM-LEFT"
- Case 11
- StatoAllarme=GadgetStatus(0,11)
- Case 12
- CambiaColori{}
- Toggle 0,12,Off
- Case 13
- ScriviToolType{}
- If ToolTypeScritti=True
- Toggle 0,13,Off
- Disable 0,13
- Redraw 1,13
- Else
- Toggle 0,13,On
- EndIf
- End Select
-
- Select Angolo$
- Case "TOP-LEFT"
- PosXFinestraZeroAngoloOpposto=PosXFinestraZero+(LunXFinestraZero-1)
- PosYFinestraZeroAngoloOpposto=PosYFinestraZero+(LunYFinestraZero-1)
- Enable 0,3
- Enable 0,4
- Disable 0,5
- Disable 0,6
- Case "TOP-RIGHT"
- PosXFinestraZero=PosXFinestraZeroAngoloOpposto-(LunXFinestraZero-1)
- PosYFinestraZeroAngoloOpposto=PosYFinestraZero+(LunYFinestraZero-1)
- Disable 0,3
- Enable 0,4
- Enable 0,5
- Disable 0,6
- Case "BOTTOM-RIGHT"
- PosXFinestraZero=PosXFinestraZeroAngoloOpposto-(LunXFinestraZero-1)
- PosYFinestraZero=PosYFinestraZeroAngoloOpposto-(LunYFinestraZero-1)
- Disable 0,3
- Disable 0,4
- Enable 0,5
- Enable 0,6
- Case "BOTTOM-LEFT"
- PosXFinestraZeroAngoloOpposto=PosXFinestraZero+(LunXFinestraZero-1)
- PosYFinestraZero=PosYFinestraZeroAngoloOpposto-(LunYFinestraZero-1)
- Enable 0,3
- Disable 0,4
- Disable 0,5
- Enable 0,6
- End Select
-
- End Select
- Until EventoFinestraUno=#HaiChiusoLaFinestra
- CloseWindow 1
- Use Window 0
- End Statement
-
- Statement DataDiOggi{}
- SHARED Allarme$
- SHARED DataDiOggi$
- SHARED LunghezzaDataDiOggi
- SHARED LunghezzaScrittaAllarme
- SHARED RastPortFinestra
- Giorni.l=SystemDate
- Select WeekDay
- Case 0
- GiornoDellaSettimana$="Dom"
- Case 1
- GiornoDellaSettimana$="Lun"
- Case 2
- GiornoDellaSettimana$="Mar"
- Case 3
- GiornoDellaSettimana$="Mer"
- Case 4
- GiornoDellaSettimana$="Gio"
- Case 5
- GiornoDellaSettimana$="Ven"
- Case 6
- GiornoDellaSettimana$="Sab"
- End Select
- If Giorni>8400
- Giorni-8400
- Repeat
- If Anno MOD 4=3
- AnnoBisestile=True
- If Giorni>365 Then Giorni-366 Else FineCicloInfinito=True
- Else
- AnnoBisestile=False
- If Giorni>364 Then Giorni-365 Else FineCicloInfinito=True
- EndIf
- Anno+1
- If FineCicloInfinito=True Pop Repeat:Goto FineCicloInfinito
- Until False
- FineCicloInfinito
- Anno$=StripLead$(Str$(2000+Anno),32)
- If AnnoBisestile=True
- If Giorni>0 AND Giorni<32
- Giorno$=StripLead$(Str$(Giorni),32)
- Mese$="gennaio"
- EndIf
- If Giorni>31 AND Giorni<61
- Giorno$=StripLead$(Str$(Giorni-31),32)
- Mese$="febbraio"
- EndIf
- If Giorni>60 AND Giorni<92
- Giorno$=StripLead$(Str$(Giorni-60),32)
- Mese$="marzo"
- EndIf
- If Giorni>91 AND Giorni<122
- Giorno$=StripLead$(Str$(Giorni-91),32)
- Mese$="aprile"
- EndIf
- If Giorni>121 AND Giorni<153
- Giorno$=StripLead$(Str$(Giorni-121),32)
- Mese$="maggio"
- EndIf
- If Giorni>152 AND Giorni<183
- Giorno$=StripLead$(Str$(Giorni-152),32)
- Mese$="giugno"
- EndIf
- If Giorni>182 AND Giorni<214
- Giorno$=StripLead$(Str$(Giorni-182),32)
- Mese$="luglio"
- EndIf
- If Giorni>213 AND Giorni<245
- Giorno$=StripLead$(Str$(Giorni-213),32)
- Mese$="agosto"
- EndIf
- If Giorni>244 AND Giorni<275
- Giorno$=StripLead$(Str$(Giorni-244),32)
- Mese$="settembre"
- EndIf
- If Giorni>274 AND Giorni<306
- Giorno$=StripLead$(Str$(Giorni-274),32)
- Mese$="ottobre"
- EndIf
- If Giorni>305 AND Giorni<336
- Giorno$=StripLead$(Str$(Giorni-305),32)
- Mese$="novembre"
- EndIf
- If Giorni>335 AND Giorni<367
- Giorno$=StripLead$(Str$(Giorni-335),32)
- Mese$="dicembre"
- EndIf
- Else
- If Giorni>0 AND Giorni<32
- Giorno$=StripLead$(Str$(Giorni),32)
- Mese$="gennaio"
- EndIf
- If Giorni>31 AND Giorni<60
- Giorno$=StripLead$(Str$(Giorni-31),32)
- Mese$="febbraio"
- EndIf
- If Giorni>59 AND Giorni<91
- Giorno$=StripLead$(Str$(Giorni-59),32)
- Mese$="marzo"
- EndIf
- If Giorni>90 AND Giorni<121
- Giorno$=StripLead$(Str$(Giorni-90),32)
- Mese$="aprile"
- EndIf
- If Giorni>120 AND Giorni<152
- Giorno$=StripLead$(Str$(Giorni-120),32)
- Mese$="maggio"
- EndIf
- If Giorni>151 AND Giorni<182
- Giorno$=StripLead$(Str$(Giorni-151),32)
- Mese$="giugno"
- EndIf
- If Giorni>181 AND Giorni<213
- Giorno$=StripLead$(Str$(Giorni-181),32)
- Mese$="luglio"
- EndIf
- If Giorni>212 AND Giorni<244
- Giorno$=StripLead$(Str$(Giorni-212),32)
- Mese$="agosto"
- EndIf
- If Giorni>243 AND Giorni<274
- Giorno$=StripLead$(Str$(Giorni-243),32)
- Mese$="settembre"
- EndIf
- If Giorni>273 AND Giorni<305
- Giorno$=StripLead$(Str$(Giorni-273),32)
- Mese$="ottobre"
- EndIf
- If Giorni>304 AND Giorni<335
- Giorno$=StripLead$(Str$(Giorni-304),32)
- Mese$="novembre"
- EndIf
- If Giorni>334 AND Giorni<366
- Giorno$=StripLead$(Str$(Giorni-334),32)
- Mese$="dicembre"
- EndIf
- EndIf
- Else
- Giorno$=Str$(Days)
- Select Months
- Case 1
- Mese$="gennaio"
- Case 2
- Mese$="febbraio"
- Case 3
- Mese$="marzo"
- Case 4
- Mese$="aprile"
- Case 5
- Mese$="maggio"
- Case 6
- Mese$="giugno"
- Case 7
- Mese$="luglio"
- Case 8
- Mese$="agosto"
- Case 9
- Mese$="settembre"
- Case 10
- Mese$="ottobre"
- Case 11
- Mese$="novembre"
- Case 12
- Mese$="dicembre"
- End Select
- Anno$=Str$(Years)
- EndIf
- DataDiOggi$=" "+GiornoDellaSettimana$+", "+Giorno$+" "+Mese$+" "+Anno$+" "
- LunghezzaDataDiOggi.w=TextLength_(RastPortFinestra,&DataDiOggi$,Len(DataDiOggi$))
- End Statement
-
- ;*********************************************
- ;Fine delle procedure ed inizio del programma
- ;Procedures end and program start
- ;*********************************
-
- WBStartup
-
- WbToScreen 0
-
- IndirizzoSchermo.l=Peek.l(Addr Screen(0))
- LunXSchermo=Peek.w(IndirizzoSchermo+12)
-
- FontOrologio$="Data70.font"
- AltezzaFont=13
-
- AltezzaFontSchermo.b=8
- OpenFontPrefs
- AltezzaFontSchermo=DefaultFontHeight(2)
- CloseFontPrefs
-
- IconaOrologio$=ProgPath$+".info"
-
- PosXFinestraZero=0
- PosYFinestraZero=AltezzaFontSchermo+3
- LunXFinestraZero=70
- LunYFinestraZero=30
- Angolo$="TOP-LEFT"
- ColoreTesto=1
- ColoreSfondo=0
-
- LeggiToolType{}
-
- LoadFont 0,FontOrologio$,AltezzaFont
-
- LoadFont 1,"topaz.font",8
-
- Select Angolo$
- Case "TOP-RIGHT"
- PosXFinestraZeroAngoloOpposto=PosXFinestraZero
- PosXFinestraZero-(LunXFinestraZero-1)
- Case "BOTTOM-RIGHT"
- PosXFinestraZeroAngoloOpposto=PosXFinestraZero
- PosXFinestraZero-(LunXFinestraZero-1)
- PosYFinestraZeroAngoloOpposto=PosYFinestraZero
- PosYFinestraZero-(LunYFinestraZero-1)
- Case "BOTTOM-LEFT"
- PosYFinestraZeroAngoloOpposto=PosYFinestraZero
- PosYFinestraZero-(LunYFinestraZero-1)
- End Select
-
- AggiustaDimensioniFinestraZero{}
- ApriFinestraZero{}
-
- DataDiOggi$=Date$(SystemDate)
- DataDiOggi{}
-
- LunXFinestraZero=WLeftOff+LunghezzaDataDiOggi+WTopOff+4
- LunYFinestraZero=WTopOff+AltezzaFont*2+4
-
- Select Angolo$
- Case "TOP-LEFT"
- PosXFinestraZeroAngoloOpposto=PosXFinestraZero+(LunXFinestraZero-1)
- PosYFinestraZeroAngoloOpposto=PosYFinestraZero+(LunYFinestraZero-1)
- Case "TOP-RIGHT"
- PosXFinestraZero=PosXFinestraZeroAngoloOpposto
- PosXFinestraZero-(LunXFinestraZero-1)
- PosYFinestraZeroAngoloOpposto=PosYFinestraZero+(LunYFinestraZero-1)
- Case "BOTTOM-RIGHT"
- PosXFinestraZero=PosXFinestraZeroAngoloOpposto
- PosXFinestraZero-(LunXFinestraZero-1)
- PosYFinestraZero=PosYFinestraZeroAngoloOpposto
- PosYFinestraZero-(LunYFinestraZero-1)
- Case "BOTTOM-LEFT"
- PosXFinestraZeroAngoloOpposto=PosXFinestraZero+(LunXFinestraZero-1)
- PosYFinestraZero=PosYFinestraZeroAngoloOpposto
- PosYFinestraZero-(LunYFinestraZero-1)
- End Select
-
- CloseWindow 0
-
- AggiustaDimensioniFinestraZero{}
- ApriFinestraZero{}
-
- XAllarme=InnerWidth-1-AltezzaFont/2
- YAllarme=InnerHeight-1-AltezzaFont/2
- RaggioMassimoCerchio=AltezzaFont/2
- SetZone 0,XAllarme,YAllarme,RaggioMassimoCerchio
-
- Repeat
- EventoFinestraZero.l=Event
-
- Select EventoFinestraZero
- Case #HaiCambiatoLeDimensioniDellaFinestra
- AltezzaFont=InnerHeight/2
- If AltezzaFont<4 Then AltezzaFont=4
- LunXFinestraZero=WindowWidth
- LunYFinestraZero=WindowHeight
- RaggioMassimoCerchio=AltezzaFont/2
- LoadFont 0,FontOrologio$,AltezzaFont
- WindowFont 0
- WCls ColoreSfondo
- XAllarme=InnerWidth-1-AltezzaFont/2
- YAllarme=InnerHeight-1-AltezzaFont/2
- RaggioMassimoCerchio=AltezzaFont/2
- RaggioCerchio=RaggioMassimoCerchio
- SetZone 0,XAllarme,YAllarme,RaggioMassimoCerchio
- Case #HaiPremutoUnTastoDelTopo
- Select MButtons
- Case 1
- If StatoAllarme=On AND Zone(WMouseX,WMouseY)=0
- StatoAllarme=Off
- Else
- PrecedenteFontOrologio$=FontOrologio$
- PrecedenteAltezzaFont.b=AltezzaFont
- PrecedenteColoreSfondo=ColoreSfondo
-
- Parametri{}
-
- Use Window 0
-
- FinestraZeroAggiornata.b=False
- If FontOrologio$<>PrecedenteFontOrologio$ OR AltezzaFont<>PrecedenteAltezzaFont
- LoadFont 0,FontOrologio$,AltezzaFont
- WindowFont 0
-
- DataDiOggi{}
-
- LunXFinestraZero=WLeftOff+LunghezzaDataDiOggi+WTopOff+2
- LunYFinestraZero=WTopOff+AltezzaFont*2+4
-
- CloseWindow 0
-
- AggiustaDimensioniFinestraZero{}
- ApriFinestraZero{}
-
- FinestraZeroAggiornata=True
- EndIf
- If FinestraZeroAggiornata=False
- If PosXFinestraZero<>WindowX-WLeftOff OR PosYFinestraZero<>WindowY-WTopOff
- CloseWindow 0
-
- AggiustaDimensioniFinestraZero{}
- ApriFinestraZero{}
- EndIf
- EndIf
- XAllarme=InnerWidth-1-AltezzaFont/2
- YAllarme=InnerHeight-1-AltezzaFont/2
- RaggioMassimoCerchio=AltezzaFont/2
- RaggioCerchio=RaggioMassimoCerchio
- SetZone 0,XAllarme,YAllarme,RaggioMassimoCerchio
- EndIf
- If ColoreSfondo<>PrecedenteColoreSfondo Then WCls ColoreSfondo
- End Select
- FlushEvents #HaiPremutoUnTastoDelTopo
- End Select
-
- DataDiOggi$=Date$(SystemDate)
-
- DataDiOggi{}
-
- XData.w=(InnerWidth-LunghezzaDataDiOggi)/2
- WColour ColoreTesto,ColoreSfondo
- WLocate XData,0
- Print DataDiOggi$
-
- OraDiOggi$=" "+Str$(Hours/10)
- OraDiOggi$+Str$(Hours MOD 10)+":"
- OraDiOggi$+Str$(Mins/10)
- OraDiOggi$+Str$(Mins MOD 10)+":"
- OraDiOggi$+Str$(Secs/10)
- OraDiOggi$+Str$(Secs MOD 10)+" "
- LunghezzaOraDiOggi.w=TextLength_(RastPortFinestra,&OraDiOggi$,Len(OraDiOggi$))
- XOra.w=(InnerWidth-LunghezzaOraDiOggi)/2
- WLocate XOra,AltezzaFont
- Print OraDiOggi$
-
- OraDiOggi$=StripTrail$(StripLead$(OraDiOggi$,32),32)
-
- Minuti.b=Val(Mid$(OraDiOggi$,4,2))
- If Minuti=0
- If OraSuonata.b=False
- Ora.b=Val(Left$(OraDiOggi$,2)) MOD 12
- If Ora=0 Then Ora=12
- EndIf
- If Ora>0
- BeepScreen 0
- Ora-1
- OraSuonata=True
- EndIf
- Else
- If OraSuonata=True Then OraSuonata=False
- EndIf
-
- If StatoAllarme=On
- If Left$(OraDiOggi$,5)=OraAllarme$ Then BeepScreen 0
- WCircle XAllarme,YAllarme,RaggioCerchio,ColoreTesto
- EndIf
-
- If EventoFinestraZero<>#HaiChiusoLaFinestra Then Delay_ 50
-
- If StatoAllarme=On
- WCircle XAllarme,YAllarme,RaggioCerchio,ColoreSfondo
- RaggioCerchio+1
- If RaggioCerchio>RaggioMassimoCerchio Then RaggioCerchio=1
- EndIf
- Until EventoFinestraZero=#HaiChiusoLaFinestra
- End
-