[APP][SVC][Mar 21, 2010] ZoomBarPlus V2 BETA / Make your Zoom Bar more useful!

Search This thread

thx1200

Inactive Recognized Developer
Overview
The Zoom Bar is the little strip at the bottom of your Touch Pro 2's screen that is used in a handful of applications on your device. Wouldn't it be nice if you could use it in every application? Customized to fit your needs? That's where ZoomBarPlus comes in! You can map keystrokes for tapping, double tapping, long tapping, and swiping left/right. Default zoom functionality is also retained for all applications that are already Zoom Bar aware.

This app was developed because I wanted to have a virtual D-Pad of sorts. The default actions are swipe-right sends the down arrow, swipe-left the up arrow, double tap the action (center) button, long tap is backspace (which is "back" in Total Commander CE, which I use a lot). You can set it up any way you want!

ZoomBarPlus is a TRUE Windows Mobile service, so it does NOT use one of the precious few 32 slots available for processes. You can find more information about services here.

PLEASE NOTE THAT THIS APP IS DESIGNED TO WORK ONLY ON THE TOUCH PRO 2 (AKA RHODIUM / TILT 2) AND DIAMOND 2 (AKA TOPAZ / PURE) AND RELATED DEVICES. It has also been successfully tested on the HTC Imagio (aka Whitestone) and HTC Mega (aka Touch 2). If I'm missing any zoombar phones here that it works on or needs to be tested on, please let me know.

CodePlex
ZoomBarPlus development is hosted at Microsoft CodePlex! http://www.codeplex.com/ZoomBarPlus

License
Ms-RL

Tip Jar
Like this app? Want more like it or quicker updates? Tip a buck (or Euro or Pound or whatever) or two to help the author out! Click here to make a safe donation via PayPal.

Current features
- This is a BETA release, so it should be treated as possibly being unstable!
- Assign keycodes to tap, double tap, long tap, swipe left, and swipe right gestures on the zoom bar.
- Swipe gestures can repeat keystrokes when held, which is good for simulating holding down a D-Pad button, for example.
- Use a registry editor to change configuration settings (a config app will come soon).
- Disables itself if the user is using an application that handles the ZoomBar natively.
- Option to disable itself if the user is on a MessageBox (dialog), so as to not accidentally confirm an "are you sure" notification.
- VERY low resources used -- runs as a TRUE service and uses as close as 0% CPU as is possible by an app like this.

Future features
- Configuration app (.Net CF 3.5 required).
- New gestures: tap and swipe (with hold). Default will be D-Pad Left and D-Pad Right.
- AppToDate support
- New registry location for settings (for safety): HKCU\Software\Avian Waves\ZoomBarPlus
- Per-Window Class settings: ignore (default ZoomBar), or custom gesture settings
- Screen orientation aware (optional landscape flip swipe gestures)

Latest ChangeLog
- Fixed bug: if the active window changed while you were in the middle of a single tap delay, long tap delay, or swipe-repeat, it would continue repeating, even if the new foreground window class was one of the classes that handles the ZoomBar natively, leading to unexpected results.
- You can now specify whether you want ZBP to deactivate when the MessageBox class is in the foreground. This is useful for disabling ZBP when a confirmation message appears. In particular, with Total Commander CE, it was very easy to try to "tap" to activate a file and accidentally click the DELETE button simultaneously, leading to a Delete->Confirm Yes situation. Needless to say, it led to bad results when a lot of stuff you didn't want to delete was, in fact, deleted. :-( Now, it can't happen because ZBP will (by default) deactivate when the confirmation box appears.

Video
See it in action! Thanks to PocketNow for the great review!
http://pocketnow.com/tweaks-hacks/zoombarplus-use-touch-pro2-diamond2-zoom-bar-as-a-d-pad

Registry
All apps listsed in HKLM\Software\HTC\SmartTouch are ignored so that ZBP doesn't interfere with built-in zoom functionality of those apps.

Settings for ZBP are in HKLM\Services\ZoomBarPlus. Setting any keycode to zero disables the feature.

