This page gives a comparison between J601a on the PocketPC (XV6700) to the Windows version. Comparisons are made by running the same script on both Windows and the PocketPC. Right now all the tests are on wd facilities. To me, wd appears to have significant differences between the Windows and PocketPC versions. These differences should be minimized where practical.
I found it quite useful to develop this script on my regular PC before trying it on the PocketPC. The tools on the PC are, needless to say, better on the regular PC and the keyboard is easier to use.
I may make more tests and update this page in the future. Anyone wishing to add to this please do so.
Things in wd that do not Work
- Buttons do not change appearence between focused and unfocused.
- setcolor for controls gives an error.
- The form is not scrolled if part of a form is not visible due to the size of the PocketPC screen or the keyboard covers a control on the form.
- tabnames creates tabs ok but any controls defined on the tab are missing.
- qprinters gives an error. I don't know if a PC with no printers defined also gives an error.
- rtf (rich text) control gives an error. RTF is supported on WinCE as Word Mobile supports it.
- "ownerdraw" for a button gives an error.
Things which Work Differently
- The default fill color of a form is white, the same as the fill for text controls. Therefore, text boundries are invisible unless the border style is specified or pcolor is given on the form.
Special Considerations for the XV6700 PocketPC
- The screen size in pixles depends on the orientation and if a keyboard is displayed. The location is always 0 26. The sizes are:
Normal orientation, no keyboard 240 268 Normal orientation, Full keyboard 240 188 Rotated orientation, no keyboard 320 188 Rotated orientation, full keyboard 320 108
- If one wants to give a look somewhat like Windows XP, a good value for pcolor is 212 208 200. This matches the fill color for a form in the classic style in Windows XP.
- Generally text in controls takes more space.
- The XV6700 has no F-keys.
- The XV6700 PocketPC does not have an ALT key. CTRL is only on the screen keyboard. CTRL -Shift keys give CTRL-keys events. The shift is ignored.
Other Problems
- In the Open Files dialog, links to other directories are opened as files instead of being followed. In particular, Open Files dialog gives no way to access files on the "Storage Card".
- Edit Menu is missing "Select All".
- Sometimes the keyboard is not present on an ijs or ijx window and the only way to activate it is to pull down the Start Menu and reselect J. Also, sometimes after a wd error the ijx window disappears and reselecting J from the Start Menu must be done to get it back.
Test Script
The script used for testing follows. Select it and copy it to a some name.ijs file to run the tests yourself. The longest line in it is less than 80 characters. You should have no problems with lines wrapping if your screen displays lines longer than that without wrapping.
NB. Pocket PC Test
0 : 0
Compares wd on the Pocket PC to the Windows 32 XP version of
J. The versions tested are J601a on the regular PC and the
Pocket PC.
This script can be run on both to compare the results. More
tests may be added later.
Not all events are handled. So don`t be surprised if some
controls are ignored.
)
NB. Radio Buttons Test __________________________________
0 : 0
Display looks good once sized to fit on the pocket pc screen.
lefttext worked properly
ws_border worked as well
Group boxes on Windows XP has color of form bleed through
(transparent) but not on the Pocket PC.
setcolor to a radio button and on groupbox caused an error.
Selecting a radio button within a group reset the other
button within the group but did not affect other radio
buttons.
Keyboard functions do not work the same. Tabbing moves
through the controls but ignores the group boxes. The arrow
keys do not change selections within a group.
Look of OK and Cancel buttons does not change when current
control.
)
BUTTONS=: 0 : 0
pc buttons;pn "Radio Buttons";
menupop "File";
menu new "&New" "" "" "";
menu open "&Open" "" "" "";
menusep;
menu exit "&Exit" "" "" "";
menupopz;
xywh 5 68 44 12;cc ok button;cn "OK";
xywh 55 68 44 12;cc cancel button;cn "Cancel";
xywh 14 14 34 10;cc b1 radiobutton;cn "Abc";
xywh 14 25 34 10;cc b2 radiobutton group;cn "Cde";
xywh 5 4 45 33;cc g1 groupbox;cn "Group 1";
xywh 64 14 34 10;cc b3 radiobutton ws_border;cn "Fgh";
xywh 64 25 34 10;cc b4 radiobutton bs_lefttext group;cn "Ijk";
xywh 55 4 45 33;cc g2 groupbox;cn "Group 2";
xywh 5 84 95 10;cc event static;cn "event";
xywh 6 43 64 10;cc check checkbox;cn " Check Box";
xywh 6 54 64 10;cc right checkbox bs_lefttext;cn "Left Text Check";
pas 6 6;pcenter;
rem form end;
)
buttons_run=: 3 : 0
wd BUTTONS
NB. initialize form here
NB. wd 'pcolor 0 255 0'
NB. wd 'setcolor g1 0 255 255 0 0 355 255 255 255'
NB. wd 'setcolor b1 255 0 0 0 0 355 255 255 255'
wd 'setcaption ok "Do It"'
wd 'pshow;'
)
buttons_close=: 3 : 0
wd'pclose'
)
buttons_cancel_button=: 3 : 0
buttons_close''
)
buttons_exit_button=: 3 : 0
wd'pclose'
)
buttons_default=:3 : 0
wd 'set event *',sysevent
)
NB. Text Test ___________________________
0 : 0
Appearence - The edit and editm controls are invisible. Had
to set pcolor to 212 208 200 (default color for classic) to
get them to show up.
Horizontal & vertical scroll bars appearence isa mess when
screen is rotated.
text and textm seemed to work the sam as on a regular PC.
)
TEXT=: 0 : 0
pc Text;pn "Text Test";
menupop "FirstMenu";
menu new "&New" "" "" "";
menu open "&Open" "" "" "";
menusep;
menu exit "&Exit" "" "" "";
menupopz;
menupop "Second";
menu t2 "T&esring" "" "" "";
menu t3 "Another" "" "" "";
menupopz;
xywh 9 102 44 12;cc ok button topmove bottommove;cn "OK";
xywh 58 102 44 12;cc cancel button topmove bottommove;cn "Cancel";
xywh 9 12 94 11;cc edit edit ws_border;
xywh 9 35 94 34;cc editm editm es_right;
xywh 9 1 50 10;cc es static;cn "Edit Single-line";
xywh 9 24 50 10;cc em static;cn "Multiline Text";
xywh 9 115 93 10;cc event static topmove rightmove bottommove;cn "event";
xywh 9 70 94 31;cc editm2 editm ws_hscroll ws_vscroll rightmove bottommove;
pas 6 6;pcenter;
rem form end;
)
Text_run=: 3 : 0
wd TEXT
NB. initialize form here
NB. wd 'pcolor 212 208 200'
wd 'setfocus editm'
wd 'setlimit editm 60'
wd 'set editm *Line 1',LF,'Line 2'
wd 'set em "Edit Multi-line"'
wd 'pshow;'
)
Text_close=: 3 : 0
wd'pclose'
)
Text_cancel_button=: 3 : 0
Text_close''
)
Text_default=:3 : 0
wd 'set event *',sysevent
)
NB. Queries _________________________________
QUERIES=: 0 : 0
pc queries;
xywh 4 96 44 12;cc ok button;cn "OK";
xywh 52 96 44 12;cc cancel button;cn "Cancel";
xywh 4 22 108 71;cc result static;cn "result";
xywh 4 6 108 50;cc queries combodrop ws_vscroll;
pas 6 6;pcenter;
rem form end;
)
queries_run=: 3 : 0
wd QUERIES
NB. initialize form here
wd 'set queries *',qlist
wd 'pshow;'
)
queries_close=: 3 : 0
wd'pclose'
)
queries_cancel_button=: 3 : 0
queries_close''
)
queries_queries_select=: 3 : 0
try. r=.wd queries
if.2=$$r do.
r=.}:,LF,.~":r
end.
catch. r=.wd 'qer'
end.
wd 'set result *',r
)
qlist=: 0 : 0
qchildxywh result
qchildxywhx result
qd
qformx
qhinst
qhwndc result
qhwndp
qhwndx
qiox
qkeystate VK_F1
qm
qp
qprinters
qpx
qscreen
qwd
)
0 : 0
qcolor COLOR_SCROLLBAR
)
NB. Rich Text Test _______________________________
RT=: 0 : 0
pc rt;pn "Rich Text Test";
menupop "File";
menu new "&New" "" "" "";
menu open "&Open" "" "" "";
menusep;
menu exit "&Exit" "" "" "";
menupopz;
xywh 4 59 44 12;cc ok button;cn "OK";
xywh 51 59 44 12;cc cancel button;cn "Cancel";
xywh 4 2 118 51;cc rtf richedit;
pas 6 6;pcenter;
rem form end;
)
rt_run=: 3 : 0
wd RT
NB. initialize form here
wd 'set rtf *',rtftext
wd 'setbkgnd rtf 213 204 187'
wd 'pshow;'
)
rt_close=: 3 : 0
wd'pclose'
)
rt_cancel_button=: 3 : 0
rt_close''
)
rtftext=:0 : 0
{\rtf1\ansi\deff0\deflang1033{\fonttbl{\f0\froman\fprq2
Bookman Old Style;}{\f1\fswiss\fprq2 Arial Black;}{\f2\fswiss\fprq2 Arial;}
{\f3\fswiss\fprq2\fcharset0 Arial;}{\f4\froman\fprq2 Times New Roman;}}
{\colortbl ;\red255\green0\blue0;}
\viewkind4\uc1\pard\cf1\b\f0\fs128 J\b0\f1\fs48 \f2\fs72 Release
\f3 5\cf0\f4\fs20\par
}
)
NB. Groups/Tabs __________________________
GROUPS=: 0 : 0
pc groups;
menupop "File";
menu new "&New" "" "" "";
menu open "&Open" "" "" "";
menusep;
menu exit "&Exit" "" "" "";
menupopz;
xywh 2 120 44 12;cc ok button;cn "OK";
xywh 53 120 44 12;cc cancel button;cn "Cancel";
xywh 1 25 97 93;cc tabs tab;
xywh 1 13 98 10;cc event static;cn "result";
xywh 1 0 97 10;cc xxx static ss_center rightmove;cn "Notice no Controls in Tabs";
pas 0 6;pcenter;
rem form end;
)
groups_run=: 3 : 0
wd GROUPS
NB. initialize form here
tabnames=:;:'TAB0 TAB1 TAB2'
wd 'set tabs TAB0 TAB1 TAB2'
wd 'creategroup tabs'
tab0_run''
tab1_run''
tab2_run''
wd 'creategroup'
ctab=:'0'
wd 'setshow tab0 1'
wd 'pshow;'
)
groups_close=: 3 : 0
wd'pclose'
)
groups_cancel_button=: 3 : 0
groups_close''
)
groups_default=:3 : 0
wd 'set event *',sysevent
)
groups_tabs_button=: 3 : 0
wd 'set event * Tab Select ',tabs
wd 'setshow tab',ctab,' 0'
wd 'setshow tab',(ctab=:tabs_select),' 1'
)
TAB1=: 0 : 0
pc tab1;
xywh 0 0 81 10;cc check checkbox;cn "Check Box";
pas 6 6;pcenter;
rem form end;
)
tab1_run=: 3 : 0
wd TAB1
NB. initialize form here
wd 'pshow;'
)
tab1_close=: 3 : 0
wd'pclose'
)
TAB2=: 0 : 0
pc tab2;
xywh 0 0 56 11;cc spin2 spin;
pas 6 6;pcenter;
rem form end;
)
tab2_run=: 3 : 0
wd TAB2
NB. initialize form here
wd 'pshow;'
)
tab2_close=: 3 : 0
wd'pclose'
)
TAB0=: 0 : 0
pc tab0;
xywh 0 0 50 11;cc track trackbar;
pas 6 6;pcenter;
rem form end;
)
tab0_run=: 3 : 0
wd TAB0
NB. initialize form here
wd 'pshow;'
)
tab0_close=: 3 : 0
wd'pclose'
)
NB. Screen Size _________________________________________
SCRSIZE=: 0 : 0
pc scrsize;pn "Screen Attributes";
menupop "&Test";
menu qscreen "&Qscreen" "" "" "";
menusep;
menu exit "&Exit" "" "" "";
menupopz;
xywh 4 16 92 17;cc st static;cn "Press Test/Qscreen";
xywh 4 4 92 10;cc xx static;cn "Screen Location and Size";
pas 6 6;pcenter;
rem form end;
)
scrsize_run=: 3 : 0
wd SCRSIZE
NB. initialize form here
wd 'pshow;'
)
scrsize_close=: 3 : 0
wd'pclose'
)
scrsize_cancel_button=: 3 : 0
scrsize_close''
)
scrsize_qscreen_button=: 3 : 0
tt=.":8 2$".wd 'qm'
wd 'set st *',wd 'qformx'
NB. wd 'pshow'
)
NB. _______________________________
SELECTOR=: 0 : 0
pc selector;pn "Select wd Test";
menupop "File";
menu new "&New" "" "" "";
menu open "&Open" "" "" "";
menusep;
menu exit "&Exit" "" "" "";
menupopz;
xywh 71 94 44 11;cc cancel button;cn "Done";
xywh 43 5 44 11;cc b button;cn "Buttons";
xywh 43 32 44 11;cc g button;cn "Groups/Tabs";
xywh 43 46 44 11;cc q button;cn "Queries";
xywh 43 59 44 11;cc rt button;cn "Rich Text";
xywh 43 73 44 11;cc s button;cn "Screen Size";
xywh 43 19 44 11;cc t button;cn "Text";
xywh 12 94 45 11;cc reload button;cn "Reload Tests";
pas 6 6;
rem form end;
)
selector_run=: 3 : 0
wd SELECTOR
NB. initialize form here
wd 'pshow;'
)
selector_close=: 3 : 0
z=.<;._2 wd 'qp'
z=.z (e.#[) test_forms
wd ;(<'psel '),&.>z,&.><';pclose;'
)
NB. A list of forms to close on close of the form "selector".
NB. Add any new test forms to be closed on close of "selector".
test_forms=: <;._2]0 : 0
selector
buttons
Text
groups
queries
rt
scrsize
)
selector_cancel_button=: 3 : 0
selector_close''
)
selector_b_button=: 3 : 0
)
selector_b_button=:b=:buttons_run
selector_q_button=:q=:queries_run
selector_g_button=:g=:groups_run
selector_rt_button=:r=:rt_run
selector_s_button=:s=:scrsize_run
selector_t_button=:t=:Text_run
selector_reload_button=: 3 : 0
selector_close''
l''
)
l=: 3 : 0
load this_script
)
NB. Saves the name of this script for reloading.
this_script =: ;(4!:4<'l'){4!:3''
selector_run''-- DonGuinn 2012-05-24 23:32:01
