How to create a Custom SIP Panel ???

F

Francis Shanahan

Folks I'd like to create a custom SIP (soft input panel) for my pocket PC.
Something that pops up along with "Keyboard", "Block Recognizer", "Letter
Recognizer" and so on. I'd like to add "Fran's Recognizer" there.

I've used the InputPanel control with the compact framework but it's just
the stock keyboard.

I've seen folks use eVC++ to do this but I want to do it in C#.

How can I create my own InputPanel control with C#???

I can inherit from the InputPanel but again, there's no "Render" to
override.

cheers,

-Francis Shanahan
 
C

Chris Tacke, eMVP

A SIP has export requirements that can't be done in managed code, so the
short answer is you can't make a SIP with the CF.

-Chris
 
C

Chris Tacke, eMVP

The d-pad typically converts to arrow/cursor keys. It's up to your app to
handle the keys, the SIP just sends them. Basically, you don't need a new
SIP for the behavior you want, it's already there. Just add key handling to
your app.

--
Chris Tacke, eMVP
Co-Founder and Advisory Board Member
www.OpenNETCF.org
---
Windows CE Product Manager
Applied Data Systems
www.applieddata.net


AJ Hawks said:
I am also interested in doing this. Also, does anyone know if it is
possible to use hardware buttons in a SIP (ie: to write a SIP where you can
navigate the onscreen keyboard using up/down/left/right buttons)
 
P

Paul G. Tobey [eMVP]

I think that you should be able to do that without building a SIP. Can't
you just use RegisterHotKey() from a C program to capture the hardware
buttons and then use keybd_event() and/or PostKeybdMessage() to send the
keys? The SIP object model is designed to respond to taps on the screen,
rather than hardware buttons. I'm not sure that you can asynchronously send
keys from the SIP...

Paul T.

AJ Hawks said:
First off, let me appologize if this shows up twice. I replied lastnight,
but I'm still not seeing it today, so I thought I'd retry.
I may have miscommunicated what I wanted. I am not developing an
application, what I am hoping to do is develop a SIP that responds to
hardware buttons. What I have in mind is to scroll through letters using
d-pad up/down and change through uppercase, lowercase, symbols, and numbers
using left/right. once you scroll to the desired character, you use the
button in the middle of the dpad (whatever it's called) to send that
character to whatever app is using the SIP. I am aware this would be much
slower, but it would be convenient if you have to input text without looking
at the screen, or (though we should avoid doing this) while driving.
ie: to enter Ab2:
(button pressed / action performed)
ENTER / send 'A' out
RIGHT / change to lowercase 'a'
DOWN / scroll down to 'b'
ENTER / send 'b'
RIGHT / change to numbers, start at '1'
DOWN / scroll down to '2'
ENTER / send 2

Hopefully it gets sent through this time. I think this would be pretty
easy to develop if the SIP can detect hardware button presses. If this is a
silly question, I appologize... I'm new to PPC development :)
 
P

Paul G. Tobey [eMVP]

No, I'm not assuming that. I'm assuming that you'll write a program to
capture the occurrence of the hardware keys and send the actual key that you
want to show up to the input system.

Paul T.

AJ Hawks said:
I'm not quite sure what you're suggesting, but it sounds like you are
assuming I'm writing the program receiving input, which I'm not. I am
looking for a text input method that will be available no matter what
program I'm using, which is why I started out thinking of a SIP.
 
C

Chris Tacke, eMVP

In that case, yes, you'll need a SIP. Boling has a sample in his book, but
you'll have to use C++

--
Chris Tacke, eMVP
Co-Founder and Advisory Board Member
www.OpenNETCF.org
---
Windows CE Product Manager
Applied Data Systems
www.applieddata.net


AJ Hawks said:
First off, let me appologize if this shows up twice. I replied lastnight,
but I'm still not seeing it today, so I thought I'd retry.
I may have miscommunicated what I wanted. I am not developing an
application, what I am hoping to do is develop a SIP that responds to
hardware buttons. What I have in mind is to scroll through letters using
d-pad up/down and change through uppercase, lowercase, symbols, and numbers
using left/right. once you scroll to the desired character, you use the
button in the middle of the dpad (whatever it's called) to send that
character to whatever app is using the SIP. I am aware this would be much
slower, but it would be convenient if you have to input text without looking
at the screen, or (though we should avoid doing this) while driving.
ie: to enter Ab2:
(button pressed / action performed)
ENTER / send 'A' out
RIGHT / change to lowercase 'a'
DOWN / scroll down to 'b'
ENTER / send 'b'
RIGHT / change to numbers, start at '1'
DOWN / scroll down to '2'
ENTER / send 2

Hopefully it gets sent through this time. I think this would be pretty
easy to develop if the SIP can detect hardware button presses. If this is a
silly question, I appologize... I'm new to PPC development :)
 
C

Chris Tacke, eMVP

The problem there is if his "app" is up and getting keystrokes, it's tough
to pass them to any other app like a SIP does.

--
Chris Tacke, eMVP
Co-Founder and Advisory Board Member
www.OpenNETCF.org
---
Windows CE Product Manager
Applied Data Systems
www.applieddata.net
 
P

Paul G. Tobey [eMVP]

No, this is like a macro recorder: It attaches itself to a single 'key', a
hardware button in this case, and uses the keybd_event() and
PostKeybdMessage() functions to send the desired interpretation of the
hardware key to the focused control. We have a programmable function key
program for our devices that does exactly this...

Paul T.
 
C

Chris Tacke, eMVP

Ah, I was assuming a UI, with basically SIP features. Basically something
that starts at 'A' then you use up/down to scroll the letters and the action
button to select or send it. Come to think of it, something a lot like
entering your initials for a high score in Asteroids.

--
Chris Tacke, eMVP
Co-Founder and Advisory Board Member
www.OpenNETCF.org
---
Windows CE Product Manager
Applied Data Systems
www.applieddata.net
 
P

Paul G. Tobey [eMVP]

Note that the 'display' of the key as you sequence from one to another *is*
going to be a challenge. If it were me, I'd be likely to draw it in the
system tray on top of an icon for my application...

Paul T.

AH Hawks said:
Yes! that is exactly what I'm hoping for, Asteroids high score screen is a good analogy.

I believe I understand atleast the basics of both the propoposed
solutions. I will try to find Boling's book, and also look into the
keybd_event() and PostKeybdMessage() functions mentioned by Paul.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top