#include #include #include #define WINDOW_WIDTH 400 #define WINDOW_HEIGHT 400 static void activate (GtkApplication *app, gpointer user_data) { GtkWidget *window; GtkWidget *da; GtkWidget *gamma; GtkWidget *grid; window = gtk_application_window_new (app); gtk_window_set_title (GTK_WINDOW (window), "Window"); // gtk_container_set_border_width (GTK_CONTAINER (window), 10); grid = gtk_grid_new(); { /* da = gtk4_curve_new (); gtk_widget_set_name (da, "curve1"); gamma = da; */ if (strstr((const char*)user_data, "gtk4curve-sample")) { da = gtk4_curve_new (); gtk_widget_set_name (da, "curve1"); gamma = da; } else { gamma = gtk4_gamma_new (); da = gtk4_gamma_get_curve (gamma); // gtk_widget_show (da); gtk_widget_set_name (gamma, "GammaCurve"); // gtk_widget_set_size_request (da, WINDOW_WIDTH - 18, WINDOW_HEIGHT - 18); } gtk4_curve_set_color_background_rgba (da, 0.8, 0.8, 0.8, 0.5); gtk4_curve_set_color_grid_rgba (da, 0.0, 0.0, 0.0, 0.5); gtk4_curve_set_color_curve_rgba (da, 1.0, 1.0, 1.0, 1.0); gtk4_curve_set_color_cpoint_rgba (da, 0.8, 0.3, 0.3, 1.0); gtk4_curve_set_use_theme_background(da, FALSE); gtk_widget_set_size_request (da, WINDOW_WIDTH, WINDOW_HEIGHT); gtk4_curve_set_grid_size (da, GTK4_CURVE_GRID_SMALL); gtk4_curve_set_range (da, 0, WINDOW_WIDTH, 0, WINDOW_HEIGHT); } gtk_widget_set_size_request (gamma, WINDOW_WIDTH, WINDOW_HEIGHT); gtk_grid_attach(GTK_GRID(grid), gamma, 1, 1, 1, 1); gtk_widget_set_halign (grid, GTK_ALIGN_CENTER); gtk_widget_set_valign (grid, GTK_ALIGN_CENTER); gtk_widget_set_hexpand (grid, TRUE); gtk_window_set_child (GTK_WINDOW (window), grid); // gtk_window_set_child (GTK_WINDOW (window), gamma); gtk_widget_show (gamma); gtk_widget_show (grid); gtk_widget_show (window); } int main (int argc, char **argv) { GtkApplication *app; int status; app = gtk_application_new ("org.gtk.sample", G_APPLICATION_FLAGS_NONE); g_signal_connect (app, "activate", G_CALLBACK (activate), argv[0]); status = g_application_run (G_APPLICATION (app), argc, argv); g_object_unref (app); return status; }