Esempio n. 1
0
File: Menu.cpp Progetto: bks/qz7
bool CMenu::InsertItem(UINT itemIndex, bool byPosition, const CMenuItem &item)
{
  #ifndef _UNICODE
  if (!g_IsNT)
  {
    MENUITEMINFOA si;
    ConvertItemToSysForm(item, si);
    AString s;
    if (item.IsString())
    {
      s = GetSystemString(item.StringValue);
      si.dwTypeData = (LPTSTR)(LPCTSTR)s;
    }
    return InsertItem(itemIndex, byPosition, &si);
  }
  else
  #endif
  {
    MENUITEMINFOW si;
    ConvertItemToSysForm(item, si);
    if (item.IsString())
      si.dwTypeData = (LPWSTR)(LPCWSTR)item.StringValue;
    return InsertItem(itemIndex, byPosition, &si);
  }
}
Esempio n. 2
0
//------------------------------------------------------------------------
COptionMenu* COptionMenu::getSubMenu (int32_t idx) const
{
	CMenuItem* item = getEntry (idx);
	if (item)
		return item->getSubmenu ();
	return 0;
}
Esempio n. 3
0
// 1.) because NPP use lets IDs for  menu items 
// and we can not get new IDs for our dynamic menu items. To solve 
// this problem we switch menu message handling from WM_COMMAND to WM_MENUCOMMAND
// see 2.) and 3.)
LRESULT CALLBACK CEditor::WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){

	if (message == WM_MENUCOMMAND){
		CMenuItem* mItem = CMenuItem::GetInstance((HMENU)lParam, wParam);
		if (mItem){ 
			// here we have our menu item
			mItem->call();
		}else{ 
			// we have menu items from NPP
			// simulate WM_COMMAND, NPP handles his menu items self

			MENUITEMINFO mii;
			mii.cbSize = sizeof(mii);
			mii.fMask = MIIM_ID | MIIM_DATA;
			// 2.) WM_MENUCOMMAND + submenu handle and item position help us to
			// get MenuItemInfo without using of menu item ID
			BOOL res = GetMenuItemInfo((HMENU)lParam, wParam, TRUE, &mii);
			if (res)
				::SendMessage(hwnd, WM_COMMAND,mii.wID,0);
		}
	} else if (message == WM_INITMENUPOPUP){
		CMenu* menu = CMenu::GetInstance((HMENU)wParam);
		if (menu){
			menu->oninitpopup();
			return NULL;
		}
	}	

	WNDPROC oldWndProc = (WNDPROC)GetProp(hwnd, SUBCLASSING);

	return CallWindowProc(oldWndProc, hwnd, message, wParam, lParam);

}
Esempio n. 4
0
//------------------------------------------------------------------------
bool COptionMenu::setCurrent (int32_t index, bool countSeparator)
{
	CMenuItem* item = 0;
	if (countSeparator)
	{
		item = getEntry (index);
		if (!item || (item && item->isSeparator ()))
			return false;
		currentIndex = index;
	}
	else
	{
		int32_t i = 0;
		CMenuItemIterator it = menuItems->begin ();
		while (it != menuItems->end ())
		{
			if (i > index)
				break;
			if ((*it)->isSeparator ())
				index++;
			it++;
			i++;
		}
		currentIndex = index;
		item = getEntry (currentIndex);
	}
	if (item && style & (kMultipleCheckStyle & ~kCheckStyle))
		item->setChecked (!item->isChecked ());
	
	// to force the redraw
	setDirty ();

	return true;
}
Esempio n. 5
0
//------------------------------------------------------------------------
bool COptionMenu::isCheckEntry (int32_t index) const
{
	CMenuItem* item = getEntry (index);
	if (item && item->isChecked ())
		return true;
	return false;
}
Esempio n. 6
0
//------------------------------------------------------------------------
COptionMenu* UIDescriptionTestController::createContextMenu (const CPoint& pos, VST3Editor* editor)
{
	Parameter* tabParameter = getParameterObject (20000);
	if (tabParameter)
	{
		UIDescriptionTestControllerMenuHandler* menuHandler = new UIDescriptionTestControllerMenuHandler (tabParameter);
		COptionMenu* menu = new COptionMenu ();
		menu->setStyle (kMultipleCheckStyle);
		for (int32 i = 0; i <= tabParameter->getInfo ().stepCount; i++)
		{
			String128 valueString;
			tabParameter->toString (tabParameter->toNormalized (i), valueString);
			String str (valueString);
			str.toMultiByte (kCP_Utf8);
			CMenuItem* item = menu->addEntry (new CCommandMenuItem (str.text8 (), i, menuHandler));
			if (tabParameter->getNormalized () == tabParameter->toNormalized (i))
				item->setChecked (true);
		}
		COptionMenu* mainMenu = new COptionMenu ();
		mainMenu->addEntry (new CMenuItem ("Show Tab"))->setSubmenu (menu);
		menuHandler->forget ();
		return mainMenu;
	}
	return 0;
}
Esempio n. 7
0
//------------------------------------------------------------------------
void COptionMenu::draw (CDrawContext *pContext)
{
	CMenuItem* item = getEntry (currentIndex);
	drawBack (pContext, inPopup ? bgWhenClick : 0);
	if (item)
		drawPlatformText (pContext, CString (item->getTitle ()).getPlatformString ());
	setDirty (false);
}
Esempio n. 8
0
	foreach (QGraphicsItem* pItem,m_ContextItems)
	{
		CMenuItem* pMenuItem = dynamic_cast<CMenuItem*>(pItem);
		if (pMenuItem)
		{
			pMenuItem->setScaleFactor(m_xFactor,m_yFactor);
		}
	}
