Merge pull request #100 from gergelypolonkai/refine-ui

Refine UI a bit more
This commit is contained in:
Gergely Polonkai 2014-10-06 23:12:46 +02:00
commit bb7df55675
12 changed files with 2350 additions and 1387 deletions

View File

@ -39,7 +39,7 @@ suggested in ag_window_load_chart_list().
After the chart editing part of the UI is done, the help screenshots After the chart editing part of the UI is done, the help screenshots
must be taken again. must be taken again.
** TODO Add a progress bar for the list screen ** DONE Add a progress bar for the list screen
When there are many charts, loading the previews may take long. A When there are many charts, loading the previews may take long. A
progress bar should show the state of loading. progress bar should show the state of loading.

View File

@ -10,4 +10,5 @@ src/astrognome.c
[type: gettext/glade]src/resources/ui/astrognome.ui [type: gettext/glade]src/resources/ui/astrognome.ui
[type: gettext/glade]src/resources/ui/ag-window.ui [type: gettext/glade]src/resources/ui/ag-window.ui
[type: gettext/glade]src/resources/ui/ag-preferences.ui [type: gettext/glade]src/resources/ui/ag-preferences.ui
[type: gettext/glade]src/resources/ui/ag-chart-edit.ui
astrognome.appdata.xml.in astrognome.appdata.xml.in

View File

@ -1,7 +1,7 @@
RESOURCE_DIR = $(srcdir)/resources RESOURCE_DIR = $(srcdir)/resources
resource_files = $(shell glib-compile-resources --sourcedir=$(RESOURCE_DIR) --generate-dependencies $(srcdir)/ag.gresource.xml) resource_files = $(shell glib-compile-resources --sourcedir=$(RESOURCE_DIR) --generate-dependencies $(srcdir)/ag.gresource.xml)
ag_enum_headers = ag-icon-view.h ag_enum_headers = ag-icon-view.h ag-header-bar.h
ag-resources.c: ag.gresource.xml $(resource_files) ag-resources.c: ag.gresource.xml $(resource_files)
glib-compile-resources --target=$@ --sourcedir=$(RESOURCE_DIR) --generate-source --c-name ag $(srcdir)/ag.gresource.xml glib-compile-resources --target=$@ --sourcedir=$(RESOURCE_DIR) --generate-source --c-name ag $(srcdir)/ag.gresource.xml
@ -34,6 +34,8 @@ astrognome_source_files = \
ag-display-theme.c \ ag-display-theme.c \
ag-icon-view.c \ ag-icon-view.c \
ag-chart-renderer.c \ ag-chart-renderer.c \
ag-chart-edit.c \
ag-header-bar.c \
astrognome.c \ astrognome.c \
$(NULL) $(NULL)

1060
src/ag-chart-edit.c Normal file

File diff suppressed because it is too large Load Diff

84
src/ag-chart-edit.h Normal file
View File

