Commit Graph

76 Commits

Author SHA1 Message Date
Tom Gilbert 081d458688 Well we can do without that little nasty...
SVN revision: 1489
1999-12-03 16:18:49 +00:00
Tom Gilbert 34f7e90373 Fri Dec 03 20:22:56 GMT 1999
(gilbertt)

Removed the int x, and int y properties for Epplet_create_window, as they
were pretty pointless, and I hate it when windows decide where they should
go ;)


SVN revision: 1487
1999-12-03 16:05:33 +00:00
Tom Gilbert aad5f10990 Fri Dec 03 20:11:23 GMT 1999
(gilbertt)

Right. You can now specify a "vertical" property for your new window. Works
the same as the vertical parameter in Epplet_init. Uses the same
imageclasses too.

I had a big headache debugging this, it just didn't seem to work, I knew
BrushedMetal (the theme I use) had a different (green) vertical pixmap, but
the windows always came up grey. Just when I was about to go mental, I found
this in epplet.cfg:

__ICLASS __BGN
  __NAME EPPLET_BACKGROUND_HORIZONTAL
  __NORMAL "epplets/images/bg.png"
  __EDGE_SCALING   2 2 2 2
__END

__ICLASS __BGN
  __NAME EPPLET_BACKGROUND_VERTICAL
  __NORMAL "epplets/images/bg.png"
  __EDGE_SCALING   2 2 2 2
__END

Gah. No wonder the images weren't changing!

Is there a reason for this? If not, could it be changed to:

__ICLASS __BGN
  __NAME EPPLET_BACKGROUND_HORIZONTAL
  __NORMAL "epplets/images/bg.png"
  __EDGE_SCALING   2 2 2 2
__END

__ICLASS __BGN
  __NAME EPPLET_BACKGROUND_VERTICAL
  __NORMAL "epplets/images/bg_v.png"
  __EDGE_SCALING   2 2 2 2
__END

Please?

Anyway, the vertical stuff works now, and probably did an hour ago, before I
went off chasing nonexistant bugs :)

I also tidied up some other stuff, and killed another global :)

See E-ScreenSave in cvs for an example, press the "lock" button to see it in
action :)


SVN revision: 1486
1999-12-03 15:59:17 +00:00
Tom Gilbert a5be2dfb39 Fri Dec 03 19:25:16 GMT 1999
(gilbertt)

*cough*
Should prolly free the background pixmaps when I destroy a window, right?
Thought so.
I was wondering where all my memory was going...
;)


SVN revision: 1485
1999-12-03 15:08:23 +00:00
Tom Gilbert 137ade0aa3 Fri Dec 03 18:34:47 GMT 1999
(gilbertt)

Hrm. Bye bye hardcoding, hello malloc()ed context stack. Improved the test
app further.


SVN revision: 1484
1999-12-03 14:17:56 +00:00
Tom Gilbert 768eebf738 Fri Dec 03 17:20:15 GMT 1999
(gilbertt)

More config window stuff. Fixed a memleak, and now destroying an
Epplet_window also destroys any child gadgets attached to the window. I
think this works better, let me know otherwise.

I also cleaned up a couple of things, fixed adding buttons to new windows,
and improved the test epplet to be a better demo (E-ScreenSave right now).

I removed the Epplet_draw_window* functions, 'cos I don't need them :) What
I actually needed to do was fix Epplet_draw_image - so I have :)

Lots more to do tonight :)


SVN revision: 1483
1999-12-03 13:07:03 +00:00
Tom Gilbert aee668e72b Lost a couple of mangy old globals ;)
SVN revision: 1480
1999-12-02 19:27:13 +00:00
Tom Gilbert 7ad33df533 Missed some warnings among all that make output ;)
None left now :)


SVN revision: 1479
1999-12-02 19:11:29 +00:00
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
Michael Jennings 664df20d8c Wed Dec 1 19:11:13 PST 1999
(KainX)

For one thing, I think I've fixed the seg fault in E-MoonClock.  Here's
hoping.

I also added the background setting functionality to E-Slides, but this time
it was done *right*. :-)  Take a look and see for yourself.  If you look at
the code, it also demonstrates how to use E IPC to set backgrounds.


SVN revision: 1476
1999-12-01 23:09:48 +00:00
Tom Gilbert 47cfd5e95f Put the indentation back to how it should be :)
SVN revision: 1475
1999-12-01 19:30:19 +00:00
Tom Gilbert 4d1ca43a00 Wed Dec 01 23:05:13 GMT 1999
(gilbertt)

api changes.

Ok. I have added some functions to the api, they are not yet perfect, but
they compile cleanly and don't create any problems. Don't use them yet
though, the api may change.

Window Epplet_create_window(int w,int h,int x,int y,char *title);
void Epplet_window_show(Window win);
void Epplet_window_hide(Window win);
void Epplet_window_destroy(Window win);
void Epplet_window_switch_context(Window newwin);
void Epplet_window_reset_context(void);

