aboutsummarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntony Kellermann2018-08-22 10:34:41 -0400
committerAntony Kellermann2018-08-22 10:34:41 -0400
commit5fbc048c4449a22b5b7b9338680c5ef736af0aa2 (patch)
tree76408c0c967dfb9fcdba891e4860bc09e8fffec5
parentba1aad0d899415794aad7580356f89e1a4d7ef4c (diff)
downloadaur-5fbc048c4449a22b5b7b9338680c5ef736af0aa2.tar.gz
Basic info support for gtk
-rw-r--r--gtk_win.c121
-rw-r--r--gtk_win.h11
-rw-r--r--window_main.glade868
3 files changed, 1000 insertions, 0 deletions
diff --git a/gtk_win.c b/gtk_win.c
index 51fa3130f07f..856aacae1d8b 100644
--- a/gtk_win.c
+++ b/gtk_win.c
@@ -330,6 +330,35 @@ void on_column_clicked(GtkTreeViewColumn* column, GtkListStore* list_store) {
list_store_sort(list_store, idx);
}
+void on_check_tree_view_row_activated(GtkTreeView* tree_view, GtkTreePath* path,
+ GtkTreeViewColumn* column) {
+ GtkContainer* window = GTK_CONTAINER(GET_OBJECT("check_window"));
+ gtk_container_remove(window, GTK_WIDGET(GET_OBJECT("check_pane")));
+ gtk_container_add(window, GTK_WIDGET(GET_OBJECT("info_pane")));
+
+ GtkTreeIter iter;
+ GtkTreeModel* model = GTK_TREE_MODEL(GET_OBJECT("check_list"));
+ gtk_tree_model_get_iter(model, &iter, path);
+ gchar* symbol;
+ gtk_tree_model_get(model, &iter, SYMBOL, &symbol, -1);
+
+ Info* pInfo = info_array_get_info_from_symbol(app.portfolio_data, symbol);
+ if (pInfo->api_provider != IEX) // Only see info for iex securities
+ return;
+
+ if (pInfo->name[0] == '\0') // MISC not loaded yet
+ iex_batch_store_data_info(pInfo, MISC);
+
+ info_pane_populate_all(pInfo);
+ g_free(symbol);
+}
+
+void on_info_back_button_clicked(GtkButton* button) {
+ GtkContainer* window = GTK_CONTAINER(GET_OBJECT("check_window"));
+ gtk_container_remove(window, GTK_WIDGET(GET_OBJECT("info_pane")));
+ gtk_container_add(window, GTK_WIDGET(GET_OBJECT("check_pane")));
+}
+
void format_cells(Info_Array* portfolio_data) {
Info* idx;
for (size_t i = 0; i < portfolio_data->length + 1; i++) { // +1 for totals
@@ -415,6 +444,98 @@ void list_store_update(void) {
}
}
+void info_pane_populate_all(const Info* pInfo) {
+ info_pane_populate_header(pInfo);
+ info_pane_populate_company(pInfo);
+}
+
+void info_pane_populate_header(const Info* pInfo) {
+ GtkLabel* symbol_label = GTK_LABEL(GET_OBJECT("info_header_symbol_label"));
+ GtkLabel* name_label = GTK_LABEL(GET_OBJECT("info_header_name_label"));
+ GtkLabel* date_label = GTK_LABEL(GET_OBJECT("info_header_date_label"));
+ GtkLabel* percent_24H_label = GTK_LABEL(GET_OBJECT("info_header_24H_change_label"));
+ GtkLabel* percent_7D_label = GTK_LABEL(GET_OBJECT("info_header_7D_change_label"));
+ GtkLabel* percent_30D_label = GTK_LABEL(GET_OBJECT("info_header_30D_change_label"));
+
+ gchar date_string[DATE_MAX_LENGTH];
+ if (pInfo->intraday_time != EMPTY) {
+ time_t time = pInfo->intraday_time;
+ struct tm* ts = localtime(&time);
+ strftime(date_string, DATE_MAX_LENGTH, "%F %T", ts);
+ } else date_string[0] = '\0';
+
+ gtk_label_set_label(symbol_label, pInfo->symbol);
+ gtk_label_set_label(name_label, pInfo->name);
+ gtk_label_set_label(date_label, date_string);
+ gtk_label_set_label(percent_24H_label, pInfo->fprofit_last_close_percent);
+ gtk_label_set_label(percent_7D_label, pInfo->fprofit_7d_percent);
+ gtk_label_set_label(percent_30D_label, pInfo->fprofit_30d_percent);
+}
+
+void info_pane_populate_company(const Info* pInfo) {
+ gchar revenue[32], cash[32], marketcap[32], pe_ratio[32], gross_profit[32], debt[32],
+ volume[32], div_yield[32];
+ sprintf(revenue, "%ld", pInfo->revenue);
+ sprintf(cash, "%ld", pInfo->cash);
+ sprintf(marketcap, "%ld", pInfo->cash);
+ sprintf(pe_ratio, "%lf", pInfo->pe_ratio);
+ sprintf(gross_profit, "%ld", pInfo->gross_profit);
+ sprintf(debt, "%ld", pInfo->debt);
+ sprintf(volume, "%ld", pInfo->volume_1d);
+ sprintf(div_yield, "%lf", pInfo->div_yield);
+
+ gtk_label_set_label(GTK_LABEL(GET_OBJECT("info_description_label")), pInfo->description);
+ gtk_label_set_label(GTK_LABEL(GET_OBJECT("info_ceo_label")), pInfo->ceo);
+ gtk_label_set_label(GTK_LABEL(GET_OBJECT("info_sector_label")), pInfo->sector);
+
+ if (pInfo->revenue != EMPTY)
+ gtk_label_set_label(GTK_LABEL(GET_OBJECT("info_revenue_label")), revenue);
+ if (pInfo->cash != EMPTY)
+ gtk_label_set_label(GTK_LABEL(GET_OBJECT("info_cash_label")), cash);
+ if (pInfo->marketcap != EMPTY)
+ gtk_label_set_label(GTK_LABEL(GET_OBJECT("info_market_cap_label")), marketcap);
+ if (pInfo->pe_ratio != EMPTY)
+ gtk_label_set_label(GTK_LABEL(GET_OBJECT("info_pe_ratio_label")), pe_ratio);
+
+ gtk_label_set_label(GTK_LABEL(GET_OBJECT("info_website_label")), pInfo->website);
+ gtk_label_set_label(GTK_LABEL(GET_OBJECT("info_industry_label")), pInfo->industry);
+
+ if (pInfo->gross_profit != EMPTY)
+ gtk_label_set_label(GTK_LABEL(GET_OBJECT("info_gross_profit_label")), gross_profit);
+ if (pInfo->debt != EMPTY)
+ gtk_label_set_label(GTK_LABEL(GET_OBJECT("info_debt_label")), debt);
+ if (pInfo->volume_1d != EMPTY)
+ gtk_label_set_label(GTK_LABEL(GET_OBJECT("info_volume_label")), volume);
+ if (pInfo->div_yield != EMPTY)
+ gtk_label_set_label(GTK_LABEL(GET_OBJECT("info_div_yield_label")), div_yield);
+
+ gchar period_label_name[32];
+ strcpy(period_label_name, "info_fiscal_period_label");
+ size_t len = strlen(period_label_name);
+ for (int i = 0; i < QUARTERS && pInfo->fiscal_period[i][0] != '\0'; i++) {
+ sprintf(&period_label_name[len], "%d", i + 1);
+ gtk_label_set_label(GTK_LABEL(GET_OBJECT(period_label_name)), pInfo->fiscal_period[i]);
+ }
+
+ gchar eps_label_name[32], eps[16];
+ strcpy(eps_label_name, "info_eps_label");
+ len = strlen(eps_label_name);
+ for (int i = 0; i < QUARTERS && pInfo->eps[i] != EMPTY; i++) {
+ sprintf(&eps_label_name[len], "%d", i + 1);
+ sprintf(eps, "%.2lf", pInfo->eps[i]);
+ gtk_label_set_label(GTK_LABEL(GET_OBJECT(eps_label_name)), eps);
+ }
+
+ gchar eps_1y_label_name[32];
+ strcpy(eps_1y_label_name, "info_eps_previous_label");
+ len = strlen(eps_1y_label_name);
+ for (int i = 0; i < QUARTERS && pInfo->eps_year_ago[i] != EMPTY; i++) {
+ sprintf(&eps_1y_label_name[len], "%d", i + 1);
+ sprintf(eps, "%.2lf", pInfo->eps_year_ago[i]);
+ gtk_label_set_label(GTK_LABEL(GET_OBJECT(eps_1y_label_name)), eps);
+ }
+}
+
void show_generic_message_dialog(const char* message, gboolean success) {
char widget_name[64];
if (success)
diff --git a/gtk_win.h b/gtk_win.h
index 9d3d10b03de6..8b8746807bbf 100644
--- a/gtk_win.h
+++ b/gtk_win.h
@@ -161,6 +161,11 @@ void on_check_window_destroy(void);
*/
void on_column_clicked(GtkTreeViewColumn* column, GtkListStore* list_store);
+void on_check_tree_view_row_activated(GtkTreeView* tree_view, GtkTreePath* path,
+ GtkTreeViewColumn* column);
+
+void on_info_back_button_clicked(GtkButton* button);
+
/** UTILS **/
/**
@@ -182,6 +187,12 @@ void list_store_sort(GtkListStore* list_store, Col_Index idx);
*/
void list_store_update(void);
+void info_pane_populate_all(const Info* pInfo);
+
+void info_pane_populate_header(const Info* pInfo);
+
+void info_pane_populate_company(const Info* pInfo);
+
/**
* Shows a generic message dialog.
* @param message the message to show
diff --git a/window_main.glade b/window_main.glade
index 551bfb8216af..3a47dce17e02 100644
--- a/window_main.glade
+++ b/window_main.glade
@@ -74,6 +74,7 @@ https://github.com/aokellermann/
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="orientation">vertical</property>
+ <signal name="delete-event" handler="gtk_widget_hide_on_delete" swapped="no"/>
<child>
<object class="GtkBox" id="top_bar_box">
<property name="visible">True</property>
@@ -186,6 +187,7 @@ https://github.com/aokellermann/
<property name="fixed_height_mode">True</property>
<property name="show_expanders">False</property>
<property name="enable_grid_lines">both</property>
+ <signal name="row-activated" handler="on_check_tree_view_row_activated" swapped="no"/>
<child internal-child="selection">
<object class="GtkTreeSelection" id="check_selection"/>
</child>
@@ -764,4 +766,870 @@ https://github.com/aokellermann/
</object>
</child>
</object>
+ <object class="GtkTextBuffer" id="info_header_buffer"/>
+ <object class="GtkListStore" id="news_list">
+ <columns>
+ <!-- column-name Headline -->
+ <column type="gchararray"/>
+ <!-- column-name Source -->
+ <column type="gchararray"/>
+ <!-- column-name Date -->
+ <column type="gchararray"/>
+ <!-- column-name Summary -->
+ <column type="gchararray"/>
+ <!-- column-name Url -->
+ <column type="gchararray"/>
+ <!-- column-name Related -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkListStore" id="peers_list">
+ <columns>
+ <!-- column-name Symbol -->
+ <column type="gchararray"/>
+ <!-- column-name 24H% -->
+ <column type="gchararray"/>
+ <!-- column-name 7D% -->
+ <column type="gchararray"/>
+ <!-- column-name 30D% -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkPaned" id="info_pane">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="orientation">vertical</property>
+ <signal name="delete-event" handler="gtk_widget_hide_on_delete" swapped="no"/>
+ <child>
+ <object class="GtkBox" id="info_top_bar_box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkButton" id="info_back_button">
+ <property name="label" translatable="yes">Back to Portfolio</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <signal name="clicked" handler="on_info_back_button_clicked" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="info_header_box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkBox" id="info_header_left_box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <object class="GtkLabel" id="info_header_symbol_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="info_header_name_date_box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkLabel" id="info_header_name_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_header_date_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="info_header_percent_change_grid">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="column_homogeneous">True</property>
+ <child>
+ <object class="GtkLabel" id="info_header_24H_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">24H%</property>
+ <property name="justify">right</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_header_7D_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">7D%</property>
+ <property name="justify">right</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_header_30H_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">30D%</property>
+ <property name="justify">right</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_header_24H_change_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="justify">right</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_header_7D_change_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="justify">right</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_header_30D_change_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="justify">right</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="resize">False</property>
+ <property name="shrink">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="info_main_box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <object class="GtkBox" id="info_left_box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <object class="GtkScrolledWindow" id="info_company_scroll_window">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkViewport" id="info_company_viewport">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkBox" id="info_company_box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">8</property>
+ <child>
+ <object class="GtkLabel" id="info_description_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="wrap">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="info_company_middle_box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">5</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <object class="GtkGrid" id="info_company_left_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="info_ceo">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">CEO:</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_ceo_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_sector">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Sector:</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_sector_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_revenue_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_revenue">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Revenue:</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_cash">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Cash:</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_cash_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_market_cap">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Market Cap:</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_market_cap_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_pe_ratio_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_pe_ratio">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">P/E Ratio:</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">5</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="info_company_right_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="info_website">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Website:</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_website_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="selectable">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_industry">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Industry:</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_industry_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_gross_profit">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Gross Profit:</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_gross_profit_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_debt">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Debt:</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_debt_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_volume">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Volume:</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_div_yield_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_div_yield">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Dividend Yield:</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_volume_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">4</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="info_earnings_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="info_fiscal_period_label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_fiscal_period_label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_fiscal_period_label3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_fiscal_period_label4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">4</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_eps">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">EPS</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_eps_label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_eps_label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_eps_label3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_eps_label4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">4</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_eps_previous">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Previous Year</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_eps_previous_label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_eps_previous_label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_eps_previous_label3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_eps_previous_label4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">4</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="info_fiscal_period">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Fiscal Period</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="info_peers_scroll_window">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTreeView" id="info_peers_tree_view">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="model">peers_list</property>
+ <property name="enable_search">False</property>
+ <property name="show_expanders">False</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="info_peers_tree_selection"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="peers_symbol_column">
+ <property name="title" translatable="yes">Symbol</property>
+ <child>
+ <object class="GtkCellRendererText" id="peers_symbol_column_renderer">
+ <property name="xalign">1</property>
+ <property name="alignment">right</property>
+ </object>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="peers_24H%_column">
+ <property name="title" translatable="yes">24H%</property>
+ <child>
+ <object class="GtkCellRendererText" id="peers_24H%_column_renderer">
+ <property name="xalign">1</property>
+ <property name="alignment">right</property>
+ </object>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="peers_7D%_column">
+ <property name="title" translatable="yes">7D%</property>
+ <child>
+ <object class="GtkCellRendererText" id="peers_7D%_column_renderer">
+ <property name="xalign">1</property>
+ <property name="alignment">right</property>
+ </object>
+ <attributes>
+ <attribute name="text">2</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="peers_30D%_column">
+ <property name="title" translatable="yes">30D%</property>
+ <child>
+ <object class="GtkCellRendererText" id="peers_30D%_column_renderer">
+ <property name="xalign">1</property>
+ <property name="alignment">right</property>
+ </object>
+ <attributes>
+ <attribute name="text">3</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="info_news_scroll_window">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkViewport" id="info_news_viewport">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkBox" id="info_news_box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <object class="GtkTextView" id="info_news_text_view">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">False</property>
+ <property name="cursor_visible">False</property>
+ <property name="accepts_tab">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="resize">True</property>
+ <property name="shrink">True</property>
+ </packing>
+ </child>
+ </object>
</interface>