@ -0,0 +1,84 @@
#ifndef __AG_CHART_EDIT_H__
#define __AG_CHART_EDIT_H__
#include <gtk/gtk.h>
#include "ag-db.h"
G_BEGIN_DECLS
#define AG_TYPE_CHART_EDIT \
(ag_chart_edit_get_type())
#define AG_CHART_EDIT(obj) \
(G_TYPE_CHECK_INSTANCE_CAST ((obj), \
AG_TYPE_CHART_EDIT, \
AgChartEdit))
#define AG_CHART_EDIT_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST ((klass), \
AG_TYPE_CHART_EDIT, \
AgChartEditClass))
#define IS_AG_CHART_EDIT(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
AG_TYPE_CHART_EDIT))
#define IS_AG_CHART_EDIT_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE ((klass), \
AG_TYPE_CHART_EDIT))
#define AG_CHART_EDIT_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS ((obj), \
AG_TYPE_CHART_EDIT, \
AgChartEditClass))
typedef struct _AgChartEdit AgChartEdit;
typedef struct _AgChartEditClass AgChartEditClass;
struct _AgChartEditClass
{
GtkGridClass parent_class;
};
struct _AgChartEdit
{
GtkGrid parent;
};
GType ag_chart_edit_get_type (void) G_GNUC_CONST;
void ag_chart_edit_set_name(AgChartEdit *chart_edit, const gchar *name);
const gchar *ag_chart_edit_get_name(AgChartEdit *chart_edit);
void ag_chart_edit_set_country(AgChartEdit *chart_edit, const gchar *country);
const gchar *ag_chart_edit_get_country(AgChartEdit *chart_edit);
void ag_chart_edit_set_city(AgChartEdit *chart_edit, const gchar *city);
const gchar *ag_chart_edit_get_city(AgChartEdit *chart_edit);
void ag_chart_edit_set_latitude(AgChartEdit *chart_edit, gdouble latitude);
gdouble ag_chart_edit_get_latitude(AgChartEdit *chart_edit);
void ag_chart_edit_set_longitude(AgChartEdit *chart_edit, gdouble longitude);
gdouble ag_chart_edit_get_longitude(AgChartEdit *chart_edit);
void ag_chart_edit_set_from_timestamp(AgChartEdit *chart_edit,
GsweTimestamp *timestamp);
GsweTimestamp *ag_chart_edit_get_to_timestamp(AgChartEdit *chart_edit,
GsweTimestamp *timestamp);
void ag_chart_edit_set_note(AgChartEdit *chart_edit, const gchar *note);
gchar *ag_chart_edit_get_note(AgChartEdit *chart_edit);
void ag_chart_edit_update(AgChartEdit *chart_edit);
AgDbChartSave *ag_chart_edit_get_chart_save(AgChartEdit *chart_edit);
void ag_chart_edit_clear(AgChartEdit *chart_edit);
G_END_DECLS
#endif /* __AG_CHART_EDIT_H__ */

265
src/ag-header-bar.c Normal file
View File

