123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- #ifndef __COMBOBOX_H
- #define __COMBOBOX_H
- #include <api/skin/widgets/dropdownlist.h>
- #include <api/script/objects/c_script/h_edit.h>
- #include <api/script/objects/c_script/c_edit.h>
- #define COMBOBOX_PARENT DropDownList
- class XmlObject;
- class HEBKeysCallback;
- class ComboBox : public COMBOBOX_PARENT {
- public:
- ComboBox();
- virtual ~ComboBox();
- virtual int wantTrapButton() { return 1; }
- virtual int wantTrapText() { return 0; }
- virtual int wantTrapEdit() { return 1; }
- virtual void abstract_onNewContent();
- virtual void trapControls();
- virtual const wchar_t *dropdownlist_getMainGroupId() { return L"wasabi.combobox.main.group"; }
- virtual const wchar_t *dropdownlist_getListGroupId() { return L"wasabi.combobox.list.group"; }
- virtual const wchar_t *dropdownlist_getButtonId() { return L"combobox.button"; }
- virtual const wchar_t *dropdownlist_getListId() { return L"combobox.list"; }
- virtual const wchar_t *combobox_getEditId() { return L"combobox.edit"; }
-
- virtual const wchar_t *embeddedxui_getEmbeddedObjectId() { return combobox_getEditId(); }
- virtual void dropdownlist_onCloseList();
- virtual void dropdownlist_onOpenList();
- virtual void setText(const wchar_t *text, int hover=0); // use this to set the content of the edit box
- virtual const wchar_t *getText(int fromcontrol=0); // use this one to ask for the currently displayed entry
- virtual const wchar_t *getCustomText() { return NULL; }
- virtual void dropdownlist_onConfigureList(GuiObject *o);
- virtual void onSelect(int id, int hover);
- virtual void enter();
- void selectEditor();
- virtual int onAction(const wchar_t *action, const wchar_t *param=NULL, int x=-1, int y=-1, intptr_t p1=0, intptr_t p2=0, void *data=NULL, size_t datalen=0, ifc_window *source=NULL);
- virtual void onEditKeyDown(int vk);
- virtual void onEditKeyUp(int vk);
- virtual void onEditEnter(const wchar_t *txt);
- virtual void onEditChar(int c);
- virtual int wantTransferDownToList() { return 1; }
- virtual int wantTransferUpToList() { return 1; }
- virtual int wantTransferHomeToList() { return 1; }
- virtual int wantTransferEndToList() { return 1; }
- virtual int wantTransferPgUpToList() { return 1; }
- virtual int wantTransferPgDnToList() { return 1; }
- virtual int wantTransferEnterToList() { return 1; }
- virtual int wantDownOpenList() { return 1; }
- virtual int wantCloseListOnChar() { return 1; }
- virtual int wantEnterOnSelect() { return 1; }
- virtual void listDown();
- virtual void listUp();
- virtual void listHome();
- virtual void listEnd();
- virtual void listPageDown();
- virtual void listPageUp();
- virtual void listSelect();
- virtual void onPreCloseList();
- private:
-
- virtual void updateTextInControl(const wchar_t *text);
- HEBKeysCallback *keys_edit;
- GuiObject *lastlist;
- StringW curtxt;
- int savedidle, savedautoenter;
- int disable_getselection;
- };
- class HEBKeysCallback : public H_Edit {
- public:
-
- HEBKeysCallback(ScriptObject *trap, ComboBox *_callback) :
- callback(_callback), H_Edit(trap), o(trap) {
- }
- virtual void hook_onKeyDown(int vk) {
- callback->onEditKeyDown(vk);
- }
- virtual void hook_onKeyUp(int vk) {
- callback->onEditKeyUp(vk);
- }
- virtual void hook_onEnter()
- {
- C_Edit e(o);
- callback->onEditEnter(e.getText());
- }
- virtual void hook_onChar(wchar_t c) {
- callback->onEditChar(c);
- }
- private:
- ComboBox *callback;
- ScriptObject *o;
- };
- #endif
|