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_CloseWindowRegards,