The service needs to be restarted (use DotFred's task manager) or the device soft reset for changes to take effect. This will get easier after this app is out of beta. :)

Tap = Keycode sent to focused window when the zoom bar is tapped once.
DoubleTap = Keycode sent to focused window when the zoom bar is tapped twice in succession.
LongTap = Keycode sent to focused window when the zoom bar is pressed and held.
SwipeRight = Keycode sent to focused windows when the zoom bar is swiped to the right (repeated for each 'segment' you pass).
SwipeLeft = Keycode sent to focused windows when the zoom bar is swiped to the left (repeated for each 'segment' you pass).
DoubleTapInterval = Time in ms that ZBP will wait for the second tap in a double tap.
LongTapInterval = Time in ms that ZBP will wait before executing the long tap action.
SwipeDoRepeat = Should the swipe gesture automatically repeat if you hold your finger down?
SwipeRepeatAfter = Number of ticks of a swipe before doing the swipe repeat.
SwipeRepeatIntervalFirst = First delay (in ms) before doing a swipe repeat.
SwipeRepeatIntervalRate = Interval (in ms) between each swipe repeat action.
VibrateInterval = Length of time to vibrate for haptic feedback.
VibrateSwipe = Provide vibration (haptic feedback) on a swipe action?
VibrateTap = Provide vibration (haptic feedback) on a tap action?
DisableOnMessageBox = Do not process ZBP command when the current in-focus window is a Message Box (dialog)?

The default settings are:
Tap = Do nothing! (0x00)
DoubleTap = Center "action" button - VK_TACTION (0x0D)
LongTap = Backspace - VK_BACK (0x08)
SwipeRight = Down Arrow - VK_TDOWN (0x28)
SwipeLeft = Up Arrow - VK_TUP (0x26)
DoubleTapInterval = 350
LongTapInterval = 650
SwipeDoRepeat = 1 (Yes)
SwipeRepeatAfter = 5
SwipeRepeatIntervalFirst = 350
SwipeRepeatIntervalRate = 100
VibrateInterval = 25
VibrateSwipe = 0 (No)
VibrateTap = 1 (Yes)
DisableOnMessageBox = 1 (Yes)

Notes
I would recommend NOT setting a keycode for single tap. The reason being that the zoombar seems to have its sensitivity bleed into the bottom part of the screen. So what tends to happen is you will tap a button that's on the bottom of the screen (such as a menu) and the zoombar single-tap action will activate as well. I cannot adjust the zoombar sensitivity, so I cannot work around the sensitivity in code. I found that double-tapping on the zoombar becomes intuitive if you are trying to achieve a D-Pad of sorts, which is why I developed this app. :)

Download
CAB Installer: http://zoombarplus.codeplex.com/releases
Source Code: http://zoombarplus.codeplex.com/SourceControl/list/changesets
 
Last edited:

thx1200

Inactive Recognized Developer
FAQ

Q: ZoomBarPlus isn't working in <some application>. Is this a bug? How do I fix this?

A:
ZoomBarPlus is designed to not be active whenever HTC's SmartTouch service sends zoom bar messages to applications that are "zoom bar aware." You may not realize how many applications are actually zoom bar aware. Som ROM cooks like to put in lots of extras (the default behavior is a simple scroll-down / scroll-up behavior, but no action button or anything more advanced). Even without a custom ROM, applications like RSS Hub and the Inbox are zoom bar aware. This can be annoying when the default zoom bar behavior isn't what you want. For example, in the Outlook Inbox, you might want ZoomBarPlus to scroll up and down through the list. It won't because the HTC default behavior is to resize text in the message view and do nothing at all in the list view!

To fix this, go into the Smart Touch registry key HKLM\Software\HTC\SmartTouch and either delete the relevant key of the application you no longer want the default zoom behavior for --OR-- change the value of ClassName in the key to something that will never exist as a window class (maybe add a dozen x's to the end of it). Soft reset after this. The config application (coming soon!) will allow you to enable or disable classes in SmartTouch more easily.
 
Last edited:

thx1200

Inactive Recognized Developer

sirphunkee

Retired Senior Moderator
Dec 15, 2009
2,928
98
Austin, TX
what if i wanna set "swap left" to arrow left and "swap right" to arrow right?

Edit the registry as stated in the first post. I'm going to create a config program soon. This is beta.

Here is a list of a bunch of keycodes that you all might find useful: http://msdn.microsoft.com/en-us/library/bb431750.aspx

You are looking for VK_TLEFT and VK_TRIGHT

Yeah, that worked for me great. I just switched the values (38 and 40, respectively) for the two entries thx1200 mentioned, and then soft-reset.

The app seems to work pretty darn good overall...it's more like using the zoom bar as a scroll wheel, in terms of response/speed, than a D-pad, but it's still a very workable solution. The only place I haven't been able to get it to cooperate is in the outlook inbox screen (WM, not TF3D), but it's worked everywhere else I've tried it so far, including inside of apps like PHM_regedit.

Thanks thx1200!! :D
 

thx1200

Inactive Recognized Developer
Yeah, that worked for me great. I just switched the values (38 and 40, respectively) for the two entries thx1200 mentioned, and then soft-reset.

The app seems to work pretty darn good overall...it's more like using the zoom bar as a scroll wheel, in terms of response/speed, than a D-pad, but it's still a very workable solution. The only place I haven't been able to get it to cooperate is in the outlook inbox screen (WM, not TF3D), but it's worked everywhere else I've tried it so far, including inside of apps like PHM_regedit.

Thanks thx1200!! :D

That's because the Inbox has been modified by HTC to be "zoombar aware." You can prevent the driver from sending zoombar codes to the Inbox by deleting it's window class registry entry in HKLM\Software\HTC\SmartTouch. ZBP purposely does not respond to window classes in that key so as not to have two responses (the app's and ZBP's) firing at the same time.

In fact, if you want to override ALL zoombar behavior, delete all the window classes in that registry key. Keep in mind you will also lose the ability to zoom in the picture viewer if you get that aggressive. :)

Yes, it does perform less like a D-Pad and more like scroll-wheel. Either way, it gives you a lot more one-handedness than a device lacking a D-Pad (or wheel). I particularly enjoy the swipe-and-hold gesture where it just keeps scrolling. That's particularly d-pad-like. Scroll wheels can't do that. :)

