X-Git-Url: http://Server1/repobrowser/?p=xestiacalendar%2F.git;a=blobdiff_plain;f=source%2Fwidgets%2FXCCalendarDay.cpp;h=9af071c129ed0f31f95048aa58800e57a993305b;hp=14657b98cc307b0260f995129b143015a3de6d01;hb=a5f537628b6881c0df6a33876ab502fec5eeecbe;hpb=c5716d0f27f0f917282df9121aa97eab7a1bf6b8 diff --git a/source/widgets/XCCalendarDay.cpp b/source/widgets/XCCalendarDay.cpp index 14657b9..9af071c 100644 --- a/source/widgets/XCCalendarDay.cpp +++ b/source/widgets/XCCalendarDay.cpp @@ -20,18 +20,35 @@ using namespace std; +wxDEFINE_EVENT(XCCALENDARDAY_DESELECTOTHERENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARDAY_DESELECTALLENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARDAY_HIDEACCOUNTENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARDAY_SHOWACCOUNTENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARDAY_HIDECALENDARENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARDAY_SHOWCALENDARENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARDAY_DELETECALENDARENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARDAY_DELETEENTRY, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARDAY_ADDENTRY, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARDAY_UPDATEENTRY, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARDAY_UPDATECALENDARCOLOUR, wxCommandEvent); + BEGIN_EVENT_TABLE(XCCalendarDay, wxPanel) -EVT_PAINT(XCCalendarDay::PaintFrameEvent) -EVT_SIZE(XCCalendarDay::ResizeFrameEvent) END_EVENT_TABLE() XCCalendarDay::XCCalendarDay(wxWindow *parent, const wxString& title, const wxPoint& pos, const wxSize& size) : wxPanel(parent, wxID_ANY, pos, size, wxTAB_TRAVERSAL, title){ - this->SetMinSize( wxSize( 100,100 ) ); + // Setup the top panel. + + topPanel = new wxPanel(this, wxID_ANY, wxPoint(0,0), wxSize(50, 40), wxTAB_TRAVERSAL); + mainPanel = new wxPanel(this, wxID_ANY, wxPoint(0,0), wxSize(200, 200), wxTAB_TRAVERSAL); + // Setip the icons. + highPriorityIcon = new wxStaticBitmap(topPanel, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(32,32), 0); + alertIcon = new wxStaticBitmap(topPanel, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(32,32), 0); + wxMemoryInputStream alerticon(icons_alert32_png, sizeof(icons_alert32_png)); wxMemoryInputStream priorityicon(icons_priority32_png, sizeof(icons_priority32_png)); @@ -41,145 +58,141 @@ XCCalendarDay::XCCalendarDay(wxWindow *parent, const wxString& title, const wxPo wxImage icons_priority_png(priorityicon, wxBITMAP_TYPE_PNG); wxBitmap imgPriorityIcon(icons_priority_png, -1); - AlertIcon->SetBitmap(imgAlertIcon); - HighPriorityIcon->SetBitmap(imgPriorityIcon); - - WindowSizer->AddGrowableCol(0); - WindowSizer->AddGrowableRow(1); - WindowSizer->SetFlexibleDirection( wxBOTH ); - WindowSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + alertIcon->SetBitmap(imgAlertIcon); + highPriorityIcon->SetBitmap(imgPriorityIcon); - NumberText = new wxStaticText(this, wxID_ANY, wxT("09"), wxDefaultPosition, wxDefaultSize, 0); - NumberText->SetFont(wxFont(24, 70, 90, 92, false, wxEmptyString)); + numberText = new wxStaticText(topPanel, wxID_ANY, wxT("09"), wxDefaultPosition, wxDefaultSize, 0); + numberText->SetFont(wxFont(24, 70, 90, 92, false, wxEmptyString)); - TopSectionSizer->Add(HighPriorityIcon, 0, wxALL|wxALIGN_CENTER_VERTICAL, 0); - TopSectionSizer->Add(AlertIcon, 0, wxALL|wxALIGN_CENTER_VERTICAL, 0); - TopSectionSizer->Add(0, 0, 1, wxEXPAND, 5); - TopSectionSizer->Add(NumberText, 0, wxALL|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5); + topSectionSizer->Add(highPriorityIcon, 0, wxALL|wxALIGN_CENTER_VERTICAL, 0); + topSectionSizer->Add(alertIcon, 0, wxALL|wxALIGN_CENTER_VERTICAL, 0); + topSectionSizer->Add(0, 0, 1, wxEXPAND, 5); + topSectionSizer->Add(numberText, 0, wxALL|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5); // Setup the scrollable section. - Colour EventColour; - EventColour.red = 40; EventColour.green = 80; EventColour.blue = 80; + eventListFrame = new wxScrolledWindow(mainPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL); - EventListFrame->SetSizer(EventListFrameSizer); + Colour eventColour; + eventColour.red = 40; eventColour.green = 80; eventColour.blue = 80; + + eventListFrame->SetSizer(eventListFrameSizer); - EventListFrame->SetScrollRate(0,1); - //EventListFrameSizer->FitInside(EventListFrame); - EventListFrameSizer->Fit(EventListFrame); - EventListFrameSizer->Layout(); - WindowSizer->Fit(this); + eventListFrame->SetScrollRate(0,1); + eventListFrameSizer->Fit(eventListFrame); + eventListFrameSizer->Layout(); // Setup the scroll window. - MainSectionSizer->Add(EventListFrame, 1, wxGROW | wxALL, 10); + mainSectionSizer->Add(eventListFrame, 1, wxGROW | wxALL, 5); + + topPanel->SetSizer(topSectionSizer); + mainPanel->SetSizer(mainSectionSizer); - WindowSizer->Add(TopSectionSizer, 1, wxEXPAND, 5); - WindowSizer->Add(MainSectionSizer, 1, wxEXPAND, 5); + windowSizer->Add(topPanel, 1, wxEXPAND, 0); + windowSizer->Add(mainPanel, 1, wxEXPAND, 0); - this->SetSizer(WindowSizer); + this->SetSizer(windowSizer); this->SetSize(size); this->Layout(); - this->SetBackgroundStyle(wxBG_STYLE_PAINT); this->Centre(wxBOTH); UpdateTopIcons(); - Connect(ID_DESELECTOTHERENTRIES, XCCALENDARDAY_DESELECTOTHERENTRIES, wxCommandEventHandler(XCCalendarDay::DeselectOthersEvent)); - Connect(ID_DESELECTALLITEMS, XCCALENDARDAY_DESELECTALLENTRIES, wxCommandEventHandler(XCCalendarDay::DeselectAllEvent)); - Connect(ID_HIDEENTRIES, XCCALENDARDAY_HIDEACCOUNTENTRIES, wxCommandEventHandler(XCCalendarDay::HideAccountEntries)); - Connect(ID_SHOWENTRIES, XCCALENDARDAY_SHOWACCOUNTENTRIES, wxCommandEventHandler(XCCalendarDay::ShowAccountEntries)); - Connect(ID_HIDECALENDARENTRIES, XCCALENDARDAY_HIDECALENDARENTRIES, wxCommandEventHandler(XCCalendarDay::HideCalendarEntries)); - Connect(ID_SHOWCALENDARENTRIES, XCCALENDARDAY_SHOWCALENDARENTRIES, wxCommandEventHandler(XCCalendarDay::ShowCalendarEntries)); - Connect(ID_DELETECALENDARENTRIES, XCCALENDARDAY_DELETECALENDARENTRIES, wxCommandEventHandler(XCCalendarDay::DeleteCalendarEntries)); - Connect(ID_DELETEENTRY, XCCALENDARDAY_DELETEENTRY, wxCommandEventHandler(XCCalendarDay::DeleteCalendarEntry)); - Connect(ID_ADDENTRY, XCCALENDARDAY_ADDENTRY, wxCommandEventHandler(XCCalendarDay::AddCalendarEntry)); - Connect(ID_UPDATEENTRY, XCCALENDARDAY_UPDATEENTRY, wxCommandEventHandler(XCCalendarDay::UpdateCalendarEntry)); - Connect(ID_UPDATECOLOUR, XCCALENDARDAY_UPDATECALENDARCOLOUR, wxCommandEventHandler(XCCalendarDay::UpdateCalendarColour)); - + // Bind events to the control. + + Bind(XCCALENDARDAY_DESELECTOTHERENTRIES, &XCCalendarDay::DeselectOthersEvent, this, ID_DESELECTOTHERENTRIES); + Bind(XCCALENDARDAY_DESELECTALLENTRIES, &XCCalendarDay::DeselectAllEvent, this, ID_DESELECTALLITEMS); + Bind(XCCALENDARDAY_HIDEACCOUNTENTRIES, &XCCalendarDay::HideAccountEntries, this, ID_HIDEENTRIES); + Bind(XCCALENDARDAY_SHOWACCOUNTENTRIES, &XCCalendarDay::ShowAccountEntries, this, ID_SHOWENTRIES); + Bind(XCCALENDARDAY_HIDECALENDARENTRIES, &XCCalendarDay::HideCalendarEntries, this, ID_HIDECALENDARENTRIES); + Bind(XCCALENDARDAY_SHOWCALENDARENTRIES, &XCCalendarDay::ShowCalendarEntries, this, ID_SHOWCALENDARENTRIES); + Bind(XCCALENDARDAY_DELETECALENDARENTRIES, &XCCalendarDay::DeleteCalendarEntries, this, ID_DELETECALENDARENTRIES); + Bind(XCCALENDARDAY_DELETEENTRY, &XCCalendarDay::DeleteCalendarEntry, this, ID_DELETEENTRY); + Bind(XCCALENDARDAY_ADDENTRY, &XCCalendarDay::AddCalendarEntry, this, ID_ADDENTRY); + Bind(XCCALENDARDAY_UPDATEENTRY, &XCCalendarDay::UpdateCalendarEntry, this, ID_UPDATEENTRY); + Bind(XCCALENDARDAY_UPDATECALENDARCOLOUR, &XCCalendarDay::UpdateCalendarColour, this, ID_UPDATECOLOUR); } XCCalendarDay::~XCCalendarDay(){ // Destory the controls from the widget. - for (vector::iterator CalendarEntryIter = CalendarEntryList.begin(); - CalendarEntryIter != CalendarEntryList.end(); CalendarEntryIter++){ + Unbind(XCCALENDARDAY_DESELECTOTHERENTRIES, &XCCalendarDay::DeselectOthersEvent, this, ID_DESELECTOTHERENTRIES); + Unbind(XCCALENDARDAY_DESELECTALLENTRIES, &XCCalendarDay::DeselectAllEvent, this, ID_DESELECTALLITEMS); + Unbind(XCCALENDARDAY_HIDEACCOUNTENTRIES, &XCCalendarDay::HideAccountEntries, this, ID_HIDEENTRIES); + Unbind(XCCALENDARDAY_SHOWACCOUNTENTRIES, &XCCalendarDay::ShowAccountEntries, this, ID_SHOWENTRIES); + Unbind(XCCALENDARDAY_HIDECALENDARENTRIES, &XCCalendarDay::HideCalendarEntries, this, ID_HIDECALENDARENTRIES); + Unbind(XCCALENDARDAY_SHOWCALENDARENTRIES, &XCCalendarDay::ShowCalendarEntries, this, ID_SHOWCALENDARENTRIES); + Unbind(XCCALENDARDAY_DELETECALENDARENTRIES, &XCCalendarDay::DeleteCalendarEntries, this, ID_DELETECALENDARENTRIES); + Unbind(XCCALENDARDAY_DELETEENTRY, &XCCalendarDay::DeleteCalendarEntry, this, ID_DELETEENTRY); + Unbind(XCCALENDARDAY_ADDENTRY, &XCCalendarDay::AddCalendarEntry, this, ID_ADDENTRY); + Unbind(XCCALENDARDAY_UPDATEENTRY, &XCCalendarDay::UpdateCalendarEntry, this, ID_UPDATEENTRY); + Unbind(XCCALENDARDAY_UPDATECALENDARCOLOUR, &XCCalendarDay::UpdateCalendarColour, this, ID_UPDATECOLOUR); - delete((*CalendarEntryIter)); + for (vector::iterator calendarEntryIter = calendarEntryList.begin(); + calendarEntryIter != calendarEntryList.end(); calendarEntryIter++){ + + delete((*calendarEntryIter)); } - - CalendarEntryList.clear(); - - this->Refresh(); - -} -void XCCalendarDay::Repaint(){ + eventListFrameSizer->Clear(); - wxPaintDC dc(this); - wxPaintDC EventListFrameDC(EventListFrame); + eventListFrame->SetSizer(nullptr, true); - // Get the wxSizerItem for the top date and the entries part. + mainSectionSizer->Clear(); + topSectionSizer->Clear(); + windowSizer->Clear(); - wxSizerItem *TopSectionSizerItem = WindowSizer->GetItem((size_t)0); - wxSizerItem *MainSectionSizerItem = WindowSizer->GetItem((size_t)1); - wxRect TopSizer = wxRect(WindowSizer->GetPosition(), WindowSizer->GetSize()); + delete alertIcon; + alertIcon = nullptr; - if (IsInMonth == true){ + delete highPriorityIcon; + highPriorityIcon = nullptr; - dc.SetPen(wxPen(wxColor(255,255,255), 0, wxPENSTYLE_TRANSPARENT)); - dc.SetBrush(wxBrush(wxColor(255,255,255))); - dc.DrawRectangle(TopSectionSizerItem->GetRect()); - dc.SetBrush(wxBrush(wxColor(225,225,225))); - dc.DrawRectangle(MainSectionSizerItem->GetRect()); - EventListFrameDC.SetPen(wxPen(wxColor(255,255,255), 0, wxPENSTYLE_TRANSPARENT)); - EventListFrameDC.SetBrush(wxBrush(wxColor(225,225,225))); - EventListFrameDC.DrawRectangle(EventListFrame->GetClientRect()); - - } else { - - dc.SetPen(wxPen(wxColor(185,185,185), 0, wxPENSTYLE_TRANSPARENT)); - dc.SetBrush(wxBrush(wxColor(185,185,185))); - dc.DrawRectangle(TopSectionSizerItem->GetRect()); - dc.SetBrush(wxBrush(wxColor(155,155,155))); - dc.DrawRectangle(MainSectionSizerItem->GetRect()); - EventListFrameDC.SetPen(wxPen(wxColor(255,255,255), 0, wxPENSTYLE_TRANSPARENT)); - EventListFrameDC.SetBrush(wxBrush(wxColor(155,155,155))); - EventListFrameDC.DrawRectangle(EventListFrame->GetClientRect()); - - } + delete eventListFrame; + eventListFrame = nullptr; - // Draw the border. + delete numberText; + numberText = nullptr; - //dc.SetBrush(wxBrush(wxColor(0,0,0), wxBRUSHSTYLE_TRANSPARENT)); + delete topPanel; + topPanel = nullptr; - this->Layout(); + delete mainPanel; + mainPanel = nullptr; + + calendarEntryList.clear(); + + this->SetSizer(nullptr, true); + + monthViewPointer = nullptr; + dataStorage = nullptr; } void XCCalendarDay::UpdateTopIcons(){ - bool AlarmFound = false; - bool HighPriorityFound = false; + bool alarmFound = false; + bool highPriorityFound = false; - for (vector::iterator EntryIter = CalendarEntryList.begin(); - EntryIter != CalendarEntryList.end(); EntryIter++){ + for (vector::iterator entryIter = calendarEntryList.begin(); + entryIter != calendarEntryList.end(); entryIter++){ - if ((*EntryIter)->GetDisplayAlarm() == true){ + if ((*entryIter)->GetDisplayAlarm() == true){ - AlarmFound = true; + alarmFound = true; } - if ((*EntryIter)->GetDisplayHighPriority() == true){ + if ((*entryIter)->GetDisplayHighPriority() == true){ - HighPriorityFound = true; + highPriorityFound = true; } - if (AlarmFound == true && HighPriorityFound == true){ + if (alarmFound == true && highPriorityFound == true){ break; @@ -187,19 +200,12 @@ void XCCalendarDay::UpdateTopIcons(){ } - AlertIcon->Show(AlarmFound); - HighPriorityIcon->Show(HighPriorityFound); + alertIcon->Show(alarmFound); + highPriorityIcon->Show(highPriorityFound); } -void XCCalendarDay::PaintFrameEvent(wxPaintEvent &PaintEvent) -{ - - Repaint(); - -} - -void XCCalendarDay::ResizeFrameEvent(wxSizeEvent &SizeEvent) +void XCCalendarDay::ResizeFrameEvent(wxSizeEvent &sizeEvent) { // TODO: Check if window size is less than 120 pixels and if it is, @@ -208,87 +214,104 @@ void XCCalendarDay::ResizeFrameEvent(wxSizeEvent &SizeEvent) // Refresh the window. this->Refresh(); + topPanel->Refresh(); + mainPanel->Refresh(); + topSectionSizer->Layout(); + mainSectionSizer->Layout(); + windowSizer->Layout(); } -void XCCalendarDay::DeselectOthersEvent(wxCommandEvent &DeselectEvent) +void XCCalendarDay::DeselectOthersEvent(wxCommandEvent &deselectEvent) { - int SelectedEntryID = DeselectEvent.GetInt(); + int selectedEntryID = deselectEvent.GetInt(); - wxCommandEvent DeselectEntryEvent(XCCALENDARDAYENTRY_DESELECT); - DeselectEntryEvent.SetId(ID_ENTRYDESELECT); + wxCommandEvent deselectEntryEvent(XCCALENDARDAYENTRY_DESELECT); + deselectEntryEvent.SetId(ID_ENTRYDESELECT); - for (vector::iterator EntryIter = CalendarEntryList.begin(); - EntryIter != CalendarEntryList.end(); EntryIter++){ + for (vector::iterator entryIter = calendarEntryList.begin(); + entryIter != calendarEntryList.end(); entryIter++){ - if ((*EntryIter)->GetID() != SelectedEntryID){ + if ((*entryIter)->GetID() != selectedEntryID){ - wxPostEvent((*EntryIter), DeselectEntryEvent); + wxPostEvent((*entryIter), deselectEntryEvent); } - + } // Send event notification to deselect the other calendar entries. - if (this->MonthViewPointer != nullptr){ + if (this->monthViewPointer != nullptr){ - wxCommandEvent DeselectEvent(XCCALENDARMONTH_DESELECTOTHERENTRIES); - DeselectEvent.SetClientData(this); - DeselectEvent.SetId(ID_MONTHVIEWCLEARSELECTION); - wxPostEvent(this->MonthViewPointer, DeselectEvent); + wxCommandEvent deselectMonthEvent(XCCALENDARMONTH_DESELECTOTHERENTRIES); + deselectMonthEvent.SetClientData(this); + deselectMonthEvent.SetId(ID_MONTHVIEWCLEARSELECTION); + wxPostEvent(this->monthViewPointer, deselectMonthEvent); } } -void XCCalendarDay::DeselectAllEvent(wxCommandEvent &DeselectEvent) +void XCCalendarDay::DeselectAllEvent(wxCommandEvent &deselectEvent) { - int SelectedEntryID = DeselectEvent.GetInt(); + int selectedEntryID = deselectEvent.GetInt(); - wxCommandEvent DeselectEntryEvent(XCCALENDARDAYENTRY_DESELECT); - DeselectEntryEvent.SetId(ID_ENTRYDESELECT); + wxCommandEvent deselectEntryEvent(XCCALENDARDAYENTRY_DESELECT); + deselectEntryEvent.SetId(ID_ENTRYDESELECT); - for (vector::iterator EntryIter = CalendarEntryList.begin(); - EntryIter != CalendarEntryList.end(); EntryIter++){ + for (vector::iterator entryIter = calendarEntryList.begin(); + entryIter != calendarEntryList.end(); entryIter++){ - wxPostEvent((*EntryIter), DeselectEntryEvent); + wxPostEvent((*entryIter), deselectEntryEvent); } } -void XCCalendarDay::SetupControl(int SetupDay, int SetupMonth, int SetupYear, bool SetupIsInMonth, XCCalendarMonthView *MonthViewPointer, CalendarDataStorage *dataStorage, vector *hideAccounts, vector *hideCalendars) +void XCCalendarDay::SetupControl(int setupDay, int setupMonth, int setupYear, bool setupIsInMonth, XCCalendarMonthView *monthViewPointer, CalendarDataStorage *dataStorage, vector *hideAccounts, vector *hideCalendars) { this->dataStorage = dataStorage; // Set the day - NumberText->SetLabel(wxString::Format("%02i", SetupDay)); - calendarDay = SetupDay; + numberText->SetLabel(wxString::Format("%02i", setupDay)); + calendarDay = setupDay; // Set the month - calendarMonth = SetupMonth; + calendarMonth = setupMonth; // Set the year. - calendarYear = SetupYear; + calendarYear = setupYear; // Setup the Is In Month value. - IsInMonth = SetupIsInMonth; + isInMonth = setupIsInMonth; + if (isInMonth) + { + topPanel->SetBackgroundColour(wxColor(255,255,255)); + mainPanel->SetBackgroundColour(wxColor(225,225,225)); + eventListFrame->SetBackgroundColour(wxColor(225,225,225)); + } + else + { + topPanel->SetBackgroundColour(wxColor(185,185,185)); + mainPanel->SetBackgroundColour(wxColor(155,155,155)); + eventListFrame->SetBackgroundColour(wxColor(155,155,155)); + } // Setup the month view pointer. - this->MonthViewPointer = MonthViewPointer; + this->monthViewPointer = monthViewPointer; // Setup the calendar items. - CDSEntryList calendarItems = dataStorage->GetEventListByDate(SetupYear, SetupMonth, SetupDay); + CDSEntryList calendarItems = dataStorage->GetEventListByDate(setupYear, setupMonth, setupDay); for (int entrySeek = 0; entrySeek < calendarItems.entryList.size(); entrySeek++){ @@ -299,14 +322,14 @@ void XCCalendarDay::SetupControl(int SetupDay, int SetupMonth, int SetupYear, bo // Setup the calendar entry. - XCCalendarDayEntry *newEntry = new XCCalendarDayEntry(EventListFrame, newEntryInfo.entryName, wxDefaultPosition, wxDefaultSize, calendarItems.entryList[entrySeek]); + XCCalendarDayEntry *newEntry = new XCCalendarDayEntry(eventListFrame, newEntryInfo.entryName, wxDefaultPosition, wxDefaultSize, calendarItems.entryList[entrySeek]); newEntry->SetColour(&newEntryCalendarInfo.calendarColour); newEntry->SetTime(newEntryInfo.entryStartHour, newEntryInfo.entryStartMinute, newEntryInfo.entryStartSecond); newEntry->SetEntryIDs(newEntryCalendarInfo.accountID, newEntryInfo.calendarID, newEntryInfo.calendarEntryID); - EventListFrameSizer->Add(newEntry, 0, wxEXPAND, 5); - wxSizerItem *afterSpacer = EventListFrameSizer->Add(0, 5, 0, 0, 5); + eventListFrameSizer->Add(newEntry, 0, wxEXPAND, 5); + wxSizerItem *afterSpacer = eventListFrameSizer->Add(0, 5, 0, 0, 5); newEntry->SetAfterSpacer(afterSpacer); @@ -334,7 +357,7 @@ void XCCalendarDay::SetupControl(int SetupDay, int SetupMonth, int SetupYear, bo } - CalendarEntryList.push_back(newEntry); + calendarEntryList.push_back(newEntry); } } @@ -346,19 +369,19 @@ void XCCalendarDay::HideAccountEntries(wxCommandEvent &accountData){ int sizerPosition = 0; - for (vector::iterator CalendarEntryIter = CalendarEntryList.begin(); - CalendarEntryIter != CalendarEntryList.end(); CalendarEntryIter++){ + for (vector::iterator calendarEntryIter = calendarEntryList.begin(); + calendarEntryIter != calendarEntryList.end(); calendarEntryIter++){ - (*CalendarEntryIter)->SetShowAccountStatus(false); + (*calendarEntryIter)->SetShowAccountStatus(false); - if ((*CalendarEntryIter)->GetAccountID() == accountData.GetInt()){ + if ((*calendarEntryIter)->GetAccountID() == accountData.GetInt()){ - wxSizerItem *calendarItem = EventListFrameSizer->GetItem((*CalendarEntryIter)); - (*CalendarEntryIter)->Show(false); + wxSizerItem *calendarItem = eventListFrameSizer->GetItem((*calendarEntryIter)); + (*calendarEntryIter)->Show(false); // Get the spacing and hide it as well. - wxSizerItem *afterSpacer = (*CalendarEntryIter)->GetAfterSpacer(); + wxSizerItem *afterSpacer = (*calendarEntryIter)->GetAfterSpacer(); afterSpacer->Show(false); } @@ -366,7 +389,6 @@ void XCCalendarDay::HideAccountEntries(wxCommandEvent &accountData){ } this->Refresh(); - Repaint(); } @@ -377,31 +399,30 @@ void XCCalendarDay::ShowAccountEntries(wxCommandEvent &accountData){ int sizerPosition = 0; - for (vector::iterator CalendarEntryIter = CalendarEntryList.begin(); - CalendarEntryIter != CalendarEntryList.end(); CalendarEntryIter++){ + for (vector::iterator calendarEntryIter = calendarEntryList.begin(); + calendarEntryIter != calendarEntryList.end(); calendarEntryIter++){ - (*CalendarEntryIter)->SetShowAccountStatus(true); + (*calendarEntryIter)->SetShowAccountStatus(true); - if ((*CalendarEntryIter)->GetShowCalendarStatus() == false){ + if ((*calendarEntryIter)->GetShowCalendarStatus() == false){ continue; } - if ((*CalendarEntryIter)->GetAccountID() == accountData.GetInt()){ + if ((*calendarEntryIter)->GetAccountID() == accountData.GetInt()){ - wxSizerItem *calendarItem = EventListFrameSizer->GetItem((*CalendarEntryIter)); - (*CalendarEntryIter)->Show(true); + wxSizerItem *calendarItem = eventListFrameSizer->GetItem((*calendarEntryIter)); + (*calendarEntryIter)->Show(true); // Get the spacing and hide it as well. - wxSizerItem *afterSpacer = (*CalendarEntryIter)->GetAfterSpacer(); + wxSizerItem *afterSpacer = (*calendarEntryIter)->GetAfterSpacer(); afterSpacer->Show(true); } - + } this->Refresh(); - Repaint(); } @@ -412,19 +433,19 @@ void XCCalendarDay::HideCalendarEntries(wxCommandEvent &calendarData){ int sizerPosition = 0; - for (vector::iterator CalendarEntryIter = CalendarEntryList.begin(); - CalendarEntryIter != CalendarEntryList.end(); CalendarEntryIter++){ + for (vector::iterator calendarEntryIter = calendarEntryList.begin(); + calendarEntryIter != calendarEntryList.end(); calendarEntryIter++){ - if ((*CalendarEntryIter)->GetCalendarID() == calendarData.GetInt()){ + if ((*calendarEntryIter)->GetCalendarID() == calendarData.GetInt()){ - (*CalendarEntryIter)->SetShowCalendarStatus(false); + (*calendarEntryIter)->SetShowCalendarStatus(false); - wxSizerItem *calendarItem = EventListFrameSizer->GetItem((*CalendarEntryIter)); - (*CalendarEntryIter)->Show(false); + wxSizerItem *calendarItem = eventListFrameSizer->GetItem((*calendarEntryIter)); + (*calendarEntryIter)->Show(false); // Get the spacing and hide it as well. - wxSizerItem *afterSpacer = (*CalendarEntryIter)->GetAfterSpacer(); + wxSizerItem *afterSpacer = (*calendarEntryIter)->GetAfterSpacer(); afterSpacer->Show(false); } @@ -432,7 +453,6 @@ void XCCalendarDay::HideCalendarEntries(wxCommandEvent &calendarData){ } this->Refresh(); - Repaint(); } @@ -443,14 +463,14 @@ void XCCalendarDay::ShowCalendarEntries(wxCommandEvent &calendarData){ int sizerPosition = 0; - for (vector::iterator CalendarEntryIter = CalendarEntryList.begin(); - CalendarEntryIter != CalendarEntryList.end(); CalendarEntryIter++){ + for (vector::iterator calendarEntryIter = calendarEntryList.begin(); + calendarEntryIter != calendarEntryList.end(); calendarEntryIter++){ - if ((*CalendarEntryIter)->GetCalendarID() == calendarData.GetInt()){ + if ((*calendarEntryIter)->GetCalendarID() == calendarData.GetInt()){ - (*CalendarEntryIter)->SetShowCalendarStatus(true); + (*calendarEntryIter)->SetShowCalendarStatus(true); - if ((*CalendarEntryIter)->GetShowAccountStatus() == false){ + if ((*calendarEntryIter)->GetShowAccountStatus() == false){ // Don't show the calendar entry because the account status // is set to hidden. Continue to the next one. @@ -459,12 +479,12 @@ void XCCalendarDay::ShowCalendarEntries(wxCommandEvent &calendarData){ } - wxSizerItem *calendarItem = EventListFrameSizer->GetItem((*CalendarEntryIter)); - (*CalendarEntryIter)->Show(true); + wxSizerItem *calendarItem = eventListFrameSizer->GetItem((*calendarEntryIter)); + (*calendarEntryIter)->Show(true); // Get the spacing and hide it as well. - wxSizerItem *afterSpacer = (*CalendarEntryIter)->GetAfterSpacer(); + wxSizerItem *afterSpacer = (*calendarEntryIter)->GetAfterSpacer(); afterSpacer->Show(true); } @@ -472,81 +492,83 @@ void XCCalendarDay::ShowCalendarEntries(wxCommandEvent &calendarData){ } this->Refresh(); - Repaint(); } void XCCalendarDay::DeleteCalendarEntries(wxCommandEvent &calendarData){ - vector::iterator> DeleteEntriesList; + vector::iterator> deleteEntriesList; - for (vector::iterator CalendarEntryIter = CalendarEntryList.begin(); - CalendarEntryIter != CalendarEntryList.end(); CalendarEntryIter++){ + for (vector::iterator calendarEntryIter = calendarEntryList.begin(); + calendarEntryIter != calendarEntryList.end(); calendarEntryIter++){ - if ((*CalendarEntryIter)->GetCalendarID() == calendarData.GetInt()){ + if ((*calendarEntryIter)->GetCalendarID() == calendarData.GetInt()){ - wxSizerItem *calendarItem = EventListFrameSizer->GetItem((*CalendarEntryIter)); - (*CalendarEntryIter)->Show(false); + wxSizerItem *calendarItem = eventListFrameSizer->GetItem((*calendarEntryIter)); + (*calendarEntryIter)->Show(false); // Get the spacing and hide it as well. - wxSizerItem *afterSpacer = (*CalendarEntryIter)->GetAfterSpacer(); + wxSizerItem *afterSpacer = (*calendarEntryIter)->GetAfterSpacer(); afterSpacer->Show(false); - afterSpacer->DetachSizer(); delete afterSpacer; afterSpacer = nullptr; - delete (*CalendarEntryIter); - DeleteEntriesList.push_back(CalendarEntryIter); + delete (*calendarEntryIter); + deleteEntriesList.push_back(calendarEntryIter); } } this->Refresh(); - Repaint(); - - for (auto DeleteIter : DeleteEntriesList){ - CalendarEntryList.erase(DeleteIter); + mainPanel->Layout(); + + for (auto deleteIter : deleteEntriesList) { + calendarEntryList.erase(deleteIter); } - + + if (calendarEntryList.size() > 0) + { + eventListFrame->Layout(); + eventListFrameSizer->Layout(); + } + } void XCCalendarDay::DeleteCalendarEntry(wxCommandEvent &eventData){ - vector::iterator> DeleteEntriesList; + vector::iterator> deleteEntriesList; - for (vector::iterator CalendarEntryIter = CalendarEntryList.begin(); - CalendarEntryIter != CalendarEntryList.end(); CalendarEntryIter++){ + for (vector::iterator calendarEntryIter = calendarEntryList.begin(); + calendarEntryIter != calendarEntryList.end(); calendarEntryIter++){ - if ((*CalendarEntryIter)->GetEventID() == eventData.GetInt()){ + if ((*calendarEntryIter)->GetEventID() == eventData.GetInt()){ - wxSizerItem *calendarItem = EventListFrameSizer->GetItem((*CalendarEntryIter)); - (*CalendarEntryIter)->Show(false); + wxSizerItem *calendarItem = eventListFrameSizer->GetItem((*calendarEntryIter)); + (*calendarEntryIter)->Show(false); // Get the spacing and hide it as well. - wxSizerItem *afterSpacer = (*CalendarEntryIter)->GetAfterSpacer(); + wxSizerItem *afterSpacer = (*calendarEntryIter)->GetAfterSpacer(); afterSpacer->Show(false); - afterSpacer->DetachSizer(); - delete afterSpacer; - afterSpacer = nullptr; - - delete (*CalendarEntryIter); - DeleteEntriesList.push_back(CalendarEntryIter); + delete (*calendarEntryIter); + deleteEntriesList.push_back(calendarEntryIter); } } - for (auto DeleteIter : DeleteEntriesList){ - CalendarEntryList.erase(DeleteIter); + for (auto deleteIter : deleteEntriesList){ + calendarEntryList.erase(deleteIter); } this->Refresh(); - Repaint(); + this->Layout(); + eventListFrame->Layout(); + eventListFrameSizer->Layout(); } @@ -554,7 +576,8 @@ void XCCalendarDay::AddCalendarEntry(wxCommandEvent &eventData){ EventProperties *eventInfo = (EventProperties*)eventData.GetClientData(); - XCCalendarDayEntry *newEntry = new XCCalendarDayEntry(EventListFrame, eventInfo->eventName, wxDefaultPosition, wxDefaultSize, eventInfo->eventID); + // TODO: Fix conversion from string to wxString + XCCalendarDayEntry *newEntry = new XCCalendarDayEntry(eventListFrame, wxString(eventInfo->eventName.c_str(), wxConvUTF8), wxDefaultPosition, wxDefaultSize, eventInfo->eventID); CDSGetCalendarInfo calendarInfo = dataStorage->GetCalendar(eventInfo->calendarID); @@ -562,8 +585,8 @@ void XCCalendarDay::AddCalendarEntry(wxCommandEvent &eventData){ newEntry->SetTime(eventInfo->eventHour, eventInfo->eventMinute, eventInfo->eventSecond); newEntry->SetEntryIDs(calendarInfo.accountID, eventInfo->calendarID, eventInfo->eventID); - EventListFrameSizer->Add(newEntry, 0, wxEXPAND, 5); - wxSizerItem *afterSpacer = EventListFrameSizer->Add(0, 5, 0, 0, 5); + eventListFrameSizer->Add(newEntry, 0, wxEXPAND, 5); + wxSizerItem *afterSpacer = eventListFrameSizer->Add(0, 5, 0, 0, 5); newEntry->SetAfterSpacer(afterSpacer); @@ -591,10 +614,12 @@ void XCCalendarDay::AddCalendarEntry(wxCommandEvent &eventData){ } - CalendarEntryList.push_back(newEntry); + calendarEntryList.push_back(newEntry); this->Refresh(); - Repaint(); + mainPanel->Layout(); + eventListFrame->Layout(); + eventListFrameSizer->Layout(); } @@ -605,14 +630,13 @@ void XCCalendarDay::UpdateCalendarEntry(wxCommandEvent &eventData){ EventProperties *eventInfo = (EventProperties*)eventData.GetClientData(); - for (vector::iterator CalendarEntryIter = CalendarEntryList.begin(); - CalendarEntryIter != CalendarEntryList.end(); CalendarEntryIter++){ + for (vector::iterator calendarEntryIter = calendarEntryList.begin(); + calendarEntryIter != calendarEntryList.end(); calendarEntryIter++){ - if ((*CalendarEntryIter)->GetEventID() == eventInfo->eventID){ - - (*CalendarEntryIter)->SetEventName(eventInfo->eventName); - (*CalendarEntryIter)->SetTime(eventInfo->eventHour, eventInfo->eventMinute, eventInfo->eventSecond); + if ((*calendarEntryIter)->GetEventID() == eventInfo->eventID){ + (*calendarEntryIter)->SetEventName(eventInfo->eventName); + (*calendarEntryIter)->SetTime(eventInfo->eventHour, eventInfo->eventMinute, eventInfo->eventSecond); } @@ -630,12 +654,12 @@ void XCCalendarDay::UpdateCalendarColour(wxCommandEvent &colourData){ ColourUpdateProperties *colourInfo = (ColourUpdateProperties*)colourData.GetClientData(); - for (vector::iterator CalendarEntryIter = CalendarEntryList.begin(); - CalendarEntryIter != CalendarEntryList.end(); CalendarEntryIter++){ + for (vector::iterator calendarEntryIter = calendarEntryList.begin(); + calendarEntryIter != calendarEntryList.end(); calendarEntryIter++){ - if ((*CalendarEntryIter)->GetCalendarID() == colourInfo->calendarID){ + if ((*calendarEntryIter)->GetCalendarID() == colourInfo->calendarID){ - (*CalendarEntryIter)->SetColour(&colourInfo->newColour); + (*calendarEntryIter)->SetColour(&colourInfo->newColour); }