本文整理汇总了C++中OSD_DrawObject函数的典型用法代码示例。如果您正苦于以下问题:C++ OSD_DrawObject函数的具体用法?C++ OSD_DrawObject怎么用?C++ OSD_DrawObject使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了OSD_DrawObject函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: slideidx_display
static void slideidx_display(BOOL refresh)
{
char str_buffer[20];
TEXT_FIELD *pTxt = &imageslide_idx;
UINT32 image_total_num;
get_play_list_info(cur_playlist_image,&image_total_num, NULL);
sprintf(str_buffer,"%d/%d",cur_image_idx,image_total_num);
OSD_SetTextFieldContent(pTxt,STRING_ANSI,(UINT32)str_buffer);
if(refresh)
OSD_DrawObject((POBJECT_HEAD)pTxt,C_UPDATE_ALL);
}
开发者ID:alkap007,项目名称:ali3606,代码行数:13,代码来源:win_imageslide.c
示例2: win_satsrch_set_nitactive
static void win_satsrch_set_nitactive(BOOL update)
{
UINT8 action;
#ifdef ORDER_GZ1011001
action = (SATSRCH_MODE_IDX == 1)? C_ATTR_INACTIVE : C_ATTR_ACTIVE;
#else
action = (SATSRCH_MODE_IDX == IDX_SCAN_MODE_AUTO_SCAN)? C_ATTR_INACTIVE : C_ATTR_ACTIVE;
#endif
set_container_active(&satsrch_item4, action);
if(update)
OSD_DrawObject( (POBJECT_HEAD)&satsrch_item4, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
}
开发者ID:alkap007,项目名称:ali3606,代码行数:13,代码来源:win_satsearch_set.c
示例3: win_timerset_set_currenttime
void win_timerset_set_currenttime(BOOL update)
{
TEXT_FIELD *txt;
char str[30];
date_time dt;
get_local_time(&dt);
txt = &timer_cur_datetime;
sprintf(str, "%d:%02d %04d-%02d-%02d", dt.hour, dt.min, dt.year, dt.month, dt.day);
OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)str);
if (update)
OSD_DrawObject((POBJECT_HEAD)txt, C_UPDATE_ALL);
}
开发者ID:jinfeng-geeya,项目名称:3202C,代码行数:13,代码来源:win_timer_set.c
示例4: otaset_callback
static PRESULT otaset_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
PRESULT ret = PROC_PASS;
UINT32 sat_cnt;
POBJECT_HEAD submenu;
switch(event)
{
case EVN_PRE_OPEN:
ota_presat_id = 0xFFFF;
//wincom_open_title(pObj,RS_UPGRADE_MODE_SAT, 0);
wincom_open_subtitle(pObj,RS_TOOLS_SW_UPGRADE_BY_OTA, 0);
#ifdef _BUILD_OTA_E_
ota_load_parameter();
#else
win_otaset_load_default_setting(0);
#endif
win_otaset_load_FreqSymbPid_display();
break;
case EVN_POST_DRAW:
//win_signal_open(pObj);
win_signal_open_ex(pObj,pObj->frame.uLeft+30,pObj->frame.uTop + LIST_ITEMCNT*(CON_H + CON_GAP) +20);
win_otaset_turn_frntend();
wincom_open_commen_help(pObj);
//win_signal_refresh();
//win_signal_update();
break;
case EVN_PRE_CLOSE:
/* Make OSD not flickering */
*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;
break;
case EVN_POST_CLOSE:
wincom_close_subtitle();
OSD_ClearScreen();
if((sys_data_get_sate_group_num(sys_data_get_cur_chan_mode())==0))
OSD_DrawObject((POBJECT_HEAD)&g_win_mainmenu,C_UPDATE_ALL);
win_open_submenu_title(submenu,sub_menu_desc->title_id, 0); //guop
break;
case EVN_MSG_GOT:
if(param1 == CTRL_MSG_SUBTYPE_STATUS_SIGNAL)
win_signal_refresh();
//win_signal_update();
break;
}
return ret;
}
开发者ID:Janesak1977,项目名称:ali3602,代码行数:51,代码来源:win_ota_set.c
示例5: win_pvod_download
static void win_pvod_download()
{
UINT16 i;
BOOL bFinished=FALSE;
#if 0
OSD_SetAttr(&pvod_item_con1, C_ATTR_INACTIVE);
OSD_DrawObject( (POBJECT_HEAD)&pvod_item_con1, C_UPDATE_ALL);
OSD_SetAttr(&pvod_item_con2, C_ATTR_INACTIVE);
OSD_DrawObject( (POBJECT_HEAD)&pvod_item_con1, C_UPDATE_ALL);
OSD_SetAttr(&pvod_item_con3, C_ATTR_INACTIVE);
OSD_DrawObject( (POBJECT_HEAD)&pvod_item_con1, C_UPDATE_ALL);
OSD_SetAttr(&pvod_item_con4, C_ATTR_INACTIVE);
OSD_DrawObject( (POBJECT_HEAD)&pvod_item_con1, C_UPDATE_ALL);
OSD_SetProgressBarPos(&pvod_bar_progress,(INT16)0);
OSD_SetTextFieldContent(&pvod_txt_progress, STRING_NUM_PERCENT, (UINT32)0);
#endif
//download data
/*
for(i=0;i<5;i++)
{
osal_delay(300);
win_pvod_process_update(20*(i+1));
}
*/
//download finished
// bFinished = TRUE;
// SendMsgtoThread(0x01,0x00,0x00);/**Pvod_Programschedule_Query*/
//检查USB连接????
//启动pushvod
SendMsgtoThread(Pvod_START_PAT,0,0);
}
开发者ID:alkap007,项目名称:ali3606,代码行数:38,代码来源:win_pvod.c
示例6: win_mpegYT_player_draw
static void win_mpegYT_player_draw(BOOL bShow)
{
POBJECT_HEAD pObj = (POBJECT_HEAD) & g_win_mpegYT_player;
if (bShow)
{
m_HideWindow = FALSE;
OSD_DrawObject(pObj, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
}
else
{
m_HideWindow = TRUE;
OSD_ClearObject(pObj, C_UPDATE_ALL);
}
}
开发者ID:alkap007,项目名称:ali3606,代码行数:14,代码来源:win_youtube_player.c
示例7: av_con_callback
static PRESULT av_con_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
PRESULT ret = PROC_PASS;
VACTION unact;
POBJECT_HEAD submenu;
switch(event)
{
case EVN_PRE_OPEN:
wincom_open_subtitle((POBJECT_HEAD)&win_av_con,RS_SYSTEM_TV_SYSTEM, 0);
win_av_load_setting();
win_av_set_vcrloop_action(FALSE);
win_av_init_items();
#ifdef NEW_DEMO_FRAME
remove_menu_item((POBJECT_HEAD)&win_av_con, (OBJECT_HEAD *)&av_item_con5, CON_H + CON_GAP);
remove_menu_item((POBJECT_HEAD)&win_av_con, (OBJECT_HEAD *)&av_item_con6, CON_H + CON_GAP);
remove_menu_item((POBJECT_HEAD)&win_av_con, (OBJECT_HEAD *)&av_item_con7, CON_H + CON_GAP);
#endif
break;
case EVN_POST_OPEN:
wincom_open_commen_help(pObj);
wincom_open_help(pObj,0,0);
break;
case EVN_PRE_CLOSE:
sys_data_save(1);
/* Make OSD not flickering */
*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;
break;
case EVN_POST_CLOSE:
wincom_close_subtitle();
OSD_ClearScreen();
if((sys_data_get_sate_group_num(sys_data_get_cur_chan_mode())==0))
OSD_DrawObject((POBJECT_HEAD)&g_win_mainmenu,C_UPDATE_ALL);
win_open_submenu_title(submenu,sub_menu_desc->title_id, 0); //guop
break;
case EVN_MSG_GOT:
if(param1 == CTRL_MSG_SUBTYPE_CMD_TVSAT_SWITCH)
{
win_av_load_tv_mode_setting(TRUE);
ret = PROC_LOOP;
}
break;
default:
break;
}
return ret;
}
开发者ID:Janesak1977,项目名称:ali3602,代码行数:50,代码来源:win_tvsys.c
示例8: win_progname_redraw
void win_progname_redraw(BOOL if_reset_scroll)
{
POBJECT_HEAD pObj = (POBJECT_HEAD) &g_win_progname;
if(NULL == menu_stack_get_top() || (POBJECT_HEAD) &g_win_progname == menu_stack_get_top())
{
if (if_reset_scroll)
win_progname_stop_scroll();
OSD_DrawObject(pObj, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
#ifdef AD_TYPE
AD_UpdateAD(AD_TYPE_CHANNEL_BAR);
#endif
}
}
开发者ID:jinfeng-geeya,项目名称:3202C,代码行数:14,代码来源:win_prog_name.c
示例9: newcamd_display_info1
static void newcamd_display_info1(BOOL update)
{
TEXT_CONTENT* tcont;
char strTemp[50];
UINT8 idx = g_newcamd_curidx-1;
UINT32 ip = newcamd_serinfo[idx].ip;
if(newcamd_serinfo[idx].bActive)
{
tcont = &str_info1[0];
tcont->text.pString = display_strs[31];
//sprintf(strTemp,"Server %d [%s]",g_newcamd_curidx,newcamd_serinfo[idx].name);
sprintf(strTemp,"Server %d",g_newcamd_curidx);
ComAscStr2Uni(strTemp,tcont->text.pString);
tcont = &str_info1[1];
tcont->text.pString = display_strs[32];
// sprintf(strTemp,"Server IP[%d.%d.%d.%d] Server Port[%d]",\
// ip&0xff,(ip>>8)&0xff,(ip>>16)&0xff,(ip>>24)&0xff, newcamd_serinfo[idx].port); //pppppppppp
sprintf(strTemp,"%s",newcamd_serinfo[idx].domain);
ComAscStr2Uni(strTemp,tcont->text.pString);
tcont = &str_info1[2];
tcont->text.pString = display_strs[33];
sprintf(strTemp,"User Name[******] User Password[******]");
ComAscStr2Uni(strTemp,tcont->text.pString);
}
else
{
tcont = &str_info1[0];
tcont->text.pString = display_strs[31];
//sprintf(strTemp,"Server %d [%s] Inactival",g_newcamd_curidx,newcamd_serinfo[idx].name);
sprintf(strTemp,"Server %d Inactival",g_newcamd_curidx);
ComAscStr2Uni(strTemp,tcont->text.pString);
tcont = &str_info1[1];
tcont->text.pString=0;
tcont = &str_info1[2];
tcont->text.pString=0;
}
if(update)
{
OSD_DrawObject((POBJECT_HEAD)&newcamd_item_info1, C_UPDATE_ALL);
}
}
开发者ID:alkap007,项目名称:ali3606,代码行数:49,代码来源:win_newcamd.c
示例10: spidercam_title_display
static void spidercam_title_display()
{
UINT8 i;
for(i=0;i<SPIDERCAM_HOST_COUNT;i++)
{
spidercam_set_title_rect(TITLE_ITEM_L+i*(TITLE_ITEM_GRAP+TITLE_ITEM_W), TITLE_ITEM_T, TITLE_ITEM_W, TITLE_ITEM_H);
if(uHostConStatus[i])
{
OSD_SetBitmapContent(&spidercam_title_bitmap, spidercam_title_item_bmp_ids[BMP_ON_INDEX]);
}
else
{
OSD_SetBitmapContent(&spidercam_title_bitmap, spidercam_title_item_bmp_ids[BMP_OFF_INDEX]);
}
OSD_SetTextFieldContent(&spidercam_title_txtname,STRING_NUMBER, i+1);
OSD_DrawObject( (POBJECT_HEAD)&spidercam_title_bitmap, C_UPDATE_ALL);
OSD_DrawObject( (POBJECT_HEAD)&spidercam_title_txtname, C_UPDATE_ALL);
}
}
开发者ID:alkap007,项目名称:ali3606,代码行数:24,代码来源:win_spielercam.c
示例11: MailDrawNum0
static void MailDrawNum0() //对新邮件和邮件总数赋值 ---yuanlin
{
UINT8 *src;
UINT8 tmp[6]={0,};
UINT8 num=GYCA_EMAIL_MAX_CNT;// ------yuanlin
UINT16 strLen;
OSD_RECT rc;
TEXT_FIELD *txt;
UINT8 total, newmail;
txt = &mail_new;
OSD_SetTextFieldStrPoint(txt, len_display_str);
src = OSD_GetUnicodeString(RS_CTI_NEW_MAIL);
ComUniStrCopyChar((UINT8*)len_display_str, src);
strLen = ComUniStrLen(len_display_str);
sprintf(tmp, " %d",email_count_unread );
ComAscStr2Uni(tmp, &len_display_str[strLen]);
OSD_SetTextFieldContent(txt, STRING_UNICODE, (UINT32)len_display_str);
OSD_DrawObject((POBJECT_HEAD)txt, C_UPDATE_ALL);
OSD_SetTextFieldStrPoint(txt, NULL);
txt = &mail_total;
OSD_SetTextFieldStrPoint(txt, len_display_str);
MEMSET(len_display_str, 0, sizeof(len_display_str));
MEMSET(tmp, 0, sizeof(tmp));
src = OSD_GetUnicodeString(RS_RESIDUAL_SPACE);
ComUniStrCopyChar((UINT8*)len_display_str, src);
strLen = ComUniStrLen(len_display_str);
sprintf(tmp, " %d",num-email_count);
ComAscStr2Uni(tmp, &len_display_str[strLen]);
OSD_SetTextFieldContent(txt, STRING_UNICODE, (UINT32)len_display_str);
OSD_DrawObject((POBJECT_HEAD)txt, C_UPDATE_ALL);
OSD_SetTextFieldStrPoint(txt, NULL);
}
开发者ID:jinfeng-geeya,项目名称:3202C,代码行数:36,代码来源:win_mail.c
示例12: ShowReplayHintOSDOnOff
void ShowReplayHintOSDOnOff(UINT8 flag)
{
OBJECT_HEAD* obj;
obj = (OBJECT_HEAD*)&win_replay_hint_bmp;
if(exit_submenu_flag_replay==FALSE)
{
if(flag)
OSD_DrawObject(obj, C_UPDATE_ALL);
else
OSD_ClearObject(obj, 0);
}
exit_submenu_flag_replay=FALSE;
}
开发者ID:alkap007,项目名称:ali3606,代码行数:15,代码来源:win_replay_hint.c
示例13: win_progress_bar_draw_bmp
static void win_progress_bar_draw_bmp(UINT16 iconID)
{
BITMAP* bmp;
// OSD_RECT rect;
UINT32 posi;
bmp = &progress_bar_bmp;
// win_usb_backup_tmr_loop++;
// posi = win_usb_backup_tmr_loop % PROGRESS_BAR_ICON_CNT;
// OSD_SetRect(&rect, INFO_WAV_L, INFO_WAV_T, INFO_WAV_W, INFO_WAV_H);
// OSD_SetRect2(&bmp->head.frame,pRect);
OSD_SetBitmapContent(bmp, progress_bar_ids[iconID]);
OSD_DrawObject( (POBJECT_HEAD)bmp, C_UPDATE_ALL);
}
开发者ID:alkap007,项目名称:ali3606,代码行数:16,代码来源:win_usb_backup.c
示例14: win_wifilist_update_wifi_device_status_display
static void win_wifilist_update_wifi_device_status_display(BOOL refresh_device_status)
{
TEXT_FIELD* txt;
UINT16 name[80];
name[0] = 0;
txt = &wifilst_dev_status;
ComAscStr2Uni(wifi_manager_state_str[g_ui_wifi_manager_state], name);
OSD_SetTextFieldContent(txt, STRING_UNICODE, (UINT32)name);
if(refresh_device_status)
OSD_DrawObject( (POBJECT_HEAD)txt, C_UPDATE_ALL);
}
开发者ID:alkap007,项目名称:ali3606,代码行数:16,代码来源:win_wifi_manager.c
示例15: sudoku_draw_cursor
static void sudoku_draw_cursor(UINT8 row, UINT8 col)
{
UINT8 pos;
UINT8 WStyle;
pos = row*BOARD_COLS+col;
WStyle = WSTL_GAMESUDOKU_CURSOR_HD;
drawSquare(BK_X_OFFSET+col*GRID_WIDTH-2, BK_Y_OFFSET+row*GRID_WIDTH-2,\
GRID_WIDTH+4, GRID_WIDTH+4, WStyle);
if(pboard[pos]!=' ')
{
OSD_MoveObject((POBJECT_HEAD)&txt_Grid,BK_X_OFFSET+col*GRID_WIDTH,BK_Y_OFFSET+row*GRID_WIDTH,FALSE);
OSD_SetTextFieldContent(&txt_Grid,STRING_NUMBER, (UINT32)(pboard[pos]-'0'));
OSD_DrawObject((POBJECT_HEAD)&txt_Grid,C_UPDATE_ALL);
}
}
开发者ID:Janesak1977,项目名称:ali3602,代码行数:16,代码来源:win_game_sudoku.c
示例16: movefile_change_storage
static PRESULT movefile_change_storage(VACTION act)
{
PRESULT ret = PROC_LOOP;
TEXT_FIELD *pTxt;
OBJLIST *pOl;
char str_buff[10];
if(act == VACT_CHG_DEVL)
{
if(RET_FAILURE == win_get_next_device(movefile_cur_device, movefile_cur_device,TRUE))
{
return ret;
}
}
else
{
if(RET_FAILURE == win_get_next_device(movefile_cur_device, movefile_cur_device,FALSE))
{
return ret;
}
}
file_list_change_device(win_move_dirlist,movefile_cur_device);
pTxt = &mpmove_dev_name;
win_get_display_devicename(str_buff, movefile_cur_device);
sprintf(str_buff,"%s",str_buff);
OSD_SetTextFieldContent(pTxt,STRING_ANSI,(UINT32)str_buff);//show current device name
//OSD_DrawObject((POBJECT_HEAD)pTxt,C_UPDATE_ALL);
OSD_DrawObject((POBJECT_HEAD)&mpmove_dev_con,C_UPDATE_ALL);
/*
pTxt = &mpmove_dir_txt;
sprintf(str_buff,"%s","Root");
OSD_SetTextFieldContent(pTxt,STRING_ANSI,(UINT32)str_buff);
OSD_DrawObject((POBJECT_HEAD)pTxt,C_UPDATE_ALL);
*/
pOl = &ol_mpmove;
get_file_list_info(win_move_dirlist, &movefile_dirnum, &movefile_filenum, NULL);
OSD_SetObjListCurPoint(pOl, 0);
OSD_SetObjListNewPoint(pOl, 0);
OSD_SetObjListTop(pOl, 0);
OSD_SetObjListCount(pOl, movefile_dirnum+movefile_filenum);
OSD_TrackObject((POBJECT_HEAD)pOl, C_UPDATE_ALL | C_DRAW_SIGN_EVN_FLG);
return ret;
}
开发者ID:alkap007,项目名称:ali3606,代码行数:47,代码来源:win_mp_move_file.c
示例17: ca_win_event_proc
static PRESULT ca_win_event_proc(POBJECT_HEAD pObj, UINT32 msg_type, UINT32 msg_code)
{
PRESULT ret = PROC_LOOP;
UINT16 ca_slot_status_str[CA_MENU_TXT_LENGTH];
UINT8 focusID;
if((msg_type & 0xffff) == CTRL_MSG_SUBTYPE_STATUS_MCAS)
{
UINT8 slot = (UINT8)(msg_code&1);
UINT16 ca_system_id = (UINT16)(msg_code & 0xFFFE);
mcas_disp_type_t disp_type = (mcas_disp_type_t)(msg_code>>16);
UINT16 *unistr=NULL;
UINT16 *unistr2=NULL;
UINT16 unistr_dest[50]={0};
UINT16 uni_string[CA_MENU_TXT_LENGTH]={0};
UINT16 uni_string2[CA_MENU_TXT_LENGTH]={0};
char string[20];
memset(string,0,sizeof(string));
memset(unistr_dest,0,sizeof(unistr_dest));
memset(uni_string,0,sizeof(uni_string));
memset(uni_string2,0,sizeof(uni_string2));
unistr = OSD_GetUnicodeString(RS_SLOT);
#ifdef SUPPORT_DUAL_SMC
sprintf(string," %d :",slot+1);
#else
sprintf(string," : ");
#endif
ComAscStr2Uni(string,unistr_dest);
ComUniStrCopyChar(&uni_string,(UINT16 *)unistr);
ComUniStrCat(&uni_string,unistr_dest);
unistr2 = OSD_GetUnicodeString(stSlotInfor[slot].ucMCASstr);
ComUniStrCopyChar(&uni_string2,(UINT16 *)unistr2);
ComUniStrCat(&uni_string,uni_string2);
OSD_SetTextFieldContent((PTEXT_FIELD)txt_ca_slots[slot], STRING_UNICODE, (UINT32)uni_string);
focusID = OSD_GetFocusID((POBJECT_HEAD)&g_win_ca_slots);
if(focusID == (slot + 1))
OSD_TrackObject(con_ca_slots[slot], C_UPDATE_ALL);
else
OSD_DrawObject(con_ca_slots[slot], C_UPDATE_ALL);
}
开发者ID:Janesak1977,项目名称:ali3602,代码行数:47,代码来源:win_mcas_slots.c
示例18: win_progname_draw_bmp
void win_progname_draw_bmp(void)
{
UINT32 i,j;
BITMAP* bmp;
UINT16 icon;
prog_bmp_t_gray* p_prog_bmp;
bmp = &prog_bmp;
for(i=0;i<PROG_BMP_GRAY_NUM;i++)
{
p_prog_bmp = &prog_bmps_gray[i];
icon = prog_bmps_gray[i].icon;
OSD_SetBitmapContent(bmp, icon);
OSD_SetRect(&bmp->head.frame, p_prog_bmp->left, p_prog_bmp->top, p_prog_bmp->width,p_prog_bmp->height);
OSD_DrawObject( (OBJECT_HEAD*) bmp, C_UPDATE_ALL);
}
}
开发者ID:Janesak1977,项目名称:ali3602,代码行数:17,代码来源:win_prog_name.c
示例19: ap_cas_free_previewing_open
void ap_cas_free_previewing_open(UINT16 strID)
{
static UINT8 i=0;
OSD_RECT free_prew_rc;
free_prew_rc.uLeft = 350;
free_prew_rc.uTop = 0;
free_prew_rc.uWidth = 360;
free_prew_rc.uHeight = 120;
OSD_SetRect2(&cas_freeprewing_info.head.frame, &free_prew_rc);
OSD_SetRect(&(cas_freeprewing_info.rcText), 4, 4, free_prew_rc.uWidth-8, free_prew_rc.uHeight-8);
cas_reeprewing_txt.bTextType =STRING_ID;
cas_reeprewing_txt.text.wStringID= strID;
OSD_DrawObject((POBJECT_HEAD)&cas_freeprewing_info, C_UPDATE_ALL);
CAS_POPUP_FREE_PREVIEWING_STATUS = 1;
}
开发者ID:jinfeng-geeya,项目名称:3202C,代码行数:17,代码来源:win_ca_freepreviewing.c
示例20: win_imageslide_showpause
static void win_imageslide_showpause(void)
{
UINT16 slide_interval;
slide_interval = (image_slide_setting.uTime_gap * 1000);
if(0 != slide_interval)
{
if(imageslide_pause_state == IMG_PAUSE_STATE)
{
OSD_DrawObject((POBJECT_HEAD)&imageslide_pause,C_UPDATE_ALL);
}
else
{
OSD_ClearObject((POBJECT_HEAD)&imageslide_pause, 0);
}
}
}
开发者ID:alkap007,项目名称:ali3606,代码行数:17,代码来源:win_imageslide.c
注:本文中的OSD_DrawObject函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论