diff options
| author | Michael R Sweet <michael.r.sweet@gmail.com> | 1998-10-06 18:21:25 +0000 |
|---|---|---|
| committer | Michael R Sweet <michael.r.sweet@gmail.com> | 1998-10-06 18:21:25 +0000 |
| commit | f9039b2ae21988783feae9b362818e7923e82d14 (patch) | |
| tree | 6d6fe3679d73448758f9794e7d4d4f6b22a4adad /test/connect.cxx | |
| parent | 67e89232f9ba067825a158734a09e0fa21aacbe3 (diff) | |
Initial revision
git-svn-id: file:///fltk/svn/fltk/trunk@2 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'test/connect.cxx')
| -rw-r--r-- | test/connect.cxx | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/test/connect.cxx b/test/connect.cxx new file mode 100644 index 000000000..26fd02d07 --- /dev/null +++ b/test/connect.cxx @@ -0,0 +1,47 @@ +/* connect.C + + Program to make a button to turn a ppp connection on/off. + You must chmod +s /usr/sbin/pppd, and put all the options + into /etc/ppp/options. + +*/ + +#include <stdlib.h> +#include <stdio.h> +#include <unistd.h> +#include <signal.h> + +#include <FL/Fl.H> +#include <FL/Fl_Window.H> +#include <FL/Fl_Toggle_Button.H> + +int running; // actually the pid +Fl_Toggle_Button *Button; + +void sigchld(int) { + running = 0; + Button->value(0); +} + +void cb(Fl_Widget *o, void *) { + if (((Fl_Toggle_Button*)o)->value()) { + if (running) return; + running = fork(); + if (!running) execl("/usr/sbin/pppd","pppd","-detach",0); + else signal(SIGCHLD, sigchld); + } else { + if (!running) return; + kill(running, SIGINT); + running = 0; + } +} + +int main(int argc, char ** argv) { + Fl_Window window(100,50); + Fl_Toggle_Button button(0,0,100,50,"Connect"); + Button = &button; + button.color(1,2); + button.callback(cb,0); + window.show(argc,argv); + return Fl::run(); +} |
