RE: Checkbox/field related question

2005-03-01 Thread Silver, Jason
Hi Jonathan,

Thanks for your script!  I think I see where you're going with it
(though the second line is still a little confusing; I'm still grasping
when to use "me" and/or "target").  

What I'm doing instead is using graphics for checkboxes.  So, in my if
statement, I'm checking as follows:

  if the imageSource of char 1 of line currentLine of field "List Items"
is "Checkbox Empty"  then
set the imageSource of char 1 of line currentLine of field "List
Items" to "Checkbox Filled"
  else if the imageSource of char 1 of line currentLine of field "List
Items" is "Checkbox Filled" then
set the imageSource of char 1 of line currentLine of field "List
Items" to "Checkbox Empty"
  end if

I wasn't able to think of this solution before looking at your script.
Thank you for shedding light; this list always does!

-Jason

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Lynch,
Jonathan
Sent: Tuesday, March 01, 2005 12:05 PM
To: How to use Revolution
Subject: RE: Checkbox/field related question

I am chiming in late on this - so I might be confused...

But if you are looking to have a checkbox in a field that switches back
and forth when checked - I have a field that does this. The following
script goes in the field:

On mouseup
   put word 2 of mousecharchunk() into aaa
put character aaa of me into B
if chartonum(B) = 254 then 
  put numtochar(168) into character aaa of me
  set the textfont of character aaa of me to "wingdings"
  set the textsize of character aaa of me to 16
else if chartonum(B) = 168 then 
  put numtochar(254) into character aaa of me
  set the textfont of character aaa of me to "wingdings"
  set the textsize of character aaa of me to 16
end if
end mouseup

just make sure the field has the checkbox character in it to start out
with: *

I know - that probably looks like a bullet point - but if you change
it's font to wingdings, it will look like a checkbox.

If this is covering old ground for you, my apologies.





___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


RE: Checkbox/field related question

2005-03-01 Thread Silver, Jason
Thanks Ken and Mark!  I'm not using any HTML text in the fields...just
plain text.  So, I guess that means I'll be using imageSource for my
checkboxFilled.png and checkboxEmpty.png.  I'll just have to watch out
for when the select button is pressed:

on ButtonPress theButton
  switch (theButton)
  case selectKey
-- checked or unchecked graphic as the first character on the
hilited line?
-- replace graphic with the other one
break
end ButtonPress

When using imageSource, how can I get Revolution to return the name of
the control that was used for that particular image?

-Jason

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Mark
Wieder
Sent: Saturday, February 26, 2005 11:51 AM
To: How to use Revolution
Subject: Re: Checkbox/field related question

Jason-

KR> Personally, my suggestion would be to use a list field with two 
KR> separate images, one rectangle with a check mark, and one rectangle 
KR> without. That

That would be my approach, too. Assuming that you're already setting the
image by setting the html content of the line, then all you need to do
is change the imageSource and set the htmlText again.

function Available strWhat
  return "" & strWhat
end Available

function Unavailable strWhat
  return "" & strWhat end
Unavailable

set the htmlText of line whichLine of field "myField" to \
  Available(the hilitedText of field "myField")

--
-Mark Wieder
 [EMAIL PROTECTED]


___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


Checkbox/field related question

2005-02-25 Thread Silver, Jason
Hello again fellow revolutionaries!

Since I last posted, I've made a lot of progress on my mobile phone
simulation stack.  There's a sub-stack containing contacts, and I have a
couple of cards in the mainstack (Prototype) which are reading
information from the cards in the Contacts sub-stack.

The following screen provides a good example and background of what I've
done:
http://img71.exs.cx/img71/9557/listitems7ci.png
All of the text you see (except for the title of the screen and the
softkeys) is being pulled from cards in the Contacts sub-stack.  Each
blurred out line corresponds to a card from that stack, and the content
of the field (i.e. the names) is generated dynamically when the card is
opened.  It's a multi-line field, and the icons are put there by using
imageSource.  That made it easy to lay everything out according to the
screen dimensions I was provided.

