code_uitexturewidget.cpp 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. // UITextureWidget application source code
  2. #include <Atomic/UI/UITextureWidget.h>
  3. #include <Atomic/Resource/ResourceCache.h>
  4. #include <Atomic/UI/UILayout.h>
  5. #include <Atomic/UI/UIButton.h>
  6. #include <Atomic/Graphics/Texture2D.h>
  7. #include "PeriodicApp.h"
  8. void PeriodicApp::setup_uitexturewidget( UIWidget *layout )
  9. {
  10. PODVector<UIWidget*> dest;
  11. layout->SearchWidgetClass( "TBButton", dest );
  12. for (unsigned ii = 0; ii < dest.Size(); ii++)
  13. SubscribeToEvent(dest[ii], E_WIDGETEVENT, ATOMIC_HANDLER(PeriodicApp, HandleUitexturewidgetEvent ));
  14. ResourceCache* cache = GetSubsystem<ResourceCache>();
  15. UITextureWidget* mytexturewidget = new UITextureWidget(context_);
  16. mytexturewidget->SetId( "UITextureWidgetDemo");
  17. if ( mytexturewidget )
  18. {
  19. Texture2D *mytex = new Texture2D(context_);
  20. if ( mytex )
  21. {
  22. mytex = cache->GetResource<Texture2D>("Textures/planet.jpg");
  23. mytexturewidget->SetTexture(mytex);
  24. }
  25. }
  26. SubscribeToEvent( mytexturewidget, E_WIDGETEVENT, ATOMIC_HANDLER(PeriodicApp, HandleUitexturewidgetEvent ));
  27. UILayoutParams *lpx = new UILayoutParams(context_);
  28. lpx->SetWidth (256);
  29. lpx->SetHeight(256);
  30. lpx->SetMinWidth(256);
  31. lpx->SetMinHeight(256);
  32. lpx->SetMaxWidth (256);
  33. lpx->SetMaxHeight(256);
  34. mytexturewidget->SetLayoutParams(lpx);
  35. UIWidget* lower = layout->GetWidget("uitexturewidgetlower");
  36. UIWidget* mysvc = layout->GetWidget("uitwcontainer");
  37. mysvc->AddChildBefore( mytexturewidget, lower);
  38. UILayout *lo1 = new UILayout(context_);
  39. mysvc->AddChildBefore(lo1, lower);
  40. UIButton *b1 = new UIButton(context_);
  41. b1->SetId( "uitexturewidgetch1");
  42. b1->SetText("Change texture to new build");
  43. lo1->AddChild(b1);
  44. SubscribeToEvent( b1, E_WIDGETEVENT, ATOMIC_HANDLER(PeriodicApp, HandleUitexturewidgetEvent ));
  45. UIButton *b2 = new UIButton(context_);
  46. b2->SetId( "uitexturewidgetch2");
  47. b2->SetText("Change texture to colorwheel");
  48. lo1->AddChild(b2);
  49. SubscribeToEvent( b2, E_WIDGETEVENT, ATOMIC_HANDLER(PeriodicApp, HandleUitexturewidgetEvent ));
  50. UIButton *b3 = new UIButton(context_);
  51. b3->SetId( "uitexturewidgetch3");
  52. b3->SetText("Change texture to planet");
  53. lo1->AddChild(b3);
  54. SubscribeToEvent( b3, E_WIDGETEVENT, ATOMIC_HANDLER(PeriodicApp, HandleUitexturewidgetEvent ));
  55. }
  56. void PeriodicApp::HandleUitexturewidgetEvent(StringHash eventType, VariantMap& eventData)
  57. {
  58. using namespace WidgetEvent;
  59. UIWidget* widget = static_cast<UIWidget*>(eventData[P_TARGET].GetPtr());
  60. if ( widget == NULL ) return;
  61. if (eventData[P_TYPE] == UI_EVENT_TYPE_CLICK)
  62. {
  63. if (widget->GetId() == "uitexturewidgetcode" )
  64. {
  65. AppLog( "UITextureWidget support : " + widget->GetId() + " was pressed " );
  66. ViewCode ( "Components/code_uitexturewidget.cpp", widget->GetParent() );
  67. }
  68. if (widget->GetId() == "uitexturewidgetlayout" )
  69. {
  70. AppLog( "UITextureWidget support : " + widget->GetId() + " was pressed ");
  71. ViewCode ( "Scenes/layout_uitexturewidget.ui.txt", widget->GetParent() );
  72. }
  73. if (widget->GetId() == "uitexturewidgetch1" )
  74. {
  75. AppLog( "UITextureWidget support : " + widget->GetId() + " was pressed ");
  76. ResourceCache* cache = GetSubsystem<ResourceCache>();
  77. UITextureWidget *tw = static_cast<UITextureWidget*>(widget->FindWidget("UITextureWidgetDemo"));
  78. tw->SetTexture( cache->GetResource<Texture2D>("Textures/newbuilddetected_header.jpg") );
  79. }
  80. if (widget->GetId() == "uitexturewidgetch2" )
  81. {
  82. AppLog( "UITextureWidget support : " + widget->GetId() + " was pressed ");
  83. ResourceCache* cache = GetSubsystem<ResourceCache>();
  84. UITextureWidget *tw = static_cast<UITextureWidget*>(widget->FindWidget("UITextureWidgetDemo"));
  85. tw->SetTexture( cache->GetResource<Texture2D>("Textures/HSV21.png") );
  86. }
  87. if (widget->GetId() == "uitexturewidgetch3" )
  88. {
  89. AppLog( "UITextureWidget support : " + widget->GetId() + " was pressed ");
  90. ResourceCache* cache = GetSubsystem<ResourceCache>();
  91. UITextureWidget *tw = static_cast<UITextureWidget*>(widget->FindWidget("UITextureWidgetDemo"));
  92. tw->SetTexture( cache->GetResource<Texture2D>("Textures/planet.jpg") );
  93. }
  94. }
  95. }