Éditeur de l'objet contenu dans le Panel. More...
#include "cogitant/display/editor.h"
Classes | |
class | Command |
Commandes devant être exécutées par l'éditeur. More... | |
Public Types | |
enum | CommandType { SELECT_ADD, SELECT_CLEAR, SELECT_REMOVE, SELECT_ALL, MOVE_BEGIN, MOVE_MOVE, MOVE_END, MOVE_CANCEL, EDIT, ERASE, UNLINK_ALL, UNLINK, LINK, NEWELEMENT_BEGIN, NEWELEMENT_END, SELECT_MODE, COPY, CUT, PASTE_BEGIN, PASTE_END, OPEN, SAVE, SAVE_AS, NEW, CLOSE, VERIFY, VERIFY_CLEAR, UNDO, REDO, UNKNOWN } |
Type de commande. More... | |
typedef unsigned char | ProducerState |
État d'un producteur de commande. More... | |
Public Member Functions | |
Editor (Panel *panel, std::string const &nf, DialogHandler *pdh, Clipboard *clipboard=NULL) | |
Constructeur. More... | |
virtual | ~Editor () |
Destructeur. More... | |
bool | onMouseButton (int button, Point const &p, bool down, Panel::KbdState ks) |
Réponse à l'évènement clic-souris. More... | |
bool | onMouseMove (Point const &p) |
Réponse à l'évènement déplacement curseur souris. More... | |
bool | onKey (Panel::KbdState ks, Panel::KbdKey kk) |
Réponse à l'évènement appui touche. More... | |
bool | onCommandEvent (Command const &cmd) |
Gestion des évènements en provenance du menu ou de la barre d'icones. More... | |
virtual bool | canExec (Command const &command) const |
L'éditeur peut-il exécuter la commande ? Par défaut cette méthode retoure toujours faux: l'éditeur ne permet l'exécution d'aucune commande. More... | |
virtual void | exec (Command const &command, Clipping &cl) |
Exécution de la commande. More... | |
void | addCommandProducer (EditorCommandProducer *pc) |
Ajout d'un producteur de commandes. More... | |
void | addListener (EditorListener *l) |
Ajout d'un gestionnaire d'évènements. More... | |
virtual void | refresh () |
Rafraichissement de tous les EditorCommandProducer. More... | |
virtual ProducerState | producerState (Command const &cmd) const |
État du producteur de commande. More... | |
virtual std::string | producerIconName (Command const &cmd) const |
Accès au nom de l'image correspondant à l'icône du producteur de commande. More... | |
virtual char const ** | producerXpm (Command const &cmd) const |
Accès au XPM de l'image correspondant à l'icône du producteur de commande. More... | |
virtual std::string | producerToolTip (Command const &cmd) const |
Accès à la chaine de description d'une commande. More... | |
virtual void | defaultProducersToolbar (std::vector< Command > &dpt) const |
Commandes des producteurs d'une barre d'outils par défaut de l'éditeur. More... | |
std::list< EditorCommandProducer * > const & | producers () const |
Les producteurs de commande. More... | |
DisplayHandler const * | displayHandler () const |
Accès raccourci au gestionnaire d'affichage. More... | |
DrawHandler const * | drawHandler () const |
Accès raccourci au gestionnaire de dessin. More... | |
LayoutHandler const * | layoutHandler () const |
Accès raccourci au gestionnaire de mise en forme. More... | |
Context const * | context () const |
Accès raccourci au contexte. More... | |
Context * | context () |
Accès raccourci au contexte. More... | |
Drawing * | drawing () |
Accès raccourci au dessin. More... | |
Drawing const * | drawing () const |
Accès raccourci au dessin. More... | |
DialogHandler * | dialogHandler () |
Accès au gestionnaire de boites de dialogue de propriétés. More... | |
Panel * | panel () |
Accès au Panel. More... | |
Panel const * | panel () const |
Accès au Panel. More... | |
bool | readOnly () const |
Accès à l'état de lecture seule. More... | |
bool | needsSave () const |
Retourne vrai ssi le graphe a été modifié depuis la dernière sauvegarde. More... | |
bool | canClose () const |
Retourne vrai ssi l'éditeur peut être fermé immédiatement. More... | |
void | addClipping (Drawing::Element const &el, Clipping &cl, bool linked=false) |
Ajout au clipping de la zone correspondant à l'élément. More... | |
void | setPropertyBefore (cogitant::Property::Type tp, Drawing::Element const &el, Clipping *cl) |
Traitements à effectuer avant modification d'une propriété d'un élément. More... | |
void | setPropertyAfter (cogitant::Property::Type tp, Drawing::Element const &el, Clipping *cl) |
Traitements à effectuer après modification d'une propriété d'un élément. More... | |
virtual void | setFileName (std::string const &fn) |
Modification du nom de fichier associé au dessin édité. More... | |
virtual void | setReadOnly (bool ro) |
Modification de l'état de lecture seule. More... | |
virtual void | setNeedsSave (bool ns=true) |
Signalement d'une modification du dessin. More... | |
virtual void | setPanelResize (bool pr=true) |
Choix du redimensionnement automatique du Panel. More... | |
Public Member Functions inherited from cogitantdisplay::PanelEventHandler | |
PanelEventHandler (Panel *panel) | |
Constructeur. More... | |
virtual | ~PanelEventHandler () |
Destructeur. More... | |
virtual void | setPanel (Panel *panel) |
Sélection du Panel. More... | |
Panel * | panel () |
Accès au Panel. More... | |
Static Public Attributes | |
static const ProducerState | PRODUCER_VISIBLE |
Le producteur est visible. More... | |
static const ProducerState | PRODUCER_ENABLED |
Le producteur peut être sélectionné par l'utilisateur. More... | |
static const ProducerState | PRODUCER_TOGGLE |
Le producteur a deux états sélectionné / non sélectionné. More... | |
static const ProducerState | PRODUCER_SELECTED |
Le producteur est dans l'état "sélectionné". More... | |
Protected Types | |
enum | Mode { MODE_SELECT, MODE_MOVE_FIRST, MODE_MOVE, MODE_NEWELEMENT, MODE_PASTE } |
Mode de l'éditeur. More... | |
Protected Member Functions | |
virtual bool | under (Point const &p, Drawing::Element &el, bool selectableonly) const |
Quel est l'objet situé sous le point. More... | |
bool | execIfPossible (Command const &command, Clipping &cl) |
Un simple raccourci. More... | |
virtual void | setMode (Mode m, unsigned int submode=0) |
Passage dans un nouveau mode. More... | |
Mode | mode () const |
Accès au mode. | |
unsigned int | subMode () const |
Accès au sous-mode. More... | |
virtual unsigned int | undoMax () const |
Nombre maximum d'annulations possibles. More... | |
virtual unsigned int | undoSize () const |
Nombre actuel d'annulations possibles. More... | |
virtual void | undoMemo (Command const &cmd) |
Stockage du dessin actuel dans l'historique. More... | |
virtual void | undoApply (unsigned int h) |
Modifie le dessin courant qui est remplacé par le dessin stocké dans l'historique. More... | |
virtual unsigned int | undoPos () const |
Position actuelle dans l'historique. More... | |
virtual void | undoClear () |
Vider l'historique. More... | |
virtual void | clearSelect (Clipping &cl) |
Vider la sélection. More... | |
virtual void | addSelect (Drawing::Element const &el, Clipping &cl) |
Ajout à la sélection. More... | |
virtual void | removeSelect (Drawing::Element const &el, Clipping &cl) |
Retrait de la sélection. More... | |
virtual void | childrenSelect (Drawing::Element const &el, Clipping &cl) |
Ajout de des fils d'un élément à la sélection. More... | |
bool | isSelected (Drawing::Element const &el) |
L'objet est-il sélectionné. More... | |
virtual void | beginMove (Point const &p, Clipping &cl) |
Début du mouvement. More... | |
virtual void | endMove (Clipping &cl) |
Fin du mouvement. More... | |
virtual void | cancelMove (Clipping &cl) |
Annulation du mouvement. More... | |
virtual void | move (Clipping &cl, Coord dx, Coord dy) |
Mouvement. More... | |
virtual void | selectMode () |
Retour au mode de sélection d'objet. More... | |
virtual bool | edit (Clipping &cl) |
Édition des objets de la sélection. More... | |
virtual void | erase (Clipping &cl) |
Suppression des objets de la sélection. More... | |
virtual void | copy () |
Copie des objets de la sélection dans le presse-papiers. More... | |
virtual void | cut (Clipping &cl) |
Coupe les objets de la sélection. More... | |
virtual void | pasteBegin () |
Passage en mode coller. More... | |
virtual void | pasteEnd (Point const &p, Clipping &cl) |
Coller. More... | |
virtual void | unlinkAll (Clipping &cl) |
Suppression de tous les liens liés aux objets de la sélection. More... | |
virtual void | unlink (Drawing::Element const &ellink, bool end, Clipping &cl) |
Suppression d'un lien. More... | |
virtual void | link (Drawing::Element const &ellink, Drawing::Element const &newlinked, bool end, Clipping &cl) |
Ajout d'un lien. More... | |
virtual void | newElementBegin (unsigned int objecttype) |
Passage en mode création d'objet. More... | |
virtual void | newElement (unsigned int objecttype, Point const &p, Clipping &cl) |
Création d'un objet. More... | |
virtual void | newElementEnd (unsigned int objecttype, Point const &p, Clipping &cl) |
Création d'un objet et appel éventuel à l'édition des propriétés. More... | |
virtual bool | save () |
Sauvegarde du dessin en cours d'édition. More... | |
virtual bool | saveAs () |
Sauvegarde du dessin en cours d'édition avec demande du nom de fichier. More... | |
virtual bool | saveFile () |
Sauvegarde du dessin en cours d'édition, sans interactions avec l'utilisateur. More... | |
virtual bool | open (Clipping &cl) |
Chargement d'un nouveau dessin dans le dessin en cours d'édition. More... | |
virtual bool | newDrawing (Clipping &cl) |
Suppression du dessin courant et création d'un nouveau. More... | |
virtual bool | close (Clipping &cl) |
Demande à l'utilisateur si il désire sauver les dernières modifications du dessin en cours. More... | |
virtual bool | verify (unsigned int verif, Clipping &cl) |
Vérification du dessin en cours d'édition. More... | |
virtual void | verifyClear (Clipping &cl) |
Effacement des erreurs signalées. More... | |
virtual void | undo (Clipping &cl) |
Annulation de la dernière action. More... | |
virtual void | redo (Clipping &cl) |
Annulation de la dernière annulation. More... | |
virtual void | setClipboard (Drawing &d) |
Fixe le contenu du presse-papiers au dessin passé en paramètre. More... | |
virtual void | initNewElements (std::list< Drawing::Element > const &ne, Point const &cp, Clipping &cl) |
Initialise les coordonnées graphiques de nouveaux objets. More... | |
Protected Attributes | |
std::string | m_filename |
Nom du fichier ayant servi à charger le document courant. | |
std::list< Drawing::Element > | m_select |
Éléments sélectionnés. | |
Point | m_moveorig |
Coordonnées du point origine du déplacement. | |
std::list< Point > | m_selectpos |
Coordonnées des éléments de la sélection avant le mouvement. | |
std::list< Drawing::Element > | m_selectlink |
Liens des arêtes avant le mouvement. | |
DialogHandler * | m_propdialhandler |
Gestionnaire d'édition de propriétés. | |
bool | m_editafternew |
Affichage de la boîte d'édition des propriétés juste après la création d'un élément. More... | |
bool | m_selectafternew |
Retour au mode sélection après création d'un nouvel élément. More... | |
bool | m_panelresize |
Redimensionnement automatique des ascenseurs dans le Panel d'affichage. More... | |
Clipboard * | m_clipboard |
Presse-papiers utilisé par l'éditeur. | |
Protected Attributes inherited from cogitantdisplay::PanelEventHandler | |
Panel * | m_panel |
Panel géré par le gestionnaire d'évènements. | |
Éditeur de l'objet contenu dans le Panel.
Un objet éditeur récupère les évènements (c'est une sorte de EventHandler) produits par le Panel représentant le dessin (Drawing) et utilise ces évènements pour permettre une modification du dessin. Plus précisément, les méthodes onMouseButton(), onMouseMove() et onKey() sont redéfinies et appellent la méthode de modification (exec()), qui peut être redéfinie dans les sous classes.
La gestion de l'historique doit être implémentée dans les sous classes d'Editor. En effet, Editor ne fournit que les fonctions de base de gestion de l'historique, mais ne se charge pas de mémoriser l'objet édité (puisque Editor ne connait pas le type d'objets édités). Dans les sous-classes, il est donc nécessaire de redéfinir les méthodes undoMemo() et undoApply() afin que l'annulation de commande devienne disponible.
typedef unsigned char cogitantdisplay::Editor::ProducerState |
État d'un producteur de commande.
Les variables de ce type peuvent être utilisées en association avec les constantes PRODUCER_xxx.
Type de commande.
Enumerator | |
---|---|
SELECT_ADD | Ajout à la sélection. |
SELECT_CLEAR | Vider la sélection. |
SELECT_REMOVE | Retrait de la sélection. |
SELECT_ALL | Ajout de tout à la sélection. |
MOVE_BEGIN | Début de déplacement de la sélection. |
MOVE_MOVE | Déplacement de la sélection. |
MOVE_END | Fin du déplacement de la sélection. |
MOVE_CANCEL | Annulation du déplacement de la sélection (et retour à la position initiale). |
EDIT | Édition de la sélection. |
ERASE | Suppression de la sélection. |
UNLINK_ALL | Détachement de tous les liens liés aux objets de la sélection. |
UNLINK | Détachement d'un lien (n'agit pas sur la sélection). Le paramètre booléen de la commande représente si l'origine du lien (false) ou l'extrémité (true) est en cause et le paramètre m_element1 contient le lien. |
LINK | Création d'un lien (n'agit pas sur la sélection). Le paramètre booléen de la commande représente si l'origine du lien (false) ou l'extrémité (true) est en cause. Le paramètre m_element1 est l'arête, et m_element2 l'objet à lier. |
NEWELEMENT_BEGIN | Création d'un élément (passage en mode création). Après l'exécution de la commande l'éditeur passe en mode création (d'un objet donné) : un clic provoquera la création d'un objet à l'endroit sélectionné. Évidemment, différents types d'objets peuvent être crées, et repérés par les arguments de la commande. |
NEWELEMENT_END | Création d'un élément. Commande correspondant à un clic alors que l'éditeur était en mode de création. |
SELECT_MODE | Sortie du mode création (ou coller pp) sans création et retour au mode sélection. |
COPY | Copie de la sélection dans le presse papier. |
CUT | Couper dans le presse papier. L'exécution de cette commande est équivalente à COPY suivi de ERASE. |
PASTE_BEGIN | Passage en mode coller. Après l'exécution de cette commande, l'éditeur passe en mode coller : un clic provoquera un collage du presse papier à l'endroit sélectionné. |
PASTE_END | Collage du presse papier. |
OPEN | Chargement d'un nouveau dessin. |
SAVE | Sauvegarde du dessin dans le nom courant. |
SAVE_AS | Sauvegarde dans un nouveau nom. |
NEW | Effacement du dessin courant, et création d'un nouveau. |
CLOSE | Fermeture du dessin courant. Cette commande ne fait qu'appeler la méthode close(). Si rien d'autre n'est fait, le dessin reste affiché à l'écran, car la destruction de la fenêtre est dependante de l'application qui utilise l'Editor. |
VERIFY | Vérification du dessin en cours d'édition. m_c1 décrit les vérifications qui doivent être effectuées. Si m_c1 vaut 0, toutes les vérifications sont effectuées. Dans le cas de la vérification d'un graphe conceptuel, le paramètre m_c1 de la commande contient une combinaison des bits suivants : |
VERIFY_CLEAR | Effacement de tous les objets en erreur (signalés par une vérification). |
UNDO | Annulation de la dernière modification. |
REDO | Annulation de la dernière annulation. |
UNKNOWN | Commande inconnue. |
|
protected |
Mode de l'éditeur.
cogitantdisplay::Editor::Editor | ( | Panel * | panel, |
std::string const & | nf, | ||
DialogHandler * | pdh, | ||
Clipboard * | clipboard = NULL |
||
) |
Constructeur.
panel | Panel géré. |
nf | Nom du fichier affiché dans le panel ou chaîne vide si le dessin est nouveau est ne correspond à aucun fichier. |
pdh | Gestionnaire de boîtes de dialogue et d'édition de propriétés. Si NULL est passé, l'édition de propriétés est désactivée, sinon, ce gestionnaire est utilisé. |
clipboard | Presse-papiers utilisé par l'éditeur. Si NULL est passé (par défaut), un presse-papiers interne (Clipboard_Simple) à l'éditeur est créé (et détruit par le destructeur de l'éditeur). Sinon, le presse-papiers externe, passé en paramètre est utilisé par l'éditeur. |
|
virtual |
Destructeur.
void cogitantdisplay::Editor::addClipping | ( | Drawing::Element const & | el, |
Clipping & | cl, | ||
bool | linked = false |
||
) |
Ajout au clipping de la zone correspondant à l'élément.
void cogitantdisplay::Editor::addCommandProducer | ( | EditorCommandProducer * | pc | ) |
Ajout d'un producteur de commandes.
pc | Le producteur de commandes ajouté. Attention: les Editor::CommandProducer sont automatiquement détruits quand l'éditeur est détruit. |
void cogitantdisplay::Editor::addListener | ( | EditorListener * | l | ) |
Ajout d'un gestionnaire d'évènements.
l | Le gestionnaire à ajouter. Attention: les Editor::Listener sont automatiquement détruits quand l'éditeur est détruit. |
|
protectedvirtual |
Ajout à la sélection.
Début du mouvement.
|
protectedvirtual |
Annulation du mouvement.
|
inline |
Retourne vrai ssi l'éditeur peut être fermé immédiatement.
Cette méthode doit être appelée après un appel à onCommandEvent(Command(CLOSE)) pour savoir si l'utilisateur accepte la fermeture (éventuellement après sauvegarde) de l'éditeur ou pas.
|
virtual |
L'éditeur peut-il exécuter la commande ? Par défaut cette méthode retoure toujours faux: l'éditeur ne permet l'exécution d'aucune commande.
Il est donc nécessaire de définir une sous classe permettant d'exécuter certaines (ou toutes les) commandes.
Reimplemented in cogitantdisplay::EditorGraph.
|
protectedvirtual |
Ajout de des fils d'un élément à la sélection.
La sélection est vidée, et les éléments fils de el sont ajoutés.
|
protectedvirtual |
Vider la sélection.
|
protectedvirtual |
Demande à l'utilisateur si il désire sauver les dernières modifications du dessin en cours.
Dans plusieurs occasions (fermeture de l'éditeur, chargement d'un nouveau dessin, création d'un nouveau dessin), il est nécessaire de demander à l'utilisateur si il désire sauvegarder les dernières modifications au dessin en cours d'édition. Cette méthode se charge de faire apparaître une boîte de dialogue de confirmation de sauvegarde si le dessin a besoin d'être sauvegardé.
cl | le clipping qui doit être dessiné. En effet, la méthode close vide la sélection, il est donc nécessaire de prévoir un redessin si la sélection est idée et que l'utilisateur décide tout de même de continuer à éditer ce graphe. |
true
si le dessin en cours peut être supprimé, ou false
si l'utilisateur choisit de ne pas fermer le dessin en cours.
|
inline |
Accès raccourci au contexte.
|
inline |
Accès raccourci au contexte.
|
protectedvirtual |
Copie des objets de la sélection dans le presse-papiers.
Par défaut, n'effectue aucun traitement, puisque le format est inconnu.
Reimplemented in cogitantdisplay::EditorGraph.
|
protectedvirtual |
|
virtual |
Commandes des producteurs d'une barre d'outils par défaut de l'éditeur.
Cette méthode remplit le vector passé en paramètre avec les commandes des producteurs de commande qui doivent affichés par défaut dans une barre d'outils de l'éditeur.
Reimplemented in cogitantdisplay::EditorGraph.
|
inline |
Accès au gestionnaire de boites de dialogue de propriétés.
|
inline |
Accès raccourci au gestionnaire d'affichage.
|
inline |
Accès raccourci au gestionnaire de dessin.
|
inline |
Accès raccourci au dessin.
|
inline |
Accès raccourci au dessin.
|
protectedvirtual |
Édition des objets de la sélection.
Par défaut, appelle le gestionnaire de boîte de dialogue de propriétés.
|
protectedvirtual |
Fin du mouvement.
|
protectedvirtual |
Suppression des objets de la sélection.
Par défaut, n'effectue aucun traitement, la méthode doit donc être redéfinie dans les sous-classes.
Reimplemented in cogitantdisplay::EditorGraph.
Exécution de la commande.
Cette méthode constitue le gestionnaire de commandes : à partir d'une commande (générée par les méthodes onMouseButton(), onMouseMove() et onKey() (appelées directement par le Panel suite aux évènements correspondants)), la "bonne" méthode est appelée pour gérer l'évènement en question : beginMove(), endMove(), etc. Il est évidemment possible de redéfinir cette méthode pour définir une nouvelle gestion des commandes (nouvelles méthodes de gestion.).
|
protectedvirtual |
Initialise les coordonnées graphiques de nouveaux objets.
Cette méthode peut être utilisée lors de la création d'un nouvel objet ou lors d'un coller.
ne | les nouveaux éléments à initialiser. Ces éléments doivent avoir été ajoutés au dessin courant. À noter que la sélection est réinitialisée pour ne contenir que les éléments de cette liste après l'appel à cette méthode. Attention : tous les nouveaux éléments doivent avoir le même parent (mais ces éléments peuvent avoir pour fils des éléments venant d'être ajoutés, dans ce cas, les fils ne doivent pas être présents dans la liste). |
cp | point (coordonnées absolues) où les nouveaux objets ont été ajoutés (ce point doit être dans la zone graphique du parent des nouveaux éléments). |
cl | cette méthode modifie le clipping passé pour rajouter la zone nécessaire au dessin des nouveaux éléments. |
|
protected |
L'objet est-il sélectionné.
|
inline |
Accès raccourci au gestionnaire de mise en forme.
|
protectedvirtual |
Ajout d'un lien.
Par défaut, le seul traitement effectué est la suppression des propriétés cogitant::Property::DISPLAY_POS_X et cogitant::Property::DISPLAY_POS_Y de l'arête. La méthode doit donc être redéfinie dans les sous-classes.
ellink | Élément lien. |
newlinked | Élément à lier au lien. |
end | extrémité (true) ou origine (false). |
cl | (D/R) la méthode ajoute à ce clipping la zone nécessaire au rafraichissement. |
Reimplemented in cogitantdisplay::EditorGraph.
Mouvement.
|
inline |
Retourne vrai ssi le graphe a été modifié depuis la dernière sauvegarde.
|
protectedvirtual |
Suppression du dessin courant et création d'un nouveau.
Par défaut, cette méthode ne modifie pas le dessin courant, et doit être redéfinie dans les sous-classes pour effectuer réellement le traitement. Cette méthode se charge par contre de demander à l'utilisateur si il désire réellement supprimer le dessin.
cl | le clipping qui doit être redessiné. |
true
ssi l'utilisateur confirme la suppression du dessin courant. Reimplemented in cogitantdisplay::EditorGraph.
|
protectedvirtual |
Création d'un objet.
Cette méthode doit effectivement créer un objet, c'est donc celle-ci (parmi les méthodes newElementxxx()) qui doit être redéfinie dans les sous-classes pour créer effectivement l'objet. Après appel à newElement(), la sélection doit contenir exactement l'(les) élément(s) créé(s) (pour l'edition).
objecttype | type d'objet à créer (dépend de la sous-classe d'Editor). |
p | point où le nouvel objet doit être créé. |
cl | clipping à modifier pour repérer le nouvel objet. |
Reimplemented in cogitantdisplay::EditorGraph.
|
protectedvirtual |
Passage en mode création d'objet.
Par défaut, aucun traitement n'est effectué dans cette méthode, si ce n'est le changement de mode. Ceci devrait d'ailleurs être le traitement par défaut, un nouvel objet n'étant crée que quand la méthode newElement() est appelée.
objecttype | type d'objet à créer. objecttype est utilisé pour passer dans le mode de création d'objet, et plus particulièrement pour le sous-mode. |
|
protectedvirtual |
Création d'un objet et appel éventuel à l'édition des propriétés.
Cette méthode se comporte comme newElement() (qu'elle appelle d'ailleurs), mais ne devrait pas être redéfinie (au contraire de newElement()) car elle est équivalente à appeler newElement() puis l'édition des propriétés de l'objet créé (et la suppression de cet objet si l'utilisateur annule la boîte de propriétés).
bool cogitantdisplay::Editor::onCommandEvent | ( | Command const & | cmd | ) |
Gestion des évènements en provenance du menu ou de la barre d'icones.
Cette méthode permet l'exécution de commandes "directement", et s'occupe de redessiner la zone de dessin si nécessaire. Elle ne doit donc pas être appelée à partir des autres méthodes onXxx(), mais doit être appelée (plutot que execIfPossible() ou exec()) pour exécuter l'action et redessiner le Panel d'affichage.
cmd | commande à exécuter sur le dessin. |
|
virtual |
Réponse à l'évènement appui touche.
Reimplemented from cogitantdisplay::PanelEventHandler.
Reimplemented in cogitantdisplay::EditorGraph.
|
virtual |
Réponse à l'évènement clic-souris.
Reimplemented from cogitantdisplay::PanelEventHandler.
|
virtual |
Réponse à l'évènement déplacement curseur souris.
Reimplemented from cogitantdisplay::PanelEventHandler.
|
protectedvirtual |
Chargement d'un nouveau dessin dans le dessin en cours d'édition.
Par défaut, cette méthode ne fait qu'afficher un message d'avertissement dans le cas où le dessin en cours d'éditoin n'a pas été sauvé. La méthode doit être redéfinie dans les sous classes, afin de fournir un mécanisme de chargement, depandant du type de dessin manipulé.
cl | le clipping qui doit être redessiné. |
true
ssi l'utilisateur confirme le chargement d'un nouveau dessin qui écrase le dessin courant. Reimplemented in cogitantdisplay::EditorGraph.
|
protectedvirtual |
Passage en mode coller.
Par défaut, auncun traitement n'est effectué dans cette méthode, sice n'est le changement de mode. Ceci devrait être le traitement par défaut, le "coller", n'étant fait que quand paseEnd() est appelée.
Coller.
Cette méthode doit effectivement coller le contenu du presse-papiers. Par défaut, cette méthode ne fait rien, et doit être redéfinie dans les sous-classes.
p | point où le presse-papiers doit être collé. |
cl | clipping à modifier pour repérer les nouveaux objets. |
Reimplemented in cogitantdisplay::EditorGraph.
|
virtual |
Accès au nom de l'image correspondant à l'icône du producteur de commande.
cmd | commande générée par le producteur de commande. |
Reimplemented in cogitantdisplay::EditorGraph.
std::list<EditorCommandProducer *> const& cogitantdisplay::Editor::producers | ( | ) | const |
Les producteurs de commande.
|
virtual |
État du producteur de commande.
cmd | commande du producteur. |
|
virtual |
Accès à la chaine de description d'une commande.
cmd | commande générée par le producteur de commande. |
Reimplemented in cogitantdisplay::EditorGraph.
|
virtual |
Accès au XPM de l'image correspondant à l'icône du producteur de commande.
cmd | commande générée par le producteur de commande. |
Reimplemented in cogitantdisplay::EditorGraph.
|
inline |
Accès à l'état de lecture seule.
|
protectedvirtual |
Annulation de la dernière annulation.
|
virtual |
Rafraichissement de tous les EditorCommandProducer.
|
protectedvirtual |
Retrait de la sélection.
|
protectedvirtual |
Sauvegarde du dessin en cours d'édition.
Habituellement, il n'est pas nécessaire de redéfinir cette méthode, car elle se contente d'appeler saveAs() si le nom du fichier est inconu et saveFile() si le nom est connu.
true
ssi la sauvegarde a été effectuée.
|
protectedvirtual |
Sauvegarde du dessin en cours d'édition avec demande du nom de fichier.
Les noms des formats étant inconnus, par défaut, cette méthode affiche un sélecteur de fichier permettant de choisir un fichier avec n'importe quelle extension, et appelle saveFile() sur le fichier choisi. Il est donc nécessaire de redéfinir cette méthode pour offrir un sélecteur de fichier permettant de choisir parmi les formats disponibles, en fonction du type de dessin édité.
true
ssi la sauvegarde a été effectuée. Reimplemented in cogitantdisplay::EditorGraph.
|
protectedvirtual |
Sauvegarde du dessin en cours d'édition, sans interactions avec l'utilisateur.
Cette méthode se contente de sauvegarder le dessin en cours d'édition. Quand elle est appelée (par save() ou saveAs(), le nom du dessin est fixé). C'est donc dans cette méthode (et non dans save() ou saveAs() que la sauvegarde doit être effecuée, les deux autres méthodes se contentant d'appeler celle-ci. Par défaut, cette méthode ne fait que modifier l'état de m_needssaver, mais n'effectue pas de réelle sauvegarde, car la sauvegarde dépend du type de dessin édité.
true
ssi la sauvegarde a été effectuée. Reimplemented in cogitantdisplay::EditorGraph.
|
protectedvirtual |
Retour au mode de sélection d'objet.
Cette méthode ne fait qu'un appel à setMode(), et il ne devrait pas être nécessaire de la redéfinir.
|
protectedvirtual |
Fixe le contenu du presse-papiers au dessin passé en paramètre.
Pour l'instant, cette méthode ne fait que préparer le dessin pour être mis dans le presse-papiers (void DisplayHandler::runLayoutCrop()). Cette méthode devrait ajouter au presse-papiers les formats "standards" (i.e. communs à tous les éditeurs), comme le format graphique bitmap ou vectoriel.
|
virtual |
Modification du nom de fichier associé au dessin édité.
fn | nom du fichier. |
|
protectedvirtual |
Passage dans un nouveau mode.
m | nouveau mode. |
submode | "sous-mode", représente le type d'objet à créer quand le mode est MODE_newElement. |
|
virtual |
Signalement d'une modification du dessin.
ns | true si le dessin est modifié depuis sa dernière sauvegarde, false sinon. |
|
virtual |
Choix du redimensionnement automatique du Panel.
void cogitantdisplay::Editor::setPropertyAfter | ( | cogitant::Property::Type | tp, |
Drawing::Element const & | el, | ||
Clipping * | cl | ||
) |
Traitements à effectuer après modification d'une propriété d'un élément.
Cette méthode est appelée après une modification d'une propriété d'un élément. Par défaut, le seul traitement effectué par cette méthode est un calcul de la taille des éléments de la sélection (avec mise à jour des tailles des parents) si la propriété est de certains type connus.
void cogitantdisplay::Editor::setPropertyBefore | ( | cogitant::Property::Type | tp, |
Drawing::Element const & | el, | ||
Clipping * | cl | ||
) |
Traitements à effectuer avant modification d'une propriété d'un élément.
Cette méthode est appelée avant une modification d'une propriété d'un élément. Par défaut, aucun traitement n'est effectué par cette méthode, mais il est possible, dans une sous-classe d'Editor d'effectuer des traitements particuliers préparant les éléments à la modification et ajoutant des zones au Clipping.
|
virtual |
Modification de l'état de lecture seule.
ro | true pour passer le dessin en lecture seule, false pour autoriser les modifications. |
|
inlineprotected |
Accès au sous-mode.
Dépend du type d'éditeur.
|
protectedvirtual |
Quel est l'objet situé sous le point.
p | point. |
el | (sortie) élément situé à ces coordonnées. |
selectableonly | si vrai, retourne obligatoirement un élément sélectionnable (Drawing::isSelectable()). |
|
protectedvirtual |
Annulation de la dernière action.
|
protectedvirtual |
Modifie le dessin courant qui est remplacé par le dessin stocké dans l'historique.
Cette méthode doit être redéfinie dans les sous-classes d'Editor afin de modifier effectivement l'objet en cours d'édition et le remplacer par l'entrée de l'historique.
Reimplemented in cogitantdisplay::EditorGraph.
|
protectedvirtual |
Vider l'historique.
Reimplemented in cogitantdisplay::EditorGraph.
|
protectedvirtual |
Nombre maximum d'annulations possibles.
|
protectedvirtual |
Stockage du dessin actuel dans l'historique.
cmd | la commande qui provoque la modification de l'objet en cours d'édition. Cette méthode doit être redéfinie dans les sous-classes (par défaut, elle ne fait rien), afin de mémoriser soit la commande, soit l'objet en cours d'édition. |
Reimplemented in cogitantdisplay::EditorGraph.
|
protectedvirtual |
Position actuelle dans l'historique.
Reimplemented in cogitantdisplay::EditorGraph.
|
protectedvirtual |
Nombre actuel d'annulations possibles.
Reimplemented in cogitantdisplay::EditorGraph.
|
protectedvirtual |
Suppression d'un lien.
Par défaut, n'effectue aucun traitement, la méthode doit donc être redéfinie dans les sous-classes.
ellink | Élément lien. |
end | extrémité (true) ou origine (false). |
cl | (D/R) ajoute à ce clipping la zone devant être redessinée pour montrer la suppression du lien. |
Reimplemented in cogitantdisplay::EditorGraph.
|
protectedvirtual |
Suppression de tous les liens liés aux objets de la sélection.
Par défaut, gènère les commandes UNLINK pour tous les objets liés aux objets de la sélection.
|
protectedvirtual |
Vérification du dessin en cours d'édition.
Par défaut aucun élément de dessin n'est mis en erreur. Cette méthode est donc équivalente à verifyClear(), et doit donc être redéfinie dans les sous-classes pour vérifier que le dessin construit respecte bien les rêgles choisies.
verif | Différentes vérifications peuvent être effectuées selon le type de dessin, et ce paramètre peut donc être utilisé par les sous-classes d'Editor pour lancer les différentes vérifications. Si 0 est passé en paramètre, toutes les vérifications sont exécutées. |
cl | Ce clipping est modifié pour contenir les zones des objets en erreur. |
true
si le dessin en cours ne comporte aucune erreur (parmi les vérifications effectuées) et false
sinon. Reimplemented in cogitantdisplay::EditorGraph.
|
protectedvirtual |
Effacement des erreurs signalées.
Par défaut, cette opération se contente de supprimer les propriétés cogitant::Property::DISPLAY_ERROR de tous les éléments du dessin en cours d'édition.
cl | Ce clipping est modifié pour contenir les zones des objets qui étaient en erreur, et qui doivent donc être réaffichés. |
|
protected |
Affichage de la boîte d'édition des propriétés juste après la création d'un élément.
Faux par défaut.
|
protected |
Redimensionnement automatique des ascenseurs dans le Panel d'affichage.
Faux par défaut.
|
protected |
Retour au mode sélection après création d'un nouvel élément.
Faux par défaut.
|
static |
Le producteur peut être sélectionné par l'utilisateur.
|
static |
Le producteur est dans l'état "sélectionné".
|
static |
Le producteur a deux états sélectionné / non sélectionné.
|
static |
Le producteur est visible.