Freeciv21
Develop your civilization from humble roots to a global empire
mapctrl_common.cpp File Reference
#include "fcintl.h"
#include "log.h"
#include "support.h"
#include "combat.h"
#include "game.h"
#include "unitlist.h"
#include "chatline_common.h"
#include "client_main.h"
#include "climisc.h"
#include "control.h"
#include "goto.h"
#include "governor.h"
#include "mapctrl_common.h"
#include "mapview_g.h"
#include "minimap_panel.h"
#include "options.h"
#include "page_game.h"
#include "views/view_map.h"
#include "views/view_map_common.h"
+ Include dependency graph for mapctrl_common.cpp:

Go to the source code of this file.

Functions

static void clipboard_send_production_packet (struct city *pcity)
 Send request to build production in clipboard to server. More...
 
void cancel_selection_rectangle ()
 Redraws the selection rectangle after a map flush. More...
 
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. More...
 
bool clipboard_copy_production (struct tile *ptile)
 Shift-Left-Click on owned city or any visible unit to copy. More...
 
void clipboard_paste_production (struct city *pcity)
 If City tiles are hilited, paste into all those cities. More...
 
void upgrade_canvas_clipboard ()
 A newer technology may be available for units. More...
 
void release_goto_button (int canvas_x, int canvas_y)
 Goto button has been released. More...
 
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. More...
 
bool get_turn_done_button_state ()
 Return TRUE iff the turn done button should be enabled. More...
 
bool can_end_turn ()
 Return TRUE iff client can end turn. More...
 
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. More...
 
void wakeup_button_pressed (int canvas_x, int canvas_y)
 Wakeup sentried units on the tile of the specified location. More...
 
void adjust_workers_button_pressed (int canvas_x, int canvas_y)
 Adjust the position of city workers from the mapview. More...
 
void recenter_button_pressed (int canvas_x, int canvas_y)
 Recenter the map on the canvas location, on user request. More...
 
void update_turn_done_button_state ()
 Update the turn done button state. More...
 
void update_line (int canvas_x, int canvas_y)
 Update the goto/patrol line to the given map canvas location. More...
 

Variables

static int rec_corner_x
 
static int rec_corner_y
 
static int rec_w
 
static int rec_h
 
bool rectangle_active = false
 
bool tiles_hilited_cities = false
 
struct universal clipboard
 
bool keyboardless_goto_button_down = false
 
bool keyboardless_goto_active = false
 
struct tilekeyboardless_goto_start_tile
 
struct citycity_workers_display = nullptr
 

Function Documentation

◆ action_button_pressed()

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 259 of file mapctrl_common.cpp.

Referenced by map_view::shortcut_pressed(), and map_view::shortcut_released().

◆ adjust_workers_button_pressed()

void adjust_workers_button_pressed ( int  canvas_x,
int  canvas_y 
)

Adjust the position of city workers from the mapview.

Definition at line 286 of file mapctrl_common.cpp.

Referenced by map_view::shortcut_pressed().

◆ can_end_turn()

bool can_end_turn ( )

Return TRUE iff client can end turn.

Definition at line 239 of file mapctrl_common.cpp.

Referenced by get_turn_done_button_state(), manual_turn_done_callback(), send_turn_done(), and update_turn_done_button_state().

◆ cancel_selection_rectangle()

void cancel_selection_rectangle ( )

Redraws the selection rectangle after a map flush.

Definition at line 64 of file mapctrl_common.cpp.

Referenced by enter_goto_state().

◆ clipboard_copy_production()

bool clipboard_copy_production ( struct tile ptile)

Shift-Left-Click on owned city or any visible unit to copy.

Returns whether it found anything to try to copy.

Definition at line 98 of file mapctrl_common.cpp.

Referenced by map_view::shortcut_pressed().

◆ clipboard_paste_production()

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 140 of file mapctrl_common.cpp.

Referenced by map_view::shortcut_pressed().

◆ clipboard_send_production_packet()

static void clipboard_send_production_packet ( struct city pcity)
static

Send request to build production in clipboard to server.

Definition at line 161 of file mapctrl_common.cpp.

Referenced by clipboard_paste_production().

◆ get_turn_done_button_state()

bool get_turn_done_button_state ( )

Return TRUE iff the turn done button should be enabled.

Definition at line 229 of file mapctrl_common.cpp.

Referenced by fc_game_tab_widget::event(), update_turn_done_button(), and update_turn_done_button_state().

◆ key_city_overlay()

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 78 of file mapctrl_common.cpp.

Referenced by map_view::shortcut_pressed().

◆ maybe_activate_keyboardless_goto()

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 214 of file mapctrl_common.cpp.

Referenced by map_view::mouseMoveEvent().

◆ recenter_button_pressed()

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 319 of file mapctrl_common.cpp.

Referenced by editor_end_selection_rectangle(), map_view::keyPressEvent(), and map_view::shortcut_pressed().

◆ release_goto_button()

void release_goto_button ( int  canvas_x,
int  canvas_y 
)

Goto button has been released.

Finish goto.

Definition at line 194 of file mapctrl_common.cpp.

Referenced by map_view::shortcut_released().

◆ update_line()

void update_line ( int  canvas_x,
int  canvas_y 
)

Update the goto/patrol line to the given map canvas location.

Definition at line 349 of file mapctrl_common.cpp.

Referenced by create_line_at_mouse_pos(), and map_view::mouseMoveEvent().

◆ update_turn_done_button_state()

void update_turn_done_button_state ( )

◆ upgrade_canvas_clipboard()

void upgrade_canvas_clipboard ( )

A newer technology may be available for units.

Also called from packhand.c.

Definition at line 176 of file mapctrl_common.cpp.

Referenced by clipboard_copy_production(), and handle_player_info().

◆ wakeup_button_pressed()

void wakeup_button_pressed ( int  canvas_x,
int  canvas_y 
)

Wakeup sentried units on the tile of the specified location.

Definition at line 274 of file mapctrl_common.cpp.

Referenced by map_view::shortcut_pressed().

Variable Documentation

◆ city_workers_display

struct city* city_workers_display = nullptr

◆ clipboard

struct universal clipboard
Initial value:
= {.value = {.building = nullptr},
.kind = VUT_NONE}

Definition at line 43 of file mapctrl_common.cpp.

Referenced by clipboard_copy_production(), clipboard_paste_production(), clipboard_send_production_packet(), and upgrade_canvas_clipboard().

◆ keyboardless_goto_active

bool keyboardless_goto_active = false

◆ keyboardless_goto_button_down

bool keyboardless_goto_button_down = false

◆ keyboardless_goto_start_tile

struct tile* keyboardless_goto_start_tile

◆ rec_corner_x

int rec_corner_x
static

Definition at line 36 of file mapctrl_common.cpp.

Referenced by cancel_selection_rectangle().

◆ rec_corner_y

int rec_corner_y
static

Definition at line 36 of file mapctrl_common.cpp.

Referenced by cancel_selection_rectangle().

◆ rec_h

int rec_h
static

Definition at line 37 of file mapctrl_common.cpp.

Referenced by cancel_selection_rectangle().

◆ rec_w

int rec_w
static

Definition at line 37 of file mapctrl_common.cpp.

Referenced by cancel_selection_rectangle().

◆ rectangle_active

bool rectangle_active = false

Definition at line 39 of file mapctrl_common.cpp.

Referenced by base_set_mapview_origin(), and cancel_selection_rectangle().

◆ tiles_hilited_cities

bool tiles_hilited_cities = false

Definition at line 43 of file mapctrl_common.cpp.

Referenced by clipboard_paste_production().