X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;ds=sidebyside;f=source%2Fwidgets%2FXCCalendarListCalendarCtrl.cpp;h=3729231539ae7090255d869fadae95af1370a382;hb=c5716d0f27f0f917282df9121aa97eab7a1bf6b8;hp=bdf1b6a8411253f22d47b39bdc3980a477c04df8;hpb=339434b90a0a03c3102b82a5dc45334b338bc59c;p=xestiacalendar%2F.git diff --git a/source/widgets/XCCalendarListCalendarCtrl.cpp b/source/widgets/XCCalendarListCalendarCtrl.cpp index bdf1b6a..3729231 100644 --- a/source/widgets/XCCalendarListCalendarCtrl.cpp +++ b/source/widgets/XCCalendarListCalendarCtrl.cpp @@ -30,8 +30,6 @@ XCCalendarListCalendarCtrl::XCCalendarListCalendarCtrl(wxWindow* parent, string // Setup the checkbox. - //chkShowAll = new wxCheckBox(); - chkShowCalendar = new wxCheckBox(this, wxID_ANY, "", wxPoint(0,0), wxDefaultSize, wxCHK_3STATE, wxDefaultValidator, ""); // Setup the label. @@ -43,6 +41,12 @@ XCCalendarListCalendarCtrl::XCCalendarListCalendarCtrl(wxWindow* parent, string pnlColour = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(16,16), 0, ""); pnlColour->SetBackgroundColour(wxColour(calendarColour.red, calendarColour.green, calendarColour.blue, calendarColour.alpha)); + // Setup the popup menu. + + calendarMenu = new XCCalendarMenu(); + calendarMenu->SetWindowPointer(this); + calendarMenu->SetPopupPointer((wxPopupTransientWindow*)this->GetParent()); + // Connect them to the sizer. szrMain->Add(15, 0, 0, 0, 5); @@ -50,6 +54,15 @@ XCCalendarListCalendarCtrl::XCCalendarListCalendarCtrl(wxWindow* parent, string szrMain->Add(lblCalendarName, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5); szrMain->Add(pnlColour, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); + // Connect the events to the controls. + + chkShowCalendar->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxMouseEventHandler(XCCalendarListCalendarCtrl::ShowAllCheckboxClick), NULL, this); + chkShowCalendar->Connect(wxEVT_RIGHT_UP, wxMouseEventHandler(XCCalendarListCalendarCtrl::PopupMenu), NULL, this); + lblCalendarName->Connect(wxEVT_RIGHT_UP, wxMouseEventHandler(XCCalendarListCalendarCtrl::PopupMenu), NULL, this); + pnlColour->Connect(wxEVT_RIGHT_UP, wxMouseEventHandler(XCCalendarListCalendarCtrl::PopupMenu), NULL, this); + Connect(wxEVT_RIGHT_UP, wxMouseEventHandler(XCCalendarListCalendarCtrl::PopupMenu), NULL, this); + chkShowCalendar->SetValue(wxCHK_CHECKED); + } XCCalendarListCalendarCtrl::~XCCalendarListCalendarCtrl(){ @@ -57,3 +70,67 @@ XCCalendarListCalendarCtrl::~XCCalendarListCalendarCtrl(){ // Delete the controls. } + +wxCheckBoxState XCCalendarListCalendarCtrl::GetShowCheckboxState(){ + + return chkShowCalendar->Get3StateValue(); + +} + +int XCCalendarListCalendarCtrl::GetCalendarID(){ + + return calendarID; + +} + +void XCCalendarListCalendarCtrl::SetCalendarID(int calendarID){ + + this->calendarID = calendarID; + calendarMenu->SetCalendarID(this->calendarID); + +} + +void XCCalendarListCalendarCtrl::SetAccountPreferencesID(int accountPreferencesID){ + + this->accountPreferencesID = accountPreferencesID; + calendarMenu->SetAccountPreferencesID(this->accountPreferencesID); + +} + +void XCCalendarListCalendarCtrl::ShowAllCheckboxClick( wxMouseEvent &mouseEvent ){ + + if (chkShowCalendar->Get3StateValue() == wxCHK_CHECKED){ + + wxCommandEvent event(XCCALENDARCTRL_SHOWCALENDARENTRIES); + event.SetInt(calendarID); + event.SetId(ID_SHOWCALENDARENTRIES); + wxPostEvent(this->GetParent()->GetParent()->GetParent(), event); + + } else { + + wxCommandEvent event(XCCALENDARCTRL_HIDECALENDARENTRIES); + event.SetInt(calendarID); + event.SetId(ID_HIDECALENDARENTRIES); + wxPostEvent(this->GetParent()->GetParent()->GetParent(), event); + + } + +} + +void XCCalendarListCalendarCtrl::SetCheckBoxValue(wxCheckBoxState newValue){ + + if (newValue == wxCHK_CHECKED){ + showCalendar = true; + } else { + showCalendar = false; + } + + chkShowCalendar->SetValue(newValue); + +} + +void XCCalendarListCalendarCtrl::PopupMenu( wxMouseEvent &mouseEvent ){ + + this->GetParent()->GetParent()->GetParent()->GetParent()->PopupMenu(calendarMenu->MenuPointer(), wxDefaultPosition); + +} \ No newline at end of file