Skip to content

Commit 2018641

Browse files
libretroadminLibretroAdmin
authored andcommitted
settings: migrate the window position memory setting to a single-source def file
Performed by tools/settings_migrate_group.py with the standard battery including the platform-profile lanes and the integrated enum consolidation stage.
1 parent 4bfa36c commit 2018641

8 files changed

Lines changed: 353 additions & 17 deletions

File tree

configuration.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1977,6 +1977,7 @@ static struct config_bool_setting *populate_settings_bool(
19771977
#include "settings/settings_def_video_fullscreen.h"
19781978
#define SETTINGS_DEF_CONFIG_PASS
19791979
#include "settings/settings_def_video_sync.h"
1980+
#include "settings/settings_def_video_window_save_position.h"
19801981
#include "settings/settings_def_user_language_action.h"
19811982
#ifdef _3DS
19821983
#include "settings/settings_def_3ds_bottom_lcd.h"
@@ -2510,6 +2511,7 @@ static struct config_float_setting *populate_settings_float(
25102511
#include "settings/settings_def_video_fullscreen.h"
25112512
#define SETTINGS_DEF_CONFIG_PASS
25122513
#include "settings/settings_def_video_sync.h"
2514+
#include "settings/settings_def_video_window_save_position.h"
25132515
#include "settings/settings_def_user_language_action.h"
25142516
#ifdef _3DS
25152517
#include "settings/settings_def_3ds_bottom_lcd.h"
@@ -3011,6 +3013,7 @@ static struct config_uint_setting *populate_settings_uint(
30113013
#include "settings/settings_def_video_fullscreen.h"
30123014
#define SETTINGS_DEF_CONFIG_PASS
30133015
#include "settings/settings_def_video_sync.h"
3016+
#include "settings/settings_def_video_window_save_position.h"
30143017
#include "settings/settings_def_user_language_action.h"
30153018
#ifdef _3DS
30163019
#include "settings/settings_def_3ds_bottom_lcd.h"
@@ -3489,6 +3492,7 @@ static struct config_int_setting *populate_settings_int(
34893492
#include "settings/settings_def_video_fullscreen.h"
34903493
#define SETTINGS_DEF_CONFIG_PASS
34913494
#include "settings/settings_def_video_sync.h"
3495+
#include "settings/settings_def_video_window_save_position.h"
34923496
#include "settings/settings_def_user_language_action.h"
34933497
#ifdef _3DS
34943498
#include "settings/settings_def_3ds_bottom_lcd.h"
@@ -3765,6 +3769,7 @@ static struct config_int_setting *populate_settings_int(
37653769
#include "settings/settings_def_video_fullscreen.h"
37663770
#define SETTINGS_DEF_CONFIG_PASS
37673771
#include "settings/settings_def_video_sync.h"
3772+
#include "settings/settings_def_video_window_save_position.h"
37683773
#include "settings/settings_def_user_language_action.h"
37693774
#ifdef _3DS
37703775
#include "settings/settings_def_3ds_bottom_lcd.h"

intl/msg_hash_lbl.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4607,10 +4607,6 @@ MSG_HASH(
46074607
MENU_ENUM_LABEL_JOYPAD_DRIVER_NULL_STR
46084608
)
46094609

4610-
MSG_HASH(
4611-
MENU_ENUM_LABEL_VIDEO_WINDOW_SAVE_POSITION,
4612-
MENU_ENUM_LABEL_VIDEO_WINDOW_SAVE_POSITION_STR
4613-
)
46144610
MSG_HASH(
46154611
MENU_ENUM_LABEL_VIDEO_WINDOW_CUSTOM_SIZE_ENABLE,
46164612
MENU_ENUM_LABEL_VIDEO_WINDOW_CUSTOM_SIZE_ENABLE_STR

intl/msg_hash_us.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -559,6 +559,7 @@ static const char *const msg_hash_us_lbl_strs[] = {
559559
#define S_ACTION_EX_NS(T, n, sd, ok, rp, c, us) n,
560560
#include "../settings/settings_def_video_fullscreen.h"
561561
#include "../settings/settings_def_video_sync.h"
562+
#include "../settings/settings_def_video_window_save_position.h"
562563
#include "../settings/settings_def_user_language_action.h"
563564
#include "../settings/settings_def_3ds_bottom_lcd.h"
564565
#include "../settings/settings_def_overlay_auto_scale.h"
@@ -748,6 +749,7 @@ static const uint32_t msg_hash_us_lbl_ids[] = {
748749
#define S_ACTION_EX_NS(T, n, sd, ok, rp, c, us) (uint32_t)MENU_ENUM_LABEL_##T,
749750
#include "../settings/settings_def_video_fullscreen.h"
750751
#include "../settings/settings_def_video_sync.h"
752+
#include "../settings/settings_def_video_window_save_position.h"
751753
#include "../settings/settings_def_user_language_action.h"
752754
#include "../settings/settings_def_3ds_bottom_lcd.h"
753755
#include "../settings/settings_def_overlay_auto_scale.h"

intl/msg_hash_us.h

Lines changed: 109 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3426,14 +3426,115 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
34263426
#undef S_FLOAT
34273427
#undef S_FLOAT_NS
34283428
#undef SETTINGS_DEF_STRINGS_PASS
3429-
MSG_HASH(
3430-
MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
3431-
"Remember Window Position and Size"
3432-
)
3433-
MSG_HASH(
3434-
MENU_ENUM_SUBLABEL_VIDEO_WINDOW_SAVE_POSITION,
3435-
"Show all content in a fixed size window of dimensions specified by 'Window Width' and 'Window Height', and save current window size and position upon closing RetroArch. When disabled, window size will be set dynamically based on 'Windowed Scale'."
3436-
)
3429+
/* GENERATED REGION: window position memory setting (see settings_def_video_window_save_position.h). */
3430+
#define SETTINGS_DEF_STRINGS_PASS
3431+
#define S_BOOL(f, T, n, d, sd, df, c, us, sub) \
3432+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
3433+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
3434+
#define S_BOOL_NS(f, T, n, d, sd, df, c, us) \
3435+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
3436+
#define S_UINT(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us, sub) \
3437+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
3438+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
3439+
#define S_UINT_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us) \
3440+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
3441+
#define S_INT(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us, sub) \
3442+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
3443+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
3444+
#define S_INT_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us) \
3445+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
3446+
#define S_FLOAT(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, us, sub) \
3447+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
3448+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
3449+
#define S_FLOAT_NS(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, us) \
3450+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
3451+
#define S_STRING(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us, sub) \
3452+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
3453+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
3454+
#define S_STRING_NS(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us) \
3455+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
3456+
#define S_DIR(f, T, n, d, el, sd, c, sta, us, sub) \
3457+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
3458+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
3459+
#define S_DIR_NS(f, T, n, d, el, sd, c, sta, us) \
3460+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
3461+
#define S_STRING_P(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us, sub) \
3462+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
3463+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
3464+
#define S_STRING_P_NS(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us) \
3465+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
3466+
#define S_PATH(f, T, n, d, sd, c, vals, rp, ui, us, sub) \
3467+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
3468+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
3469+
#define S_PATH_NS(f, T, n, d, sd, c, vals, rp, ui, us) \
3470+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
3471+
#define S_PATH_DS(f, T, n, df2, sd, c, vals, rp, ui, us, sub) \
3472+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
3473+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
3474+
#define S_PATH_DS_NS(f, T, n, df2, sd, c, vals, rp, ui, us) \
3475+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
3476+
#define S_ACTION(T, n, us, sub) \
3477+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
3478+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
3479+
#define S_ACTION_NS(T, n, us) \
3480+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
3481+
#define S_BOOL_EX(f, T, n, d, sd, df, c, ok, rp, sta, sel, lf, rt, ui, us, sub) \
3482+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
3483+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
3484+
#define S_BOOL_EX_NS(f, T, n, d, sd, df, c, ok, rp, sta, sel, lf, rt, ui, us) \
3485+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
3486+
#define S_UINT_EX(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us, sub) \
3487+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
3488+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
3489+
#define S_UINT_EX_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us) \
3490+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
3491+
#define S_INT_EX(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us, sub) \
3492+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
3493+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
3494+
#define S_INT_EX_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us) \
3495+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
3496+
#define S_FLOAT_EX(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, sta, sel, lf, rt, ui, us, sub) \
3497+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
3498+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
3499+
#define S_FLOAT_EX_NS(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, sta, sel, lf, rt, ui, us) \
3500+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
3501+
#define S_ACTION_EX(T, n, sd, ok, rp, c, us, sub) \
3502+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
3503+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
3504+
#define S_ACTION_EX_NS(T, n, sd, ok, rp, c, us) \
3505+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
3506+
#include "../settings/settings_def_video_window_save_position.h"
3507+
#undef S_BOOL
3508+
#undef S_BOOL_NS
3509+
#undef S_UINT
3510+
#undef S_UINT_NS
3511+
#undef S_INT
3512+
#undef S_INT_NS
3513+
#undef S_FLOAT
3514+
#undef S_FLOAT_NS
3515+
#undef S_STRING
3516+
#undef S_STRING_NS
3517+
#undef S_DIR
3518+
#undef S_DIR_NS
3519+
#undef S_STRING_P
3520+
#undef S_STRING_P_NS
3521+
#undef S_PATH
3522+
#undef S_PATH_NS
3523+
#undef S_PATH_DS
3524+
#undef S_PATH_DS_NS
3525+
#undef S_ACTION
3526+
#undef S_ACTION_NS
3527+
#undef S_BOOL_EX
3528+
#undef S_BOOL_EX_NS
3529+
#undef S_UINT_EX
3530+
#undef S_UINT_EX_NS
3531+
#undef S_INT_EX
3532+
#undef S_INT_EX_NS
3533+
#undef S_FLOAT_EX
3534+
#undef S_FLOAT_EX_NS
3535+
#undef S_ACTION_EX
3536+
#undef S_ACTION_EX_NS
3537+
#undef SETTINGS_DEF_STRINGS_PASS
34373538
MSG_HASH(
34383539
MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_CUSTOM_SIZE_ENABLE,
34393540
"Use Custom Window Size"

menu/menu_setting.c

Lines changed: 92 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14809,9 +14809,98 @@ static bool setting_append_list(
1480914809
(defined(HAVE_COCOA_METAL) && !defined(HAVE_COCOATOUCH))
1481014810
{
1481114811
static const setting_desc_t vid_desc_16[] = {
14812-
SDESC_BOOL_ROW_EX(video_window_save_positions, VIDEO_WINDOW_SAVE_POSITION,
14813-
DEFAULT_WINDOW_SAVE_POSITIONS, SD_FLAG_NONE, 0, CMD_EVENT_REINIT,
14814-
setting_bool_action_left_with_refresh, NULL, NULL, NULL, setting_bool_action_left_with_refresh, setting_bool_action_right_with_refresh, 0),
14812+
/* GENERATED: rows come from settings_def_video_window_save_position.h in order. */
14813+
#define S_BOOL(f, T, n, d, sd, df, c, us, sub) \
14814+
SDESC_BOOL_ROW(f, T, d, sd, df, c),
14815+
#define S_BOOL_NS(f, T, n, d, sd, df, c, us) \
14816+
SDESC_BOOL_ROW(f, T, d, sd, df, c),
14817+
#define S_UINT(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us, sub) \
14818+
SDESC_UINT_ROW(f, T, d, sd, df, c, mn, mx, st, ob, ok, rp),
14819+
#define S_UINT_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us) \
14820+
SDESC_UINT_ROW(f, T, d, sd, df, c, mn, mx, st, ob, ok, rp),
14821+
#define S_INT(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us, sub) \
14822+
SDESC_INT_ROW(f, T, d, sd, df, c, mn, mx, st, ob, ok, rp),
14823+
#define S_INT_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us) \
14824+
SDESC_INT_ROW(f, T, d, sd, df, c, mn, mx, st, ob, ok, rp),
14825+
#define S_FLOAT(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, us, sub) \
14826+
SDESC_FLOAT_ROW(f, T, d, rnd, sd, df, c, mn, mx, st, ok, rp),
14827+
#define S_FLOAT_NS(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, us) \
14828+
SDESC_FLOAT_ROW(f, T, d, rnd, sd, df, c, mn, mx, st, ok, rp),
14829+
#define S_STRING(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us, sub) \
14830+
SDESC_STRING_ROW(f, T, d, sd, c, ok, rp, sta, sel, lf, rt, ui),
14831+
#define S_STRING_NS(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us) \
14832+
SDESC_STRING_ROW(f, T, d, sd, c, ok, rp, sta, sel, lf, rt, ui),
14833+
#define S_DIR(f, T, n, d, el, sd, c, sta, us, sub) \
14834+
SDESC_DIR_ROW(f, T, d, el, sd, c, sta),
14835+
#define S_DIR_NS(f, T, n, d, el, sd, c, sta, us) \
14836+
SDESC_DIR_ROW(f, T, d, el, sd, c, sta),
14837+
#define S_STRING_P(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us, sub) \
14838+
SDESC_STRING_ROW_P(f, T, d, sd, c, ok, rp, sta, sel, lf, rt, ui),
14839+
#define S_STRING_P_NS(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us) \
14840+
SDESC_STRING_ROW_P(f, T, d, sd, c, ok, rp, sta, sel, lf, rt, ui),
14841+
#define S_PATH(f, T, n, d, sd, c, vals, rp, ui, us, sub) \
14842+
SDESC_PATH_ROW(f, T, d, sd, c, vals, rp, ui),
14843+
#define S_PATH_NS(f, T, n, d, sd, c, vals, rp, ui, us) \
14844+
SDESC_PATH_ROW(f, T, d, sd, c, vals, rp, ui),
14845+
#define S_PATH_DS(f, T, n, df2, sd, c, vals, rp, ui, us, sub) \
14846+
SDESC_PATH_ROW_DS(f, T, df2, sd, c, vals, rp, ui),
14847+
#define S_PATH_DS_NS(f, T, n, df2, sd, c, vals, rp, ui, us) \
14848+
SDESC_PATH_ROW_DS(f, T, df2, sd, c, vals, rp, ui),
14849+
#define S_ACTION(T, n, us, sub) \
14850+
SDESC_ACTION_ROW(T),
14851+
#define S_ACTION_NS(T, n, us) \
14852+
SDESC_ACTION_ROW(T),
14853+
#define S_BOOL_EX(f, T, n, d, sd, df, c, ok, rp, sta, sel, lf, rt, ui, us, sub) \
14854+
SDESC_BOOL_ROW_EX(f, T, d, sd, df, c, ok, rp, sta, sel, lf, rt, ui),
14855+
#define S_BOOL_EX_NS(f, T, n, d, sd, df, c, ok, rp, sta, sel, lf, rt, ui, us) \
14856+
SDESC_BOOL_ROW_EX(f, T, d, sd, df, c, ok, rp, sta, sel, lf, rt, ui),
14857+
#define S_UINT_EX(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us, sub) \
14858+
SDESC_UINT_ROW_EX(f, T, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui),
14859+
#define S_UINT_EX_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us) \
14860+
SDESC_UINT_ROW_EX(f, T, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui),
14861+
#define S_INT_EX(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us, sub) \
14862+
SDESC_INT_ROW_EX(f, T, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui),
14863+
#define S_INT_EX_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us) \
14864+
SDESC_INT_ROW_EX(f, T, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui),
14865+
#define S_FLOAT_EX(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, sta, sel, lf, rt, ui, us, sub) \
14866+
SDESC_FLOAT_ROW_EX(f, T, d, rnd, sd, df, c, mn, mx, st, ok, rp, sta, sel, lf, rt, ui),
14867+
#define S_FLOAT_EX_NS(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, sta, sel, lf, rt, ui, us) \
14868+
SDESC_FLOAT_ROW_EX(f, T, d, rnd, sd, df, c, mn, mx, st, ok, rp, sta, sel, lf, rt, ui),
14869+
#define S_ACTION_EX(T, n, sd, ok, rp, c, us, sub) \
14870+
SDESC_ACTION_ROW_EX(T, sd, ok, rp, c),
14871+
#define S_ACTION_EX_NS(T, n, sd, ok, rp, c, us) \
14872+
SDESC_ACTION_ROW_EX(T, sd, ok, rp, c),
14873+
#include "../settings/settings_def_video_window_save_position.h"
14874+
#undef S_BOOL
14875+
#undef S_BOOL_NS
14876+
#undef S_UINT
14877+
#undef S_UINT_NS
14878+
#undef S_INT
14879+
#undef S_INT_NS
14880+
#undef S_FLOAT
14881+
#undef S_FLOAT_NS
14882+
#undef S_STRING
14883+
#undef S_STRING_NS
14884+
#undef S_DIR
14885+
#undef S_DIR_NS
14886+
#undef S_STRING_P
14887+
#undef S_STRING_P_NS
14888+
#undef S_PATH
14889+
#undef S_PATH_NS
14890+
#undef S_PATH_DS
14891+
#undef S_PATH_DS_NS
14892+
#undef S_ACTION
14893+
#undef S_ACTION_NS
14894+
#undef S_BOOL_EX
14895+
#undef S_BOOL_EX_NS
14896+
#undef S_UINT_EX
14897+
#undef S_UINT_EX_NS
14898+
#undef S_INT_EX
14899+
#undef S_INT_EX_NS
14900+
#undef S_FLOAT_EX
14901+
#undef S_FLOAT_EX_NS
14902+
#undef S_ACTION_EX
14903+
#undef S_ACTION_EX_NS
1481514904
};
1481614905
settings_list_add_desc(list, list_info, settings,
1481714906
vid_desc_16, ARRAY_SIZE(vid_desc_16),

0 commit comments

Comments
 (0)