\hypertarget{a06888}{}\section{I\+N\+I\+Interface Class Reference}
\label{a06888}\index{I\+N\+I\+Interface@{I\+N\+I\+Interface}}


Interface class for Plugins which have to store information in ini files.  




{\ttfamily \#include $<$Open\+Flipper/\+Base\+Plugin/\+I\+N\+I\+Interface.\+hh$>$}

Inheritance diagram for I\+N\+I\+Interface\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=12.000000cm]{a06888}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a06888_a192349b9a189aac0f9a2f7cf392789bc}\label{a06888_a192349b9a189aac0f9a2f7cf392789bc}} 
virtual \hyperlink{a06888_a192349b9a189aac0f9a2f7cf392789bc}{$\sim$\+I\+N\+I\+Interface} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Per object settings}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{a06888_a66ebf39ccc11383a860dc8c10709fb1e}{load\+Ini\+File} (\hyperlink{a07164}{I\+N\+I\+File} \&\+\_\+ini, int \+\_\+id)
\begin{DoxyCompactList}\small\item\em Load per object settings. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06888_a4e249320fbfd6155523078c7b10de1ac}{save\+Ini\+File} (\hyperlink{a07164}{I\+N\+I\+File} \&\+\_\+ini, int \+\_\+id)
\begin{DoxyCompactList}\small\item\em Save per object settings. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Plugin Options and Settings}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{a06888_a3b8ae0e16b554c4b96a6e2c6071dbebb}{load\+Ini\+File\+Options} (\hyperlink{a07164}{I\+N\+I\+File} \&\+\_\+ini)
\begin{DoxyCompactList}\small\item\em Load per Plugin settings. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06888_a828902165dcaf8a0125df0dfdd127947}{load\+Ini\+File\+Options\+Last} (\hyperlink{a07164}{I\+N\+I\+File} \&\+\_\+ini)
\begin{DoxyCompactList}\small\item\em Load per Plugin settings after objects are loaded. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06888_a85c019af7f106311394d28d844679a59}{save\+Ini\+File\+Options} (\hyperlink{a07164}{I\+N\+I\+File} \&\+\_\+ini)
\begin{DoxyCompactList}\small\item\em Save Plugin Options When the core is about to save an ini file this slot will be called once per Plugin. This Slot will be called after saving the core settings and before objects are saved to the file. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06888_ad39d9e34d241b638bcb13340bdb3f35e}{save\+On\+Exit} (\hyperlink{a07164}{I\+N\+I\+File} \&\+\_\+ini)
\begin{DoxyCompactList}\small\item\em Save per Plugin settings when application is about to quit. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Interface class for Plugins which have to store information in ini files. 

Using this interface you can store or load additional information to an ini file on a per object basis or settings for your plugin. After basic information is written to the ini file by the core ( or loaded by the core ) the corresponding functions in this Interface will be executed. You get the object id for the object which has to be used. For every object the functions will get called and you have to save your data only for the given object!~\newline
The ini file in the functions is already open. You may not close it! Additionally there are two slots which are called once per plugin when writing a settings file. These slots should be used to store information which is used by your plugin.

See \hyperlink{dataFlow}{Dataflow} for a detailed overview of Open\+Flipper\textquotesingle{}s data flow and interface function calls. 

