X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fwidgets%2FXCCalendarDay.cpp;h=15c8c65d3cf3ad5149b340679c601f317561d1db;hb=fb2c90465d0ac5d2d8c3657ddf99d47db5639e51;hp=6ff7175867c3cd4d698b0ed28b1e08cf8e015e4c;hpb=6c8e63ef1570701099e4f5a85115f89ae0fe9cc0;p=xestiacalendar%2F.git diff --git a/source/widgets/XCCalendarDay.cpp b/source/widgets/XCCalendarDay.cpp index 6ff7175..15c8c65 100644 --- a/source/widgets/XCCalendarDay.cpp +++ b/source/widgets/XCCalendarDay.cpp @@ -20,18 +20,17 @@ using namespace std; -BEGIN_EVENT_TABLE(XCCalendarDay, wxFrame) +BEGIN_EVENT_TABLE(XCCalendarDay, wxPanel) EVT_PAINT(XCCalendarDay::PaintFrameEvent) EVT_SIZE(XCCalendarDay::ResizeFrameEvent) -//EVT_COMMAND(wxID_ANY, XCCALENDARDAY_DESELECTOTHERENTRIES, XCCalendarDay::DeselectOthersEvent) END_EVENT_TABLE() -XCCalendarDay::XCCalendarDay(const wxString& title, const wxPoint& pos, const wxSize& size) - : wxFrame(NULL, wxID_ANY, title, pos, size) -{ - - Connect(wxID_ANY, XCCALENDARDAY_DESELECTOTHERENTRIES, wxCommandEventHandler(XCCalendarDay::DeselectOthersEvent)); +XCCalendarDay::XCCalendarDay(wxWindow *parent, const wxString& title, const wxPoint& pos, const wxSize& size) + : wxPanel(parent, wxID_ANY, pos, size, wxTAB_TRAVERSAL, title){ + Connect(wxID_ANY, XCCALENDARDAY_DESELECTOTHERENTRIES, wxCommandEventHandler(XCCalendarDay::DeselectOthersEvent)); + Connect(ID_DESELECTALLITEMS, XCCALENDARDAY_DESELECTALLENTRIES, wxCommandEventHandler(XCCalendarDay::DeselectAllEvent)); + this->SetMinSize( wxSize( 100,100 ) ); AlertIconBitmap.LoadFile("AlertIcon-32.png", wxBITMAP_DEFAULT_TYPE); @@ -140,29 +139,44 @@ 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()); - dc.SetPen(wxPen(wxColor(255,255,255), 0, wxPENSTYLE_TRANSPARENT)); - dc.DrawRectangle(TopSectionSizerItem->GetRect()); - dc.SetBrush(wxBrush(wxColor(225,225,225))); - dc.DrawRectangle(MainSectionSizerItem->GetRect()); - - // Draw the border. + if (IsInMonth == true){ - this->Layout(); + 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.SetBrush(wxBrush(wxColor(0,0,0), wxBRUSHSTYLE_TRANSPARENT)); + 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()); + + } - wxPaintDC EventListFrameDC(EventListFrame); - EventListFrameDC.SetPen(wxPen(wxColor(255,255,255), 0, wxPENSTYLE_TRANSPARENT)); - EventListFrameDC.SetBrush(wxBrush(wxColor(225,225,225))); - EventListFrameDC.DrawRectangle(EventListFrame->GetClientRect()); + // Draw the border. + //dc.SetBrush(wxBrush(wxColor(0,0,0), wxBRUSHSTYLE_TRANSPARENT)); + + this->Layout(); + } void XCCalendarDay::UpdateTopIcons(){ @@ -235,4 +249,52 @@ void XCCalendarDay::DeselectOthersEvent(wxCommandEvent &DeselectEvent) } + // Send event notification to deselect the other calendar entries. + + if (this->MonthViewPointer != nullptr){ + + wxCommandEvent DeselectEvent(XCCALENDARMONTH_DESELECTOTHERENTRIES); + DeselectEvent.SetClientData(this); + DeselectEvent.SetId(ID_MONTHVIEWCLEARSELECTION); + wxPostEvent(this->MonthViewPointer, DeselectEvent); + + } + +} + +void XCCalendarDay::DeselectAllEvent(wxCommandEvent &DeselectEvent) +{ + + int SelectedEntryID = DeselectEvent.GetInt(); + + wxCommandEvent DeselectEntryEvent(XCCALENDARDAYENTRY_DESELECT); + + for (vector::iterator EntryIter = CalendarEntryList.begin(); + EntryIter != CalendarEntryList.end(); EntryIter++){ + + wxPostEvent((*EntryIter), DeselectEntryEvent); + + } + +} + +void XCCalendarDay::SetupControl(int SetupDay, int SetupMonth, int SetupYear, bool SetupIsInMonth, XCCalendarMonthView *MonthViewPointer) +{ + + // Set the day + + NumberText->SetLabel(wxString::Format("%02i", SetupDay)); + + // Set the month + + // Set the year. + + // Setup the Is In Month value. + + IsInMonth = SetupIsInMonth; + + // Setup the month view pointer. + + this->MonthViewPointer = MonthViewPointer; + } \ No newline at end of file