Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Compile it with:
- gcc -o main main.c `pkg-config --cflags --libs gtk+-2.0`
- Note:you should have libgtk2.0-dev and mpg123 installed.
- */
- #include <gtk/gtk.h>
- #include <stdlib.h>
- #include <stdio.h>
- //variabile externe pentru jucarea la applicatie
- char *filename;
- char command[40];
- //ne salveaza comanda
- static void save(GtkWidget *widget,GtkWidget *entry) {
- filename = (char *)gtk_entry_get_text(GTK_ENTRY(entry));
- sprintf(command,"mpg123 %s",filename);
- printf("%s",command);
- }
- //testing GTK threads
- static gboolean play(GtkWidget *widget,gpointer data) {
- system(command);
- return FALSE;
- }
- static void stop(GtkWidget *widget,gpointer data) {
- system("killall mpg123");
- }
- static void quit(GtkWidget *widget,gpointer data) {
- gtk_main_quit();
- }
- //prima cutie contine entry si box2,box2 contine 2 butoane cu diferite semnale
- int main(int argc, char *argv[]) {
- gtk_init(&argc,&argv);
- GtkWidget *window;
- GtkWidget *entry;
- GtkWidget *box1,*box2;
- GtkWidget *button;
- GtkWidget *separator;
- //setam fereastra
- window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_default_size(GTK_WINDOW(window),100,50);
- //setam prima cutie
- box1 = gtk_vbox_new(FALSE,0);
- //mai intai preparam entry-ul pentru box1
- entry = gtk_entry_new();
- g_signal_connect(entry,"changed",G_CALLBACK(save),entry);
- gtk_box_pack_start(GTK_BOX(box1),entry,FALSE,FALSE,0);
- gtk_widget_show(entry);
- //dupa aia bagam un separator
- separator = gtk_hseparator_new();
- gtk_box_pack_start(GTK_BOX(box1),separator,FALSE,FALSE,0);
- gtk_widget_show(separator);
- //am terminat cu box1
- //hai sa terminam si box2
- box2 = gtk_hbox_new(FALSE,0);
- button = gtk_button_new_with_label("Play!");
- g_signal_connect(button,"clicked",G_CALLBACK(play),NULL);
- gtk_box_pack_start(GTK_BOX(box2),button,TRUE,FALSE,0);
- gtk_widget_show(button);
- button = gtk_button_new_with_label("Stop!");
- g_signal_connect(button,"clicked",G_CALLBACK(stop),NULL);
- gtk_box_pack_start(GTK_BOX(box2),button,TRUE,FALSE,0);
- gtk_widget_show(button);
- button = gtk_button_new_with_label("Quit");
- g_signal_connect(button,"clicked",G_CALLBACK(quit),NULL);
- gtk_box_pack_start(GTK_BOX(box2),button,TRUE,FALSE,0);
- gtk_widget_show(button);
- //hai sa adaugam cutiuta 2 in unu
- gtk_box_pack_start(GTK_BOX(box1),box2,FALSE,FALSE,0);
- gtk_widget_show(box2);
- gtk_container_add(GTK_CONTAINER(window),box1);
- gtk_widget_show(box1);
- gtk_widget_show(window);
- gtk_main();
- }
Add Comment
Please, Sign In to add comment