GTK -> SDL
Fereah
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
nar6du14 Messages postés 459 Date d'inscription Statut Membre Dernière intervention -
nar6du14 Messages postés 459 Date d'inscription Statut Membre Dernière intervention -
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
- SDL ou SDL2 !?! - Forum C
- Menu SDL pour mon jeu ✓ - Forum C
- Gtk-warning **: cannot open display: - Forum Linux / Unix
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)) );
}