Now, I've come to a point where I want to select/deselect multiple names
to add them to a group.  This is a wireframe of the proposed design from
Visio:
http://img71.exs.cx/img71/8803/checkboxes8wd.png
Like the previous example, I need this screen to be generated
dynamically when the card is opened, by pulling contact names from the
database (e.g. field "First name" of card x of stack "Contacts").
However, I'm confused about how to highlight checkboxes and text at the
same time.  (Like a mobile phone, scrolling up and down hilites a single
line WITH the checkbox).  Since each checkbox is a button, is it better
to have the contact name as the button's name, or have the checkbox
grouped with a field?   It's definitely tougher since I don't know if I
can do this with a single multi-line text field, and I also have to
figure out where to create and place the checkboxes when the card is
opened.

Like always, all help is welcome.  I think I'll be buying dinners for
many people once we meet up in Monterey.  :)

All the best,

Jason Silver
Human Factors Engineer, Sr.
QUALCOMM Inc.
[EMAIL PROTECTED] 
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


Dynamically creating notes that lay "on top" of cards

2005-02-10 Thread Silver, Jason
Being such a bottom-up thinker, I'm having some trouble taking a step
back and looking at the overall structure for this design.  On our
"unstable yet maturing" mobile phone simulation, there are times when
dialogs (from here on in, I'll call them notes) must be displayed on top
of whatever is already on the screen.  For example, you may have written
a text message and pressed the "End" key; you'll be asked if you want to
save what you've written.  What happens is as follows:

1) The user does something which causes the note to be displayed
2) The existing screen is dimmed, and the note is displayed on top.
3) The softkeys are changed so that they relate to the note (e.g. "Yes"
and "No")
4) The user decides on a relevant action.

Okay, now the Revolution side of things.  To dim the screen, I've
created a solid white image that uses a blend so that the screen appears
faded.  Creating a note is simple - it would just consist of two fields
grouped: the "Title" of the note and the "Body" of the note.  Softkey
changes can be done with a function, passing two parameters (name of
left softkey, name of right softkey).  But here I am thinking bottom-up
again...

The "Big picture" questions concern how these new notes interact with
the existing card.  Since there can be several different notes that can
overlay on the card (albeit one at a time), it seems silly to have all
these notes pre-created and invisible.  So, the big question is, can we
just have a note, then simply feed it the title and body when it is
displayed?

Also, since the softkeys change, the behavior has to change for those
buttons.  The "ButtonPress" message which I previously created was
handled at the card  (specifically leftSoftkey and rightSoftkey).  Since
that one card can either not be displaying a note, or have one of any
number of notes on top of it, does it seem sensible to create yet
another switch statement?  The condition would have to check if a note
is visible.  But the behavior can be different depending on which
note...maybe I should create the notes, have the behavior encapsulated
in that note (i.e. the field), and pass the ButtonPress message to the
note if there's one up?

There are so many ways to do things in Transcript, and moreover, in
Revolution, that I don't know what to try first.  Any advice on which
direction to go would be helpful.  Thank you!

Best regards,
Jason 
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


RE: mouseDown/Up - no actions when not on buttons

2005-02-10 Thread Silver, Jason
Even without storing the selectedField into a local variable, I was
still getting errors when clicking on the stack.  The problems persisted
even when there was an invisible button behind the "normal" buttons.  I
think the best way to prevent errors is the following method:

Store the current location of the cursor in a local variable for the
card.
For all buttons that depend on the selectedField being in an text box,
run a function to return the name of the selectedField.
If empty is returned, then we know we're not in "User ID" or "Password"
anymore.  Restore the previous known location from the variable, and go
there.

I have yet another question (actually one that my boss would like me to
pose to the mailing list), but I think I'll start it in a new topic, as
it has nothing to do with buttons.  :)

