Help with UI elements - Windows Mobile Software Development

Hello,
I've been programming for quite some time on Windows/linux, and I just started developing for WinMo. I must say, when it comes to UI, there really isn't much out there.
What I am trying to do - and if anyone out there knows of any good tutorials or example code, that would be excellent - is make a figure friendly Multi-Level ListView Control for .net CF 2.0 (I need to support WinMo 5.0-6.5) The multi-level part is that when an item is selected, the current ListView slides to the left and a new ListView slides in from the right (I know it's a bad example, but like how the iPhone Multi-Level menus work)
I have been searching the internet and have not found any information on how to do this. My idea for how to create a control like this would be something like this:
MenuControl:
Array of ListItem Controls
Panel that expands in height according to the number of ListItem Controls
ListItem Contro:
Graphic on the left side
Text describing the item
Optional MainControl object for when item is selected
OnSelect Event handeler
When the Even is fired, the local MainControl is loaded
Once MainControl is loaded, using a 15 milsec timer, decrease x position of both controls for 800
Is this a good way of doing the UI? Any help would be excellent

Hi!
have a look at my SliderList. It does exactly what you described...

Related

[ROM][New video demos]Schap's 5.00 ROMs with TouchXperience UI-Call to beta testers

As some of you know, I am currently working on a touch user interface (since more than 10 months), fully compatible with HTC Diamond, it even takes advantage of G-sensor and touch-sensitive control pad, and I plan to develop a 3D user interface in a future version.
I will prepare soon a private beta, and if there is no major issue I would like to release a first public version in about 2 weeks. But please don’t take too much into consideration this date, be aware that contrary to other ROM cookers who only take programs from other ROMs I have developed the whole user interface from scratch, so it’s a really huge work (more than 1000 hours at the moment) and it’s hard to fix a release date.
As for other devices, Diamond ROMs will be multilingual and available in two versions: Full (with TouchXperience User Interface) and Lite (maximal storage space).
I am looking for some motivated and experienced people to participate to this private beta. I need only about 20 people so I will choose first people who could really help me, better is if you have WM cooking or development knowledges. I don’t want to get thousands of messages asking “please please send me the ROM” like it was in the other threads, so please don’t ask me to participate if you don’t have solid arguments. If you are interested, let me a post here (explaining in what you are good, if I don’t know you) and I will contact you later by PM if you are selected.
More info about TouchXperience User Interface and video demos:
http://www.touchxperience.com/
TouchXperience is the Next Generation User Interface for Windows Mobile, finger friendly and highly customizable, it offers many interesting features: program launcher, contacts manager, home screen, appointments, messaging, task manager, profile and event manager, call log, control panel, communication manager,...
TouchMenu is probably the most powerful and customizable menu, replacing original Start Menu for an innovative touch interface. TouchMenu supports finger scrolling and gestures, for example you can switch from a menu to another by sliding your finger left/right, or display context menu by a long press on the screen. You can also scroll menus using G-sensor. Each menu has four different views (large list, small list, large grid, small grid). As the rest of the future user interface, TouchMenu has a nice Vista/WM7 look.
TouchMenu has various built-in menus :
- All Programs (Start Menu replacement)
- Active Programs (Task Manager)
- Recent programs
- Favorite programs
- Settings (Control Panel)
- Documents
- Favorite websites
- Contacts
- Messaging
- Appointments
- Tasks
- Calls (Call Log)
- Communications (Comm. Manager)
- RSS feeds
- Power Actions
- End Actions
- One Touch Settings
But you can do much more by creating your own custom menus where you can add contacts, program shortcuts, website links, system actions (for example: reset device, rotate screen, sound profile, clock, brightness backlight, WMP status,...) or links to other menus. You can also replace icon for each program/folder/contacts/menu with a custom image.
TouchHome is a fully customizable screen where you can add various widgets and graphical elements (clocks, indicators, today items, texts, images,...). By default, TouchHome displays when you turn your phone on. You can make your own graphics and layout using XML. TouchHome can be also used as screen unlocker (unlock screen by sliding finger, by double tapping, by shaking device, using navigation scroll wheel,...).
Use GPS or cell-based geo-positioning to determine current location and create profiles for each location.
Custom Events is a powerful application which execute predefined actions when custom events occur. The principle is simple, each custom event is defined by:
- A basic event (application changed, location changed, new message, new incoming call, battery charging, device cradled, headset connected, Wi-Fi network detected, internet connection detected, ,...)
- Eventually some conditions (date/time, current application, current location, specific words in message, caller identity,...)
- An action (launch application, display notification, enable flight mode, turn on Wi-Fi, change profile, send message, ,...)
There will be hundreds of events and actions, so possibilities are very large! Here are some examples:
- Enable flight mode during nights
- Connect to Wi-Fi while battery is charging
- Deactivate alarm when I turn my device face down
- Put phone in silent mode at workplace
- Remind me to buy bread when I’m near to the bakery
Supports finger gestures on touch-sensitive control pad (experimental, for HTC Touch Diamond/Touch Pro only) to execute different system actions, in this way you can have up to 8 “virtual buttons” on your device.
Supports display auto-rotation navigation using G-sensor (experimental, for HTC Touch Diamond/Touch Pro only).
TouchXperience User Interface is designed for a future usage of hardware accelerated 3D graphics for an outstanding experience!
Click to expand...
Click to collapse
WOW!!
Good to see you......Let me know what I can do for you
Peace
Mike
very nice shaps! I hope this post will be more serious and wont end like ur thread in hermes forum..
Realease it when it's done! no preasure!
Schaps!!! Count me in mate... great to see you here.
WOW! i can't wait. Looking forward to your work.
Cool!!!
Looks great!!!!
Tell me if you need a beta tester for this project...
i would be glad to help
Sounds really really nice.
If I can be of any help I'll be glad to, comes from Hermes and Kaiser and now has Diamond.
Tried some of your roms before and liked some, but not all, but this seems really exciting.
Garcia
Network and database admin here (though mostly unix). Lemme know what needs to be done.
^.^
Good luck schaps.
Sounds great. I'm happy to check this for ya.
I'd like to volunteer, I have experience with graphics.
Count Me In... Deeep Within !!!!!!!!!!!
THANKS!!!!!!! (sorry 4 the caps) but this is coooollll!!!!!
Very Very Good Schap's
I can Help
Hello mate,
I have cooked (mostly my own) ROMs for Elf, Niki and Cruise so I have considerable background on the components of the WM OS and the overall structure of the devices (not so much the Diamond to be honest as I'm still trying to get to understand its internals).
If you like, I would more than willing to help out with Beta testing whether it's to focus on a specific area or just overall testing. I also have experience in QA so I can pick out little things that need ironing out
Cheers from Dubai!
WOAH! Schaps, this sounds awesome. I'd be happy to beta test your TouchXperience UI. Coming from an iPhone background, I'd love to see more thumb/finger friendliness in our Diamonds.
EDIT: Checked out the site and the screenshots and it looks fab so far !
Couple of questions, would there be a new finger/thumb friendly Calendar app? (I totally despise the stock WM one) Also, do you plan on integrating a more thumb friendly keyboard for input? The standard Diamond one is okay but I tend to be a fast typer and because the screen on the Diamond is relatively small, it is prone to keystroke errors and the Diamond keyboard does not have any type of correction method (i.e. as included with the PCM Keyboard - I use this but a lack of VGA skins is highly disappointing).
All in all I can't wait to test this - I thought the Diamond would have been more thumb/finger friendly but tend to find myself pulling out the dreaded stylus now and then.. Something I hoped I could have gotten away from. Cheers for the great effort Schaps!
WOW
Love to test the new interface.
Moral Support!!
Schap,
im not a pro in any of these programming. But at least i can sent some moral supports!!
It's a great development All the best to you
Very nice ...I will pleasure, when i test this program...
schaps said:
P.S.: I will soon work on a new Advanced Config. version fully compatible with Touch Diamond and Touch Pro. Advanced Configuration Tool V3 will come with a new finger-friendly interface.
Click to expand...
Click to collapse
@ Schaps, could you look into the possibility to add "default mediaplayer chooption" in order to link Bluetooth devices to other players not forcing to use WMP linked with TF3D .
There is a cab out there from RuffRuff (still need to test it) , but including this possible solution in AdvConfig V3 would be a big added value.
As for the Beta testing , it starts to look like recruting for La Legion etrangere (The Foreign Legion)
People want but how many can give ?
Anyway, success with the new UI + Rom combination. Looking forward.

Using WM6.5.x Control styles in own (.NET) programs?

Hello,
since WM6.5.3 the standard Controls like Buttons, Comboboxes, TabControls, Checkboxes etc. have a new Style with gradient Backgrounds and sometimes rounded edges.
If you develop programs with the .NET CF you will get the boring old style. Is there any way to enable the new style for .NET applications?
The only thing I found was this "hack" for the TabControl:
mobileworld.appamundi.com/blogs/peterfoot/archive/2009/09/17/windows-mobile-6-5-tab-control.aspx
(sorry, seems that I'm not allowed to post outside links)
I searched a lot for this but even the documentation from Microsoft gives no hint how to do this.
There is also a new control in many system control panels which replaces the TabControl (the navigation thing at top of the form for example in sounds and notification settings). Is there any chance to use this control in my own programs?
It is really annoying that Microsoft has developed a new themeable style for their controls and nobody can use it
Thanks a lot
Markus
You can but it requires overriding the controls paint events and imo is not worth the hassle. If you want fancy looking controls then you would be better off with 3rd party controls. There's several options out there and some are free. Read about some at http://forum.xda-developers.com/showthread.php?t=616838
If you want to work with the native controls and spruce them up a bit check out http://code.msdn.microsoft.com/uiframework for some guidance.
Ren13B said:
You can but it requires overriding the controls paint events and imo is not orth the hassle.
Click to expand...
Click to collapse
thanks for your answer but I don't want to create custom controls or use some 3rd party controls. I want to use the standard controls but with the WM6.5.x style.
Microsoft is really stupid. They were on a good way with 6.5.x. The user interface of the standard apps is mostly consistent and finger friendly. But they forget 3rd party developers now completely. I want to be able to create apps with the system look and feel but it seems that it is not possible. So my own applications have always an inconsistent look when I use standard controls. I always get the old style but when I open a messagebox then I get buttons in the new style.
Microsoft, this is really crap!
You'll have to wait for Windows Phone 7 if you want perfect consistency. Microsoft isn't going to update the controls for 6.5.
Hey there!
Today I did some research into controls, and I found out how to enable 6.5.3 style for buttons and checkboxes. You have to:
edit2: for dialogs - open .rc file in a text editor, and find your dialog, then after a line beggining with STYLE add a line with following contents:
Code:
EXSTYLE 0x1800000
Compile it and run. You should get 6.5.3 look and feel on existing controls without changing them!
Or if you want to create controls in runtime (works good for buttons, checkboxes/radio buttons look ugly):
1) call SHInitExtraControls()
2) when creating a button/checkbox use class TTBUTTON and make sure its style is combined with 0x8000
3) Use 'em like normal buttons.
Now it's time for listboxes & others...
edit2: To mimic 6.5.3 listbox behavior you have to set item height to 64 (or 32 for (W)QVGA), for example in this way:
Code:
SendDlgItemMessage(hwndDlg, IDC_COMBO1, CB_SETITEMHEIGHT, -1, 64);
SendDlgItemMessage(hwndDlg, IDC_COMBO1, CB_SETITEMHEIGHT, 0, 64);
To expand list views, use a empty image list with a proper image height (64 or 32), for example:
Code:
HIMAGELIST il;
il = ImageList_Create(1, 64, ILC_COLOR, 0, 1);
SendDlgItemMessage(hwnd, IDC_LIST1, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM) il);
edit: Oops, forgot you want it in .NET. Quick investigation lead me to a sad fact: .NET controls have the wrong window class. But if .NET dialogs are stored in resources there is hope. So I would be grateful if someone post here a compiled .NET application which would show a dialog with a button linked to some simple action. I might try to modify it for 6.5.3 style.

