BEGIN_EVENT_TABLE(XCCalendarDayEntry, wxPanel)
EVT_PAINT(XCCalendarDayEntry::PaintFrameEvent)
EVT_SIZE(XCCalendarDayEntry::ResizeFrameEvent)
-EVT_LEFT_DOWN(XCCalendarDayEntry::LeftClick)
+EVT_LEFT_UP(XCCalendarDayEntry::LeftClick)
+EVT_RIGHT_UP(XCCalendarDayEntry::RightClick)
END_EVENT_TABLE()
using namespace std;
: wxPanel(parent, wxID_ANY, pos, size, wxTAB_TRAVERSAL, title){
DayPanel = parent->GetParent();
- EntryID = id;
+ eventID = id;
this->SetMinSize(wxSize(65, 30));
EventTextData = title.mb_str();
- EventText = new wxStaticText(this, wxID_ANY, title, wxPoint(49, 8), wxDefaultSize, wxST_ELLIPSIZE_END);
+ EventText = new wxStaticText(this, wxID_ANY, title, wxPoint(49, 14), wxDefaultSize, wxST_ELLIPSIZE_END);
+ EventTime = new wxStaticText(this, wxID_ANY, wxT("Time"), wxPoint(49,3), wxDefaultSize, 0);
+
+ wxFont eventTimeFont = EventTime->GetFont();
+ eventTimeFont.MakeBold();
+ EventTime->SetFont(eventTimeFont);
wxMemoryInputStream alerticon(icons_alert_png, sizeof(icons_alert_png));
wxMemoryInputStream priorityicon(icons_priority_png, sizeof(icons_priority_png));
AlarmIcon->SetBitmap(AlarmIconBitmap);
HighPriorityIcon->SetBitmap(PriorityIconBitmap);
- Connect(wxID_ANY, XCCALENDARDAYENTRY_DESELECT, wxCommandEventHandler(XCCalendarDayEntry::Deselect));
- AlarmIcon->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(XCCalendarDayEntry::LeftClick), NULL, this);
- HighPriorityIcon->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(XCCalendarDayEntry::LeftClick), NULL, this);
- EventText->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(XCCalendarDayEntry::LeftClick), NULL, this);
-
+ Connect(ID_ENTRYDESELECT, XCCALENDARDAYENTRY_DESELECT, wxCommandEventHandler(XCCalendarDayEntry::Deselect));
+
+ AlarmIcon->Connect(wxEVT_LEFT_UP, wxMouseEventHandler(XCCalendarDayEntry::LeftClick), NULL, this);
+ HighPriorityIcon->Connect(wxEVT_LEFT_UP, wxMouseEventHandler(XCCalendarDayEntry::LeftClick), NULL, this);
+ EventText->Connect(wxEVT_LEFT_UP, wxMouseEventHandler(XCCalendarDayEntry::LeftClick), NULL, this);
+ EventTime->Connect(wxEVT_LEFT_UP, wxMouseEventHandler(XCCalendarDayEntry::LeftClick), NULL, this);
+ DayPanel->Connect(wxEVT_LEFT_UP, wxMouseEventHandler(XCCalendarDayEntry::LeftClick), NULL, this);
+
+ AlarmIcon->Connect(wxEVT_RIGHT_UP, wxMouseEventHandler(XCCalendarDayEntry::RightClick), NULL, this);
+ HighPriorityIcon->Connect(wxEVT_RIGHT_UP, wxMouseEventHandler(XCCalendarDayEntry::RightClick), NULL, this);
+ EventText->Connect(wxEVT_RIGHT_UP, wxMouseEventHandler(XCCalendarDayEntry::RightClick), NULL, this);
+ EventTime->Connect(wxEVT_RIGHT_UP, wxMouseEventHandler(XCCalendarDayEntry::RightClick), NULL, this);
+ DayPanel->Connect(wxEVT_RIGHT_UP, wxMouseEventHandler(XCCalendarDayEntry::RightClick), NULL, this);
+
UpdateInformation();
}
switch(PositionMode){
case 0:
- EventText->SetPosition(wxPoint(FirstPosition,8));
+ EventText->SetPosition(wxPoint(FirstPosition,14));
+ EventTime->SetPosition(wxPoint(FirstPosition,3));
break;
case 1:
- EventText->SetPosition(wxPoint(SecondPosition,8));
+ EventText->SetPosition(wxPoint(SecondPosition,14));
+ EventTime->SetPosition(wxPoint(FirstPosition,3));
break;
case 2:
- EventText->SetPosition(wxPoint(ThirdPosition,8));
+ EventText->SetPosition(wxPoint(ThirdPosition,14));
+ EventTime->SetPosition(wxPoint(FirstPosition,3));
break;
}
switch(PositionMode){
case 0:
EventText->SetSize(wxSize((this->GetClientRect().width - FirstPosition - 5),15));
+ EventTime->SetSize(wxSize((this->GetClientRect().width - FirstPosition - 5),15));
break;
case 1:
EventText->SetSize(wxSize((this->GetClientRect().width - SecondPosition - 5),15));
+ EventTime->SetSize(wxSize((this->GetClientRect().width - SecondPosition - 5),15));
break;
case 2:
- EventText->SetSize(wxSize((this->GetClientRect().width - ThirdPosition - 5),15));
+ EventText->SetSize(wxSize((this->GetClientRect().width - ThirdPosition - 5),14));
+ EventTime->SetSize(wxSize((this->GetClientRect().width - ThirdPosition - 5),15));
break;
}
this->SetBackgroundColour(wxColor(255,215,0));
wxCommandEvent DeselectOthersEvent(XCCALENDARDAY_DESELECTOTHERENTRIES);
- DeselectOthersEvent.SetInt(EntryID);
+ DeselectOthersEvent.SetInt(eventID);
+ DeselectOthersEvent.SetId(ID_DESELECTOTHERENTRIES);
wxPostEvent(DayPanel, DeselectOthersEvent);
}
+void XCCalendarDayEntry::RightClick(wxMouseEvent &MouseEvent){
+
+ // Sent an event to the month view control.
+
+ EventProperties *eventData = new EventProperties;
+ eventData->calendarID = calendarID;
+ eventData->eventID = eventID;
+
+ wxCommandEvent eventMenu(XCCALENDARMONTH_DISPLAYEVENTMENU);
+ eventMenu.SetClientData(eventData);
+ eventMenu.SetId(ID_DISPLAYEVENTMENU);
+ wxPostEvent(this->GetParent()->GetParent(), eventMenu);
+
+}
+
void XCCalendarDayEntry::Deselect(wxCommandEvent &DeselectEvent){
this->SetBackgroundColour(wxNullColour);
}
+void XCCalendarDayEntry::SetTime(int timeHour, int timeMinute, int timeSecond){
+
+ this->timeHour = timeHour;
+ this->timeMinute = timeMinute;
+ this->timeSecond = timeSecond;
+
+ string timeOutput = BuildEventTime(timeHour, timeMinute);
+ EventTime->SetLabel(timeOutput);
+
+}
+
void XCCalendarDayEntry::SetColour(Colour *ColourIn){
EntryColour = *ColourIn;
+ Repaint();
}
int XCCalendarDayEntry::GetID(){
- return EntryID;
+ return eventID;
+
+}
+
+int XCCalendarDayEntry::GetCalendarID(){
+
+ return calendarID;
+
+}
+
+int XCCalendarDayEntry::GetEventID(){
+
+ return eventID;
+
+}
+
+int XCCalendarDayEntry::GetAccountID(){
+
+ return accountID;
+
+}
+
+string XCCalendarDayEntry::BuildEventTime(int timeHour, int timeMinute){
+
+ string timeOutput;
+
+ if (timeHour > 12){
+
+ timeOutput += to_string(timeHour - 12);
+
+ } else if (timeHour > 0){
+
+ timeOutput += to_string(timeHour);
+
+ } else if (timeHour == 0){
+
+ timeOutput += to_string(12);
+
+ }
+
+ timeOutput += ":";
+
+ if (timeMinute < 10){
+ timeOutput += "0";
+ }
+
+ timeOutput += to_string(timeMinute);
+
+ if (timeHour < 12){
+ timeOutput += "am";
+ } else {
+ timeOutput += "pm";
+ }
+
+ return timeOutput;
+
+}
+
+void XCCalendarDayEntry::SetEntryIDs(int accountID, int calendarID, int eventID){
+
+ this->accountID = accountID;
+ this->calendarID = calendarID;
+ this->eventID = eventID;
+
+}
+
+void XCCalendarDayEntry::SetAfterSpacer(wxSizerItem *afterSpacer){
+
+ this->afterSpacer = afterSpacer;
+
+}
+
+void XCCalendarDayEntry::SetEventName(string eventName){
+
+ EventText->SetLabel((wxString)eventName);
+
+}
+
+wxSizerItem* XCCalendarDayEntry::GetAfterSpacer(){
+
+ return afterSpacer;
+
+}
+
+bool XCCalendarDayEntry::SetShowAccountStatus(bool statusInput){
+
+ showAccount = statusInput;
+
+}
+
+bool XCCalendarDayEntry::SetShowCalendarStatus(bool statusInput){
+
+ showCalendar = statusInput;
+
+}
+
+bool XCCalendarDayEntry::GetShowAccountStatus(){
+
+ return showAccount;
+
+}
+
+bool XCCalendarDayEntry::GetShowCalendarStatus(){
+
+ return showCalendar;
}
\ No newline at end of file