@ -0,0 +1,265 @@
#include "ag-header-bar.h"
#include "ag-enumtypes.h"
#define DEFAULT_MODE AG_HEADER_BAR_MODE_LIST
typedef struct {
GtkWidget *selection_cancel_button;
GtkWidget *left_stack;
GtkWidget *right_stack;
AgHeaderBarMode mode;
} AgHeaderBarPrivate;
enum {
PROP_0,
PROP_MODE,
PROP_COUNT
};
static void ag_header_bar_dispose(GObject *gobject);
static void ag_header_bar_finalize(GObject *gobject);
G_DEFINE_TYPE_WITH_PRIVATE(AgHeaderBar, ag_header_bar, GTK_TYPE_HEADER_BAR);
#define GET_PRIV(v, o) AgHeaderBarPrivate *v = ag_header_bar_get_instance_private(o);
static GParamSpec *properties[PROP_COUNT];
static void
ag_header_bar_selection_mode_cb(GtkButton *button,
AgHeaderBar *header_bar)
{
GET_PRIV(priv, header_bar);
switch (priv->mode) {
case AG_HEADER_BAR_MODE_LIST:
ag_header_bar_set_mode(header_bar, AG_HEADER_BAR_MODE_SELECTION);
break;
case AG_HEADER_BAR_MODE_SELECTION:
ag_header_bar_set_mode(header_bar, AG_HEADER_BAR_MODE_LIST);
break;
default:
g_warning("Invalid header bar mode transition!");
break;
}
}
static void
ag_header_bar_set_selection_mode(AgHeaderBar *header_bar, gboolean state)
{
GtkStyleContext *style;
GET_PRIV(priv, header_bar);
style = gtk_widget_get_style_context(GTK_WIDGET(header_bar));
if (state) {
// Enabling selection mode
gtk_stack_set_visible_child_name(
GTK_STACK(priv->right_stack),
"selection"
);
gtk_widget_hide(priv->left_stack);
gtk_style_context_add_class(style, "selection-mode");
} else {
// Disabling selection mode
gtk_widget_show(priv->left_stack);
gtk_style_context_remove_class(style, "selection-mode");
}
gtk_header_bar_set_show_close_button(
GTK_HEADER_BAR(header_bar),
!state
);
}
static void
ag_header_bar_set_mode_internal(AgHeaderBar *header_bar,
AgHeaderBarMode mode,
gboolean force)
{
GET_PRIV(priv, header_bar);
if (!force && (priv->mode == mode)) {
return;
}
priv->mode = mode;
switch (mode) {
case AG_HEADER_BAR_MODE_LIST:
gtk_stack_set_visible_child_name(
GTK_STACK(priv->left_stack),
"list"
);
gtk_stack_set_visible_child_name(
GTK_STACK(priv->right_stack),
"list"
);
ag_header_bar_set_selection_mode(header_bar, FALSE);
break;
case AG_HEADER_BAR_MODE_CHART:
gtk_stack_set_visible_child_name(
GTK_STACK(priv->left_stack),
"chart"
);
gtk_stack_set_visible_child_name(
GTK_STACK(priv->right_stack),
"chart"
);
ag_header_bar_set_selection_mode(header_bar, FALSE);
break;
case AG_HEADER_BAR_MODE_SELECTION:
ag_header_bar_set_selection_mode(header_bar, TRUE);
break;
default:
g_warning("Invalid header bar mode!");
break;
}
g_object_notify_by_pspec(G_OBJECT(header_bar), properties[PROP_MODE]);
}
void
ag_header_bar_set_mode(AgHeaderBar *header_bar,
AgHeaderBarMode mode)
{
ag_header_bar_set_mode_internal(header_bar, mode, FALSE);
}
AgHeaderBarMode
ag_header_bar_get_mode(AgHeaderBar *header_bar)
{
GET_PRIV(priv, header_bar);
return priv->mode;
}
static void
ag_header_bar_set_property(GObject *gobject,
guint prop_id,
const GValue *value,
GParamSpec *pspec)
{
switch (prop_id) {
case PROP_MODE:
ag_header_bar_set_mode(
AG_HEADER_BAR(gobject),
g_value_get_enum(value)
);
return;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, pspec);
return;
}
}
static void
ag_header_bar_get_property(GObject *gobject,
guint prop_id,
GValue *value,
GParamSpec *pspec)
{
GET_PRIV(priv, AG_HEADER_BAR(gobject));
switch (prop_id) {
case PROP_MODE:
g_value_set_enum(value, priv->mode);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, pspec);
break;
}
}
static void
ag_header_bar_dispose(GObject *gobject)
{
G_OBJECT_CLASS(ag_header_bar_parent_class)->dispose(gobject);
}
static void
ag_header_bar_finalize(GObject *gobject)
{
g_signal_handlers_destroy(gobject);
G_OBJECT_CLASS(ag_header_bar_parent_class)->finalize(gobject);
}
static void
ag_header_bar_class_init(AgHeaderBarClass *klass)
{
GObjectClass *gobject_class = (GObjectClass *)klass;
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
gobject_class->dispose = ag_header_bar_dispose;
gobject_class->finalize = ag_header_bar_finalize;
gobject_class->set_property = ag_header_bar_set_property;
gobject_class->get_property = ag_header_bar_get_property;
properties[PROP_MODE] = g_param_spec_enum(
"mode",
"Mode",
"Header bar mode",
AG_TYPE_HEADER_BAR_MODE,
AG_HEADER_BAR_MODE_LIST,
G_PARAM_STATIC_STRINGS
| G_PARAM_READWRITE
);
g_object_class_install_property(
gobject_class,
PROP_MODE,
properties[PROP_MODE]
);
gtk_widget_class_set_template_from_resource(
widget_class,
"/eu/polonkai/gergely/Astrognome/ui/ag-header-bar.ui"
);
gtk_widget_class_bind_template_child_private(
widget_class,
AgHeaderBar,
selection_cancel_button
);
gtk_widget_class_bind_template_child_private(
widget_class,
AgHeaderBar,
left_stack
);
gtk_widget_class_bind_template_child_private(
widget_class,
AgHeaderBar,
right_stack
);
gtk_widget_class_bind_template_callback(
widget_class,
ag_header_bar_selection_mode_cb
);
}
static void
ag_header_bar_init(AgHeaderBar *header_bar)
{
gtk_widget_init_template(GTK_WIDGET(header_bar));
ag_header_bar_set_mode_internal(header_bar, DEFAULT_MODE, TRUE);
}

54
src/ag-header-bar.h Normal file
View File

