summaryrefslogtreecommitdiff
path: root/indra/newview/llnearbychatbar.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llnearbychatbar.h')
-rw-r--r--indra/newview/llnearbychatbar.h50
1 files changed, 33 insertions, 17 deletions
diff --git a/indra/newview/llnearbychatbar.h b/indra/newview/llnearbychatbar.h
index 224118e088..559c1ee091 100644
--- a/indra/newview/llnearbychatbar.h
+++ b/indra/newview/llnearbychatbar.h
@@ -42,33 +42,52 @@
#include "llspeakers.h"
-class LLGestureComboBox
- : public LLComboBox
- , public LLGestureManagerObserver
+class LLGestureComboList
+ : public LLGestureManagerObserver
+ , public LLUICtrl
{
public:
- struct Params : public LLInitParam::Block<Params, LLComboBox::Params> { };
+ struct Params : public LLInitParam::Block<Params, LLUICtrl::Params>
+ {
+ Optional<LLButton::Params> combo_button;
+ Optional<LLScrollListCtrl::Params> combo_list;
+
+ Params();
+ };
+
protected:
- LLGestureComboBox(const Params&);
+
friend class LLUICtrlFactory;
+ LLGestureComboList(const Params&);
+ std::vector<LLMultiGesture*> mGestures;
+ std::string mLabel;
+ LLSD::Integer mViewAllItemIndex;
+
public:
- ~LLGestureComboBox();
+ ~LLGestureComboList();
+
+ LLCtrlListInterface* getListInterface() { return (LLCtrlListInterface*)mList; };
+ virtual void showList();
+ virtual void hideList();
+ virtual BOOL handleKey(KEY key, MASK mask, BOOL called_from_parent);
+
+ S32 getCurrentIndex() const;
+ void onItemSelected(const LLSD& data);
+ void sortByName(bool ascending = true);
void refreshGestures();
void onCommitGesture();
- virtual void draw();
+ void onButtonCommit();
+ virtual LLSD getValue() const;
// LLGestureManagerObserver trigger
virtual void changed() { refreshGestures(); }
-protected:
-
- virtual void showList();
+private:
- LLFrameTimer mGestureLabelTimer;
- std::vector<LLMultiGesture*> mGestures;
- std::string mLabel;
- LLSD::Integer mViewAllItemIndex;
+ LLButton* mButton;
+ LLScrollListCtrl* mList;
+ S32 mLastSelectedIndex;
};
class LLNearbyChatBar
@@ -98,9 +117,6 @@ public:
static void sendChatFromViewer(const std::string &utf8text, EChatType type, BOOL animate);
static void sendChatFromViewer(const LLWString &wtext, EChatType type, BOOL animate);
- S32 getMinWidth() const;
- S32 getMaxWidth() const;
-
protected:
static BOOL matchChatTypeTrigger(const std::string& in_str, std::string* out_str);
static void onChatBoxKeystroke(LLLineEditor* caller, void* userdata);