Create GtkGrid for aspect table
This is a textual representation only. Icons are still on their way.
This commit is contained in:
parent
70d38a379d
commit
78d127afec
@ -42,6 +42,7 @@ struct _AgWindowPrivate {
|
|||||||
AgSettings *settings;
|
AgSettings *settings;
|
||||||
AgChart *chart;
|
AgChart *chart;
|
||||||
gchar *uri;
|
gchar *uri;
|
||||||
|
gboolean aspect_table_populated;
|
||||||
};
|
};
|
||||||
|
|
||||||
G_DEFINE_QUARK(ag_window_error_quark, ag_window_error);
|
G_DEFINE_QUARK(ag_window_error_quark, ag_window_error);
|
||||||
@ -248,6 +249,11 @@ ag_window_redraw_chart(AgWindow *window)
|
|||||||
{
|
{
|
||||||
GError *err = NULL;
|
GError *err = NULL;
|
||||||
gchar *svg_content;
|
gchar *svg_content;
|
||||||
|
GList *planet_list,
|
||||||
|
*planet1,
|
||||||
|
*planet2;
|
||||||
|
guint i,
|
||||||
|
j;
|
||||||
|
|
||||||
svg_content = ag_chart_create_svg(window->priv->chart, NULL, &err);
|
svg_content = ag_chart_create_svg(window->priv->chart, NULL, &err);
|
||||||
|
|
||||||
@ -261,6 +267,73 @@ ag_window_redraw_chart(AgWindow *window)
|
|||||||
webkit_web_view_load_string(WEBKIT_WEB_VIEW(window->priv->tab_chart), svg_content, "image/svg+xml", "UTF-8", "file://");
|
webkit_web_view_load_string(WEBKIT_WEB_VIEW(window->priv->tab_chart), svg_content, "image/svg+xml", "UTF-8", "file://");
|
||||||
g_free(svg_content);
|
g_free(svg_content);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
planet_list = ag_chart_get_planets(window->priv->chart);
|
||||||
|
|
||||||
|
if (window->priv->aspect_table_populated == FALSE) {
|
||||||
|
GList *planet;
|
||||||
|
guint i;
|
||||||
|
|
||||||
|
for (planet = planet_list, i = 0; planet; planet = g_list_next(planet), i++) {
|
||||||
|
GtkWidget *label_hor,
|
||||||
|
*label_ver;
|
||||||
|
GswePlanet planet_id;
|
||||||
|
GswePlanetData *planet_data;
|
||||||
|
GswePlanetInfo *planet_info;
|
||||||
|
|
||||||
|
planet_id = GPOINTER_TO_INT(planet->data);
|
||||||
|
planet_data = gswe_moment_get_planet(GSWE_MOMENT(window->priv->chart), planet_id, NULL);
|
||||||
|
planet_info = gswe_planet_data_get_planet_info(planet_data);
|
||||||
|
|
||||||
|
label_hor = gtk_label_new(gswe_planet_info_get_name(planet_info));
|
||||||
|
gtk_grid_attach(GTK_GRID(window->priv->tab_aspects), label_hor, i + 1, i, 1, 1);
|
||||||
|
|
||||||
|
if (i > 0) {
|
||||||
|
label_ver = gtk_label_new(gswe_planet_info_get_name(planet_info));
|
||||||
|
gtk_grid_attach(GTK_GRID(window->priv->tab_aspects), label_ver, 0, i, 1, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
window->priv->aspect_table_populated = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (planet1 = planet_list, i = 0; planet1; planet1 = g_list_next(planet1), i++) {
|
||||||
|
for (planet2 = planet_list, j = 0; planet2; planet2 = g_list_next(planet2), j++) {
|
||||||
|
GsweAspectData *aspect;
|
||||||
|
GError *err = NULL;
|
||||||
|
|
||||||
|
if (GPOINTER_TO_INT(planet1->data) == GPOINTER_TO_INT(planet2->data)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((aspect = gswe_moment_get_aspect_by_planets(GSWE_MOMENT(window->priv->chart), GPOINTER_TO_INT(planet1->data), GPOINTER_TO_INT(planet2->data), &err)) != NULL) {
|
||||||
|
GsweAspectInfo *aspect_info;
|
||||||
|
GtkWidget *aspect_label;
|
||||||
|
|
||||||
|
aspect_info = gswe_aspect_data_get_aspect_info(aspect);
|
||||||
|
aspect_label = gtk_grid_get_child_at(GTK_GRID(window->priv->tab_aspects), j + 1, i);
|
||||||
|
|
||||||
|
if (gswe_aspect_data_get_aspect(aspect) == GSWE_ASPECT_NONE) {
|
||||||
|
if (aspect_label != NULL) {
|
||||||
|
gtk_container_remove(GTK_CONTAINER(window->priv->tab_aspects), aspect_label);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (aspect_label == NULL) {
|
||||||
|
aspect_label = gtk_label_new(gswe_aspect_info_get_name(aspect_info));
|
||||||
|
gtk_grid_attach(GTK_GRID(window->priv->tab_aspects), aspect_label, j + 1, i, 1, 1);
|
||||||
|
} else {
|
||||||
|
gtk_label_set_label(GTK_LABEL(aspect_label), gswe_aspect_info_get_name(aspect_info));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (err) {
|
||||||
|
g_warning("%s\n", err->message);
|
||||||
|
} else {
|
||||||
|
g_error("No aspect is returned between two planets. This is a bug in SWE-GLib!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_widget_show_all(window->priv->tab_aspects);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -569,8 +642,8 @@ static void
|
|||||||
window_populate(AgWindow *window)
|
window_populate(AgWindow *window)
|
||||||
{
|
{
|
||||||
AgWindowPrivate *priv = window->priv;
|
AgWindowPrivate *priv = window->priv;
|
||||||
GtkWidget *menu_button;
|
GtkWidget *menu_button,
|
||||||
GtkWidget *scroll;
|
*scroll;
|
||||||
GObject *menu;
|
GObject *menu;
|
||||||
|
|
||||||
priv->header_bar = gtk_header_bar_new();
|
priv->header_bar = gtk_header_bar_new();
|
||||||
@ -608,8 +681,12 @@ window_populate(AgWindow *window)
|
|||||||
webkit_web_view_load_string(WEBKIT_WEB_VIEW(priv->tab_chart), "<html><head><title>No Chart</title></head><body><h1>No Chart</h1><p>No chart is loaded. Create one on the edit view, or open one from the application menu!</p></body></html>", "text/html", "UTF-8", NULL);
|
webkit_web_view_load_string(WEBKIT_WEB_VIEW(priv->tab_chart), "<html><head><title>No Chart</title></head><body><h1>No Chart</h1><p>No chart is loaded. Create one on the edit view, or open one from the application menu!</p></body></html>", "text/html", "UTF-8", NULL);
|
||||||
gtk_widget_set_size_request(priv->tab_chart, 600, 600);
|
gtk_widget_set_size_request(priv->tab_chart, 600, 600);
|
||||||
|
|
||||||
priv->tab_aspects = gtk_label_new("PLACEHOLDER FOR THE ASPECTS TABLE");
|
scroll = gtk_scrolled_window_new(NULL, NULL);
|
||||||
gtk_stack_add_titled(GTK_STACK(priv->stack), priv->tab_aspects, "aspects", _("Aspects"));
|
g_object_set(scroll, "shadow-type", GTK_SHADOW_NONE, NULL);
|
||||||
|
gtk_stack_add_titled(GTK_STACK(priv->stack), scroll, "aspects", _("Aspects"));
|
||||||
|
|
||||||
|
priv->tab_aspects = gtk_grid_new();
|
||||||
|
gtk_container_add(GTK_CONTAINER(scroll), priv->tab_aspects);
|
||||||
|
|
||||||
priv->tab_points = gtk_label_new("PLACEHOLDER FOR THE POINTS TABLES");
|
priv->tab_points = gtk_label_new("PLACEHOLDER FOR THE POINTS TABLES");
|
||||||
gtk_stack_add_titled(GTK_STACK(priv->stack), priv->tab_points, "points", _("Points"));
|
gtk_stack_add_titled(GTK_STACK(priv->stack), priv->tab_points, "points", _("Points"));
|
||||||
|
Loading…
Reference in New Issue
Block a user