org.gnome.Notes.svg

Notes

Simple note editor


AS IS

Everything is coded in C. Bijiben is divided in two parts:

  • libbiji is the internal lib to provide notes abstraction; and
  • bjb is the UI

libbiji

  • manager handles the providers (actually it's a bit more).
  • provider (backend), there are three of them:
    • local == local files (xml for metadata + xhtml for content);
    • ownCloud == webdav files (plain text) in Notes folder; and
    • memo = vjournal storage, through evolution-data-server (and its accounts).
  • item is the base class for Notes and Notebooks. Note is a base class for providers implementation.

bjb

  • BjbBijiben is the GApplication.

  • BjbWindowBase is the GtkWindow with its usual GtkStack.

  • Controller is the whole UI controller.

Implementing a new provider (backend)

As of today providers are not plugins. There are plain C code. To implement provider XXX:

  • Create a BijiXXXProvider class. Make sure to implement some methods. Start with pseudo methods printing "ouch!" =); and
  • Create a BijiXXXNote. You need, too, to implement some methods, and also to provide a way for your provider to generate notes from relevant arguments.

Especially, at startup provider should load notes and emit the signal ("loaded") so manager displays these notes. Creation might be implemented distinctly, but today there is no mechanism for providers not allowing creation. I could code this if useful. Similarly, there is no mechanism for read-only notes, but if necessary this might be added.

Apps/Notes/Contribute (last edited 2018-02-20 07:56:04 by SvitozarCherepii)