home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magazyn Exec 5
/
CD_Magazyn_EXEC_nr_5.iso
/
Recent
/
dev
/
basic
/
clockita.lha
/
Orologio.text
< prev
next >
Wrap
Text File
|
2001-04-26
|
26KB
|
1,011 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,29,30 gennaio 2001
;m> 25,26 Aprile 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 LunYSchermo
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>LunYSchermo Then LunYFinestraZero=LunYSchermo
If PosYFinestraZero+LunYFinestraZero-1>LunYSchermo Then PosYFinestraZero=LunYSchermo-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 NuovoFontOrologio$
SHARED AltezzaFont
NEWTYPE .FontInfo
Nome$
Altezza.w
Stile.b
Segnalatori
PennaUno
PennaDue
ModoDisegno
Pad
End NEWTYPE
*Font.FontInfo=ASLFontRequest(0)
If *Font<>0
NuovoFontOrologio$=*Font\Nome
AltezzaFont=*Font\Altezza
EndIf
End Statement
Statement CambiaColori{}
SHARED ColoreSfondo
SHARED ColoreTesto
SHARED LunXSchermo
SHARED LunYSchermo
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>LunYSchermo Then PosYFinestraDue=LunYSchermo-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 NuovoFontOrologio$
SHARED ColoreSfondo
SHARED ColoreSfondoRegistrato
SHARED ColoreTesto
SHARED ColoreTestoRegistrato
SHARED OraAllarme$
SHARED OraDiOggi$
SHARED FontOrologio$
SHARED FontOrologioRegistrato$
SHARED AltezzaFont
SHARED AltezzaFontRegistrata
SHARED LunXFinestraZero
SHARED LunXSchermo
SHARED LunYFinestraZero
SHARED LunYSchermo
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>LunYSchermo Then PosYFinestraUno=LunYSchermo-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 Len(NuovoFontOrologio$)>0
If Right$(NuovoFontOrologio$,5)<>".font" Then NuovoFontOrologio$+".font"
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)
LunYSchermo=Peek.w(IndirizzoSchermo+14)
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