⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bmarkoutlook.c

📁 M3355的源代码
💻 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 + -