code_uiselectlist.cpp 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. // UISelectList application source code
  2. #include <ThirdParty/TurboBadger/tb_widgets.h>
  3. #include <Atomic/UI/UISelectItem.h>
  4. #include <Atomic/UI/UISelectList.h>
  5. #include <Atomic/UI/UILayout.h>
  6. #include "PeriodicApp.h"
  7. void PeriodicApp::setup_uiselectlist( UIWidget *layout )
  8. {
  9. PODVector<UIWidget*> dest;
  10. layout->SearchWidgetClass( "TBButton", dest );
  11. for (unsigned ii = 0; ii < dest.Size(); ii++)
  12. SubscribeToEvent(dest[ii], E_WIDGETEVENT, ATOMIC_HANDLER(PeriodicApp, HandleUiselectlistEvent ));
  13. UIWidget *slist = layout->GetWidget ("UISelectListDemo");
  14. if ( slist)
  15. SubscribeToEvent(slist, E_WIDGETEVENT, ATOMIC_HANDLER(PeriodicApp, HandleUiselectlistEvent ));
  16. }
  17. void PeriodicApp::HandleUiselectlistEvent(StringHash eventType, VariantMap& eventData)
  18. {
  19. using namespace WidgetEvent;
  20. UIWidget* widget = static_cast<UIWidget*>(eventData[P_TARGET].GetPtr());
  21. String refid = eventData[P_REFID].GetString();
  22. if ( widget == NULL ) return;
  23. if (eventData[P_TYPE] == UI_EVENT_TYPE_CLICK)
  24. {
  25. if (widget->GetId() == "uiselectlistcode" )
  26. {
  27. AppLog( "UISelectList support : " + widget->GetId() + " was pressed " );
  28. ViewCode ( "Components/code_uiselectlist.cpp", widget->GetParent() );
  29. }
  30. if (widget->GetId() == "uiselectlistlayout" )
  31. {
  32. AppLog( "UISelectList support : " + widget->GetId() + " was pressed ");
  33. ViewCode ( "Scenes/layout_uiselectlist.ui.txt", widget->GetParent() );
  34. }
  35. if (widget->GetId() == "UISelectListDemo" )
  36. {
  37. AppLog( "UISelectList event : " + widget->GetId() + " and " + refid + " was selected ");
  38. }
  39. if (widget->GetId() == "selectlistadd" )
  40. {
  41. AppLog( "UISelectList action : " + widget->GetId() + " was pressed ");
  42. UISelectList* slist = static_cast<UISelectList*>(widget->FindWidget("UISelectListDemo"));
  43. slist->AddItem(slist->GetNumItems(), "New Entry");
  44. }
  45. if (widget->GetId() == "selectlistdel" )
  46. {
  47. AppLog( "UISelectList action : " + widget->GetId() + " was pressed ");
  48. UISelectList* slist = static_cast<UISelectList*>(widget->FindWidget("UISelectListDemo"));
  49. int si = slist->GetValue(); // this is the selected index
  50. slist->DeleteItem(si);
  51. }
  52. if (widget->GetId() == "selectlistdelall" )
  53. {
  54. AppLog( "UISelectList action : " + widget->GetId() + " was pressed ");
  55. UISelectList* slist = static_cast<UISelectList*>(widget->FindWidget("UISelectListDemo"));
  56. slist->DeleteAllItems();
  57. }
  58. if (widget->GetId() == "selectlistnew" )
  59. {
  60. AppLog( "UISelectList action : " + widget->GetId() + " was pressed ");
  61. UISelectList* slist = static_cast<UISelectList*>(widget->FindWidget("UISelectListDemo"));
  62. UISelectItemSource *sis = new UISelectItemSource(context_);
  63. sis->AddItem( new UISelectItem( context_, "list 1","list1", "LogoAtomic" ));
  64. sis->AddItem( new UISelectItem( context_, "list 2","list2", "" ));
  65. sis->AddItem( new UISelectItem( context_, "list 3","list3", "" ));
  66. sis->AddItem( new UISelectItem( context_, "list 4","list4", "" ));
  67. sis->AddItem( new UISelectItem( context_, "list 5","list5", "" ));
  68. sis->AddItem( new UISelectItem( context_, "list 6","list6", "" ));
  69. slist->SetSource(sis);
  70. }
  71. }
  72. }