All of these functions are in place and work. I have yet to add code to
handle delete_events. At the moment, if you close the dialog window, the
epplet exits. This is clearly not intended ;) I'll fix it tomorrow, its late
here now.

You can even switch context and add widgets to your new window with no
problems ;)

Other things to fix tomorrow is the event handling stuff which assumes only
one window will be around...

I am currently using E-ScreenSave as my test epplet for this code, as I know
only about 2 people use it ;) Try it to see the code working.


SVN revision: 1472
1999-12-01 19:12:33 +00:00
Michael Jennings c62780f399 Mon Nov 29 17:08:23 PST 1999
(KainX)

This fixes the bug E-Slides demonstrated in the focus stuff.  Doesn't seem to
break anything else as far as I can tell....


SVN revision: 1456
1999-11-29 21:25:54 +00:00
Michael Jennings fea3c90571 Damnit, who put C++ comments in? I specifically said not to use them.
SVN revision: 1453
1999-11-29 18:00:00 +00:00
Richard Barnes 10af2854ff More fun with focus...
SVN revision: 1450
1999-11-28 22:59:25 +00:00
Richard Barnes 1a79294f41 Change to something more like ClickToFocus. The gadgets won't *keep* the focus
unless you click them. This probably needs a little more work...


SVN revision: 1449
1999-11-28 22:33:31 +00:00
Richard Barnes c588207445 Make focusing between an epplet and it's gadget's work a little better. Basically added sloppy-focus. The epplet remembers which gadget last had focus and, if none currently have focus and the last_gadget was a textboxes, passes key events to it.
SVN revision: 1448
1999-11-28 22:08:49 +00:00
Tom Gilbert 6508a63aa4 Sun Nov 28 20:04:45 GMT 1999
(gilbertt)

Fixed some overzealous free()ing (no checks) in Epplet_gadget_destroy()


SVN revision: 1426
1999-11-28 16:31:23 +00:00
Richard Barnes 7194de932b Textbox bugfixes (I hope), thanks for bitching, guys *ducks*
SVN revision: 1418
1999-11-27 17:58:33 +00:00
Richard Barnes 962a738516 You can paste to textboxes now....whoopty d00.
SVN revision: 1417
1999-11-27 16:17:16 +00:00
Michael Jennings 89085f3eee Wed Nov 24 18:33:45 PST 1999
(KainX)

Major restructuring and cleanup.  I think the new standard should be pretty
self-explanatory, but let me know if you have any questions.  CVS developers,
PLEASE read epplets/Makefile.am carefully to see how it all works now.

Icons are stored in epplets/icons/ and are installed into
$EROOT/epplet_icons/.  All miscellaneous data files (including images) are
stored in epplets/<epplet name>-data/ and are installed into
$EROOT/epplet_data/<epplet name>/.  Also note that, if you're going to use the
same old aircut3.ttf and bg.png in your help section, add your epplet's name
to NEED_BG and NEED_FONT in epplets/Makefile.am.  Do NOT commit duplicates of
those two files.


SVN revision: 1394
1999-11-24 23:36:51 +00:00
Michael Jennings 715f7a2a62 Wed Nov 24 12:11:04 PST 1999
(KainX)

Added checks for epplet image classes on startup.  Adapted from a patch by
Troy Pesola <troy.pesola@network.com>.


SVN revision: 1392
1999-11-24 17:16:39 +00:00
Richard Barnes 9e0f00c611 Tue Nov 16 17:10:44 EST 1999
(StriderZ)

Added a textbox cursor.


SVN revision: 1318
1999-11-16 21:02:11 +00:00
Michael Jennings ce2f577578 Fri Nov 12 15:57:40 PST 1999
(KainX)

Wrap-around history.


SVN revision: 1285
1999-11-12 23:32:49 +00:00
Michael Jennings 09b6b3bc6b *achoo*
SVN revision: 1280
1999-11-12 20:27:52 +00:00
Michael Jennings 488eb806c3 Gr.
SVN revision: 1277
1999-11-12 19:54:11 +00:00
Richard Barnes f1e7e6151e look at the Changelog...dammit
SVN revision: 1271
1999-11-12 17:47:01 +00:00
Michael Jennings afd07cdf4d And what was *he* thinking?
SVN revision: 1266
1999-11-12 07:05:48 +00:00
Michael Jennings cecae87687 What was I thinking?
SVN revision: 1265
1999-11-12 07:00:14 +00:00
Richard Barnes 56a24754fd Textboxes can scroll now. It's a little weird cuz the right "limit" moves
around. I need to fix the way it figures out where to stop spitting out
chars since upper/lowercase chars are not all the same width. I'll look into
it unless someone has some insight on this.


