Guest User

Untitled

a guest
Apr 24th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.42 KB | None | 0 0
  1. /*
  2.  Compile it with:
  3.  gcc -o main main.c `pkg-config --cflags --libs gtk+-2.0`
  4.  
  5.  
  6.  Note:you should have libgtk2.0-dev and mpg123 installed.
  7.  
  8. */
  9.  
  10.  
  11. #include <gtk/gtk.h>
  12. #include <stdlib.h>
  13. #include <stdio.h>
  14. //variabile externe pentru jucarea la applicatie
  15. char *filename;
  16. char command[40];
  17. //ne salveaza comanda
  18. static void save(GtkWidget *widget,GtkWidget *entry) {
  19.  filename = (char *)gtk_entry_get_text(GTK_ENTRY(entry));
  20.  sprintf(command,"mpg123 %s",filename);
  21.  printf("%s",command);
  22. }
  23. //testing GTK threads
  24. static gboolean play(GtkWidget *widget,gpointer data) {
  25.  system(command);
  26.  return FALSE;
  27. }
  28. static void stop(GtkWidget *widget,gpointer data) {
  29.  system("killall mpg123");
  30. }
  31. static void quit(GtkWidget *widget,gpointer data) {
  32.  gtk_main_quit();
  33. }
  34. //prima cutie contine entry si box2,box2 contine 2 butoane cu diferite semnale
  35. int main(int argc, char *argv[]) {
  36.  gtk_init(&argc,&argv);
  37.  GtkWidget *window;
  38.  GtkWidget *entry;
  39.  GtkWidget *box1,*box2;
  40.  GtkWidget *button;
  41.  GtkWidget *separator;
  42.  //setam fereastra
  43.  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  44.  gtk_window_set_default_size(GTK_WINDOW(window),100,50);
  45.  //setam prima cutie
  46.  box1 = gtk_vbox_new(FALSE,0);
  47.  //mai intai preparam entry-ul pentru box1
  48.  entry = gtk_entry_new();
  49.  g_signal_connect(entry,"changed",G_CALLBACK(save),entry);
  50.  gtk_box_pack_start(GTK_BOX(box1),entry,FALSE,FALSE,0);
  51.  gtk_widget_show(entry);
  52.  //dupa aia bagam un separator
  53.  separator = gtk_hseparator_new();
  54.  gtk_box_pack_start(GTK_BOX(box1),separator,FALSE,FALSE,0);
  55.  gtk_widget_show(separator);
  56.  //am terminat cu box1
  57.  //hai sa terminam si box2
  58.  box2 = gtk_hbox_new(FALSE,0);
  59.  button = gtk_button_new_with_label("Play!");
  60.  g_signal_connect(button,"clicked",G_CALLBACK(play),NULL);
  61.  gtk_box_pack_start(GTK_BOX(box2),button,TRUE,FALSE,0);
  62.  gtk_widget_show(button);
  63.  button = gtk_button_new_with_label("Stop!");
  64.  g_signal_connect(button,"clicked",G_CALLBACK(stop),NULL);
  65.  gtk_box_pack_start(GTK_BOX(box2),button,TRUE,FALSE,0);
  66.  gtk_widget_show(button);
  67.  button = gtk_button_new_with_label("Quit");
  68.  g_signal_connect(button,"clicked",G_CALLBACK(quit),NULL);
  69.  gtk_box_pack_start(GTK_BOX(box2),button,TRUE,FALSE,0);
  70.  gtk_widget_show(button);
  71.  //hai sa adaugam cutiuta 2 in unu
  72.  gtk_box_pack_start(GTK_BOX(box1),box2,FALSE,FALSE,0);
  73.  gtk_widget_show(box2);
  74.  gtk_container_add(GTK_CONTAINER(window),box1);
  75.  gtk_widget_show(box1);
  76.  gtk_widget_show(window);
  77.  gtk_main();
  78. }
Add Comment
Please, Sign In to add comment