WgMenuItem * WgMenu::_getItemAtPos( int x, int y ) { WgBorder contentBorder = _getPadding(); x -= contentBorder.left; y -= contentBorder.top; y += m_contentOfs; if( y > 0 && x > 0 && x < (int) ( Geo().w - contentBorder.right ) ) { WgMenuItem * pItem = m_items.First(); while( pItem ) { if( pItem->IsVisible() ) { if( pItem->GetType() == SEPARATOR ) y -= m_sepHeight; else y -= m_entryHeight; if( y < 0 ) { return pItem; } } pItem = pItem->Next(); } } return 0; }
void WgTableHook::_requestRender() { if( !m_bVisible ) return; WgTablePanel* pTable = Row()->Table(); if( pTable ) pTable->_requestRender( Geo() ); }
void WgSimpleVolumeMeter::_updateSectionPixelHeight() { int totalHeight = Geo().h; if( m_pSkin ) totalHeight -= m_pSkin->ContentPadding().h; m_sectionPixelHeight[0] = (int) (m_sectionHeight[0] * totalHeight + 0.5f); m_sectionPixelHeight[1] = ((int)((m_sectionHeight[0] + m_sectionHeight[1]) * totalHeight + 0.5f)) - m_sectionPixelHeight[0]; m_sectionPixelHeight[2] = totalHeight - m_sectionPixelHeight[1] - m_sectionPixelHeight[0]; }
WgRect WgTableHook::ScreenGeo() const { return Geo() + Row()->Table()->ScreenPos(); }
WgCoord WgTableHook::Pos() const { return Geo(); }
void WgMenu::ScrollbarHook::_requestRender() { m_pParent->_requestRender( Geo() ); }
int main(int argc, char * argv[]) { int ret = -1; QApplication app(argc, argv); GuiSkellyTon gui; #pragma region keyboard controller auto keyBoardController = resourceManager.addScript_src(Script::getScriptComponentTemplate("KeyboardController", //start " self.KeySpeed = 9 \n" " self.MouseSpeed = .5 \n" "", //update " if(Input.getKeyDown(KeyCode.R)) then \n" " local tmp = self.parent.getTrans().pos().getY(); \n" " tmp = tmp + Timer.deltaTime() * self.KeySpeed \n" " self.parent.getTrans().pos().setY(tmp); \n" " end \n" " \n" " if(Input.getKeyDown(KeyCode.W)) then \n" " local tmp = self.parent.getTrans().pos().getZ(); \n" " tmp = tmp - Timer.deltaTime() * self.KeySpeed \n" " self.parent.getTrans().pos().setZ(tmp); \n" " end \n" " \n" " if(Input.getKeyDown(KeyCode.S)) then \n" " local tmp = self.parent.getTrans().pos().getZ(); \n" " tmp = tmp + Timer.deltaTime() * self.KeySpeed \n" " self.parent.getTrans().pos().setZ(tmp); \n" " end \n" " \n" " if(Input.getKeyDown(KeyCode.F)) then \n" " local tmp = self.parent.getTrans().pos().getY(); \n" " tmp = tmp - Timer.deltaTime() * self.KeySpeed \n" " self.parent.getTrans().pos().setY(tmp); \n" " end \n" " \n" " if(Input.getKeyDown(KeyCode.D)) then \n" " local tmp = self.parent.getTrans().pos().getX(); \n" " tmp = tmp + Timer.deltaTime() * self.KeySpeed \n" " self.parent.getTrans().pos().setX(tmp); \n" " end \n" " \n" " if(Input.getKeyDown(KeyCode.A)) then \n" " local tmp = self.parent.getTrans().pos().getX(); \n" " tmp = tmp - Timer.deltaTime() * self.KeySpeed \n" " self.parent.getTrans().pos().setX(tmp); \n" " end \n" " \n" " if(Input.getKeyDown(18)) then \n" " local x = self.MouseSpeed * Input.getMouse().delta().getY() \n" " local y = self.MouseSpeed * Input.getMouse().delta().getX() \n" " self.parent.getCam().rotate(x,y); \n" " end \n" " \n" " \n" "")); #pragma endregion resourceManager.WorkingDir("./../resources/"); resourceManager.loadNeumontStuff(); auto shader = resourceManager.getDefault<ShaderProgram>(); auto dragon = resourceManager.add2DTexture("dragon","flying_dragon_1.png"); auto texture = resourceManager.add2DTexture("space","space.png"); EditorGame * game = gui.Game(); game->AddEntity("Bob"); auto comp = game->currentEntity.addComponent<RenderableComponent>(); game->currentEntity.getTrans()->pos.z = 20; game->currentEntity.getTrans()->pos.z = -20; comp->Geo(resourceManager.getFirstMesh("NU_Cube")); comp->Shader(shader); comp->material.Diffuse(dragon); comp = game->currentEntity.addComponent<RenderableComponent>(); comp->material.Diffuse(texture); auto sphere = resourceManager.duplicate(resourceManager.getFirstMesh("NU_Sphere")); sphere->scale(2,1,1); comp->Geo(sphere); comp->Shader(shader); game->currentEntity.addComponent<ScriptComponent>()->myScript(resourceManager.addScript_src(Script::getScriptComponentTemplate("rotator",//random " self.rotSpeed = Random.RangeFloat(10,300); \n" " return true \n" "", " local x = self.parent.GetScript('rotator').parent.getTrans().rot().getX(); \n" " local x = self.parent.getTrans().rot().getX(); \n" " x = x + Timer.deltaTime() * self.rotSpeed \n" " self.parent.getTrans().rot().setX(x); \n" //" GameManager.getEntityFromName('Bob').getTrans().rot().setY(50)\n " ""))); (void)keyBoardController; game->AddEntity("Cam"); game->currentEntity.addComponent<CameraComponent>(); game->currentEntity.addComponent<ScriptComponent>()->myScript(keyBoardController); game->AddEntity("Fast Rotator"); game->currentEntity.addComponent<RenderableComponent>(); game->currentEntity.getRenderable()->Geo(resourceManager.getFirstMesh("NU_Sphere")); game->currentEntity.getRenderable()->Shader(shader); game->currentEntity.addComponent<ScriptComponent>()->myScript(resourceManager.getFirstScript("rotator")); game->currentEntity.getTrans()->pos.x = 5; game->currentEntity.Parent("Bob"); game->AddEntity("Swinger"); game->currentEntity.addComponent<RenderableComponent>(); game->currentEntity.getRenderable()->Geo(resourceManager.getFirstMesh("NU_Arrow")); game->currentEntity.getRenderable()->Shader(shader); game->currentEntity.addComponent<ScriptComponent>()->myScript(resourceManager.getFirstScript("rotator")); game->currentEntity.getTrans()->pos.y = 5; game->currentEntity.getTrans()->scale = glm::vec3(.5f,.5f,.5f); game->currentEntity.Parent("Bob"); game->AddEntity("Super Swing"); game->currentEntity.addComponent<RenderableComponent>(); game->currentEntity.getRenderable()->Geo(resourceManager.getFirstMesh("NU_Plane")); game->currentEntity.getRenderable()->Shader(shader); game->currentEntity.addComponent<ScriptComponent>()->myScript(resourceManager.getFirstScript("rotator")); game->currentEntity.getTrans()->pos.y = 2; game->currentEntity.getTrans()->scale = glm::vec3(.2f,.2f,.2f); game->currentEntity.Parent("Swinger"); gui.init(); gui.show(); ret = app.exec(); _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); return ret; }