SVN revision: 1264
1999-11-12 05:36:31 +00:00
Richard Barnes bf855d9279 Ok. E-Exec now does command history of up to 15 items. Added
Epplet_change_textbox. Not thoroughly tested, but isn't that what users
are for? *runs*


SVN revision: 1261
1999-11-12 03:46:39 +00:00
Michael Jennings fa94387121 Thu Nov 11 11:55:02 PST 1999
(KainX)

Okay, I've fixed the API issue with Epplet_modify_config(), and I've fixed the
weird Epplet_reset_textbox() behavior.  (For the record, there was never a
buffer overflow here.  The textbox contents are dynamically allocated and
resized.)

I also tweaked some of Tom's changes both for style and more robustness.  I
also fixed the OK dialog error the "right" way.  The real problem was not
calling Esync() before exiting. :-)

Now if only I could talk Tom into putting a newline at the end of his
ChangeLog entries.... ;-)


SVN revision: 1254
1999-11-11 19:47:17 +00:00
Michael Jennings e92371b257 Wed Nov 10 20:49:04 PST 1999
(KainX)

Oh my goodness.  This should resolve all the textbox silliness.  (At least all
that I've run across so far....)


SVN revision: 1252
1999-11-11 04:47:15 +00:00
Richard Barnes f7bb9a97d5 uh...uhuhuhuuhuh...this is gonna be cool...
SVN revision: 1250
1999-11-11 03:02:47 +00:00
Christian Kreibich e53ba939fd ... and another :)
SVN revision: 1246
1999-11-11 00:00:56 +00:00
Christian Kreibich 0c7ae75e29 Minor fix ...
SVN revision: 1245
1999-11-10 23:58:34 +00:00
Christian Kreibich 811247cb78 Esnprintf is in the house now :)
SVN revision: 1242
1999-11-10 23:37:53 +00:00
Michael Jennings f84d88b726 Fixes.
SVN revision: 1239
1999-11-10 22:46:14 +00:00
Richard Barnes ad52573105 Finally got the crap working right...geez. Give a man cvs access and he
immediately attempts to render it incompilable....is that a word?


SVN revision: 1230
1999-11-09 20:10:10 +00:00
Richard Barnes 33c5d7a413 Let's try this again...
SVN revision: 1229
1999-11-09 19:02:15 +00:00
Richard Barnes a01fd817d4 whoops
SVN revision: 1228
1999-11-09 18:51:02 +00:00
Richard Barnes d3aaee7924 Added some textbox gadget stuff. Still not fully functional, but has it's uses.
SVN revision: 1226
1999-11-09 18:24:35 +00:00
Christian Kreibich 19eec1c40e Epplet_run_command() now returns the exit code of
the command.


SVN revision: 1177
1999-11-04 15:43:04 +00:00
Michael Jennings 55639cbe7d Thu Nov 4 16:00:26 PST 1999
(KainX)

E-Slides, a slideshow epplet.  This is just the initial version; more features
coming soon.  :-)

Also some API additions/bugfixes.


SVN revision: 1176
1999-11-04 14:53:40 +00:00
Michael Jennings b794daa500 Tue Nov 2 13:31:28 PST 1999
(KainX)

An update from Matt McClanahan <cardinal@dodds.net> to his previous patch.


SVN revision: 1144
1999-11-02 12:47:08 +00:00
Christian Kreibich 5f56c8e8b4 Fixed a potential segfault if people insist on calling
Epplet_add_config without a prior Epplet_load_config.


SVN revision: 1134
1999-11-02 07:45:00 +00:00
Mandrake 73dc223221 Sun Oct 31 15:07:43 PST 1999
(Mandrake)

gave gilbertt access to put screenshoot in CVS.  YOU NEED TO MODIFY THE
CHANGELOG THOUGH.  fixed some warnings here and there.  I don't like warnings


SVN revision: 1076
1999-10-31 14:36:30 +00:00
Carsten Haitzler 8c3bb5530a add patches for std buttons for popups.. and fix epplets...
SVN revision: 1040
1999-10-28 23:30:09 +00:00
Michael Jennings cc45df368c Oops. Shouldn't have done that little part. If the config file doesn't
exist, it's not necessarily an error.


SVN revision: 991
1999-10-26 16:17:24 +00:00
Michael Jennings 607ee975fe Tue Oct 26 16:06:43 PDT 1999
(KainX)

Okay, don't kill me.  I had to change the API again because it was broken.
Epplet_load_config() now takes no parameters.  I also renamed some functions,
which the following command should help you do:

perl -p -i.bak -e \
	's/config_data_with_def/config_def/g; s/_config_data/_config/g;' \
	<files>

That all goes on a single line, BTW.  And replace <files> with the names of
your .c files.  You must now specify any defaults by calling
Epplet_query_config_def() instead and passing the default to that function.

I also added the ability to right-justify label text by specifying a negative
x coordinate.  See E-Time for a sample.


SVN revision: 989
1999-10-26 15:48:35 +00:00