Esempio n. 9
0
void CMenu::ItemChanged( int a_iItemCode, int a_iValue, CMenuItem* a_poMenuItem )
{
	debug( "CMenu::ItemChanged( %d, %d )\n", a_iItemCode, a_iValue );
	
	switch ( a_iItemCode )
	{
		case MENU_NUM_PLAYERS:
			g_oState.m_iNumPlayers = a_iValue;
			break;

		case MENU_TEAM_MODE:
		{
			g_oState.m_enTeamMode = (SState::TTeamModeEnum) a_iValue;
			CMenuItem* poItem;
			poItem = GetMenuItem( MENU_TEAM_SIZE );
			if ( poItem ) poItem->SetEnabled( SState::Team_CUSTOM==g_oState.m_enTeamMode );
			poItem = GetMenuItem( MENU_TEAM_MULTISELECT );
			if ( poItem ) poItem->SetEnabled( SState::Team_CUSTOM==g_oState.m_enTeamMode );
			break;
		}

		case MENU_TEAM_SIZE:
			g_oState.m_iTeamSize = a_iValue;
			break;

		case MENU_TEAM_MULTISELECT:
			g_oState.m_bTeamMultiselect = a_iValue;
			break;

		case MENU_MUSIC_VOLUME:
			g_oState.m_iMusicVolume = a_iValue;
			Audio->SetMusicVolume( a_iValue );
			break;
			
		case MENU_SOUND_VOLUME:
			g_oState.m_iSoundVolume = a_iValue;
			break;
			
		case MENU_ROUND_LENGTH:
			g_oState.m_iRoundLength = a_iValue;
			break;
			
		case MENU_GAME_SPEED:
			g_oState.m_iGameSpeed = a_iValue;
			break;
			
		case MENU_TOTAL_HIT_POINTS:
			g_oState.m_iHitPoints = a_iValue;
			break;
		
		case MENU_LANGUAGE:
			g_oState.SetLanguage( g_ppcLanguageCodes[ a_iValue ] );
			Clear();
			Draw();
			break;
	} // end of switch a_iItemCode
}
Esempio n. 10
0
static void MyChangeMenu(HMENU menuLoc, int level, int menuIndex)
{
  CMenu menu;
  menu.Attach(menuLoc);
  for (int i = 0;; i++)
  {
    CMenuItem item;
    item.fMask = Get_fMask_for_String() | MIIM_SUBMENU | MIIM_ID;
    item.fType = MFT_STRING;
    if (!menu.GetItem(i, true, item))
      break;
    {
      UString newString;
      if (item.hSubMenu)
      {
        UInt32 langID = 0;
        if (level == 1 && menuIndex == kMenuIndex_Bookmarks)
          langID = kAddToFavoritesLangID;
        else
        {
          MyChangeMenu(item.hSubMenu, level + 1, i);
          if (level == 1 && menuIndex == kMenuIndex_View)
            langID = kToolbarsLangID;
          else if (level == 0 && i < ARRAY_SIZE(kTopMenuLangIDs))
            langID = kTopMenuLangIDs[i];
          else
            continue;
        }
        LangString_OnlyFromLangFile(langID, newString);
        if (newString.IsEmpty())
          continue;
      }
      else
      {
        if (item.IsSeparator())
          continue;
        int langPos = FindLangItem(item.wID);

        // we don't need lang change for CRC items!!!
        LangString_OnlyFromLangFile(langPos >= 0 ? kIDLangPairs[langPos].LangID : item.wID, newString);
        if (newString.IsEmpty())
          continue;

        int tabPos = item.StringValue.ReverseFind(L'\t');
        if (tabPos >= 0)
          newString += item.StringValue.Ptr(tabPos);
      }
      {
        item.StringValue = newString;
        item.fMask = Get_fMask_for_String();
        item.fType = MFT_STRING;
        menu.SetItem(i, true, item);
      }
    }
  }
}
Esempio n. 11
0
//------------------------------------------------------------------------
bool COptionMenu::checkEntry (int32_t index, bool state)
{
	CMenuItem* item = getEntry (index);
	if (item)
	{
		item->setChecked (state);
		return true;
	}
	return false;
}
Esempio n. 12
0
void CMenu::AddOkCancel( int a_iOkCode )
{
	SDL_Rect oRect;
	oRect.x = 0; oRect.w = 150;
	oRect.y = gamescreen->h - 50; oRect.h = sge_TTF_FontHeight( inkFont );

	CMenuItem* poItem = AddMenuItem( "~OK", SDLK_o, a_iOkCode );
	poItem->SetPosition( oRect );
	
//	poItem = AddMenuItem( "Cancel", SDLK_UNKNOWN, 0 );
	oRect.x = gamescreen->w - 150;
	poItem->SetPosition( oRect );
}
Esempio n. 13
0
//------------------------------------------------------------------------
int32_t COptionMenu::onKeyDown (VstKeyCode& keyCode)
{
	if (keyCode.modifier == 0 && keyCode.character == 0)
	{
		if (keyCode.virt == VKEY_RETURN)
		{
			CBaseObjectGuard guard (this);
			if (bgWhenClick)
				invalid ();
			popup ();
			if (bgWhenClick)
				invalid ();
			return 1;
		}
		if (!(style & (kMultipleCheckStyle & ~kCheckStyle)))
		{
			if (keyCode.virt == VKEY_UP)
			{
				int32_t value = (int32_t)getValue ()-1;
				if (value >= 0)
				{
					CMenuItem* entry = getEntry (value);
					while (entry && (entry->isSeparator () || entry->isTitle () || !entry->isEnabled () || entry->getSubmenu ()))
						entry = getEntry (--value);
					if (entry)
					{
						beginEdit ();
						setValue ((float)value);
						lastResult = (int32_t)getValue ();
						valueChanged ();
						endEdit ();
						invalid ();
					}
				}
				return 1;
			}
			if (keyCode.virt == VKEY_DOWN)
			{
				int32_t value = (int32_t)getValue ()+1;
				if (value < getNbEntries ())
				{
					CMenuItem* entry = getEntry (value);
					while (entry && (entry->isSeparator () || entry->isTitle () || !entry->isEnabled () || entry->getSubmenu ()))
						entry = getEntry (++value);
					if (entry)
					{
						beginEdit ();
						setValue ((float)value);
						lastResult = (int32_t)getValue ();
						valueChanged ();
						endEdit ();
						invalid ();
					}
				}
				return 1;
			}
		}
	}
	return CParamDisplay::onKeyDown (keyCode);
}
Esempio n. 14
0
CMenuItem::CMenuItem(const CMenuItem &CM)
    : CField( CM ), Label( CM.Label )
{
    _selected = CM.selected();
    CField::_data = &_format;
    Label.frame(this);
}
Esempio n. 15
0
//------------------------------------------------------------------------
void COptionMenu::setValue (float val)
{
	if ((int32_t)val < 0 || (int32_t)val >= getNbEntries ())
		return;
	
	currentIndex = (int32_t)val;
	if (style & (kMultipleCheckStyle & ~kCheckStyle))
	{
		CMenuItem* item = getCurrent ();
		if (item)
			item->setChecked (!item->isChecked ());
	}
	CParamDisplay::setValue (val);
	
	// to force the redraw
	setDirty ();
}
Esempio n. 16
0
// 获取当前处于活动状态的子菜单项
CMenuItem* CDuiMenu::GetHoverMenuItem()
{
	for (size_t i = 0; i < m_vecControl.size(); i++)
	{
		CControlBase * pControlBase = m_vecControl[i];
		if(pControlBase->IsClass(CMenuItem::GetClassName()))	// 如果是MenuItem类型控件
		{
			CMenuItem* pMenuItem = (CMenuItem*)pControlBase;
			if(pMenuItem->IsHover())
			{
				return pMenuItem;
			}
		}
	}

	return NULL;
}
Esempio n. 17
0
// 刷新父控件下面所有同一个组的RadioButton控件的状态
BOOL CMenuItem::ResetGroupCheck()
{
	CDuiObject* pParentObj = GetParent();
	if(pParentObj == NULL)
	{
		return FALSE;
	}

	vector<CControlBase*>* pvecControl = NULL;
	if(pParentObj->IsClass(_T("dlg")))
	{
		CDlgBase* pDlg = static_cast<CDlgBase*>(pParentObj);
		pvecControl = pDlg->GetControls();
	}else
	if(pParentObj->IsClass(_T("popup")))
	{
		CDlgPopup* pDlg = static_cast<CDlgPopup*>(pParentObj);
		pvecControl = pDlg->GetControls();
	}else
	{
		CControlBase* pControlBase = static_cast<CControlBase*>(pParentObj);
		pvecControl = pControlBase->GetControls();
	}

	if(pvecControl == NULL)
	{
		return FALSE;
	}

	for(int i=0; i<(int)pvecControl->size(); i++)
	{
		CControlBase* pControlBase = pvecControl->at(i);
		if(pControlBase->IsClass(CMenuItem::GetClassName()) && pControlBase->GetVisible() && !pControlBase->GetDisable())
		{
			CMenuItem* pControl = static_cast<CMenuItem*>(pControlBase);
			if((pControl->GetGroupName() == m_strGroupName) && (pControl != this))
			{
				// 重置控件状态
				pControl->SetControlCheck(FALSE);
			}
		}
	}

	return TRUE;
}
Esempio n. 18
0
// 初始化
void CDuiHandlerTrayMenu::OnInit()
{
  {
     CMenuItem* pDuiMenuItem = (CMenuItem*) GetControl(_T("menuitem.radio"));
     if(pDuiMenuItem)
     {
       pDuiMenuItem->SetDuiHandler(this);
     }
  }
 

  {
    this->SetTitle(_T("close_app"),_T("退出APP"));
  }

  {
    CMenuItem* pDuiMenuItem = (CMenuItem*)GetControl(_T("menuitem_checkbox"));
    if(pDuiMenuItem)
    {
      pDuiMenuItem->SetCheck(m_checked);
    } 
  }

  {
    CMenuItem* pDuiMenuItem = (CMenuItem*)GetControl(m_radio_name);
    if(pDuiMenuItem)
    {
      pDuiMenuItem->ResetGroupCheck();
      pDuiMenuItem->SetCheck(TRUE);
    } 
  }


}
Esempio n. 19
0
 CMenu& CMenu::add(const char* text, bool selected) {
     CMenuItem* newMenuItem = new CMenuItem(selected, _format, text, 1, 1, width() - 2);
     newMenuItem->frame(this);
     if (_tail) {
         MNode* newNode = new MNode(newMenuItem, _tail->_index + 1, _tail);
         _tail->_next = newNode;
         _tail = newNode;
     }
     else {
         _head = _tail = new MNode(newMenuItem, 0, (MNode*)0);
         _first = _cur = _head;
     }
     if (selected) {
         selectedIndex(_tail->_index);
     }
     _count++;
     return *this;
 }
