mirror of
https://github.com/tstellar/bygfoot.git
synced 2025-02-20 21:40:45 +01:00
German news.
This commit is contained in:
parent
1d10d37bae
commit
bbce9e1f0a
@ -1626,7 +1626,7 @@
|
||||
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
||||
<property name="window_position">GTK_WIN_POS_CENTER</property>
|
||||
<property name="modal">False</property>
|
||||
<property name="default_width">560</property>
|
||||
<property name="default_width">700</property>
|
||||
<property name="default_height">600</property>
|
||||
<property name="resizable">True</property>
|
||||
<property name="destroy_with_parent">False</property>
|
||||
|
14
src/free.c
14
src/free.c
@ -770,11 +770,7 @@ free_newspaper(gboolean reset)
|
||||
gint i;
|
||||
|
||||
for(i = 0; i < newspaper.articles->len; i++)
|
||||
{
|
||||
g_free(g_array_index(newspaper.articles, NewsPaperArticle, i).title_small);
|
||||
g_free(g_array_index(newspaper.articles, NewsPaperArticle, i).title);
|
||||
g_free(g_array_index(newspaper.articles, NewsPaperArticle, i).subtitle);
|
||||
}
|
||||
free_newspaper_article(&g_array_index(newspaper.articles, NewsPaperArticle, i));
|
||||
|
||||
g_array_free(newspaper.articles, TRUE);
|
||||
|
||||
@ -782,6 +778,14 @@ free_newspaper(gboolean reset)
|
||||
newspaper.articles = g_array_new(FALSE, FALSE, sizeof(NewsPaperArticle));
|
||||
}
|
||||
|
||||
void
|
||||
free_newspaper_article(NewsPaperArticle *article)
|
||||
{
|
||||
g_free(article->title_small);
|
||||
g_free(article->title);
|
||||
g_free(article->subtitle);
|
||||
}
|
||||
|
||||
/**
|
||||
Free a GPtrArray containing strings.
|
||||
@param array The array to be freed.
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include "league_struct.h"
|
||||
#include "live_game_struct.h"
|
||||
#include "name_struct.h"
|
||||
#include "news_struct.h"
|
||||
#include "player_struct.h"
|
||||
#include "team_struct.h"
|
||||
#include "user_struct.h"
|
||||
@ -152,6 +153,9 @@ free_news(gboolean reset);
|
||||
void
|
||||
free_newspaper(gboolean reset);
|
||||
|
||||
void
|
||||
free_newspaper_article(NewsPaperArticle *article);
|
||||
|
||||
void
|
||||
free_cup_round(CupRound *cup_round);
|
||||
|
||||
|
@ -789,7 +789,7 @@ create_window_news (void)
|
||||
window_news = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
gtk_window_set_title (GTK_WINDOW (window_news), _("Bygfoot News"));
|
||||
gtk_window_set_position (GTK_WINDOW (window_news), GTK_WIN_POS_CENTER);
|
||||
gtk_window_set_default_size (GTK_WINDOW (window_news), 560, 600);
|
||||
gtk_window_set_default_size (GTK_WINDOW (window_news), 700, 600);
|
||||
|
||||
vbox6 = gtk_vbox_new (FALSE, 0);
|
||||
gtk_widget_show (vbox6);
|
||||
|
@ -83,6 +83,7 @@ news_generate_match(const LiveGame *live_game)
|
||||
new_article.title_id = title_id;
|
||||
new_article.subtitle_id = subtitle_id;
|
||||
new_article.user_idx = fixture_user_team_involved(live_game->fix);
|
||||
new_article.clid = live_game->fix->clid;
|
||||
|
||||
if(counters[COUNT_NEW_NEWS] == 0)
|
||||
counters[COUNT_NEW_NEWS] = 2;
|
||||
|
@ -78,6 +78,7 @@ typedef struct
|
||||
{
|
||||
gint week_number, week_round_number;
|
||||
gint title_id, subtitle_id;
|
||||
gint clid;
|
||||
gchar *title_small, *title, *subtitle;
|
||||
gint id;
|
||||
gint user_idx;
|
||||
|
@ -539,6 +539,13 @@ end_week_round_generate_news(void)
|
||||
for(i = 0; i < live_games->len; i++)
|
||||
if(news_check_match_relevant(&g_array_index(live_games, LiveGame, i)))
|
||||
news_generate_match(&g_array_index(live_games, LiveGame, i));
|
||||
|
||||
/* Get rid of older news. */
|
||||
while(newspaper.articles->len > const_int("int_news_history_length"))
|
||||
{
|
||||
free_newspaper_article(&g_array_index(newspaper.articles, NewsPaperArticle, 0));
|
||||
g_array_remove_index(newspaper.articles, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/** Start a new week round. */
|
||||
|
@ -590,6 +590,7 @@ treeview2_create_news(GtkListStore *ls)
|
||||
gint i;
|
||||
GtkTreeIter iter;
|
||||
gchar buf[SMALL], buf2[SMALL];
|
||||
gboolean second_column;
|
||||
|
||||
if(newspaper.articles->len == 0)
|
||||
{
|
||||
@ -603,6 +604,11 @@ treeview2_create_news(GtkListStore *ls)
|
||||
|
||||
for(i = newspaper.articles->len - 1; i >= 0; i--)
|
||||
{
|
||||
second_column = (i == newspaper.articles->len - 1 ||
|
||||
(i < newspaper.articles->len - 1 &&
|
||||
g_array_index(newspaper.articles, NewsPaperArticle, i).clid !=
|
||||
g_array_index(newspaper.articles, NewsPaperArticle, i + 1).clid));
|
||||
|
||||
if(!opt_int("int_opt_news_show_recent") ||
|
||||
g_array_index(newspaper.articles, NewsPaperArticle, i).week_number == week - 1)
|
||||
{
|
||||
@ -614,7 +620,7 @@ treeview2_create_news(GtkListStore *ls)
|
||||
g_array_index(newspaper.articles, NewsPaperArticle, i + 1).week_round_number)))
|
||||
{
|
||||
gtk_list_store_append(ls, &iter);
|
||||
gtk_list_store_set(ls, &iter, 0, "", 1, NULL, -1);
|
||||
gtk_list_store_set(ls, &iter, 0, "", 1, NULL, 2, NULL, -1);
|
||||
|
||||
gtk_list_store_append(ls, &iter);
|
||||
sprintf(buf2, _("Week %d Round %d"),
|
||||
@ -623,13 +629,25 @@ treeview2_create_news(GtkListStore *ls)
|
||||
sprintf(buf, "<span %s>%s</span>\n\n",
|
||||
const_app("string_news_window_week_number_attribute"),
|
||||
buf2);
|
||||
gtk_list_store_set(ls, &iter, 0, buf, 1, &g_array_index(newspaper.articles, NewsPaperArticle, i), -1);
|
||||
|
||||
second_column = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_list_store_append(ls, &iter);
|
||||
gtk_list_store_set(ls, &iter, 0, "", 1, &g_array_index(newspaper.articles, NewsPaperArticle, i), -1);
|
||||
strcpy(buf, "");
|
||||
}
|
||||
|
||||
if(second_column)
|
||||
gtk_list_store_set(ls, &iter,
|
||||
0, buf,
|
||||
1, &g_array_index(newspaper.articles, NewsPaperArticle, i),
|
||||
2, &g_array_index(newspaper.articles, NewsPaperArticle, i), -1);
|
||||
else
|
||||
gtk_list_store_set(ls, &iter,
|
||||
0, buf,
|
||||
1, &g_array_index(newspaper.articles, NewsPaperArticle, i),
|
||||
2, NULL, -1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -654,7 +672,7 @@ treeview2_set_up_news(GtkTreeView *treeview)
|
||||
renderer = treeview_helper_cell_renderer_text_new();
|
||||
gtk_tree_view_column_pack_start(col, renderer, TRUE);
|
||||
gtk_tree_view_column_add_attribute(col, renderer,
|
||||
"markup", 0);
|
||||
"markup", 0);
|
||||
col = gtk_tree_view_column_new();
|
||||
gtk_tree_view_append_column(treeview, col);
|
||||
renderer = treeview_helper_cell_renderer_text_new();
|
||||
@ -663,7 +681,16 @@ treeview2_set_up_news(GtkTreeView *treeview)
|
||||
gtk_tree_view_column_pack_start(col, renderer, TRUE);
|
||||
gtk_tree_view_column_set_cell_data_func(col, renderer,
|
||||
treeview_helper_news,
|
||||
NULL, NULL);
|
||||
NULL, NULL);
|
||||
col = gtk_tree_view_column_new();
|
||||
gtk_tree_view_append_column(treeview, col);
|
||||
renderer = treeview_helper_cell_renderer_text_new();
|
||||
g_object_set(renderer, "wrap-mode", PANGO_WRAP_WORD, NULL);
|
||||
g_object_set(renderer, "wrap-width", 400, NULL);
|
||||
gtk_tree_view_column_pack_start(col, renderer, TRUE);
|
||||
gtk_tree_view_column_set_cell_data_func(col, renderer,
|
||||
treeview_helper_news_additional,
|
||||
NULL, NULL);
|
||||
}
|
||||
|
||||
/** Show the news in the news treeview. */
|
||||
@ -677,7 +704,7 @@ treeview2_show_news(void)
|
||||
GtkTreeView *treeview =
|
||||
GTK_TREE_VIEW(lookup_widget(window.news, "treeview_news"));
|
||||
GtkListStore *model =
|
||||
gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_POINTER);
|
||||
gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_POINTER);
|
||||
|
||||
treeview_helper_clear(treeview);
|
||||
|
||||
|
@ -1,26 +1,26 @@
|
||||
/*
|
||||
treeview_helper.c
|
||||
treeview_helper.c
|
||||
|
||||
Bygfoot Football Manager -- a small and simple GTK2-based
|
||||
football management game.
|
||||
Bygfoot Football Manager -- a small and simple GTK2-based
|
||||
football management game.
|
||||
|
||||
http://bygfoot.sourceforge.net
|
||||
http://bygfoot.sourceforge.net
|
||||
|
||||
Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com)
|
||||
Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com)
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "bet.h"
|
||||
@ -305,31 +305,31 @@ treeview_helper_get_user_history_icon(gint history_type)
|
||||
|
||||
switch(history_type)
|
||||
{
|
||||
default:
|
||||
g_warning("treeview_helper_get_user_history_icon: unknown type %d.\n", history_type);
|
||||
return NULL;
|
||||
case USER_HISTORY_START_GAME:
|
||||
return const_app("string_treeview_helper_user_history_symbol_start_game_icon");
|
||||
case USER_HISTORY_FIRE_FINANCE:
|
||||
return const_app("string_treeview_helper_user_history_symbol_fire_finances_icon");
|
||||
case USER_HISTORY_FIRE_FAILURE:
|
||||
return const_app("string_treeview_helper_user_history_symbol_fire_failure_icon");
|
||||
case USER_HISTORY_JOB_OFFER_ACCEPTED:
|
||||
return const_app("string_treeview_helper_user_history_symbol_job_offer_accepted_icon");
|
||||
case USER_HISTORY_END_SEASON:
|
||||
return const_app("string_treeview_helper_user_history_symbol_end_season_icon");
|
||||
case USER_HISTORY_WIN_FINAL:
|
||||
return const_app("string_treeview_helper_user_history_symbol_win_final_icon");
|
||||
case USER_HISTORY_LOSE_FINAL:
|
||||
return const_app("string_treeview_helper_user_history_symbol_lose_final_icon");
|
||||
case USER_HISTORY_PROMOTED:
|
||||
return const_app("string_treeview_helper_user_history_symbol_promoted_icon");
|
||||
case USER_HISTORY_RELEGATED:
|
||||
return const_app("string_treeview_helper_user_history_symbol_relegated_icon");
|
||||
case USER_HISTORY_REACH_CUP_ROUND:
|
||||
return const_app("string_treeview_helper_user_history_symbol_reach_cup_round_icon");
|
||||
case USER_HISTORY_CHAMPION:
|
||||
return const_app("string_treeview_helper_user_history_symbol_champion_icon");
|
||||
default:
|
||||
g_warning("treeview_helper_get_user_history_icon: unknown type %d.\n", history_type);
|
||||
return NULL;
|
||||
case USER_HISTORY_START_GAME:
|
||||
return const_app("string_treeview_helper_user_history_symbol_start_game_icon");
|
||||
case USER_HISTORY_FIRE_FINANCE:
|
||||
return const_app("string_treeview_helper_user_history_symbol_fire_finances_icon");
|
||||
case USER_HISTORY_FIRE_FAILURE:
|
||||
return const_app("string_treeview_helper_user_history_symbol_fire_failure_icon");
|
||||
case USER_HISTORY_JOB_OFFER_ACCEPTED:
|
||||
return const_app("string_treeview_helper_user_history_symbol_job_offer_accepted_icon");
|
||||
case USER_HISTORY_END_SEASON:
|
||||
return const_app("string_treeview_helper_user_history_symbol_end_season_icon");
|
||||
case USER_HISTORY_WIN_FINAL:
|
||||
return const_app("string_treeview_helper_user_history_symbol_win_final_icon");
|
||||
case USER_HISTORY_LOSE_FINAL:
|
||||
return const_app("string_treeview_helper_user_history_symbol_lose_final_icon");
|
||||
case USER_HISTORY_PROMOTED:
|
||||
return const_app("string_treeview_helper_user_history_symbol_promoted_icon");
|
||||
case USER_HISTORY_RELEGATED:
|
||||
return const_app("string_treeview_helper_user_history_symbol_relegated_icon");
|
||||
case USER_HISTORY_REACH_CUP_ROUND:
|
||||
return const_app("string_treeview_helper_user_history_symbol_reach_cup_round_icon");
|
||||
case USER_HISTORY_CHAMPION:
|
||||
return const_app("string_treeview_helper_user_history_symbol_champion_icon");
|
||||
}
|
||||
|
||||
return NULL;
|
||||
@ -399,9 +399,9 @@ treeview_helper_insert_icon(GtkTreeModel *ls, GtkTreeIter *iter, gint column_nr,
|
||||
/** Function comparing two teams in a team list treeview. */
|
||||
gint
|
||||
treeview_helper_team_compare(GtkTreeModel *model,
|
||||
GtkTreeIter *a,
|
||||
GtkTreeIter *b,
|
||||
gpointer user_data)
|
||||
GtkTreeIter *a,
|
||||
GtkTreeIter *b,
|
||||
gpointer user_data)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
printf("treeview_helper_team_compare\n");
|
||||
@ -416,13 +416,13 @@ treeview_helper_team_compare(GtkTreeModel *model,
|
||||
|
||||
switch(type)
|
||||
{
|
||||
default:
|
||||
g_warning("treeview_team_compare: unknown type %d.\n", type);
|
||||
break;
|
||||
case TEAM_COMPARE_AV_SKILL:
|
||||
return_value = misc_float_compare(team_get_average_skill(tm1, FALSE),
|
||||
team_get_average_skill(tm2, FALSE));
|
||||
break;
|
||||
default:
|
||||
g_warning("treeview_team_compare: unknown type %d.\n", type);
|
||||
break;
|
||||
case TEAM_COMPARE_AV_SKILL:
|
||||
return_value = misc_float_compare(team_get_average_skill(tm1, FALSE),
|
||||
team_get_average_skill(tm2, FALSE));
|
||||
break;
|
||||
}
|
||||
|
||||
return return_value;
|
||||
@ -456,46 +456,46 @@ treeview_helper_player_compare(GtkTreeModel *model,
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
default:
|
||||
g_warning("treeview_player_compare: unknown type %d.\n", type);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_POS:
|
||||
return_value = misc_int_compare(pl1->pos, pl2->pos);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_GOALS:
|
||||
if(pl1->pos == 0 && pl2->pos == 0)
|
||||
return_value = misc_int_compare(player_games_goals_get(pl2, pl2->team->clid, PLAYER_VALUE_GOALS),
|
||||
player_games_goals_get(pl1, pl1->team->clid, PLAYER_VALUE_GOALS));
|
||||
else if(pl1->pos == 0 || pl2->pos == 0)
|
||||
return_value = (pl1->pos == 0) ? 1 : -1;
|
||||
else
|
||||
return_value = misc_int_compare(player_games_goals_get(pl1, pl1->team->clid, PLAYER_VALUE_GOALS),
|
||||
player_games_goals_get(pl2, pl2->team->clid, PLAYER_VALUE_GOALS));
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_SHOTS:
|
||||
return_value = misc_int_compare(player_games_goals_get(pl1, pl1->team->clid, PLAYER_VALUE_SHOTS),
|
||||
player_games_goals_get(pl2, pl2->team->clid, PLAYER_VALUE_SHOTS));
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_GAMES:
|
||||
return_value = misc_int_compare(player_games_goals_get(pl1, pl1->team->clid, PLAYER_VALUE_GAMES),
|
||||
player_games_goals_get(pl2, pl2->team->clid, PLAYER_VALUE_GAMES));
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_SKILL:
|
||||
return_value = misc_float_compare(pl1->skill, pl2->skill);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_AGE:
|
||||
return_value = misc_float_compare(pl1->age, pl2->age);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_ETAL:
|
||||
return_value = misc_float_compare(pl1->etal[current_user.scout % 10],
|
||||
pl2->etal[current_user.scout % 10]);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_VALUE:
|
||||
return_value = misc_int_compare(pl1->value, pl2->value);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_WAGE:
|
||||
return_value = misc_int_compare(pl1->wage, pl2->wage);
|
||||
break;
|
||||
default:
|
||||
g_warning("treeview_player_compare: unknown type %d.\n", type);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_POS:
|
||||
return_value = misc_int_compare(pl1->pos, pl2->pos);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_GOALS:
|
||||
if(pl1->pos == 0 && pl2->pos == 0)
|
||||
return_value = misc_int_compare(player_games_goals_get(pl2, pl2->team->clid, PLAYER_VALUE_GOALS),
|
||||
player_games_goals_get(pl1, pl1->team->clid, PLAYER_VALUE_GOALS));
|
||||
else if(pl1->pos == 0 || pl2->pos == 0)
|
||||
return_value = (pl1->pos == 0) ? 1 : -1;
|
||||
else
|
||||
return_value = misc_int_compare(player_games_goals_get(pl1, pl1->team->clid, PLAYER_VALUE_GOALS),
|
||||
player_games_goals_get(pl2, pl2->team->clid, PLAYER_VALUE_GOALS));
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_SHOTS:
|
||||
return_value = misc_int_compare(player_games_goals_get(pl1, pl1->team->clid, PLAYER_VALUE_SHOTS),
|
||||
player_games_goals_get(pl2, pl2->team->clid, PLAYER_VALUE_SHOTS));
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_GAMES:
|
||||
return_value = misc_int_compare(player_games_goals_get(pl1, pl1->team->clid, PLAYER_VALUE_GAMES),
|
||||
player_games_goals_get(pl2, pl2->team->clid, PLAYER_VALUE_GAMES));
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_SKILL:
|
||||
return_value = misc_float_compare(pl1->skill, pl2->skill);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_AGE:
|
||||
return_value = misc_float_compare(pl1->age, pl2->age);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_ETAL:
|
||||
return_value = misc_float_compare(pl1->etal[current_user.scout % 10],
|
||||
pl2->etal[current_user.scout % 10]);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_VALUE:
|
||||
return_value = misc_int_compare(pl1->value, pl2->value);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_WAGE:
|
||||
return_value = misc_int_compare(pl1->wage, pl2->wage);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -532,9 +532,9 @@ treeview_helper_get_table_element_colour_cups(const League *league, gint table_i
|
||||
cup_round = &g_array_index(cp(i).rounds, CupRound, k);
|
||||
for(j=0;j<cup_round->choose_teams->len;j++)
|
||||
if((strcmp(g_array_index(cup_round->choose_teams,
|
||||
CupChooseTeam, j).sid, buf) == 0 ||
|
||||
strcmp(g_array_index(cup_round->choose_teams,
|
||||
CupChooseTeam, j).sid, league->sid) == 0) &&
|
||||
CupChooseTeam, j).sid, buf) == 0 ||
|
||||
strcmp(g_array_index(cup_round->choose_teams,
|
||||
CupChooseTeam, j).sid, league->sid) == 0) &&
|
||||
g_array_index(cup_round->choose_teams,
|
||||
CupChooseTeam, j).from_table == table_index)
|
||||
{
|
||||
@ -792,10 +792,10 @@ treeview_helper_team_selection(GtkTreeViewColumn *col,
|
||||
/** Render an integer. This is only so that we know when to draw nothing. */
|
||||
void
|
||||
treeview_helper_int_to_cell(GtkTreeViewColumn *col,
|
||||
GtkCellRenderer *renderer,
|
||||
GtkTreeModel *model,
|
||||
GtkTreeIter *iter,
|
||||
gpointer user_data)
|
||||
GtkCellRenderer *renderer,
|
||||
GtkTreeModel *model,
|
||||
GtkTreeIter *iter,
|
||||
gpointer user_data)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
printf("treeview_helper_int_to_cell\n");
|
||||
@ -818,10 +818,10 @@ treeview_helper_int_to_cell(GtkTreeViewColumn *col,
|
||||
/** Render a cell in the player info view. */
|
||||
void
|
||||
treeview_helper_player_ext_info_to_cell(GtkTreeViewColumn *col,
|
||||
GtkCellRenderer *renderer,
|
||||
GtkTreeModel *model,
|
||||
GtkTreeIter *iter,
|
||||
gpointer user_data)
|
||||
GtkCellRenderer *renderer,
|
||||
GtkTreeModel *model,
|
||||
GtkTreeIter *iter,
|
||||
gpointer user_data)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
printf("treeview_helper_player_ext_info_to_cell\n");
|
||||
@ -843,78 +843,78 @@ treeview_helper_player_ext_info_to_cell(GtkTreeViewColumn *col,
|
||||
|
||||
switch(row_idx)
|
||||
{
|
||||
default:
|
||||
g_warning("treeview_helper_player_ext_info_to_cell: unknown row index %d\n",
|
||||
row_idx);
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_NAME:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_NAME));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_POS:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_POS));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_CPOS:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_CPOS));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_SKILL:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_SKILL));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_CSKILL:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_CSKILL));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_FITNESS:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_FITNESS));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_ETAL:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_ETAL));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_AGE:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_AGE));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_VALUE:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_VALUE));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_WAGE:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_WAGE));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_CONTRACT:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_CONTRACT));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_HEALTH:
|
||||
treeview_helper_player_info_health_to_cell(renderer, pl);
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_GAMES_GOALS:
|
||||
treeview_helper_player_info_games_goals_to_cell(renderer, pl->games_goals);
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_YELLOW_CARDS:
|
||||
treeview_helper_player_info_yellow_to_cell(renderer, pl->cards);
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_BANNED:
|
||||
treeview_helper_player_info_banned_to_cell(renderer, pl->cards);
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_STREAK:
|
||||
treeview_helper_player_info_streak_to_cell(renderer, pl->streak);
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_CAREER:
|
||||
treeview_helper_player_info_career_to_cell(renderer, pl);
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_OFFERS:
|
||||
if(pl->offers > 0)
|
||||
g_object_set(renderer, "text", _("Player doesn't negotiate anymore"), NULL);
|
||||
else
|
||||
g_object_set(renderer, "text", _("Player accepts new offers"), NULL);
|
||||
break;
|
||||
default:
|
||||
g_warning("treeview_helper_player_ext_info_to_cell: unknown row index %d\n",
|
||||
row_idx);
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_NAME:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_NAME));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_POS:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_POS));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_CPOS:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_CPOS));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_SKILL:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_SKILL));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_CSKILL:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_CSKILL));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_FITNESS:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_FITNESS));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_ETAL:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_ETAL));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_AGE:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_AGE));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_VALUE:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_VALUE));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_WAGE:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_WAGE));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_CONTRACT:
|
||||
treeview_helper_player_to_cell(col, renderer, model,
|
||||
iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_CONTRACT));
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_HEALTH:
|
||||
treeview_helper_player_info_health_to_cell(renderer, pl);
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_GAMES_GOALS:
|
||||
treeview_helper_player_info_games_goals_to_cell(renderer, pl->games_goals);
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_YELLOW_CARDS:
|
||||
treeview_helper_player_info_yellow_to_cell(renderer, pl->cards);
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_BANNED:
|
||||
treeview_helper_player_info_banned_to_cell(renderer, pl->cards);
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_STREAK:
|
||||
treeview_helper_player_info_streak_to_cell(renderer, pl->streak);
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_CAREER:
|
||||
treeview_helper_player_info_career_to_cell(renderer, pl);
|
||||
break;
|
||||
case PLAYER_INFO_ATTRIBUTE_OFFERS:
|
||||
if(pl->offers > 0)
|
||||
g_object_set(renderer, "text", _("Player doesn't negotiate anymore"), NULL);
|
||||
else
|
||||
g_object_set(renderer, "text", _("Player accepts new offers"), NULL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1127,73 +1127,73 @@ treeview_helper_player_to_cell(GtkTreeViewColumn *col,
|
||||
|
||||
switch(attribute)
|
||||
{
|
||||
default:
|
||||
g_warning("treeview_helper_player_to_cell: unknown attribute %d.\n", attribute);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_NAME:
|
||||
treeview_helper_player_name_to_cell(renderer, buf, pl);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_CPOS:
|
||||
treeview_helper_player_pos_to_cell(renderer, buf, pl,
|
||||
PLAYER_LIST_ATTRIBUTE_CPOS);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_POS:
|
||||
treeview_helper_player_pos_to_cell(renderer, buf, pl,
|
||||
PLAYER_LIST_ATTRIBUTE_POS);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_CSKILL:
|
||||
treeview_helper_player_cskill_to_cell(renderer, buf, pl);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_SKILL:
|
||||
sprintf(buf, "%.*f", opt_int("int_opt_player_precision"), pl->skill);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_FITNESS:
|
||||
treeview_helper_player_fitness_to_cell(renderer, buf, pl->fitness);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_GAMES:
|
||||
treeview_helper_player_games_goals_to_cell(buf, pl, PLAYER_VALUE_GAMES);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_GOALS:
|
||||
treeview_helper_player_games_goals_to_cell(buf, pl, PLAYER_VALUE_GOALS);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_SHOTS:
|
||||
treeview_helper_player_games_goals_to_cell(buf, pl, PLAYER_VALUE_SHOTS);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_STATUS:
|
||||
treeview_helper_player_status_to_cell(NULL, renderer,
|
||||
NULL, NULL, (gpointer)pl);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_CARDS:
|
||||
treeview_helper_player_cards_to_cell(buf, pl);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_AGE:
|
||||
sprintf(buf, "%.*f", opt_int("int_opt_player_precision"), pl->age);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_ETAL:
|
||||
sprintf(buf, "%.*f", opt_int("int_opt_player_precision"),
|
||||
pl->etal[current_user.scout % 10]);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_VALUE:
|
||||
misc_print_grouped_int(pl->value, buf);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_WAGE:
|
||||
misc_print_grouped_int(pl->wage, buf);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_CONTRACT:
|
||||
treeview_helper_player_contract_to_cell(renderer, buf, pl->contract);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_TEAM:
|
||||
if(debug < 50)
|
||||
sprintf(buf, "%s", pl->team->name);
|
||||
else
|
||||
sprintf(buf, "%s (%s)", pl->team->name, pl->team->strategy_sid);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_LEAGUE_CUP:
|
||||
idx = job_team_is_on_list(pl->team->id);
|
||||
strcpy(buf, (idx == -1) ?
|
||||
league_cup_get_name_string(pl->team->clid) :
|
||||
g_array_index(jobs, Job, idx).league_name);
|
||||
break;
|
||||
default:
|
||||
g_warning("treeview_helper_player_to_cell: unknown attribute %d.\n", attribute);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_NAME:
|
||||
treeview_helper_player_name_to_cell(renderer, buf, pl);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_CPOS:
|
||||
treeview_helper_player_pos_to_cell(renderer, buf, pl,
|
||||
PLAYER_LIST_ATTRIBUTE_CPOS);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_POS:
|
||||
treeview_helper_player_pos_to_cell(renderer, buf, pl,
|
||||
PLAYER_LIST_ATTRIBUTE_POS);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_CSKILL:
|
||||
treeview_helper_player_cskill_to_cell(renderer, buf, pl);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_SKILL:
|
||||
sprintf(buf, "%.*f", opt_int("int_opt_player_precision"), pl->skill);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_FITNESS:
|
||||
treeview_helper_player_fitness_to_cell(renderer, buf, pl->fitness);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_GAMES:
|
||||
treeview_helper_player_games_goals_to_cell(buf, pl, PLAYER_VALUE_GAMES);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_GOALS:
|
||||
treeview_helper_player_games_goals_to_cell(buf, pl, PLAYER_VALUE_GOALS);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_SHOTS:
|
||||
treeview_helper_player_games_goals_to_cell(buf, pl, PLAYER_VALUE_SHOTS);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_STATUS:
|
||||
treeview_helper_player_status_to_cell(NULL, renderer,
|
||||
NULL, NULL, (gpointer)pl);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_CARDS:
|
||||
treeview_helper_player_cards_to_cell(buf, pl);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_AGE:
|
||||
sprintf(buf, "%.*f", opt_int("int_opt_player_precision"), pl->age);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_ETAL:
|
||||
sprintf(buf, "%.*f", opt_int("int_opt_player_precision"),
|
||||
pl->etal[current_user.scout % 10]);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_VALUE:
|
||||
misc_print_grouped_int(pl->value, buf);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_WAGE:
|
||||
misc_print_grouped_int(pl->wage, buf);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_CONTRACT:
|
||||
treeview_helper_player_contract_to_cell(renderer, buf, pl->contract);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_TEAM:
|
||||
if(debug < 50)
|
||||
sprintf(buf, "%s", pl->team->name);
|
||||
else
|
||||
sprintf(buf, "%s (%s)", pl->team->name, pl->team->strategy_sid);
|
||||
break;
|
||||
case PLAYER_LIST_ATTRIBUTE_LEAGUE_CUP:
|
||||
idx = job_team_is_on_list(pl->team->id);
|
||||
strcpy(buf, (idx == -1) ?
|
||||
league_cup_get_name_string(pl->team->clid) :
|
||||
g_array_index(jobs, Job, idx).league_name);
|
||||
break;
|
||||
}
|
||||
|
||||
if(attribute != PLAYER_LIST_ATTRIBUTE_STATUS)
|
||||
@ -1238,8 +1238,8 @@ treeview_helper_player_name_to_cell(GtkCellRenderer *renderer, gchar *buf, const
|
||||
}
|
||||
else if(query_transfer_current_team_offer(pl))
|
||||
{
|
||||
colour_bg = const_app("string_treeview_helper_color_transfer_offer_bg");
|
||||
colour_fg = const_app("string_treeview_helper_color_transfer_offer_fg");
|
||||
colour_bg = const_app("string_treeview_helper_color_transfer_offer_bg");
|
||||
colour_fg = const_app("string_treeview_helper_color_transfer_offer_fg");
|
||||
}
|
||||
|
||||
g_object_set(renderer, "background", colour_bg, NULL);
|
||||
@ -1494,38 +1494,38 @@ treeview_helper_player_pos_to_cell(GtkCellRenderer *renderer, gchar *buf,
|
||||
|
||||
switch(pos)
|
||||
{
|
||||
default:
|
||||
/* Goalie */
|
||||
strcpy(buf, _("G"));
|
||||
g_object_set(renderer, "background",
|
||||
const_app("string_treeview_helper_color_player_pos_goalie_bg"),
|
||||
"foreground",
|
||||
const_app("string_treeview_helper_color_player_pos_goalie_fg"), NULL);
|
||||
break;
|
||||
case PLAYER_POS_DEFENDER:
|
||||
/* Defender */
|
||||
strcpy(buf, _("D"));
|
||||
g_object_set(renderer, "background",
|
||||
const_app("string_treeview_helper_color_player_pos_defender_bg"),
|
||||
"foreground",
|
||||
const_app("string_treeview_helper_color_player_pos_defender_fg"), NULL);
|
||||
break;
|
||||
case PLAYER_POS_MIDFIELDER:
|
||||
/* Midfielder */
|
||||
strcpy(buf, _("M"));
|
||||
g_object_set(renderer, "background",
|
||||
const_app("string_treeview_helper_color_player_pos_midfielder_bg"),
|
||||
"foreground",
|
||||
const_app("string_treeview_helper_color_player_pos_midfielder_fg"), NULL);
|
||||
break;
|
||||
case PLAYER_POS_FORWARD:
|
||||
/* Forward */
|
||||
strcpy(buf, _("F"));
|
||||
g_object_set(renderer, "background",
|
||||
const_app("string_treeview_helper_color_player_pos_forward_bg"),
|
||||
"foreground",
|
||||
const_app("string_treeview_helper_color_player_pos_forward_fg"), NULL);
|
||||
break;
|
||||
default:
|
||||
/* Goalie */
|
||||
strcpy(buf, _("G"));
|
||||
g_object_set(renderer, "background",
|
||||
const_app("string_treeview_helper_color_player_pos_goalie_bg"),
|
||||
"foreground",
|
||||
const_app("string_treeview_helper_color_player_pos_goalie_fg"), NULL);
|
||||
break;
|
||||
case PLAYER_POS_DEFENDER:
|
||||
/* Defender */
|
||||
strcpy(buf, _("D"));
|
||||
g_object_set(renderer, "background",
|
||||
const_app("string_treeview_helper_color_player_pos_defender_bg"),
|
||||
"foreground",
|
||||
const_app("string_treeview_helper_color_player_pos_defender_fg"), NULL);
|
||||
break;
|
||||
case PLAYER_POS_MIDFIELDER:
|
||||
/* Midfielder */
|
||||
strcpy(buf, _("M"));
|
||||
g_object_set(renderer, "background",
|
||||
const_app("string_treeview_helper_color_player_pos_midfielder_bg"),
|
||||
"foreground",
|
||||
const_app("string_treeview_helper_color_player_pos_midfielder_fg"), NULL);
|
||||
break;
|
||||
case PLAYER_POS_FORWARD:
|
||||
/* Forward */
|
||||
strcpy(buf, _("F"));
|
||||
g_object_set(renderer, "background",
|
||||
const_app("string_treeview_helper_color_player_pos_forward_bg"),
|
||||
"foreground",
|
||||
const_app("string_treeview_helper_color_player_pos_forward_fg"), NULL);
|
||||
break;
|
||||
}
|
||||
|
||||
if(pl->cskill == 0)
|
||||
@ -1838,12 +1838,44 @@ treeview_helper_search_equal(GtkTreeModel *model,
|
||||
return return_value;
|
||||
}
|
||||
|
||||
void
|
||||
treeview_helper_news_additional(GtkTreeViewColumn *col,
|
||||
GtkCellRenderer *renderer,
|
||||
GtkTreeModel *model,
|
||||
GtkTreeIter *iter,
|
||||
gpointer user_data)
|
||||
{
|
||||
const NewsPaperArticle *article = NULL;
|
||||
const gchar *colour_fg;
|
||||
const gchar *colour_bg;
|
||||
gchar buf[SMALL];
|
||||
|
||||
gtk_tree_model_get(model, iter, 2, &article, -1);
|
||||
|
||||
colour_fg = const_app("string_treeview_helper_color_default_foreground");
|
||||
colour_bg = const_app("string_treeview_helper_color_default_background");
|
||||
|
||||
if(article == NULL)
|
||||
{
|
||||
g_object_set(renderer, "markup", "",
|
||||
"background", colour_bg, "foreground", colour_fg, NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
sprintf(buf, "<span %s>%s</span>",
|
||||
const_app("string_news_window_league_cup_attribute"),
|
||||
league_cup_get_name_string(article->clid));
|
||||
|
||||
g_object_set(renderer, "markup", buf,
|
||||
"background", colour_bg, "foreground", colour_fg, NULL);
|
||||
}
|
||||
|
||||
void
|
||||
treeview_helper_news(GtkTreeViewColumn *col,
|
||||
GtkCellRenderer *renderer,
|
||||
GtkTreeModel *model,
|
||||
GtkTreeIter *iter,
|
||||
gpointer user_data)
|
||||
GtkCellRenderer *renderer,
|
||||
GtkTreeModel *model,
|
||||
GtkTreeIter *iter,
|
||||
gpointer user_data)
|
||||
{
|
||||
const NewsPaperArticle *article = NULL;
|
||||
const gchar *colour_fg;
|
||||
@ -1856,7 +1888,7 @@ treeview_helper_news(GtkTreeViewColumn *col,
|
||||
colour_fg = const_app("string_treeview_helper_color_default_foreground");
|
||||
colour_bg = const_app("string_treeview_helper_color_default_background");
|
||||
|
||||
if(article == NULL)
|
||||
if(article == NULL)
|
||||
{
|
||||
g_object_set(renderer, "markup", "",
|
||||
"background", colour_bg, "foreground", colour_fg, NULL);
|
||||
|
@ -236,4 +236,11 @@ treeview_helper_news(GtkTreeViewColumn *col,
|
||||
GtkTreeIter *iter,
|
||||
gpointer user_data);
|
||||
|
||||
void
|
||||
treeview_helper_news_additional(GtkTreeViewColumn *col,
|
||||
GtkCellRenderer *renderer,
|
||||
GtkTreeModel *model,
|
||||
GtkTreeIter *iter,
|
||||
gpointer user_data);
|
||||
|
||||
#endif
|
||||
|
@ -44,6 +44,7 @@ enum
|
||||
TAG_NEWS_PAPER_ARTICLE_TITLE,
|
||||
TAG_NEWS_PAPER_ARTICLE_SUBTITLE,
|
||||
TAG_NEWS_PAPER_ARTICLE_USER_IDX,
|
||||
TAG_NEWS_PAPER_ARTICLE_CLID,
|
||||
TAG_END
|
||||
};
|
||||
|
||||
@ -105,6 +106,7 @@ xml_loadsave_newspaper_end_element (GMarkupParseContext *context,
|
||||
tag == TAG_NEWS_PAPER_ARTICLE_TITLE_ID ||
|
||||
tag == TAG_NEWS_PAPER_ARTICLE_SUBTITLE ||
|
||||
tag == TAG_NEWS_PAPER_ARTICLE_USER_IDX ||
|
||||
tag == TAG_NEWS_PAPER_ARTICLE_CLID ||
|
||||
tag == TAG_NEWS_PAPER_ARTICLE_SUBTITLE_ID)
|
||||
{
|
||||
state = TAG_NEWS_PAPER_ARTICLE;
|
||||
@ -151,6 +153,8 @@ xml_loadsave_newspaper_text (GMarkupParseContext *context,
|
||||
new_article.subtitle_id = int_value;
|
||||
else if(state == TAG_NEWS_PAPER_ARTICLE_USER_IDX)
|
||||
new_article.user_idx = int_value;
|
||||
else if(state == TAG_NEWS_PAPER_ARTICLE_CLID)
|
||||
new_article.clid = int_value;
|
||||
}
|
||||
|
||||
void
|
||||
@ -234,6 +238,8 @@ xml_loadsave_newspaper_write(const gchar *prefix)
|
||||
TAG_NEWS_PAPER_ARTICLE_SUBTITLE_ID, I1);
|
||||
xml_write_int(fil, g_array_index(newspaper.articles, NewsPaperArticle, i).user_idx,
|
||||
TAG_NEWS_PAPER_ARTICLE_USER_IDX, I1);
|
||||
xml_write_int(fil, g_array_index(newspaper.articles, NewsPaperArticle, i).clid,
|
||||
TAG_NEWS_PAPER_ARTICLE_CLID, I1);
|
||||
|
||||
fprintf(fil, "%s</_%d>\n", I0, TAG_NEWS_PAPER_ARTICLE);
|
||||
}
|
||||
|
@ -240,4 +240,4 @@ string_news_window_week_number_attribute style='oblique'
|
||||
string_news_window_title_small_attribute size='small'
|
||||
string_news_window_title_attribute weight='bold' size='large'
|
||||
string_news_window_subtitle_attribute style='oblique'
|
||||
string_news_window_alternate_background lightgrey
|
||||
string_news_window_league_cup_attribute weight='bold'
|
||||
|
@ -1002,3 +1002,6 @@ int_training_camps_week 2
|
||||
# to avoid news repetitions
|
||||
int_news_repetition_min_check_number 3
|
||||
int_news_repetition_max_check_number 10
|
||||
|
||||
# how many news articles to keep in memory
|
||||
int_news_history_length 50
|
||||
|
@ -35,7 +35,7 @@ string_token_team_losingn _TLN_ # also for news
|
||||
string_token_team _TT_
|
||||
string_token_team_layer0 _TLAYER0_ # also for news
|
||||
string_token_team_layer1 _TLAYER1_ # also for news
|
||||
string_token_team_layerdiff _LAYERDIFF_ # also for news
|
||||
string_token_team_layerdiff _TLAYERDIFF_ # also for news
|
||||
string_token_team_avskill0 _TAVSKILL0_ # also for news
|
||||
string_token_team_avskill1 _TAVSKILL1_ # also for news
|
||||
string_token_team_avskilldiff _TAVSKILLDIFF_ # also for news
|
||||
|
@ -134,13 +134,15 @@
|
||||
<subtitle>Faire Punkteteilung nach ausgeglichenem Spiel.</subtitle>
|
||||
<subtitle>Das Remis hilft aber keinem der beiden Teams weiter.</subtitle>
|
||||
<subtitle>Weder _T0_ noch _T1_ können mit einem Unentschieden zufrieden sein.</subtitle>
|
||||
<subtitle condition="_GOALS0_ < 2">Zahlreiche der _AT_ Zuschauer sterben an Langeweile während dieses unterirdischen Spiels.</subtitle>
|
||||
<subtitle condition="_GOALS0_ < 2">Die beiden Teams liefern einen Grottenkick aus der Zeit des Catenaccio.</subtitle>
|
||||
<subtitle condition="_GOALS0_ > 1">_AT_ werden trotz Unentschieden beim _RE_ gut unterhalten.</subtitle>
|
||||
<subtitle condition="_GOALS0_ > 2">Trainer von [_T0_|_T1_] will sich in den nächsten Wochen auf die Defensive konzentrieren.</subtitle>
|
||||
<subtitle condition="_GOALS0_ > 1">Gute Offensivleistung von [_T0_|_T1_] wird durch Leichtsinnsfehler kaputtgemacht.</subtitle>
|
||||
<subtitle condition="_GOALS0_ > 1">[_T0_|_T1_] verschenkt durch Fehler in der Verteidigung den Sieg.</subtitle>
|
||||
<subtitle condition="_GOALS0_ = 1">Ein Fehler kostet [_T0_|_T1_] den Sieg.</subtitle>
|
||||
<subtitle condition="_GOALS0_ = 0 and _SHOTS0_ > 2">Mangelhafte Chancenverwertung raubt _T0_ die Chance auf den Sieg.</subtitle>
|
||||
<subtitle condition="_GOALS1_ = 0 and _SHOTS1_ > 2">Mangelhafte Chancenverwertung raubt _T1_ die Chance auf den Sieg.</subtitle>
|
||||
<subtitle condition="_GOALS0_ < _SHOTS0_ + 3">Mangelhafte Chancenverwertung raubt _T0_ die Chance auf den Sieg.</subtitle>
|
||||
<subtitle condition="_GOALS1_ < _SHOTS1_ + 3">Mangelhafte Chancenverwertung raubt _T1_ die Chance auf den Sieg.</subtitle>
|
||||
<subtitle condition="_GOALS1_ = 0 and _PEN1_ > 0">Ein verschenkter Elfmeter wird den Spielern von _T1_ noch lange den Schlaf rauben.</subtitle>
|
||||
<subtitle condition="_GOALS0_ = 0 and _PEN0_ > 0">Ein verschenkter Elfmeter wird den Spielern von _T0_ noch lange den Schlaf rauben.</subtitle>
|
||||
<subtitle condition="_UNBEATEN0_ > 3">_T0_ holt nur Unentschieden, ist aber seit _UNBEATEN0_ Matches ungeschlagen.</subtitle>
|
||||
@ -175,23 +177,47 @@
|
||||
|
||||
<news_article>
|
||||
<type>match</type>
|
||||
<condition>_LAYERDIFF_ = 0 and _GD_ != 0 and _TAVSKILLDIFF_ > 7</condition>
|
||||
<condition>_TLAYERDIFF_ = 0 and _GD_ != 0 and _TAVSKILLDIFF_ > 7</condition>
|
||||
<title condition="_TAVSKILL_TWN__ > _TAVSKILL_TLN__">_TW_ [besiegt|gewinnt gegen|bezwingt|schlägt] _TL_</title>
|
||||
<title condition="_TAVSKILL_TWN__ > _TAVSKILL_TLN__">Wie erwartet _TW_ [besiegt|bezwingt|schlägt] _TL_</title>
|
||||
<title condition="_TAVSKILL_TWN__ > _TAVSKILL_TLN__">Wie erwartet [besiegt|bezwingt|schlägt] _TW_ _TL_</title>
|
||||
<title condition="_TAVSKILL_TWN__ > _TAVSKILL_TLN__">_TW_ erfüllt Erwartungen der Experten</title>
|
||||
<title condition="_TAVSKILL_TWN__ > _TAVSKILL_TLN__">_TW_ schlägt _TL_ erwartungsgemäß mit _RE_</title>
|
||||
<title condition="_TAVSKILL_TWN__ > _TAVSKILL_TLN__">_TW_ schlägt _TL_ erwartungsgemäß mit _REW_</title>
|
||||
<title condition="_TAVSKILL_TWN__ < _TAVSKILL_TLN__">_TW_ trotzt den Wettquoten und besiegt _TL_</title>
|
||||
<title condition="_TAVSKILL_TWN__ < _TAVSKILL_TLN__">_TW_ schafft kleine Sensation gegen _TL_</title>
|
||||
<title condition="_TAVSKILL_TWN__ < _TAVSKILL_TLN__">_TL_ nominell überlegen, verliert aber _RE_</title>
|
||||
<subtitle condition="_TAVSKILL_TWN__ > _TAVSKILL_TLN__">Gegen _TW_ war nicht mehr drin für _TL_</subtitle>
|
||||
<subtitle condition="_TAVSKILL_TWN__ > _TAVSKILL_TLN__">Gegen _TW_ war nicht mehr drin für _TL_.</subtitle>
|
||||
<subtitle condition="_TAVSKILL_TWN__ > _TAVSKILL_TLN__">_TW_ war auf dem Papier besser als _TL_ - und auf dem Platz auch.</subtitle>
|
||||
<subtitle condition="_TAVSKILL_TWN__ > _TAVSKILL_TLN__">_TW_ hatte die bessere Mannschaft und nutzte den Vorteil gnadenlos.</subtitle>
|
||||
<subtitle condition="_TAVSKILL_TWN__ < _TAVSKILL_TLN__">_TW_ stellt die Fussballwelt auf den Kopf mit dem überraschenden Sieg.</subtitle>
|
||||
<subtitle condition="_TAVSKILL_TWN__ < _TAVSKILL_TLN__">_TW_ wurde schwächer eingeschätzt, macht die nominellen Nachteile aber mit Leidenschaft mehr als wett.</subtitle>
|
||||
<subtitle condition="_TAVSKILL_TWN__ < _TAVSKILL_TLN__">_TW_ wurde schwächer eingeschätzt, macht aber alle Nachteile mit Leidenschaft mehr als wett.</subtitle>
|
||||
<subtitle condition="_TAVSKILL_TWN__ < _TAVSKILL_TLN__">Dank einer cleveren Taktik gewinnt _TW_ gegen einen höher eingeschätzten Gegner.</subtitle>
|
||||
<subtitle condition="_TAVSKILL_TWN__ < _TAVSKILL_TLN__">_TL_ muss sich an den eigenen Kopf fassen nach einer unnötigen Niederlage gegen einen auf dem Papier wesentlich schwächeren Widersacher.</subtitle>
|
||||
<subtitle condition="_TAVSKILL_TWN__ < _TAVSKILL_TLN__">_TW_ demonstriert eindrucksvoll, wie ein homogen agierendes Team einen Gegner mit den besseren Einzelspielern überwältigen kann.</subtitle>
|
||||
</news_article>
|
||||
|
||||
<news_article>
|
||||
<type>match</type>
|
||||
<condition>_TLAYERDIFF_ > 0</condition>
|
||||
<title condition="_GD_ = 0">_T[_TLAYER0_ L _TLAYER1_]_ schafft überraschendes Unentschieden</title>
|
||||
<title condition="_GD_ = 0">_T[_TLAYER0_ L _TLAYER1_]_ hält _T[_TLAYER0_ G _TLAYER1_]_ stand</title>
|
||||
<title condition="_GD_ = 0">_LEAGUECUPNAME_: _T[_TLAYER0_ L _TLAYER1_]_ erkämpft Remis</title>
|
||||
<title condition="_TWN_ = [_TLAYER0_ < _TLAYER1_]">_T[_TLAYER0_ L _TLAYER1_]_ schlägt _T[_TLAYER0_ G _TLAYER1_]_ sensationell</title>
|
||||
<title condition="_TWN_ = [_TLAYER0_ < _TLAYER1_]">_T[_TLAYER0_ L _TLAYER1_]_ schafft Sensation</title>
|
||||
<title condition="_TWN_ = [_TLAYER0_ < _TLAYER1_]">_T[_TLAYER0_ L _TLAYER1_]_ siegt trotz Klassenunterschied</title>
|
||||
<title condition="_TWN_ = [_TLAYER0_ > _TLAYER1_]">_T[_TLAYER0_ L _TLAYER1_]_ muss sich der Übermacht beugen</title>
|
||||
<title condition="_TWN_ = [_TLAYER0_ > _TLAYER1_]">_T[_TLAYER0_ G _TLAYER1_]_ zu gut für _T[_TLAYER0_ L _TLAYER1_]_</title>
|
||||
<title condition="_TWN_ = [_TLAYER0_ > _TLAYER1_]">_T[_TLAYER0_ G _TLAYER1_]_ bezwingt tapferen Gegner</title>
|
||||
<subtitle condition="_GD_ = 0">_T[_TLAYER0_ L _TLAYER1_]_ hält dem Druck des übermächtigen Gegners stand.</subtitle>
|
||||
<subtitle condition="_GD_ = 0 or _TWN_ = [_TLAYER0_ L _TLAYER1_]">Keiner hätte ein solches Ergebnis erwartet - ausser die Spieler und der Trainer von _T[_TLAYER0_ L _TLAYER1_]_.</subtitle>
|
||||
<subtitle condition="_GD_ = 0 or _TWN_ = [_TLAYER0_ L _TLAYER1_]">_T[_TLAYER0_ L _TLAYER1_]_ gelingt mit dem _RE_ ein Ergebnis, das kein Experte erwartet hatte.</subtitle>
|
||||
<subtitle condition="_TWN_ = [_TLAYER0_ > _TLAYER1_]">_T[_TLAYER0_ L _TLAYER1_]_ gibt alles, _T[_TLAYER0_ G _TLAYER1_]_ erweist sich jedoch als zu stark.</subtitle>
|
||||
<subtitle condition="_TWN_ = [_TLAYER0_ > _TLAYER1_]">_T[_TLAYER0_ G _TLAYER1_]_ erfüllt die Erwartungen und siegt vor _AT_ Zuschauern.</subtitle>
|
||||
<subtitle condition="_TWN_ = [_TLAYER0_ > _TLAYER1_] and _GD_ > 1">_T[_TLAYER0_ G _TLAYER1_]_ lässt dem unterklassigen Gegner keine Chance.</subtitle>
|
||||
<subtitle condition="_TWN_ = [_TLAYER0_ < _TLAYER1_]">_T[_TLAYER0_ G _TLAYER1_]_ blamiert sich gegen den unterklassigen Gegner bis auf die Knochen.</subtitle>
|
||||
<subtitle condition="_TWN_ = [_TLAYER0_ < _TLAYER1_]">Nach der überraschenden Niederlage nimmt die Polizei Ermittlungen wegen des Verdachts auf Manipulation auf.</subtitle>
|
||||
<subtitle condition="_TWN_ = [_TLAYER0_ < _TLAYER1_]">_T[_TLAYER0_ L _TLAYER1_]_ fügt _T[_TLAYER0_ G _TLAYER1_]_ vor _AT_ Zuschauern eine demütigende Pokalniederlage zu.</subtitle>
|
||||
<subtitle condition="_TWN_ = [_TLAYER0_ < _TLAYER1_]">_T[_TLAYER0_ L _TLAYER1_]_ lässt sich nicht durch den Klassenunterschied verunsichern und siegt _RE_.</subtitle>
|
||||
</news_article>
|
||||
|
||||
</news>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user