def on_menu_event_activate(self, widget):
     ew = EventWindow(self.googlecalendar.calendars.values(),
                      widget.get_event())
     if ew.run() == Gtk.ResponseType.ACCEPT:
         if ew.get_operation() == 'DELETE':
             ew.destroy()
             md = Gtk.MessageDialog(
                 parent=None,
                 flags=Gtk.DialogFlags.MODAL
                 | Gtk.DialogFlags.DESTROY_WITH_PARENT,
                 type=Gtk.MessageType.ERROR,
                 buttons=Gtk.ButtonsType.OK_CANCEL,
                 message_format=_(
                     'Are you sure you want to revove this event?'))
             if md.run() == Gtk.ResponseType.OK:
                 md.destroy()
                 event = widget.get_event()
                 if self.googlecalendar.remove_event(
                         event['calendar_id'], event['id']):
                     self.googlecalendar.calendars[
                         event['calendar_id']]['events'].pop(
                             event['id'], True)
                     self.update_menu(check=True)
             md.destroy()
         elif ew.get_operation() == 'EDIT':
             event = widget.get_event()
             event_id = event['id']
             calendar_id = ew.get_calendar_id()
             summary = ew.get_summary()
             start_date = ew.get_start_date()
             end_date = ew.get_end_date()
             description = ew.get_description()
             ew.destroy()
             md = Gtk.MessageDialog(
                 parent=None,
                 flags=Gtk.DialogFlags.MODAL
                 | Gtk.DialogFlags.DESTROY_WITH_PARENT,
                 type=Gtk.MessageType.ERROR,
                 buttons=Gtk.ButtonsType.OK_CANCEL,
                 message_format=_(
                     'Are you sure you want to edit this event?'))
             if md.run() == Gtk.ResponseType.OK:
                 md.destroy()
                 edit_event = self.googlecalendar.edit_event(
                     calendar_id, event_id, summary, start_date, end_date,
                     description)
                 if edit_event is not None:
                     self.googlecalendar.calendars[calendar_id]['events'][
                         edit_event['id']] = edit_event
                     self.update_menu(check=True)
             md.destroy()
     ew.destroy()
	def on_menu_add_new_event(self,widget):
		ew = EventWindow(self.googlecalendar.calendars.values())
		if ew.run() == Gtk.ResponseType.ACCEPT:
			calendar_id = ew.get_calendar_id()
			summary = ew.get_summary()
			start_date = ew.get_start_date()
			end_date = ew.get_end_date()
			description = ew.get_description()
			ew.destroy()
			new_event = self.googlecalendar.add_event(calendar_id, summary, start_date, end_date, description)
			if new_event is not None:
				self.googlecalendar.calendars[calendar_id]['events'][new_event['id']] = new_event
				self.update_menu(check=True)
		ew.destroy()
    def on_button_released_event(self, widget, key):
        if self.calendars is not None:
            selection = widget.get_selection()
            if selection is not None:
                amodel, aiter = selection.get_selected()
                if amodel is not None and aiter is not None:
                    aevent = amodel.get_value(aiter, 1)
                    ew = EventWindow(self.calendars, aevent)
                    if ew.run() == Gtk.ResponseType.ACCEPT:
                        if ew.get_operation() == 'DELETE':
                            ew.destroy()
                            md = Gtk.MessageDialog(
                                parent=None,
                                flags=Gtk.DialogFlags.MODAL |
                                Gtk.DialogFlags.DESTROY_WITH_PARENT,
                                type=Gtk.MessageType.ERROR,
                                buttons=Gtk.ButtonsType.OK_CANCEL,
                                message_format=_(
                                    'Are you sure you want to revove this \
event?'))
                            if md.run() == Gtk.ResponseType.OK:
                                md.destroy()
                                if self.googlecalendar.remove_event(
                                        aevent['calendar_id'], aevent['id']):
                                    self.googlecalendar.calendars[
                                        aevent['calendar_id']]['events'].pop(
                                            aevent['id'], True)
                                    self.emit('edited')
                                    self.callback()
                            md.destroy()
                        elif ew.get_operation() == 'EDIT':
                            event_id = aevent['id']
                            calendar_id = ew.get_calendar_id()
                            summary = ew.get_summary()
                            start_date = ew.get_start_date()
                            end_date = ew.get_end_date()
                            description = ew.get_description()
                            ew.destroy()
                            md = Gtk.MessageDialog(
                                parent=None,
                                flags=Gtk.DialogFlags.MODAL |
                                Gtk.DialogFlags.DESTROY_WITH_PARENT,
                                type=Gtk.MessageType.ERROR,
                                buttons=Gtk.ButtonsType.OK_CANCEL,
                                message_format=_('Are you sure you want to \
edit this event?'))
                            if md.run() == Gtk.ResponseType.OK:
                                md.destroy()
                                edit_event = self.googlecalendar.edit_event(
                                    calendar_id, event_id, summary,
                                    start_date, end_date, description)
                                if edit_event is not None:
                                    self.googlecalendar.calendars[
                                        calendar_id]['events'][
                                        edit_event['id']] = edit_event
                                    self.emit('edited')
                                    self.callback()
                            md.destroy()
                    ew.destroy()
                selection.unselect_all()
            else:
                print(widget)