Salut,
Savez-vous si une tel bibliothèque existe ?
J'ai trouvé la bibliothèque gdl de gome mais c'est pas comme sous Gimp. Je si vous connaissiez un repo ou je puisse la téléchargé.
https://www.youtube.com/watch?v=S_HC0EkV-AQ
Merci a vous,
Version imprimable
Salut,
Savez-vous si une tel bibliothèque existe ?
J'ai trouvé la bibliothèque gdl de gome mais c'est pas comme sous Gimp. Je si vous connaissiez un repo ou je puisse la téléchargé.
https://www.youtube.com/watch?v=S_HC0EkV-AQ
Merci a vous,
Bonjour.
J'ai cherché dans la documentation officielle de Gtk+ sans rien de trouver de probant. L'équipe de Gimp a certainement construit cette fonctionnalité.
Ceci dit, ils se sont sûrement appuyés sur les fonctions intrinsèques de Gtk+. Il me semble que le principe utilisé ici est le drag and drop sur des onglets de GtkNoteBook.
En y réfléchissant un peu, je créerais un espace de réception vide; par exemple un GtkPanel. Puis j'utiliserais les signaux de drag&drop sur les widgets que tu désires déplacer.
Bon, je le reconnais, c'est certainement plus facile à dire qu'à faire ;)...
Bonjour Gerald3D,
Merci pour ta participation. Tu as vus juste : "c'est plus facile à dire qu'à faire" (je taquine)
J'ai regardé comment Gimp s'y ai pris et j'ai abandonné l'idée d'extraire le code pour plusieurs raisons:
- Il y a un trop fort couplage avec l'application/l'interface graphique de Gimp : context, core, menu, session, drag-n-drop (Jpg, svg, ...), dialogs factory (GimpWindow)
- Le GtkBuildable n'est pas implémenté
- L'insertion de dock horizontal n'est pas implémenté (gimp_dock_columns)
Du coup, je me suis rabattue sur la bibliothèque GDL, malgré un bug rencontré lors de mes test au niveau du layout (xml), où je compte ajouter quelques modif : drag n drop depuis un onglet...
Bref. Pour confirmer et compléter ce que tu m'as dis, Gimp crée le tab_label du notebook ainsi:
Maintenant, il faut que je trouve le courage de le faireCode:
1
2
3
4
5
6
7
8
9
10
11 GtkWidget *event_box; event_box = gtk_event_box_new (); gtk_event_box_set_visible_window (GTK_EVENT_BOX (event_box), FALSE); gtk_event_box_set_above_child (GTK_EVENT_BOX (event_box), TRUE); gtk_container_add (GTK_CONTAINER (event_box), tab_widget); gtk_widget_show (tab_widget); //... g_signal_connect_object (tab_widget, "drag-begin", G_CALLBACK (ux_dockbook_tab_drag_begin), dockable, 0); //...