This site is no longer active and is available for archival purposes only. Registration and login is disabled.

TEXT_INPUT CONTROL


TEXT_INPUT CONTROL

Postby __pps__ » Aug 31, 2008 @ 2:45am

Hello Everybody,
we are using edge for symbian uiq/s60.
Right now I need to have a normally functioning input text control. Original symbian CEikEdwin would be exactly what I need, can I use it somehow in edgelib app? Writing my own input control is way too much work - to handle caret, to handle all types of input, to handle selection copy/paste etc.
Basically it has to act like native control, otherwise it's a lot of trouble to make it work well.
How can I get native control drawn on the screen?
thank you!
__pps__
pm Member
 
Posts: 10
Joined: Aug 31, 2008 @ 2:35am


Postby edge » Sep 1, 2008 @ 9:10am

EDGELIB: Cross-platform mobile development at your fingertips
http://www.edgelib.com
User avatar
edge
pm Member
 
Posts: 1180
Joined: Aug 22, 2005 @ 3:42pm
Location: The Netherlands


Postby __pps__ » Sep 4, 2008 @ 3:46am

__pps__
pm Member
 
Posts: 10
Joined: Aug 31, 2008 @ 2:35am


Postby edge » Sep 4, 2008 @ 11:51am

EDGELIB: Cross-platform mobile development at your fingertips
http://www.edgelib.com
User avatar
edge
pm Member
 
Posts: 1180
Joined: Aug 22, 2005 @ 3:42pm
Location: The Netherlands


Postby __pps__ » Sep 6, 2008 @ 7:43am

After spending MANY hours all I can say is that it's close to impossible for me to figure out how to do it without knowing internals of symbian or wihtout knowing internals of edgelib.

I tried to get all possible objects from the environment and checked all the functions from there and I can't find anything useful or working.

Is there anybody from edge developers who can advise on what action I need to take to be able to use native input box.

thanks
__pps__
pm Member
 
Posts: 10
Joined: Aug 31, 2008 @ 2:35am


Postby __pps__ » Sep 10, 2008 @ 1:38am

Hello Edgelib developers,
can anybody help me with that please?

I started similar thread on newlc.com and it seems that there's no way to get it done without extra help from edgelib itself (which has to provide certain callbacks/interfaces). Otherwise, using RWindow or CEikonEnv won't help at all!!! It's simple to do stuff like that in Windows using window handle, but it's impossible to do stuff like this in symbian!
Please help :)
__pps__
pm Member
 
Posts: 10
Joined: Aug 31, 2008 @ 2:35am


Postby edge » Sep 11, 2008 @ 8:22am

Hi,

Can you tell me which interfaces, classes and callbacks you need? The more detailed information you can provide the more likely it is we can offer a solution.
EDGELIB: Cross-platform mobile development at your fingertips
http://www.edgelib.com
User avatar
edge
pm Member
 
Posts: 1180
Joined: Aug 22, 2005 @ 3:42pm
Location: The Netherlands


Postby __pps__ » Sep 11, 2008 @ 9:29pm

Basically, I need to create a child control on existing window. I'm not a pro in symbian world, so I'm not sure what exactly I'd need to get it working (I tried many things that theoretically had to make it work, but on practice nothing worked, so I'm not sure what exactly would fix it)
I had discussion about that on newlc, maybe you can review it and give any ideas or comment on proposed solutions.


It all depends on how edgelib drawing and windowing stuff implemented. To create a child control on a window in UIQ3 I need to have access to parent CCoeControl and not RWindow itself; and that's the problem - there's simply no CCoeControl that I can get access to (or even there's none).
Also, from that discussion on newlc, it seems that in order to get it working properly and reliably edge has to work on top of Qik* classes and not on low-level Eik* classes
__pps__
pm Member
 
Posts: 10
Joined: Aug 31, 2008 @ 2:35am


Postby edge » Sep 12, 2008 @ 9:33am

Hi,

I've followed the discussion. The good news is that EDGELIB indeed uses Qikon classes. It's also possible to receive events not implemented by EDGELIB through the OnNativeEvent callback of the framework.

However, the CCoeControl can't be expanded, because it is part of the EDGELIB internal Symbian framework. After reading the thread at newlc, it seems the best way to create your own CCoeControl and make it work together with EDGELIB. Because EDGELIB uses Direct Screen Access, drawing/ordering should be handled automatically.
EDGELIB: Cross-platform mobile development at your fingertips
http://www.edgelib.com
User avatar
edge
pm Member
 
Posts: 1180
Joined: Aug 22, 2005 @ 3:42pm
Location: The Netherlands


Postby __pps__ » Sep 28, 2008 @ 12:38am

Hi Edge,
I was away for a while and now I'm back in action :)
I tried some suggestion from ppl and I posted results that I observed to newlc thread. (take a look at my last post)
It seems with enough time spent on that I may get it working more or less appropriately, but it's all more like a hack, and it affects edgelib behavior, so I don't want to go this way. (I tried to put dialog like control on top of edgelib app)
About CCoeControl of internal edgelib symbian framework: I don't want and I don't need to extend that. All I need is to get access to it, so that I could pass it as a parent control that owns edwin. That's it.
Let's try this, if you give me binary offset where it's located in the ClassEdge instance, I'll brute cast offset to the ClassEdge obj and I'll get access to the CCoeControl and I'll try to add eikedwin to it and I'll let you know how it works.
Is it clear what I'm asking about? In windows I could enumerate all windows in the app and do what ever I want with any of it, but I have no idea how to enumerate windows (or ccoecontrols) in symbian, if it's possible at all.
__pps__
pm Member
 
Posts: 10
Joined: Aug 31, 2008 @ 2:35am


Postby __pps__ » Sep 28, 2008 @ 3:09am

__pps__
pm Member
 
Posts: 10
Joined: Aug 31, 2008 @ 2:35am


Postby __pps__ » Sep 28, 2008 @ 3:38am

__pps__
pm Member
 
Posts: 10
Joined: Aug 31, 2008 @ 2:35am


Postby edge » Sep 30, 2008 @ 10:53am

Hi,

To fix the drawing issues you can suspend the display update from EDGELIB when the input control is active (it's odd that DirectScreenAccess doesn't handle this automatically).

To suspend drawing you can add the EFL_MANUALFLIP flag to the framework configuration. Call Flip() manually at the end of OnNextFrame, except when the control is visible.
EDGELIB: Cross-platform mobile development at your fingertips
http://www.edgelib.com
User avatar
edge
pm Member
 
Posts: 1180
Joined: Aug 22, 2005 @ 3:42pm
Location: The Netherlands


Postby __pps__ » Oct 8, 2008 @ 3:36am

Hi Edgelib, I have a couple of questions ...
can we use edgelib not as a framework, but as a library?
(to be able to do all our platforms specific stuff ourselves, and use some facilities provided by edge))
Currently it completely hides platform specific stuff and that's not what I want. Also, I use edgelib for symbian app developement because it better thatn to work with symbian directly, but because of constatnt redrawing it will affect battery and my app doesn't need constant redrawing.
Another question, it seems that I get memory leaks in E2DSurfaceRGBA. More specifically E2DSurfaceRGBA::gdata member. If I manually delete it then everything is fine, but I need to delete it like this:
delete[] (gdata - 4);
Is that the crazy way to use first 4 bytes as size of the block??
If you confirm that it leaks mem, can I get rebuild libs with the leak fixed?
thanks
__pps__
pm Member
 
Posts: 10
Joined: Aug 31, 2008 @ 2:35am


Postby edge » Oct 9, 2008 @ 9:24am

EDGELIB: Cross-platform mobile development at your fingertips
http://www.edgelib.com
User avatar
edge
pm Member
 
Posts: 1180
Joined: Aug 22, 2005 @ 3:42pm
Location: The Netherlands


Next

Return to EDGELIB


Sort


Forum Description

Powerful and affordable C++ middleware solution covering true multi-platform 2D, 3D and network features for Apple iPhone, Windows Mobile, Symbian S60, UIQ, Linux and Windows desktop.

Moderator:

edge

Forum permissions

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

cron