X-Git-Url: http://Server1/repobrowser/?p=xestiacalendar%2F.git;a=blobdiff_plain;f=source%2Fwidgets%2FXCCalendarDay.cpp;h=78c16874420ee3ef7a8edc8a860f2065fdf13e71;hp=64b58e7a3f887ab66095af56d8269b438e88231a;hb=d97b5c14c651aa7dad92072e7bf192704540018c;hpb=df6ed16ac514d7b0408f609b9ff1a35aaffdb0e5 diff --git a/source/widgets/XCCalendarDay.cpp b/source/widgets/XCCalendarDay.cpp index 64b58e7..78c1687 100644 --- a/source/widgets/XCCalendarDay.cpp +++ b/source/widgets/XCCalendarDay.cpp @@ -33,16 +33,22 @@ 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)); @@ -55,12 +61,7 @@ XCCalendarDay::XCCalendarDay(wxWindow *parent, const wxString& title, const wxPo alertIcon->SetBitmap(imgAlertIcon); highPriorityIcon->SetBitmap(imgPriorityIcon); - windowSizer->AddGrowableCol(0); - windowSizer->AddGrowableRow(1); - windowSizer->SetFlexibleDirection( wxBOTH ); - windowSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - numberText = new wxStaticText(this, wxID_ANY, wxT("09"), wxDefaultPosition, wxDefaultSize, 0); + 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); @@ -70,6 +71,8 @@ XCCalendarDay::XCCalendarDay(wxWindow *parent, const wxString& title, const wxPo // Setup the scrollable section. + eventListFrame = new wxScrolledWindow(mainPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL); + Colour eventColour; eventColour.red = 40; eventColour.green = 80; eventColour.blue = 80; @@ -78,19 +81,20 @@ XCCalendarDay::XCCalendarDay(wxWindow *parent, const wxString& title, const wxPo eventListFrame->SetScrollRate(0,1); eventListFrameSizer->Fit(eventListFrame); eventListFrameSizer->Layout(); - windowSizer->Fit(this); // Setup the scroll window. - mainSectionSizer->Add(eventListFrame, 1, wxGROW | wxALL, 10); + mainSectionSizer->Add(eventListFrame, 1, wxGROW | wxALL, 5); - windowSizer->Add(topSectionSizer, 1, wxEXPAND, 5); - windowSizer->Add(mainSectionSizer, 1, wxEXPAND, 5); + topPanel->SetSizer(topSectionSizer); + mainPanel->SetSizer(mainSectionSizer); + + windowSizer->Add(topPanel, 1, wxEXPAND, 0); + windowSizer->Add(mainPanel, 1, wxEXPAND, 0); this->SetSizer(windowSizer); this->SetSize(size); this->Layout(); - this->SetBackgroundStyle(wxBG_STYLE_PAINT); this->Centre(wxBOTH); UpdateTopIcons(); @@ -134,49 +138,6 @@ XCCalendarDay::~XCCalendarDay(){ } -void XCCalendarDay::Repaint(){ - - wxPaintDC dc(this); - wxPaintDC eventListFrameDC(eventListFrame); - - // Get the wxSizerItem for the top date and the entries part. - - wxSizerItem *topSectionSizerItem = windowSizer->GetItem((size_t)0); - wxSizerItem *mainSectionSizerItem = windowSizer->GetItem((size_t)1); - wxRect topSizer = wxRect(windowSizer->GetPosition(), windowSizer->GetSize()); - - if (isInMonth == true){ - - 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()); - - } - - // Draw the border. - - //dc.SetBrush(wxBrush(wxColor(0,0,0), wxBRUSHSTYLE_TRANSPARENT)); - - this->Layout(); - -} - void XCCalendarDay::UpdateTopIcons(){ bool alarmFound = false; @@ -210,13 +171,6 @@ void XCCalendarDay::UpdateTopIcons(){ } -void XCCalendarDay::PaintFrameEvent(wxPaintEvent &paintEvent) -{ - - Repaint(); - -} - void XCCalendarDay::ResizeFrameEvent(wxSizeEvent &sizeEvent) { @@ -226,6 +180,11 @@ void XCCalendarDay::ResizeFrameEvent(wxSizeEvent &sizeEvent) // Refresh the window. this->Refresh(); + topPanel->Refresh(); + mainPanel->Refresh(); + topSectionSizer->Layout(); + mainSectionSizer->Layout(); + windowSizer->Layout(); } @@ -252,10 +211,10 @@ void XCCalendarDay::DeselectOthersEvent(wxCommandEvent &deselectEvent) 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); } @@ -299,6 +258,18 @@ void XCCalendarDay::SetupControl(int setupDay, int setupMonth, int setupYear, bo // Setup the Is In Month value. 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. @@ -384,7 +355,6 @@ void XCCalendarDay::HideAccountEntries(wxCommandEvent &accountData){ } this->Refresh(); - Repaint(); } @@ -419,7 +389,6 @@ void XCCalendarDay::ShowAccountEntries(wxCommandEvent &accountData){ } this->Refresh(); - Repaint(); } @@ -450,7 +419,6 @@ void XCCalendarDay::HideCalendarEntries(wxCommandEvent &calendarData){ } this->Refresh(); - Repaint(); } @@ -490,7 +458,6 @@ void XCCalendarDay::ShowCalendarEntries(wxCommandEvent &calendarData){ } this->Refresh(); - Repaint(); } @@ -508,12 +475,11 @@ void XCCalendarDay::DeleteCalendarEntries(wxCommandEvent &calendarData){ // 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;*/ + afterSpacer = nullptr; delete (*calendarEntryIter); deleteEntriesList.push_back(calendarEntryIter); @@ -523,7 +489,9 @@ void XCCalendarDay::DeleteCalendarEntries(wxCommandEvent &calendarData){ } this->Refresh(); - Repaint(); + mainPanel->Layout(); + eventListFrame->Layout(); + eventListFrameSizer->Layout(); for (auto deleteIter : deleteEntriesList){ calendarEntryList.erase(deleteIter); @@ -545,12 +513,8 @@ void XCCalendarDay::DeleteCalendarEntry(wxCommandEvent &eventData){ // 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); @@ -564,7 +528,9 @@ void XCCalendarDay::DeleteCalendarEntry(wxCommandEvent &eventData){ } this->Refresh(); - Repaint(); + this->Layout(); + eventListFrame->Layout(); + eventListFrameSizer->Layout(); } @@ -612,7 +578,9 @@ void XCCalendarDay::AddCalendarEntry(wxCommandEvent &eventData){ calendarEntryList.push_back(newEntry); this->Refresh(); - Repaint(); + mainPanel->Layout(); + eventListFrame->Layout(); + eventListFrameSizer->Layout(); }