EDIT: After modifying SmartTouch, a soft reset is required. :)
 
Last edited:

sirphunkee

Retired Senior Moderator
Dec 15, 2009
2,928
98
Austin, TX
That's because the Inbox has been modified by HTC to be "zoombar aware." You can prevent the driver from sending zoombar codes to the Inbox by deleting it's window class registry entry in HKLM\Software\HTC\SmartTouch. ZBP purposely does not respond to window classes in that key so as not to have two responses (the app's and ZBP's) firing at the same time.

In fact, if you want to override ALL zoombar behavior, delete all the window classes in that registry key. Keep in mind you will also lose the ability to zoom in the picture viewer if you get that aggressive. :)

Yes, it does perform less like a D-Pad and more like scroll-wheel. Either way, it gives you a lot more one-handedness than a device lacking a D-Pad (or wheel). I particularly enjoy the swipe-and-hold gesture where it just keeps scrolling. That's particularly d-pad-like. Scroll wheels can't do that. :)

Ahh gotcha...I knew this app ignored any zoombar-enabled stuff, I just didn't realize the inbox fell into that catgory. I'll try tinkering with it in the reg like you suggested.

And yes, the swipe-n-hold feature is pretty sweet...and more like a D-pad than a scroll wheel. I'm still practicing/testing with it (there's a little learning curve to get used to the best thumb-motions), but I love it so far...thanks again! :D
 

mike2nl

Senior Member
Jul 24, 2009
3,965
670
64
Near Utrecht
Hi thx1200,

you are really crazy. You have also another hobby :D? Great work. This app have also a very good potential.
 
Last edited:

thx1200

Inactive Recognized Developer
Hi thx1200,

you are really crazy. You have also another hobby :D? Great work. This app have also a very good potential.

I have too many hobbies. Many are being neglected! Plus regular 10 hour days at work. Sigh. I wish I was independently wealthy so I could just write freeware and write free music and spend some time on my other hobbies. :)
 

khaytsus

Senior Member
Apr 8, 2008
7,258
1,175
Central Kentucky
I had ZoomAdds installed, removed it, installed this... but I'm just getting the same scrolling I did before, no repeat, no taps, no vibration... Any ideas what else might be interfering?

Aha, found it, TouchLockPro.. Once I disabled it, scrolling.. changed ;) I'll be wtaching this one, I still can't quite "do" a dpad, but been wanting it since I changed from my original Tilt.
 
Last edited:

cccooo2007

Member
Apr 11, 2007
5
0
Thanks thx1200.

By the way,when you have changed zoombarplus registry items,you can make it effect by restarting the service using some task manage programs
 

acolona

Senior Member
Nov 21, 2007
74
2
Little more info

New here...so bear with me.

I have a ATT tilt2 that I just flashed to the new energy ROM from Mar 9th, standard WM 6.5 with sense 2.5.

I love the ROM, but never realized that the opera browser, 9.5 I think, that came with the stock tilt2 was the only opera browser that worked with the factory zoombar. The browser in this new ROM, 10.1 I believe, oesn't work with it...and I love my zoombar!!

Would this program help?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    Any news? Development stopped?

    Sorry for the lack of updates. Yes, development has stopped. I'm in the process of learning Android development, preparing for my next phone purchase, which will be Android.

    I do miss WM development, though... It was fun while it lasted!