@ -0,0 +1,54 @@
#ifndef __AG_HEADER_BAR_H__
#define __AG_HEADER_BAR_H__
#include <gtk/gtk.h>
G_BEGIN_DECLS
#define AG_TYPE_HEADER_BAR \
(ag_header_bar_get_type())
#define AG_HEADER_BAR(obj) \
(G_TYPE_CHECK_INSTANCE_CAST((obj), \
AG_TYPE_HEADER_BAR, \
AgHeaderBar))
#define AG_HEADER_BAR_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST((klass), \
AG_TYPE_HEADER_BAR, \
AgHeaderBarClass))
#define IS_AG_HEADER_BAR(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE((obj), \
AG_TYPE_HEADER_BAR))
#define IS_AG_HEADER_BAR_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE((klass), \
AG_TYPE_HEADER_BAR))
#define AG_HEADER_BAR_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS((obj), \
AG_TYPE_HEADER_BAR, \
AgHeaderBarClass))
typedef struct _AgHeaderBar AgHeaderBar;
typedef struct _AgHeaderBarClass AgHeaderBarClass;
struct _AgHeaderBarClass {
GtkHeaderBarClass parent_class;
};
struct _AgHeaderBar{
GtkHeaderBar parent;
};
typedef enum {
AG_HEADER_BAR_MODE_LIST,
AG_HEADER_BAR_MODE_CHART,
AG_HEADER_BAR_MODE_SELECTION
} AgHeaderBarMode;
GType ag_header_bar_get_type(void) G_GNUC_CONST;
void ag_header_bar_set_mode(AgHeaderBar *header_bar, AgHeaderBarMode mode);
AgHeaderBarMode ag_header_bar_get_mode(AgHeaderBar *header_bar);
G_END_DECLS
#endif /* __AG_HEADER_BAR_H__ */

File diff suppressed because it is too large Load Diff

View File

@ -4,6 +4,8 @@
<file>ui/astrognome.ui</file> <file>ui/astrognome.ui</file>
<file>ui/ag-window.ui</file> <file>ui/ag-window.ui</file>
<file>ui/ag-preferences.ui</file> <file>ui/ag-preferences.ui</file>
<file>ui/ag-chart-edit.ui</file>
<file>ui/ag-header-bar.ui</file>
<file>ui/chart-default.css</file> <file>ui/chart-default.css</file>
<file>ui/chart-default.xsl</file> <file>ui/chart-default.xsl</file>

View File

@ -0,0 +1,495 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk+" version="3.0"/>
<object class="GtkAdjustment" id="latitude_adjust">
<property name="upper">90</property>
<property name="step_increment">0.10000000000000001</property>
<property name="page_increment">5</property>
</object>
<object class="GtkAdjustment" id="longitude_adjust">
<property name="upper">180</property>
<property name="step_increment">0.10000000000000001</property>
<property name="page_increment">5</property>
</object>
<object class="GtkAdjustment" id="year_adjust">
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="month_adjust">
<property name="lower">1</property>
<property name="upper">12</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
<property name="value">1</property>
</object>
<object class="GtkAdjustment" id="day_adjust">
<property name="lower">1</property>
<property name="upper">31</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
<property name="value">1</property>
</object>
<object class="GtkAdjustment" id="hour_adjust">
<property name="upper">23</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="minute_adjust">
<property name="upper">59</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="second_adjust">
<property name="upper">61</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="timezone_adjust">
<property name="lower">-12</property>
<property name="upper">12</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkTextBuffer" id="note_buffer">
</object>
<object class="GtkEntryCompletion" id="country_comp">
<property name="inline_completion">True</property>
</object>
<object class="GtkEntryCompletion" id="city_comp">
<property name="inline_completion">True</property>
</object>
<template class="AgChartEdit" parent="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkLabel" id="name_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Name</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="name">
<property name="visible">True</property>
<property name="can_focus">True</property>
<signal name="changed" handler="ag_chart_edit_name_changed_cb" object="AgChartEdit" swapped="no"/>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="location_frame">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child type="label">
<object class="GtkLabel" id="location_frame_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Location</property>
</object>
</child>
<child>
<object class="GtkGrid" id="location_grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkLabel" id="country_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Country</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">2</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkSearchEntry" id="country">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="primary_icon_name">edit-find-symbolic</property>
<property name="primary_icon_activatable">False</property>
<property name="primary_icon_sensitive">False</property>
<signal name="search-changed" handler="ag_chart_edit_country_changed_cb" swapped="no"/>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="city_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">City</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkSearchEntry" id="city">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="primary_icon_name">edit-find-symbolic</property>
<property name="primary_icon_activatable">False</property>
<property name="primary_icon_sensitive">False</property>
<signal name="search-changed" handler="ag_chart_edit_city_changed_cb" swapped="no"/>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">1</property>
<property name="width">2</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="latitude_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Latitude</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="north_lat">
<property name="label" translatable="yes">North</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">3</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="south_lat">
<property name="label" translatable="yes">South</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">north_lat</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="latitude">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">latitude_adjust</property>
<property name="digits">6</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">4</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="longitude_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Longitude</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">2</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="east_long">
<property name="label" translatable="yes">East</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">3</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="west_long">
<property name="label" translatable="yes">West</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">east_long</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="longitude">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">longitude_adjust</property>
<property name="digits">6</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">4</property>
<property name="width">2</property>
</packing>
</child>
</object>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
<property name="width">2</property>
</packing>
</child><!-- location_frame -->
<child>
<object class="GtkFrame" id="time_frame">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child type="label">
<object class="GtkLabel" id="time_frame_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Date and time</property>
</object>
</child>
<child>
<object class="GtkGrid" id="time_grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="row_homogeneous">True</property>
<property name="column_homogeneous">True</property>
<child>
<object class="GtkLabel" id="year_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Year</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="year">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">year_adjust</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="month_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Month</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="month">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">month_adjust</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="day_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Day</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="day">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">day_adjust</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="hour_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Hour</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="hour">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">hour_adjust</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="minute_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Minute</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="minute">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">minute_adjust</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="second_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Second</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="second">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">second_adjust</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="timezone_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Timezone</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="timezone">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">timezone_adjust</property>
<property name="digits">1</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">3</property>
</packing>
</child>
</object>
</child><!-- time_grid -->
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">1</property>
</packing>
</child><!-- time_frame -->
<child>
<object class="GtkFrame" id="notes_frame">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child type="label">
<object class="GtkLabel" id="notes_frame_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Notes</property>
</object>
</child>
<child>
<object class="GtkScrolledWindow" id="notes_scroll">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="shadow_type">in</property>
<property name="min_content_height">300</property>
<child>
<object class="GtkTextView" id="note">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="buffer">note_buffer</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
<property name="width">3</property>
</packing>
</child><!-- notes_frame -->
</template>
</interface>

View File

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk+" version="3.0"/>
<template class="AgHeaderBar" parent="GtkHeaderBar">
<property name="visible">True</property>
<property name="show_close_button">True</property>
<property name="title" translatable="yes">Astrognome</property>
<property name="vexpand">False</property>
<child>
<object class="GtkStack" id="left_stack">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<child>
<object class="GtkGrid">
<property name="visible">True</property>
<child>
<object class="GtkButton" id="new_button">
<property name="visible">True</property>
<property name="action_name">win.new-chart</property>
<style>
<class name="image-button"/>
</style>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="icon_name">document-new-symbolic</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton" id="refresh_button">
<property name="visible">True</property>
<property name="action_name">win.refresh</property>
<style>
<class name="image-button"/>
</style>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="icon_name">view-refresh-symbolic</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="name">list</property>
</packing>
</child><!-- list mode left side buttons -->
<child>
<object class="GtkGrid">
<property name="visible">True</property>
<child>
<object class="GtkButton" id="back_button">
<property name="visible">True</property>
<property name="action_name">win.back</property>
<style>
<class name="image-button"/>
</style>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="icon_name">go-previous-symbolic</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="name">chart</property>
</packing>
</child><!-- chart mode left side buttons -->
</object>
</child>
<child>
<object class="GtkStack" id="right_stack">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<child>
<object class="GtkButton">
<property name="visible">True</property>
<signal name="clicked" handler="ag_header_bar_selection_mode_cb" object="AgHeaderBar" swapped="no"/>
<style>
<class name="image-button"/>
</style>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="icon_name">object-select-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="name">list</property>
</packing>
</child><!-- list mode right side buttons -->
<child>
<object class="GtkButton" id="selection_cancel_button">
<property name="visible">True</property>
<property name="label" translatable="yes">Cancel</property>
<signal name="clicked" handler="ag_header_bar_selection_mode_cb" object="AgHeaderBar" swapped="no"/>
</object>
<packing>
<property name="name">selection</property>
</packing>
</child><!-- selection mode right side buttons -->
<child>
<object class="GtkGrid">
<property name="visible">True</property>
<child>
<object class="GtkMenuButton" id="view_menu">
<property name="action_name">win.view-menu</property>
<style>
<class name="image-button"/>
</style>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="icon_name">document-properties-symbolic</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkMenuButton" id="gear_menu">
<property name="visible">True</property>
<property name="action_name">win.gear-menu</property>
<style>
<class name="image-button"/>
</style>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="icon_name">open-menu-symbolic</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="name">chart</property>
</packing>
</child><!-- chart mode right side buttons -->
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
</template>
</interface>

View File

@ -57,55 +57,6 @@
</item> </item>
</section> </section>
</menu> </menu>
<object class="GtkAdjustment" id="latitude_adjust">
<property name="upper">90</property>
<property name="step_increment">0.10000000000000001</property>
<property name="page_increment">5</property>
</object>
<object class="GtkAdjustment" id="longitude_adjust">
<property name="upper">180</property>
<property name="step_increment">0.10000000000000001</property>
<property name="page_increment">5</property>
</object>
<object class="GtkAdjustment" id="year_adjust">
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="month_adjust">
<property name="lower">1</property>
<property name="upper">12</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
<property name="value">1</property>
</object>
<object class="GtkAdjustment" id="day_adjust">
<property name="lower">1</property>
<property name="upper">31</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
<property name="value">1</property>
</object>
<object class="GtkAdjustment" id="hour_adjust">
<property name="upper">23</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="minute_adjust">
<property name="upper">59</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="second_adjust">
<property name="upper">61</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="timezone_adjust">
<property name="lower">-12</property>
<property name="upper">12</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkListStore" id="house_system_model"> <object class="GtkListStore" id="house_system_model">
<columns> <columns>
<!-- column-name house-system-id --> <!-- column-name house-system-id -->
@ -122,13 +73,7 @@
<column type="gchararray"/> <column type="gchararray"/>
</columns> </columns>
</object> </object>
<object class="GtkTextBuffer" id="note_buffer"> <object class="WebkitUserContentManager" id="content_manager">
</object>
<object class="GtkEntryCompletion" id="country_comp">
<property name="inline_completion">True</property>
</object>
<object class="GtkEntryCompletion" id="city_comp">
<property name="inline_completion">True</property>
</object> </object>
<template class="AgWindow" parent="GtkApplicationWindow"> <template class="AgWindow" parent="GtkApplicationWindow">
<property name="can_focus">False</property> <property name="can_focus">False</property>
@ -137,219 +82,87 @@
<property name="icon_name">astrognome</property> <property name="icon_name">astrognome</property>
<signal name="delete-event" handler="ag_window_delete_event_callback" swapped="no"/> <signal name="delete-event" handler="ag_window_delete_event_callback" swapped="no"/>
<child type="titlebar"> <child type="titlebar">
<object class="GtkHeaderBar" id="header_bar"> <object class="AgHeaderBar" id="header_bar">
<property name="visible">True</property> <signal name="notify::mode" handler="ag_window_header_bar_mode_change_cb" swapped="no"/>
<property name="can_focus">False</property>
<property name="vexpand">False</property>
<property name="show_close_button">True</property>
<property name="title" translatable="yes">Astrognome</property>
<child>
<object class="GtkStack" id="new_back_stack">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="homogeneous">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton" id="new_button">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">win.new-chart</property>
<style>
<class name="image-button"/>
</style>
<child>
<object class="GtkImage" id="new_image">
<property name="visible">True</property>
<property name="icon_size">1</property>
<property name="icon_name">document-new-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="refresh_button">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">win.refresh</property>
<style>
<class name="image-button"/>
</style>
<child>
<object class="GtkImage" id="refresh_image">
<property name="visible">True</property>
<property name="icon_size">1</property>
<property name="icon_name">view-refresh-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="name">new</property>
</packing>
</child>
<child>
<object class="GtkButton" id="back_button">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">win.back</property>
<style>
<class name="image-button"/>
</style>
<child>
<object class="GtkImage" id="back_image">
<property name="visible">True</property>
<property name="icon_size">1</property>
<property name="icon_name">go-previous-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="name">back</property>
</packing>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="box">
<property name="visible">True</property>
<property name="valign">center</property>
<property name="can_focus">False</property>
<style>
<class name="linked"/>
</style>
</object>
</child>
<child>
<object class="GtkStack" id="menubutton_stack">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="homogeneous">False</property>
<child>
<object class="GtkToggleButton">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">center</property>
<property name="action_name">win.selection</property>
<style>
<class name="image-button"/>
</style>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="icon_size">1</property>
<property name="icon_name">object-select-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="name">list</property>
</packing>
</child>
<child>
<object class="GtkBox" id="menubutton_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkMenuButton">
<property name="visible">True</property>
<property name="valign">center</property>
<property name="can_focus">False</property>
<property name="action_name">win.view-menu</property>
<property name="menu_model">view_menu</property>
<property name="use_popover">False</property>
<style>
<class name="image-button"/>
</style>
<child>
<object class="GtkImage" id="view_image">
<property name="visible">True</property>
<property name="icon_size">1</property>
<property name="icon_name">document-properties-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkMenuButton">
<property name="visible">True</property>
<property name="valign">center</property>
<property name="can_focus">False</property>
<property name="action_name">win.gear-menu</property>
<property name="menu_model">gear_menu</property>
<property name="use_popover">False</property>
<style>
<class name="image-button"/>
</style>
<child>
<object class="GtkImage" id="gear_image">
<property name="visible">True</property>
<property name="icon_size">1</property>
<property name="icon_name">open-menu-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="name">chart</property>
</packing>
</child>
<child>
<object class="GtkBox" id="selection_mode_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Cancel</property>
<signal name="clicked" handler="ag_window_selection_mode_cancel_cb" object="AgWindow" swapped="no"/>
</object>
</child>
</object>
<packing>
<property name="name">selection</property>
</packing>
</child>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkBox"> <object class="GtkGrid">
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<child> <child>
<object class="GtkStack" id="stack"> <object class="GtkStack" id="tabs">
<property name="visible">True</property> <property name="visible">True</property>
<property name="vexpand">True</property> <property name="vexpand">True</property>
<property name="hexpand">True</property> <property name="hexpand">True</property>
<signal name="notify::visible-child" handler="ag_window_tab_changed_cb" object="AgWindow" swapped="no"/> <signal name="notify::visible-child" handler="ag_window_tab_changed_cb" object="AgWindow" swapped="no"/>
<child> <child>
<object class="GtkScrolledWindow" id="tab_list"> <object class="GtkGrid" id="tab_list">
<property name="orientation">vertical</property>
<child> <child>
<object class="AgIconView" id="chart_list"> <object class="GtkOverlay">
<signal name="item-activated" handler="ag_window_list_item_activated_cb" object="AgWindow" swapped="no"/> <child type="overlay">
<signal name="selection-changed" handler="ag_window_list_selection_changed_cb" object="AgWindow" swapped="no"/> <object class="GtkRevealer" id="load_progress_revealer">
<signal name="notify::mode" handler="ag_window_icon_view_mode_cb" object="AgWindow" swapped="no"/> <property name="halign">center</property>
<property name="valign">start</property>
<child>
<object class="GtkFrame">
<style>
<class name="app-notification"/>
</style>
<child>
<object class="GtkProgressBar" id="load_progress">
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child>
<object class="AgIconView" id="chart_list">
<signal name="item-activated" handler="ag_window_list_item_activated_cb" object="AgWindow" swapped="no"/>
<signal name="selection-changed" handler="ag_window_list_selection_changed_cb" object="AgWindow" swapped="no"/>
<signal name="notify::mode" handler="ag_window_icon_view_mode_cb" object="AgWindow" swapped="no"/>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkRevealer" id="selection_toolbar">
<property name="visible">True</property>
<property name="reveal_child">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">win.delete</property>
<style>
<class name="image-button"/>
<class name="destructive-action"/>
</style>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="icon_size">1</property>
<property name="icon_name">user-trash-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
</object>
</child>
</object> </object>
</child> </child>
</object> </object>
@ -359,439 +172,8 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkGrid" id="tab_edit"> <object class="AgChartEdit" id="tab_edit">
<property name="visible">True</property> <signal name="name-changed" handler="ag_window_name_changed_cb" object="AgWindow" swapped="no"/>
<property name="can_focus">False</property>
<child>
<object class="GtkLabel" id="name_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Name</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="name">
<property name="visible">True</property>
<property name="can_focus">True</property>
<signal name="changed" handler="ag_window_name_changed_cb" object="AgWindow" swapped="no"/>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="location_frame">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child type="label">
<object class="GtkLabel" id="location_frame_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Location</property>
</object>
</child>
<child>
<object class="GtkGrid" id="location_grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkLabel" id="country_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Country</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">2</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkSearchEntry" id="country">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="primary_icon_name">edit-find-symbolic</property>
<property name="primary_icon_activatable">False</property>
<property name="primary_icon_sensitive">False</property>
<signal name="search-changed" handler="ag_window_country_changed_callback" swapped="no"/>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="city_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">City</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkSearchEntry" id="city">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="primary_icon_name">edit-find-symbolic</property>
<property name="primary_icon_activatable">False</property>
<property name="primary_icon_sensitive">False</property>
<signal name="search-changed" handler="ag_window_city_changed_callback" swapped="no"/>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">1</property>
<property name="width">2</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="latitude_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Latitude</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="north_lat">
<property name="label" translatable="yes">North</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">3</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="south_lat">
<property name="label" translatable="yes">South</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">north_lat</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="latitude">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">latitude_adjust</property>
<property name="digits">6</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">4</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="longitude_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Longitude</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">2</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="east_long">
<property name="label" translatable="yes">East</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">3</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="west_long">
<property name="label" translatable="yes">West</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">east_long</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="longitude">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">longitude_adjust</property>
<property name="digits">6</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">4</property>
<property name="width">2</property>
</packing>
</child>
</object>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
<property name="width">2</property>
</packing>
</child><!-- location_frame -->
<child>
<object class="GtkFrame" id="time_frame">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child type="label">
<object class="GtkLabel" id="time_frame_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Date and time</property>
</object>
</child>
<child>
<object class="GtkGrid" id="time_grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="row_homogeneous">True</property>
<property name="column_homogeneous">True</property>
<child>
<object class="GtkLabel" id="year_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Year</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="year">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">year_adjust</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="month_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Month</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="month">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">month_adjust</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="day_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Day</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="day">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">day_adjust</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="hour_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Hour</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="hour">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">hour_adjust</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="minute_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Minute</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="minute">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">minute_adjust</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="second_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Second</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="second">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">second_adjust</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="timezone_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Timezone</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="timezone">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">timezone_adjust</property>
<property name="digits">1</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">3</property>
</packing>
</child>
</object>
</child><!-- time_grid -->
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">1</property>
</packing>
</child><!-- time_frame -->
<child>
<object class="GtkFrame" id="notes_frame">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child type="label">
<object class="GtkLabel" id="notes_frame_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Notes</property>
</object>
</child>
<child>
<object class="GtkScrolledWindow" id="notes_scroll">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="shadow_type">in</property>
<property name="min_content_height">300</property>
<child>
<object class="GtkTextView" id="note">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="buffer">note_buffer</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
<property name="width">3</property>
</packing>
</child><!-- notes_frame -->
</object> </object>
<packing> <packing>
<property name="name">edit</property> <property name="name">edit</property>
@ -854,6 +236,12 @@
<property name="pack_type">start</property> <property name="pack_type">start</property>
</packing> </packing>
</child> </child>
<child>
<object class="WebkitWebView" id="chart_web_view">
<property name="user-content-manager">content_manager</property>
<signal name="context-menu" handler="ag_window_chart_context_cb"/>
</object>
</child>
</object> </object>
<packing> <packing>
<property name="name">chart</property> <property name="name">chart</property>
@ -1009,39 +397,6 @@
</child> </child>
</object> </object>
</child> </child>
<child>
<object class="GtkRevealer" id="selection_toolbar">
<property name="visible">True</property>
<property name="reveal_child">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">win.delete</property>
<style>
<class name="image-button"/>
<class name="destructive-action"/>
</style>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="icon_size">1</property>
<property name="icon_name">user-trash-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
</object>
</child>
</object>
</child>
</object> </object>
</child> </child>
</template> </template>