Exiting a DialogBox created with FoxGUIb

E

e aldaz

Dear All

I am new to FOX and FoxGUIb. I have found FoxGUIb very
useful and I have created an application with menus,
one of which calls a DialogBox for the user to enter
some values. After finishing the user will press OK to
save data.

Unfortunately I don’t know how to let the
DialogBox know tha tonce the OK button is pressed it
should exit. It seems I need to send message ID_ACCEPT
to some recipient (not sure which) when the button OK
is clicked? But no idea how to do that with the code
that is generated by FoxGUIb as the button is created
in a different way to what I have seen in the examples
in the web, and I have no idea how to relate them (
I'm afraid I haven't really understood the FXButton
API)

The dialog box examples I have seen do something like
the following:

# Accept
accept = FXButton.new(buttons, "&Accept", nil,
self, ID_ACCEPT,
FRAME_RAISED|FRAME_THICK|LAYOUT_RIGHT|LAYOUT_CENTER_Y)


However the FoxGUIb creates a button doing:

FX::Button.new(@verticalframe7){|w|
@button_ok=w
w.wdg_name='button_ok'
w.text="Ok"
w.width=21
w.y=4
w.height=21
w.layoutHints=40
w.x=26
w.selector=FX::DialogBox::ID_QUIT

@button_ok.connect(Fox::SEL_COMMAND){
lat = textfield_lat.text
lon = textfield_lon.text
heading
=textfield_heading.text
#How
do I indicate that I want to accept and exit?:?

}
}

So in this last example, how do I exit the dialog when
button is clicked?

Thanks very much for your help
Eduardo




Send instant messages to your online friends http://uk.messenger.yahoo.com
 
M

Meinrad Recheis

Dear All

I am new to FOX and FoxGUIb. I have found FoxGUIb very
useful and I have created an application with menus,
one of which calls a DialogBox for the user to enter
some values. After finishing the user will press OK to
save data.

Unfortunately I don't know how to let the
DialogBox know tha tonce the OK button is pressed it
should exit. It seems I need to send message ID_ACCEPT
to some recipient (not sure which) when the button OK
is clicked? But no idea how to do that with the code
that is generated by FoxGUIb as the button is created
in a different way to what I have seen in the examples
in the web, and I have no idea how to relate them (
I'm afraid I haven't really understood the FXButton
API)

me neither ;) ... there are some very hackish things that make the use
of fox toolkit not as easy as it could be.
The dialog box examples I have seen do something like
the following:

# Accept
accept = FXButton.new(buttons, "&Accept", nil,
self, ID_ACCEPT,
FRAME_RAISED|FRAME_THICK|LAYOUT_RIGHT|LAYOUT_CENTER_Y)


However the FoxGUIb creates a button doing:

FX::Button.new(@verticalframe7){|w|
@button_ok=w
w.wdg_name='button_ok'
w.text="Ok"
w.width=21
w.y=4
w.height=21
w.layoutHints=40
w.x=26
w.selector=FX::DialogBox::ID_QUIT

@button_ok.connect(Fox::SEL_COMMAND){
lat = textfield_lat.text
lon = textfield_lon.text
heading
=textfield_heading.text
#How
do I indicate that I want to accept and exit?:?

}
}

So in this last example, how do I exit the dialog when
button is clicked?

the most simple aproach would be like this:
@button_ok.connect(Fox::SEL_COMMAND){
....
@topwin.hide() # assuming that @topwin is the name of the dialogbox
}

however if your dialog box has been run modal this will not work. the
dialog box disappears but is still modal. in this case you have to
send an ID_ACCEPT message to @topwin like this:

@topwin.handle(@button, FXSEL(Fox::SEL_COMMAND,
Fox::FXDialogBox::ID_ACCEPT), nil)

hope this helps,
-- meinrad (henon)
 
M

Meinrad Recheis

Hi Meinrad

I have included the call you mentioned in the funcion
connect and i get the error:

@topwin.handle(@button, FXSEL(Fox::SEL_COMMAND,
Fox::FXDialogBox::ID_ACCEPT), nil)

undefined method `FXSEL' for #<DialogBox:0x7f5e230>

yeah, sorry, i forgot to prefix FXSEL with Fox:: like this:

@topwin.handle(@button_ok,
Fox::FXSEL(Fox::SEL_COMMAND,Fox::FXDialogBox::ID_ACCEPT), nil)

-- meinrad
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,062
Latest member
OrderKetozenseACV

Latest Threads

Top