event_map.rs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. use std::sync::Arc;
  2. use strum_macros::Display;
  3. use flowy_derive::{Flowy_Event, ProtoBuf_Enum};
  4. use lib_dispatch::prelude::AFPlugin;
  5. use crate::{
  6. event_handler::{
  7. apply_action_handler, close_document_handler, create_document_handler, open_document_handler,
  8. },
  9. manager::DocumentManager,
  10. };
  11. pub fn init(document_manager: Arc<DocumentManager>) -> AFPlugin {
  12. let mut plugin = AFPlugin::new()
  13. .name(env!("CARGO_PKG_NAME"))
  14. .state(document_manager);
  15. plugin = plugin.event(DocumentEvent2::OpenDocument, open_document_handler);
  16. plugin = plugin.event(DocumentEvent2::CloseDocument, close_document_handler);
  17. plugin = plugin.event(DocumentEvent2::ApplyAction, apply_action_handler);
  18. plugin = plugin.event(DocumentEvent2::CreateDocument, create_document_handler);
  19. plugin
  20. }
  21. #[derive(Debug, Clone, PartialEq, Eq, Hash, Display, ProtoBuf_Enum, Flowy_Event)]
  22. #[event_err = "FlowyError"]
  23. pub enum DocumentEvent2 {
  24. #[event(input = "OpenDocumentPayloadPBV2", output = "DocumentDataPB2")]
  25. OpenDocument = 0,
  26. #[event(input = "CloseDocumentPayloadPBV2")]
  27. CloseDocument = 1,
  28. #[event(input = "ApplyActionPayloadPBV2")]
  29. ApplyAction = 2,
  30. #[event(input = "CreateDocumentPayloadPBV2")]
  31. CreateDocument = 3,
  32. }