📄 bmarkoutlook.c
字号:
#include "nmosd.h"
#include <UIOSD.h>
MarkSrch marksearch;
void setMarkSrchPara(lpMarkSrch pSrchBox)
{
BYTE i;
// marksearch box para
pSrchBox->upleft_x=MODEBOXLEFT;
pSrchBox->upleft_y=MODEBOXTOP;
pSrchBox->width=MODEBOXWWIDTH;
pSrchBox->high=MODEBOXHEIGHT;
pSrchBox->botthigh=2;
pSrchBox->bottEdgeClr=249;
pSrchBox->highlightNum=0;
//modyfied by gushun
//background bmp information
pSrchBox->bkbmp.upperleftx=pSrchBox->upleft_x;
pSrchBox->bkbmp.upperlefty=pSrchBox->upleft_y;
pSrchBox->bkbmp.width=2;
pSrchBox->bkbmp.height=56;
pSrchBox->bkbmp.BmpID=IM_GUI_ICON_BACK;
//icon bitmap information in marksearch-box
pSrchBox->MarkSrchBitmap.BmpID=IM_GUI_SEARCH;
//modyfied by gushun
// pSrchBox->MarkSrchBitmap.upperleftx=pSrchBox->upleft_x+25;
// pSrchBox->MarkSrchBitmap.upperlefty=pSrchBox->upleft_y;
pSrchBox->MarkSrchBitmap.upperleftx=pSrchBox->upleft_x+4;
pSrchBox->MarkSrchBitmap.upperlefty=pSrchBox->upleft_y+2;
//modyfied by gushun
pSrchBox->MarkSrchBitmap.width=36;
pSrchBox->MarkSrchBitmap.height=56;
//string inforamtion in marksearch-box
pSrchBox->StrNums=MAXMARKNUMBER;
for(i=0; i<MAXMARKNUMBER; i++)
{
pSrchBox->MarkSrchNumStr[i].crColor=239;
pSrchBox->MarkSrchNumStr[i].strAccessory=STR_ARROW_NOTHING;
pSrchBox->MarkSrchNumStr[i].uFormat=DT_SINGLELINE|DT_VCENTER|DT_CENTER|DT_CHARCLIP;
pSrchBox->MarkSrchNumStr[i].rect.left=pSrchBox->upleft_x+55+ i*22;
pSrchBox->MarkSrchNumStr[i].rect.top= pSrchBox->upleft_y-16+4;
pSrchBox->MarkSrchNumStr[i].rect.right=pSrchBox->MarkSrchNumStr[i].rect.left+12;
pSrchBox->MarkSrchNumStr[i].rect.bottom=pSrchBox->upleft_y+56;
if(Bookmark(i+1,BOOKMARK_PLAYENABLE)==TRUE)
pSrchBox->MarkSrchNumStr[i].strID=RS_MPLAYER_1+i;
else
pSrchBox->MarkSrchNumStr[i].strID=RS_MPLAYER_HYPHEN;
LoadText(pSrchBox->MarkSrchNumStr[i].strID, pSrchBox->MarkSrchNumStr[i].str,30);
}
pSrchBox->highlightNum=Bookmark(MAXMARKNUMBER, BOOKMARK_NEXTVALIDNUM)-1;
pSrchBox->MarkSrchNumStr[pSrchBox->highlightNum].strAccessory=STR_ARROW_RL_SHOW;
pSrchBox->MarkSrchNumStr[pSrchBox->highlightNum].crColor=233;
}
void DrawMarksrchBox(HDC hdc,const lpMarkSrch srchBox)
{
BYTE i;
RECT bsRect;
//added by gushun
RECT TempRect;
COLORREF clText, clBk, clTopEdge, clBotEdge, clLittleBk;
clBk = GetColorInDef256Palette(MODEBOX_COLOURE_BK);
clTopEdge = GetColorInDef256Palette(MODEBOX_COLOURE_TOPEDGE);
clBotEdge = GetColorInDef256Palette(MODEBOX_COLOURE_BOTEDGE);
clText = GetColorInDef256Palette(MODEBOX_COLOURE_TEXT);
clLittleBk = GetColorInDef256Palette(MODEBOX_COLOURE_LITTLEBK);
//added by gushun
//draw box rect.
SetRect(&bsRect, srchBox->upleft_x,srchBox->upleft_y, srchBox->upleft_x+srchBox->width,
srchBox->upleft_y+srchBox->high);
//modyfied by gushun
// GUI_CreateLeftMidRightBitmap(hdc,&bsRect,IM_GUI_ICON_BACK,IM_GUI_ICON_BACK,IM_GUI_ICON_BACK,TRUE);
GUI_CreateButtonControl(hdc, &bsRect, clBk, clTopEdge, clBotEdge, clText, "", NORMAL_STRING, 0, 0);
TempRect.left = MODELITTLEBOXLEFT;
TempRect.top = MODELITTLEBOXTOP;
TempRect.right = MODELITTLEBOXWRIGHT;
TempRect.bottom = MODELITTLEBOXBOTTOM;
GUI_CreateButtonControl(hdc, &TempRect, clLittleBk, clLittleBk, clLittleBk, clLittleBk, "", NORMAL_STRING, 0, 0);
//modyfied by gushun
//draw bottom side of box
#if 0
DrawRectBottEdge(hdc,srchBox);
#endif
//draw bmp
DrawBaseBmp(hdc,&(srchBox->MarkSrchBitmap));
//draw string
for(i=0;i<srchBox->StrNums;i++)
DrawBaseStr(hdc,&(srchBox->MarkSrchNumStr[i]));
}
void spellBoxWithBkbmp(HDC hdc,LPRECT box,lpBaseBmp bkbmp)
{
RECT membox;
HBITMAP hbmp;
WORD width,high;
WORD i,nums,desX;
width=box->right-box->left+1;
high=box->bottom-box->top+1;
nums=width/(bkbmp->width);
//hbmp=LoadBitmap(NULL,GET_IMNAME(bkbmp->BmpID));
for(i=0;i<nums;i++)
{
//desX=box->left+i*bkbmp->width;
desX=box->left+i*1; //by gushun
membox.left=desX;
membox.top=MODELITTLEBOXTOP;
membox.right=membox.left+width;
membox.bottom=membox.top+MODELITTLEBOXHEIGHT;
GUI_CreateButtonControl(gui_hdc, &membox, GetColorInDef256Palette(MODEBOX_COLOURE_LITTLEBK), GetColorInDef256Palette(MODEBOX_COLOURE_LITTLEBK), GetColorInDef256Palette(MODEBOX_COLOURE_LITTLEBK), GetColorInDef256Palette(MODEBOX_COLOURE_LITTLEBK), "", NORMAL_STRING, 0, 0);
//SetImage(hdc, desX,box->top,bkbmp->width,bkbmp->height,hbmp,0,0,2,56);
//TransparentImage(hdc, desX, box->top, 0, 0, hbmp, 0, 0, bkbmp->width, bkbmp->height, GetColorInDef256Palette(255));
}
DeleteObject((HGDIOBJ)hbmp);
//BitBlt(hdc, box->left, box->top, width, high, memhdc, 0, 0, SRCCOPY)
}
/*----------------------------------------------------------------------------
* Function name: ShowMarkSearch
* Arguments:
* Return value: None
* Remark: This function show mark search change window
*----------------------------------------------------------------------------*/
WORD ShowMarkSearch(WORD wCommand)
{
WORD wTotalBmPoint;
int i,number;
WORD wRes=0;
//MarkSrch marksearch;
static BYTE leftcur[4]={0xe0,0x10,0x00,0x00};
static BYTE rightcur[4]={0xe0,0x11,0x00,0x00};
BYTE bmstr[100];
wTotalBmPoint=Bookmark(NULL,BOOKMARK_GETNUMS);
switch (wCommand)
{
case BOOKMARK_OSD_INIT:
setMarkSrchPara(&marksearch);
DrawMarksrchBox(gui_hdc,&marksearch);
break;
case BOOKMARK_OSD_LEFT:
marksearch.MarkSrchNumStr[marksearch.highlightNum].crColor=239;
marksearch.MarkSrchNumStr[marksearch.highlightNum].strAccessory=STR_ARROW_HIDE;
DrawBaseStr(gui_hdc,&(marksearch.MarkSrchNumStr[marksearch.highlightNum]));
marksearch.highlightNum=Bookmark(marksearch.highlightNum+1,BOOKMARK_PREVALIDNUM)-1;
marksearch.MarkSrchNumStr[marksearch.highlightNum].crColor=233;
marksearch.MarkSrchNumStr[marksearch.highlightNum].strAccessory=STR_ARROW_RL_SHOW;
DrawBaseStr(gui_hdc,&(marksearch.MarkSrchNumStr[marksearch.highlightNum]));
break;
case BOOKMARK_OSD_RIGHT:
marksearch.MarkSrchNumStr[marksearch.highlightNum].crColor=239;
marksearch.MarkSrchNumStr[marksearch.highlightNum].strAccessory=STR_ARROW_HIDE;
DrawBaseStr(gui_hdc,&(marksearch.MarkSrchNumStr[marksearch.highlightNum]));
marksearch.highlightNum=Bookmark(marksearch.highlightNum+1,BOOKMARK_NEXTVALIDNUM)-1;
marksearch.MarkSrchNumStr[marksearch.highlightNum].crColor=233;
marksearch.MarkSrchNumStr[marksearch.highlightNum].strAccessory=STR_ARROW_RL_SHOW;
DrawBaseStr(gui_hdc,&(marksearch.MarkSrchNumStr[marksearch.highlightNum]));
break;
case BOOKMARK_OSD_NUMBER1:
case BOOKMARK_OSD_NUMBER2:
case BOOKMARK_OSD_NUMBER3:
case BOOKMARK_OSD_NUMBER4:
case BOOKMARK_OSD_NUMBER5:
case BOOKMARK_OSD_NUMBER6:
case BOOKMARK_OSD_NUMBER7:
case BOOKMARK_OSD_NUMBER8:
case BOOKMARK_OSD_NUMBER9:
number=wCommand-BOOKMARK_OSD_NUMBER0;
marksearch.MarkSrchNumStr[marksearch.highlightNum].crColor=239;
marksearch.MarkSrchNumStr[marksearch.highlightNum].strAccessory=STR_ARROW_HIDE;
DrawBaseStr(gui_hdc,&(marksearch.MarkSrchNumStr[marksearch.highlightNum]));
//marksearch.highlightNum++;
marksearch.highlightNum=number-1;
marksearch.MarkSrchNumStr[marksearch.highlightNum].crColor=233;
marksearch.MarkSrchNumStr[marksearch.highlightNum].strAccessory=STR_ARROW_RL_SHOW;
DrawBaseStr(gui_hdc,&(marksearch.MarkSrchNumStr[marksearch.highlightNum]));
break;
case BOOKMARK_OSD_CLEAR:
wRes=marksearch.highlightNum+1;
marksearch.MarkSrchNumStr[marksearch.highlightNum].crColor=239;
marksearch.MarkSrchNumStr[marksearch.highlightNum].strAccessory=STR_ARROW_HIDE;
marksearch.MarkSrchNumStr[marksearch.highlightNum].strID=RS_MPLAYER_HYPHEN;
GetModeStr(marksearch.MarkSrchNumStr[marksearch.highlightNum].strID,0,0,marksearch.MarkSrchNumStr[marksearch.highlightNum].str);
spellBoxWithBkbmp(gui_hdc,&( marksearch.MarkSrchNumStr[marksearch.highlightNum].rect), &(marksearch.bkbmp));
DrawBaseStr(gui_hdc,&(marksearch.MarkSrchNumStr[marksearch.highlightNum]));
//marksearch.highlightNum--;
marksearch.highlightNum=Bookmark(marksearch.highlightNum+1,BOOKMARK_NEXTVALIDNUM)-1;
if(Bookmark(NULL,BOOKMARK_GETNUMS)>1)
{
marksearch.MarkSrchNumStr[marksearch.highlightNum].crColor=233;
marksearch.MarkSrchNumStr[marksearch.highlightNum].strAccessory=STR_ARROW_RL_SHOW;
GetModeStr(marksearch.MarkSrchNumStr[marksearch.highlightNum].strID,0,0,marksearch.MarkSrchNumStr[marksearch.highlightNum].str);
DrawBaseStr(gui_hdc,&(marksearch.MarkSrchNumStr[marksearch.highlightNum]));
}
break;
case BOOKMARK_OSD_PLAY:
wRes=marksearch.highlightNum+1;
break;
default:
break;
}
return(wRes);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -