sane-project-frontends/libgtk/sample-gtk4.c

80 wiersze
2.2 KiB
C

#include <gtk/gtk.h>
#include <gtk4curve.h>
#include <gtk4gamma.h>
#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;
}