their geometry on close. I'll start getting the documentation back in sync and commenting some more. Could anyone
willing to clean up/fix either the iconbar dnd stuff and/or the regular dnd stuff please announce it, so we dont start
duplicating work. Thanks.
SVN revision: 5977
LMB will scroll one screen when pressed in the scrollbar area.
Middle and Right MB will move the scroll bar slider to the clicked
position directly.
So this is rather similar to the behaviour we have in standard GTK apps
for example.
Also, I corrected a small bug in view.c and scrollbar.c that could lead to
the scrollbar beeing redrawn outside the view (because "value" was
recalculated before "range" and "max" were set ; and since value depends
on max and range, this could lead to value of value that were too big).
Thanks Nicolas!
SVN revision: 5976
The matching_drop_attempt flag was set, so it should handle the drop regardless of whether the same view or not, since it checks for the flag later.
Now you can drop icons from the desktop to the iconbar.
SVN revision: 5960
The old background code(background.c) had
e_object_init(E_OBJECT(bg), (E_Cleanup_Func) e_background_cleanup);
in the e_background_new function which isn't being used anymore
I don't fully understand the way the E_Object stuff would work with this or
if this is ok since ebg is its own separate library now.
SVN revision: 5943
(copy em manually for now)
Get epplets to keep track of the ebits / evas objects they create, so they can be cleaned up later.
Also, some small epplet API changes.
When creating Ebits / EvasObjects, pass a path relative to the .fe file rather than the full path. Usually, you just need a file name, which should be in the same dir as the epplet.
if a file named layout.bits.db exists in an epplet's dir, it is used for the default layout (location) of that epplet rather than whatever is in ~/.e/desktop/default/.e_epplets.bits.db. Only use this if a specific size/location of the epplet is necessary. (just create one dummy image in the bits with the name of the epplet, and its location/size relative to the entire view) Note, try to not use this, as user customizability is important...
I will eventually make it so that if a ui.bits.db exists, it will automatically be loaded as the main bits file, and set as epplet.bits in the script. (Can't get object creation from within a .fec to work correctly yet...) This would remove the need for the setBits() call.
SVN revision: 5881
added an e_observer_notify_all_observees() to notify all existing observees of things, such as the creation of a border. This way, an observer can watch for E_EVENT_BORDER_NEW events and register all new borders.
Iconification! Click that iconify button. Then click the middle button on the desktop to get a menu of iconified apps to uniconify. This menu is a decent example of using the observer code to avoid polling or rebuilding more than necessary. Next, maybe instead of completely rebuilding each time something changes, maybe it should dynamically add or remove the respective menu items?
SVN revision: 5854
Added basic iconification implementation, including menu for iconified windows, however this is buggy and doesn't work correctly yet, and is therefore commented out. But maybe someone can take the framework and fix it?
Added ferite wrapping for timers.
SVN revision: 5851
The enum of events is in observer.h, add any you can think of.
Switched desktops over to observer system (which extends objects).
Added ferite functionality for desktop observers. I will probably make functions to observe most of e's subsystems (views, iconbars, etc).
There is probably a small bit of memory leakage in here (and callbacks) because any objects passed along have to have their refcounts increased (so ferite doesn't automatically clean them up, and i haven't put in code to decrease them yet. It should be fairly small, but I'll work on that.
I also changed a few "sprintf(buf..."'s to "snprintf(buf, PATH_MAX..."'s.
Is this the way to go about preventing buffer overflows?
I think that's it.
SVN revision: 5841
Quite a bit has been implemented. Check the data/epplets dir for examples.
Currently the only loading method is a file called .e_epplets.bits.db which contains bits whose names are equal to the epplet name, and whose geometry is the default epplet geometry (unless overridden in the script).
The idea being that one could set up an entire desktop epplet layout within one file, making it easily transferable.
So, to use epplets make sure you copy the default epplets.bits.db to ~/.e/desktop/default/.e_epplets.bits.db
Also, make sure you update ebits
SVN revision: 5826
Added window spacing, so file icons will not appear underneath iconbars.
Currently, icons are placed twice as far from the left/top as the spacing.window.l,t designate. To compensate, the spacing is set to half the actual value. This needs fixing.
It seems as though there are a few other bugs in e_icon_apply_xy() also. (multiple line views don't seem to work quite right, icons on the bottom line are in the middle, and other lines seem right justified. a bit odd).
SVN revision: 5815
If a bit named Resist with class Decoration is added to .e_iconbar.bits.db, it will resist window movement. Makes it easy to line up windows along the edge of the iconbar. I'll commit an updated default db.
SVN revision: 5807
allowed action. We can also change cursor/drag window based on the
state info available. I haven't tackled that yet.
Kevin Brosius <cobra@compuserve.com>
SVN revision: 5765
1. now xdnd works to apps:
tested:
gmc
mozilla
xmms
ee
2. dnd works bewteen e17 views too
3. cleaned up a little (the uri format was a little wrong)
4. notice fixme's - yes we need to have ways of copying and moving etc. files.
efm did this - imho right. right mouse drag always pops up a menu asking
what you want to do. left mosue drag always moves. current shift+left
copies. we can add ctrl+left links etc. - but these shoudl eventually
be configurable. i think this will keep everyone happy.
SVN revision: 5756
now iconbars can have their buttons "disabled" whislt apps launch.. tis a
nasty trick with an ld_preload... has caveats.. if youdsont set it as on it
wont be used atm.
SVN revision: 5748
default mode of move. Hold 'shift' for copy. No visible feedback
of actions occurs yet, but you'll see the view update as soon as efsd
reports the file changes. Tested, but be careful around files you care
about. Moves and copys use efsd_move and efsd_copy, without the force
option. So source files will not overwrite the destination if it exists.
Kevin Brosius <cobra@compuserve.com>
SVN revision: 5747
I changed the name of some of the convenience calls from efsd_reply_...
to efsd_event_... because they're no longer applicable to reply events
only.
I've also hooked in a cleanup function for Efsd when E exits, and
duplicated memory when accessing a returned metadata string.
SVN revision: 5736
window menu. ctrl+alt+insert execs eterm... it wasnt in the default script
to build the dbs'
the scritp also had some mdos done to it before by others that sisnt use the
environemtn variables that devined numerics for actions....
also now menus can remember much more.. as can e. save and load on demand..
the remember things are menu check items... might have a big arse dialog
eventually for this... but for now this is all good :)
SVN revision: 5732
cp most of it and lay it out in /.e eventually anyway (and if u dont like
the idea of cping the files - we can symlink too - but e_setup will take
care of this... eventually.. might start work on it now i have fixed things
- though personally i think i should make it cp to start so your user config
is independant of the system and wont suddenyl chaneg cause the system one
did... but again... can be made an option)
SVN revision: 5729
can scroll around 9if you have too many icons to fit) it also will clip the
icons to the icon area. also u can scroll the icons up and down the bar to a
position you like. a new test iconbar bit to demo this too.
SVN revision: 5726
does.. the background changes - hand for setting your own root bg.. just use
ebony.. save it and:
cp file.bg.db ~/.e.desktop/default/.e_background.bg.db
SVN revision: 5708
click to focus works pretty much swell now.. except for that mass of
comments i put in....
err... icccm focus modes handled 100% properly
err.. yeah. that.
SVN revision: 5697
was able to reproduce. I've fixed the reference counting on borders,
reference counts are now only modified where the references actually
change.
PLEASE: if we don't want to end up dead in the water with the reference
counts, it'll be absolutely necessary to not just increment them here
and there. When you store a pointer in a data structure somewhere,
increment the counter. When you remove the pointer from the structure,
decrement. Do NOT modify the counters anywhere else.
Unfortunately I cannot enforce this in C.
SVN revision: 5661
* slight improvement in the menu handling -- when something was selected,
don't pop up menus when the user just clicks, but only unselect
everything. I think it's pretty irritating when the user just wants to
get rid of the selection and keeps getting menu popups.
SVN revision: 5617
* cleaned up functions in utils in file utils and others, there's a
new file.[ch] for the file-related helpers.
* Added stat info to E_Icon, watch how directories become grayed when
you cannot access them :)
SVN revision: 5610
I've changed, this is big, so read this carefully :)
* I've added debugging macros for messages and function call
tracing. Usage:
D("Creating item %i %i %i\n", x, y, z);
Define DEBUG to use the D macro.
D_ENTER;
D_RETURN;
D_RETURN_(x);
These are for call tracing. Use D_RETURN_(x) when returning
something from a function. Define DEBUG_NEST to use this.
* added iconbar header file to Makefile.am
* added proper new()/cleanup() calls for E_Delayed_Action;
* I've completely rewritten the object and observer handling. Bye
bye macros, this was nasty. It'll be hard enough to avoid leaks
with usecounting in C. We now basically have the same system as gtk.
There's a clear separation of observer and object code now.
An E_Object by itself has nothing to do with observing or being
observed, therefore, there are now E_Observers and E_Observees
that are derived from E_Object. IMPORTANT: The cleanup system now
reflects the reference count system, therefore, all ..._free()
calls are now static, because the destructor should never be called explicitly, but implicitly through e_object_unref(). The object handling
now is as follows:
- The cleanup functions clean up everything that is contained in
a struct, but NOT the struct itself. Instead of the final
free() call, they call the destructor of the base class. The
calls will walk up the hierarchy and clean up what's contained in
every struct, and the final e_object_cleanup() will free the
structure itself. E_Delayed_Action is a good example.
- The only calls that influence the reference count are
e_object_ref() and e_object_unref(). If you need to do things
before an object gets destroyed, you can query the use count using
e_object_get_usecount() and check if it's equal to 1. So this:
OBJ_UNREF(b);
OBJ_IF_FREE(b)
{
ecore_window_reparent(e->win, 0, 0, 0);
e_icccm_release(e->win);
OBJ_FREE(b);
}
now is this:
if (e_object_get_usecount(E_OBJECT(b)) == 1)
{
ecore_window_reparent(e->win, 0, 0, 0);
e_icccm_release(e->win);
}
e_object_unref(E_OBJECT(b));
object.h and observer.h are completely commented, it shouldn't be
too hard to understand. This'll need to be documented in the manual
anyway.
* E_Objects are now used in lots of places where void* were used as
pointers to objects before, especially in the actions code. This is
obviously better, as it will generate compiler warnings when people
want to pass things to functions that expect E_Objects. This could
probably be more restrictive.
* Added typedefs for the function prototypes in E_Action_Impl. Those
fat signatures were just painful to read in the function
declarations/implementations.
* I've also tried to give parameters more useful names. Calling an
object "o" is a lot of fun when you want to grep for it.
* Included is also Graham's latest menu.c patch. Sorry for the
delay, Graham.
* I've added checks to the menu code that make sure that menus
don't pop up when they're empty (which resulted in a little useless
rectangle).
I guess that's it for now. Sorry if I broke anything, but this was
necessary imho.
SVN revision: 5605
scritp again (pass in a directory path to set up.. i'd suggest
mkdir ~/.e
mkdir ~/.e/desktop
mkdir ~/.e/desktop/default
build_iconbar_db.sh ~/.e/desktop/default
the scritp is a bit smaller now :)
SVN revision: 5519
it doesn't exist.
* Renamed E_Action_Proto to E_Action_Impl. I think that's more intuitive
* Renamed the xxx_go functions to xxx_cont. It took me a while to understand the difference between "start" and "go".
* Some line wrapping and cosmetics.
SVN revision: 5475
matching.. keepign ti simple yet useful. imho i think just matching on name
and/or class woudl be enough as the majority fo apps provide this properly :)
now how to store the match rules and load them is next.. and probably handle
launching apps to "restart on login" too :)
SVN revision: 5439
client window thats just borderless, layer 1 etc. goign to add desktop masks
for client borders next (ie what desktops a client window lives on or
not)... in theory we have desktop areas and desktosp implimented now. :)
SVN revision: 5426
Just set the full path and file name in the metadata for that directory
under the key "/view/background" (you'll have to use efsdsh to set it right
now).
SVN revision: 5317
assign ferite scripts to menus see data/scripts/build_app_menu_db.sh and look
at the exit menu item as an example. you will need ferite - i suggest that
you use cvs ferite as this is what I am developing this against. This, my
friends, is the first step of many :)
SVN revision: 5280
To fix segfault if a->params is NULLL same goes for a->key...
I still have some problems over here which im going to look into right now.
SVN revision: 5167
Now the "Execute" action actually does something useful, like, say, execute
the contents of the parameters :)
scrollbar.c:
removed 2 warnings
SVN revision: 5065
add abstraction for recording view geometry metadata,
put geometry recording on a self-resetting timeout so efsd doesnt thrash
the disk whenever you move or resize windows.
clean out some unused code.
SVN revision: 5026