1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
| #include <stdlib.h>
#include <gtk/gtk.h>
#include <FMOD/fmod.h>
static GtkWidget *fenetrePrincipal, *box1, *barMenu, *menu, *itemMenu, *objetMenu, *barEtat, *box2;
static FSOUND_STREAM *musique = NULL;
static GtkWidget *pFileSelection;
void choixMusique(GtkWidget *pWidget, gpointer data);
int main(int argc, char *argv[])
{
guint iContextId1, iContextId2;
gtk_init(&argc, &argv);
FSOUND_Init(44100, 32, 0);//Initialisation FMod
//La fenetre
fenetrePrincipal = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(fenetrePrincipal), "Agenda");
gtk_window_set_position(GTK_WINDOW(fenetrePrincipal), GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(fenetrePrincipal), 400, 200);
g_signal_connect(G_OBJECT(fenetrePrincipal), "delete-event", G_CALLBACK(gtk_main_quit), NULL);
//
//La box pour tout contenir
box1 = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(fenetrePrincipal), box1);
//
//bare d'etat
barEtat = gtk_statusbar_new();
iContextId1 = gtk_statusbar_get_context_id(GTK_STATUSBAR(barEtat), "ExitMsg");
iContextId2 = gtk_statusbar_get_context_id(GTK_STATUSBAR(barEtat), "AboutMsg");
//
//////////////////////////Le menu du haut/////////////////////
//La bar de menu
barMenu = gtk_menu_bar_new();
//Premier menu
//Le menu en lui meme
menu = gtk_menu_new();
//Crétation des sous dossier dans le menu
objetMenu = gtk_menu_item_new_with_label("Ouvrir une musique");
gtk_menu_shell_append(GTK_MENU_SHELL(menu), objetMenu);
g_signal_connect(G_OBJECT(objetMenu), "activate", G_CALLBACK(choixMusique), NULL);
//Les premier truc du menu
itemMenu = gtk_menu_item_new_with_label("Fichier");
gtk_menu_item_set_submenu(GTK_MENU_ITEM(itemMenu), menu);
//
gtk_menu_shell_append(GTK_MENU_SHELL(barMenu), itemMenu);
//
//Second menu
//Le menu en lui meme
menu = gtk_menu_new();
//Création des sous dossier dans le menu
objetMenu = gtk_menu_item_new_with_label("Aide...");
gtk_menu_shell_append(GTK_MENU_SHELL(menu), objetMenu);
//Les premier truc du menu
itemMenu = gtk_menu_item_new_with_label("?");
gtk_menu_item_set_submenu(GTK_MENU_ITEM(itemMenu), menu);
//
gtk_menu_shell_append(GTK_MENU_SHELL(barMenu), itemMenu);
///
///////////////////////////////////
gtk_box_pack_start(GTK_BOX(box1), barMenu, FALSE, FALSE, 0);
gtk_box_pack_end(GTK_BOX(box1), barEtat, FALSE, FALSE, 0);
//Box 2
box2 = gtk_hbox_new(TRUE, 0);
gtk_box_pack_start(GTK_BOX(box1), box2, FALSE, FALSE, 0);
//
gtk_widget_show_all(fenetrePrincipal);
gtk_main();
return EXIT_SUCCESS;
}
void choixMusique(GtkWidget *pWidget, gpointer data)
{
GtkWidget *pParent;
gchar *sChemin = NULL;
pParent = GTK_WIDGET(data);
/* Creation de la fenetre de selection */
pFileSelection = gtk_file_chooser_dialog_new("Ouvrir...",
GTK_WINDOW(pParent),
GTK_FILE_CHOOSER_ACTION_OPEN,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OPEN, GTK_RESPONSE_OK,
NULL);
/* On limite les actions a cette fenetre */
gtk_window_set_modal(GTK_WINDOW(pFileSelection), TRUE);
/* Affichage fenetre */
switch(gtk_dialog_run(GTK_DIALOG(pFileSelection)))
{
case GTK_RESPONSE_OK:
/* Recuperation du chemin */
sChemin = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(pFileSelection));
musique = FSOUND_Stream_Open(sChemin, 0, 0, 0);
g_free(sChemin);
break;
default:
break;
}
gtk_widget_destroy(pFileSelection);
} |
Partager