here is my inital attempt now at a calendargadget. other programming languages have them, and i am trying to make one here. its not a date time picker, but an actual calendar type object. try out the code and see how you like it.
Code: Select all
; PureBasic Visual Designer v3.82 build 1344
Global buttonpushed,GadgetID
;- Window Constants
Enumeration
#Window_0
EndEnumeration
Global Dim calendargadgetbuttons(12)
Global Dim calendargadgetbuttons1(12)
Procedure myCalendarGadget(calendarnumber,calx,caly,width,height,month$)
number=37*calendarnumber
calendargadgetbuttons(calendarnumber)=number+2
calendargadgetbuttons1(calendarnumber)=number+36
FrameGadget(number, calx, caly, 160, 160, "")
TextGadget(number+1, calx+10, caly+20,140, 20, Month$, #PB_Text_Center | #PB_Text_Border)
ButtonGadget(number+2, calx+10, caly+50, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+3, calx+30, caly+50, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+4, calx+50, caly+50, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+5, calx+70, caly+50, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+6, calx+90, caly+50, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+7, calx+110, caly+50, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+8, calx+130, caly+50, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+9, calx+10, caly+70, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+10, calx+30, caly+70, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+11, calx+50, caly+70, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+12, calx+70, caly+70, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+13, calx+90, caly+70, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+14, calx+110, caly+70, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+15, calx+130, caly+70, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+16, calx+10, caly+90, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+17, calx+30, caly+90, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+18, calx+50, caly+90, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+19, calx+70, caly+90, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+20, calx+90, caly+90, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+21, calx+110, caly+90, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+22, calx+130, caly+90, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+23, calx+10, caly+110, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+24, calx+30, caly+110, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+25, calx+50, caly+110, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+26, calx+70, caly+110, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+27, calx+90, caly+110, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+28, calx+110, caly+110, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+29, calx+130, caly+110, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+30, calx+10, caly+130, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+31, calx+30, caly+130, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+32, calx+50, caly+130, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+33, calx+70, caly+130, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+34, calx+90, caly+130, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+35, calx+110, caly+130, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(number+36, calx+130, caly+130, 20,20, "", #PB_Button_Default | #PB_Button_Toggle)
EndProcedure
Procedure ActivateCalendarGadget(NumberCalendargadget)
buttonpushed=GadgetID
For a=NumberCalendargadget*37+2 To buttonpushed-1
If GetGadgetState(a)=#True
SetGadgetState(a,#False)
Else
Continue
EndIf
Next
For a=buttonpushed+1 To NumberCalendargadget*37+36
If GetGadgetState(a)=#True
SetGadgetState(a,#False)
Else
Continue
EndIf
Next
EndProcedure
Procedure Open_Window_0()
If OpenWindow(#Window_0, 0, 0, 400, 300, "CalendarGadget version 0.000001",
#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
myCalendarGadget(0,30,60,160,160,"January")
myCalendarGadget(1,210,60,160,160,"February")
EndIf
EndProcedure
Open_Window_0()
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
GadgetID = EventGadget()
buttonpushed=GadgetID
If GadgetID >= calendargadgetbuttons(0) And GadgetID<=calendargadgetbuttons1(0)
ActivateCalendarGadget(0)
For a=calendargadgetbuttons(1) To calendargadgetbuttons1(1)
SetGadgetState(a,#False)
Next
ElseIf GadgetID >= calendargadgetbuttons(1) And GadgetID<=calendargadgetbuttons1(1)
ActivateCalendarGadget(1)
For a=calendargadgetbuttons(0) To calendargadgetbuttons1(0)
SetGadgetState(a,#False)
Next
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
Regards,