\section{GUI Classes} GUI elements should be provided for modifying records in a general way. The next sections shows suggested widgets for this purpose. \subsubsection{Recurrence Widget} Opie PIM offers a recurrence widget to let the user configure the recurrence. \subsubsection{Mainwindow} The mainwindow implements a QCOP interface for showing and editing records. It can handle alarms and reminder activation. \section{Cross Reference} \subsection{The idea} Sometimes a datebook-event or todo is related to something else. For example, the birthday attribute of a child record relate to the birthday event in a datebook and to the entry ``Book clown'' in your todolist.\\ We need a way to interconnect information to describe such relations. \subsection{Selecting the Reference} \subsubsection{Out Of Process Selection} For an out of process solution, we could utilize the targeted application to request the selection of an record.\\ For that to work we need to know which application offers cross referencing. The API needs to be able to find the application and then call them via QCOP.\\ Later, for resolving the cross-references, the same application\\ would be either asked to give a summary string or it could display the reference on demand. This requires the application to start a specific selection window, but more easily allows to cross reference attributes. \comment{``, but..'' Das verstehe ich nicht!. Ich wuerde den Satz so uebersetzen: Dies erfordert, dass die Application ein spezielles Auswahlfenster startet, aber viel einfacher die Crossreferenzierung von Attributen erlaubt. Meinst Du das ? } \subsubsection{In-Process-Selection} In-process-selection is possible using OPimBase and OPimRecord. It allows to query and sort in a generic way. This would allow to have a generic selector widget, which can be used to select a record and possible files as well. To support new types it should be possible to use plugins (via dlopen) do load and support custom frontends.