Ken Ray wrote:

It's an IDE change - b11 has a comment in the Version History that "Ask and
Answer dialogs now have their button positions placed according to the Mac
OS HIG when running on that platform." It changed between b6 and b11 (I
think it was b11).

Richard could tell you better...

I took a a look at it. Below is a corrected preOpenStack handler. Anyone who wants it can paste it into the first card of the "answer dialog" stack (watch for line wrap.) There were three places that needed correction. I've initialed them, in case it is easier to just find those lines and change them.

Somebody should test it on platforms other than Mac.

Revised handler:

on preOpenStack
local dtype, foffset, oldwidth, bwidth, twidth, iwidth, theight, curx, nchoices
  set the itemDelimiter to numToChar(0)
  put word 2 of item 1 of the dialogData into dtype
  if dtype is "plain" then
    hide button 1
    put 0 into foffset
  else
    global gMCappicon
    if gMCappicon <> empty then
      set the icon of button "icon" to gMCappicon
    else
      switch the lookAndFeel
      case "Motif"
        get the motifIcons of this stack
        break
      case "Macintosh"
      case "Appearance Manager"
        get the macintoshIcons of this stack
        break
      default
        get the windows95Icons of this stack
      end switch
      set the itemDelimiter to comma
set the icon of button "icon" to item itemOffset(dtype, "error,information,question,warning") of it
    end if
    set the itemDelimiter to numToChar(0)
    put 104 into foffset
    show button 1
  end if

  if item 2 of the dialogData is empty then
    set the title of this stack to space
  else
    set the title of this stack to item 2 of the dialogData
  end if

  put item 3 of dialogData into field 1
  get item 4 of dialogData

  if it is empty then get "OK"
  put the number of lines in it into nchoices
  put 32 into bwidth
  if nchoices > the number of buttons - 1 then
    put the number of buttons - 1 into nchoices
  end if

  # repeat with i = 2 to nchoices + 1
  # set the default of btn i to false
  # show button i
  # set the name of button i to line nchoices + 2 - i of it
  # set the width of button i to the formattedWidth of button i + 24
  # add the width of button i + 32 to bwidth
  # end repeat

  # repeat with i = nchoices + 1 down to 2
  repeat with i = 2 to nchoices + 1 -- JG
    put line nchoices + 2 - i of it into bname
    set the default of btn i to false
    show button i
    set the name of button i to bname
if bname = "OK" OR bname = "Cancel" or the num of chars of bname <= 7 then
      set the width of btn i to 68
      ## Apple HIG for OS X
    else
      set the width of button i to the formattedWidth of button i + 32
    end if
    add the width of button i + 32 to bwidth
  end repeat

  set the dontWrap of field 1 to true
  put max(the formattedWidth of field 1 + foffset + 24, bwidth) into twidth
  if twidth > 460 then
    put 460 into twidth
    set the dontWrap of field 1 to false
  end if
  put the width of this stack into oldwidth
  set the width of this stack to twidth
  set the width of field 1 to twidth - foffset - 16
  put the formattedHeight of field 1 + 68 into theight
  if theight > 400 then
    set the vScrollbar of field 1 to true
    put 400 into theight
  else set the vScrollbar of field 1 to false
  set the height of this stack to theight
  set the height of field 1 to theight - 68

  set the topLeft of field 1 to foffset,15
  ## Apple HIG presumes icons to be 64*64 pixel

  put (twidth - bwidth) div (nchoices + 1) + 32 into iwidth
  put iwidth into curx
if the lookAndFeel is "Macintosh" or the lookAndFeel is "Appearance Manager" then
    put twidth - 24 into anfangrechts
    ## repeat with i = nchoices + 1 down to 2
    repeat with i = 2 to nchoices + 1 -- JG
      set the right of button i to anfangrechts
      subtract the width of button i from anfangrechts
      subtract 12 from anfangrechts
      set the bottom of button i to the height of this stack - 20
    end repeat
  else
    repeat with i = 2 to nchoices + 1
      set the left of button i to round(curx)
      add the width of button i + iwidth to curx
      set the bottom of button i to the height of this stack - 16
    end repeat
  end if
  set the default of btn 2 to true -- JG

  set the dialogData to empty
end preOpenStack




--
Jacqueline Landman Gay         |     [EMAIL PROTECTED]
HyperActive Software           |     http://www.hyperactivesw.com
_______________________________________________
metacard mailing list
[email protected]
http://lists.runrev.com/mailman/listinfo/metacard

Reply via email to