/+junk/gnome-dialer

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/%2Bjunk/gnome-dialer
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
59
60
61
62
63
64
65
66
67
68
69
#include "app.h"
#include <stdlib.h>

typedef struct _App {
  GtkBuilder * bldr;
  GtkWidget * popover;
  GtkWidget * window;
  GtkWidget * openpad;
  GtkWidget * dial;
} App;

void
app_destroy (GtkWidget * widget, gpointer user_data) {
  gtk_main_quit ();
}

void
app_do_stuff (GtkWidget * widget, App * user_data) {
  
  gtk_widget_show_all (user_data->popover);
}

App *
app_new () {
  
  App * self = g_malloc (sizeof (App));
  
  self->bldr = gtk_builder_new ();
  
  if (!gtk_builder_add_from_file (self->bldr, "./main.glade", NULL)) {
    g_print ("Error.");
    g_object_unref (self->bldr);
    exit (1);
  }
  
  if (!gtk_builder_add_from_file (self->bldr, "./dial.glade", NULL)) {
    g_print ("Error.");
    g_object_unref (self->bldr);
    exit (1);
  }
  
  self->window = (GtkWidget *) gtk_builder_get_object (self->bldr,
                                                       "GnomeDialer");
  
  self->openpad = (GtkWidget *) gtk_builder_get_object (self->bldr,
                                                        "openpad");
  
  g_signal_connect (G_OBJECT (self->openpad), "clicked",
                    G_CALLBACK (app_do_stuff),
                    self);
  
  gtk_builder_connect_signals(self->bldr, NULL);
  
  g_signal_connect (G_OBJECT(self->window), "destroy",
                    G_CALLBACK(app_destroy),
                    self);
  
  self->popover = gtk_popover_new (self->openpad);
  
  gtk_container_add (GTK_CONTAINER (self->popover),
                     GTK_WIDGET(gtk_builder_get_object (self->bldr, "dial")));
  
  gtk_widget_show_all (self->window);
  
  gtk_widget_hide (self->popover);
  
  return self;
}