Mercurial > projects > mde
comparison mde/gui/widget/TextWidget.d @ 162:2476790223b8
First drag and drop support: can drag from AStringContentWidget to any content editable. No visual feedback while dragging.
author | Diggory Hardy <diggory.hardy@gmail.com> |
---|---|
date | Fri, 22 May 2009 19:59:22 +0200 |
parents | 36df0ffe34d2 |
children | 24d77c52243f |
comparison
equal
deleted
inserted
replaced
161:e3fe6acc16fb | 162:2476790223b8 |
---|---|
147 override bool isHSizable () { | 147 override bool isHSizable () { |
148 return false; | 148 return false; |
149 } | 149 } |
150 | 150 |
151 /** On click, request keyboard input. */ | 151 /** On click, request keyboard input. */ |
152 override int clickEvent (wdabs cx, wdabs, ubyte, bool) { | 152 override int clickEvent (wdabs cx, wdabs, ubyte, bool state) { |
153 //adapter.index = content_.editIndex; | 153 if (state) { |
154 content_.editIndex = adapter.setIndex (cx - x); | 154 //adapter.index = content_.editIndex; |
155 mgr.requestRedraw; | 155 content_.editIndex = adapter.setIndex (cx - x); |
156 return 1; // get keyboard input via keyEvent | 156 mgr.requestRedraw; |
157 return 3; // get keyboard input via keyEvent | |
158 } | |
159 } | |
160 | |
161 override bool dragRelease (wdabs, wdabs, IChildWidget widg) { | |
162 if (widg !is this) // don't copy content to self | |
163 widg.dropContent (content_); | |
164 return true; | |
157 } | 165 } |
158 | 166 |
159 override void keyEvent (ushort s, char[] i) { | 167 override void keyEvent (ushort s, char[] i) { |
160 adapter.text = content_.keyStroke (s, i); | 168 adapter.text = content_.keyStroke (s, i); |
161 adapter.index = content_.editIndex; | 169 adapter.index = content_.editIndex; |
171 adapter.text = content_.endEdit; // update other users of content_ relying on callbacks | 179 adapter.text = content_.endEdit; // update other users of content_ relying on callbacks |
172 adapter.index; | 180 adapter.index; |
173 mgr.requestRedraw; | 181 mgr.requestRedraw; |
174 } | 182 } |
175 | 183 |
184 override bool dropContent (IContent content) { | |
185 if (content_.setContent (content)) | |
186 return true; | |
187 return parent.dropContent (content); | |
188 } | |
189 | |
176 protected: | 190 protected: |
177 void update (Content) { // callback | 191 void update (Content) { // callback |
178 adapter.text = content_.toString(0); | 192 adapter.text = content_.toString(0); |
179 wdim omw = mw, omh = mh; | 193 wdim omw = mw, omh = mh; |
180 adapter.getDimensions (mw, mh); | 194 adapter.getDimensions (mw, mh); |