[win32] API - New Sense interface Look 'n Feel V1.6.4 (01/28/11)

I have created a win32 API for C++ that mimics HTC's Sense UI Look 'n Feel... More informations on my website: charlie-soft.com
DOCUMENTATION : http://charlie-soft.com/Software/Manila_SDK/html/
This SDK is designed for speed: .NET applications are usually very slow to load and not fluid. I use some tricks to improve speed, like drawing only area having changes, scrolling without backbuffer or creating textures for text (GDI text drawing was slower…).
What’s in the box:
PNG resources for VGA/WVGA. They can be easily modified. SDK will resize automatically the resources if your device has a smaller (or higher) resolution!
Design your app for VGA, the SDK will adjust the layout for other resolutions!
Full Finger Control.
Source files (.cpp and .h) of library.
Source files of example.
Class:
MyEditControl: Edit box with different width. Easy get and set text. SIP detection: scroll Edit area.
MyItem: Button (3 types), checkboxes and switch (TripleState!). Event on click, visibility and state can be changed/get easily.
MyPanel : This element is not visible but is used to bring together elements. This element can have a title and dotted separator between each element.
ChildSection : Contains a subsection which is displayed with a sliding effect.
MyLabel: Print text with different font and color.
MyPictureBox: To print image (png, jpg, bmp, gif…)
MySelector: Like the HTML select. Scroll screen if list is out of screen (see video below).
Section: A section is a panel which can be scrolled up/down. It contains the different elements.
MessageBoxSense: Four type of messagebox: info, Ok/Cancel, Abort/Retry and Yes/No.
MySlider: A simple slider of any size... The min and max values can be changed easily, as the cursor position.
Change log
V1.6.4
Added the possibility of multilines in edit control
V1.6.3
Added possibility to add picture to slider of ChildSection...[bug solved]
Explorer bug solved
V1.6.2
Added an event when user click on screen...
V1.6.1
Memory usage improved
V1.6
Loading of image is now safe (use video memory by default but if problems use device memory)
File Explorer
Icons
Speed and memory improvement
V1.5
just add possibility to change color of text for hover and selected...
Minor bug changes:
items out of screen no longer try to redraw
text of items recompute their size when changing
background color is correctly changed
The SDK is now multi thread safe!
Add the possibility to right clicks (long press)
Add the possibility to hook windows message (WM_ACTIVATE for example)
Add the possibility to have a bottom bar.
Add the possibility to have a background image (landscape and portrait).
If the app is allready started, close the new instance and show the previous one.
MySelector can be scrolled if the list is too long.
Text is now printed with alpha transparency.
Compatible with any character (hebrew, vietnamese...).
MyPictureBox can now be stretched.
Memory usage reduced.
V1.4
Minor bugs fixed
Add the possibility to show MessageBox without a main application.
V1.3
Background can be transparent ! (see this app for demo)
Native drawing (DirectDraw was too slow in landscape)
Slider can have a force feedback (see this app for demo)
V1.2
MySlider added
drawing process rewrited: less redraw->less computation->less CPU utilization -> battery consumption reduced
Loading optimisation
The layout is now independent of screen resolution!
top taskbar is occassionally cleared [fixed]
White screen, touching the panel brings it back [fixed]
landscape items position incorrect [fixed]
V1.1
landscape compatible
Abort/Retry added to MessageBoxSense
TripleState Checkboxes and OnOffItems added
FAQ
is QVGA resolution supported?
Yes, SDK will find the correct resolution and select the appropriate resource resolution. The SDK will delete the other resources...
have you planned to extend MessageBox types to Abort/Retry?
Yes, to create one:
MessageBoxSense::show(L"Hello",L"Try again ?", MESSAGE_ABORTRETRY);
is this landscape compatible?
Yes but having refresh rate issue. Seems to be a DirectDraw problem (S2U2 was subject to the same issue...)
If someone know how to solve this problem, send me a message !
Back button too slow.
You can change the speed anim using this function: changeSpeed(double nbMilisecond)
why aren't you including some TripleState Checkboxes and OnOffItems ?
Both are now included:
new MyItem(1,5,15,ITEM_IS_CHECKBOX,ITEM_THIRD_STATE,L"My third checkbox (Third state)");
Other apps
Wake on Wan is a new app which use this SDK. Sources are available!
Quick shutdown is a software which use this SDK too. It can turn off, restart or set the phone in sleep mode. Sources are also available!
"
Sense SDK win32 C++
For informations about SDK (installation, use compile...), see here: http://charlie-soft.com/Software/Manila_SDK/html/
Good work ! thanks for sharing hope devs will use it.
Hello my friend !
Great work !
( C'était exactement ce que je cherchais en c++ pour mes MFC smart device !!! )
Great Work, Thx for the source!!
Really great work!
but I have two questions:
- is QVGA resolution supported?
- have you planned to extend MessageBox types to Abort/Retry?
thank you
regards
NIce work
Altough i don't really know what todo with it... i instalt the example.cab and it was really smooth!
Only one thing if i go to other controls and i want to change the value then the onscreen keyboard should show up right? But it doesn't.... So i slide my qwerty keyboard open, and in landscape i get an error message: DDERR_SURFACELOST(back buffer)
I dont know what it means... is this landscape compatible?
Good job man !
Nice works !
I just have a feedback, I find too slow the animation when you click on the "back" button, is there is a way to speed it up ? (or disable simply the animation)
SDK Manila
Hello all !
I will try to answer all your questions. So :
- is QVGA resolution supported?
No but easy to implement... Just resize resources to correct resolution. I will post resources shortly.
- have you planned to extend MessageBox types to Abort/Retry?
If it's something wanted, I will do it.
- is this landscape compatible?
No, not yet. But will be in next release!
-Back button too slow.
I will add a method to set the speed of animation... in the next release
-Bug with hardware keyboard
The onscreen keyboard don't show up and I don't know why... I will look around for a fix.
If a developer wants to translate .NET applications into C++, feel free to post I will try to help you!
There is still lot of work, but I will try to do this quickly!
petititi said:
- have you planned to extend MessageBox types to Abort/Retry?
If it's something wanted, I will do it.
Click to expand...
Click to collapse
thank you for quick reply. I need this extension for my app "htc menu loader" (link in signature) to migrate from .net to c++
again, really great work. You are making something that HTC should have done months ago.
Great project !
I don't know if you notice but I disabled the bottom taskbar... Do you think that I should add the possibility to enabled it? I saw that your application needed one...
I hope you will find my SDK easy to use !
Hey, this looks awesome.
Question though: I'm just shy of clueless when it comes to making an actual working app. Is there any place I can go to read/learn the coding I will need to actually use this?
Application win32 c++
You can use the example application included into the SDK to learn basic stuff or you can download this application: WakeOnWan. It’s based on my SDK (here are the sources).
You need some basic knowledge about Object-oriented programming and C language. I try to explain how to use the SDK in the example using comments or on my webpage.
I will also post a short tuto in second post...
Very, very nice! The demo runs very smoothly on my stock Touch Pro 2.
petititi said:
You can use the example application included into the SDK to learn basic stuff or you can download this application: WakeOnWan. It’s based on my SDK (here are the sources).
You need some basic knowledge about Object-oriented programming and C language. I try to explain how to use the SDK in the example using comments or on my webpage.
I will also post a short tuto in second post...
Click to expand...
Click to collapse
Awesome thanks!
What's sad, is when I was young, I used to be able to code in C. Made my first video game when I was 6 on a Commodore 64 (ok i dated myself here) Now, can't remember very much
C++ ? It's just like riding a bike!
Hatefly said:
Awesome thanks!
What's sad, is when I was young, I used to be able to code in C. Made my first video game when I was 6 on a Commodore 64 (ok i dated myself here) Now, can't remember very much
Click to expand...
Click to collapse
I'm sure you can!
It's just like riding a bike - you never really forget how. And we are here to help you to refresh your memory.
petititi said:
I'm sure you can!
It's just like riding a bike - you never really forget how. And we are here to help you to refresh your memory.
Click to expand...
Click to collapse
Sweet thanks! Just downloaded an ebook on c programing.
Sounds (and looks) great, although there are still to many glitches (like not working in landscape etc.) which are preventing me from using this package.
But I have one question, why aren't you (all) including some TripleState Checkboxes and OnOffItems ?
I need them often but you cant find such controls online - not to speak of sense.
TripleState Checkboxes ?
Hello,
the TripleState Checkboxes is a simple feature I can add. To be sure, TripleState Checkboxes will looks like:
And tripleState On/Off:
I will include them in the next release... Be patient, the next release is coming soon and adds support for portrait and fixes a few bugs...

An app idea...about accent colors (utopic right now...) :(

I was thinking that at the time where developers will have access to Mango accent colours, it could be a lovely idea to make an app like this:
http://colorschemedesigner.com/
Imagine a "light version" of this app for WP7 with:
1. The same access to color data (viewing of hex/rgb values)
2. A big "randomizer button" to randomly produce combinations (like the one inside the online app menu...)
3. Presets with load save
4. ..an "apply as theme colors" function (the app would map the generated colors to each of the available parts (registry keys) of the OS.
..someone could tap the randomizer button if he doesn't know about color combinations, until he finds one he likes. Then, he could manually or automatically (randomly) map colors to the appropriate areas of the OS. (I think this is about 3-4 color mappings), save the combination into a preset and apply it by adding it as an accent color in phone's theme menu.
I could definitely buy such an app, even if it was an expensive one.
i think what you are looking for is called Advanced Config
Cristi93 said:
i think what you are looking for is called Advanced Config
Click to expand...
Click to collapse
Advanced Config:
1. Doesn't work properly (It closes right after I open it in Mango and I also get an error message at the start. I had it before some months and it worked...I don't know what happened)
2. It doesn't have a color scheme generator (we can just choose one color for the tiles and active fonts and that's all). So we can't change background / tile / tile font colors according to an already tested combination of colors.
3. It doesn't have a randomizer (which, if all the above existed, could modify all of the OS colors with a minimum amount of aesthetic errors. Not all combinations are suitable for every use, but at least many of them could be quickly accessible with just the press of a button and they could be even modified if the user wanted.
...for those who say that WP7 has already great colors and doesn't need apps/functionality like this I can say that the system doesn't get bloated with an advanced color customizer. It gets bloated when someone tries to radically change the style of the UI, like making the 2d icons look like "iphone 3d icons" etc...that could be bad...but having the ability to properly change tile/background/font colors, is like MS making us part of their design team.
Moved to WP7 Software development
This is not the place for a discussion about a non existent app. Please post in the correct section.
Take it easy
O_G
Sorry for the wrong thread. I hadn't noticed that section..

TextBox with Header

This is exactly what I like to have:
http://msdn.microsoft.com/en-us/library/hh202916(v=vs.92).aspx
Since there exists no standard control I have written one by myself but I didn't get DataBinding to work (even when using correct implementation of DependencyProperty)
Got 25 votes for:
http://wpdev.uservoice.com/forums/1...474043-add-header-property-to-textbox-control
Simple
I think for that screenshot on the MSDN page you give they did what I also did without thinking twice in my own apps: Place TextBlock controls immediately before the TextBox controls.
Indeed, I found the approach of some controls with built-in header text property annoying because they waste a line of space even if you don't need a text.
And where would you stop with your new header property because sometimes you need text in front of a text box, but sometimes below, or in front and in the back at the same time, etc. (Yes, that does not happen with trivial, 3 textbox screens, but drive up the number of features in your program and it will probably happen.)
Don't agree. A HeaderMode enum should do the trick. I don't want do reinvent the wheel each time I need a simple TextBox After a year implementing WP apps I still see advantages of a TextBoxWithHeader control.
Sent from my RM-821_eu_euro2_530 using XDA Windows Phone App

Categories

Resources