Feature #943 » 943_S3_3.patch
| client/gui-gtk-3.22/gui_main.c | ||
|---|---|---|
|
static GtkWidget *more_arrow_pixmap_container;
|
||
|
static int unit_id_top;
|
||
|
static int unit_ids[MAX_NUM_UNITS_BELOW]; /* ids of the units icons in
|
||
|
static int unit_ids[MAX_NUM_UNITS_BELOW]; /* ids of the units icons in
|
||
|
* information display: (or 0) */
|
||
|
GtkTextView *main_message_area;
|
||
|
GtkTextBuffer *message_buffer = NULL;
|
||
| ... | ... | |
|
/**********************************************************************//**
|
||
|
Print extra usage information, including one line help on each option,
|
||
|
to stderr.
|
||
|
to stderr.
|
||
|
**************************************************************************/
|
||
|
static void print_usage(void)
|
||
|
{
|
||
| ... | ... | |
|
switch (arg) {
|
||
|
case GTK_DIR_TAB_FORWARD:
|
||
|
case GTK_DIR_TAB_BACKWARD:
|
||
|
|
||
|
if (!gtk_widget_get_can_focus(w)) {
|
||
|
return FALSE;
|
||
|
return FALSE;
|
||
|
}
|
||
|
if (!gtk_widget_is_focus(w)) {
|
||
|
gtk_widget_grab_focus(w);
|
||
|
return TRUE;
|
||
|
gtk_widget_grab_focus(w);
|
||
|
return TRUE;
|
||
|
}
|
||
|
break;
|
||
| ... | ... | |
|
&& gtk_text_view_get_editable(GTK_TEXT_VIEW(focus)))) {
|
||
|
/* Propagate event to currently focused entry widget. */
|
||
|
if (gtk_widget_event(focus, ev)) {
|
||
|
/* Do not propagate event to our children. */
|
||
|
return TRUE;
|
||
|
/* Do not propagate event to our children. */
|
||
|
return TRUE;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
| ... | ... | |
|
case GDK_KEY_Page_Up:
|
||
|
g_signal_emit_by_name(main_message_area, "move_cursor",
|
||
|
GTK_MOVEMENT_PAGES, -1, FALSE);
|
||
|
GTK_MOVEMENT_PAGES, -1, FALSE);
|
||
|
return TRUE;
|
||
|
case GDK_KEY_Page_Down:
|
||
|
g_signal_emit_by_name(main_message_area, "move_cursor",
|
||
|
GTK_MOVEMENT_PAGES, 1, FALSE);
|
||
|
GTK_MOVEMENT_PAGES, 1, FALSE);
|
||
|
return TRUE;
|
||
|
default:
|
||
| ... | ... | |
|
}
|
||
|
if (!(ev->state & ACCL_MOD_KEY)) {
|
||
|
switch (ev->keyval) {
|
||
|
case GDK_KEY_plus:
|
||
|
case GDK_KEY_KP_Add:
|
||
|
zoom_step_up();
|
||
|
return TRUE;
|
||
|
case GDK_KEY_minus:
|
||
|
case GDK_KEY_KP_Subtract:
|
||
|
zoom_step_down();
|
||
|
return TRUE;
|
||
| ... | ... | |
|
return TRUE;
|
||
|
case GDK_KEY_KP_Begin:
|
||
|
case GDK_KEY_KP_5:
|
||
|
case GDK_KEY_KP_5:
|
||
|
case GDK_KEY_5:
|
||
|
key_recall_previous_focus_unit();
|
||
|
key_recall_previous_focus_unit();
|
||
|
return TRUE;
|
||
|
case GDK_KEY_Escape:
|
||
| ... | ... | |
|
gtk_window_set_position(GTK_WINDOW(w), GTK_WIN_POS_MOUSE);
|
||
|
g_signal_connect(w, "destroy", G_CALLBACK(tearoff_destroy), box);
|
||
|
g_signal_connect(w, "key_press_event",
|
||
|
G_CALLBACK(propagate_keypress), NULL);
|
||
|
G_CALLBACK(propagate_keypress), NULL);
|
||
|
g_object_set_data(G_OBJECT(w), "parent", gtk_widget_get_parent(box));
|
||
|
g_object_set_data(G_OBJECT(w), "toggle", b);
|
||
| ... | ... | |
|
gtk_container_add(GTK_CONTAINER(unit_image_button), unit_image);
|
||
|
gtk_grid_attach(GTK_GRID(table), unit_image_button, 0, 0, 1, 1);
|
||
|
g_signal_connect(unit_image_button, "button_press_event",
|
||
|
G_CALLBACK(select_unit_image_callback),
|
||
|
G_CALLBACK(select_unit_image_callback),
|
||
|
GINT_TO_POINTER(-1));
|
||
|
if (!GUI_GTK_OPTION(small_display_layout)) {
|
||
| ... | ... | |
|
gtk_widget_set_halign(overview_canvas, GTK_ALIGN_CENTER);
|
||
|
gtk_widget_set_valign(overview_canvas, GTK_ALIGN_CENTER);
|
||
|
gtk_widget_set_size_request(overview_canvas, overview_canvas_store_width,
|
||
|
overview_canvas_store_height);
|
||
|
overview_canvas_store_height);
|
||
|
gtk_widget_set_size_request(overview_scrolled_window, overview_canvas_store_width,
|
||
|
overview_canvas_store_height);
|
||
|
overview_canvas_store_height);
|
||
|
gtk_widget_set_hexpand(overview_canvas, TRUE);
|
||
|
gtk_widget_set_vexpand(overview_canvas, TRUE);
|
||
|
gtk_widget_add_events(overview_canvas, GDK_EXPOSURE_MASK
|
||
|
|GDK_BUTTON_PRESS_MASK
|
||
|
|GDK_POINTER_MOTION_MASK);
|
||
|
|GDK_BUTTON_PRESS_MASK
|
||
|
|GDK_POINTER_MOTION_MASK);
|
||
|
gtk_container_add(GTK_CONTAINER(avbox), overview_scrolled_window);
|
||
|
gtk_container_add(GTK_CONTAINER(overview_scrolled_window),
|
||
|
gtk_container_add(GTK_CONTAINER(overview_scrolled_window),
|
||
|
overview_canvas);
|
||
|
|
||
|
g_signal_connect(overview_canvas, "draw",
|
||
|
G_CALLBACK(overview_canvas_draw), NULL);
|
||
|
G_CALLBACK(overview_canvas_draw), NULL);
|
||
|
g_signal_connect(overview_canvas, "motion_notify_event",
|
||
|
G_CALLBACK(move_overviewcanvas), NULL);
|
||
|
G_CALLBACK(move_overviewcanvas), NULL);
|
||
|
g_signal_connect(overview_canvas, "button_press_event",
|
||
|
G_CALLBACK(butt_down_overviewcanvas), NULL);
|
||
|
G_CALLBACK(butt_down_overviewcanvas), NULL);
|
||
|
/* The rest */
|
||
| ... | ... | |
|
break;
|
||
|
case 2:
|
||
|
w = flake_label;
|
||
|
flake_ebox = ebox;
|
||
|
flake_ebox = ebox;
|
||
|
break;
|
||
|
default:
|
||
|
case 3:
|
||
| ... | ... | |
|
sw = gtk_scrolled_window_new(NULL, NULL);
|
||
|
gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
|
||
|
GTK_SHADOW_ETCHED_IN);
|
||
|
GTK_SHADOW_ETCHED_IN);
|
||
|
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC,
|
||
|
GTK_POLICY_ALWAYS);
|
||
|
GTK_POLICY_ALWAYS);
|
||
|
gtk_container_add(GTK_CONTAINER(vgrid), sw);
|
||
|
label = gtk_label_new(_("Chat"));
|
||
| ... | ... | |
|
Set socket writability state
|
||
|
**************************************************************************/
|
||
|
static void set_wait_for_writable_socket(struct connection *pc,
|
||
|
bool socket_writable)
|
||
|
bool socket_writable)
|
||
|
{
|
||
|
static bool previous_state = FALSE;
|
||
| ... | ... | |
|
if (!dialog) {
|
||
|
dialog = gtk_message_dialog_new(NULL,
|
||
|
0,
|
||
|
GTK_MESSAGE_WARNING,
|
||
|
GTK_BUTTONS_YES_NO,
|
||
|
_("Are you sure you want to quit?"));
|
||
|
0,
|
||
|
GTK_MESSAGE_WARNING,
|
||
|
GTK_BUTTONS_YES_NO,
|
||
|
_("Are you sure you want to quit?"));
|
||
|
setup_dialog(dialog, toplevel);
|
||
|
gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE);
|
||
|
g_signal_connect(dialog, "response",
|
||
|
G_CALLBACK(quit_dialog_response), NULL);
|
||
|
g_signal_connect(dialog, "response",
|
||
|
G_CALLBACK(quit_dialog_response), NULL);
|
||
|
g_signal_connect(dialog, "destroy",
|
||
|
G_CALLBACK(gtk_widget_destroyed), &dialog);
|
||
|
G_CALLBACK(gtk_widget_destroyed), &dialog);
|
||
|
}
|
||
|
gtk_window_present(GTK_WINDOW(dialog));
|
||
| ... | ... | |
|
if (scr_height > 0) {
|
||
|
/* Adjust these options only if we do know the screen height. */
|
||
|
|
||
|
if (scr_height <= 480) {
|
||
|
/* Freeciv is practically unusable outside fullscreen mode in so
|
||
|
* small display */
|
||
| client/gui-gtk-3.22/menu.c | ||
|---|---|---|
|
#include "mapview_common.h"
|
||
|
#include "options.h"
|
||
|
#include "tilespec.h"
|
||
|
#include "zoom.h"
|
||
|
/* client/gui-gtk-3.22 */
|
||
|
#include "chatline.h"
|
||
| ... | ... | |
|
static void scenario_properties_callback(GtkMenuItem *item, gpointer data);
|
||
|
static void save_scenario_callback(GtkMenuItem *item, gpointer data);
|
||
|
static void center_view_callback(GtkMenuItem *item, gpointer data);
|
||
|
static void zoom_in_callback(GtkMenuItem *item, gpointer data);
|
||
|
static void zoom_out_callback(GtkMenuItem *item, gpointer data);
|
||
|
static void report_economy_callback(GtkMenuItem *item, gpointer data);
|
||
|
static void report_research_callback(GtkMenuItem *item, gpointer data);
|
||
|
static void multiplier_callback(GtkMenuItem *item, gpointer data);
|
||
| ... | ... | |
|
{ "CENTER_VIEW", N_("_Center View"), GDK_KEY_c, 0,
|
||
|
G_CALLBACK(center_view_callback), MGROUP_PLAYER },
|
||
|
{ "ZOOM_IN", N_("_Zoom in"), GDK_KEY_plus, 0,
|
||
|
G_CALLBACK(zoom_in_callback), MGROUP_PLAYER },
|
||
|
{ "ZOOM_OUT", N_("_Zoom out"), GDK_KEY_minus, 0,
|
||
|
G_CALLBACK(zoom_out_callback), MGROUP_PLAYER },
|
||
|
{ "REPORT_ECONOMY", N_("_Economy"), GDK_KEY_F5, 0,
|
||
|
G_CALLBACK(report_economy_callback), MGROUP_PLAYER },
|
||
|
{ "REPORT_RESEARCH", N_("_Research"), GDK_KEY_F6, 0,
|
||
| ... | ... | |
|
_("Leaving a local game will end it!"));
|
||
|
setup_dialog(dialog, toplevel);
|
||
|
gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE);
|
||
|
g_signal_connect(dialog, "response",
|
||
|
g_signal_connect(dialog, "response",
|
||
|
G_CALLBACK(leave_local_game_response), NULL);
|
||
|
gtk_window_present(GTK_WINDOW(dialog));
|
||
|
} else {
|
||
| ... | ... | |
|
center_on_unit();
|
||
|
}
|
||
|
/************************************************************************//**
|
||
|
Action "ZOOM_IN" callback.
|
||
|
****************************************************************************/
|
||
|
static void zoom_in_callback(GtkMenuItem *action, gpointer data)
|
||
|
{
|
||
|
zoom_step_up();
|
||
|
}
|
||
|
/************************************************************************//**
|
||
|
Action "ZOOM_OUT" callback.
|
||
|
****************************************************************************/
|
||
|
static void zoom_out_callback(GtkMenuItem *action, gpointer data)
|
||
|
{
|
||
|
zoom_step_down();
|
||
|
}
|
||
|
/************************************************************************//**
|
||
|
Action "REPORT_UNITS" callback.
|
||
|
****************************************************************************/
|
||
| ... | ... | |
|
units_can_load(punits));
|
||
|
menu_entry_set_sensitive("UNIT_DEBOARD",
|
||
|
units_can_unload(&(wld.map), punits));
|
||
|
menu_entry_set_sensitive("UNIT_UNSENTRY",
|
||
|
menu_entry_set_sensitive("UNIT_UNSENTRY",
|
||
|
units_have_activity_on_tile(punits,
|
||
|
ACTIVITY_SENTRY));
|
||
|
menu_entry_set_sensitive("AUTO_WORKER",
|
||
| ... | ... | |
|
extras = extra_type_list_by_cause(EC_IRRIGATION);
|
||
|
if (extra_type_list_size(extras) > 0) {
|
||
|
if (extra_type_list_size(extras) > 0) {
|
||
|
struct extra_type *tgt;
|
||
|
tgt = extra_type_list_get(extras, 0);
|
||
| ... | ... | |
|
break;
|
||
|
}
|
||
|
} unit_list_iterate_end;
|
||
|
|
||
|
if (city_on_tile && units_can_do_action(punits, ACTION_JOIN_CITY,
|
||
|
TRUE)) {
|
||
|
menus_rename("BUILD_CITY",
|
||
| client/gui-gtk-4.0/gui_main.c | ||
|---|---|---|
|
}
|
||
|
} else if (!(state & GDK_CONTROL_MASK)) {
|
||
|
switch (keyval) {
|
||
|
case GDK_KEY_plus:
|
||
|
case GDK_KEY_KP_Add:
|
||
|
zoom_step_up();
|
||
|
return TRUE;
|
||
|
case GDK_KEY_minus:
|
||
|
case GDK_KEY_KP_Subtract:
|
||
|
zoom_step_down();
|
||
|
return TRUE;
|
||
| ... | ... | |
|
gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(mc_gesture), 3);
|
||
|
controller = GTK_EVENT_CONTROLLER(mc_gesture);
|
||
|
g_signal_connect(controller, "pressed",
|
||
|
G_CALLBACK(reverse_taxrates_callback), NULL);
|
||
|
G_CALLBACK(reverse_taxrates_callback), NULL);
|
||
|
gtk_widget_add_controller(econ_label[i], controller);
|
||
|
gtk_grid_attach(GTK_GRID(table2), econ_label[i], i, 0, 1, 1);
|
||
|
}
|
||
| client/gui-gtk-4.0/menu.c | ||
|---|---|---|
|
#include "mapview_common.h"
|
||
|
#include "options.h"
|
||
|
#include "tilespec.h"
|
||
|
#include "zoom.h"
|
||
|
/* client/gui-gtk-4.0 */
|
||
|
#include "chatline.h"
|
||
| ... | ... | |
|
static void center_view_callback(GSimpleAction *action,
|
||
|
GVariant *parameter,
|
||
|
gpointer data);
|
||
|
static void zoom_in_callback(GSimpleAction *action,
|
||
|
GVariant *parameter,
|
||
|
gpointer data);
|
||
|
static void zoom_out_callback(GSimpleAction *action,
|
||
|
GVariant *parameter,
|
||
|
gpointer data);
|
||
|
static void report_economy_callback(GSimpleAction *action,
|
||
|
GVariant *parameter,
|
||
|
gpointer data);
|
||
| ... | ... | |
|
{ "CENTER_VIEW", N_("_Center View"),
|
||
|
"center_view", "c", MGROUP_PLAYER | MGROUP_CHAR,
|
||
|
NULL, FALSE },
|
||
|
{ "ZOOM_IN", N_("_Zoom in"),
|
||
|
"zoom_in", "plus", MGROUP_PLAYER,
|
||
|
NULL, FALSE },
|
||
|
{ "ZOOM_OUT", N_("_Zoom out"),
|
||
|
"zoom_out", "minus", MGROUP_PLAYER,
|
||
|
NULL, FALSE },
|
||
|
/* Select menu */
|
||
|
{ "SELECT_SINGLE", N_("_Single Unit (Unselect Others)"),
|
||
| ... | ... | |
|
{ "lua_script", client_lua_script_callback },
|
||
|
{ "center_view", center_view_callback },
|
||
|
{ "zoom_in", zoom_in_callback },
|
||
|
{ "zoom_out", zoom_out_callback },
|
||
|
{ "select_single", select_single_callback },
|
||
|
{ "select_all_tile", select_all_on_tile_callback },
|
||
| ... | ... | |
|
center_on_unit();
|
||
|
}
|
||
|
/************************************************************************//**
|
||
|
Action "ZOOM_IN" callback.
|
||
|
****************************************************************************/
|
||
|
static void zoom_in_callback(GSimpleAction *action,
|
||
|
GVariant *parameter,
|
||
|
gpointer data)
|
||
|
{
|
||
|
zoom_step_up();
|
||
|
}
|
||
|
/************************************************************************//**
|
||
|
Action "ZOOM_OUT" callback.
|
||
|
****************************************************************************/
|
||
|
static void zoom_out_callback(GSimpleAction *action,
|
||
|
GVariant *parameter,
|
||
|
gpointer data)
|
||
|
{
|
||
|
zoom_step_down();
|
||
|
}
|
||
|
/************************************************************************//**
|
||
|
Action "REPORT_UNITS" callback.
|
||
|
****************************************************************************/
|
||
| ... | ... | |
|
menu_entry_init(view_menu, "FULL_SCREEN");
|
||
|
menu_entry_init(view_menu, "CENTER_VIEW");
|
||
|
menu_entry_init(view_menu, "ZOOM_IN");
|
||
|
menu_entry_init(view_menu, "ZOOM_OUT");
|
||
|
submenu_append_unref(menubar, Q_("?verb:_View"), G_MENU_MODEL(view_menu));
|
||
| data/gtk3.22_menus.xml | ||
|---|---|---|
|
<child>
|
||
|
<object class="GtkMenuItem" id="CENTER_VIEW" />
|
||
|
</child>
|
||
|
<child>
|
||
|
<object class="GtkMenuItem" id="ZOOM_IN" />
|
||
|
</child>
|
||
|
<child>
|
||
|
<object class="GtkMenuItem" id="ZOOM_OUT" />
|
||
|
</child>
|
||
|
</object>
|
||
|
</child>
|
||
|
</object>
|
||
- « Previous
- 1
- 2
- 3
- Next »