X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fwidgets%2FXCCalendarDayEntry.cpp;h=d2d948305fa97ea5965be7579c35154f53c8f81f;hb=baa27c175ee6111fd4b88a3c53614a9b6be3541e;hp=f5f31b4d73819b02bb0da2d1bb0dd8b1756d49b3;hpb=bdc05156983bccd8f7ad725c612280a46b612876;p=xestiacalendar%2F.git diff --git a/source/widgets/XCCalendarDayEntry.cpp b/source/widgets/XCCalendarDayEntry.cpp index f5f31b4..d2d9483 100644 --- a/source/widgets/XCCalendarDayEntry.cpp +++ b/source/widgets/XCCalendarDayEntry.cpp @@ -27,24 +27,39 @@ END_EVENT_TABLE() using namespace std; XCCalendarDayEntry::XCCalendarDayEntry(wxWindow* parent, const wxString& title, const wxPoint& pos, const wxSize& size, const int id) - : wxPanel(parent, wxID_ANY, pos, size, wxTAB_TRAVERSAL, title) -{ - - Connect(wxID_ANY, XCCALENDARDAYENTRY_DESELECT, wxCommandEventHandler(XCCalendarDayEntry::Deselect)); + : wxPanel(parent, wxID_ANY, pos, size, wxTAB_TRAVERSAL, title){ DayPanel = parent->GetParent(); - EntryID = id; + entryID = id; this->SetMinSize(wxSize(65, 30)); EventTextData = title.mb_str(); - EventText = new wxStaticText(this, wxID_ANY, title, wxPoint(49, 8), wxDefaultSize, wxST_ELLIPSIZE_END); - - AlarmIconBitmap.LoadFile("AlertIcon.png", wxBITMAP_DEFAULT_TYPE); - PriorityIconBitmap.LoadFile("PriorityIcon.png", wxBITMAP_DEFAULT_TYPE); + 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)); + + wxImage icons_alert_png(alerticon, wxBITMAP_TYPE_PNG); + AlarmIconBitmap = wxBitmap(icons_alert_png, -1); + wxImage icons_priority_png(priorityicon, wxBITMAP_TYPE_PNG); + PriorityIconBitmap = wxBitmap(icons_priority_png, -1); + AlarmIcon->SetBitmap(AlarmIconBitmap); HighPriorityIcon->SetBitmap(PriorityIconBitmap); + + 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); UpdateInformation(); @@ -132,39 +147,43 @@ void XCCalendarDayEntry::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; } } -void XCCalendarDayEntry::PaintFrameEvent(wxPaintEvent &PaintEvent) -{ +void XCCalendarDayEntry::PaintFrameEvent(wxPaintEvent &PaintEvent){ Repaint(); } -void XCCalendarDayEntry::ResizeFrameEvent(wxSizeEvent &SizeEvent) -{ +void XCCalendarDayEntry::ResizeFrameEvent(wxSizeEvent &SizeEvent){ // Adjust the Event text so it is displayed properly. 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; } @@ -174,15 +193,15 @@ void XCCalendarDayEntry::ResizeFrameEvent(wxSizeEvent &SizeEvent) } -void XCCalendarDayEntry::LeftClick(wxMouseEvent &MouseEvent) -{ +void XCCalendarDayEntry::LeftClick(wxMouseEvent &MouseEvent){ // Change the background of the widget to mark // the entry as selected. this->SetBackgroundColour(wxColor(255,215,0)); wxCommandEvent DeselectOthersEvent(XCCALENDARDAY_DESELECTOTHERENTRIES); - DeselectOthersEvent.SetInt(EntryID); + DeselectOthersEvent.SetInt(entryID); + DeselectOthersEvent.SetId(ID_DESELECTOTHERENTRIES); wxPostEvent(DayPanel, DeselectOthersEvent); } @@ -193,9 +212,21 @@ void XCCalendarDayEntry::Deselect(wxCommandEvent &DeselectEvent){ } +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(); } @@ -227,6 +258,98 @@ bool XCCalendarDayEntry::GetDisplayHighPriority(){ int XCCalendarDayEntry::GetID(){ - return EntryID; + return entryID; + +} + +int XCCalendarDayEntry::GetCalendarID(){ + + return calendarID; + +} + +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 entryID){ + + this->accountID = accountID; + this->calendarID = calendarID; + this->entryID = entryID; + +} + +void XCCalendarDayEntry::SetAfterSpacer(wxSizerItem *afterSpacer){ + + this->afterSpacer = afterSpacer; + +} + +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