RE: Can't use Palm device after emulator?

2008-05-29 Thread Bob Whiteman
The emulator can be configured to use one of your PC's serial ports as the
serial port on the emulated Palm. If your cradle and real device are plugged
into the same port while the emulator is still running you'll get that
conflict. To solve this problem you can close the emulator before hotsyncing
or debugging on the real device. Alternately, you can configure the emulator
to not use a serial port at all by right-clicking the emulator, choosing
Properties and changing Serial Port to None.

If the emulator is configured to a different port than the cradle it's still
possible that you're getting a conflict. On a typically configured PC, COM1
and COM3 share an interrupt, and COM2 and COM4 also share an interrupt. If
your cradle is on COM1 and your emulator is using COM3, the two probably
can't share that interrupt. If this is the problem, the solutions are the
same, or you can reconfigure the emulator to use a port which doesn't
conflict with the cradle.

Good luck!

 -Bob Whiteman

-Original Message-
From: DIAMOND JEFF
To: Palm Developer Forum
Sent: 8/3/2000 10:46 PM
Subject: Can't use Palm device after emulator?

I'm currently using the most uptodate versions of CodeWarrior and the
Debugger (Update 1, patch, etc.)

What I've found is that if I'm doing a programming session using POSE,
nomatter how cleanly I exit the session, when I try to THEN try out my
program on a real Palm, I get a Serial port is busy when it starts the
download.

The only thing that seems to remedy this is to reboot my computer.

In fact, after I've done the POSE debugging, I can't even do a hotsync
without the same effect.

What's tying up the serial port?

Thanks folks!
- Jeff


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: Clipper mini-font

2008-05-29 Thread Bob Whiteman
Thanks for the warning. I'm looking into the legalities and opportunities
right now. If it turns out that Palm won't give away, license or otherwise
give permission to use the fonts I'll still have the experience of how my
program /could/ look. I'm sure there are freeware fonts and such resources
somewhere on the net. 

I'm open to suggestions. :) 

 -Bob Whiteman 

