JSAutocomplete.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // Copyright (c) 2014-2015, THUNDERBEAST GAMES LLC All rights reserved
  2. // Please see LICENSE.md in repository root for license information
  3. // https://github.com/AtomicGameEngine/AtomicGameEngine
  4. #pragma once
  5. #include <Atomic/Container/Str.h>
  6. #include <Atomic/Container/HashMap.h>
  7. #include <Atomic/Container/List.h>
  8. #include <Atomic/Math/StringHash.h>
  9. #include <TurboBadger/tb_select.h>
  10. #include <TurboBadger/tb_editfield.h>
  11. #include <TurboBadger/tb_style_edit.h>
  12. using namespace Atomic;
  13. using namespace tb;
  14. namespace AtomicEditor
  15. {
  16. // per document autocompletion
  17. class JSAutocomplete
  18. {
  19. public:
  20. JSAutocomplete(TBEditField* editField);
  21. ~JSAutocomplete();
  22. void Show();
  23. void Hide();
  24. bool Visible();
  25. void SetPosition(const TBPoint& pos);
  26. bool UpdateCompletions(const String& value);
  27. bool OnEvent(const TBWidgetEvent &ev);
  28. void UpdateLocals();
  29. private:
  30. HashMap<StringHash, List<String> > locals_;
  31. TBEditField* editField_;
  32. TBStyleEdit* styleEdit_;
  33. TBSelectList* autoList_;
  34. TBGenericStringItemSource autoSource_;
  35. String currentValue_;
  36. };
  37. }