Esempio n. 20
0
// 获取当前处于活动状态的子菜单项(根据鼠标位置查找)
CMenuItem* CDuiMenu::GetMenuItemWithPoint(CPoint point)
{
	for (size_t i = 0; i < m_vecControl.size(); i++)
	{
		CControlBase * pControlBase = m_vecControl[i];
		if(pControlBase->IsClass(CMenuItem::GetClassName()))	// 如果是MenuItem类型控件
		{
			CMenuItem* pMenuItem = (CMenuItem*)pControlBase;
			CRect rc = pMenuItem->GetRect();
			if(rc.PtInRect(point))
			{
				return pMenuItem;
			}
		}
	}

	return NULL;
}
Esempio n. 21
0
// 获取所在Radio组选择的控件的值
CString CMenuItem::GetGroupValue()
{
	CDuiObject* pParentObj = GetParent();
	if(pParentObj == NULL)
	{
		return _T("");
	}

	vector<CControlBase*>* pvecControl = NULL;
	if(pParentObj->IsClass(_T("dlg")))
	{
		CDlgBase* pDlg = static_cast<CDlgBase*>(pParentObj);
		pvecControl = pDlg->GetControls();
	}else
	if(pParentObj->IsClass(_T("popup")))
	{
		CDlgPopup* pDlg = static_cast<CDlgPopup*>(pParentObj);
		pvecControl = pDlg->GetControls();
	}else
	{
		CControlBase* pControlBase = static_cast<CControlBase*>(pParentObj);
		pvecControl = pControlBase->GetControls();
	}

	if(pvecControl == NULL)
	{
		return _T("");
	}

	for(int i=0; i<(int)pvecControl->size(); i++)
	{
		CControlBase* pControlBase = pvecControl->at(i);
		if(pControlBase->IsClass(CMenuItem::GetClassName()) && pControlBase->GetVisible() && !pControlBase->GetDisable())
		{
			CMenuItem* pControl = static_cast<CMenuItem*>(pControlBase);
			if((pControl->GetGroupName() == m_strGroupName) && pControl->GetCheck())
			{
				return pControl->GetValue();
			}
		}
	}

	return _T("");
}
Esempio n. 22
0
File: Menu.cpp Progetto: bks/qz7
bool CMenu::GetItem(UINT itemIndex, bool byPosition, CMenuItem &item)
{
  const UINT kMaxSize = 512;
  #ifndef _UNICODE
  if (!g_IsNT)
  {
    CHAR s[kMaxSize + 1];
    MENUITEMINFOA si;
    ConvertItemToSysForm(item, si);
    if (item.IsString())
    {
      si.cch = kMaxSize;
      si.dwTypeData = s;
    }
    if (GetItemInfo(itemIndex, byPosition, &si))
    {
      ConvertItemToMyForm(si, item);
      if (item.IsString())
        item.StringValue = GetUnicodeString(s);
      return true;
    }
  }
  else
  #endif
  {
    wchar_t s[kMaxSize + 1];
    MENUITEMINFOW si;
    ConvertItemToSysForm(item, si);
    if (item.IsString())
    {
      si.cch = kMaxSize;
      si.dwTypeData = s;
    }
    if (GetItemInfo(itemIndex, byPosition, &si))
    {
      ConvertItemToMyForm(si, item);
      if (item.IsString())
        item.StringValue = s;
      return true;
    }
  }
  return false;
}
Esempio n. 23
0
void LoadFileMenu(HMENU hMenu, int startPos, bool programMenu,
    bool isFsFolder, int numItems, bool allAreFiles)
{
  CMenu destMenu;
  destMenu.Attach(hMenu);

  UString diffPath;
  ReadRegDiff(diffPath);
  
  int numRealItems = startPos;
  for (int i = 0;; i++)
  {
    CMenuItem item;

    item.fMask = MIIM_STATE | MIIM_ID | Get_fMaskForFTypeAndString();
    item.fType = MFT_STRING;
    if (!g_FileMenu.GetItem(i, true, item))
      break;
    {
      if (!programMenu && item.wID == IDCLOSE)
        continue;

      if (item.wID == IDM_FILE_DIFF && diffPath.IsEmpty())
        continue;

      bool isOneFsFile = (isFsFolder && numItems == 1 && allAreFiles);
      bool disable = ((item.wID == IDM_FILE_SPLIT || item.wID == IDM_FILE_COMBINE) && !isOneFsFile);

      bool isBigScreen = NControl::IsDialogSizeOK(40, 200);

      if (!isBigScreen && (disable || item.IsSeparator()))
        continue;
      if (destMenu.InsertItem(startPos, true, item))
        startPos++;
      if (disable)
        destMenu.EnableItem(startPos - 1, MF_BYPOSITION | MF_GRAYED);

      if (!item.IsSeparator())
        numRealItems = startPos;
    }
  }
  destMenu.RemoveAllItemsFrom(numRealItems);
}
Esempio n. 24
0
CNetworkMenu::CNetworkMenu(): CMenu( "Network Play Setup" )
{
	m_bOK = false;
	m_bServer = g_oState.m_bServer;
	m_sHostname = g_oState.m_acLatestServer;
	m_sNick = g_oState.m_acNick;
	
	AddMenuItem( "Find an opponent on MortalNet", SDLK_UNKNOWN, MENU_MORTALNET );
	AddMenuItem( "START NETWORK GAME!", SDLK_UNKNOWN, MENU_CONNECT );
	m_poNickMenuItem = AddTextMenuItem( "Nickname: ", m_sNick.c_str(), MENU_NICK );
	AddEnumMenuItem( "Network mode: ", m_bServer ? 1 : 0, g_ppcServer, g_piServer, MENU_SERVER );
	m_poServerMenuItem = AddTextMenuItem( "Connect to: ", m_sHostname.c_str(), MENU_HOSTNAME );
	m_poServerMenuItem->SetEnabled(!m_bServer);
	
	CMenuItem* poItem = AddMenuItem( "Cancel", SDLK_UNKNOWN, MENU_CANCEL );
	SDL_Rect oRect;
	oRect.x = gamescreen->w - 150; oRect.w = 150;
	oRect.y = gamescreen->h - 50; oRect.h = 30;
	poItem->SetPosition( oRect );
}
Esempio n. 25
0
	bool changeNotify(const neutrino_locale_t OptionName, void *)
	{
		if (OptionName == LOCALE_TIMERLIST_APIDS_DFLT)
		{
			if (*o_dflt==0)
			{
				m_std->setActive(true);
				m_alt->setActive(true);
				m_ac3->setActive(true);
			}
			else
			{
				m_std->setActive(false);
				m_alt->setActive(false);
				m_ac3->setActive(false);
				*o_std=0;
				*o_alt=0;
				*o_ac3=0;
			}
		}
		else
		{
			if (*o_std || *o_alt || *o_ac3)
				*o_dflt=0;
		}
		return true;
	}