All the best,
Jason

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Pat
Trendler
Sent: Wednesday, February 09, 2005 5:50 PM
To: [EMAIL PROTECTED]; How to use Revolution
Subject: Re: mouseDown/Up - no actions when not on buttons

J Landman Gay wrote:

snip
> Instead of trying to get the name for all cases, change the syntax to:
>
> case navUp
> -- Determine which text field the user was in
> if the selectedField contains "User ID" then -- change this
>   focus on field "Password"

Jaqueline,
The above is always empty. If you use:

> put the short name of the selectedField into activeField
>   if activeField = "User ID" then

as Jason did, you can store the selectedField.

Of course, the rest of your recommendations are a far better way of
coding.

Pat
[EMAIL PROTECTED]
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


mouseDown/Up - no actions when not on buttons

2005-02-08 Thread Silver, Jason
Hello (again) :)  After some very useful advice from Jacqueline Landman
Gay at Hyperactive, I've changed the structure of my mobile phone sim
tool.  Now, instead of the buttons being on a palette, they're grouped
and behave like a background, showing up on every card.  When buttons
are pressed, they send a custom ButtonPress message with the name of the
button being pressed to the card.  The card then has a switch statement,
and does some action based on which button was pressed.

The current card I'm working on is a Login type screen, with two
focusable/editable fields, User ID and Password.  (Please see my shared
stack in RevOnline's User Spaces; the username is jsilver).  In the
switch statements, I have this script when the user presses up (or
down):

case navUp
  -- Determine which text field the user is currently in
  put the short name of the selectedField into activeField
  if activeField = "User ID" then
focus on field "Password"
  else -- The user must be in the password field
focus on field "User ID"
  end if
  break

This works all well and good, except when pressing on an area that's not
a button (in my stack, the purpleish area).  The cursor then disappears
from either the User ID or Password fields, and then when pressing Up or
Down, the following error occurs (because the focus is not in a field):

Type: Chunk: no target found
Object: Login Screen
Line: put the short name of the selectedField into activeField

Basically, I never want the focus to leave either the User ID or
Password fields; this simulation is supposed to be controlled solely by
the buttons placed in the "Buttons" group.  Is there an easy way to
block the mouseUp (or mouseDown?) handler from doing anything when not
on those buttons?  I've tried adding "exit mouseDown" type handlers in
the card and stack, but this doesn't do anything.  Any help is
appreciated.

Thanks again!

Jason Silver
Human Factors Engineer, Sr.
QUALCOMM Inc.
(858) 845-3444
[EMAIL PROTECTED] 
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


Palette as a stack or sub-stack, and a mouseUp/mouseStillDown question

2005-02-06 Thread Silver, Jason
Hello everyone,

I think I'm becoming a regular poster to this mailing list!  :)
Anyways, I've got a question regarding how I'm setting up the
architecture of my program, and then a button question.

Up until now, I've had a stack "Screen", which is simulating the screens
of our company's would-be handset.  When I first was playing around in
Revolution, the stack contained a display and lots of buttons, much like
a usual mobile phone.  However, to simplify screen creation, I made the
stack "Screen" only 240x320 (the size of  the actual screen), so it
would be easy to place icons and fields in exactly the same position as
they would be on the real phone.  I thought that I would control the
screen with particular keyboard presses (e.g. "S" for the Send key, "E"
for the end key, etc.)

At this point, I think it's going to be easier to make buttons to
navigate the interface, because we'd also like to be able to type into
specific fields using the keyboard.  So, I've created a sub-stack called
"Handset Buttons", and I've made it a palette.  Am I heading down the
right road, or is it better to have the palette in a separate stack?

To give some context, once the user presses a button on the palette,
such as "Send", the "Screen" stack will be jumping to a particular card
(and this can change, depending on what field is highlighted on the
current card).  Imagine highlighting an particular menu item on your
mobile phone and pressing select; the next screen is entirely dependent
on what line you're highlighting.  When I'm in fields on the "Screen"
stack, how do I monitor which buttons are pressed on the "Handset
Buttons" sub-stack?

The situation is further complicated by certain buttons I want to have
on the palette that will do two different things, depending on whether
you're short-pressing the button, or pressing and holding the button.
It seems logical to have a long-press on the phone map to a
"mouseStillDown" message in Revolution.  However, I want to make sure
that when there's a long press of a button, that the "mouseUp" message
is NOT sent afterwards.  So, the mouseUp of a button is the short-press,
and the mouseStillDown is the long-press (that doesn't do the
short-press as well).  Is this accomplish by message sending or passing?
Or am I completely off-base?

Phew, I think that explains everything I'm dealing with at the moment.
I wanted to thank all of you again for getting a newbie like myself off
the ground with Revolution and the Transcript language.  Your help has
proven invaluable!

Jason Silver
Human Factors Engineer, Sr.
QUALCOMM Inc.
[EMAIL PROTECTED] 
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


Rev 2.5 on WinXP: Issues with multiple monitors

2005-02-04 Thread Silver, Jason
I'm not sure this is classified as a "bug", but I've noticed an issue in
Revolution that irks me.  The computer provided to me by my company is a
laptop; while in the office, I have it connected to a docking station
which connects to an external monitor.  This lets me use the big 21" CRT
as my primary display, and the laptop screen as a secondary display.
For Revolution, I usually situate things so that the Documentation
window is open on the second screen, and possibly the Application
Browser, Inspector, etc.

The problem arises when I'm working without that second screen.  In this
case, the laptop screen becomes the primary (and only) display.  Most
applications are multi-monitor friendly, and they realize that the
laptop is the only screen, so they better display things on it.
Revolution does not have this capability.  I'll click on the
"Documentation" button, and it seems like nothing is happening.  Well,
the Documentation window is up, but it's 1500 or so pixels to the right,
on a screen that's not there.  I haven't figured out a way to get it
back to the main display without hooking the laptop up to the second
monitor, moving the window, etc.

I'm sure there's a workaround (e.g. typing some "move" command into the
Message Box), but I was hoping that this issue could be looked at, and
possibly changed in forthcoming releases of the software.

Jason Silver
Human Factors Engineer, Sr.
QUALCOMM Inc.
[EMAIL PROTECTED] 
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


Newbie question: use of fields for mobile phone sim

2005-01-26 Thread Silver, Jason
Hello everyone,

Now that our company has bought Revolution, I have much more motivation
to use this product!  Anyways, I had a question on the best way to set
up text and images in fields.  Without further ado...

Since I'm creating a prototype of a mobile phone application in
Revolution, the boss would like it to be "as close as possible" to the
real thing.  To give some context, take a look at this picture:
http://img93.exs.cx/my.php?loc=img93&image=generic8gy.jpg
Each line must be 29 pixels high, and the text 42 pixels over from the
left.  There may be different icons on each line, which are 7 pixels
over, and vertically centered on each 29 pixel-high line.

Now, I'm wondering the best way to implement this.  The text in each
line will be pulled from a stack containing names (imagine a list of
contacts).  Is it better to:

A) Create several single-line fields?  The problem with this comes into
play when there are more than 8 items...figuring out scrolling could be
awful.
B) Create a multi-line field.  This seems easier, but how do I put
different images on each line?  If the user scrolls up and down, I'd
like the correct image to stay on the correct line.
C) Something I haven't thought of yet?

