Fonctions de gestion du presse-papiers. More...
#include "cogitant/display/clipboard.h"
Public Member Functions | |
Clipboard (bool shared=true) | |
Constructeur. More... | |
virtual | ~Clipboard () |
Destructeur. More... | |
virtual std::list< std::string > | formats () const =0 |
Accès aux formats des données contenues dans le presse-papiers. More... | |
virtual bool | hasFormat (std::string const &f) const |
Le presse-papiers contient-il des données au format passé. More... | |
virtual bool | get (std::string const &f, std::string &result) const =0 |
Lecture des données à un format. More... | |
virtual void | set (std::string const &f, std::string const &data)=0 |
Ajout de données à un format. More... | |
virtual void | clear ()=0 |
Effacement du contenu du presse-papiers. More... | |
virtual void | commit () |
Fin de modification du presse-papiers. More... | |
bool | shared () const |
Le presse-papiers est-il partagé ? | |
void | addEditor (Editor *ed) |
Ajout d'un éditeur. More... | |
void | removeEditor (Editor *ed) |
Suppression d'un éditeur. More... | |
Protected Attributes | |
std::list< Editor * > | m_editors |
Éditeurs utilisant ce presse-papiers. | |
bool | m_shared |
Le presse-papiers est global et partagé par plusieurs éditeurs. | |
Fonctions de gestion du presse-papiers.
Cette classe encapsule les fonctions de gestion du presse-papiers. Les principales fonctions offectes par cette classe sont la lecture du contenu du presse-papiers (selon les différents formats disponibles dans celui-ci), et l'ajout de données dans le presse-papiers.
Cette classe est abstraite, car la gestion du presse papiers peut se faire de différentes façons. Une sous classes concrète est la classe Clipboard_Simple qui se contente de mémoriser les données du presse-papiers. Toutefois, cette classe, portable, n'est pas intégrée au système utilisé car elle n'utilise pas le presse-papiers du système. Il est donc possible d'écrire de nouvelles sous-classes concrètes utilisant les particularités du système utilisé (ClipboardJava par exemple).
Les formats du presse-papiers doivent être notés sous la forme de types MIME (de préférence), par exemple text/plain
, text/bcgct
, etc.
cogitantdisplay::Clipboard::Clipboard | ( | bool | shared = true | ) |
Constructeur.
shared | Si true (défaut) le presse-papiers est global et partagé par plusieurs éditeurs. Dans ce cas, il doit être détruit explicitement (n'est pas détruit dans le destructeur de Editor). Sinon, le presse-papiers est local à l'éditeur et il est automatiquement détruit dans le destructeur d'Editor. |
|
virtual |
Destructeur.
void cogitantdisplay::Clipboard::addEditor | ( | Editor * | ed | ) |
Ajout d'un éditeur.
|
pure virtual |
Effacement du contenu du presse-papiers.
Cette méthode doit toujours être appelée avant d'ajouter des données, car sinon, les nouvelles données sont ajoutées aux données existantes.
Implemented in cogitantdisplay::Clipboard_Simple.
|
virtual |
Fin de modification du presse-papiers.
Cette méthode doit être appelée après avoir appelé plusieurs fois set() (afin d'ajouter les données dans les différents formats). Cette méthode se charge d'informer les editeurs branchés sur ce presse-papiers qu'il a été modifié.
|
pure virtual |
Accès aux formats des données contenues dans le presse-papiers.
Implemented in cogitantdisplay::Clipboard_Simple.
|
pure virtual |
Lecture des données à un format.
f | format demandé. |
result | (R) résultat. |
true
ssi des données étaient disponibles à ce format. Implemented in cogitantdisplay::Clipboard_Simple.
|
virtual |
Le presse-papiers contient-il des données au format passé.
f | format recherché. |
true
ssi f est un format disponible. Reimplemented in cogitantdisplay::Clipboard_Simple.
void cogitantdisplay::Clipboard::removeEditor | ( | Editor * | ed | ) |
Suppression d'un éditeur.
|
pure virtual |
Ajout de données à un format.
f | format. |
data | données. |
Implemented in cogitantdisplay::Clipboard_Simple.