Update gtk4 media-test
This commit is contained in:
parent
31613011ab
commit
89b2303ed0
Binary file not shown.
|
@ -2,12 +2,22 @@
|
||||||
|
|
||||||
static GtkWidget *mediacontrol;
|
static GtkWidget *mediacontrol;
|
||||||
|
|
||||||
void dialog_response(GtkWidget *widget,int response,gpointer data){
|
void dialog_response(GtkWidget *widget,int response,GtkWindow *window){
|
||||||
//Get File and set the file to the mediacontrols
|
//Get File and set the file to the mediacontrols
|
||||||
if(response==GTK_RESPONSE_OK){
|
if(response==GTK_RESPONSE_OK){
|
||||||
|
//Get media File and filename
|
||||||
|
char *filename;
|
||||||
|
char title[100];
|
||||||
GFile *file=gtk_file_chooser_get_file(GTK_FILE_CHOOSER(widget));
|
GFile *file=gtk_file_chooser_get_file(GTK_FILE_CHOOSER(widget));
|
||||||
GtkMediaStream *media=gtk_media_file_new_for_file(file);
|
GtkMediaStream *media=gtk_media_file_new_for_file(file);
|
||||||
gtk_media_controls_set_media_stream(GTK_MEDIA_CONTROLS(mediacontrol),media);
|
gtk_media_controls_set_media_stream(GTK_MEDIA_CONTROLS(mediacontrol),media);
|
||||||
|
filename=g_file_get_basename(file);
|
||||||
|
sprintf(title,"%s-gtk4-media",filename);
|
||||||
|
gtk_window_set_title(GTK_WINDOW(window),title);
|
||||||
|
//Free the memory
|
||||||
|
g_object_unref(file);
|
||||||
|
g_object_unref(media);
|
||||||
|
g_free(filename);
|
||||||
}
|
}
|
||||||
gtk_window_destroy(GTK_WINDOW(widget));
|
gtk_window_destroy(GTK_WINDOW(widget));
|
||||||
}
|
}
|
||||||
|
@ -27,25 +37,32 @@ void dialog_open(GtkWidget *widget,GtkWindow *parent){
|
||||||
gtk_file_filter_add_pattern(filter,"*.aac");
|
gtk_file_filter_add_pattern(filter,"*.aac");
|
||||||
gtk_file_filter_add_pattern(filter,"*.m4a");
|
gtk_file_filter_add_pattern(filter,"*.m4a");
|
||||||
gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(dialog),filter);
|
gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(dialog),filter);
|
||||||
g_signal_connect(dialog,"response",G_CALLBACK(dialog_response),NULL);
|
g_signal_connect(dialog,"response",G_CALLBACK(dialog_response),parent);
|
||||||
gtk_widget_show(dialog);
|
gtk_widget_show(dialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gtkmain(GtkApplication *app,gpointer user_data){
|
static void gtkmain(GtkApplication *app,gpointer user_data){
|
||||||
GtkWidget *window,*vbox,*btnopen;
|
GtkWidget *window,*btnopen,*header;
|
||||||
//Initalize window
|
//Initalize window
|
||||||
window=gtk_application_window_new(app);
|
window=gtk_application_window_new(app);
|
||||||
gtk_window_set_icon_name(GTK_WINDOW(window),"org.gtk.daleclack");
|
gtk_window_set_icon_name(GTK_WINDOW(window),"org.gtk.daleclack");
|
||||||
gtk_window_set_default_size(GTK_WINDOW(window),400,20);
|
gtk_window_set_default_size(GTK_WINDOW(window),400,40);
|
||||||
vbox=gtk_box_new(GTK_ORIENTATION_VERTICAL,0);
|
gtk_window_set_title(GTK_WINDOW(window),"Gtk4 media test");
|
||||||
|
//vbox=gtk_box_new(GTK_ORIENTATION_VERTICAL,0);
|
||||||
//Media controls
|
//Media controls
|
||||||
mediacontrol=gtk_media_controls_new(NULL);
|
mediacontrol=gtk_media_controls_new(NULL);
|
||||||
gtk_box_append(GTK_BOX(vbox),mediacontrol);
|
gtk_window_set_child(GTK_WINDOW(window),mediacontrol);
|
||||||
|
//gtk_box_append(GTK_BOX(vbox),mediacontrol);
|
||||||
|
//Header Bar
|
||||||
|
header=gtk_header_bar_new();
|
||||||
|
gtk_header_bar_set_show_title_buttons(GTK_HEADER_BAR(header),TRUE);
|
||||||
|
gtk_header_bar_set_decoration_layout(GTK_HEADER_BAR(header),"close,minimize,maximize:menu");
|
||||||
//"Open File" button
|
//"Open File" button
|
||||||
btnopen=gtk_button_new_with_label("Open Media File");
|
btnopen=gtk_button_new_with_label("Open Media File");
|
||||||
g_signal_connect(btnopen,"clicked",G_CALLBACK(dialog_open),window);
|
g_signal_connect(btnopen,"clicked",G_CALLBACK(dialog_open),window);
|
||||||
gtk_box_append(GTK_BOX(vbox),btnopen);
|
gtk_header_bar_pack_end(GTK_HEADER_BAR(header),btnopen);
|
||||||
gtk_window_set_child(GTK_WINDOW(window),vbox);
|
gtk_window_set_titlebar(GTK_WINDOW(window),header);
|
||||||
|
gtk_window_set_focus(GTK_WINDOW(window),btnopen);
|
||||||
gtk_widget_show(window);
|
gtk_widget_show(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue