GTK -> SDL
Fereah
Messages postés
1
Statut
Membre
-
nar6du14 Messages postés 506 Statut Membre -
nar6du14 Messages postés 506 Statut Membre -
Bonjour,
Je voulais savoir si il était possible de mettre du code GTK dans du code SDL, afin que je puisse mettre des menus dans mon programme SDL, car d'après mes connaissance, la SDL ne propose pas les menus ?
Merci de vos réponse
Je voulais savoir si il était possible de mettre du code GTK dans du code SDL, afin que je puisse mettre des menus dans mon programme SDL, car d'après mes connaissance, la SDL ne propose pas les menus ?
Merci de vos réponse
A voir également:
- GTK -> SDL
- Unison gtk - Télécharger - Gestion de fichiers
- GTK Selfimage - Télécharger - Divers Utilitaires
- Gtk-warning **: cannot open display: - Forum Linux / Unix
- Installer SDL image 1.2.6 ✓ - Forum Programmation
- Problème de disparition de la fenêtre (SDL) - Forum Programmation
2 réponses
t'as qu'à crée une fenetre, comprenant un menu, une barre d'outil et un zone principale(GtkDrawingarea) dont tu passeras l'ID à ta grosse fonction SDL pour le traitement que tu souhaites. Mais, comme c'est du code c de toute façon, oui ça marchera, il te suffit juste d'avoir les libs et les includes necessaires
Je n'ai pas très bien compris ta réponses. En gros moi ce que je eut, c'est une barre de menu en haut de mon programme comme Microsoft pour pouvoir enregistrer , ouvrir un fichier, l'imprimer, etc... Bref pouvoir faire tous les truc qui nécessite d'aller dans les paramètre non pas de mon programme mais du bureau de l'utilisateur
#include <gtk/gtk.h>
#include <sdl/sdl.h>
#include <gdk/gdkh
int main(int argc, char* argv[])
{
gtk_init(&argc, &argv);
void get_id(GtkWidget*wid, gpointer user_data);
GtkWidget* win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
GtkWidget* box = gtk_box_new(Gtk_ORIENTATION_VERTICAL, 10);
GtkWidget* draw_area = gtk_drawing_area_new(); /*à passe a SDL*/
GtkWidget*menubar= gtk_menu_bar_new();
gtk_menu_bar_set_pack_direction(GTK_MENU_BAR(menubar), GTK_PACK_DIRECTION_LTR);
gtk_box_pack_start(GTK_BOX(box), menubar, FALSE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(box), draw_area, TRUE, TRUE, 0);
gtk_container_add(GTK_CONTAINER(win), box);
/*il faut connecter un handler pour le signal "realize" afin de passe l'identifiant de la zone de dessin à la SDL*/
g_signal_connect(G_OBJECT(draw_area), "realize", G_CALLBACK(get_id), NULL);
gtk_widget_show_all(win);
gtk_main();
return 0;
}
void sdl_job(guint32 window_id)
{
/*tu dois definir ici un thread et dans ce thread tu implémenteras ce que la SDL doit dessiner sur l'aire de dessin défini par "draw_area": l'aire de dessin ici sera désignée par "window_id" qui représente l'identifiant de la fenetre de dessin sur le systme d'exploitation. chaque fenetre crée sur le système d'exploitation a un identifiant unique la fonction get_id permet de reccupérer l'identifiant de draw_area, cet identifiant sera par la suite utilisé par la SDL et cette*/
}
void get_id(GtkWidget* wid, gpointer data)
{
sdl_job( GDK_WINDOW_ID(gtk_widget_get_window(wid)) );
}