1999-11-13 16:02:31 -08:00
|
|
|
/* E-ScreenSave.c
|
|
|
|
*
|
|
|
|
* Copyright (C) 1999 Tom Gilbert
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License as
|
|
|
|
* published by the Free Software Foundation; either version 2 of the
|
|
|
|
* License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
|
|
|
* USA
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <sys/resource.h>
|
|
|
|
|
|
|
|
|
1999-11-19 15:01:40 -08:00
|
|
|
#include "epplet.h"
|
1999-11-13 16:02:31 -08:00
|
|
|
#include "utils.h"
|
|
|
|
#include "cloak.h"
|
|
|
|
#include "E-ScreenSave.h"
|
|
|
|
|
Sat Dec 04 01:05:38 GMT 1999
(gilbertt)
So, say hello to Epplet_create_window_config.
It rules ;)
Here's the definition:
Window Epplet_create_window_config(int w,int h,char *title,
void (*ok_func) (void *data),void *ok_data,
void (*apply_func) (void *data),void *apply_data,
void (*cancel_func) (void *data),void *cancel_data);
You can picture what it does, and check it out in E-ScreenSave. (Press the
"Lock" button).
The cool thing is that if you supply NULL for any of the callbacks, that
button won't be added to the dialog. So, for an Ok, Cancel dialog, just
supply NULL for apply_func.
I have added explanation to the epplet.h file, and would like people to bang
at this now? I will set my epplets up to use the new functions fully over
the weekend. This will help me find any problems, as I haven't tested adding
every type of gadget to config windows yet, there may still be redraw issues
I missed.
Its pretty nice now though, and I have checked for memory leaks and bad
handling, please point out anything dubious you see. The api will become
more rich over the next few days, then it should stabilise.
Any feature suggestions, send 'em now :)
SVN revision: 1493
1999-12-03 12:56:49 -08:00
|
|
|
Window confwin = 0;
|
1999-12-03 05:07:03 -08:00
|
|
|
|
1999-11-13 16:02:31 -08:00
|
|
|
static void
|
1999-11-30 06:45:32 -08:00
|
|
|
choose_random_cloak (void *data)
|
1999-11-13 16:02:31 -08:00
|
|
|
{
|
|
|
|
static int last_anim = 0;
|
|
|
|
|
|
|
|
do
|
|
|
|
{
|
1999-11-30 06:45:32 -08:00
|
|
|
opt.cloak_anim = (int) (15 * ((float) rand ()) / (RAND_MAX + 1.0)) + 1;
|
1999-11-13 16:02:31 -08:00
|
|
|
}
|
1999-11-30 06:45:32 -08:00
|
|
|
while (opt.cloak_anim == last_anim); /* Don't pick the same one twice in a row. */
|
1999-11-13 16:02:31 -08:00
|
|
|
last_anim = opt.cloak_anim;
|
1999-11-30 06:45:32 -08:00
|
|
|
Epplet_timer (choose_random_cloak, NULL, opt.rand_delay, "RAND_TIMER");
|
1999-11-13 16:02:31 -08:00
|
|
|
return;
|
|
|
|
data = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
save_config (void)
|
|
|
|
{
|
|
|
|
char buf[10];
|
1999-11-30 06:45:32 -08:00
|
|
|
Esnprintf (buf, sizeof (buf), "%.2f", opt.delay);
|
1999-11-13 16:02:31 -08:00
|
|
|
Epplet_modify_config ("SAVE_DELAY", buf);
|
1999-11-30 06:45:32 -08:00
|
|
|
Esnprintf (buf, sizeof (buf), "%.2f", opt.cloak_delay);
|
1999-11-13 16:02:31 -08:00
|
|
|
Epplet_modify_config ("CLOAK_DELAY", buf);
|
1999-11-30 06:45:32 -08:00
|
|
|
Esnprintf (buf, sizeof (buf), "%.2f", opt.draw_interval);
|
1999-11-13 16:02:31 -08:00
|
|
|
Epplet_modify_config ("DRAW_INTERVAL", buf);
|
1999-11-30 06:45:32 -08:00
|
|
|
Esnprintf (buf, sizeof (buf), "%.2f", opt.rand_delay);
|
1999-11-13 16:02:31 -08:00
|
|
|
Epplet_modify_config ("RAND_DELAY", buf);
|
1999-11-30 06:45:32 -08:00
|
|
|
Esnprintf (buf, sizeof (buf), "%d", opt.do_cloak);
|
1999-11-13 16:02:31 -08:00
|
|
|
Epplet_modify_config ("DO_CLOAK", buf);
|
|
|
|
if (opt.rand_cloak)
|
|
|
|
{
|
|
|
|
strcpy (buf, "16");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
1999-11-30 06:45:32 -08:00
|
|
|
Esnprintf (buf, sizeof (buf), "%d", opt.cloak_anim);
|
1999-11-13 16:02:31 -08:00
|
|
|
}
|
|
|
|
Epplet_modify_config ("CLOAK_ANIM", buf);
|
1999-11-28 10:17:18 -08:00
|
|
|
Epplet_modify_config ("LOCK_COMMAND", opt.lock_cmd);
|
1999-11-13 16:02:31 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
load_config (void)
|
|
|
|
{
|
|
|
|
opt.do_cloak = atoi (Epplet_query_config_def ("DO_CLOAK", "1"));
|
|
|
|
opt.cloak_anim = atoi (Epplet_query_config_def ("CLOAK_ANIM", "8"));
|
|
|
|
if (opt.cloak_anim == 16)
|
|
|
|
{
|
|
|
|
opt.rand_cloak = 1;
|
1999-11-30 06:45:32 -08:00
|
|
|
choose_random_cloak (NULL);
|
1999-11-13 16:02:31 -08:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
opt.rand_cloak = 0;
|
|
|
|
}
|
|
|
|
opt.delay = atof (Epplet_query_config_def ("SAVE_DELAY", "0"));
|
|
|
|
opt.cloak_delay = atof (Epplet_query_config_def ("CLOAK_DELAY", "4"));
|
|
|
|
opt.rand_delay = atof (Epplet_query_config_def ("RAND_DELAY", "60"));
|
|
|
|
opt.draw_interval = atof (Epplet_query_config_def ("DRAW_INTERVAL", "0.1"));
|
1999-11-30 06:45:32 -08:00
|
|
|
if (opt.lock_cmd)
|
|
|
|
free (opt.lock_cmd);
|
|
|
|
opt.lock_cmd =
|
|
|
|
_Strdup (Epplet_query_config_def
|
|
|
|
("LOCK_COMMAND", "xscreensaver-command -lock &"));
|
1999-11-13 16:02:31 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
cb_close (void *data)
|
|
|
|
{
|
|
|
|
save_config ();
|
|
|
|
Esync ();
|
|
|
|
Epplet_unremember ();
|
|
|
|
exit (0);
|
|
|
|
data = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
cb_help (void *data)
|
|
|
|
{
|
|
|
|
Epplet_show_about ("E-ScreenSave");
|
|
|
|
return;
|
|
|
|
data = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
cloak_draw (void *data)
|
|
|
|
{
|
|
|
|
switch (opt.cloak_anim)
|
|
|
|
{
|
|
|
|
case 0:
|
|
|
|
{
|
|
|
|
blank_buf ();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case 1:
|
|
|
|
{
|
|
|
|
load_val = (opt.quality / 2);
|
|
|
|
draw_flame ();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case 2:
|
|
|
|
{
|
|
|
|
draw_radar ();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case 3:
|
|
|
|
{
|
|
|
|
draw_aa_radar ();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case 4:
|
|
|
|
{
|
|
|
|
draw_aa_triangle ();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case 5:
|
|
|
|
{
|
|
|
|
draw_aa_star ();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case 6:
|
|
|
|
{
|
|
|
|
draw_starfield ();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case 7:
|
|
|
|
{
|
|
|
|
draw_aa_starfield ();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case 8:
|
|
|
|
{
|
|
|
|
draw_rotator ();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case 9:
|
|
|
|
{
|
|
|
|
draw_scanner ();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case 10:
|
|
|
|
{
|
|
|
|
draw_colorwarp ();
|
|
|
|
break;
|
|
|
|
}
|
1999-11-30 06:45:32 -08:00
|
|
|
case 11:
|
1999-11-13 16:02:31 -08:00
|
|
|
{
|
1999-11-30 06:45:32 -08:00
|
|
|
draw_ball ();
|
|
|
|
break;
|
1999-11-13 16:02:31 -08:00
|
|
|
}
|
1999-11-30 06:45:32 -08:00
|
|
|
case 12:
|
1999-11-13 16:02:31 -08:00
|
|
|
{
|
1999-11-30 06:45:32 -08:00
|
|
|
draw_atoms ();
|
|
|
|
break;
|
1999-11-13 16:02:31 -08:00
|
|
|
}
|
1999-11-30 06:45:32 -08:00
|
|
|
case 13:
|
1999-11-13 16:02:31 -08:00
|
|
|
{
|
1999-11-30 06:45:32 -08:00
|
|
|
draw_text ();
|
|
|
|
break;
|
1999-11-13 16:02:31 -08:00
|
|
|
}
|
1999-11-30 06:45:32 -08:00
|
|
|
case 14:
|
1999-11-13 16:02:31 -08:00
|
|
|
{
|
1999-11-30 06:45:32 -08:00
|
|
|
draw_sine ();
|
|
|
|
break;
|
1999-11-13 16:02:31 -08:00
|
|
|
}
|
1999-11-30 06:45:32 -08:00
|
|
|
case 15:
|
1999-11-13 16:02:31 -08:00
|
|
|
{
|
1999-11-30 06:45:32 -08:00
|
|
|
draw_funky_rotator ();
|
|
|
|
break;
|
1999-11-13 16:02:31 -08:00
|
|
|
}
|
|
|
|
default:
|
|
|
|
{
|
|
|
|
blank_buf ();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Epplet_paste_buf (buf, win, 0, 0);
|
1999-11-30 06:45:32 -08:00
|
|
|
Epplet_timer (cloak_draw, NULL, opt.draw_interval, "DRAW_TIMER");
|
1999-11-13 16:02:31 -08:00
|
|
|
return;
|
|
|
|
data = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
cloak_epplet (void *data)
|
|
|
|
{
|
|
|
|
if (!cloaked)
|
|
|
|
{
|
|
|
|
Epplet_gadget_hide (btn_close);
|
|
|
|
Epplet_gadget_hide (btn_conf);
|
|
|
|
Epplet_gadget_hide (btn_help);
|
|
|
|
Epplet_gadget_hide (btn_save);
|
1999-11-13 16:45:48 -08:00
|
|
|
Epplet_gadget_hide (btn_ctimer);
|
|
|
|
Epplet_gadget_hide (btn_stimer);
|
1999-11-13 16:02:31 -08:00
|
|
|
Epplet_gadget_show (da);
|
|
|
|
cloak_draw (NULL);
|
|
|
|
cloaked = 1;
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
data = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
cb_cloak_anim (void *data)
|
|
|
|
{
|
|
|
|
cb_in (NULL, 0);
|
|
|
|
opt.do_cloak = 1;
|
|
|
|
opt.cloak_anim = *((int *) data);
|
|
|
|
if (opt.cloak_anim == 16)
|
|
|
|
{
|
|
|
|
opt.rand_cloak = 1;
|
1999-11-30 06:45:32 -08:00
|
|
|
choose_random_cloak (NULL);
|
1999-11-13 16:02:31 -08:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
if (opt.rand_cloak)
|
1999-11-30 06:45:32 -08:00
|
|
|
{
|
|
|
|
Epplet_remove_timer ("RAND_TIMER");
|
|
|
|
}
|
1999-11-13 16:02:31 -08:00
|
|
|
opt.rand_cloak = 0;
|
|
|
|
}
|
|
|
|
Epplet_timer (cloak_epplet, NULL, opt.cloak_delay, "CLOAK_TIMER");
|
|
|
|
return;
|
|
|
|
data = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
cb_cloak_delay (void *data)
|
|
|
|
{
|
|
|
|
Epplet_remove_timer ("CLOAK_TIMER");
|
|
|
|
opt.cloak_delay = *(int *) data;
|
|
|
|
Epplet_timer (cloak_epplet, NULL, opt.cloak_delay, "CLOAK_TIMER");
|
|
|
|
return;
|
|
|
|
data = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
cb_save_delay (void *data)
|
|
|
|
{
|
|
|
|
opt.delay = *(int *) data;
|
|
|
|
return;
|
|
|
|
data = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
cb_dont_cloak (void *data)
|
|
|
|
{
|
|
|
|
opt.do_cloak = 0;
|
|
|
|
Epplet_remove_timer ("CLOAK_TIMER");
|
|
|
|
return;
|
|
|
|
data = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
cb_in (void *data, Window w)
|
|
|
|
{
|
Fri Dec 03 23:47:45 GMT 1999
(gilbertt)
Okay. Lots has changed. It was pretty inconsistant to have loads of
functions returning or requiring a "Window win" paramater, and mine dealing
with "Epplet_window" parameters. I had to lose one, so I lost the one which
caused no breakage. Mine :)
I still use Epplet_window internally to encapsulate data on a per-window
basis. However, all public functions deal with "Window win" again. Now
things are consistant. The Epplet_window type is now private and hidden.
To do this, I have implemented a little lookup function to relate
Epplet_windows to Windows, which should be more than adequate for our needs.
You can now declare a delete event handler for your whole epplet, although I
may change to per-window delete event handlers if people request it.
If you return 1 from the delete event handler, or don't supply one, or
supply NULL, the window will be destroyed for you, if you return 0, the
delete event will be ignored. Use this to do things like saying "hrm, those
two settings cannot coexist" or "that file does not exist" etc.
I'm nearly finished with the window functions now, and will next add
convenience wrappers such as Epplet_create_window_config(...) to add ok,
apply and save buttons and setup callbacks for you, and some other stuff
too.
I'd appreciate it if people would poke around and see what they think, I'm
new at this Xlib stuf...
SVN revision: 1490
1999-12-03 11:34:55 -08:00
|
|
|
if (w == Epplet_get_main_window ())
|
1999-11-13 16:02:31 -08:00
|
|
|
{
|
Fri Dec 03 23:47:45 GMT 1999
(gilbertt)
Okay. Lots has changed. It was pretty inconsistant to have loads of
functions returning or requiring a "Window win" paramater, and mine dealing
with "Epplet_window" parameters. I had to lose one, so I lost the one which
caused no breakage. Mine :)
I still use Epplet_window internally to encapsulate data on a per-window
basis. However, all public functions deal with "Window win" again. Now
things are consistant. The Epplet_window type is now private and hidden.
To do this, I have implemented a little lookup function to relate
Epplet_windows to Windows, which should be more than adequate for our needs.
You can now declare a delete event handler for your whole epplet, although I
may change to per-window delete event handlers if people request it.
If you return 1 from the delete event handler, or don't supply one, or
supply NULL, the window will be destroyed for you, if you return 0, the
delete event will be ignored. Use this to do things like saying "hrm, those
two settings cannot coexist" or "that file does not exist" etc.
I'm nearly finished with the window functions now, and will next add
convenience wrappers such as Epplet_create_window_config(...) to add ok,
apply and save buttons and setup callbacks for you, and some other stuff
too.
I'd appreciate it if people would poke around and see what they think, I'm
new at this Xlib stuf...
SVN revision: 1490
1999-12-03 11:34:55 -08:00
|
|
|
if (cloaked)
|
|
|
|
{
|
|
|
|
Epplet_gadget_hide (da);
|
|
|
|
cloaked = 0;
|
|
|
|
Epplet_gadget_show (btn_close);
|
|
|
|
Epplet_gadget_show (btn_conf);
|
|
|
|
Epplet_gadget_show (btn_help);
|
|
|
|
Epplet_gadget_show (btn_save);
|
|
|
|
Epplet_gadget_show (btn_ctimer);
|
|
|
|
Epplet_gadget_show (btn_stimer);
|
|
|
|
}
|
|
|
|
Epplet_remove_timer ("CLOAK_TIMER");
|
|
|
|
Epplet_remove_timer ("DRAW_TIMER");
|
1999-11-13 16:02:31 -08:00
|
|
|
}
|
|
|
|
return;
|
|
|
|
data = NULL;
|
|
|
|
w = (Window) 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
cb_out (void *data, Window w)
|
|
|
|
{
|
Fri Dec 03 23:47:45 GMT 1999
(gilbertt)
Okay. Lots has changed. It was pretty inconsistant to have loads of
functions returning or requiring a "Window win" paramater, and mine dealing
with "Epplet_window" parameters. I had to lose one, so I lost the one which
caused no breakage. Mine :)
I still use Epplet_window internally to encapsulate data on a per-window
basis. However, all public functions deal with "Window win" again. Now
things are consistant. The Epplet_window type is now private and hidden.
To do this, I have implemented a little lookup function to relate
Epplet_windows to Windows, which should be more than adequate for our needs.
You can now declare a delete event handler for your whole epplet, although I
may change to per-window delete event handlers if people request it.
If you return 1 from the delete event handler, or don't supply one, or
supply NULL, the window will be destroyed for you, if you return 0, the
delete event will be ignored. Use this to do things like saying "hrm, those
two settings cannot coexist" or "that file does not exist" etc.
I'm nearly finished with the window functions now, and will next add
convenience wrappers such as Epplet_create_window_config(...) to add ok,
apply and save buttons and setup callbacks for you, and some other stuff
too.
I'd appreciate it if people would poke around and see what they think, I'm
new at this Xlib stuf...
SVN revision: 1490
1999-12-03 11:34:55 -08:00
|
|
|
if (w == Epplet_get_main_window ())
|
|
|
|
{
|
|
|
|
Epplet_remove_timer ("CLOAK_TIMER");
|
|
|
|
if ((!cloaked) && (opt.do_cloak))
|
|
|
|
Epplet_timer (cloak_epplet, NULL, opt.cloak_delay, "CLOAK_TIMER");
|
|
|
|
}
|
1999-11-13 16:02:31 -08:00
|
|
|
return;
|
|
|
|
data = NULL;
|
|
|
|
w = (Window) 0;
|
|
|
|
}
|
|
|
|
|
Sat Dec 04 01:05:38 GMT 1999
(gilbertt)
So, say hello to Epplet_create_window_config.
It rules ;)
Here's the definition:
Window Epplet_create_window_config(int w,int h,char *title,
void (*ok_func) (void *data),void *ok_data,
void (*apply_func) (void *data),void *apply_data,
void (*cancel_func) (void *data),void *cancel_data);
You can picture what it does, and check it out in E-ScreenSave. (Press the
"Lock" button).
The cool thing is that if you supply NULL for any of the callbacks, that
button won't be added to the dialog. So, for an Ok, Cancel dialog, just
supply NULL for apply_func.
I have added explanation to the epplet.h file, and would like people to bang
at this now? I will set my epplets up to use the new functions fully over
the weekend. This will help me find any problems, as I haven't tested adding
every type of gadget to config windows yet, there may still be redraw issues
I missed.
Its pretty nice now though, and I have checked for memory leaks and bad
handling, please point out anything dubious you see. The api will become
more rich over the next few days, then it should stabilise.
Any feature suggestions, send 'em now :)
SVN revision: 1493
1999-12-03 12:56:49 -08:00
|
|
|
static int
|
|
|
|
delete_cb (void *data, Window win)
|
|
|
|
{
|
|
|
|
confwin = 0;
|
|
|
|
|
|
|
|
/* Yes, please destroy the window for me... */
|
|
|
|
return 1;
|
|
|
|
win = (Window) 0;
|
|
|
|
data = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
ok_cb (void *data)
|
|
|
|
{
|
|
|
|
printf ("Ok pressed\n");
|
|
|
|
Epplet_window_destroy (confwin);
|
|
|
|
confwin = 0;
|
|
|
|
|
|
|
|
return;
|
|
|
|
data = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
apply_cb (void *data)
|
|
|
|
{
|
|
|
|
printf ("Apply pressed\n");
|
|
|
|
|
|
|
|
return;
|
|
|
|
data = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
cancel_cb (void *data)
|
|
|
|
{
|
|
|
|
printf ("Cancel pressed\n");
|
|
|
|
Epplet_window_destroy (confwin);
|
|
|
|
confwin = 0;
|
|
|
|
|
|
|
|
return;
|
|
|
|
data = NULL;
|
|
|
|
}
|
|
|
|
|
1999-11-13 16:02:31 -08:00
|
|
|
/* Amongst all the fluff, this is the bit that does the actual work. */
|
|
|
|
static void
|
|
|
|
cb_shoot (void *data)
|
|
|
|
{
|
1999-11-30 06:45:32 -08:00
|
|
|
|
1999-12-03 05:07:03 -08:00
|
|
|
static int temp = 20;
|
|
|
|
static int temp2 = 50;
|
|
|
|
static int temp3 = 80;
|
Sat Dec 04 01:05:38 GMT 1999
(gilbertt)
So, say hello to Epplet_create_window_config.
It rules ;)
Here's the definition:
Window Epplet_create_window_config(int w,int h,char *title,
void (*ok_func) (void *data),void *ok_data,
void (*apply_func) (void *data),void *apply_data,
void (*cancel_func) (void *data),void *cancel_data);
You can picture what it does, and check it out in E-ScreenSave. (Press the
"Lock" button).
The cool thing is that if you supply NULL for any of the callbacks, that
button won't be added to the dialog. So, for an Ok, Cancel dialog, just
supply NULL for apply_func.
I have added explanation to the epplet.h file, and would like people to bang
at this now? I will set my epplets up to use the new functions fully over
the weekend. This will help me find any problems, as I haven't tested adding
every type of gadget to config windows yet, there may still be redraw issues
I missed.
Its pretty nice now though, and I have checked for memory leaks and bad
handling, please point out anything dubious you see. The api will become
more rich over the next few days, then it should stabilise.
Any feature suggestions, send 'em now :)
SVN revision: 1493
1999-12-03 12:56:49 -08:00
|
|
|
Epplet_gadget sld, sld2, sld3, lbl, lbl2;
|
1999-12-01 11:28:34 -08:00
|
|
|
|
Sat Dec 04 01:05:38 GMT 1999
(gilbertt)
So, say hello to Epplet_create_window_config.
It rules ;)
Here's the definition:
Window Epplet_create_window_config(int w,int h,char *title,
void (*ok_func) (void *data),void *ok_data,
void (*apply_func) (void *data),void *apply_data,
void (*cancel_func) (void *data),void *cancel_data);
You can picture what it does, and check it out in E-ScreenSave. (Press the
"Lock" button).
The cool thing is that if you supply NULL for any of the callbacks, that
button won't be added to the dialog. So, for an Ok, Cancel dialog, just
supply NULL for apply_func.
I have added explanation to the epplet.h file, and would like people to bang
at this now? I will set my epplets up to use the new functions fully over
the weekend. This will help me find any problems, as I haven't tested adding
every type of gadget to config windows yet, there may still be redraw issues
I missed.
Its pretty nice now though, and I have checked for memory leaks and bad
handling, please point out anything dubious you see. The api will become
more rich over the next few days, then it should stabilise.
Any feature suggestions, send 'em now :)
SVN revision: 1493
1999-12-03 12:56:49 -08:00
|
|
|
if (confwin)
|
|
|
|
return;
|
1999-12-03 06:17:56 -08:00
|
|
|
|
Sat Dec 04 01:05:38 GMT 1999
(gilbertt)
So, say hello to Epplet_create_window_config.
It rules ;)
Here's the definition:
Window Epplet_create_window_config(int w,int h,char *title,
void (*ok_func) (void *data),void *ok_data,
void (*apply_func) (void *data),void *apply_data,
void (*cancel_func) (void *data),void *cancel_data);
You can picture what it does, and check it out in E-ScreenSave. (Press the
"Lock" button).
The cool thing is that if you supply NULL for any of the callbacks, that
button won't be added to the dialog. So, for an Ok, Cancel dialog, just
supply NULL for apply_func.
I have added explanation to the epplet.h file, and would like people to bang
at this now? I will set my epplets up to use the new functions fully over
the weekend. This will help me find any problems, as I haven't tested adding
every type of gadget to config windows yet, there may still be redraw issues
I missed.
Its pretty nice now though, and I have checked for memory leaks and bad
handling, please point out anything dubious you see. The api will become
more rich over the next few days, then it should stabilise.
Any feature suggestions, send 'em now :)
SVN revision: 1493
1999-12-03 12:56:49 -08:00
|
|
|
confwin =
|
|
|
|
Epplet_create_window_config (400, 300, "E-ScreenSave Config", ok_cb,
|
|
|
|
&confwin, apply_cb, &confwin, cancel_cb,
|
|
|
|
&confwin);
|
1999-12-03 06:17:56 -08:00
|
|
|
|
|
|
|
Epplet_gadget_show (lbl =
|
|
|
|
Epplet_create_label (20, 10,
|
Sat Dec 04 01:05:38 GMT 1999
(gilbertt)
So, say hello to Epplet_create_window_config.
It rules ;)
Here's the definition:
Window Epplet_create_window_config(int w,int h,char *title,
void (*ok_func) (void *data),void *ok_data,
void (*apply_func) (void *data),void *apply_data,
void (*cancel_func) (void *data),void *cancel_data);
You can picture what it does, and check it out in E-ScreenSave. (Press the
"Lock" button).
The cool thing is that if you supply NULL for any of the callbacks, that
button won't be added to the dialog. So, for an Ok, Cancel dialog, just
supply NULL for apply_func.
I have added explanation to the epplet.h file, and would like people to bang
at this now? I will set my epplets up to use the new functions fully over
the weekend. This will help me find any problems, as I haven't tested adding
every type of gadget to config windows yet, there may still be redraw issues
I missed.
Its pretty nice now though, and I have checked for memory leaks and bad
handling, please point out anything dubious you see. The api will become
more rich over the next few days, then it should stabilise.
Any feature suggestions, send 'em now :)
SVN revision: 1493
1999-12-03 12:56:49 -08:00
|
|
|
"This window was created using Epplet_create_window_config.",
|
1999-12-03 06:17:56 -08:00
|
|
|
2));
|
Sat Dec 04 01:05:38 GMT 1999
(gilbertt)
So, say hello to Epplet_create_window_config.
It rules ;)
Here's the definition:
Window Epplet_create_window_config(int w,int h,char *title,
void (*ok_func) (void *data),void *ok_data,
void (*apply_func) (void *data),void *apply_data,
void (*cancel_func) (void *data),void *cancel_data);
You can picture what it does, and check it out in E-ScreenSave. (Press the
"Lock" button).
The cool thing is that if you supply NULL for any of the callbacks, that
button won't be added to the dialog. So, for an Ok, Cancel dialog, just
supply NULL for apply_func.
I have added explanation to the epplet.h file, and would like people to bang
at this now? I will set my epplets up to use the new functions fully over
the weekend. This will help me find any problems, as I haven't tested adding
every type of gadget to config windows yet, there may still be redraw issues
I missed.
Its pretty nice now though, and I have checked for memory leaks and bad
handling, please point out anything dubious you see. The api will become
more rich over the next few days, then it should stabilise.
Any feature suggestions, send 'em now :)
SVN revision: 1493
1999-12-03 12:56:49 -08:00
|
|
|
Epplet_gadget_show (lbl2 =
|
|
|
|
Epplet_create_label (20, 25,
|
|
|
|
"I added this text and the sliders myself.",
|
|
|
|
2));
|
|
|
|
|
1999-12-03 06:17:56 -08:00
|
|
|
Epplet_gadget_show (sld =
|
|
|
|
Epplet_create_hslider (20, 50, 100, 0, 100, 1, 5, &temp,
|
|
|
|
NULL, NULL));
|
|
|
|
Epplet_gadget_show (sld2 =
|
|
|
|
Epplet_create_hslider (20, 100, 200, 0, 100, 1, 5,
|
|
|
|
&temp2, NULL, NULL));
|
|
|
|
Epplet_gadget_show (sld3 =
|
|
|
|
Epplet_create_hslider (20, 150, 300, 0, 100, 1, 5,
|
|
|
|
&temp3, NULL, NULL));
|
Sat Dec 04 01:05:38 GMT 1999
(gilbertt)
So, say hello to Epplet_create_window_config.
It rules ;)
Here's the definition:
Window Epplet_create_window_config(int w,int h,char *title,
void (*ok_func) (void *data),void *ok_data,
void (*apply_func) (void *data),void *apply_data,
void (*cancel_func) (void *data),void *cancel_data);
You can picture what it does, and check it out in E-ScreenSave. (Press the
"Lock" button).
The cool thing is that if you supply NULL for any of the callbacks, that
button won't be added to the dialog. So, for an Ok, Cancel dialog, just
supply NULL for apply_func.
I have added explanation to the epplet.h file, and would like people to bang
at this now? I will set my epplets up to use the new functions fully over
the weekend. This will help me find any problems, as I haven't tested adding
every type of gadget to config windows yet, there may still be redraw issues
I missed.
Its pretty nice now though, and I have checked for memory leaks and bad
handling, please point out anything dubious you see. The api will become
more rich over the next few days, then it should stabilise.
Any feature suggestions, send 'em now :)
SVN revision: 1493
1999-12-03 12:56:49 -08:00
|
|
|
|
|
|
|
Epplet_window_show (confwin);
|
|
|
|
|
1999-12-03 06:17:56 -08:00
|
|
|
Epplet_window_pop_context ();
|
Sat Dec 04 01:05:38 GMT 1999
(gilbertt)
So, say hello to Epplet_create_window_config.
It rules ;)
Here's the definition:
Window Epplet_create_window_config(int w,int h,char *title,
void (*ok_func) (void *data),void *ok_data,
void (*apply_func) (void *data),void *apply_data,
void (*cancel_func) (void *data),void *cancel_data);
You can picture what it does, and check it out in E-ScreenSave. (Press the
"Lock" button).
The cool thing is that if you supply NULL for any of the callbacks, that
button won't be added to the dialog. So, for an Ok, Cancel dialog, just
supply NULL for apply_func.
I have added explanation to the epplet.h file, and would like people to bang
at this now? I will set my epplets up to use the new functions fully over
the weekend. This will help me find any problems, as I haven't tested adding
every type of gadget to config windows yet, there may still be redraw issues
I missed.
Its pretty nice now though, and I have checked for memory leaks and bad
handling, please point out anything dubious you see. The api will become
more rich over the next few days, then it should stabilise.
Any feature suggestions, send 'em now :)
SVN revision: 1493
1999-12-03 12:56:49 -08:00
|
|
|
|
|
|
|
#if 0
|
|
|
|
if (opt.lock_cmd)
|
|
|
|
system (opt.lock_cmd);
|
|
|
|
#endif
|
1999-12-03 06:17:56 -08:00
|
|
|
|
1999-11-13 16:02:31 -08:00
|
|
|
return;
|
|
|
|
data = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
cb_color (void *data)
|
|
|
|
{
|
|
|
|
int *d;
|
|
|
|
d = (int *) data;
|
|
|
|
flame_col (d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8]);
|
|
|
|
Epplet_gadget_hide (col_p);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
create_epplet_layout (void)
|
|
|
|
{
|
1999-12-01 11:28:34 -08:00
|
|
|
Epplet_gadget_show (btn_close =
|
|
|
|
Epplet_create_button (NULL, NULL, 2,
|
|
|
|
2, 0, 0,
|
|
|
|
"CLOSE", 0,
|
|
|
|
NULL, cb_close, NULL));
|
1999-11-13 16:02:31 -08:00
|
|
|
Epplet_gadget_show (btn_help =
|
1999-12-01 11:28:34 -08:00
|
|
|
Epplet_create_button (NULL, NULL,
|
|
|
|
18, 2, 0, 0,
|
|
|
|
"HELP", 0, NULL, cb_help, NULL));
|
1999-11-13 16:02:31 -08:00
|
|
|
Epplet_gadget_show (btn_save =
|
1999-12-01 11:28:34 -08:00
|
|
|
Epplet_create_button ("Lock", NULL,
|
|
|
|
2, 31, 44, 13,
|
|
|
|
0, 0, NULL, cb_shoot, NULL));
|
1999-11-13 16:02:31 -08:00
|
|
|
p = Epplet_create_popup ();
|
|
|
|
Epplet_add_popup_entry (p, "Don't Cloak", NULL, cb_dont_cloak, NULL);
|
1999-12-01 11:28:34 -08:00
|
|
|
Epplet_add_popup_entry (p, "Blank Epplet", NULL,
|
|
|
|
cb_cloak_anim, (void *) (&(cloak_anims[0])));
|
|
|
|
Epplet_add_popup_entry (p, "RasterFire", NULL,
|
|
|
|
cb_cloak_anim, (void *) (&(cloak_anims[1])));
|
1999-11-13 16:02:31 -08:00
|
|
|
Epplet_add_popup_entry (p, "Radar", NULL, cb_cloak_anim,
|
|
|
|
(void *) (&(cloak_anims[2])));
|
1999-12-01 11:28:34 -08:00
|
|
|
Epplet_add_popup_entry (p, "AA Radar", NULL,
|
|
|
|
cb_cloak_anim, (void *) (&(cloak_anims[3])));
|
|
|
|
Epplet_add_popup_entry (p, "AA Triangle", NULL,
|
|
|
|
cb_cloak_anim, (void *) (&(cloak_anims[4])));
|
|
|
|
Epplet_add_popup_entry (p, "AA Star", NULL,
|
|
|
|
cb_cloak_anim, (void *) (&(cloak_anims[5])));
|
|
|
|
Epplet_add_popup_entry (p, "Starfield", NULL,
|
|
|
|
cb_cloak_anim, (void *) (&(cloak_anims[6])));
|
|
|
|
Epplet_add_popup_entry (p, "AA Starfield", NULL,
|
|
|
|
cb_cloak_anim, (void *) (&(cloak_anims[7])));
|
1999-11-13 16:02:31 -08:00
|
|
|
Epplet_add_popup_entry (p, "Mesh", NULL, cb_cloak_anim,
|
|
|
|
(void *) (&(cloak_anims[8])));
|
1999-12-01 11:28:34 -08:00
|
|
|
Epplet_add_popup_entry (p, "Funky Mesh", NULL,
|
|
|
|
cb_cloak_anim, (void *) (&(cloak_anims[15])));
|
|
|
|
Epplet_add_popup_entry (p, "Scanner", NULL,
|
|
|
|
cb_cloak_anim, (void *) (&(cloak_anims[9])));
|
|
|
|
Epplet_add_popup_entry (p, "ColorShift", NULL,
|
|
|
|
cb_cloak_anim, (void *) (&(cloak_anims[10])));
|
|
|
|
Epplet_add_popup_entry (p, "Bouncy Ball", NULL,
|
|
|
|
cb_cloak_anim, (void *) (&(cloak_anims[11])));
|
1999-11-13 16:02:31 -08:00
|
|
|
Epplet_add_popup_entry (p, "Atoms", NULL, cb_cloak_anim,
|
|
|
|
(void *) (&(cloak_anims[12])));
|
1999-12-01 11:28:34 -08:00
|
|
|
Epplet_add_popup_entry (p, "Banner", NULL,
|
|
|
|
cb_cloak_anim, (void *) (&(cloak_anims[13])));
|
|
|
|
Epplet_add_popup_entry (p, "SineWave", NULL,
|
|
|
|
cb_cloak_anim, (void *) (&(cloak_anims[14])));
|
|
|
|
Epplet_add_popup_entry (p, "Random", NULL,
|
|
|
|
cb_cloak_anim, (void *) (&(cloak_anims[16])));
|
1999-11-13 16:02:31 -08:00
|
|
|
col_p = Epplet_create_popup ();
|
|
|
|
Epplet_add_popup_entry (col_p, "Flame Colors", NULL, NULL, NULL);
|
|
|
|
Epplet_add_popup_entry (col_p, "Funky", NULL, cb_color,
|
|
|
|
(void *) (&(colors[0 * 9])));
|
1999-12-01 11:28:34 -08:00
|
|
|
Epplet_add_popup_entry (col_p, "Turquoise", NULL,
|
|
|
|
cb_color, (void *) (&(colors[1 * 9])));
|
1999-11-13 16:02:31 -08:00
|
|
|
Epplet_add_popup_entry (col_p, "Fire", NULL, cb_color,
|
|
|
|
(void *) (&(colors[2 * 9])));
|
|
|
|
Epplet_add_popup_entry (col_p, "Copper", NULL, cb_color,
|
|
|
|
(void *) (&(colors[3 * 9])));
|
|
|
|
Epplet_add_popup_entry (col_p, "Violet", NULL, cb_color,
|
|
|
|
(void *) (&(colors[4 * 9])));
|
|
|
|
Epplet_add_popup_entry (col_p, "Night", NULL, cb_color,
|
|
|
|
(void *) (&(colors[5 * 9])));
|
1999-12-01 11:28:34 -08:00
|
|
|
Epplet_add_popup_entry (col_p, "Sunrise", NULL,
|
|
|
|
cb_color, (void *) (&(colors[6 * 9])));
|
1999-11-13 16:02:31 -08:00
|
|
|
Epplet_add_popup_entry (col_p, "Sunset", NULL, cb_color,
|
|
|
|
(void *) (&(colors[7 * 9])));
|
|
|
|
ctimer_p = Epplet_create_popup ();
|
|
|
|
Epplet_add_popup_entry (ctimer_p, "Cloak Delay", NULL, NULL, NULL);
|
1999-12-01 11:28:34 -08:00
|
|
|
Epplet_add_popup_entry (ctimer_p, "1 Sec", NULL,
|
|
|
|
cb_cloak_delay, (void *) (&(cloak_delays[0])));
|
|
|
|
Epplet_add_popup_entry (ctimer_p, "2 Sec", NULL,
|
|
|
|
cb_cloak_delay, (void *) (&(cloak_delays[1])));
|
|
|
|
Epplet_add_popup_entry (ctimer_p, "3 Sec", NULL,
|
|
|
|
cb_cloak_delay, (void *) (&(cloak_delays[2])));
|
|
|
|
Epplet_add_popup_entry (ctimer_p, "4 Sec", NULL,
|
|
|
|
cb_cloak_delay, (void *) (&(cloak_delays[3])));
|
|
|
|
Epplet_add_popup_entry (ctimer_p, "5 Sec", NULL,
|
|
|
|
cb_cloak_delay, (void *) (&(cloak_delays[4])));
|
|
|
|
Epplet_add_popup_entry (ctimer_p, "10 Sec", NULL,
|
|
|
|
cb_cloak_delay, (void *) (&(cloak_delays[5])));
|
|
|
|
Epplet_add_popup_entry (ctimer_p, "15 Sec", NULL,
|
|
|
|
cb_cloak_delay, (void *) (&(cloak_delays[6])));
|
|
|
|
Epplet_add_popup_entry (ctimer_p, "20 Sec", NULL,
|
|
|
|
cb_cloak_delay, (void *) (&(cloak_delays[7])));
|
|
|
|
Epplet_add_popup_entry (ctimer_p, "30 Sec", NULL,
|
|
|
|
cb_cloak_delay, (void *) (&(cloak_delays[8])));
|
|
|
|
Epplet_add_popup_entry (ctimer_p, "1 min", NULL,
|
|
|
|
cb_cloak_delay, (void *) (&(cloak_delays[9])));
|
|
|
|
Epplet_add_popup_entry (ctimer_p, "2 mins", NULL,
|
|
|
|
cb_cloak_delay, (void *) (&(cloak_delays[10])));
|
1999-11-13 16:02:31 -08:00
|
|
|
stimer_p = Epplet_create_popup ();
|
|
|
|
Epplet_add_popup_entry (stimer_p, "Save Delay", NULL, NULL, NULL);
|
1999-12-01 11:28:34 -08:00
|
|
|
Epplet_add_popup_entry (stimer_p, "No Delay", NULL,
|
|
|
|
cb_save_delay, (void *) (&(save_delays[0])));
|
|
|
|
Epplet_add_popup_entry (stimer_p, "5 Sec", NULL,
|
|
|
|
cb_save_delay, (void *) (&(save_delays[5])));
|
|
|
|
Epplet_add_popup_entry (stimer_p, "10 Sec", NULL,
|
|
|
|
cb_save_delay, (void *) (&(save_delays[6])));
|
|
|
|
Epplet_add_popup_entry (stimer_p, "15 Sec", NULL,
|
|
|
|
cb_save_delay, (void *) (&(save_delays[7])));
|
|
|
|
Epplet_add_popup_entry (stimer_p, "20 Sec", NULL,
|
|
|
|
cb_save_delay, (void *) (&(save_delays[8])));
|
|
|
|
Epplet_add_popup_entry (stimer_p, "30 Sec", NULL,
|
|
|
|
cb_save_delay, (void *) (&(save_delays[9])));
|
|
|
|
Epplet_add_popup_entry (stimer_p, "1 min", NULL,
|
|
|
|
cb_save_delay, (void *) (&(save_delays[10])));
|
|
|
|
Epplet_add_popup_entry (stimer_p, "2 mins", NULL,
|
|
|
|
cb_save_delay, (void *) (&(save_delays[11])));
|
|
|
|
Epplet_add_popup_entry (stimer_p, "5 mins", NULL,
|
|
|
|
cb_save_delay, (void *) (&(save_delays[12])));
|
|
|
|
Epplet_add_popup_entry (stimer_p, "10 mins", NULL,
|
|
|
|
cb_save_delay, (void *) (&(save_delays[13])));
|
|
|
|
Epplet_gadget_show (btn_conf =
|
|
|
|
Epplet_create_popupbutton (NULL,
|
|
|
|
NULL, 34,
|
|
|
|
2, 12, 12, "CONFIGURE", p));
|
1999-11-13 16:02:31 -08:00
|
|
|
Epplet_gadget_show (btn_col =
|
|
|
|
Epplet_create_popupbutton (NULL,
|
|
|
|
EROOT
|
1999-11-24 15:36:51 -08:00
|
|
|
"/epplet_data/E-ScreenShoot/E-ScreenShoot_col.png",
|
1999-11-30 06:45:32 -08:00
|
|
|
2, 17, 13, 13, NULL, col_p));
|
1999-11-13 16:02:31 -08:00
|
|
|
Epplet_gadget_show (btn_ctimer =
|
|
|
|
Epplet_create_popupbutton (NULL,
|
|
|
|
EROOT
|
1999-11-24 15:36:51 -08:00
|
|
|
"/epplet_data/E-ScreenShoot/E-ScreenShoot_minitime.png",
|
1999-12-01 11:28:34 -08:00
|
|
|
17, 17,
|
|
|
|
13, 13, NULL, ctimer_p));
|
1999-11-13 16:02:31 -08:00
|
|
|
Epplet_gadget_show (btn_stimer =
|
|
|
|
Epplet_create_popupbutton (NULL,
|
|
|
|
EROOT
|
1999-11-24 15:36:51 -08:00
|
|
|
"/epplet_data/E-ScreenShoot/E-ScreenShoot_minitime2.png",
|
1999-12-01 11:28:34 -08:00
|
|
|
33, 17,
|
|
|
|
13, 13, NULL, stimer_p));
|
1999-11-13 16:02:31 -08:00
|
|
|
da = Epplet_create_drawingarea (2, 2, 44, 44);
|
|
|
|
win = Epplet_get_drawingarea_window (da);
|
|
|
|
buf = Epplet_make_rgb_buf (40, 40);
|
|
|
|
cloaked = 0;
|
|
|
|
set_flame_col (0);
|
|
|
|
if (opt.do_cloak)
|
|
|
|
Epplet_timer (cloak_epplet, NULL, opt.cloak_delay, "CLOAK_TIMER");
|
|
|
|
Epplet_register_mouse_enter_handler (cb_in, (void *) win);
|
|
|
|
Epplet_register_mouse_leave_handler (cb_out, NULL);
|
Sat Dec 04 01:05:38 GMT 1999
(gilbertt)
So, say hello to Epplet_create_window_config.
It rules ;)
Here's the definition:
Window Epplet_create_window_config(int w,int h,char *title,
void (*ok_func) (void *data),void *ok_data,
void (*apply_func) (void *data),void *apply_data,
void (*cancel_func) (void *data),void *cancel_data);
You can picture what it does, and check it out in E-ScreenSave. (Press the
"Lock" button).
The cool thing is that if you supply NULL for any of the callbacks, that
button won't be added to the dialog. So, for an Ok, Cancel dialog, just
supply NULL for apply_func.
I have added explanation to the epplet.h file, and would like people to bang
at this now? I will set my epplets up to use the new functions fully over
the weekend. This will help me find any problems, as I haven't tested adding
every type of gadget to config windows yet, there may still be redraw issues
I missed.
Its pretty nice now though, and I have checked for memory leaks and bad
handling, please point out anything dubious you see. The api will become
more rich over the next few days, then it should stabilise.
Any feature suggestions, send 'em now :)
SVN revision: 1493
1999-12-03 12:56:49 -08:00
|
|
|
Epplet_register_delete_event_handler (delete_cb, NULL);
|
1999-11-13 16:02:31 -08:00
|
|
|
}
|
|
|
|
|
1999-11-23 10:51:27 -08:00
|
|
|
static void
|
|
|
|
clean_exit (void)
|
|
|
|
{
|
1999-11-30 06:45:32 -08:00
|
|
|
save_config ();
|
|
|
|
Epplet_cleanup ();
|
1999-11-23 10:51:27 -08:00
|
|
|
}
|
|
|
|
|
1999-11-13 16:02:31 -08:00
|
|
|
int
|
|
|
|
main (int argc, char **argv)
|
|
|
|
{
|
|
|
|
int prio;
|
|
|
|
prio = getpriority (PRIO_PROCESS, getpid ());
|
|
|
|
setpriority (PRIO_PROCESS, getpid (), prio + 10);
|
1999-11-23 10:51:27 -08:00
|
|
|
atexit (clean_exit);
|
1999-11-13 16:02:31 -08:00
|
|
|
/* Initialise random numbers */
|
|
|
|
srand (time (0));
|
1999-12-01 11:28:34 -08:00
|
|
|
Epplet_Init ("E-ScreenSave", "0.7",
|
|
|
|
"Enlightenment Screen Savin' Epplet", 3, 3, argc, argv, 0);
|
1999-11-13 16:02:31 -08:00
|
|
|
Epplet_load_config ();
|
|
|
|
load_config ();
|
|
|
|
create_epplet_layout ();
|
|
|
|
Epplet_show ();
|
|
|
|
Epplet_Loop ();
|
|
|
|
return 0;
|
|
|
|
}
|