e16-epplets/epplets
Tom Gilbert ded180a361 Thu Dec 02 23:07:45 GMT 1999
(gilbertt)

Ok. More config window stuff.

Fun fun. I had to create a new type, Epplet_window to hold some window info,
and a stack to push and pop contexts for adding gadgets to different new
windows. This stuff works real well, and I am chuffed with it :)

The extra windows now redraw themselves on exposes, and new gadgets can be
added to them successfully. W00p.

I had to implement some new stuff, so please check nothing is broke (I am
not finished, but I don't want to commit code that breaks stuff).

Here are some details on the new stuff :)

---------------
PUBLIC STUFF

typedef struct epplet_window
{
    Window win;
    int w;
    int h;
    Pixmap bg_pmap;
    Pixmap bg_mask;
    Pixmap bg_bg;
}EppWindow;
typedef EppWindow *Epplet_window;

Epplet_window Epplet_create_window(int w,int h,int x,int y,char *title);
void Epplet_window_show(Epplet_window win);
void Epplet_window_hide(Epplet_window win);
void Epplet_window_destroy(Epplet_window win);
void Epplet_window_push_context(Epplet_window newwin);
Epplet_window Epplet_window_pop_context(void);
---------------
PRIVATE STUFF

static Epplet_window context_win;       /* Current context win */
static int          window_stack_pos;   /* For context changes */
static Epplet_window window_stack[20];  /* For context changes */
static Epplet_window mainwin;           /* Always the main epplet window */

static int          window_num = 0;     /* For window list */
static Epplet_window *windows = NULL;   /* List of windows to loop though */

/* For Keeping a list of windows owned by the epplet, to loop through and
 * do stuff with. */
static void         Epplet_register_window(Epplet_window win);
static void         Epplet_unregister_window(Epplet_window win);

/* Redraw all epplet windows (excluding the main epplet window) */
static void         Epplet_draw_windows(void);
/* Redraw window win */
static void         Epplet_draw_window(Epplet_window win);

/* Refresh window backgrounds on theme change */
static void Epplet_refresh_backgrounds(void);

-------------
I also added an item to GadGeneral so that I can find what window a gadget
was created on:

typedef struct gad_general
{
   GadType             type;
   char                visible;
   Epplet_window       parent;
}
GadGeneral;

-------------

Not to mention the reworking of code which draws or handles windows.

I have more tinkering to do in the event handling, to catch delete_events,
and to filter out mouseovers etc for separate windows. Tomorrow :)


SVN revision: 1478
1999-12-02 19:08:48 +00:00
..
E-Biff-data Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-Clock-data Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-Clock.ABOUT Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-Cpu.ABOUT add a battery meter epplet :) - okj someoen else did already but min looks 1999-10-18 14:55:46 +00:00
E-Mixer.ABOUT Added Epplet_unremember to E-Mountbox. Added layout options to 1999-11-29 21:50:40 +00:00
E-MoonClock-data Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-MoonClock.ABOUT Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-Mountbox-data Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-Mountbox.ABOUT Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-NetFlame.ABOUT Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-Power-data Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-Power.ABOUT Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-SD-data Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-SD.ABOUT Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-ScreenSave.ABOUT Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-ScreenShoot-data Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-ScreenShoot.ABOUT Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-UrlWatch-data need this now 1999-11-26 21:17:18 +00:00
E-UrlWatch.ABOUT d'oh 1999-11-27 21:48:24 +00:00
Emix-data Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
Emix.ABOUT Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
icons Hrm. Could do with an icon. (Wish I was artistic). 1999-11-26 21:56:26 +00:00
.cvsignore Doh? 1999-10-15 14:11:05 +00:00
CalcEphem.c Still E-MoonClock 1999-11-20 19:29:14 +00:00
CalcEphem.h Still E-MoonClock 1999-11-20 19:29:14 +00:00
ConfigTestEpplet.c Esnprintf is in the house now :) 1999-11-10 23:37:53 +00:00
E-Areas.c Fri Nov 12 16:50:11 GMT 1999 1999-11-12 16:48:44 +00:00
E-Biff.c Mon Nov 29 20:34:40 PST 1999 1999-11-30 00:52:31 +00:00
E-Clock.c Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-Cpu.c Fri Nov 19 12:35:48 PST 1999 1999-11-19 18:46:24 +00:00
E-Disk.c Mon Nov 29 20:34:40 PST 1999 1999-11-30 00:52:31 +00:00
E-Exec.c Added a popup command history to E-Exec and made it wider. 1999-11-20 20:56:12 +00:00
E-Load.c Fri Nov 19 12:35:48 PST 1999 1999-11-19 18:46:24 +00:00
E-MemWatch.c Mon Nov 29 20:34:40 PST 1999 1999-11-30 00:52:31 +00:00
E-Mixer.c Those variables were actually needed, cK. :-) 1999-11-29 23:52:59 +00:00
E-MoonClock.c Wed Dec 1 19:11:13 PST 1999 1999-12-01 23:09:48 +00:00
E-Mountbox.c Mon Nov 29 20:34:40 PST 1999 1999-11-30 00:52:31 +00:00
E-Mountbox.h Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-Net.c Mon Nov 29 20:34:40 PST 1999 1999-11-30 00:52:31 +00:00
E-NetFlame.c Mon Nov 29 20:34:40 PST 1999 1999-11-30 00:52:31 +00:00
E-NetGraph.c Mon Nov 29 20:34:40 PST 1999 1999-11-30 00:52:31 +00:00
E-Power.c Wed Nov 24 18:33:45 PST 1999 1999-11-24 23:36:51 +00:00
E-SD.c Tue Nov 30 17:48:31 GMT 1999 1999-11-30 14:45:32 +00:00
E-SD.h ------------------------------------------------------------------------------- 1999-11-10 22:36:39 +00:00
E-ScreenSave.c Thu Dec 02 23:07:45 GMT 1999 1999-12-02 19:08:48 +00:00
E-ScreenSave.h Sun Nov 28 21:52:12 GMT 1999 1999-11-28 18:17:18 +00:00
E-ScreenShoot.c Tue Nov 30 17:48:31 GMT 1999 1999-11-30 14:45:32 +00:00
E-ScreenShoot.h I'll be needing to commit these then 1999-11-18 17:57:16 +00:00
E-Slides.c Added auto_setbg to automatically set your background to the current image 1999-12-01 23:23:17 +00:00
E-Sys.c Mon Nov 29 20:34:40 PST 1999 1999-11-30 00:52:31 +00:00
E-Time.c Mon Nov 29 20:34:40 PST 1999 1999-11-30 00:52:31 +00:00
E-UrlWatch.c (please don't notice this KainX) 1999-11-30 16:53:33 +00:00
E-UrlWatch.h Mon Nov 29 14:08:10 GMT 1999 1999-11-29 10:29:22 +00:00
E-Xss.c Mon Nov 29 20:34:40 PST 1999 1999-11-30 00:52:31 +00:00
Emix.c make distcheck properly... :) 1999-11-19 23:01:40 +00:00
Makefile.am Mon Nov 29 20:34:40 PST 1999 1999-11-30 00:52:31 +00:00
Moon.c Floop. 1999-11-20 19:52:34 +00:00
TestEpplet.c add patches for std buttons for popups.. and fix epplets... 1999-10-28 23:30:09 +00:00
cloak.c make distcheck properly... :) 1999-11-19 23:01:40 +00:00
cloak.h Thu Nov 18 18:42:45 GMT 1999 1999-11-18 17:08:12 +00:00
esdcloak.c make distcheck properly... :) 1999-11-19 23:01:40 +00:00
esdcloak.h Sun Nov 14 02:53:54 GMT 1999 1999-11-14 02:18:24 +00:00
mbox.c Fri Oct 22 23:22:25 PDT 1999 1999-10-22 23:45:57 +00:00
net.c This should work on Linux 2.0.x now. 1999-11-30 00:58:32 +00:00
net.h Mon Nov 29 20:34:40 PST 1999 1999-11-30 00:52:31 +00:00
proc.h added test for libgtop etc. - you will need libgtop 1.0.1 i think or higher as 1999-11-17 15:42:50 +00:00
utils.c *cough* 1999-11-28 16:32:59 +00:00
utils.h Mon Oct 31 11:36:50 GMT 1999 1999-10-31 10:39:59 +00:00