Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import day_data
- from day_form import *
- import calendar
- import Tkinter
- import datetime
- # Global selection color
- select_color = "#ff5500"
- # Get the current date
- today = datetime.date.today()
- # This global lists holds the Dat_Data for the current month
- cur_days = []
- def make_cal (month, year):
- # Clear the old list of days, prepare to fill with new Day_Data objects
- global cur_days
- # TODO clear all currently existing date buttons (will be container)
- del cur_days[:]
- # Get number of days to iterate over
- mrange = calendar.monthrange(int(year), int(month))
- first_day = mrange[0]
- # Lookup table for day English names
- days = ["Sunday", "Monday", "Tuesday", "Wednesday",
- "Thursday", "Friday", "Saturday"]
- # Account for bizzare Euroweek
- if(first_day == 6):
- first_day = -1
- num_days = mrange[1]
- # Weekday labels
- for c in range(7):
- b = Tkinter.Label(root, text='%s'%(days[c]), borderwidth = 1)
- b.grid(row = 0, column = c)
- column = first_day + 1 # +1 for American offset
- row = 1
- # Populate the grid with day buttons
- for r in range(num_days):
- # Fill list of Day_Data
- padded_day = str(r + 1)
- if(len(padded_day) == 1):
- padded_day = "0" + padded_day
- cur_days.append(Day_Data(padded_day, month, year,"Dates"))
- # Fill grid with buttons
- d = Tkinter.Button(root, text = '%s\n'%(r + 1),
- borderwidth = 1, width = 9, height = 2,
- activebackground = select_color,
- command = lambda: messageWindow(root, cur_days[r]),
- bg = "#ffffff")
- if(int(today.strftime("%d")) == r + 1):
- d["text"] += "(Today)"
- d.grid(row=row,column=column)
- column += 1
- if(column > 6):
- row += 1;
- column = 0;
- Tkinter.Label(root, text = today.strftime("%x")).grid(row=num_days + 2,
- column = 0,
- columnspan = 7)
- #--------TEST DATUM--------
- #--------MAIN LOOP BEGIN--------
- root = Tkinter.Tk()
- root.title("Burnsidian Calendar Utility")
- make_cal(today.strftime("%m"), today.strftime("%Y"))
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement