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
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
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/ag-window.ui
[type: gettext/glade]src/resources/ui/ag-preferences.ui
[type: gettext/glade]src/resources/ui/ag-chart-edit.ui
astrognome.appdata.xml.in

View File

@ -1,7 +1,7 @@
RESOURCE_DIR = $(srcdir)/resources
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)
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-icon-view.c \
ag-chart-renderer.c \
ag-chart-edit.c \
ag-header-bar.c \
astrognome.c \
$(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/ag-window.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.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>
</section>
</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">
<columns>
<!-- column-name house-system-id -->
@ -122,13 +73,7 @@
<column type="gchararray"/>
</columns>
</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 class="WebkitUserContentManager" id="content_manager">
</object>
<template class="AgWindow" parent="GtkApplicationWindow">
<property name="can_focus">False</property>
@ -137,219 +82,87 @@
<property name="icon_name">astrognome</property>
<signal name="delete-event" handler="ag_window_delete_event_callback" swapped="no"/>
<child type="titlebar">
<object class="GtkHeaderBar" id="header_bar">
<property name="visible">True</property>
<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 class="AgHeaderBar" id="header_bar">
<signal name="notify::mode" handler="ag_window_header_bar_mode_change_cb" swapped="no"/>
</object>
</child>
<child>
<object class="GtkBox">
<object class="GtkGrid">
<property name="orientation">vertical</property>
<child>
<object class="GtkStack" id="stack">
<object class="GtkStack" id="tabs">
<property name="visible">True</property>
<property name="vexpand">True</property>
<property name="hexpand">True</property>
<signal name="notify::visible-child" handler="ag_window_tab_changed_cb" object="AgWindow" swapped="no"/>
<child>
<object class="GtkScrolledWindow" id="tab_list">
<object class="GtkGrid" id="tab_list">
<property name="orientation">vertical</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 class="GtkOverlay">
<child type="overlay">
<object class="GtkRevealer" id="load_progress_revealer">
<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>
</child>
</object>
@ -359,439 +172,8 @@
</packing>
</child>
<child>
<object class="GtkGrid" id="tab_edit">
<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_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 class="AgChartEdit" id="tab_edit">
<signal name="name-changed" handler="ag_window_name_changed_cb" object="AgWindow" swapped="no"/>
</object>
<packing>
<property name="name">edit</property>
@ -854,6 +236,12 @@
<property name="pack_type">start</property>
</packing>
</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>
<packing>
<property name="name">chart</property>
@ -1009,39 +397,6 @@
</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>
</child>
</object>
</child>
</template>