/gpump/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/gpump/trunk
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/* c-basic-offset: 2; tab-width: 2; indent-tabs-mode: nil
 * vi: set shiftwidth=2 tabstop=2 expandtab:
 * :indentSize=2:tabSize=2:noTabs=true:
 */

#include "GPumpApp.h"

#define GPUMP_APP_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj),\
  GPUMP_TYPE_APP, GPumpAppPrivate))

G_DEFINE_TYPE (GPumpApp, gpump_app, GTK_TYPE_APPLICATION)

struct GPumpAppPrivate {
  
  GSettings * ui_settings;
  GSettings * login_settings;
  
  /* Widgets */
  GtkWidget * window;
  GtkWidget * header_bar;
  GtkWidget * layout; /* GtkBox */
  GtkWidget * post_list_view; /* GtkTreeView */
  
  /* List store */
  GtkListStore * post_list_store;
};

/* * Callback and private function declarations *******************************/
void gpump_app_class_init (GPumpAppClass * klass);
void gpump_app_activate (GApplication * application);
void gpump_app_init (GPumpApp * self);

typedef enum {
  GPUPM_APP_MAIN_LIST_COL = 0,
  GPUMP_APP_MAIN_LIST_NUM_COL
} GPumpAppCols;

/* * Class functions **********************************************************/
GPumpApp * gpump_app_new (void) {
  GPumpApp * self = g_object_new (GPUMP_TYPE_APP,
                       "application-id", "org.gego.gpump",
                       "flags",G_APPLICATION_FLAGS_NONE,
                       NULL);
  return self;
}

void gpump_app_init (GPumpApp * self) {
  // GPumpAppPrivate * priv = GPUMP_APP_GET_PRIVATE (self);
  /* Nothing to be done here? */
}

void gpump_app_class_init (GPumpAppClass * klass) {
  g_print("GPumpApp class init.\n");
  
  // GObject * object_class = G_OBJECT_CLASS (klass);
  GApplicationClass * application_class = G_APPLICATION_CLASS (klass);
  
  application_class->activate = gpump_app_activate;
  
  g_type_class_add_private (klass, sizeof(GPumpApp));
  
  g_print ("GPumpApp class init done.\n");
}


void gpump_app_activate (GApplication * application) {
  g_print ("GPumpApp activate.\n");
  
  /* Creating widgets */
  GPumpAppPrivate * priv = GPUMP_APP_GET_PRIVATE (application);
  GtkWidget * window = priv->window =
    gtk_application_window_new (GTK_APPLICATION (application));
  GtkWidget * header_bar = priv->header_bar = gtk_header_bar_new ();
  GtkWidget * layout = priv->layout = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
  
  gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (header_bar), TRUE);
  
  GtkListStore * post_list_store = priv->post_list_store =
    gtk_list_store_new ( GPUMP_APP_MAIN_LIST_NUM_COL, GTK_TYPE_WIDGET);
  
  GtkWidget * post_list_view = priv->post_list_view =
    gtk_tree_view_new ();
  
  
  gtk_tree_view_set_model (GTK_TREE_VIEW (post_list_view), GTK_TREE_MODEL(post_list_store));
  
  /* adding widgets */
  gtk_window_set_titlebar (GTK_WINDOW (window), header_bar);
  
  gtk_box_pack_start (GTK_BOX (layout), post_list_view, TRUE, TRUE, 1);
  
  gtk_container_add (GTK_CONTAINER (window), layout);
  
  /* Show it! */
  gtk_widget_show_all (GTK_WIDGET(window));
  
  g_print ("done GPumpApp activate.\n");
}



/* * Callback implemenations **************************************************/