The thought of different icons (and dealing with the transparency) is
giving me headaches.  How do I best approach this as a Revolution
newbie?

Any help is greatly appreciated.

Thanks,
Jason
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


RE: What do most Rev developers do?

2005-01-26 Thread Silver, Jason
Hi Jonathan,

I belong to a UI Design group here at Qualcomm; my day-in/day-out job
consists of designing the user-interface for applications on cell
phones.  I never touch code; all of our backgrounds in the group are
related to the cognitive sciences. 

We recently purchased Revolution at Qualcomm to develop some fairly
high-fidelity prototypes of how things will look on a cell phone before
they're "really" programmed by the engineers.  It's my first experience
with a Metacard language, but so far, it's enjoyable.  :)

Sincerely,

Jason Silver
Human Factors Engineer, Sr.
QUALCOMM Inc.
[EMAIL PROTECTED] 

> I have a question for you guys:
> 
> What do you do?
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


Improper code or a bug in Revolution?

2004-12-16 Thread Silver, Jason
Hello all,

Several weeks ago I posted to the use-revolution list to ask for advice
on making transparent buttons, used in a handset simulation.  I'd like
to thank all of you who replied to my posting; the Revolution developer
community is a very friendly and helpful place!

Now, onto my question.  I seem to have hit a roadblock with the
simulation, and unfortunately I cannot open my sim stack without
crashing Revolution.  I had two snippets of code in the sim, but I'm
fairly sure they wouldn't have caused problems.  The first bit was in my
main stack "Handset simulation", used to find out how many cards I had
in a sub-stack, named "Contacts" (this would be the database for the
address book application):

