Exemplo n.º 1
0
LRESULT CExtractDlg::OnNMClickLinkMolCount(int idCtrl, LPNMHDR pNMHDR, BOOL& bHandled)
{
	PNMLINK link = (PNMLINK) pNMHDR;
	switch(link->item.iLink)
	{
	case 0:		// Extract Count
		DisplayGroup(1);
		break;

	case 1:		// Select Output Directory
		if(!SUCCEEDED(Utils::DoFolderDialog(m_hWnd, _T("Extract Molecules to Folder..."), 
			m_params.folderPath, m_params.folderPath)))
		{
			//TODO: log
		}
		break;

	case 3:		// File Format
		DisplayGroup(2);
		break;

	case 2:
	case 4:
		POINT point;
		if(GetCursorPos(&point))
		{
			HMENU hMenu = LoadMenu(_AtlBaseModule.m_hInst, MAKEINTRESOURCE(IDR_EXTRACTMENU));
			if(hMenu)
			{
				int subMenuId = (link->item.iLink == 2) ? 0 : 1;
				HMENU hSubMenu = GetSubMenu(hMenu, subMenuId);

				//WORKAROUND: To be removed when provider issues with RXN -> CML, CDXML are fixed
				// disable CML,CDXML if source is reaction to avoid crash due to provider issue
				if((m_params.exportFormat == fmtRXNV2) || (m_params.exportFormat == fmtRXNV3))
				{
					EnableMenuItem(hSubMenu, ID_EXTRACTFORMAT_CML, MF_DISABLED);
					EnableMenuItem(hSubMenu, ID_EXTRACTFORMAT_CDXML, MF_DISABLED);
				}

				TrackPopupMenuEx(hSubMenu, TPM_LEFTALIGN, point.x, point.y, m_hWnd, NULL);
				DestroyMenu(hMenu);
			}
		}
		break;
	}

	UpdateLinkText();

	return 0;
}
Exemplo n.º 2
0
void menu_first_display(void)// 必须在MenuInit函数之后调用
{
	clear_block(0,0,192,64);
	update_disp_data(0,0,192,64);
	DisplayGroup(gsnCurMGrp);
	DisplayOneState(0,gByteData[VAL_DSCS_MODE]);
}
Exemplo n.º 3
0
void MenuInit(void)
{
  //int i;// yasirLiang add in20160603
  unsigned char MenuLang;

  ByteDataGet(VAL_MENU_LANG,&MenuLang);
      
  if(MenuLang!=ENGLISH)
  {
    MenuLang = CHINESE;
    ByteDataSave(VAL_MENU_LANG,MenuLang);
  }
  else
  {
    ChangeLanguage(ENGLISH);
  }
	gPresetTmnSelPro.RunFlag = 0;
	gPresetTmnSelPro.Addr = FULL_VIEW_ADDR;
	gsnCurMGrp=0;
	ByteDataInit();
#if 0
	sleep(1);
	clear_block(0,0,192,64);
  	update_disp_data(0,0,192,64);
	DisplayGroup(gsnCurMGrp);
#if 0 // yasir change in 2016-4-7
  DisplayOneState(0,PPT_MODE);
#else
  DisplayOneState(0,gByteData[VAL_DSCS_MODE]);
#endif

	sleep(1);
#endif
}
Exemplo n.º 4
0
void ItemSelected(short snMGSeq)
{
    TMenu *pMenu;
    short usNew;
    //unsigned char Index;// yasirliang change in 20160603
   // int i; // yasirliang change in 20160603
    unsigned char MenuLang;

    
    ByteDataGet(VAL_MENU_LANG,&MenuLang);
    usNew = snMGSeq;
	  if(gMG[snMGSeq].Type==ST_CMN)	//普通菜单项
    {
        pMenu = gMG[snMGSeq].FirstItem + gMG[snMGSeq].Position;
        if(pMenu->Type == MT_MENU)
        {
          if(pMenu->Link!=MGS_NONE)
          {
            usNew = pMenu->Link;
            if(gMG[snMGSeq].Level > gMG[usNew].Level)
                gMG[snMGSeq].Position = 0;

          }
          if(pMenu->fpMenuDo != NULL)
              pMenu->fpMenuDo(0);
	      //pMenu->fpMenuDo(NULL);
        }
        else if(pMenu->Type == MT_SWITCH)	//语言切换
        {
          if(MenuLang == CHINESE)
              ChangeLanguage(ENGLISH);
          else
              ChangeLanguage(CHINESE);

          usNew = 0;
          gMG[usNew].Position = 0;
			
        }
        else	if((pMenu->Type==MT_YESNO)||(pMenu->Type==MT_ONOFF)) //不跳转,直接改变值
        {
          gMG[snMGSeq].ss.BitState ^= (1<<gMG[snMGSeq].Position);
          if(pMenu->fpMenuDo != NULL)
              pMenu->fpMenuDo(gMG[snMGSeq].ss.BitState&(1<<gMG[snMGSeq].Position));
          DisplayMItem(gMG+snMGSeq,gMG[snMGSeq].Position%3,gMG[snMGSeq].Position,MD_REVERSE);
            
            return;
        }
        else
        {
          // 记录当前页
          if((gsnCurMGrp==0)&&(pMenu->Link!=0))
          {
            UseDisSet(CPT_USE,BOOL_TRUE);
          }
          gsnCurMGrp = pMenu->Link;
					//DEBUG_INFO("gsnCurMGrp=%d,gMG[gsnCurMGrp].Position=%d\n",gsnCurMGrp,gMG[gsnCurMGrp].Position);
          DisplayMItem(gMG+gsnCurMGrp,-1,gMG[gsnCurMGrp].Position,MD_NORMAL);
          if(ENGLISH==MenuLang)
          {
            clear_block(0,10,191,39);
            update_disp_data(0,10,191,39);
          }
          else
          {
            clear_block(0,16,118,63);
            update_disp_data(0,16,118,63);
          }
          RenewMenuValue(pMenu->Link,0);
          MenuScroll(pMenu->Link,0);
          return;
        }
        
    }
    else
    {
      usNew = gMG[snMGSeq].Count;
			//DEBUG_INFO("snMGSeq=%d,usNew=%d\n",snMGSeq,usNew);
      if(gMG[snMGSeq].Type==ST_VALUE)
      {
        SendMainState(0,NULL,0);
      }
      else if(gMG[snMGSeq].Type==ST_MODE)
      {
        pMenu = gMG[usNew].FirstItem + gMG[usNew].Position;
        if(pMenu->fpMenuDo!=NULL)
        {
          pMenu->fpMenuDo(gMG[snMGSeq].Position);
        }    
        DisplayOneState(0,gMG[snMGSeq].Position);
        SendMainState(0,NULL,0);
      }
    }
    DisplayGroup(usNew);


    // 显示当前页
//    DisplayGroup(usNew);

    // 记录当前页
    if((usNew==0)&&(gsnCurMGrp>0))
    {
      UseDisSet(CPT_USE,BOOL_FALSE);
    }
    else if((gsnCurMGrp==0)&&(usNew>0))
    {
      UseDisSet(CPT_USE,BOOL_TRUE);
    }
    gsnCurMGrp = usNew;
}