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);