コード例 #1
0
ファイル: MSPulldownMenu.C プロジェクト: PlanetAPL/a-plus
void MSPulldownMenu::right(void)
{
  MSMenuItem *ni, *mi=menuItem(selectedItem());
  if (mi!=0&&mi->cascade()==MSTrue)
   {
     mi->arm();
     mi->grab();
   }
  else if ((ni=nextRightItem())!=0&&(mi==0||(ni!=mi&&ni->item()>mi->item())))
  {
     undrawSelectedItem();
     selectedItem(ni->item());
     drawSelectedItem();
     if (ni->cascade()==MSTrue)
     {
	ni->arm();
	ni->grab();
     }     
  }
  else if (item()!=0) 
   {
     item()->menu()->grabAndSelect();
     item()->menu()->right();
   }
}
コード例 #2
0
ファイル: MSPulldownMenu.C プロジェクト: PlanetAPL/a-plus
void MSPulldownMenu::left(void)
{
  MSMenuItem *ni,*mi=menuItem(selectedItem());
  if ((ni=nextLeftItem())!=0&&(mi==0||(ni!=mi&&ni->item()<mi->item())))
  {
     undrawSelectedItem();
     selectedItem(ni->item());
     drawSelectedItem();
  }     
  else if (item()!=0) 
   {
     item()->menu()->grabAndSelect();
     item()->menu()->left();
   }
}
コード例 #3
0
void GUIFormSpecMenu::drawMenu()
{
	if(m_form_src){
		std::string newform = m_form_src->getForm();
		if(newform != m_formspec_string){
			m_formspec_string = newform;
			regenerateGui(m_screensize_old);
		}
	}

	updateSelectedItem();

	gui::IGUISkin* skin = Environment->getSkin();
	if (!skin)
		return;
	video::IVideoDriver* driver = Environment->getVideoDriver();
	
	video::SColor bgcolor(140,0,0,0);
	driver->draw2DRectangle(bgcolor, AbsoluteRect, &AbsoluteClippingRect);

	m_tooltip_element->setVisible(false);

	/*
		Draw items
		Phase 0: Item slot rectangles
		Phase 1: Item images; prepare tooltip
	*/
	
	for(int phase=0; phase<=1; phase++)
	for(u32 i=0; i<m_inventorylists.size(); i++)
	{
		drawList(m_inventorylists[i], phase);
	}

	for(u32 i=0; i<m_images.size(); i++)
	{
		const ImageDrawSpec &spec = m_images[i];
		video::ITexture *texture =
				m_gamedef->tsrc()->getTextureRaw(spec.name);
		// Image size on screen
		core::rect<s32> imgrect(0, 0, spec.geom.X, spec.geom.Y);
		// Image rectangle on screen
		core::rect<s32> rect = imgrect + spec.pos;
		const video::SColor color(255,255,255,255);
		const video::SColor colors[] = {color,color,color,color};
		driver->draw2DImage(texture, rect,
			core::rect<s32>(core::position2d<s32>(0,0),
					core::dimension2di(texture->getOriginalSize())),
			NULL/*&AbsoluteClippingRect*/, colors, true);
	}

	/*
		Draw dragged item stack
	*/
	drawSelectedItem();

	/*
		Call base class
	*/
	gui::IGUIElement::draw();
}