123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- #ifndef _EDITWND_H
- #define _EDITWND_H
- #include <api/wnd/wndclass/guiobjwnd.h>
- #include <tataki/color/skinclr.h>
- #include <api/wnd/usermsg.h>
- #include <bfc/common.h>
- #define EDITWND_PARENT GuiObjectWnd
- class EditWnd : public EDITWND_PARENT {
- public:
- EditWnd(wchar_t *buffer=NULL, int buflen=0);
- virtual ~EditWnd();
- virtual int onInit();
- virtual int onPaint(Canvas *canvas);
- virtual int onResize();
- #ifdef WIN32
- virtual LRESULT wndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
- #endif
-
-
- virtual void setBuffer(wchar_t *buffer, int len);
- virtual void getBuffer(wchar_t *outbuf, int len);
- virtual const wchar_t *getBufferPtr() { return outbuf; }
- virtual int getBufferLength() { return maxlen; }
- virtual void setBackgroundColor(ARGB32 c);
- virtual void setTextColor(ARGB32 c);
- void setModal(int modal);
- void setAutoEnter(int a);
- int getAutoEnter() { return autoenter; }
- void setAutoSelect(int a);
- void setIdleTimerLen(int ms);
- virtual void onSetVisible(int show);
- virtual int onGetFocus();
- virtual int wantFocus();
- virtual void setWantFocus(int w) { wantfocus = w; }
- virtual void selectAll();
- virtual void enter();
- virtual void setIdleEnabled(int i) { idleenabled = i; }
- virtual int getIdleEnabled() { return idleenabled; }
- void setBorder(int border);
- int getTextLength();
-
- HWND getEditWnd();
- virtual int handleRatio() { return 0; }
- virtual int getAutoSelect() { return autoselect; }
- void setMultiline(int ml);
- void setReadOnly(int ro);
- void setPassword(int pw);
- void setAutoHScroll(int hs);
- void setAutoVScroll(int vs);
- void setVScroll(int vs);
- int isEditorKey(int vk);
- virtual void invalidate();
- virtual int gotFocus();
-
- virtual LRESULT editWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
- protected:
- virtual void timerCallback(int id);
-
- virtual void onEditUpdate();
- virtual void onIdleEditUpdate();
- virtual int onEnter();
- virtual int onAbort();
- virtual int onLoseFocus();
- void setStyle(LONG style, int set);
- #ifdef LINUX
- virtual int onLeftButtonDown( int x, int y );
- virtual int onLeftButtonUp( int x, int y );
- virtual int onMouseMove( int x, int y );
- virtual int onKeyDown(int key);
- #endif
- private:
- #ifdef LINUX
- int textposFromCoord( int x, int y );
- #endif
- HWND editWnd;
- WNDPROC prevWndProc;
- int maxlen;
- int retcode;
- int idletimelen;
- int modal;
- int bordered;
- int autoenter;
- int beforefirstresize;
- int autoselect;
- int multiline;
- int readonly;
- int password;
- int idleenabled;
- int autohscroll,autovscroll,vscroll;
- int nextenterfaked;
- SkinColor backgroundcolor, textcolor, selectioncolor;
- #ifdef LINUX
- int selstart, selend;
- int cursorpos;
- int selectmode;
- int viewstart;
- #endif
- #ifdef WIN32
- HBRUSH oldbrush;
- #endif
-
-
-
- MemBlock<wchar_t> buffer8;
- wchar_t *outbuf;
- int wantfocus;
- #ifdef LINUX
- StringW inbuf;
- #endif
- };
- #define EDITWND_RETURN_NOTHING 0
- #define EDITWND_RETURN_OK 1
- #define EDITWND_RETURN_CANCEL 2
- #endif
|