For those seeing the recent commits mentioning "gadcon", here's a quick 
overview of what this is and why it exists.

Gadcon stands for Gadget Controller, and is a replacement for the current 
Gadman (Gadget Manager). First a bit of clarification on terminology.

Module - a 'plugin' or bit of code that is loaded into E at run time.

Gadget - a self contained "applet" / "desklet" / "widget" / whatever else you 
want to call it. We generally want to draw directly onto one of E's internal 
canvases, so Gadgets are created from inside Modules.

With Gadman, a module had to find all of the various canvases it wanted to 
draw on to, create its objects and then create a Gadman_Client. The 
Gadman_Client was simply a box that could be dragged around and resized when 
in 'Edit Mode'. The module would have to add a callback for changes in 
size/stacking/etc of the Gadman_Client, and then updates its objects as 
required.

All of this resulted in large duplication of messy complicated code. I did a 
first pass attempt at cleaning this up by creating E_Gadget, which basically 
just wrapped up the duplicated code in a central location, but the overall 
structure was the same.

Enter Gadcon. A module that draws gadgets simply registers a set of create and 
delete functions by name. The create function then creates a Gadcon_Client, 
which contains a SINGLE evas object. This object is then automatically 
moved / resized by the gadcon. This single object may of course be a smart 
object (like an edje object that swallows several other objects).

This allows various containers with differing layout styles to be written, 
without the gadget itself having to know about them. E.g. the current free 
layout on the desktop, or a 'Panel' layout mode (fixed height gadgets that 
don't overlap and flip positions when moved past eachother, etc).

These containers can also be embedded into other locations (such as window 
borders or other gadgets, etc). 

Once the base gadcon code is in place, all the current gadget modules will 
need to be ported to use it. However, gadgets will be much simpler to create, 
cleaner and easier to maintain, while automatically inheriting added layout 
functionality at the gadcon level.

--
rephorm






-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to