-Original Message- 
From: Scott Johnson (Bellevue) 
To: Palm Developer Forum 
Sent: 8/3/2000 4:36 PM 
Subject: RE: Clipper mini-font 

 From: Bob Whiteman [mailto:[EMAIL PROTECTED] 
 I was able to break out 16 fonts from Clipper, 
 including the one I was interested in. 

Be careful Bob -- extracting the Clipper 'NFNT' resources does work fine in
a technical sense, but when I inquired about this several months ago, I was
told by a Palm representative that it wouldn't be legal to do this,
license-wise.  I'd suggest you contact Palm directly and see what they say
about this. 

-slj-


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: Clipper mini-font

2008-05-29 Thread Bob Whiteman
AHA! I had used pilot-xfer and pilot-file to break apart Clipper.prc. It
turns out that something about pilot-file failed and I only got half the
resources. Trying again yielded the NFNT resources. Thank you for your help,
I was able to break out 16 fonts from Clipper, including the one I was
interested in.

-Bob Whiteman

 -Original Message-
 From: Ben Combee [mailto:[EMAIL PROTECTED]
 Sent: Thursday, August 03, 2000 3:27 PM
 To: Palm Developer Forum
 Subject: Re: Clipper mini-font
 
 
 Bob Whiteman [EMAIL PROTECTED] wrote in message
 news:[EMAIL PROTECTED]
 
  Thanks for the tip, Tom. I've poked around inside 
 Clipper.prc. None of the
  resources look promising because they're all bitmaps, 
 icons, forms or
  strings...nothing that looks like a font resource.
 
  I did find a couple occurrences of Font and 'NFNT' inside 
 the code 1
  resource. One occurs near OpenFont and the other occurs near
 CloseFont.
  Now my problem is that I don't know how to properly grab 
 the structure out
  of clipper. Does anyone have any hints on how to grab this font?
 
 Looking at Clipper (at least in 3.2) with RsrcEdit directly 
 on the Palm
 device shows a bunch of NFNT resources, numbered 30128 
 through 30143.  Did
 you just look at the PRC file exported from POSE or did you 
 poke around on
 an actual device.
 
 
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: Clipper mini-font

2008-05-29 Thread Bob Whiteman
Thanks for the tip, Tom. I've poked around inside Clipper.prc. None of the
resources look promising because they're all bitmaps, icons, forms or
strings...nothing that looks like a font resource.

I did find a couple occurrences of Font and 'NFNT' inside the code 1
resource. One occurs near OpenFont and the other occurs near CloseFont.
Now my problem is that I don't know how to properly grab the structure out
of clipper. Does anyone have any hints on how to grab this font?

 Thanks,
 -Bob Whiteman

 -Original Message-
 From: Tom Zerucha [mailto:[EMAIL PROTECTED]
 Sent: Thursday, August 03, 2000 1:18 PM
 To: Palm Developer Forum
 Subject: Re: Clipper mini-font
 
 
 On Thu, Aug 03, 2000 at 11:49:29AM -0700, Bob Whiteman wrote:
  The clipper appliation that's in the ROM for Palm VII 
 devices apparently has
  a special mini font used for some data displayed by .pqa 
 files. Is this a
  built-in font on the Palm VII? If so, is it available on 
 other ROMs as well?
 
 It is in the Clipper resource database.  You would have to open
 clipper (as resource DB) to access that font.
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/

 


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Converting Palm fonts to X .pcf fonts (was RE: Creating fonts)

2008-05-29 Thread Bob Whiteman
Thank you Mostapha, with that lead I was able to find a couple tools capable
of generating Palm fonts.

Now my next problem is a bit more difficult:

I would like a Unix X application to be able to display these Palm fonts. Is
there a utility which can convert Palm fonts, such as the .pft files
generated by FontEdit, into .pcf format?

 Thanks,
-Bob Whiteman

 -Original Message-
 From: Mostapha BOUTERFASS [mailto:[EMAIL PROTECTED]
 Sent: Thursday, August 03, 2000 11:45 AM
 To: Palm Developer Forum
 Subject: Re: Creating fonts
 
 
 personnaly i use Pilot Font Editor
 
 Mostapha Bouterfass
 
 - Original Message -
 From: Bob Whiteman [EMAIL PROTECTED]
 To: Palm Developer Forum palm-dev-forum@news.palmos.com
 Sent: Thursday, August 03, 2000 6:45 PM
 Subject: Creating fonts
 
 
  Palm OS 3.0 and later have FntDefineFont, but there's no 
 information about
  the format of fonts or about supported tools to generate 
 Palm fonts. One
 web
  page in the Knowledge Base mentioned that there are 3rd party tools
  appearing which allow one to create Palm fonts, but there 
 was no more
  specific information.
 
  So how does one create a Palm font?
 
 -Bob Whiteman
 
  --
  For information on using the Palm Developer Forums, or to 
 unsubscribe,
 please see http://www.palmos.com/dev/tech/support/forums/
 
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Clipper mini-font

2008-05-29 Thread Bob Whiteman
The clipper appliation that's in the ROM for Palm VII devices apparently has
a special mini font used for some data displayed by .pqa files. Is this a
built-in font on the Palm VII? If so, is it available on other ROMs as well?

   -Bob Whiteman


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Creating fonts

2008-05-29 Thread Bob Whiteman
Palm OS 3.0 and later have FntDefineFont, but there's no information about
the format of fonts or about supported tools to generate Palm fonts. One web
page in the Knowledge Base mentioned that there are 3rd party tools
appearing which allow one to create Palm fonts, but there was no more
specific information.

So how does one create a Palm font?

   -Bob Whiteman


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: How to intercept Graffiti keyboard command?

2008-05-29 Thread Bob Whiteman
Really? That's not what I would've expected. Note that if you're using 
the usual event loop, your event handlers may not see the event. 

This is the kind of event loop you usually see: 

do { 
  EvtGetEvent(); 
  if (!SysHandleEvent()) 
if (!MenuHandleEvent()) 
  if (!AppHandleEvent()) 
FrmHandleEvent(); 
} while (event.eType != appStopEvent); 

If you're not seeing it, maybe the keyDownEvent with vchrKeyboardNumeric 
is handled by the SysHandleEvent(), so none of your event handlers ever 
see it. You may need to insert another event handling function above 
SysHandleEvent. 

 -Bob Whiteman 

-Original Message- 
From: Fitzsimons, Jeff 
To: Palm Developer Forum 
Sent: 8/2/2000 11:05 AM 
Subject: RE: How to intercept Graffiti keyboard command? 



Unfortunately, my keyDownEvent handler doesn't even trigger a breakpoint 
when the '123' is tapped, so it doens't appear to generate _any_ kind of 
key 
event.  At least, not one that my app ever sees. 

Jeff 

 -Original Message- 
 From: Bob Whiteman [SMTP:[EMAIL PROTECTED] 
 Sent: Tuesday, August 01, 2000 4:45 PM 
 To:   Palm Developer Forum 
 Subject:  RE: How to intercept Graffiti keyboard command? 
 
 I beleve that when the user hits the silkscreened 123 button you'll 
see a 
 keyDownEvent with a character of vchrKeyboardNumeric. 
 
-Bob Whiteman 



-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: How to intercept Graffiti keyboard command?

2008-05-29 Thread Bob Whiteman
I beleve that when the user hits the silkscreened 123 button you'll see a
keyDownEvent with a character of vchrKeyboardNumeric.

   -Bob Whiteman

 -Original Message-
 From: Fitzsimons, Jeff [mailto:[EMAIL PROTECTED]
 Sent: Tuesday, August 01, 2000 4:28 PM
 To: Palm Developer Forum
 Subject: How to intercept Graffiti keyboard command?
 
 
 
 Hi all,
 
 My app's main form has no input fields but accepts 
 alphanumeric input (it's
 a calculator, of sorts, but there's not room to display a 
 numeric keypad all
 the time).
 
 I would like to pop up an on-screen numeric keypad when the 
 user taps on the
 little '12345' dot in the silk-screened Graffiti area.  I 
 realize I'd have
 to write my own keypad, since the system's 
 SysKeyboardDialog() requires an
 active field.  However, I cannot seem to find any event 
 relating to this.
 
 Is it possible to intercept the '12345' tap before the system 
 gets ahold of
 it?
 
 Jeff
 
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: Symbol 1500

2008-05-29 Thread Bob Whiteman
Thusitha,

One approach you could use would be to write your own application which uses
the scanner to read information, and then when a complete address book entry
has been scanned, open the Address Book application's database and create a
new record. Because the source code of Address Book is available you can
find out the exact format of the data in the Address Book database.

  -Bob Whiteman

 -Original Message-
 From: Thusitha Batuwitage [mailto:[EMAIL PROTECTED]
 Sent: Tuesday, August 01, 2000 6:58 AM
 To: Palm Developer Forum
 Subject: Symbol 1500
 
 Hi
 
 Is there a way to be able to use the scanner in address book.
[...]
 So back to my question, how do you accomplish the above task.
 (I do not want to modify the address book code itself).
 I would appreciate any thoughts on this.
 
 Thanks
 TS


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: no-cache browser

2008-05-29 Thread Bob Whiteman
Oddly enough, I never received the original post by Timothee Masquelier, but
I saw the reply below.

Timothee:
Browse-it, the browser from Pumatech which will be available through
Intellisync.com, supports the no-cache flag. If you'd like more info about
Browse-it, please email me directly.

Richard:
Client caching is even more important on Palm devices because the
connections are very different from desktop connections. If a user doesn't
have a modem handy, can't get reception with wireless, etc. then all the
user has left left is pages stored in the cache on the device. With
Browse-it, the original HTML and images aren't stored; a much smaller
encoded version of the page is stored.

If one's device is really strapped for memory the cache size can be set to 0
bytes. Pages won't be stored on the device.

 -Bob Whiteman

 -Original Message-
 From: Richard M. Hartman [mailto:[EMAIL PROTECTED]
 Sent: Monday, July 31, 2000 11:02 AM
 To: Palm Developer Forum
 Subject: Re: no-cache browser
 
 
 You mean that the browsers -are- caching pages?
 I would've thought that to be a huge drain on memory
 and an un-feature on a device as memory-tight as
 a Palm...
 
 --
 -Richard M. Hartman
 [EMAIL PROTECTED]
 
 186,000 mi/sec: not just a good idea, it's the LAW!
 
 Timothee Masquelier wrote in message [EMAIL PROTECTED]...
 
 Hi there!
 Sorry about the non-development question, but do you guys
 know a browser for Palm that would support the:
 META HTTP-EQUIV=pragma CONTENT=no-cache
 tag ?
 Thanks,


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: Message rejected

2008-05-29 Thread Bob Whiteman
The person's original plan was to use the category attribute of individual
records to split a single Palm database into multiple tables. This
category attribute is the one that's limited to 16 values. Though he
only needs 14 tables, in the future if he needs to add more tables to the
database, in which case he'll have to replace that mechanism with
something else. I was just warning him of that possibility.

If he instead uses the first byte of each record or some other mechanism
to replace the built-in category mechanism he won't hit that limit. I
think it would be simpler to just use multiple Palm databases, though.

   -Bob Whiteman

-Original Message-
From: Dave Lippincott
To: Palm Developer Forum
Sent: 7/27/2000 12:34 PM
Subject: Re: multi table relational databases

What does having 14 Tables/DBs have to do with the Palm only having 16
categories?  (really only 15 if you count the obligatory 'all'
category).
Category use is definable or ignoble by the programmer.  To get around
the #
limitation, you just ignore the PDB built in category mechanism and use
your
own if need be.  I've seen applications from other developers with
essentially an unlimited # of categories.

- Original Message -
From: Bob Whiteman [EMAIL PROTECTED]
To: Palm Developer Forum palm-dev-forum@news.palmos.com
Sent: Thursday, July 27, 2000 1:58 PM
Subject: RE: multi table relational databases


 Well 14 tables raises a new concern. You can only have 16 categories in
 a Palm database. If you were to add a couple more tables to your already
 extensive database you'll be out of luck.


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: multi table relational databases

2008-05-29 Thread Bob Whiteman
Well 14 tables raises a new concern. You can only have 16 categories in a
Palm database. If you were to add a couple more tables to your already
extensive database you'll be out of luck.

Having multiple handles open at the same time is not an issue in itself.
It's not like an Oracle or Sybase database where you have to be concerned
about a limited resource such as database connections. The only issue with
that is managing 14 DmOpenRefs instead of just one.

One other reason to use separate Palm databases for each table is that it's
more maintainable. For instance: Palm databases have a version attribute. If
you update your application and update one of your tables you can simply
increment that version attribute of the Palm database in new releases. You
can easily detect when a user has an old version of that table and upgrade
or delete it. If all your tables are in one Palm database, however, you only
have one version for all your database tables.

-Bob Whiteman

 -Original Message-
 From: K. Chugh [mailto:[EMAIL PROTECTED]
 Sent: Thursday, July 27, 2000 11:26 AM
 To: Palm Developer Forum
 Subject: Re: multi table relational databases
 
 
 
 hi bob.  thanks for the reply.  i am looking at like 14 or so 
 tables, and i figured i don't want all those handles open at the same
 time.  this is my first database program so i'm not sure if 
 this is a rational concern or not.  some of the tables will 
 have only a
 few records, while others will have as many as a few thousand 
 records.  do you think i should actually implement one database for
 each table instead of one database with a table id?
 
 thanks,
 kevin


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: Stepping into OS source code, and Palm OS 3.5 bug

2008-05-29 Thread Bob Whiteman
I forgot to mention that I had a great deal of trouble diagnosing this
problem. It would've helped if I could have stepped into the OS source code
for some of the functions. I know that the Palm OS 3.5 source code hasn't
been released yet, but if I had that would I be able to set up the
CodeWarrior debugger to step into OS functions with full C source code
support?

   -Bob Whiteman

 -Original Message-
 From: Bob Whiteman [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, July 26, 2000 11:50 AM
 To: Palm Developer Forum
 Subject: Stepping into OS source code, and Palm OS 3.5 bug
 
 
 Hi all,
 
 I have a program which includes a set of small buttons across 
 the bottom of
 the main form. To manage the overall size of this set of 
 buttons I have a
 gadget which overlaps the buttons. On all OSes other than 
 3.5, this works
 fine. But on Palm OS 3.5, the buttons which overlap the 
 gadget never get a
 ctlSelectedEvent. It looks like 3.5 is ignoring the fact that 
 the gadget is
 set to unusable.
 
 For now I've replaced the gadget code with something 
 clunkier. Is this a
 known issue with Palm OS 3.5?
 
   -Bob Whiteman
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: multi table relational databases

2008-05-29 Thread Bob Whiteman
I've implemented a fairly simple relational database for an appliation.

One problem with your suggested approach below is that it may be very tricky
to sort the tables. Also, searches and inserts will take longer because they
have to deal with a much larger Palm database.

I used separate Palm databases for each table in the logical database. That
way each table can have its own simple sort routine.

Is there any particular reason why you don't want to create multiple Palm
databases?

  -Bob Whiteman

 -Original Message-
 From: K. Chugh [mailto:[EMAIL PROTECTED]
 Sent: Thursday, July 27, 2000 7:45 AM
 To: Palm Developer Forum
 Subject: multi table relational databases
 
 
 
 hi- i'm paranoid about introducing a new layer to my apps by using
 sybase ultralite, etc.  does anyone know of any techniques for using
 multi table databases?  i was thinking of opening one 
 database and using
 the category for the table identifier then just inserting 
 records in the
 appropriate table.  has anyone tried this?
 
 thanks,
 kevin
 
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: Programmatically perform a HotSync

2008-05-29 Thread Bob Whiteman
Chris Percival mentioned another approach that might work. Here's some more
details:

Chars.h defines the following character:

  #define vchrHardCradle 0x0209 // Button on cradle pressed

This character can be sent in a keyDownEvent using the EvtAddEventToQueue().
My guess is that this would simulate the user pressing the cradle button,
which is generally configured to do a local hotsync (though the user can
change this behavior).

  -Bob Whiteman

 -Original Message-
 From: Eric Sun [mailto:[EMAIL PROTECTED]
 Sent: Thursday, July 27, 2000 9:20 AM
 To: Palm Developer Forum
 Subject: RE: Programmatically perform a HotSync
 
 
 If we need to short out some pin on the port to do this, I don't think
 Metrowerks or Palm has API that controls the phsyical hardware.  
 
 I know that with some of the Symbol units, the hotsync is an 
 application on
 the unit (i.e. not a hardware button, but an application 
 button).  Now, how
 can we get those code into our own program, is another question.
 That is kind of what's needed.  To be able to access that 
 HotSync program
 within my code.
 
 And thanks again for all the help so far!  It is much appreciated!
 
 Thanks,
 __
 Eric C.F. Sun
 Senior Software Developer
 RAD Specialist 
 Q.Data Inc.
 Tel: (905)477-1367 x.277
 Date: July 27, 2000   Time:12:07


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: Mutually-exclusive checkbox

2008-05-29 Thread Bob Whiteman
You can do this by creating a number of checkboxes on the form and then
assigning a Group ID to them. Checkboxes with the same group ID are treated
as a set of radio buttons. (Unfortunately the Palm OS draws them the same
whether they're grouped or not, so for the sake of the user you may want to
do something to visually group them on the form.)

 -Bob

 -Original Message-
 From: Wang, Nancy [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, July 26, 2000 3:42 PM
 To: Palm Developer Forum
 Subject: Mutually-exclusive checkbox
 
 
 Hello All,
 
  I'd like to ask whether there's any setting for 
 mutually-exclusive checkbox
 (like radio box) in Palm constructor. I can develop some code 
 to implement
 the mutual exclusion. Just in case there's an easy way, I 
 don't like to
 reinvent the wheel. Thanks.
 
 Nancy
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Palm OS 3.5 list arrows

2008-05-29 Thread Bob Whiteman
I have a program which creates list controls on the fly (LstNewList) and
moves them around the display (FrmSetObjectPosition) and destroys them
(FrmRemoveObject). I use a clipping rectangle to keep this movement within a
display area on the main form. This works properly on all OSes between 3.0
and 3.3, but on 3.5 there's a problem.

The 3.5 list control added arrows at the top and bottom which make it easy
for the user to scroll the list. The problem occurs when the list overlaps
the clipping region and I call LstDrawList. The majority of the list control
is clipped properly but the arrow is drawn outside the clipping region,
violating the WinSetClip call. This ends up overwriting parts of the main
form outside the display area on the main form.

I could redraw the rest of the main form every time this occurs, but that
would cause flickering and would significantly slow down the drawing.

Is there a fix for this issue?

  -Bob Whiteman


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Stepping into OS source code, and Palm OS 3.5 bug

2008-05-29 Thread Bob Whiteman
Hi all,

I have a program which includes a set of small buttons across the bottom of
the main form. To manage the overall size of this set of buttons I have a
gadget which overlaps the buttons. On all OSes other than 3.5, this works
fine. But on Palm OS 3.5, the buttons which overlap the gadget never get a
ctlSelectedEvent. It looks like 3.5 is ignoring the fact that the gadget is
set to unusable.

For now I've replaced the gadget code with something clunkier. Is this a
known issue with Palm OS 3.5?

  -Bob Whiteman


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


OS Compression? (was: RE: m100 EFIGS oddness)

2008-05-28 Thread Bob Whiteman
Application compression in the OS, huh? Is the decompression algorithm
exposed anywhere? What algorithm is used?

Also out of curiosity, bitmaps can be compressed using scan line compression
or run length compression. RLE is a pretty standard compression algorithm,
but what is scan line compression? (I'd like to decide which compression
will be better for the images in my resources, but I'd rather not have to
make that decision by trying it out on every image. Knowing the compression
algorithm would help.)

Thanks in advance,
-Bob Whiteman

 -Original Message-
 From: David Fedor [mailto:[EMAIL PROTECTED]
 Sent: Friday, September 08, 2000 4:06 PM
 To: Palm Developer Forum
 Subject: Re: m100 EFIGS oddness
[...]As for Security: ROM space was very tight and so they had to keep that
 application compressed in ROM, and the appropriate language of it gets
 decompressed and installed in RAM once you've chosen your language.
 Having 5 languages all available takes a good deal of memory, and 
 there wasn't quite enough without the Welcome app doing a little
 compression on the Security app.
 
 -David Fedor
 Palm Developer Support


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


PalmOS 3.5 8-bit Colour Palette

2008-05-28 Thread Bob Whiteman
The PalmOS Programmer's Companion indicates that the named HTML colour gray
(0x808080) is a member of the PalmOS palette. I checked on a device, and the
emulator, and this colour is not present.

However, the Programmer's Companion writes that only the first 231 entries
in the palette and the last entry are defined.

Summing the total number of colours up:
 216 Web-safe colours
  10 greys, giving us all posible values of grey.
+  6 named HTML colours

 232

Which seems to be consistent. However, entries 0xE6 and 0xFF are both black
in my tests. Is this an error in documentation? Or is this an error in
implementation?

If it is an error in implementation, will it be corrected in future
revisions? Will index 0xE6 become 0x808080?

 Thanks in advance,
-Bob


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: Bitmap family

2008-05-28 Thread Bob Whiteman
-Original Message-
From: [EMAIL PROTECTED]
Sent: 8/23/2000 8:05 PM

OK, let me get this straight, you can't add stuff into the bitmap
family?

Exactly.

Try Ctrl-R after highlighting Family Items. Personally I use Ctrl-K
all the time, and let Contructor set up the new item with default
values.

Wow, after myself and four other developers poking at this program for a
total of an hour, none of us found that. That's exactly what I was looking
for. I had tried clicking the space below Family Items, the title bar of
the window and a few other places, but I never noticed that clicking the
words enabled the menu items.

Thank you for pointing this one out to me.

[...]
A had problems getting used to the Mac oriented UI as well. Sure it
looks nice, but I'ld rather have something that is more friendly.

Me too...either that or a working and complete help file.

-Bob Whiteman


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Bitmap family

2008-05-28 Thread Bob Whiteman
I'm using Constructor version 1.5b7 (that's the latest version, right?) to
create a bitmap family. All I want to do is get a color bitmap created in
constructor to show up in the emulator using a Palm IIIc ROM. So here's my
steps:

Ctrl-R to create a new resource:
   Resource type Bitmap
   Resource name BMP
   Resource ID 5000
Double-click the new bitmap
   Under the Colors menu, choose 256 colors
   Under Options, choose Set Image Size and set it to 30x30
   Scribble on the bitmap in several colors.
Ctrl-R to create a new resource:
   Resource type Bitmap Family
   Resource name FAMILY
   Resource ID 5001
Double-click the new bitmap family
   Change the width and height to 30.

So... um...now what? There's an empty list of Family Items, but I can't
figure out how to add the new bitmap to the family. I can drag the bitmap
onto the dialog, but that doesn't do anything.
I can drag a form bitmap from the resource catalog onto it, but that doesn't
do anything either.
Hmm, copy the bitmap, click the bitmap family, but Paste resource is
disabled...

Wow. Let's see...

Drag BMP onto FAMILY in the list of application resources. Nope.

Click the bitmap, edit-select all, click the family, still can't paste.

Ctrl-drag? Shift-drag? Ctrl-shift-drag??

Now, I've been around many different kinds of computers and used countless
programs. I like to think I'm a computer expert. But for the life of me I
can't figure out how to create a bitmap family.

If I resort to the help file, the topic about bitmap families tells me how
to create the bitmap family but not how to add bitmaps to the family. Also,
the two images on this help page are broken with the messages:

  The picture Bitmapfam.bmp is missing!

and

  The picture Bitmapfam2.bmp is missing!

So how is this supposed to work?

  -Bob Whiteman


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Free Handle

2008-05-28 Thread Bob Whiteman
It is possible for a program in the Palm OS to have a particularly nasty
bug:

If you create a handle in database memory, attach it to a database, and then
free the handle you'll start to get Free handle errors when working with
that database.

I found and fixed such a problem in my program, but there's still one
problem left to solve: Once you have a device that is in this state, how do
you get rid of this corrupt database? Using the application launcher to
delete the application which has this database will crash with Free
handle, as will using a utility such as Insider to delete the database.
HotSync and pilot-xfer both bail when they try to do anything with the
database.

The only method of removing the database that I have found is to use
pilot-xfer to list (pilot-xfer -l) and back up all the databases on the palm
except for the corrupt one (using pilot-xfer -f on each of the files, not
pilot-xfer -b). Then hard-reset the device to clear all memory and restore
all the backed up databases.

Does anyone know of an easier way of nixing a corrupt database?

   -Bob Whiteman


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: URGENT !!!! Inet with AlmSetProcAlarm

2008-05-28 Thread Bob Whiteman
Yeah, CDPD coverage is getting there slowly, and the CDPD protocol has a
very slow and comparatively poor cell handoff mechanism, so if you're moving
at all it tends to drop connection for up to several seconds without
warning.

CDMA is a much more solid connection, and although the theoretical bandwidth
is lower, in practice the stability of connection in my opinion far
outweighs the somewhat smaller bandwidth.

The one that I want to know more about is Ricochet. I remember looking into
their 9600 baud connection and finding out that if you were moving quickly,
say on a bus or train, the handoffs couldn't happen fast enough and so the
connection couldn't be maintained. If their new 128kbaud network lacks this
limitation and has good coverage it will make all other connections
obsolete, IMO.

  -Bob Whiteman

 -Original Message-
 From: Fitzpatrick, Joe [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, August 23, 2000 12:26 PM
 To: Palm Developer Forum
 Subject: RE: URGENT  Inet with AlmSetProcAlarm
 
 
 I've actually been underwhelmed with the Omnisky.  Part of it 
 is that the
 coverage seems terrible in Southern Cal.  The first time I 
 saw one I tried
 to pick it up and use it blind (always a good usability test) 
 and couldn't
 get anywhere.  
 
 On the other hand, it looks nicer than a VII... ;)
 
 -jjf
 
 -Original Message-
 From: Bob Whiteman [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, August 23, 2000 6:50 AM
 To: Palm Developer Forum
 Subject: RE: URGENT  Inet with AlmSetProcAlarm
 
 
 Actually the OmniSky device, as well as the other Novatel 
 Minstrels I've
 used, have a sleep mode. In this mode the Minstrel stays 
 registered with the
 CDPD network in a way analagous to a cell phone that's turned 
 on but not
 currently making a call. When the Minstrel is in this mode it 
 can receive a
 connection that includes an identifier that's analagous to a TCP port
 number. The Minstrel application on the Palm receives this 
 connection and
 based upon the port number launches a particular application 
 and sends it
 the data that was sent in the connection.
 
 So basically it is possible to receive notifications via the 
 CDPD network
 and Novatel Minstrel devices. The major drawbacks are that 
 the sleep mode
 and port settings are comparatively difficult to configure, 
 and that this
 sleep mode drains the Minstrel batteries. In my experience 
 the battery drain
 was severe, and that far outweighed the usefulness of 
 notification...but but
 maybe that's because I had a poor battery in my Minstrel.
 
   -Bob Whiteman
 
 -Original Message-
 From: Fitzpatrick, Joe
 To: Palm Developer Forum
 Sent: 8/22/2000 10:58 PM
 Subject: RE: URGENT    Inet with AlmSetProcAlarm
 
 I'm not sure why you would need to create a shared library.  Why not
 just schedule an alarm like other applications (ex. Datebook,
 Clockworks, etc.) and do your work in response to the alarm?
 
 As for feasibility, neither a Palm VII or an Omnisky equipped V is
 particularly well suited to background internet polling.  
 The VII will
 not make a wireless connection unless the antenna is up.  Although I
 haven't played with it as much, the Omnisky modem/software also seems
 'user initiated transaction' oriented.
 
 Neither unit is blindingly fast and can basically hang the system for
 fairly long periods of time.  I can't speak for other users, but a
 program would only need to freeze my Palm for 10-20 seconds once
 while I'm trying to enter a phone number, etc. for me to not only
 delete it, but pay a huge guy named Spike to beat up the author.
 
 People have been talking more sophisticated wireless options as
 Handspring modules, but I don't know what (if any) products are
 actually shipping.
 
 Good Luck,
 -jjf
 
 -- 
 For information on using the Palm Developer Forums, or to unsubscribe,
 please see http://www.palmos.com/dev/tech/support/forums/
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: Timed Splash Screen

2008-05-28 Thread Bob Whiteman
You can use the alarm manager to send a launch code to your application
after a specified amount of time. Look at the doucmentation for
AlmSetAlarm(). That way your application's event loop keeps running, but
after a specified amount of time it will be notified that it's time to move
on to the next form.

   -Bob Whiteman

 -Original Message-
 From: Timothy Astle [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, August 23, 2000 11:37 AM
 To: Palm Developer Forum
 Subject: Re: Timed Splash Screen
 
 
  Why not just load the next form using FrmGotoForm()?  You 
 probably don't
  need to generate an event, etc.. FrmGotoForm should handle 
 all this for
  you.
 
 Maybe I misworded my problem.  I do have a FrmGotoForm(...) 
 function which
 sets it to the next form.  However, there are no events being 
 sent to cause
 my event handler to tell it that it's time to move to the 
 next form.  If I
 click on the screen constantly, it will go to the next form 
 onces the time
 difference is valid.  If it isn't, it stays put.
 
 I need a way to constantly poll.  Right now I'm getting my 
 events from the
 main event loop.
 
 EvtGetEvent(event, evtWaitForever);
 
 However, I'm weary of using another EvtGetEvent and loop 
 inside of that
 event handler because it seems sloppy to me.  Is that the only way?
 
 +
 Timothy D. Astle
 Embedded Systems Programmer
 ALT Group Inc.
 +
 
 People who can smile when things go wrong has thought of 
 someone else to
 blame it on.
 
 
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: Get visual artifacts using WinCopyRectangle() to drag icons

2008-05-28 Thread Bob Whiteman
-Original Message-
From: Chris Dunworth
To: Palm Developer Forum
Sent: 8/22/2000 11:27 PM
[...]
When the user drags an icon up and/or to the left, a trail of old icon
images is left behind. Dragging down or to the right never causes this
problem. I cannot find errors in my drawing or saving/restore code
(which of course means their aren't any ;-) ). Does this problem as I
describe it set off any bells with any of you? I'd love to hear any
theories as to why this is happening.

This sounds like a classic off-by-one error. The above problem is what you
would see if the extent.x and extent.y in one or more of your RectangleType
structures was less than it should be. The classic problem with rectangles
is that you don't know if the right and bottom edges of the rectangle are
inside or outside the rectangle. I think that you're guessing that they are
inside but the Palm OS treats them as if they are outside.

  -Bob Whiteman


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: URGENT !!!! Inet with AlmSetProcAlarm

2008-05-28 Thread Bob Whiteman
Actually the OmniSky device, as well as the other Novatel Minstrels I've
used, have a sleep mode. In this mode the Minstrel stays registered with the
CDPD network in a way analagous to a cell phone that's turned on but not
currently making a call. When the Minstrel is in this mode it can receive a
connection that includes an identifier that's analagous to a TCP port
number. The Minstrel application on the Palm receives this connection and
based upon the port number launches a particular application and sends it
the data that was sent in the connection.

So basically it is possible to receive notifications via the CDPD network
and Novatel Minstrel devices. The major drawbacks are that the sleep mode
and port settings are comparatively difficult to configure, and that this
sleep mode drains the Minstrel batteries. In my experience the battery drain
was severe, and that far outweighed the usefulness of notification...but but
maybe that's because I had a poor battery in my Minstrel.

  -Bob Whiteman

-Original Message-
From: Fitzpatrick, Joe
To: Palm Developer Forum
Sent: 8/22/2000 10:58 PM
Subject: RE: URGENT    Inet with AlmSetProcAlarm

I'm not sure why you would need to create a shared library.  Why not
just schedule an alarm like other applications (ex. Datebook,
Clockworks, etc.) and do your work in response to the alarm?

As for feasibility, neither a Palm VII or an Omnisky equipped V is
particularly well suited to background internet polling.  The VII will
not make a wireless connection unless the antenna is up.  Although I
haven't played with it as much, the Omnisky modem/software also seems
'user initiated transaction' oriented.

Neither unit is blindingly fast and can basically hang the system for
fairly long periods of time.  I can't speak for other users, but a
program would only need to freeze my Palm for 10-20 seconds once
while I'm trying to enter a phone number, etc. for me to not only
delete it, but pay a huge guy named Spike to beat up the author.

People have been talking more sophisticated wireless options as
Handspring modules, but I don't know what (if any) products are
actually shipping.

Good Luck,
-jjf


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: Does app get notified when Palm switches off

2008-05-28 Thread Bob Whiteman
You might need to call KeySetMask() first. This function filters out certain
keyDownEvents. After that, you can have your application watch for
vchrAutoOff, vchrPowerOff and/or hardPowerChr. Each of these keys is
described in the OS 3.5 SDK in Chars.h

 -Bob Whiteman

 -Original Message-
 From: Richard Anderson [mailto:[EMAIL PROTECTED]
 Sent: Tuesday, August 22, 2000 8:45 AM
 To: Palm Developer Forum
 Subject: RE: Does app get notified when Palm switches off
 
 
 Hi,
 
 I dont get posted a keydownEvent when I press the power button.
 
 Rik
 
  -Original Message-
  From:   Nesse, Rustin [SMTP:[EMAIL PROTECTED]
  Sent:   22 August 2000 16:10
  To: Palm Developer Forum
  Subject:RE: Does app get notified when Palm switches off
  
  Well, there's a keydownEvent generated by pressing the 
 power button...
  might want to take a gander at the header KeyMgr.h.
  
  Hope that helps!
  -Rus 
  
  -Original Message-
  From: Richard Anderson [mailto:[EMAIL PROTECTED]
  Sent: Tuesday, August 22, 2000 4:15 AM
  To: Palm Developer Forum
  Subject: Does app get notified when Palm switches off
  
  
  Hi,
  
  Does the Palm get notified when the Palm is switched off. 
  
  If I want my app to always start from the beginning, how do I 
  do this if it
  was running when the Palm was switched off. I would like to be 
  able to close
  my app when the Palm is turned off.
  
  Thanks
  
  Rik
  
  -- 
  For information on using the Palm Developer Forums, or to 
  unsubscribe, please see 
 http://www.palmos.com/dev/tech/support/forums/
  
  
  -- 
  For information on using the Palm Developer Forums, or to 
 unsubscribe,
  please see http://www.palmos.com/dev/tech/support/forums/
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: Progress bar

2008-05-28 Thread Bob Whiteman
Why not simply use the Progress Manager? PalmOS has a built in progress bar
that's documented in the reference. Search for Progress Manager, or look
in the header files for functions beginning with Prg.

 -Bob Whiteman

 -Original Message-
 From: Van Nguyen [SMTP:[EMAIL PROTECTED]
 Sent: 18 August 2000 20:54
 To:   Palm Developer Forum
 Subject:  Progress bar
 
 Greetings everyone,
 
 I am trying to implement a progress bar for my
 application.  If you know any books or any examples
 that I can use as references, please point me to the
 right direction.
 Any suggestions would be appreciated.
 Thanks !
 
 =
 Best regards,
 
 Van Nguyen.


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


RE: 802.11b on tungsten?

2003-02-07 Thread Bob Whiteman
- Craig Belson [mailto:[EMAIL PROTECTED]] wrote:
 --- Aaron Ardiri [EMAIL PROTECTED] wrote:
 
  any reason why you cannot do TCP/IP over BT?

 Yeah - because, from my understanding, the APIs for
 BT have to be licensed from Motorola - and that's
 not an option at the moment.

The APIs for Bluetooth development on Palm OS are available as part of the Palm OS 
SDK, and they do not need to be licensed from Motorola. See 
http://www.palmos.com/dev/tools/bluetooth/ for the latest news on the Palm OS 
Bluetooth SDK.

-Bob Whiteman

=
Developer Technical Services Engineer - Comms
PalmSource, Inc.
=

--
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/



RE: quick lists question

2003-01-22 Thread Bob Whiteman
David,

I think that this Palm OS Knowledge Base article will answer your question:

http://kb.palmsource.com/cgi-bin/palmsource.cfg/php/enduser/std_adp.php?p_faqid=293

-Bob Whiteman

=
Developer Technical Services Engineer - Comms
PalmSource, Inc.
=


-Original Message-
From: David McNab [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, January 22, 2003 6:39 PM
To: Palm Developer Forum
Subject: quick lists question


I'm using a list, where I've set the choices with LstSetListChoices().

If, at a later stage, I call LstSetListChoices() again, does PalmOS free
the memory of the choices list and choice strings, or is that my
responsibility?

Thx
David



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/


--
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/



RE: DmAttachRecord, DmResizeRecord problems

2003-01-16 Thread Bob Whiteman
Bill,

When you use MemHandleNew() the handle that is allocated is in the dynamic heap. The 
dynamic heap is freed when your application exits, so attaching such a handle to a 
database will corrupt that database.

Instead of using MemHandleNew(), use DmNewHandle(). This allocates the handle in 
database memory, ensuring that it can safely be attached to your database. It won't be 
freed when your application exits.

  -Bob Whiteman

=
Developer Technical Services Engineer - Comms
PalmSource, Inc.
=

-Original Message-
From: Bill Heidler [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, January 15, 2003 6:17 PM
To: Palm Developer Forum
Subject: DmAttachRecord, DmResizeRecord problems


I am starting to develop the DB part of my app; I have records that are
linked
and some potential performance issues, such that I want my record indexes
to be stable (records will not change index value or be deleted except
during
HotSync).  However, the records may be updated and change in size (shrink
or expand).  Records will typically be several hundred bytes or less, but
could
potentially be much larger.  I would like to impose as few restrictions on
the
record sizes as possible.

When a record is updated, the old data will be completely replaced by the
new
data.

My first solution approach for updating the records was to use
DmResizeRecord()
to reduce the size of the old record (to 0 if possible, thus holding my
record slot
only), allocate a memory buffer using MemHandleNew() ), stuff it with the
new data
and then use DmAttachRecord() to replace the old record chunk.  Problem is,
when I exit the app I get a Memory Leak detected for the chunk that I
allocated and
attached.  I like the Memory Leak detection feature of the POSE, so don't
want to
have to ignore messages like that (and I'm not sure what the ramifications
would be
on the device anyway).

Second solution approach is to do another DmResizeRecord() instead of the
DmAttachRecord(), then copy the data from the memory buffer and then delete
the buffer.  That gets rid of the memory leak, but when I did this I got a
Chunk
Locked error on the second DmResizeRecord().  I didn't seem to get the error
all the time, but could not pin down the circumstances when I got it and
when I
didn't.

The workaround to that is to unlock the chunk associated with the record
(the
handle that gets returned from the first DmResizeRecord() call).  That seems
to work; but I worry that the chunk is not being locked all the time.  I
have gotten
Chunk Underlocked errors from the MemHandleUnlock() once or twice.  Again,
I haven't tested enough to pin down the circumstances.

I am running PalmOS v 3.5.1, using CodeWarrior 8.0 .

Thank you for any help or comments,
Bill Heidler
 [EMAIL PROTECTED] 




-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/


--
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/



RE: previously compilable code now chokes CW

2003-01-14 Thread Bob Whiteman
David,

When I've encountered problems like this it's been due to bugs in header files, in a 
#define in a header file, or in a prefix file. One thing that may help you locate the 
problem is to look at the preprocessed version of the source file. Assuming you're 
using CodeWarrior you can right-click the source file in your project listing and 
choose Preprocess. This shows the actual text being sent to the compiler, after 
accounting for headers, #defines and the prefix file.

From the error you're reporting I would guess that you have an extra keyword in some 
file that's implicitly or explicitly included in your source file. Looking through 
the preprocessed source file may make it obvious.

 -Bob Whiteman

=
Developer Technical Services Engineer - Comms
PalmSource, Inc.
=

-Original Message-
From: David Beers [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, January 14, 2003 9:39 AM
To: Palm Developer Forum
Subject: previously compilable code now chokes CW


I've been working on a project that uses the MemoPad source as a starting
point.  All has gone well up until now and I've successfully compiled and
tested various versions.  Then I made some modifications to handle
additional text fields and record structures to accept the data.  Suddenly,
the code generates compile errors on the very first line after the
preprocessor directives in the first file of the project--code that has
compiled before and hasn't been changed.

Specifically, the compiler hits the first definition for a typedef structure
and tells me that it expected a '{' after the typedef keyword.  Usually this
kind of thing indicates a syntax error in a previous line, but there are no
previous lines except for some #defines and these haven't been changed at
all.  In fact this part of the code hasn't changed from the original MemoPad
source.

Not having the faintest clue what might cause the CW compiler to fail on
code that worked perfectly fine before, I tried some different things
(obviously grasping at straws):
1.  Retracing some of my recent steps, most notably replacing a file that
contained functions for beaming that I didn't need and restoring the calls
to those functions to the way they were in MemoPad.
2.  Checking the original MemoPad code to make sure it still compiles
normally.  It does.
3.  Shifting around the file order within the segment.
4.  Creating a fresh project and recreating the files in it.

None of this changed the situation.  Is it possible that a syntax error
farther down in the file could cause code that precedes it to fail to
compile? If not, what else could be the cause of this?

TIA,
David


-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/


--
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/



NetLib and EvtResetAutoOffTimer() (was Re: Procedure alarms)

2002-04-09 Thread Bob Whiteman

Thanks for all the help Danny. Following your advice I was able to get
procedure alarms working, along with proper deletion protection.

Unfortunately something is still calling EvtResetAutoOffTimer(). I've done a
search through the OS source code and found all occurrences of
EvtResetAutoOffTimer() and EvtSetAutoOffTimer(). I don't see it appearing in
any of the functions that my code calls. The major suspect is NetLib, since
Palm doesn't release the source code for it. Do any of the functions in
NetLib call EvtResetAutoOffTimer()?

   Thanks,
   -Bob Whiteman

Danny Epstein [EMAIL PROTECTED] wrote in message
news:83029@palm-dev-forum...

  The documentation talks about the LCD if the device was off at the time,
 but
  the version of the docs that I have don't say anything about the
auto-off
  timer.

 I didn't mean to imply that this behavior was documented, just that it's
 what I'd expect. There is a single API that we generally use for (a)
 resetting the auto-off timer and (b) turning on the LCD (if it's off):
 EvtResetAutoOffTimer. So it's not surprising that launch-code alarms reset
 the auto-off timer; we know they turn on the LCD.

 I'm not sure why the trigger launch resets the auto-off timer  turns on
 the LCD; perhaps it would seem weird if the alarm sound played with the
LCD
 off. It's obvious why the display launch resets the auto-off timer 
turns
 on the LCD. It needs to show the user something, and they need time to
look
 at it.

 Apps that use alarms for non-UI stuff, like polling hardware, should use
 procedure alarms.

  I think that my app can safely use the
  sysNotifyDeleteProtectedEvent notification to do the cleanup.

 If you require Palm OS 4.0 or later, then you should be fine.

  This time I was actually asking specifically about AlmSetProcAlarm() and
  deletion because I don't know whether the deletion attempt will simply
 fail
  with an error message...that may be sufficient for this app.

 Perhaps I was a bit terse. :) Lemme try again...

 For launch-code alarms, you don't have to worry about unregistering; it's
 taken care of automatically when your app is deleted.

 Procedure alarms require a callback to remain at a fixed address in
memory.
 To satisfy this requirement, you need to lock your code resource. It's
 automatically locked while your app is running, but you want it to remain
 locked when your app quits, so you need to lock it again. When your app
 exits, the OS will unlock your code resource once, but it'll still have a
 lock count of one. This will cause Palm OS to complain, at least on debug
 ROMs - unless you protect your database. This is how you indicate to Palm
OS
 that you know what you're doing. :) If you protect your database, then the
 user will get an error when they try to delete it - unless you register
for
 sysNotifyDeleteProtectedEvent and handle it as I described: unregistering
 with the Alarm Manager, unlocking your code resource, and unprotecting
your
 database. Or you can just live with not allowing the user to delete the
app.
 They can always do a no-notify reset to delete the app. This is the best
you
 can do on Palm OS 3.5 and earlier.

 Note that a procedure alarm should never be allowed to fire without a
 valid callback address. It is your job to ensure that this never happens.
 The recipe I described above prevents this from ever happening. So the
 answer to your question what happens when a procedure alarm fires after
the
 app was deleted? is that this should never be allowed to happen and the
 results are undefined. In other words, bad things happen. :)
 -
 Danny





-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/



Quick off on

2002-04-05 Thread Bob Whiteman

I've found a bug in a driver which can be avoided by powering the device
off. I'm trying to programmatically power the device off and then
immediately back on again.

My code successfully enqueues a keyDownEvent with chr = vchrAutoOff, and the
device sleeps as expected. I also set an alarm for TimGetSeconds() + 1 so
the device will wake up one second later. The result is that the device
doesn't sleep. Apparently the alarm is triggered before the device sleeps,
so it never fully goes to sleep.

To make sure the alarm is set as late as possible in the sleep process I
register for the sysNotifySleepNotifyEvent. I use a high priority value of
240 so my program will receive the notification last. While handling the
sysNotifySleepNotifyEvent I set the alarm. The results are the same.

If instead I set the alarm for TimGetSeconds() + 2 the device always sleeps
as expected, but it can take 6-10 seconds to wake up again, which is too
long for my application.

Can anyone suggest a reliable way to put the device to sleep and wake it up
quickly?

Thanks,
  -Bob Whiteman



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/



Re: Iterating through DB

2002-04-05 Thread Bob Whiteman

If you're just iterating through all the records anyway (since the category
argument to DmQueryNextInCategory() is dmAllCategories) why not just use
DmQueryRecord()?

Untested code:


totalNumber = DmNumRecords( gSRWorkDB );
for ( iRec = 0; iRec  totalNumber; iRec++ ) {
  recordH = DmQueryRecord( gSRWorkDB, iRec );
  if ( recordH ) {
...
  }
}


   -Bob Whiteman


Edward P. Ross [EMAIL PROTECTED] wrote in message
news:82978@palm-dev-forum...

 I am iterating through a database and getting the number of records that
match the search criteria as seen below.  Problem is
 that p1 gets stuck on the first value and never changes.  It does loop
through the correct num of times but p1 stays the same.
 It's probably something stupid but it's Friday...

 Any help would be appreciated.

 Thanks,
 Ed

 // Code to visit every record:
for (i = 0; i  totalNumber; i++) {
recordH = DmQueryNextInCategory (gSRWorkDB, pos,
dmAllCategories);

if (recordH) {
 skelSRWorkDBType * p1 = (skelSRWorkDBType *)
MemHandleLock(recordH);

if (p1) {
 if ((StrCaselessCompare(selectedClientText, (Char *)
(p1-PUN)) == 0)  (p1-Date = daysInRangeL) 
 (p1-Date = daysInRangeH)) {
  number = number + 1;
 }
 MemHandleUnlock(recordH);
}
}
pos++;
}







-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/



Procedure alarms

2002-04-05 Thread Bob Whiteman

I've discovered that when you set an alarm via AlmSetAlarm() and the alarm
is triggered, the alarm code in the OS calls EvtResetAutoOffTimer().
Unfortunately this means my program, which does something every 30 seconds,
keeps the device on forever.

I've also discovered that if you use AlmSetProcAlarm() to set a procedure
alarm, the alarm code in the OS doesn't mess with the auto-off timer.

I'd like to use a procedure alarm, but before I rearrange all this code I
need to figure out one scenario: If I lock my application's code resource
and pass that to AlmSetProcAlarm(), what happens when the user deletes my
application? Does the delete fail with a generic error message? Or does the
delete succeed, but the next time the alarm is triggered the device crashes?
Or something else?

 -Bob Whiteman



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/



Re: Procedure alarms

2002-04-05 Thread Bob Whiteman

  I've discovered that when you set an alarm via AlmSetAlarm() and the
alarm
  is triggered, the alarm code in the OS calls EvtResetAutoOffTimer().
  ...
  I've also discovered that if you use AlmSetProcAlarm() to set a
procedure
  alarm, the alarm code in the OS doesn't mess with the auto-off timer.

 Correct. That's how it's supposed to work.

The documentation talks about the LCD if the device was off at the time, but
the version of the docs that I have don't say anything about the auto-off
timer. I found out about the auto-off timer by testing my app and then
looking at the OS source code in AlarmMgr.c.

  If I lock my application's code resource
  and pass that to AlmSetProcAlarm(), what happens when the user deletes
my
  application?

 I think I covered this in my answer to your last question:

   http://www.escribe.com/computing/pcpqa/m57070.html

I appreciate the help. I think that my app can safely use the
sysNotifyDeleteProtectedEvent notification to do the cleanup.

This time I was actually asking specifically about AlmSetProcAlarm() and
deletion because I don't know whether the deletion attempt will simply fail
with an error message...that may be sufficient for this app. (I have a hard
deadline looming, so the less new code the better.)

Thanks again Danny,
  -Bob Whiteman



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/



Leftovers from deleting applications

2002-04-02 Thread Bob Whiteman

If I set an alarm using AlmSetAlarm() and then the user deletes the
application before the alarm is triggered, does the alarm manager handle
this gracefully?

If I create a feature using FtrPtrNew() and then the user deletes the
application, does the feature manager clean up the feature automatically?

Bob Whiteman



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/



Re: Scrolling form

2002-03-15 Thread Bob Whiteman

In a previous life I worked on Browse-it, a web browser from Pumatech that
is similar to AvantGo. To support HTML forms we had to make UI controls
which are scrollable. This is a very difficult problem to solve in the
generic case of HTML forms because you have to dynamically create controls
and manage their IDs. If you know when writing the code what controls are
going to appear it's not nearly as difficult.

In order to have a control that appears to scroll onto the display you set
the position of the control while handling scroll events. If you set the
position of a control to halfway off the bottom of the display it will still
function just fine.

If you need the control to scroll beneath a toolbar at the bottom or under
the title bar at the top you have to use WinSetClip to set a clipping
rectangle whenever the OS is about to draw that control. That means
listening for certain events and setting the clipping rectangle before
calling FrmDispatchEvent(). (Do controls ever get drawn in
SysHandleEvent()?). You do NOT want to have the clipping rectangle set when
calling MenuHandleEvent() or your menus will not draw properly.

Because you just have a license agreement with a couple buttons only at the
bottom of the agreement it would be much easier to simply not display
anything below the scrolling area of the license agreement. Have it flush
with the bottom of the screen. The button drawing will never have to be
clipped. Then you only need to set the clipping rectangle when drawing the
text of the agreement so it doesn't overwrite the title bar.

Bob Whiteman
Senior Software Engineer
Pico Communications

Roar Lauritzsen [EMAIL PROTECTED] wrote in message
news:79994@palm-dev-forum...

 Consider a license agreement (this is not what I am doing, but it
 illustrates the need). You have a form of mostly text, and at the bottom
of
 the form there is an OK button that appears only when you have scrolled
down
 to the bottom.



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/



Re: Getting rid of a database after you've screwed it up ;-)

2002-03-12 Thread Bob Whiteman

Matt Disher (TiBook) [EMAIL PROTECTED] wrote in message
news:79540@palm-dev-forum...

 Getting rid of a database after you've screwed it up ;-)

 I've got an app now with an occasional Free Handle Error that makes my
 database untouchable and un-deleteable.  (that is you even think about
 looking/touching it and it crashes with MemoryMgr.c, Line 4384 Free Handle

 Is there anyway to nuke it baring a hard reset ?

 I seem to remember a system call that I cannot find that told the OS to
 cleanup after me and force databases closed after I left a pointer
dangling.

 -MD

I used to have this problem when I would free a handle that was attached as
a database record. It is a very evil bug because the only way to fix it is
to hard reset the device. I mentioned this to some of the Palm OS engineers
at last year's PalmSource expo. After looking at me with an expression of
Why in the world would you go and do that? they confirmed that there's no
straightforward way to get around this.

I suppose you could write a program that would look directly into the data
manager's structures and repair the damage, but the effort probably isn't
worth it. Better to spend your time fixing the bug that caused this
situation.

Bob Whiteman
Senior Software Engineer
Pico Communications



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/



Thousands separator

2002-03-11 Thread Bob Whiteman

I have to display some large numbers with thousands separators. To my
surprise I couldn't find a Palm OS API to do this.

StrItoA() returns a number with no separators.
StrPrintF() doesn't appear to support an option to insert thousands
separators.
StrLocalizeNumber() only changes the localization of a number that already
has thousands separators.

I know I can roll my own, but I'm surprised this isn't built in somewhere.
Did I miss something?

Bob Whiteman
Senior Software Engineer
Pico Communications



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/



Re: Thousands separator

2002-03-11 Thread Bob Whiteman

Steve Mann [EMAIL PROTECTED] wrote in message
news:79491@palm-dev-forum...
 Nope. Sounds like you did you homework. There has been source code
 posted on this forum in the past for formatting floating point
 numbers with separators. you could probably easily adapt that. If you
 can't find anything, email me privately--I have some around here
 somewhere I can send you.

I appreciate the offer. I've already rolled my own crude code that'll fit my
needs for now.

Bob Whiteman
Senior Software Engineer
Pico Communications



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/



Re: Custom gesture

2002-03-01 Thread Bob Whiteman

You have an excellent point. The hack mechanism already has a way of adding
a configuration panel to a hack, so I could simply provide a dialog which
lets the user choose what the stroke is like. Thanks for the advice.

Bob Whiteman
Senior Software Engineer
Pico Communications

Richard M. Hartman [EMAIL PROTECTED] wrote in message
news:[EMAIL PROTECTED];

 Please, PLEASE don't hard-code a specific gesture.
 Even if you can guarantee that it does not conflict _today_, it may
 conflict w/ something else _tomorrow_.



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Re: Custom gesture

2002-02-26 Thread Bob Whiteman

Ben Combee [EMAIL PROTECTED] wrote in message
news:77970@palm-dev-forum...

 McPhling is a hack that does something like this, and also has source
 code released under the GPL.  You could look at that implementation to
 see how you could implement this in your own program.

 See http://home.cfl.rr.com/mjmdlm/palm/ for details.


Thanks Ben, this is exactly what I'm looking for.

I'd rather not have any conflicts with existing programs which make these
kinds of custom gestures, so I'd like to have a unique gesture. Perhaps
you're more familiar with the existing hacks that use gestures...do you have
any suggestions for an unused gesture? I was planning on using a stroke from
Find to Calc.

Thanks,

Bob Whiteman
Senior Software Engineer
Pico Communications



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Re: Custom gesture

2002-02-26 Thread Bob Whiteman

David A. Desrosiers [EMAIL PROTECTED] wrote at 5:01AM on 2/26/2002
in message news:77987@palm-dev-forum...
 We support gestures in Plucker also, take a look.

 http://.plkr.org/


 /d

Once I took an extra w out of the URL I found some useful source code,
thanks!

It takes a dedicated developer to respond to newsgroup posts at 5 AM. :)

Bob Whiteman
Senior Software Engineer
Pico Communications



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Custom gesture

2002-02-25 Thread Bob Whiteman

I know there are several programs which provide custom gestures, such as a
stroke from Home to Calc, which perform some useful action without leaving
the current application. I'm looking for pointers on how to do this in my
application. I assume that this requires writing a hack and processing pen
events, but I'm unsure of how difficult this is going to be.

I understand I have to register the hack, keeping the appropriate code
resource locked. When my hack is called I can't assume globals or static
variables are available. I also need to take it easy on stack usage because
the code will be running on top of the current application's stack. How
limited can I expect stack space to be? How can I safeguard against a stack
overflow and elegantly fail if there's not enough left? I suppose what I'm
looking for is a general guide to writing a hack without using HackMaster. I
searched eScribe and Google but didn't find anything.

Which function do I want to hook? Should I hook SysHandleEvent() and watch
for PenDown, PenMove and PenUp events? I'd rather not hook a function that's
called so frequently... would hooking EvtProcessSoftKeyStroke() be
appropriate?

Thanks in advance,

Bob Whiteman
Senior Software Engineer
Pico Communications




-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Re: Risky tSTR

2002-02-12 Thread Bob Whiteman


Marco Pantaleoni [EMAIL PROTECTED] wrote in message
news:76354@palm-dev-forum...

 On Mon, Feb 04, 2002 at 10:40:29AM -0800, Bob Whiteman wrote:
 
  char *GetResourceString( UInt16 id ) {
static char string[256];
 ...
if ( 255 == i ) string[256] = '\0';  // Make sure the string is
  null-terminated

 this writes after the end of the string. A valid index value here is
 in range 0 - 255.


You're correct, it is off-by-one. That's what I get for posting code I wrote
off the top of my head. Thanks for pointing it out.

Bob Whiteman
Senior Software Engineer
Pico Communications



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Re: Risky tSTR

2002-02-04 Thread Bob Whiteman

I think the worst risk in using an unlocked handle is that you get a bug
that is very difficult to reproduce. The program may simply crash for no
apparent reason.

Cleanup is always a burden in Palm OS programs, but there are some
techniques that can ease this. When I had a situation similar to yours I set
a maximum length of a string in a resource and wrote a utility function like
this one:

char *GetResourceString( UInt16 id ) {
  static char string[256];
  char *temp;
  MemHandle h;
  UInt16 i;

  h = DmGetResource(...);
  if ( !h ) return NULL;
  temp = MemHandleLock( h );
  i = StrLen( temp );
  if ( 255  i ) i = 255;
  MemMove( string, temp, i+1 );
  if ( 255 == i ) string[256] = '\0';  // Make sure the string is
null-terminated
  MemHandleUnlock( h );
  DmReleaseResource( h );
  return string;
}

This returns a string that is valid until the next time someone calls
GetResourceString(). Any string longer than 255 characters is truncated. No
cleanup call is needed.

I just threw this function together, so I don't guarantee that it's
bug-free. :)

Bob Whiteman
Senior Software Engineer
Pico Communications

Max Bian [EMAIL PROTECTED] wrote in message news:75519@palm-dev-forum...

 Thanks for the explaination.  I would be using it immediately after that.
As
 Steve said in another reply, it can still be risky.

 I was thinking about a cheap way to do the thing using a function without
 having   lots of UnLock and Release floating around.

 Well, I think it is better to be safe than sorry.

 Thanks.

 Max



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Re: Practical questions

2002-01-31 Thread Bob Whiteman

Scott Johnson [EMAIL PROTECTED] wrote in message
news:75200@palm-dev-forum...
 From: Ben Combee [mailto:[EMAIL PROTECTED]]
  With Handspring's driver, I can USB debug to Visors.
  I don't knowof a driver that will allow debugging to both,
  although Palm's driver will support HotSync to the Visors.

 FWIW, I found the Palm and Sony USB drivers don't support each others'
 devices, but when I installed Palm (i705) Desktop on top of Sony's, both
 drivers ended up installed and then both devices can HotSync.

 Of course due to Windows NT's fine USB support I have to *network* HotSync
 my USB devices from a Windows 2000 laptop three feet over to my NT
 development machine, but that's another story.  :-)

 -slj-

I avoid the USB problems by getting serial cradles for each of my devices. I
run the latest Palm Desktop Software. I also bought a 4-way manual serial
switch from Belkin. I plug all the different cradles into the switch box and
then plug that into my computer's serial port so I can HotSync with any
cradle without having to pull out cables. Another advantage of using serial
cables is that I can use the pilot-xfer program to manually install and
retrieve databases and programs without performing a full HotSync.

Bob Whiteman
Senior Software Engineer
Pico Communications



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Re: Last cry for help

2002-01-29 Thread Bob Whiteman

Gavin Peacock [EMAIL PROTECTED] wrote in message
news:74994@palm-dev-forum...


 Ok, I can't resist a last cry for help...

 So there is a way to list and select the active network panel
 connection. This API has existed ever since OS 2.0 when netlib was
 introduced. The API does not allow you add a new network connection,
 but you can make an existing one active.
 [...]
 I hope this helps.

 --- Gavin


Thanks for the info Gavin.

Can you solve the mystery of the missing NetServiceAPI library? I've scoured
the palmos.com web site and I can't find it. I've even found dead links to
knowledge base articles about it. Has Palm upgraded it to support new OS
versions? Is there a version which supports removing a network service?

Bob Whiteman
Senior Software Engineer
Pico Communications



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Re: Freeing Memory - Approach

2002-01-28 Thread Bob Whiteman

John,

It occurs to me that what you suggest has a subtle bug:



MemHandle h;
void *p;

h = MemHandleNew(100);
p = MemHandleLock(h);

// Use p for a while
// ...

MemPtrUnlock(p);
MemPtrFree(p);



By the time your reach MemPtrFree, p is invalid. You should never reference
a pointer after the associated handle has been unlocked because it may move
in memory.

Admittedly it's not very likely that the pointer will be moved if
MemPtrFree() immediately follows MemPtrUnlock, but it's still possible.

Bob Whiteman
Senior Software Engineer
Pico Communications

John Leung [EMAIL PROTECTED] wrote in message
news:74794@palm-dev-forum...

 For you second method, you'll still need to unlock the pointer with

 MemPtrUnlock(testPtr);



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Re: Freeing Memory - Approach

2002-01-28 Thread Bob Whiteman


Andy Yeong [EMAIL PROTECTED] wrote in message news:74842@palm-dev-forum...
 Bob Whiteman [EMAIL PROTECTED] wrote in message news:74827@palm-dev-forum...
  It is my understanding that if you use MemHandleFree() with
MemHandleNew()
  things go smoothly. The same is true if you use MemPtrFree() with
  MemPtrNew(). But if you use MemPtrFree() with MemHandleNew() the OS has
to
  call MemPtrRecoverHandle() and then call MemHandleFree() for you. It
still
  works but it takes more time.

 Wow ! That's great. But I never managed to retrieve the handle using
MemPtrRecoverHandle
 when the memory was created using MemPtrNew(). Is there any other
command whereby
 I could retrieve ?

Actually, there is no underlying handle.

I'm sorry, I have to take back my earlier comments about MemPtrFree. I just
looked at the memory manager source code and I've been mistaken.

When you allocate a handle using MemHandleNew() and then free it using
MemHandeFree() the OS uses the following functions:

MemSemaphoreReserve()
PrvHandleCheck()
PrvPtrFree()
MemSemaphoreRelease()

If you allocate a handle using MemHandleNew() and then free the pointer it
using MemPtrFree the OS uses these functions:

PrvPtrCheck()
MemSemaphoreReserve()
PrvPtrFree()
MemSemaphoreRelease()

So the only difference is that one calls PrvHandleCheck() and the other
calls PrvPtrCheck. They perform very similar checks, so the two have similar
runtimes.

 The problem that I encounter using MemPtrNew() is that it doesn't allow
 me to resize (increase) the memory size using MemPtrResize(). Thus, I
have
 to use MemHandleNew() instead. Is there work around ?

There's three resize functions: MemPtrResize(), MemHandleResize() and
DmResizeHandle(). When reducing the amount of memory allocated they always
succeed. They generally follow these steps:

1. If the amount of memory is decreasing, the resize occurs immediately and
succeeds.

2. If the memory space just beyond the current allocation is free (or can be
made free?), the resize occurs immediately and succeeds.

3. If the memory is movable it moves the memory to a larger block of space
and performs the resize.

The problem is step 3. Memory allocated using MemPtrNew() is never movable,
and handles are only movable if they are unlocked.

There's a couple ways that you can make a MemPtrResize wrapper function
which always succeeds:

The first technique would be to allocate the maximum amount of memory you
will ever need so that the allocation never increases.

The second technique would be a function like the following:

Err MemPtrResizeWell( void **pp, UInt16 cbOldSize, UInt16 cbNewSize ) {
  void *pNew;

  pNew = MemPtrNew( cbNewSize );
  if ( !pNew ) {
// Out of memory
return memErrNotEnoughSpace;
  }

  MemMove( pNew, *pp, cbOldSize );
  *pp = pNew;

  return 0;
}

There are three drawbacks to this function:

First, the pointer will change. If the pointer is being used by a field (set
by FldSetTextPtr()) then that field may cause a crash the next time it
redraws or the text changes.

Second, it has a high peak memory usage. If cbOldSize+cbNewSize is larger
than the amount of free dynamic heap this function will fail, even if
cbNewSize is less than the amount of free dynamic heap.

Third, you must keep track of how large the pointer was before the resize.

 Thanks for all comments ! It's very enriching.

I'm glad to help.

Bob Whiteman
Senior Software Engineer
Pico Communications



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Re: Last cry for help

2002-01-28 Thread Bob Whiteman

 Ralph Krausse [EMAIL PROTECTED] wrote in message
news:74916@palm-dev-forum...

 I need some explanation here. I am simply or I thought, trying to change
 some settings in my application so users don't have to manually go to
 the perfs application and change it themselves. First I want to change
 under pref-connection from Palm Modem US/Canada to Direct Serial.
 Second, under pref-Network, I want to change the Service from Aminet to
 WindowRAS.

Ralph, I think I can explain what's going on.

There's two different systems within the Palm OS that need to be configured.
The first is the connection panel. This can be straightforwardly updated
using the Cnc* functions defined by the Connection Manager. According to my
copy of the documentation these were created in the new OS 4.0.

The second system is the network panel. As I understand it there's a network
database that holds a list of services and their configurations, and
possibly other databases as well. Somewhere there is also a database which
stores information about the currently selected network service.

The biggest difficulty is that the network stack is running in the only
other thread on the device. There's no official way of notifying that other
thread that the databases have changed.

Another difficulty is that the network system and its data formats have
changed several times over the last few versions of the Palm OS.

Palm Developer Technical Support once made available the NetServiceAPI, an
/unsupported/ library which gives you the ability to create network
services, modify network services, and set the current active service. I
believe that they no longer make this available because it has not been
updated to support the newest versions of the Palm OS.

Without this library, I don't think there is any way to do what you want.

I suggest that you join the Palm OS Developer Program and get an Advantage
Level Membership. http://www.palmos.com/dev/programs/pdp/index.html Then you
can submit your request to them as a developer support incident. Perhaps
they can provide an updated version of the NetServiceAPI library. If you do
join, please let me know what they say.

Bob Whiteman
Senior Software Engineer
Pico Communications



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Re: Freeing Memory - Approach

2002-01-27 Thread Bob Whiteman

Andy,

It is my understanding that if you use MemHandleFree() with MemHandleNew()
things go smoothly. The same is true if you use MemPtrFree() with
MemPtrNew(). But if you use MemPtrFree() with MemHandleNew() the OS has to
call MemPtrRecoverHandle() and then call MemHandleFree() for you. It still
works but it takes more time.

Actually, I never use MemHandleNew(). If I'm going to bother making a handle
I allocate it in database memory using DmNewHandle(), passing in the
DmOpenRef of any database that my application has open for the first
argument. This gives the benefit of a moveable chunk of memory, plus it
doesn't take up any dynamic heap space. The drawback is that I have to use
DmWrite(), but there's reasonable ways to manage that. If it's too much of a
burden I just allocate a pointer instead.

Bob Whiteman
Senior Software Engineer
Pico Communication



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: NetServiceAPI library bug

2002-01-17 Thread Bob Whiteman

  I'm using the NetService library provided by Palm developer technical

 Are you talking about
 NetLibIFSettingSet (UInt16 libRefNum,UInt32 ifCreator, UInt16
 ifInstance,UInt16 setting, void *valueP, UInt16 valueLen)

 or there are other api i dont know about?

This is a different library. It used to be available for download at
http://oasis.palm.com/dev/kb/samples/2370.cfm but now that page is 404. It's
a library that lets you create and modify network services in the network
preferences panel. The only functions provided are LoadService(),
SaveService() and FreeNetworkPrefs(). It's not an officially supported API
but rather a workaround API since there's no officially supported way to
create and modify network services.

There's a few posts about this library in the palm-dev-forum. You can find
them if you do a search for NetService.

Bob Whiteman
Senior Software Engineer
Pico Communications


-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



OS Compression? (was: RE: m100 EFIGS oddness)

2000-09-21 Thread Bob Whiteman

Application compression in the OS, huh? Is the decompression algorithm
exposed anywhere? What algorithm is used?

Also out of curiosity, bitmaps can be compressed using scan line compression
or run length compression. RLE is a pretty standard compression algorithm,
but what is scan line compression? (I'd like to decide which compression
will be better for the images in my resources, but I'd rather not have to
make that decision by trying it out on every image. Knowing the compression
algorithm would help.)

Thanks in advance,
-Bob Whiteman

 -Original Message-
 From: David Fedor [mailto:[EMAIL PROTECTED]]
 Sent: Friday, September 08, 2000 4:06 PM
 To: Palm Developer Forum
 Subject: Re: m100 EFIGS oddness
[...]As for Security: ROM space was very tight and so they had to keep that
 application compressed in ROM, and the appropriate language of it gets
 decompressed and installed in RAM once you've chosen your language.
 Having 5 languages all available takes a good deal of memory, and 
 there wasn't quite enough without the Welcome app doing a little
 compression on the Security app.
 
 -David Fedor
 Palm Developer Support

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



PalmOS 3.5 8-bit Colour Palette

2000-09-12 Thread Bob Whiteman

The PalmOS Programmer's Companion indicates that the named HTML colour gray
(0x808080) is a member of the PalmOS palette. I checked on a device, and the
emulator, and this colour is not present.

However, the Programmer's Companion writes that only the first 231 entries
in the palette and the last entry are defined.

Summing the total number of colours up:
 216 Web-safe colours
  10 greys, giving us all posible values of grey.
+  6 named HTML colours

 232

Which seems to be consistent. However, entries 0xE6 and 0xFF are both black
in my tests. Is this an error in documentation? Or is this an error in
implementation?

If it is an error in implementation, will it be corrected in future
revisions? Will index 0xE6 become 0x808080?

 Thanks in advance,
-Bob

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: URGENT !!!! Inet with AlmSetProcAlarm

2000-08-23 Thread Bob Whiteman

Actually the OmniSky device, as well as the other Novatel Minstrels I've
used, have a sleep mode. In this mode the Minstrel stays registered with the
CDPD network in a way analagous to a cell phone that's turned on but not
currently making a call. When the Minstrel is in this mode it can receive a
connection that includes an identifier that's analagous to a TCP port
number. The Minstrel application on the Palm receives this connection and
based upon the port number launches a particular application and sends it
the data that was sent in the connection.

So basically it is possible to receive notifications via the CDPD network
and Novatel Minstrel devices. The major drawbacks are that the sleep mode
and "port" settings are comparatively difficult to configure, and that this
sleep mode drains the Minstrel batteries. In my experience the battery drain
was severe, and that far outweighed the usefulness of notification...but but
maybe that's because I had a poor battery in my Minstrel.

      -Bob Whiteman

-Original Message-
From: Fitzpatrick, Joe
To: Palm Developer Forum
Sent: 8/22/2000 10:58 PM
Subject: RE: URGENT    Inet with AlmSetProcAlarm

I'm not sure why you would need to create a shared library.  Why not
just schedule an alarm like other applications (ex. Datebook,
Clockworks, etc.) and do your work in response to the alarm?

As for feasibility, neither a Palm VII or an Omnisky equipped V is
particularly well suited to background internet polling.  The VII will
not make a wireless connection unless the antenna is up.  Although I
haven't played with it as much, the Omnisky modem/software also seems
'user initiated transaction' oriented.

Neither unit is blindingly fast and can basically hang the system for
fairly long periods of time.  I can't speak for other users, but a
program would only need to freeze my Palm for 10-20 seconds once
while I'm trying to enter a phone number, etc. for me to not only
delete it, but pay a huge guy named Spike to beat up the author.

People have been talking more sophisticated wireless options as
Handspring modules, but I don't know what (if any) products are
actually shipping.

Good Luck,
-jjf

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: Get visual artifacts using WinCopyRectangle() to drag icons

2000-08-23 Thread Bob Whiteman

-Original Message-
From: Chris Dunworth
To: Palm Developer Forum
Sent: 8/22/2000 11:27 PM
[...]
When the user drags an icon up and/or to the left, a "trail" of old icon
images is left behind. Dragging down or to the right never causes this
problem. I cannot find errors in my drawing or saving/restore code
(which of course means their aren't any ;-) ). Does this problem as I
describe it set off any bells with any of you? I'd love to hear any
theories as to why this is happening.

This sounds like a classic off-by-one error. The above problem is what you
would see if the extent.x and extent.y in one or more of your RectangleType
structures was less than it should be. The classic problem with rectangles
is that you don't know if the right and bottom edges of the rectangle are
inside or outside the rectangle. I think that you're guessing that they are
inside but the Palm OS treats them as if they are outside.

  -Bob Whiteman

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: Timed Splash Screen

2000-08-23 Thread Bob Whiteman

You can use the alarm manager to send a launch code to your application
after a specified amount of time. Look at the doucmentation for
AlmSetAlarm(). That way your application's event loop keeps running, but
after a specified amount of time it will be notified that it's time to move
on to the next form.

   -Bob Whiteman

 -Original Message-
 From: Timothy Astle [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, August 23, 2000 11:37 AM
 To: Palm Developer Forum
 Subject: Re: Timed Splash Screen
 
 
  Why not just load the next form using FrmGotoForm()?  You 
 probably don't
  need to generate an event, etc.. FrmGotoForm should handle 
 all this for
  you.
 
 Maybe I misworded my problem.  I do have a FrmGotoForm(...) 
 function which
 sets it to the next form.  However, there are no events being 
 sent to cause
 my event handler to tell it that it's time to "move to the 
 next form".  If I
 click on the screen constantly, it will go to the next form 
 onces the time
 difference is valid.  If it isn't, it stays put.
 
 I need a way to constantly poll.  Right now I'm getting my 
 events from the
 main event loop.
 
 EvtGetEvent(event, evtWaitForever);
 
 However, I'm weary of using another EvtGetEvent and loop 
 inside of that
 event handler because it seems sloppy to me.  Is that the only way?
 
 +
 Timothy D. Astle
 Embedded Systems Programmer
 ALT Group Inc.
 +
 
 "People who can smile when things go wrong has thought of 
 someone else to
 blame it on."
 
 
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: URGENT !!!! Inet with AlmSetProcAlarm

2000-08-23 Thread Bob Whiteman

Yeah, CDPD coverage is getting there slowly, and the CDPD protocol has a
very slow and comparatively poor cell handoff mechanism, so if you're moving
at all it tends to drop connection for up to several seconds without
warning.

CDMA is a much more solid connection, and although the theoretical bandwidth
is lower, in practice the stability of connection in my opinion far
outweighs the somewhat smaller bandwidth.

The one that I want to know more about is Ricochet. I remember looking into
their 9600 baud connection and finding out that if you were moving quickly,
say on a bus or train, the handoffs couldn't happen fast enough and so the
connection couldn't be maintained. If their new 128kbaud network lacks this
limitation and has good coverage it will make all other connections
obsolete, IMO.

  -Bob Whiteman

 -Original Message-
 From: Fitzpatrick, Joe [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, August 23, 2000 12:26 PM
 To: Palm Developer Forum
 Subject: RE: URGENT  Inet with AlmSetProcAlarm
 
 
 I've actually been underwhelmed with the Omnisky.  Part of it 
 is that the
 coverage seems terrible in Southern Cal.  The first time I 
 saw one I tried
 to pick it up and use it blind (always a good usability test) 
 and couldn't
 get anywhere.  
 
 On the other hand, it looks nicer than a VII... ;)
 
 -jjf
 
 -Original Message-
 From: Bob Whiteman [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, August 23, 2000 6:50 AM
 To: Palm Developer Forum
 Subject: RE: URGENT  Inet with AlmSetProcAlarm
 
 
 Actually the OmniSky device, as well as the other Novatel 
 Minstrels I've
 used, have a sleep mode. In this mode the Minstrel stays 
 registered with the
 CDPD network in a way analagous to a cell phone that's turned 
 on but not
 currently making a call. When the Minstrel is in this mode it 
 can receive a
 connection that includes an identifier that's analagous to a TCP port
 number. The Minstrel application on the Palm receives this 
 connection and
 based upon the port number launches a particular application 
 and sends it
 the data that was sent in the connection.
 
 So basically it is possible to receive notifications via the 
 CDPD network
 and Novatel Minstrel devices. The major drawbacks are that 
 the sleep mode
 and "port" settings are comparatively difficult to configure, 
 and that this
 sleep mode drains the Minstrel batteries. In my experience 
 the battery drain
 was severe, and that far outweighed the usefulness of 
 notification...but but
 maybe that's because I had a poor battery in my Minstrel.
 
       -Bob Whiteman
 
 -Original Message-
 From: Fitzpatrick, Joe
 To: Palm Developer Forum
 Sent: 8/22/2000 10:58 PM
 Subject: RE: URGENT    Inet with AlmSetProcAlarm
 
 I'm not sure why you would need to create a shared library.  Why not
 just schedule an alarm like other applications (ex. Datebook,
 Clockworks, etc.) and do your work in response to the alarm?
 
 As for feasibility, neither a Palm VII or an Omnisky equipped V is
 particularly well suited to background internet polling.  
 The VII will
 not make a wireless connection unless the antenna is up.  Although I
 haven't played with it as much, the Omnisky modem/software also seems
 'user initiated transaction' oriented.
 
 Neither unit is blindingly fast and can basically hang the system for
 fairly long periods of time.  I can't speak for other users, but a
 program would only need to freeze my Palm for 10-20 seconds once
 while I'm trying to enter a phone number, etc. for me to not only
 delete it, but pay a huge guy named Spike to beat up the author.
 
 People have been talking more sophisticated wireless options as
 Handspring modules, but I don't know what (if any) products are
 actually shipping.
 
 Good Luck,
 -jjf
 
 -- 
 For information on using the Palm Developer Forums, or to unsubscribe,
 please see http://www.palmos.com/dev/tech/support/forums/
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Free Handle

2000-08-23 Thread Bob Whiteman

It is possible for a program in the Palm OS to have a particularly nasty
bug:

If you create a handle in database memory, attach it to a database, and then
free the handle you'll start to get "Free handle" errors when working with
that database.

I found and fixed such a problem in my program, but there's still one
problem left to solve: Once you have a device that is in this state, how do
you get rid of this corrupt database? Using the application launcher to
delete the application which has this database will crash with "Free
handle", as will using a utility such as Insider to delete the database.
HotSync and pilot-xfer both bail when they try to do anything with the
database.

The only method of removing the database that I have found is to use
pilot-xfer to list (pilot-xfer -l) and back up all the databases on the palm
except for the corrupt one (using pilot-xfer -f on each of the files, not
pilot-xfer -b). Then hard-reset the device to clear all memory and restore
all the backed up databases.

Does anyone know of an easier way of nixing a corrupt database?

   -Bob Whiteman

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Bitmap family

2000-08-23 Thread Bob Whiteman

I'm using Constructor version 1.5b7 (that's the latest version, right?) to
create a bitmap family. All I want to do is get a color bitmap created in
constructor to show up in the emulator using a Palm IIIc ROM. So here's my
steps:

Ctrl-R to create a new resource:
   Resource type "Bitmap"
   Resource name "BMP"
   Resource ID "5000"
Double-click the new bitmap
   Under the Colors menu, choose "256 colors"
   Under Options, choose "Set Image Size" and set it to 30x30
   Scribble on the bitmap in several colors.
Ctrl-R to create a new resource:
   Resource type "Bitmap Family"
   Resource name "FAMILY"
   Resource ID "5001"
Double-click the new bitmap family
   Change the width and height to 30.

So... um...now what? There's an empty list of "Family Items", but I can't
figure out how to add the new bitmap to the family. I can drag the bitmap
onto the dialog, but that doesn't do anything.
I can drag a form bitmap from the resource catalog onto it, but that doesn't
do anything either.
Hmm, copy the bitmap, click the bitmap family, but "Paste resource" is
disabled...

Wow. Let's see...

Drag BMP onto FAMILY in the list of application resources. Nope.

Click the bitmap, edit-select all, click the family, still can't paste.

Ctrl-drag? Shift-drag? Ctrl-shift-drag??

Now, I've been around many different kinds of computers and used countless
programs. I like to think I'm a computer expert. But for the life of me I
can't figure out how to create a bitmap family.

If I resort to the help file, the topic about bitmap families tells me how
to create the bitmap family but not how to add bitmaps to the family. Also,
the two images on this help page are broken with the messages:

  The picture "Bitmapfam.bmp" is missing!

and

  The picture "Bitmapfam2.bmp" is missing!

So how is this supposed to work?

  -Bob Whiteman

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: Bitmap family

2000-08-23 Thread Bob Whiteman

-Original Message-
From: [EMAIL PROTECTED]
Sent: 8/23/2000 8:05 PM

OK, let me get this straight, you can't add stuff into the bitmap
family?

Exactly.

Try Ctrl-R after highlighting "Family Items". Personally I use Ctrl-K
all the time, and let Contructor set up the new item with default
values.

Wow, after myself and four other developers poking at this program for a
total of an hour, none of us found that. That's exactly what I was looking
for. I had tried clicking the space below "Family Items", the title bar of
the window and a few other places, but I never noticed that clicking the
words enabled the menu items.

Thank you for pointing this one out to me.

[...]
A had problems getting used to the Mac oriented UI as well. Sure it
looks nice, but I'ld rather have something that is more friendly.

Me too...either that or a working and complete help file.

    -Bob Whiteman

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: Does app get notified when Palm switches off

2000-08-22 Thread Bob Whiteman

You might need to call KeySetMask() first. This function filters out certain
keyDownEvents. After that, you can have your application watch for
vchrAutoOff, vchrPowerOff and/or hardPowerChr. Each of these keys is
described in the OS 3.5 SDK in Chars.h

 -Bob Whiteman

 -Original Message-
 From: Richard Anderson [mailto:[EMAIL PROTECTED]]
 Sent: Tuesday, August 22, 2000 8:45 AM
 To: Palm Developer Forum
 Subject: RE: Does app get notified when Palm switches "off"
 
 
 Hi,
 
 I dont get posted a keydownEvent when I press the power button.
 
 Rik
 
  -Original Message-
  From:   Nesse, Rustin [SMTP:[EMAIL PROTECTED]]
  Sent:   22 August 2000 16:10
  To: Palm Developer Forum
  Subject:RE: Does app get notified when Palm switches "off"
  
  Well, there's a keydownEvent generated by pressing the 
 power button...
  might want to take a gander at the header KeyMgr.h.
  
  Hope that helps!
  -Rus 
  
  -Original Message-
  From: Richard Anderson [mailto:[EMAIL PROTECTED]]
  Sent: Tuesday, August 22, 2000 4:15 AM
  To: Palm Developer Forum
  Subject: Does app get notified when Palm switches "off"
  
  
  Hi,
  
  Does the Palm get notified when the Palm is switched off. 
  
  If I want my app to always start from the beginning, how do I 
  do this if it
  was running when the Palm was switched off. I would like to be 
  able to close
  my app when the Palm is turned off.
  
  Thanks
  
  Rik
  
  -- 
  For information on using the Palm Developer Forums, or to 
  unsubscribe, please see 
 http://www.palmos.com/dev/tech/support/forums/
  
  
  -- 
  For information on using the Palm Developer Forums, or to 
 unsubscribe,
  please see http://www.palmos.com/dev/tech/support/forums/
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: M100 ROM images / POSE version for them - when?

2000-08-15 Thread Bob Whiteman

That's great news!

On the emulator forum you've mentioned some bug fixes and enhancements that
won't be available until 3.0a7 is released. Is that what you'll be shipping?

 -Bob Whiteman

-Original Message-
From: [EMAIL PROTECTED]
To: Palm Developer Forum
Sent: 8/14/2000 2:17 PM
Subject: Re: M100 ROM images / POSE version for them - when?



Poser's in final testing. I don't know when QA will give the final OK,
but we're
not finding any show-stoppers, so hopefully in a few days.

The ROMs will be posted at the same time.

-- Keith Rollin
-- Palm OS Emulator engineer

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: DmWriteCheck fails.

2000-08-14 Thread Bob Whiteman

You haven't shown what src, nilP and tmpare, but one thing I noticed is that
your first three DmWrites use nilP for the 2nd argument but the fourth
DmWrite uses tmp for the 2nd argument. What is tmp?

 -Bob Whiteman

 -Original Message-
 From: Kshama Sathaye [mailto:[EMAIL PROTECTED]]
 Sent: Monday, August 14, 2000 12:51 PM
 To: Palm Developer Forum
 Subject: DmWriteCheck fails.
 
 
 Hello,
 
 I'm trying to write to a locked handle using DmWrite, but for 
 some reason, I
 keep getting the dmErrNotValidRecord error and I have no clue 
 how to fix it.
 Help is greatly appreciated.
 
 Here is what i'mdoing.
 
 
 custHandle = DmNewHandle(size);
 dest = (PackedCustomerPtr) DmHandleLock(custHandle) ;
 
  err = DmWrite(dest, (ULong)nilP-orderID, src-orderID ,
 sizeof(src-orderID));
  ErrFatalDisplayIf(err, "Couldnot pack record");
  err = DmWrite(dest, (ULong)nilP-timeStmp, src-timeStmp,
 sizeof(src-timeStmp));
  ErrFatalDisplayIf(err, "Couldnot pack record");
  err = DmWrite(dest, (ULong)nilP-totalQuantity, src-totalQuantity,
 sizeof(src-totalQuantity)) ;
  ErrFatalDisplayIf(err, "Couldnot pack record");
 
   err = DmWrite(dest, tmp, src-expMonth, sizeof(src-expMonth)) ;
   ErrFatalDisplayIf(err, "Couldnot pack record");
 
 here .. while the first 3 DmWrite()s work, the 4th one doesnot !!
 
 should the datatypes matter ??  should the order of DmWrite 
 matter ?? and if
 the record is invalid, how do the first 3 work ??
 
 Any help is appreciated .. I just dont know how to proceed if 
 this thing
 fails !!
 
 thank you ..
 -kshama
 
 
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: SysUIAppSwitch() SysAppLaunch()

2000-08-11 Thread Bob Whiteman

Thanks for the clear explanation, David.

I'm glad to know we're not leaking memory owned by the system...my
understanding is that since the system never exits, the memory would be
"permanently" leaked.

   -Bob

 -Original Message-
 From: David Fedor [mailto:[EMAIL PROTECTED]]
 Sent: Thursday, August 10, 2000 5:38 PM
 To: Palm Developer Forum
 Subject: Re: SysUIAppSwitch()  SysAppLaunch()
 
 
 ...you have to use
 MemPtrSetOwner( ptr, 0 ) to make the pointer belong to the 
 system, and
 thus not get free'ed... what should the callee do with this 
 memory once it
 is done with it? MemPtrFree() seems to cause big problems.
 
 Don't do anything to that pointer, because when the callee 
 (the second app)
 quits, the system automatically frees that pointer.  There's no way to
 prevent it from doing so.  (If you need more control, pass 
 the info in a
 handle and pass a pointer to a small buffer which contains 
 that handle...
 having set the owner of the handle to zero as well.)
 
 I'm pretty sure this is covered in the docs and/or FAQs, but 
 I see it isn't
 in the reference entry for SysAppLaunch.  I'll ask for it to be added,
 since that's the most natural place to say it.
 
 -David Fedor
 Palm Developer Support
 
 
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



SysUIAppSwitch() SysAppLaunch()

2000-08-10 Thread Bob Whiteman

When using SysUIAppSwitch() and SysAppLaunch() you can provide a pointer to
a buffer in which you pass parameters.  It seems that you have to use
MemPtrSetOwner( ptr, 0 ) to make the pointer belong to the system, and thus
not get free'ed when the OS does its automatic garbage collection when the
app exits.  Now, what should the callee do with this memory once it is done
with it?  MemPtrFree() seems to cause big problems.

-Bob Whiteman

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Pen Q out of sync

2000-08-09 Thread Bob Whiteman

I'm having a Palm OS problem which results in the error "Pen Q out of sync".
The repro isn't 100%, but basically it requires a pen down and a lot of
dragging within my application. I've eyeballed the code involved but I don't
know what is required to even generate this error, so I'm not sure what I'm
looking for. I found several conditions in SysEvtMgr.c in the OS source code
which would result in this error, but I don't pretend to understand what's
going on there.

Does anyone have any leads for me?

  Thanks in advance,
      -Bob Whiteman

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: Palm developer support email bouncing

2000-08-08 Thread Bob Whiteman

 From: Andrew Lathrop [mailto:[EMAIL PROTECTED]]
[...]
 The best bet seems to be to post to the groups.  There are a 
 few Palm people
 who troll through here doing there best to answer.  They don;t eply to
 individual emails, but who knows, others in the group may be 
 able to help.
 Andrew

I appreciate the sound advice, Andrew. Before sending the two questions to
Palm developer support I posted them here first. There were no replies to
either one, and I suspect that's because these were previously unknown bugs
in the 3.5 OS.

-Bob

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Palm OS 3.5: FldNewField changes text on button

2000-08-08 Thread Bob Whiteman

Sadly, I have another bug which I believe is in Palm OS 3.5.

I have a form with many controls on it, including a button with the text
"New". I create a field using FldNewField, and immediately after that call
the button's text is changed to "Nqw". I verified this by looking into the
form pointer's array of objects before and after the FldNewField call. The
IDs of the created control and the button are different.

I verified that this doesn't occur in OS 3.0 release, OS 3.3 release or OS
3.3 debug.
I verified that this still occurs with the new OS 3.5.2 patch.
I found nothing describing this kind of issue in the six articles which
contain "FldNewField" in the Knowledge Base.

Does anyone have any ideas why this might be happening? Can anyone suggest
any workarounds? Unfortunately I can't escape dynamic UI elements because of
the nature of the program I'm writing.

   -Bob Whiteman

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: Rumors, disclosing, and platforms, part 1

2000-08-08 Thread Bob Whiteman

I agree with what you say about leaks, rumors and NDAs, David. It all sounds
like intelligent business practices. I have a couple additional comments
below.

 -Original Message-
 From: David Fedor [mailto:[EMAIL PROTECTED]]

[...]
 At 2:51 PM -0700 8/7/00, Bob Whiteman wrote:
 I entirely disagree with this statement. With each new PalmOS version
there
 have been inevitable bugs and incompatibilities. It's the nature of
 computers.
 
 For instance, there is a bug involving gadgets which are set unusable
that
 was introduced with Palm OS 3.5. This bug rendered my software entirely
 unusable, even though it worked perfectly in all previous OS versions.
 
 Right, which is precisely why you got that software more than 6 months
ago.
 Heck, at PalmSource if people found good enough bugs, they even got fixed
 before it went final.

Aack, more quoting out of context!

I was using 3.5.0 as an example of a bug being introduced with a new OS
version. I wanted to point out that because of this possibility, developers
need access to the ROMs before they are made available on devices.

Palm did a good job with OS 3.5.0! I was able to use the ROMs before devices
with OS 3.5.0 were available. That was exactly the support I needed. Please
don't think I'm criticizing Palm for doing things appropriately in the past.

[...]
 A few cool things like
 turning the system on briefly when you hit up-arrow and it 
 shows the time and goes off a few seconds later... neat, and could have
been 
 done with a 3rd party hack.  (And sort of was done via a hack.)  The
platform didn't
 change; the bundled apps and the device exterior did.
[...]

I have one minor point to add here.

Compatability with a hack is not, and cannot be, guaranteed by any software
developer. A hack can change all the rules. Therefore, it is acceptable to
the user and the developer to say, "Sorry, this software doesn't work with
that hack, so disable the hack when using the software." But we can't say
that when the change is in the ROM image.

    -Bob Whiteman

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: Palm OS 3.5: FldNewField changes text on button

2000-08-08 Thread Bob Whiteman

 -Original Message-
 From: Peter Epstein [mailto:[EMAIL PROTECTED]]
 
 This sound suspiciously like the adjust pointers bug I heard 
 about a while ago. When adding objects to a form, the 
 structure of the form in memory needs to be adjusted so that 
 pointers continue to point where they should after moving 
 stuff around to make room. The code to adjust these pointers 
 isn't pretty: it just looks for things that look like 
 pointers. Sometimes things that aren't in fact pointers end 
 up being adjusted, with the consequences you're seeing. I 
 don't know how best to work around this bug. Maybe someone 
 who knows more about it can help?

I haven't heard of this bug before...is it a bug in the OS? I'm guessing
that the code to which you're referring is FrmAddSpaceForObject() in the OS.

I was unable to find any references to this bug in the Knowledge Base or in
archives of this mailing list on eGroups.

The one major catch I know of with using FldNewField is that you have to be
aware that the form pointer may change, but I'm quite aware of that and
always use the new form pointer returned by FldNewField (or I just call
FrmGetActiveForm). In this case I believe the form pointer isn't the issue
because it doesn't move in memory.

 -Bob

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: Palm OS 3.5: FldNewField changes text on button

2000-08-08 Thread Bob Whiteman

David,

Thanks for the information. It's unfortunate that the set of supported OSes
for my application happens to be the set of OSes which have this bug.

Regarding which approach to use to address this problem:

I think it's unreasonable to expect all the users out there to upgrade their
devices. If we required a particular upgrade/patch in order for our software
to work, I guarantee that our support people will get calls from end-users
having problems with this patch. Also, would the patch require a flash? If
so it wouldn't address those users who have devices without flashROM.

One other developer here prefers an OS patch for the specific reason that it
makes it clear that this issue is a PalmOS issue and not our software...an
important distinction for a big 1.0 release.



Linking a library into the application, however, looks like a fine solution
to me as long as it's not unreasonably large or slow.

The other developer here doesn't like the library solution because it means
we have to go through an extra release cycle to include this library. If
Palm developers create a library it'll likely arrive after this product
ships, so it'll look to end-users like we had a bug which we had to fix with
a 1.1 release. The effort of shipping an extra drop is painful.

Also, if you compare one release of a patch from Palm versus one release of
every appliation which uses dynamic UI elements each having to ship a patch,
it'd be easier from the end user's point of view to just have an OS patch.


Now, for my application, the most important issue is whether Palm can
release a library quickly enough to make it into the first release. Do you
know how long it would take to package up the OS 4.0 fixes?

  -Bob Whiteman

 -Original Message-
 From: David Fedor [mailto:[EMAIL PROTECTED]]
 Sent: Tuesday, August 08, 2000 4:21 PM
 To: Palm Developer Forum
 Subject: RE: Palm OS 3.5: FldNewField changes text on button
 
 
 I've been trying to make progress on this issue.  We've fixed 
 the routines
 in the OS for the next major OS release (of which we have no 
 announcements
 yet) but that wouldn't address the fact that this has existed 
 ever since
 3.0.  It hardly ever was an issue until the dynamic heap 
 started getting
 large, and forms started to often need to move when adding 
 items to the
 form object.
 
 I'm investigating the possibility of having either a static 
 library for
 developers to link into their applications, or just providing 
 the fixed
 source to compile into your applications, or something like 
 that.  Thoughts
 and preferences?
 
 Suggesting that we do a system update for every device 
 running 3.0 to 3.5
 would make some fine folks in our QA department a little 
 annoyed at me :-(
 And relatively few applications use these functions, so it 
 might well make
 sense to have this built into applications who care.
 
 -David Fedor
 Palm Developer Support
 
 
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: Palm OS 3.5: FldNewField changes text on button

2000-08-08 Thread Bob Whiteman

 From: Peter Epstein [mailto:[EMAIL PROTECTED]]
[...]
 I haven't heard of this bug before...is it a bug in the OS? I'm guessing
 that the code to which you're referring is FrmAddSpaceForObject() in the
OS.
 
 Yes, it's an OS bug.

With these hints I was able to find PrvFixupPointers in the OS source code.
Thanks for the tip, Peter.

I keep wondering, WHAT was the developer on when he wrote this code??

This has caused me untold amounts of grief since my application makes
extensive use of dynamic form elements. This could explain intermittent "Bad
form" errors, UI elements losing their state, and a number of other issues
I've experienced.

 I just heard about it in passing. Don't know the details, 
 just that in moving the form objects within the block of 
 memory used for the form, it needs to update pointers, and 
 this is done by scanning the moved memory for things that 
 appear to be pointers. If you can avoid doing things which 
 cause stuff to be moved, you'd be able to work around the 
 bug, but I don't know whether this is feasible.

I've been thinking about how to work around this. The only thing I can think
of is make sure that the form never has to be relocated. This would require
making sure that the form structure is at its highest memory usage when the
appliation starts. I could create a number of dummy UI elements in
constructor, and just before creating a new UI element I could remove one of
the dummy ones, but this gets me nowhere...I might as well just preallocate
my own large pool of each type of form element and avoid the dynamic form
element APIs entirely. Setting a high watermark is tricky because I can't
really know how many form elements I'm going to need at design time, and
it's very wasteful of dynamic memory.

Can you or anyone else on this list provide any more information?
Specifically, are there any known workarounds? Which OS versions have this
bug? Is this bug officially documented anywhere?

 -Bob Whiteman

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: New products from Palm, Inc.

2000-08-07 Thread Bob Whiteman

 From: Bradly J. Barton [mailto:[EMAIL PROTECTED]]
[...]
 What do I want from Palm? I'd like to see an announcement 
 like today's...
 only a couple weeks before they actually hit the shelves. Included in
 today's excellent announcement was information that it would 
 not affect
 current software. As developers, we knew that would be the 
 case, 
[...]

I entirely disagree with this statement. With each new PalmOS version there
have been inevitable bugs and incompatibilities. It's the nature of
computers.

For instance, there is a bug involving gadgets which are set unusable that
was introduced with Palm OS 3.5. This bug rendered my software entirely
unusable, even though it worked perfectly in all previous OS versions.

What would've happened if my software had already been released to the
public when OS 3.5 became available to users? A customer buys a brand new
device, installs my software and it doesn't work at all. The user contacts
my tech support and all I can say is, "I don't know why it doesn't work."
That's a very effective way to lose a customer permanently.

Developers need to see platforms before they are released. That way if there
is some incompatibility in the new OSes I can find out what that is, fix it,
and release a new version...or at the very least get my support story
straight before I start losing customers.

Palm has just done a great disservice to its developers.

     -Bob Whiteman

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: Can't use Palm device after emulator?

2000-08-04 Thread Bob Whiteman

The emulator can be configured to use one of your PC's serial ports as the
serial port on the emulated Palm. If your cradle and real device are plugged
into the same port while the emulator is still running you'll get that
conflict. To solve this problem you can close the emulator before hotsyncing
or debugging on the real device. Alternately, you can configure the emulator
to not use a serial port at all by right-clicking the emulator, choosing
"Properties" and changing "Serial Port" to "None".

If the emulator is configured to a different port than the cradle it's still
possible that you're getting a conflict. On a typically configured PC, COM1
and COM3 share an interrupt, and COM2 and COM4 also share an interrupt. If
your cradle is on COM1 and your emulator is using COM3, the two probably
can't share that interrupt. If this is the problem, the solutions are the
same, or you can reconfigure the emulator to use a port which doesn't
conflict with the cradle.

Good luck!

 -Bob Whiteman

-Original Message-
From: DIAMOND JEFF
To: Palm Developer Forum
Sent: 8/3/2000 10:46 PM
Subject: Can't use Palm device after emulator?

I'm currently using the most uptodate versions of CodeWarrior and the
Debugger (Update 1, patch, etc.)

What I've found is that if I'm doing a programming session using POSE,
nomatter how cleanly I exit the session, when I try to THEN try out my
program on a real Palm, I get a "Serial port is busy" when it starts the
download.

The only thing that seems to remedy this is to reboot my computer.

In fact, after I've done the POSE debugging, I can't even do a hotsync
without the same effect.

What's tying up the serial port?

Thanks folks!
- Jeff

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Converting Palm fonts to X .pcf fonts (was RE: Creating fonts)

2000-08-03 Thread Bob Whiteman

Thank you Mostapha, with that lead I was able to find a couple tools capable
of generating Palm fonts.

Now my next problem is a bit more difficult:

I would like a Unix X application to be able to display these Palm fonts. Is
there a utility which can convert Palm fonts, such as the .pft files
generated by FontEdit, into .pcf format?

 Thanks,
-Bob Whiteman

 -Original Message-
 From: Mostapha BOUTERFASS [mailto:[EMAIL PROTECTED]]
 Sent: Thursday, August 03, 2000 11:45 AM
 To: Palm Developer Forum
 Subject: Re: Creating fonts
 
 
 personnaly i use Pilot Font Editor
 
 Mostapha Bouterfass
 
 - Original Message -
 From: Bob Whiteman [EMAIL PROTECTED]
 To: Palm Developer Forum [EMAIL PROTECTED]
 Sent: Thursday, August 03, 2000 6:45 PM
 Subject: Creating fonts
 
 
  Palm OS 3.0 and later have FntDefineFont, but there's no 
 information about
  the format of fonts or about supported tools to generate 
 Palm fonts. One
 web
  page in the Knowledge Base mentioned that there are 3rd party tools
  appearing which allow one to create Palm fonts, but there 
 was no more
  specific information.
 
  So how does one create a Palm font?
 
 -Bob Whiteman
 
  --
  For information on using the Palm Developer Forums, or to 
 unsubscribe,
 please see http://www.palmos.com/dev/tech/support/forums/
 
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: Clipper mini-font

2000-08-03 Thread Bob Whiteman

Thanks for the tip, Tom. I've poked around inside Clipper.prc. None of the
resources look promising because they're all bitmaps, icons, forms or
strings...nothing that looks like a font resource.

I did find a couple occurrences of "Font" and 'NFNT' inside the code 1
resource. One occurs near "OpenFont" and the other occurs near "CloseFont".
Now my problem is that I don't know how to properly grab the structure out
of clipper. Does anyone have any hints on how to grab this font?

 Thanks,
 -Bob Whiteman

 -Original Message-
 From: Tom Zerucha [mailto:[EMAIL PROTECTED]]
 Sent: Thursday, August 03, 2000 1:18 PM
 To: Palm Developer Forum
 Subject: Re: Clipper mini-font
 
 
 On Thu, Aug 03, 2000 at 11:49:29AM -0700, Bob Whiteman wrote:
  The clipper appliation that's in the ROM for Palm VII 
 devices apparently has
  a special mini font used for some data displayed by .pqa 
 files. Is this a
  built-in font on the Palm VII? If so, is it available on 
 other ROMs as well?
 
 It is in the Clipper resource database.  You would have to open
 clipper (as resource DB) to access that font.
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/

 

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: How to intercept Graffiti keyboard command?

2000-08-02 Thread Bob Whiteman

Really? That's not what I would've expected. Note that if you're using 
the usual event loop, your event handlers may not see the event. 

This is the kind of event loop you usually see: 

do { 
  EvtGetEvent(); 
  if (!SysHandleEvent()) 
if (!MenuHandleEvent()) 
  if (!AppHandleEvent()) 
FrmHandleEvent(); 
} while (event.eType != appStopEvent); 

If you're not seeing it, maybe the keyDownEvent with vchrKeyboardNumeric 
is handled by the SysHandleEvent(), so none of your event handlers ever 
see it. You may need to insert another event handling function above 
SysHandleEvent. 

 -Bob Whiteman 

-Original Message- 
From: Fitzsimons, Jeff 
To: Palm Developer Forum 
Sent: 8/2/2000 11:05 AM 
Subject: RE: How to intercept Graffiti keyboard command? 



Unfortunately, my keyDownEvent handler doesn't even trigger a breakpoint 
when the '123' is tapped, so it doens't appear to generate _any_ kind of 
key 
event.  At least, not one that my app ever sees. 

Jeff 

 -Original Message- 
 From: Bob Whiteman [SMTP:[EMAIL PROTECTED]] 
 Sent: Tuesday, August 01, 2000 4:45 PM 
 To:   Palm Developer Forum 
 Subject:  RE: How to intercept Graffiti keyboard command? 
 
 I beleve that when the user hits the silkscreened 123 button you'll 
see a 
 keyDownEvent with a character of vchrKeyboardNumeric. 
 
-Bob Whiteman 


-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: Symbol 1500

2000-08-01 Thread Bob Whiteman

Thusitha,

One approach you could use would be to write your own application which uses
the scanner to read information, and then when a complete address book entry
has been scanned, open the Address Book application's database and create a
new record. Because the source code of Address Book is available you can
find out the exact format of the data in the Address Book database.

  -Bob Whiteman

 -Original Message-
 From: Thusitha Batuwitage [mailto:[EMAIL PROTECTED]]
 Sent: Tuesday, August 01, 2000 6:58 AM
 To: Palm Developer Forum
 Subject: Symbol 1500
 
 Hi
 
 Is there a way to be able to use the scanner in address book.
[...]
 So back to my question, how do you accomplish the above task.
 (I do not want to modify the address book code itself).
 I would appreciate any thoughts on this.
 
 Thanks
 TS

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: How to intercept Graffiti keyboard command?

2000-08-01 Thread Bob Whiteman

I beleve that when the user hits the silkscreened 123 button you'll see a
keyDownEvent with a character of vchrKeyboardNumeric.

   -Bob Whiteman

 -Original Message-
 From: Fitzsimons, Jeff [mailto:[EMAIL PROTECTED]]
 Sent: Tuesday, August 01, 2000 4:28 PM
 To: Palm Developer Forum
 Subject: How to intercept Graffiti keyboard command?
 
 
 
 Hi all,
 
 My app's main form has no input fields but accepts 
 alphanumeric input (it's
 a calculator, of sorts, but there's not room to display a 
 numeric keypad all
 the time).
 
 I would like to pop up an on-screen numeric keypad when the 
 user taps on the
 little '12345' dot in the silk-screened Graffiti area.  I 
 realize I'd have
 to write my own keypad, since the system's 
 SysKeyboardDialog() requires an
 active field.  However, I cannot seem to find any event 
 relating to this.
 
 Is it possible to intercept the '12345' tap before the system 
 gets ahold of
 it?
 
 Jeff
 
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: no-cache browser

2000-07-31 Thread Bob Whiteman

Oddly enough, I never received the original post by Timothee Masquelier, but
I saw the reply below.

Timothee:
Browse-it, the browser from Pumatech which will be available through
Intellisync.com, supports the no-cache flag. If you'd like more info about
Browse-it, please email me directly.

Richard:
Client caching is even more important on Palm devices because the
connections are very different from desktop connections. If a user doesn't
have a modem handy, can't get reception with wireless, etc. then all the
user has left left is pages stored in the cache on the device. With
Browse-it, the original HTML and images aren't stored; a much smaller
encoded version of the page is stored.

If one's device is really strapped for memory the cache size can be set to 0
bytes. Pages won't be stored on the device.

 -Bob Whiteman

 -Original Message-
 From: Richard M. Hartman [mailto:[EMAIL PROTECTED]]
 Sent: Monday, July 31, 2000 11:02 AM
 To: Palm Developer Forum
 Subject: Re: "no-cache" browser
 
 
 You mean that the browsers -are- caching pages?
 I would've thought that to be a huge drain on memory
 and an "un-feature" on a device as memory-tight as
 a Palm...
 
 --
 -Richard M. Hartman
 [EMAIL PROTECTED]
 
 186,000 mi/sec: not just a good idea, it's the LAW!
 
 Timothee Masquelier wrote in message 19258@palm-dev-forum...
 
 Hi there!
 Sorry about the non-development question, but do you guys
 know a browser for Palm that would support the:
 META HTTP-EQUIV="pragma" CONTENT="no-cache"
 tag ?
 Thanks,

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: Programmatically perform a HotSync

2000-07-27 Thread Bob Whiteman

Chris Percival mentioned another approach that might work. Here's some more
details:

Chars.h defines the following character:

  #define vchrHardCradle 0x0209 // Button on cradle pressed

This character can be sent in a keyDownEvent using the EvtAddEventToQueue().
My guess is that this would simulate the user pressing the cradle button,
which is generally configured to do a local hotsync (though the user can
change this behavior).

  -Bob Whiteman

 -Original Message-
 From: Eric Sun [mailto:[EMAIL PROTECTED]]
 Sent: Thursday, July 27, 2000 9:20 AM
 To: Palm Developer Forum
 Subject: RE: Programmatically perform a HotSync
 
 
 If we need to short out some pin on the port to do this, I don't think
 Metrowerks or Palm has API that controls the phsyical hardware.  
 
 I know that with some of the Symbol units, the hotsync is an 
 application on
 the unit (i.e. not a hardware button, but an application 
 button).  Now, how
 can we get those code into our own program, is another question.
 That is kind of what's needed.  To be able to access that 
 HotSync program
 within my code.
 
 And thanks again for all the help so far!  It is much appreciated!
 
 Thanks,
 __
 Eric C.F. Sun
 Senior Software Developer
 RAD Specialist 
 Q.Data Inc.
 Tel: (905)477-1367 x.277
 Date: July 27, 2000   Time:12:07

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: multi table relational databases

2000-07-27 Thread Bob Whiteman

I've implemented a fairly simple relational database for an appliation.

One problem with your suggested approach below is that it may be very tricky
to sort the tables. Also, searches and inserts will take longer because they
have to deal with a much larger Palm database.

I used separate Palm databases for each table in the logical database. That
way each table can have its own simple sort routine.

Is there any particular reason why you don't want to create multiple Palm
databases?

  -Bob Whiteman

 -Original Message-
 From: K. Chugh [mailto:[EMAIL PROTECTED]]
 Sent: Thursday, July 27, 2000 7:45 AM
 To: Palm Developer Forum
 Subject: multi table relational databases
 
 
 
 hi- i'm paranoid about introducing a new layer to my apps by using
 sybase ultralite, etc.  does anyone know of any techniques for using
 multi table databases?  i was thinking of opening one 
 database and using
 the category for the table identifier then just inserting 
 records in the
 appropriate "table."  has anyone tried this?
 
 thanks,
 kevin
 
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: Stepping into OS source code, and Palm OS 3.5 bug

2000-07-27 Thread Bob Whiteman

I forgot to mention that I had a great deal of trouble diagnosing this
problem. It would've helped if I could have stepped into the OS source code
for some of the functions. I know that the Palm OS 3.5 source code hasn't
been released yet, but if I had that would I be able to set up the
CodeWarrior debugger to step into OS functions with full C source code
support?

   -Bob Whiteman

 -Original Message-
 From: Bob Whiteman [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, July 26, 2000 11:50 AM
 To: Palm Developer Forum
 Subject: Stepping into OS source code, and Palm OS 3.5 bug
 
 
 Hi all,
 
 I have a program which includes a set of small buttons across 
 the bottom of
 the main form. To manage the overall size of this set of 
 buttons I have a
 gadget which overlaps the buttons. On all OSes other than 
 3.5, this works
 fine. But on Palm OS 3.5, the buttons which overlap the 
 gadget never get a
 ctlSelectedEvent. It looks like 3.5 is ignoring the fact that 
 the gadget is
 set to unusable.
 
 For now I've replaced the gadget code with something 
 clunkier. Is this a
 known issue with Palm OS 3.5?
 
   -Bob Whiteman
 
 -- 
 For information on using the Palm Developer Forums, or to 
 unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
 

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



RE: Message rejected

2000-07-27 Thread Bob Whiteman

The person's original plan was to use the category attribute of individual
records to split a single Palm database into multiple "tables". This
category attribute is the one that's limited to 16 values. Though he
only needs 14 tables, in the future if he needs to add more tables to the
database, in which case he'll have to replace that mechanism with
something else. I was just warning him of that possibility.

If he instead uses the first byte of each record or some other mechanism
to replace the built-in category mechanism he won't hit that limit. I
think it would be simpler to just use multiple Palm databases, though.

   -Bob Whiteman

-Original Message-
From: Dave Lippincott
To: Palm Developer Forum
Sent: 7/27/2000 12:34 PM
Subject: Re: multi table relational databases

What does having 14 Tables/DBs have to do with the Palm only having 16
categories?  (really only 15 if you count the obligatory 'all'
category).
Category use is definable or ignoble by the programmer.  To get around
the #
limitation, you just ignore the PDB built in category mechanism and use
your
own if need be.  I've seen applications from other developers with
essentially an unlimited # of categories.

- Original Message -----
From: "Bob Whiteman" [EMAIL PROTECTED]
To: "Palm Developer Forum" [EMAIL PROTECTED]
Sent: Thursday, July 27, 2000 1:58 PM
Subject: RE: multi table relational databases


 Well 14 tables raises a new concern. You can only have 16 categories in
 a Palm database. If you were to add a couple more tables to your already
 extensive database you'll be out of luck.

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Stepping into OS source code, and Palm OS 3.5 bug

2000-07-26 Thread Bob Whiteman

Hi all,

I have a program which includes a set of small buttons across the bottom of
the main form. To manage the overall size of this set of buttons I have a
gadget which overlaps the buttons. On all OSes other than 3.5, this works
fine. But on Palm OS 3.5, the buttons which overlap the gadget never get a
ctlSelectedEvent. It looks like 3.5 is ignoring the fact that the gadget is
set to unusable.

For now I've replaced the gadget code with something clunkier. Is this a
known issue with Palm OS 3.5?

  -Bob Whiteman

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/



Palm OS 3.5 list arrows

2000-07-26 Thread Bob Whiteman

I have a program which creates list controls on the fly (LstNewList) and
moves them around the display (FrmSetObjectPosition) and destroys them
(FrmRemoveObject). I use a clipping rectangle to keep this movement within a
display area on the main form. This works properly on all OSes between 3.0
and 3.3, but on 3.5 there's a problem.

The 3.5 list control added arrows at the top and bottom which make it easy
for the user to scroll the list. The problem occurs when the list overlaps
the clipping region and I call LstDrawList. The majority of the list control
is clipped properly but the arrow is drawn outside the clipping region,
violating the WinSetClip call. This ends up overwriting parts of the main
form outside the display area on the main form.

I could redraw the rest of the main form every time this occurs, but that
would cause flickering and would significantly slow down the drawing.

Is there a fix for this issue?

  -Bob Whiteman

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/