Freeciv-3.1
|
#include <stdlib.h>
#include "fcintl.h"
#include "log.h"
#include "support.h"
#include "combat.h"
#include "game.h"
#include "unitlist.h"
#include "agents.h"
#include "chatline_common.h"
#include "cityrep_g.h"
#include "client_main.h"
#include "climisc.h"
#include "cma_core.h"
#include "control.h"
#include "editor.h"
#include "goto.h"
#include "mapctrl_common.h"
#include "mapctrl_g.h"
#include "mapview_g.h"
#include "options.h"
#include "overview_common.h"
#include "tilespec.h"
#include "zoom.h"
Go to the source code of this file.
Variables | |
static float | rec_anchor_x |
static float | rec_anchor_y |
static struct tile * | rec_canvas_center_tile |
static int | rec_corner_x |
static int | rec_corner_y |
static int | rec_w |
static int | rec_h |
bool | rbutton_down = FALSE |
bool | rectangle_active = FALSE |
bool | tiles_hilited_cities = FALSE |
struct universal | clipboard |
bool | keyboardless_goto_button_down = FALSE |
bool | keyboardless_goto_active = FALSE |
struct tile * | keyboardless_goto_start_tile |
struct city * | city_workers_display = NULL |
void action_button_pressed | ( | int | canvas_x, |
int | canvas_y, | ||
enum quickselect_type | qtype | ||
) |
Do some appropriate action when the "main" mouse button (usually left-click) is pressed. For more sophisticated user control use (or write) a different xxx_button_pressed function.
Definition at line 567 of file mapctrl_common.c.
Referenced by butt_down_mapcanvas(), button_up_on_map(), finger_up_on_map(), left_butt_down_mapcanvas(), right_butt_down_mapcanvas(), map_view::shortcut_pressed(), and map_view::shortcut_released().
void adjust_workers_button_pressed | ( | int | canvas_x, |
int | canvas_y | ||
) |
Adjust the position of city workers from the mapview.
Definition at line 594 of file mapctrl_common.c.
Referenced by butt_down_mapcanvas(), left_butt_down_mapcanvas(), and map_view::shortcut_pressed().
void anchor_selection_rectangle | ( | int | canvas_x, |
int | canvas_y | ||
) |
Called when Right Mouse Button is depressed. Record the canvas coordinates of the center of the tile, which may be unreal. This anchor is not the drawing start point, but is used to calculate width, height. Also record the current mapview centering.
Definition at line 87 of file mapctrl_common.c.
Referenced by butt_down_mapcanvas(), and right_butt_down_mapcanvas().
bool can_end_turn | ( | void | ) |
Return TRUE iff client can end turn.
Definition at line 528 of file mapctrl_common.c.
Referenced by get_turn_done_button_state(), send_turn_done(), and update_turn_done_button_state().
void cancel_selection_rectangle | ( | void | ) |
Redraws the selection rectangle after a map flush.
Definition at line 288 of file mapctrl_common.c.
Referenced by enter_goto_state().
void cancel_tile_hiliting | ( | void | ) |
Remove hiliting from all tiles, but not from rows in the City List window.
Definition at line 310 of file mapctrl_common.c.
Referenced by butt_down_mapcanvas(), define_tiles_within_rectangle(), key_cancel_action(), release_right_button(), and right_butt_down_mapcanvas().
Shift-Left-Click on owned city or any visible unit to copy. Returns whether it found anything to try to copy.
Definition at line 380 of file mapctrl_common.c.
Referenced by butt_down_mapcanvas(), right_butt_down_mapcanvas(), and map_view::shortcut_pressed().
void clipboard_paste_production | ( | struct city * | pcity | ) |
If City tiles are hilited, paste into all those cities. Otherwise paste into the one city under the mouse pointer.
Definition at line 421 of file mapctrl_common.c.
Referenced by butt_down_mapcanvas(), right_butt_down_mapcanvas(), and map_view::shortcut_pressed().
|
static |
Send request to build production in clipboard to server.
Definition at line 450 of file mapctrl_common.c.
Referenced by clipboard_paste_production().
|
static |
Iterate over the pixel boundaries of the rectangle and pick the tiles whose center falls within. Axis pixel incrementation is half tile size to accomodate tilesets with varying tile shapes and proportions of X / Y.
These operations are performed on the tiles:
Later, I'll want to add unit hiliting for mass orders. -ali
NB: At the end of this function the current selection rectangle will be erased (by being redrawn).
Definition at line 114 of file mapctrl_common.c.
Referenced by release_right_button().
Fill and sort the list of units on the tile.
Definition at line 764 of file mapctrl_common.c.
bool get_turn_done_button_state | ( | void | ) |
Return TRUE iff the turn done button should be enabled.
Definition at line 519 of file mapctrl_common.c.
Referenced by fc_game_tab_widget::resizeEvent(), update_turn_done_button(), and update_turn_done_button_state().
Is city highlighted
Definition at line 302 of file mapctrl_common.c.
Referenced by buy_production_in_selected_cities(), clipboard_paste_production(), and hilite_cities_from_canvas().
void key_city_overlay | ( | int | canvas_x, |
int | canvas_y | ||
) |
The user pressed the overlay-city button (t) while the mouse was at the given canvas position.
Definition at line 360 of file mapctrl_common.c.
Referenced by butt_down_mapcanvas(), right_butt_down_mapcanvas(), and map_view::shortcut_pressed().
void maybe_activate_keyboardless_goto | ( | int | canvas_x, |
int | canvas_y | ||
) |
The goto hover state is only activated when the mouse pointer moves beyond the tile where the button was depressed, to avoid mouse typos.
Definition at line 504 of file mapctrl_common.c.
Referenced by mouse_scroll_mapcanvas(), mouse_scroll_mapcanvas(), map_view::mouseMoveEvent(), move_mapcanvas(), and move_mapcanvas().
void overview_update_line | ( | int | overview_x, |
int | overview_y | ||
) |
Update the goto/patrol line to the given overview canvas location.
Definition at line 693 of file mapctrl_common.c.
Referenced by create_line_at_mouse_pos(), move_overviewcanvas(), and move_overviewcanvas().
void recenter_button_pressed | ( | int | canvas_x, |
int | canvas_y | ||
) |
Recenter the map on the canvas location, on user request. Usually this is done with a right-click.
Definition at line 630 of file mapctrl_common.c.
Referenced by button_up_on_map(), editor_end_selection_rectangle(), map_view::keyPressEvent(), release_right_button(), and map_view::shortcut_pressed().
void redraw_selection_rectangle | ( | void | ) |
Redraws the selection rectangle after a map flush.
Definition at line 278 of file mapctrl_common.c.
Referenced by unqueue_flush().
void release_goto_button | ( | int | canvas_x, |
int | canvas_y | ||
) |
Goto button has been released. Finish goto.
Definition at line 484 of file mapctrl_common.c.
Referenced by butt_release_mapcanvas(), left_butt_up_mapcanvas(), right_butt_up_mapcanvas(), and map_view::shortcut_released().
void release_right_button | ( | int | canvas_x, |
int | canvas_y, | ||
bool | shift | ||
) |
Action depends on whether the mouse pointer moved a tile between press and release.
Definition at line 322 of file mapctrl_common.c.
Referenced by butt_down_mapcanvas(), butt_release_mapcanvas(), right_butt_down_mapcanvas(), and right_butt_up_mapcanvas().
void scroll_mapview | ( | enum direction8 | gui_dir | ) |
Scroll the mapview half a screen in the given direction. This is a GUI direction; i.e., DIR8_NORTH is "up" on the mapview.
Definition at line 549 of file mapctrl_common.c.
Referenced by gui_event_loop(), key_press_map_canvas(), and key_press_map_canvas().
void toggle_tile_hilite | ( | struct tile * | ptile | ) |
Left Mouse Button in Area Selection mode.
Definition at line 337 of file mapctrl_common.c.
Referenced by butt_down_mapcanvas(), and left_butt_down_mapcanvas().
|
static |
We sort according to the following logic:
Definition at line 731 of file mapctrl_common.c.
Referenced by fill_tile_unit_list(), and unit_list_compare().
void update_line | ( | int | canvas_x, |
int | canvas_y | ||
) |
Update the goto/patrol line to the given map canvas location.
Definition at line 662 of file mapctrl_common.c.
Referenced by create_line_at_mouse_pos(), main_mouse_motion_handler(), mouse_scroll_mapcanvas(), mouse_scroll_mapcanvas(), map_view::mouseMoveEvent(), move_mapcanvas(), and move_mapcanvas().
void update_selection_rectangle | ( | float | canvas_x, |
float | canvas_y | ||
) |
Called when mouse pointer moves and rectangle is active.
Definition at line 201 of file mapctrl_common.c.
Referenced by mouse_scroll_mapcanvas(), mouse_scroll_mapcanvas(), move_mapcanvas(), move_mapcanvas(), and update_rect_at_mouse_pos().
void update_turn_done_button_state | ( | void | ) |
Update the turn done button state.
Definition at line 644 of file mapctrl_common.c.
Referenced by call_handle_methods(), enqueue_call(), handle_player_info(), handle_start_phase(), handle_thaw_client(), real_set_client_page(), send_turn_done(), and set_client_state().
void upgrade_canvas_clipboard | ( | void | ) |
A newer technology may be available for units. Also called from packhand.c.
Definition at line 466 of file mapctrl_common.c.
Referenced by clipboard_copy_production(), and handle_player_info().
void wakeup_button_pressed | ( | int | canvas_x, |
int | canvas_y | ||
) |
Wakeup sentried units on the tile of the specified location.
Definition at line 582 of file mapctrl_common.c.
Referenced by butt_down_mapcanvas(), middle_butt_down_mapcanvas(), and map_view::shortcut_pressed().
struct city* city_workers_display = NULL |
Definition at line 74 of file mapctrl_common.c.
Referenced by adjust_workers_button_pressed(), and city_packet_common().
struct universal clipboard |
Definition at line 63 of file mapctrl_common.c.
Referenced by clipboard_copy_production(), clipboard_paste_production(), clipboard_send_production_packet(), and upgrade_canvas_clipboard().
Definition at line 70 of file mapctrl_common.c.
Referenced by do_map_click(), key_cancel_action(), maybe_activate_keyboardless_goto(), release_goto_button(), and map_view::shortcut_released().
Definition at line 69 of file mapctrl_common.c.
Referenced by do_map_click(), key_cancel_action(), mouse_scroll_mapcanvas(), mouse_scroll_mapcanvas(), map_view::mouseMoveEvent(), move_mapcanvas(), move_mapcanvas(), and release_goto_button().
struct tile* keyboardless_goto_start_tile |
Definition at line 71 of file mapctrl_common.c.
Referenced by do_map_click(), key_cancel_action(), maybe_activate_keyboardless_goto(), and release_goto_button().
Definition at line 55 of file mapctrl_common.c.
Referenced by butt_down_mapcanvas(), butt_release_mapcanvas(), cancel_selection_rectangle(), mouse_scroll_mapcanvas(), mouse_scroll_mapcanvas(), move_mapcanvas(), move_mapcanvas(), release_right_button(), right_butt_down_mapcanvas(), and right_butt_up_mapcanvas().
|
static |
Definition at line 50 of file mapctrl_common.c.
Referenced by anchor_selection_rectangle(), and update_selection_rectangle().
|
static |
Definition at line 50 of file mapctrl_common.c.
Referenced by anchor_selection_rectangle(), and update_selection_rectangle().
|
static |
Definition at line 51 of file mapctrl_common.c.
Referenced by anchor_selection_rectangle(), and update_selection_rectangle().
|
static |
Definition at line 52 of file mapctrl_common.c.
Referenced by cancel_selection_rectangle(), define_tiles_within_rectangle(), redraw_selection_rectangle(), and update_selection_rectangle().
|
static |
Definition at line 52 of file mapctrl_common.c.
Referenced by cancel_selection_rectangle(), define_tiles_within_rectangle(), redraw_selection_rectangle(), and update_selection_rectangle().
|
static |
Definition at line 53 of file mapctrl_common.c.
Referenced by anchor_selection_rectangle(), cancel_selection_rectangle(), define_tiles_within_rectangle(), redraw_selection_rectangle(), and update_selection_rectangle().
|
static |
Definition at line 53 of file mapctrl_common.c.
Referenced by anchor_selection_rectangle(), cancel_selection_rectangle(), define_tiles_within_rectangle(), redraw_selection_rectangle(), and update_selection_rectangle().
Definition at line 56 of file mapctrl_common.c.
Referenced by base_set_mapview_origin(), butt_down_mapcanvas(), cancel_selection_rectangle(), redraw_selection_rectangle(), release_right_button(), right_butt_down_mapcanvas(), and update_selection_rectangle().
Definition at line 60 of file mapctrl_common.c.
Referenced by butt_down_mapcanvas(), cancel_tile_hiliting(), clipboard_paste_production(), define_tiles_within_rectangle(), key_press_map_canvas(), key_press_map_canvas(), left_butt_down_mapcanvas(), and toggle_tile_hilite().