Definition at line 60 of file I\+N\+I\+Interface.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a06888_a66ebf39ccc11383a860dc8c10709fb1e}\label{a06888_a66ebf39ccc11383a860dc8c10709fb1e}} 
\index{I\+N\+I\+Interface@{I\+N\+I\+Interface}!load\+Ini\+File@{load\+Ini\+File}}
\index{load\+Ini\+File@{load\+Ini\+File}!I\+N\+I\+Interface@{I\+N\+I\+Interface}}
\subsubsection{\texorpdfstring{load\+Ini\+File}{loadIniFile}}
{\footnotesize\ttfamily virtual void I\+N\+I\+Interface\+::load\+Ini\+File (\begin{DoxyParamCaption}\item[{\hyperlink{a07164}{I\+N\+I\+File} \&}]{\+\_\+ini,  }\item[{int}]{\+\_\+id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}



Load per object settings. 

Every time the core opens a settings file containing objects the core will call this slot for each object it finds. The object itself is loaded before the slot is called. Therefore the object is available from within your plugin.


\begin{DoxyParams}{Parameters}
{\em \+\_\+ini} & ini file \\
\hline
{\em \+\_\+id} & Id of the object to load data for \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{a11068_abfb6b5cd5e26d514dbea3f325d004b06}{File\+S\+K\+L\+Plugin}.



Definition at line 82 of file I\+N\+I\+Interface.\+hh.

\mbox{\Hypertarget{a06888_a3b8ae0e16b554c4b96a6e2c6071dbebb}\label{a06888_a3b8ae0e16b554c4b96a6e2c6071dbebb}} 
\index{I\+N\+I\+Interface@{I\+N\+I\+Interface}!load\+Ini\+File\+Options@{load\+Ini\+File\+Options}}
\index{load\+Ini\+File\+Options@{load\+Ini\+File\+Options}!I\+N\+I\+Interface@{I\+N\+I\+Interface}}
\subsubsection{\texorpdfstring{load\+Ini\+File\+Options}{loadIniFileOptions}}
{\footnotesize\ttfamily virtual void I\+N\+I\+Interface\+::load\+Ini\+File\+Options (\begin{DoxyParamCaption}\item[{\hyperlink{a07164}{I\+N\+I\+File} \&}]{\+\_\+ini }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}



Load per Plugin settings. 

When the core loads an ini file and it contains settings for Plugin or the core itself this slot will be called once per Plugin. This Slot will be called after loading the core settings and before objects are loaded


\begin{DoxyParams}{Parameters}
{\em \+\_\+ini} & ini file \\
\hline
\end{DoxyParams}


Definition at line 115 of file I\+N\+I\+Interface.\+hh.

\mbox{\Hypertarget{a06888_a828902165dcaf8a0125df0dfdd127947}\label{a06888_a828902165dcaf8a0125df0dfdd127947}} 
\index{I\+N\+I\+Interface@{I\+N\+I\+Interface}!load\+Ini\+File\+Options\+Last@{load\+Ini\+File\+Options\+Last}}
\index{load\+Ini\+File\+Options\+Last@{load\+Ini\+File\+Options\+Last}!I\+N\+I\+Interface@{I\+N\+I\+Interface}}
\subsubsection{\texorpdfstring{load\+Ini\+File\+Options\+Last()}{loadIniFileOptionsLast()}}
{\footnotesize\ttfamily virtual void I\+N\+I\+Interface\+::load\+Ini\+File\+Options\+Last (\begin{DoxyParamCaption}\item[{\hyperlink{a07164}{I\+N\+I\+File} \&}]{\+\_\+ini }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Load per Plugin settings after objects are loaded. 

When the core loads an ini file and it contains settings for Plugin or the core itself this slot will be called once per Plugin. In contrast to load\+Ini\+File\+Options this slot will be called after all objects are loaded


\begin{DoxyParams}{Parameters}
{\em \+\_\+ini} & ini file \\
\hline
\end{DoxyParams}


Definition at line 126 of file I\+N\+I\+Interface.\+hh.

\mbox{\Hypertarget{a06888_a4e249320fbfd6155523078c7b10de1ac}\label{a06888_a4e249320fbfd6155523078c7b10de1ac}} 
\index{I\+N\+I\+Interface@{I\+N\+I\+Interface}!save\+Ini\+File@{save\+Ini\+File}}
\index{save\+Ini\+File@{save\+Ini\+File}!I\+N\+I\+Interface@{I\+N\+I\+Interface}}
\subsubsection{\texorpdfstring{save\+Ini\+File()}{saveIniFile()}}
{\footnotesize\ttfamily virtual void I\+N\+I\+Interface\+::save\+Ini\+File (\begin{DoxyParamCaption}\item[{\hyperlink{a07164}{I\+N\+I\+File} \&}]{\+\_\+ini,  }\item[{int}]{\+\_\+id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Save per object settings. 

Every time a settings file is created this slot is called once per object. Here you can write additional information handled by your plugin which is attached to the object.


\begin{DoxyParams}{Parameters}
{\em \+\_\+ini} & ini file \\
\hline
{\em \+\_\+id} & Identifier of the object to save \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{a10992_ac6afbedc3fa301f6b82e1ce9dd5efc81}{File\+Poly\+Line\+Plugin}, and \hyperlink{a11068_ae608b9cd3bca98abc726fd68e1f1e65e}{File\+S\+K\+L\+Plugin}.



Definition at line 93 of file I\+N\+I\+Interface.\+hh.

\mbox{\Hypertarget{a06888_a85c019af7f106311394d28d844679a59}\label{a06888_a85c019af7f106311394d28d844679a59}} 
\index{I\+N\+I\+Interface@{I\+N\+I\+Interface}!save\+Ini\+File\+Options@{save\+Ini\+File\+Options}}
\index{save\+Ini\+File\+Options@{save\+Ini\+File\+Options}!I\+N\+I\+Interface@{I\+N\+I\+Interface}}
\subsubsection{\texorpdfstring{save\+Ini\+File\+Options()}{saveIniFileOptions()}}
{\footnotesize\ttfamily virtual void I\+N\+I\+Interface\+::save\+Ini\+File\+Options (\begin{DoxyParamCaption}\item[{\hyperlink{a07164}{I\+N\+I\+File} \&}]{\+\_\+ini }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Save Plugin Options When the core is about to save an ini file this slot will be called once per Plugin. This Slot will be called after saving the core settings and before objects are saved to the file. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+ini} & ini file \\
\hline
\end{DoxyParams}


Definition at line 136 of file I\+N\+I\+Interface.\+hh.

\mbox{\Hypertarget{a06888_ad39d9e34d241b638bcb13340bdb3f35e}\label{a06888_ad39d9e34d241b638bcb13340bdb3f35e}} 
\index{I\+N\+I\+Interface@{I\+N\+I\+Interface}!save\+On\+Exit@{save\+On\+Exit}}
\index{save\+On\+Exit@{save\+On\+Exit}!I\+N\+I\+Interface@{I\+N\+I\+Interface}}
\subsubsection{\texorpdfstring{save\+On\+Exit()}{saveOnExit()}}
{\footnotesize\ttfamily virtual void I\+N\+I\+Interface\+::save\+On\+Exit (\begin{DoxyParamCaption}\item[{\hyperlink{a07164}{I\+N\+I\+File} \&}]{\+\_\+ini }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Save per Plugin settings when application is about to quit. 

Before the \hyperlink{a07112}{Core} is closed, this slot will be called per plugin to save per plugin settings.


\begin{DoxyParams}{Parameters}
{\em \+\_\+ini} & ini file \\
\hline
\end{DoxyParams}


Definition at line 145 of file I\+N\+I\+Interface.\+hh.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/\+Base\+Plugin/I\+N\+I\+Interface.\+hh\end{DoxyCompactItemize}
