added Fullscreenmode
This commit is contained in:
@@ -70,6 +70,7 @@ struct GTK_STRUCT {
|
|||||||
GdkWindow *video_window_xwindow;
|
GdkWindow *video_window_xwindow;
|
||||||
gulong embed_xid;
|
gulong embed_xid;
|
||||||
cairo_surface_t *surface = NULL;
|
cairo_surface_t *surface = NULL;
|
||||||
|
bool is_fullscreen = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
static GTK_STRUCT * GTK_data = NULL;
|
static GTK_STRUCT * GTK_data = NULL;
|
||||||
@@ -169,6 +170,27 @@ void configure_callback(GtkWindow *window, GdkEvent *event, gpointer data) {
|
|||||||
gtk_widget_queue_draw(GTK_data->video_window);
|
gtk_widget_queue_draw(GTK_data->video_window);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static bool click_callback(GtkWindow *window, GdkEventButton *event, gpointer data) {
|
||||||
|
|
||||||
|
|
||||||
|
if (event->button == 1 && event->type == GDK_2BUTTON_PRESS) {
|
||||||
|
printf("Double clicked!");
|
||||||
|
|
||||||
|
if(GTK_data->is_fullscreen) {
|
||||||
|
gtk_window_unfullscreen((GtkWindow*)GTK_data->app_window);
|
||||||
|
GTK_data->is_fullscreen = false;
|
||||||
|
} else {
|
||||||
|
gtk_window_fullscreen((GtkWindow*)GTK_data->app_window);
|
||||||
|
GTK_data->is_fullscreen = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
init_signals();
|
init_signals();
|
||||||
|
|
||||||
@@ -235,8 +257,11 @@ int main(int argc, char *argv[]) {
|
|||||||
//gtk_widget_set_double_buffered (GTK_data->video_window, FALSE);
|
//gtk_widget_set_double_buffered (GTK_data->video_window, FALSE);
|
||||||
gtk_container_add (GTK_CONTAINER (GTK_data->app_window), GTK_data->video_window);
|
gtk_container_add (GTK_CONTAINER (GTK_data->app_window), GTK_data->video_window);
|
||||||
gtk_widget_show_all (GTK_data->app_window);
|
gtk_widget_show_all (GTK_data->app_window);
|
||||||
|
gtk_widget_add_events(GTK_data->app_window, GDK_BUTTON_PRESS_MASK);
|
||||||
gtk_widget_realize (GTK_data->video_window);
|
gtk_widget_realize (GTK_data->video_window);
|
||||||
|
gtk_widget_realize (GTK_data->app_window);
|
||||||
g_signal_connect (G_OBJECT (GTK_data->video_window), "draw",G_CALLBACK (draw_callback), NULL);
|
g_signal_connect (G_OBJECT (GTK_data->video_window), "draw",G_CALLBACK (draw_callback), NULL);
|
||||||
|
g_signal_connect (G_OBJECT (GTK_data->app_window), "button-press-event" ,G_CALLBACK (click_callback), NULL);
|
||||||
g_signal_connect(G_OBJECT(GTK_data->app_window), "configure-event", G_CALLBACK(configure_callback), NULL);
|
g_signal_connect(G_OBJECT(GTK_data->app_window), "configure-event", G_CALLBACK(configure_callback), NULL);
|
||||||
|
|
||||||
GTK_data->video_window_xwindow = gtk_widget_get_window (GTK_data->video_window);
|
GTK_data->video_window_xwindow = gtk_widget_get_window (GTK_data->video_window);
|
||||||
|
|||||||
Reference in New Issue
Block a user