Hi Oleg, Japheth,

some source snippets about that... EDIT makes heavy use of
the D-Flat windowing toolkit. The toolkit is written in plain
C code but features message / event driven processing and some
sort of class hierarchy / object orientation. In other words,
the source code tries to be very funky but is quite ugly ;-).

#define YesNoBox(msg)   \
  GenericMessage(NULL, NULL, msg, 2, YesNoBoxProc,   \
  Yes, No, ID_OK, ID_CANCEL, TRUE)

In msgbox.c, you can see YesNoBoxProc, which is indeed much
simpler than the handling in dial(og)box.c - but works okay.

You may want to read DialogProc and its KeyboardMsg and also the
global NormalProc to get an impression of D-FLAT. Or maybe not...

YesNoBoxProc only handles 'y' and 'n', and because classes.h says
ClassDef(  MESSAGEBOX,  DIALOG,  NULL, ...) the call to BaseWndProc
will probably not add extra hotkeys either (default handler for the
MESSAGEBOX class is just NULL)...:

#define BaseWndProc(Class,wnd,msg,p1,p2)    \
    (*classdefs[(classdefs[Class].base)].wndproc)(wnd,msg,p1,p2)

A YesNoBox also has no control box, so you have no alt-hyphen or
alt-f4, ctrl-f4 or the clickable system menu. Not needed either.

--> What you DO want to try is this: Extend YesNoBoxProc for the
--> cases LARROW, UP, \t, RARROW and DN, and make those call
--> PrevFocus(wnd->extension) or NextFocus(wnd->extension) :-).

I think the "button press" by enter (or space?) is already handled
elsewhere, maybe in "focused button receives keypress"? Whatever.

Please test and let me know if the suggested modification of the
YesNoBoxProc solves your problem. EDIT compiles with Turbo C 2.01.

Thanks for testing :-).

Eric

> >> Hmmm I cannot reproduce that problem. Both edit 0.7d and edit 0.81
> >> ("European" and "original American" branch) let me select "No" when
> >> I select either "exit" or "close" and get a dialog which asks me
> >> whether I want to save changes, either by mouse or by keyboard.
> >
> > On my PC I cannot switch to "No" with TAB or the cursor keys
> > if edit asks to save the file. The mouse works, though.
> I have the same problem :-(  But keys `y' and `n' works.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to