summaryrefslogtreecommitdiff
path: root/src/adwaita/disfluid-window.c
blob: c3d1053df7cb88020c98eb4842c42abf22803ff7 (plain)
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
#include <config.h>

#include "attribute.h"
#include <disfluid-adwaita.h>

#define STREQ(a, b) (strcmp ((a), (b)) == 0)
#define STRNEQ(a, b) (! (STREQ (a, b)))

#include <locale.h>
#include <stdio.h>
#include <unistd.h>
#include "gettext.h"
#include "relocatable.h"

#define _(String) dgettext (PACKAGE, (String))
#define N_(String) (String)

#include <disfluid.h>
#include <glib-object.h>
#include <adwaita.h>
#include <gtk/gtk.h>

struct _DisfluidAdwWindow
{
  AdwApplicationWindow parent_instance;
};

struct _DisfluidAdwWindowClass
{
  AdwApplicationWindowClass parent_instance;
};

/* *INDENT-OFF* */
G_DEFINE_TYPE (DisfluidAdwWindow, disfluid_adw_window, ADW_TYPE_APPLICATION_WINDOW)
/* *INDENT-ON* */

static void
disfluid_adw_window_class_init (DisfluidAdwWindowClass * klass)
{
  (void) klass;
}

static void
disfluid_adw_window_init (DisfluidAdwWindow * self)
{
  (void) self;
  /* Perform default initialization of self. */
  GMenu *main_menu = disfluid_adw_main_menu ();
  GtkWidget *menu_button = gtk_menu_button_new ();
  GtkWidget *header_bar = adw_header_bar_new ();
  gtk_menu_button_set_icon_name (GTK_MENU_BUTTON (menu_button), "open-menu");
  gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (menu_button),
				  G_MENU_MODEL (main_menu));
  g_object_unref (main_menu);
  adw_header_bar_pack_end (ADW_HEADER_BAR (header_bar), menu_button);
  GtkWidget *main_page = adw_status_page_new ();
  adw_status_page_set_icon_name (ADW_STATUS_PAGE (main_page), "face-smile");
  adw_status_page_set_title (ADW_STATUS_PAGE (main_page), _("Hello, world!"));
  adw_status_page_set_description (ADW_STATUS_PAGE (main_page), _("\
There is nothing here yet, please come back later."));
  GtkWidget *content = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
  gtk_box_append (GTK_BOX (content), header_bar);
  gtk_box_append (GTK_BOX (content), main_page);
  adw_application_window_set_content (ADW_APPLICATION_WINDOW (self), content);
}

GtkWidget *
disfluid_adw_window_new (GtkApplication * app)
{
  GtkWidget *self = NULL;
  self =
    (GtkWidget *) g_object_new (DISFLUID_ADW_TYPE_WINDOW,
				"application", app, NULL);
  return self;
}