On Mon, Dec 12, 2011 at 5:00 AM, Oliver Sims <
oliver.s...@simsassociates.co.uk> wrote:

> **
> I've looked through build 7382 of ooDialog Reference, and have found the
> change cursor shape methods.
> What I hoped to find was a way to change the mouse pointer to an image of
> my own, but it seems that is not possible (??).
>
>

This could be possible, but ooDialog currently doesn't have anything that
would support it.  So, practically speaking it is not possible at this
point in time.




>
>
> So next question: can I detect when the mouse moves over my dialog? I've
> looked at all the standard event-handling methods, but cannot find one
> that tells me when the mouse "enters" or "leaves" my dialog as the user
> drags the mouse over it. Does such a thing exist?
>
>

The current mouse support in ooDialog was poorly thought out, in my
opinion.  But mouse support is not something that lends itself easily to
ooDialog.  What is there, is tied to the dialog object.  It would be better
to have a mouse class and add features to that class.

Be sure to look at captureMouse(), getMouseCapture(), and
releaseMouseCapture().  Although I haven't ever tried them and my gut
feeling is that they won't give you much.

That said, here is a sample program that shows how to connect the mouse
move event.  Problems are going to be: you won't get the notification if
the mouse is over any dialog control in the dialog, there is no way to tell
when the mouse leaves the dialog, and probably other problems.  <grin>

This is probably the best you can do at this point:

/* Simple User Dialog template */

  dlg = .SimpleDialog~new( , "simple.h")
  dlg~execute("SHOWTOP", IDI_DLG_OOREXX)

::requires "ooDialog.cls"

::class 'SimpleDialog' subclass UserDialog

::constant  WM_MOUSEMOVE        0x0200
::constant  MK_LBUTTON          0x0001
::constant  MK_RBUTTON          0x0002
::constant  MK_SHIFT            0x0004
::constant  MK_CONTROL          0x0008
::constant  MK_MBUTTON          0x0010
::constant  MK_XBUTTON1         0x0020
::constant  MK_XBUTTON2         0x0040

::method init
  forward class (super) continue

  self~create(30, 30, 257, 123, "Simple Dialog", "CENTER")
  self~addUserMsg(onMove, self~WM_MOUSEMOVE, 0xffffffff, 0, 0, 0, 0)

::method defineDialog

  self~createPushButton(IDOK, 142, 99, 50, 14, "DEFAULT", "Ok")
  self~createPushButton(IDCANCEL, 197, 99, 50, 14, , "Cancel")

::method onMove unguarded
  use arg wParam, lParam

  pos = .Point~new(.DlgUtil~sLoWord(lParam), .DlgUtil~sHiWord(lParam))
  keys = ''
  if .DlgUtil~and(wParam, self~Mk_CONTROL)  <> 0 then keys ||= 'Ctrl'
  if .DlgUtil~and(wParam, self~Mk_SHIFT)    <> 0 then keys ||= ' Shift'
  if .DlgUtil~and(wParam, self~Mk_LBUTTON)  <> 0 then keys ||= ' LButton'
  if .DlgUtil~and(wParam, self~Mk_RBUTTON)  <> 0 then keys ||= ' RButton'
  if .DlgUtil~and(wParam, self~Mk_MBUTTON)  <> 0 then keys ||= ' MButton'
  if .DlgUtil~and(wParam, self~Mk_XBUTTON1) <> 0 then keys ||= ' XButton1'
  if .DlgUtil~and(wParam, self~Mk_XBUTTON2) <> 0 then keys ||= ' XButton2'

  say 'The mouse is at ('pos~x',' pos~y') with these qualifiers:' keys

  return 0
You will get output like this:

The mouse is at (95, 78) with these qualifiers:
The mouse is at (93, 76) with these qualifiers:
The mouse is at (87, 72) with these qualifiers:
The mouse is at (47, 119) with these qualifiers:  LButton
The mouse is at (72, 79) with these qualifiers:
The mouse is at (45, 148) with these qualifiers:  LButton
The mouse is at (57, 164) with these qualifiers:  LButton


--
Mark Miesfeld
------------------------------------------------------------------------------
Learn Windows Azure Live!  Tuesday, Dec 13, 2011
Microsoft is holding a special Learn Windows Azure training event for 
developers. It will provide a great way to learn Windows Azure and what it 
provides. You can attend the event by watching it streamed LIVE online.  
Learn more at http://p.sf.net/sfu/ms-windowsazure
_______________________________________________
Oorexx-users mailing list
Oorexx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-users

Reply via email to