JSAutocomplete.h 1.2 KB

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