Esempio n. 26
0
//------------------------------------------------------------------------
CMenuItem::CMenuItem (const CMenuItem& item)
: title (0)
, flags (item.flags)
, keyCode (0)
, keyModifiers (0)
, virtualKeyCode (0)
, submenu (0)
, icon (0)
{
	setTitle (item.getTitle ());
	setIcon (item.getIcon ());
	if (item.getVirtualKeyCode ())
		setVirtualKey (item.getVirtualKeyCode (), item.getKeyModifiers ());
	else
		setKey (item.getKeycode (), item.getKeyModifiers ());
	setTag (item.getTag ());
	setSubmenu (item.getSubmenu ());
}
Esempio n. 27
0
bool CMenu::InsertItem(UINT itemIndex, bool byPosition, const CMenuItem &item)
{
  #ifndef _UNICODE
  if (!g_IsNT)
  {
    MENUITEMINFOA si;
    ConvertItemToSysForm(item, si);
    AString s;
    if (item.IsString())
    {
      s = GetSystemString(item.StringValue);
      si.dwTypeData = (LPTSTR)(LPCTSTR)s;
    }
    return InsertItem(itemIndex, byPosition, &si);
  }
  else
  #endif
  {
    MENUITEMINFOW si;
    ConvertItemToSysForm(item, si);
    if (item.IsString())
      si.dwTypeData = (LPWSTR)(LPCWSTR)item.StringValue;
    #ifdef UNDER_CE
    UINT flags = (item.fType & MFT_SEPARATOR) ? MF_SEPARATOR : MF_STRING;
    UINT id = item.wID;
    if ((item.fMask & MIIM_SUBMENU) != 0)
    {
      flags |= MF_POPUP;
      id = (UINT)item.hSubMenu;
    }
    if (!Insert(itemIndex, flags | (byPosition ? MF_BYPOSITION : MF_BYCOMMAND), id, item.StringValue))
      return false;
    return SetItemInfo(itemIndex, byPosition, &si);
    #else
    return InsertItem(itemIndex, byPosition, &si);
    #endif
  }
}
Esempio n. 28
0
//----------------------------------------------------------------------------------------------------
CMessageResult UIFocusSettingsController::notify (CBaseObject* sender, IdStringPtr message)
{
	if (message == UIDialogController::kMsgDialogButton1Clicked)
	{
		if (controls[kEnabledTag])
		{
			settings->setBooleanAttribute ("enabled", controls[kEnabledTag]->getValue () == controls[kEnabledTag]->getMax () ? true : false);
		}
		if (controls[kColorTag])
		{
			COptionMenu* menu = dynamic_cast<COptionMenu*>(controls[kColorTag]);
			CMenuItem* item = menu->getCurrent ();
			if (item)
				settings->setAttribute ("color", item->getTitle ());
		}
		if (controls[kWidthTag])
		{
			settings->setDoubleAttribute ("width", controls[kWidthTag]->getValue ());
		}
		return kMessageNotified;
	}
	return kMessageUnknown;
}
Esempio n. 29
0
void CMenu::FocusNext()
{

	CMenuItem* poItem = NULL;
	int iNextItem;
	
	for ( iNextItem = m_iCurrentItem+1; iNextItem < (int) m_oItems.size(); ++iNextItem )
	{
 		poItem = m_oItems[iNextItem];
		if ( poItem->GetEnabled() )
		{
			break;
		}
		poItem = NULL;
	}
	
	if ( NULL != poItem )
	{
		Audio->PlaySample("MENU_ITEM_SELECTION");
		m_oItems[m_iCurrentItem]->SetActive(false);
		m_oItems[iNextItem]->SetActive(true);
		m_iCurrentItem = iNextItem;
	}
}
Esempio n. 30
0
void CMenu::FocusPrev()
{
	CMenuItem* poItem = NULL;

	int iPrevItem;
	
	for ( iPrevItem = m_iCurrentItem-1; iPrevItem >= 0; --iPrevItem )
	{
		poItem = m_oItems[iPrevItem];
		if ( poItem->GetEnabled() )
		{
			break;
		}
		poItem = NULL;
	}
	
	if ( NULL != poItem )
	{
		Audio->PlaySample("MENU_ITEM_SELECTION");
		m_oItems[m_iCurrentItem]->SetActive(false);
		m_oItems[iPrevItem]->SetActive(true);
		m_iCurrentItem = iPrevItem;
	}
}