Skip to content
Snippets Groups Projects
Select Git revision
  • b4c0b2f9f71029b35ca7abd5c88fe1929f4e77c3
  • master default protected
  • v3-modify-mail
  • snyk-fix-207483a1e839c807f95a55077e86527d
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_ru
  • translations_6e4a5e377a3e50f17e6402264fdbfcc6_ru
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_fa_IR
  • translations_en-yml--master_fa_IR
  • snyk-fix-7d634f2eb65555f41bf06d6af930e812
  • translations_en-yml--master_ar
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_el
  • jfederico-patch-1
  • v2
  • v3
  • v1
  • release-3.1.0.2
  • release-3.1.0.1
  • release-3.1.0
  • release-2.14.8.4
  • release-3.0.9.1
  • release-3.0.9
  • release-3.0.8.1
  • release-2.14.8.3
  • release-3.0.8
  • release-3.0.7.1
  • release-2.14.8.2
  • release-3.0.7
  • release-3.0.6.1
  • release-3.0.6
  • release-3.0.5.4
  • release-3.0.5.3
  • release-2.14.8.1
  • release-3.0.5.2
  • release-3.0.5.1
  • release-3.0.5
35 results

configuration.rake

Blame
  • gtk-7.c 2.23 KiB
    #include <stdio.h>
    #include <gtk/gtk.h>
    
    gboolean draw (GtkWidget *widget, cairo_t *c, gpointer data)
    {
      GdkRGBA red = { 1.0, 0.0, 0.0, 0.8 };
      GdkRGBA yellow = { 1.0, 1.0, 0.0, 0.6 };
      GdkRGBA blue = { 0.0, 0.5, 1.0, 0.4 };
    
      gdk_cairo_set_source_rgba (c, &red);
      cairo_rectangle (c, 10, 10, 60, 40);
      cairo_fill (c);
    
      gdk_cairo_set_source_rgba (c, &yellow);
      cairo_arc (c, 65, 50, 30, 0, 2 * G_PI);
      cairo_fill (c);
    
      gdk_cairo_set_source_rgba (c, &blue);
      cairo_move_to (c, 10, 70);
      cairo_line_to (c, 70, 70);
      cairo_line_to (c, 40, 18);
      cairo_close_path (c);
      cairo_fill (c);
    
      return FALSE;  /* TRUE to stop other handlers from being invoked for the event.
                        FALSE to propagate the event further. */
    }
    
    gboolean button_press (GtkWidget *widget, GdkEventButton *e, gpointer data)
    {
      printf ("button %d pressed at (%lf, %lf)\n", e->button, e->x, e->y);
      return FALSE;
    }
    
    gboolean key_press (GtkWidget *widget, GdkEventKey *e, gpointer data)
    {
      printf ("key '%c' (%d) pressed\n", e->keyval, e->keyval);
      return FALSE;
    }
    
    int main (int argc, char **argv)
    {
      gtk_init (&argc, &argv);
      GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
      gtk_window_set_title (GTK_WINDOW (window), "Hello");
      g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
    
      GtkWidget *vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
      gtk_container_add (GTK_CONTAINER (window), vbox);
    
      GtkWidget *button = gtk_button_new_with_label ("Quit");
      g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL);
      gtk_container_add (GTK_CONTAINER (vbox), button);
    
      GtkWidget *drawing_area = gtk_drawing_area_new ();
      gtk_container_add (GTK_CONTAINER (vbox), drawing_area);
      g_signal_connect (drawing_area, "draw", G_CALLBACK (draw), NULL);
      gtk_widget_set_size_request (drawing_area, 100, 100);
      gtk_widget_add_events (drawing_area, GDK_BUTTON_PRESS_MASK);
      g_signal_connect (drawing_area, "button_press_event", G_CALLBACK (button_press), NULL);
    
      gtk_widget_add_events (window, GDK_KEY_PRESS_MASK);
      g_signal_connect (window, "key_press_event", G_CALLBACK (key_press), NULL);
    
      gtk_widget_show (drawing_area);
      gtk_widget_show (button);
      gtk_widget_show (vbox);
      gtk_widget_show (window);
      gtk_main ();
      return 0;
    }