mirror of https://github.com/ventoy/Ventoy.git
Add resolution_fit option in theme plugin.
This commit is contained in:
parent
f2016ab899
commit
23f8bc8aeb
|
@ -35,6 +35,7 @@
|
||||||
#include <grub/crypto.h>
|
#include <grub/crypto.h>
|
||||||
#include <grub/time.h>
|
#include <grub/time.h>
|
||||||
#include <grub/font.h>
|
#include <grub/font.h>
|
||||||
|
#include <grub/video.h>
|
||||||
#include <grub/ventoy.h>
|
#include <grub/ventoy.h>
|
||||||
#include "ventoy_def.h"
|
#include "ventoy_def.h"
|
||||||
|
|
||||||
|
@ -59,6 +60,7 @@ static conf_replace *g_conf_replace_head = NULL;
|
||||||
static VTOY_JSON *g_menu_lang_json = NULL;
|
static VTOY_JSON *g_menu_lang_json = NULL;
|
||||||
|
|
||||||
static int g_theme_id = 0;
|
static int g_theme_id = 0;
|
||||||
|
static int g_theme_res_fit = 0;
|
||||||
static int g_theme_num = 0;
|
static int g_theme_num = 0;
|
||||||
static theme_list *g_theme_head = NULL;
|
static theme_list *g_theme_head = NULL;
|
||||||
static int g_theme_random = vtoy_theme_random_boot_second;
|
static int g_theme_random = vtoy_theme_random_boot_second;
|
||||||
|
@ -377,6 +379,18 @@ static int ventoy_plugin_theme_entry(VTOY_JSON *json, const char *isodisk)
|
||||||
if (g_theme_num > 0)
|
if (g_theme_num > 0)
|
||||||
{
|
{
|
||||||
vtoy_json_get_int(json->pstChild, "default_file", &g_theme_id);
|
vtoy_json_get_int(json->pstChild, "default_file", &g_theme_id);
|
||||||
|
if (g_theme_id == 0)
|
||||||
|
{
|
||||||
|
vtoy_json_get_int(json->pstChild, "resolution_fit", &g_theme_res_fit);
|
||||||
|
if (g_theme_res_fit != 1)
|
||||||
|
{
|
||||||
|
g_theme_res_fit = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
grub_snprintf(val, sizeof(val), "%d", g_theme_res_fit);
|
||||||
|
ventoy_env_export("vtoy_res_fit", val);
|
||||||
|
}
|
||||||
|
|
||||||
if (g_theme_id > g_theme_num || g_theme_id < 0)
|
if (g_theme_id > g_theme_num || g_theme_id < 0)
|
||||||
{
|
{
|
||||||
g_theme_id = 0;
|
g_theme_id = 0;
|
||||||
|
@ -3381,13 +3395,19 @@ grub_err_t ventoy_cmd_select_theme_cfg(grub_extcmd_context_t ctxt, int argc, cha
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern char g_ventoy_theme_path[256];
|
||||||
|
|
||||||
grub_err_t ventoy_cmd_set_theme(grub_extcmd_context_t ctxt, int argc, char **args)
|
grub_err_t ventoy_cmd_set_theme(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||||
{
|
{
|
||||||
grub_uint32_t i = 0;
|
grub_uint32_t i = 0;
|
||||||
grub_uint32_t mod = 0;
|
grub_uint32_t mod = 0;
|
||||||
|
grub_uint32_t theme_num = 0;
|
||||||
theme_list *node = g_theme_head;
|
theme_list *node = g_theme_head;
|
||||||
struct grub_datetime datetime;
|
struct grub_datetime datetime;
|
||||||
|
struct grub_video_mode_info info;
|
||||||
|
char buf[64];
|
||||||
|
char **pThemePath = NULL;
|
||||||
|
|
||||||
(void)argc;
|
(void)argc;
|
||||||
(void)args;
|
(void)args;
|
||||||
(void)ctxt;
|
(void)ctxt;
|
||||||
|
@ -3417,41 +3437,82 @@ grub_err_t ventoy_cmd_set_theme(grub_extcmd_context_t ctxt, int argc, char **arg
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
grub_memset(&datetime, 0, sizeof(datetime));
|
pThemePath = (char **)grub_zalloc(sizeof(char *) * g_theme_num);
|
||||||
grub_get_datetime(&datetime);
|
if (!pThemePath)
|
||||||
|
|
||||||
if (g_theme_random == vtoy_theme_random_boot_second)
|
|
||||||
{
|
{
|
||||||
grub_divmod32((grub_uint32_t)datetime.second, (grub_uint32_t)g_theme_num, &mod);
|
goto end;
|
||||||
}
|
|
||||||
else if (g_theme_random == vtoy_theme_random_boot_day)
|
|
||||||
{
|
|
||||||
grub_divmod32((grub_uint32_t)datetime.day, (grub_uint32_t)g_theme_num, &mod);
|
|
||||||
}
|
|
||||||
else if (g_theme_random == vtoy_theme_random_boot_month)
|
|
||||||
{
|
|
||||||
grub_divmod32((grub_uint32_t)datetime.month, (grub_uint32_t)g_theme_num, &mod);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
debug("%04d/%02d/%02d %02d:%02d:%02d radom:%d mod:%d\n",
|
if (g_theme_res_fit)
|
||||||
datetime.year, datetime.month, datetime.day,
|
|
||||||
datetime.hour, datetime.minute, datetime.second,
|
|
||||||
g_theme_random, mod);
|
|
||||||
|
|
||||||
for (i = 0; i < mod && node; i++)
|
|
||||||
{
|
{
|
||||||
node = node->next;
|
if (grub_video_get_info(&info) == GRUB_ERR_NONE)
|
||||||
|
{
|
||||||
|
debug("get video info success %ux%u\n", info.width, info.height);
|
||||||
|
grub_snprintf(buf, sizeof(buf), "%ux%u", info.width, info.height);
|
||||||
|
for (node = g_theme_head; node; node = node->next)
|
||||||
|
{
|
||||||
|
if (grub_strstr(node->theme.path, buf))
|
||||||
|
{
|
||||||
|
pThemePath[theme_num++] = node->theme.path;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
debug("random theme %s\n", node->theme.path);
|
if (theme_num == 0)
|
||||||
grub_env_set("theme", node->theme.path);
|
{
|
||||||
|
for (node = g_theme_head; node; node = node->next)
|
||||||
|
{
|
||||||
|
pThemePath[theme_num++] = node->theme.path;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (theme_num == 1)
|
||||||
|
{
|
||||||
|
mod = 0;
|
||||||
|
debug("Only 1 theme match, no need to random.\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
grub_memset(&datetime, 0, sizeof(datetime));
|
||||||
|
grub_get_datetime(&datetime);
|
||||||
|
|
||||||
|
if (g_theme_random == vtoy_theme_random_boot_second)
|
||||||
|
{
|
||||||
|
grub_divmod32((grub_uint32_t)datetime.second, theme_num, &mod);
|
||||||
|
}
|
||||||
|
else if (g_theme_random == vtoy_theme_random_boot_day)
|
||||||
|
{
|
||||||
|
grub_divmod32((grub_uint32_t)datetime.day, theme_num, &mod);
|
||||||
|
}
|
||||||
|
else if (g_theme_random == vtoy_theme_random_boot_month)
|
||||||
|
{
|
||||||
|
grub_divmod32((grub_uint32_t)datetime.month, theme_num, &mod);
|
||||||
|
}
|
||||||
|
|
||||||
|
debug("%04d/%02d/%02d %02d:%02d:%02d theme_num:%d mod:%d\n",
|
||||||
|
datetime.year, datetime.month, datetime.day,
|
||||||
|
datetime.hour, datetime.minute, datetime.second,
|
||||||
|
theme_num, mod);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (argc > 0 && grub_strcmp(args[0], "switch") == 0)
|
||||||
|
{
|
||||||
|
grub_snprintf(g_ventoy_theme_path, sizeof(g_ventoy_theme_path), "%s", pThemePath[mod]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
debug("random theme %s\n", pThemePath[mod]);
|
||||||
|
grub_env_set("theme", pThemePath[mod]);
|
||||||
|
}
|
||||||
|
g_ventoy_menu_refresh = 1;
|
||||||
|
|
||||||
end:
|
end:
|
||||||
|
|
||||||
|
grub_check_free(pThemePath);
|
||||||
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern char g_ventoy_theme_path[256];
|
|
||||||
grub_err_t ventoy_cmd_set_theme_path(grub_extcmd_context_t ctxt, int argc, char **args)
|
grub_err_t ventoy_cmd_set_theme_path(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||||
{
|
{
|
||||||
(void)argc;
|
(void)argc;
|
||||||
|
|
|
@ -24,7 +24,10 @@ submenu "$VTLANG_RESOLUTION_CFG" --class=debug_resolution --class=F5tool {
|
||||||
menuentry "$vtCurMode $vtActive" --class=debug_videomode --class=debug_resolution --class=F5tool VTOY_RUN_RET {
|
menuentry "$vtCurMode $vtActive" --class=debug_videomode --class=debug_resolution --class=F5tool VTOY_RUN_RET {
|
||||||
terminal_output console
|
terminal_output console
|
||||||
set gfxmode=$1
|
set gfxmode=$1
|
||||||
terminal_output gfxterm
|
terminal_output gfxterm
|
||||||
|
if [ "$vtoy_res_fit" = "1" ]; then
|
||||||
|
vt_set_theme switch
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
vt_incr vdid 1
|
vt_incr vdid 1
|
||||||
|
|
|
@ -2555,7 +2555,11 @@ elif [ "$vtoy_display_mode" = "serial_console" ]; then
|
||||||
fi
|
fi
|
||||||
terminal_input serial console
|
terminal_input serial console
|
||||||
terminal_output serial console
|
terminal_output serial console
|
||||||
else
|
else
|
||||||
|
if [ "$vtoy_res_fit" = "1" ]; then
|
||||||
|
terminal_output gfxterm
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$vtoy_theme" ]; then
|
if [ -n "$vtoy_theme" ]; then
|
||||||
vt_set_theme
|
vt_set_theme
|
||||||
else
|
else
|
||||||
|
|
|
@ -819,13 +819,18 @@ int ventoy_data_save_theme(data_theme *data, const char *title, char *buf, int b
|
||||||
{
|
{
|
||||||
VTOY_JSON_FMT_ITEM_PATH_LN(L3, node->path);
|
VTOY_JSON_FMT_ITEM_PATH_LN(L3, node->path);
|
||||||
}
|
}
|
||||||
|
|
||||||
VTOY_JSON_FMT_ARY_ENDEX_LN(L2);
|
VTOY_JSON_FMT_ARY_ENDEX_LN(L2);
|
||||||
|
|
||||||
if (def->default_file != data->default_file)
|
if (def->default_file != data->default_file)
|
||||||
{
|
{
|
||||||
VTOY_JSON_FMT_SINT_LN(L2, "default_file", data->default_file);
|
VTOY_JSON_FMT_SINT_LN(L2, "default_file", data->default_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (def->resolution_fit != data->resolution_fit)
|
||||||
|
{
|
||||||
|
VTOY_JSON_FMT_SINT_LN(L2, "resolution_fit", data->resolution_fit);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -888,6 +893,7 @@ int ventoy_data_json_theme(data_theme *data, char *buf, int buflen)
|
||||||
VTOY_JSON_FMT_OBJ_BEGIN();
|
VTOY_JSON_FMT_OBJ_BEGIN();
|
||||||
|
|
||||||
VTOY_JSON_FMT_SINT("default_file", data->default_file);
|
VTOY_JSON_FMT_SINT("default_file", data->default_file);
|
||||||
|
VTOY_JSON_FMT_SINT("resolution_fit", data->resolution_fit);
|
||||||
VTOY_JSON_FMT_SINT("display_mode", data->display_mode);
|
VTOY_JSON_FMT_SINT("display_mode", data->display_mode);
|
||||||
VTOY_JSON_FMT_STRN("gfxmode", data->gfxmode);
|
VTOY_JSON_FMT_STRN("gfxmode", data->gfxmode);
|
||||||
|
|
||||||
|
@ -939,6 +945,7 @@ static int ventoy_api_save_theme(struct mg_connection *conn, VTOY_JSON *json)
|
||||||
data = g_data_theme + index;
|
data = g_data_theme + index;
|
||||||
|
|
||||||
VTOY_JSON_INT("default_file", data->default_file);
|
VTOY_JSON_INT("default_file", data->default_file);
|
||||||
|
VTOY_JSON_INT("resolution_fit", data->resolution_fit);
|
||||||
VTOY_JSON_INT("display_mode", data->display_mode);
|
VTOY_JSON_INT("display_mode", data->display_mode);
|
||||||
VTOY_JSON_STR("gfxmode", data->gfxmode);
|
VTOY_JSON_STR("gfxmode", data->gfxmode);
|
||||||
VTOY_JSON_STR("ventoy_left", data->ventoy_left);
|
VTOY_JSON_STR("ventoy_left", data->ventoy_left);
|
||||||
|
@ -4252,6 +4259,7 @@ static int ventoy_parse_theme(VTOY_JSON *json, void *p)
|
||||||
vtoy_json_get_string(child, "ventoy_color", sizeof(data->ventoy_color), data->ventoy_color);
|
vtoy_json_get_string(child, "ventoy_color", sizeof(data->ventoy_color), data->ventoy_color);
|
||||||
|
|
||||||
vtoy_json_get_int(child, "default_file", &(data->default_file));
|
vtoy_json_get_int(child, "default_file", &(data->default_file));
|
||||||
|
vtoy_json_get_int(child, "resolution_fit", &(data->resolution_fit));
|
||||||
vtoy_json_get_string(child, "gfxmode", sizeof(data->gfxmode), data->gfxmode);
|
vtoy_json_get_string(child, "gfxmode", sizeof(data->gfxmode), data->gfxmode);
|
||||||
vtoy_json_get_string(child, "serial_param", sizeof(data->serial_param), data->serial_param);
|
vtoy_json_get_string(child, "serial_param", sizeof(data->serial_param), data->serial_param);
|
||||||
|
|
||||||
|
@ -4279,6 +4287,7 @@ static int ventoy_parse_theme(VTOY_JSON *json, void *p)
|
||||||
if (node)
|
if (node)
|
||||||
{
|
{
|
||||||
data->default_file = 0;
|
data->default_file = 0;
|
||||||
|
data->resolution_fit = 0;
|
||||||
|
|
||||||
pnode = zalloc(sizeof(path_node));
|
pnode = zalloc(sizeof(path_node));
|
||||||
if (pnode)
|
if (pnode)
|
||||||
|
|
|
@ -100,6 +100,7 @@ typedef struct path_node
|
||||||
typedef struct data_theme
|
typedef struct data_theme
|
||||||
{
|
{
|
||||||
int default_file;
|
int default_file;
|
||||||
|
int resolution_fit;
|
||||||
path_node *filelist;
|
path_node *filelist;
|
||||||
int display_mode;
|
int display_mode;
|
||||||
char gfxmode[32];
|
char gfxmode[32];
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1 +1 @@
|
||||||
20221221 12:11:59
|
20221204 15:15:33
|
|
@ -757,7 +757,7 @@
|
||||||
|
|
||||||
<footer class="main-footer">
|
<footer class="main-footer">
|
||||||
<div class="pull-right hidden-xs">
|
<div class="pull-right hidden-xs">
|
||||||
<b id="plugson_build_date">20221221 12:11:59</b>
|
<b id="plugson_build_date">20221204 15:15:33</b>
|
||||||
</div>
|
</div>
|
||||||
<strong><a href="https://www.ventoy.net" target="_blank">https://www.ventoy.net</a></strong>
|
<strong><a href="https://www.ventoy.net" target="_blank">https://www.ventoy.net</a></strong>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -777,10 +777,10 @@
|
||||||
<script src="/static/js/jQuery-2.1.4.min.js"></script>
|
<script src="/static/js/jQuery-2.1.4.min.js"></script>
|
||||||
<!-- jquery validate -->
|
<!-- jquery validate -->
|
||||||
<script src="/static/js/jquery.validate.min.js"></script>
|
<script src="/static/js/jquery.validate.min.js"></script>
|
||||||
<script src="/static/js/jquery.validate.vtoymethods.js?v=103"></script>
|
<script src="/static/js/jquery.validate.vtoymethods.js?v=106"></script>
|
||||||
|
|
||||||
<script src="/static/js/jquery.vtoy.alert.js?v=103"></script>
|
<script src="/static/js/jquery.vtoy.alert.js?v=106"></script>
|
||||||
<script src="/static/js/vtoy.js?v=103"></script>
|
<script src="/static/js/vtoy.js?v=106"></script>
|
||||||
<script src="/static/js/md5.min.js"></script>
|
<script src="/static/js/md5.min.js"></script>
|
||||||
|
|
||||||
<!-- Bootstrap 3.3.5 -->
|
<!-- Bootstrap 3.3.5 -->
|
||||||
|
|
|
@ -71,6 +71,50 @@
|
||||||
</div><!-- /.box-body -->
|
</div><!-- /.box-body -->
|
||||||
</div><!-- /.box -->
|
</div><!-- /.box -->
|
||||||
|
|
||||||
|
|
||||||
|
<div class="box box-primary box-solid" id='resolution_fit_div'>
|
||||||
|
<div class="box-header with-border">
|
||||||
|
<h3 class="box-title" style="font-size: 14px;font-weight: bold;">resolution_fit
|
||||||
|
<span id="id_span_desc_cn"> —— 按照分辨率过滤</span></h3>
|
||||||
|
<div class="box-tools pull-right">
|
||||||
|
<button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
|
||||||
|
</div><!-- /.box-tools -->
|
||||||
|
</div><!-- /.box-header -->
|
||||||
|
<div class="box-body no-padding">
|
||||||
|
<table class="table table-bordered no-padding">
|
||||||
|
<tr style="font-weight:bold;">
|
||||||
|
<td class="td_ctrl_col" id="td_title_setting">选项设置</td>
|
||||||
|
<td>
|
||||||
|
<label class="radio-inline">
|
||||||
|
<input type="radio" id="id_ctrl_radio_res_fit0" name="id_ctrl_radio_res_fit" data-type="0" value="0"> <span style="font-weight:bold;">0</span>
|
||||||
|
</label>
|
||||||
|
<label class="radio-inline">
|
||||||
|
<input type="radio" id="id_ctrl_radio_res_fit1" name="id_ctrl_radio_res_fit" data-type="1" value="1"> <span style="font-weight:bold;">1</span>
|
||||||
|
</label>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr id="tr_title_desc_cn">
|
||||||
|
<td class="td_ctrl_col" id="td_title_desc">选项说明</td>
|
||||||
|
<td>当设置多个主题时,在随机选择时是否按照当前分辨率过滤。
|
||||||
|
<code style="font-weight: bold;">0</code> 不过滤
|
||||||
|
<code style="font-weight: bold;">1</code> 过滤 <br/>
|
||||||
|
注意,这个选项必须在上面设置了多个主题配置文件,同时 "默认" 设置为 “随机选择” 时才有效,其他情况下均无效。<br/>
|
||||||
|
关于这个选项的详细解释,请参考 <a href="https://www.ventoy.net/cn/plugin_theme.html#vtoy_theme_res_fit">resolution_fit 选项说明</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr id="tr_title_desc_en">
|
||||||
|
<td class="td_ctrl_col">Option Description</td>
|
||||||
|
<td>
|
||||||
|
Filter by current resolution when you set more than one themes.
|
||||||
|
<code style="font-weight: bold;">0</code> No filter  
|
||||||
|
<code style="font-weight: bold;">1</code> Filter <br/>
|
||||||
|
You can refer <a href="https://www.ventoy.net/en/plugin_theme.html#vtoy_theme_res_fit">About resolution_fit</a> for details about this option.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><!-- /.box-body -->
|
||||||
|
</div><!-- /.box -->
|
||||||
|
|
||||||
|
|
||||||
<div class="box box-primary box-solid">
|
<div class="box box-primary box-solid">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
|
@ -239,6 +283,8 @@
|
||||||
} else {
|
} else {
|
||||||
data.display_mode = 0;
|
data.display_mode = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data.resolution_fit = parseInt($('input:radio[name=id_ctrl_radio_res_fit]:checked').val());
|
||||||
}
|
}
|
||||||
|
|
||||||
function VtoySaveCurrentPage() {
|
function VtoySaveCurrentPage() {
|
||||||
|
@ -249,6 +295,7 @@
|
||||||
method : 'save_theme',
|
method : 'save_theme',
|
||||||
index: current_tab_index,
|
index: current_tab_index,
|
||||||
display_mode: data.display_mode,
|
display_mode: data.display_mode,
|
||||||
|
resolution_fit: data.resolution_fit,
|
||||||
gfxmode: data.gfxmode,
|
gfxmode: data.gfxmode,
|
||||||
default_file: data.default_file
|
default_file: data.default_file
|
||||||
}, function(e) {
|
}, function(e) {
|
||||||
|
@ -269,6 +316,12 @@
|
||||||
var $tbl = $("#id_theme_tbl_file tbody");
|
var $tbl = $("#id_theme_tbl_file tbody");
|
||||||
$tbl.empty();
|
$tbl.empty();
|
||||||
|
|
||||||
|
if (list.length > 1) {
|
||||||
|
$('#resolution_fit_div').show();
|
||||||
|
} else {
|
||||||
|
$('#resolution_fit_div').hide();
|
||||||
|
}
|
||||||
|
|
||||||
for (var i = 0; i < list.length; i++) {
|
for (var i = 0; i < list.length; i++) {
|
||||||
var $tr;
|
var $tr;
|
||||||
td1 = '<td>' + (i + 1) + '</td>';
|
td1 = '<td>' + (i + 1) + '</td>';
|
||||||
|
@ -365,6 +418,8 @@
|
||||||
$('select[id=id_theme_sel_dismode').val('GUI');
|
$('select[id=id_theme_sel_dismode').val('GUI');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$('input:radio[name=id_ctrl_radio_res_fit]')[data.resolution_fit].checked = true;
|
||||||
|
|
||||||
FillThemeFileTable(data.filelist, data.default_file);
|
FillThemeFileTable(data.filelist, data.default_file);
|
||||||
FillThemeFontTable(data.fontslist);
|
FillThemeFontTable(data.fontslist);
|
||||||
}
|
}
|
||||||
|
@ -515,6 +570,8 @@
|
||||||
|
|
||||||
$('select[id=id_theme_sel_gfxmode]').change(VtoySaveCurrentPage);
|
$('select[id=id_theme_sel_gfxmode]').change(VtoySaveCurrentPage);
|
||||||
$('select[id=id_theme_sel_dismode]').change(VtoySaveCurrentPage);
|
$('select[id=id_theme_sel_dismode]').change(VtoySaveCurrentPage);
|
||||||
|
$('#id_ctrl_radio_res_fit0').change(VtoySaveCurrentPage);
|
||||||
|
$('#id_ctrl_radio_res_fit1').change(VtoySaveCurrentPage);
|
||||||
|
|
||||||
$('#id_tab_theme a[href="#tab_0"]').click(OnClickMultiModeTab);
|
$('#id_tab_theme a[href="#tab_0"]').click(OnClickMultiModeTab);
|
||||||
$('#id_tab_theme a[href="#tab_1"]').click(OnClickMultiModeTab);
|
$('#id_tab_theme a[href="#tab_1"]').click(OnClickMultiModeTab);
|
||||||
|
|
Loading…
Reference in New Issue