on OpenStack
  global numberOfAddressBookEntries
  get the number of cards of the stack "Contacts"
  put it into numberOfAddressBookEntries
  --Testing statement:
  answer "The number of address cards is " & numberOfAddressBookEntries
end OpenStack

The other bit of code was with my transparent buttons.  They were in a
group called "Keypad", and I was trying to script the group instead of
each individual button:

on mouseUp
  -- copy the label of the button clicked on into the buttonPressed
variable
  put the label of the target into buttonPressed
  -- Testing statement:  
  answer buttonPressed & " has been pressed!"
end mouseUp

Everything seemed to work fine, but I think a problem occurred after
installing Devolution.  I fooled around with the "Explicit variables"
option, which led to this disaster.  I uninstalled everything,
reinstalled Revolution (still on trial, waiting for the company to
purchase a license), and now I get these errors:

http://img91.exs.cx/img91/7342/reverror27qo.png
http://img11.exs.cx/img11/145/reverror14qp.png

It looks like something is messing with the license.rev file.  Two
interesting things to notice:  
- In the Application Browser window, my "Handset Simulation" stack
doesn't even show up.
- The error dialog that appears changes, and I have no idea why.
If explicitVariables was even set to "true", I haven't figured out any
way to get into the stack to edit the script.  I find it hard to believe
that a badly written stack can bring down the entire IDE.  Is my stack
hosed?  Where do I go from here?

Thank you for your help.

Sincerely,
Jason Silver

Human Factors Engineer, Sr.
jsilver at qualcomm DOT com 
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Newbie question about image/button relationships

2004-11-22 Thread Silver, Jason
Hello all,

This is my first post to the use-revolution mailing list, and I have a
question about what images/buttons can (or cannot) do.  Our company has
chosen Revolution to create prototypes of handset applications, so we
can mock them up and find potential areas of confusion before committing
to the user interface of the application.  I only have a handful of
programming knowledge, as my background is in Human-Computer
Interaction, focusing on UI design and usability; this is also my first
experience with a "card-based" language.

Now, onto the issue.  I have an image of a mobile phone keypad (in JPG
format), and I would like for the user to be able to click on specific
areas, causing changes to occur on the "screen" (which is a field).  Is
there a way to Revolution to watch for specific areas of the image to be
pressed (such as the coordinates of a "Send" key, vs. the coordinates of
an "End" key)?  Keep in mind, this is only one image, not a bunch of
images.  If this is not possible, do I have to create a group of buttons
on top of the image that are all set so they are not visible?

Thank you in advance for your help.  I'm happy that a mailing list like
this exists!

Best regards,
Jason Silver

Human Factors Engineer, Sr.
QUALCOMM Inc.
[EMAIL PROTECTED] 

___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution