File: test-slider.c

package info (click to toggle)
libdazzle 3.44.0-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 4,964 kB
  • sloc: ansic: 64,328; xml: 69; javascript: 19; makefile: 12
file content (58 lines) | stat: -rw-r--r-- 1,889 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

#include <dazzle.h>
#include <stdlib.h>

static void
connect_button (GtkBuilder  *builder,
                const gchar *name,
                GCallback    callback)
{
  DzlSlider *slider = DZL_SLIDER (gtk_builder_get_object (builder, "slider"));
  GtkButton *button = GTK_BUTTON (gtk_builder_get_object (builder, name));

  g_assert (slider != NULL);
  g_assert (button != NULL);

  g_signal_connect_swapped (button, "clicked", callback, slider);
}

static void set_bottom (DzlSlider *slider) { dzl_slider_set_position (slider, DZL_SLIDER_BOTTOM); }
static void set_top    (DzlSlider *slider) { dzl_slider_set_position (slider, DZL_SLIDER_TOP);    }
static void set_left   (DzlSlider *slider) { dzl_slider_set_position (slider, DZL_SLIDER_LEFT);   }
static void set_right  (DzlSlider *slider) { dzl_slider_set_position (slider, DZL_SLIDER_RIGHT);  }
static void set_none   (DzlSlider *slider) { dzl_slider_set_position (slider, DZL_SLIDER_NONE);   }

int
main (int   argc,
      char *argv[])
{
  GtkBuilder *builder;
  GObject *window;
  GError *error = NULL;
  g_autofree gchar *path = g_build_filename (TEST_DATA_DIR, "test-slider.ui", NULL);

  gtk_init (&argc, &argv);

  builder = gtk_builder_new ();
  gtk_builder_add_from_file (builder, path, &error);
  g_assert_no_error (error);

  window = gtk_builder_get_object (builder, "window");
  g_assert (window != NULL);

  connect_button (builder, "up_button", G_CALLBACK (set_bottom));
  connect_button (builder, "down_button", G_CALLBACK (set_top));
  connect_button (builder, "end_button", G_CALLBACK (set_left));
  connect_button (builder, "start_button", G_CALLBACK (set_right));
  connect_button (builder, "none_button", G_CALLBACK (set_none));

  g_signal_connect (window, "delete-event", gtk_main_quit, NULL);

  gtk_window_present (GTK_WINDOW (window));

  gtk_main ();

  g_object_unref (builder);

  return EXIT_SUCCESS;
}