L'élément graphique zone de dessin

L'élément graphique DrawingArea est une fenêtre vierge qui vous offre la possibilité de créer librement tous les graphiques voulus. Mais, en contrepartie de cette liberté, il vous incombe la responsabilité de gérer les événements d'exposition sur l'élément graphique. Quand un élément graphique est affiché pour la première fois ou quand il est couvert puis découvert, il est nécessaire de le tracer. La plupart des éléments graphiques sont pourvus de code pour effectuer ces opérations, mais l'élément graphique DrawingArea n'en dispose pas ; il vous laisse le soin d'écrire votre propre gestionnaire des signaux d'événements d'exposition pour définir la façon dont le contenu du widget sera tracé. C'est effectué le plus souvent en surdéfinissant la fonction membre virtuelle on_expose_event().

GTK+ utilise l'API de dessin Cairo. Avec gtkmm, vous pouvez faire usage de l'API C++ pour cairo nommée cairomm.

Avec Cairo, vous pouvez tracer des figures très sophistiquées, mais les fonctions membres pour réaliser cela sont tout à fait simples. Cairo fournit des fonctions membres pour tracer des lignes droites, des lignes courbes et des arcs (y compris des cercles). Ces figures de base peuvent être combinées pour créer des formes complexes et des régions qui peuvent être remplies par des couleurs unies, des dégradés, des motifs et autres choses. En plus, Cairo peut effectuer des transformations complexes, des compositions d'images et effectuer des rendus de texte sans crénelage.

Cairo et Pango

Même si Cairo peut afficher du texte, il n'a pas été conçu pour être un remplaçant de Pango. Pango est un meilleur choix si vous devez exécuter des rendus de texte complexes comme des textes enveloppants ou inscrits dans une ellipse. L'écriture avec Cairo doit être réservée à des textes intégrés dans un graphique.

Dans ce paragraphe du tutoriel, nous voyons le modèle du tracé de base Cairo ; nous décrivons chacun des éléments de tracé de base dans le détail (avec des exemples) et ensuite nous présentons une application simple utilisant Cairo pour dessiner un élément graphique d'horloge analogique.