Enlightenment
Entice
Enlightenment
Entice Developers and Themers Documentation
- Version:
- 1.0.0
- Author:
- Corey Donohoe <atmos@atmos.org>
- Date:
- 2003
Entice is yet another image viewer. Why write another image viewer you ask? In the past entice was an application with tons of hard coded effects. These effects were very pleasing to the eye, but everyone's entice application looked the same.
Enter Edje. With Edje in mind most of entice was rewritten from the ground up. The applications functionality was broken out, and Edje signals handle communication with the theme so the displayed items stay current. For the themer, communication with entice is bidirectional, sometimes you'll have to emit signals to it, while other times you'll have to be aware of signals entice is emitting and act upon them in your theme.
First, locate some images.
Entice will take all of the command line arguments it is fed and try to load them as image files. Entice won't add the same file twice, and it will only load images files.
$ entice ./Images/*
Should open up a new entice window with the first image file you specified on the command line preloaded. Entice makes use of Interprocess Communication(IPC) to send a list of files to an already existing entice window if one is currently running. What this means in plain english is that entice is smart enough to know only to open one instance of itself, and load all the images there.
$ entice ./Images2/*
Would not open up a new window displaying the contents of ./Images2, but instead it sends all of those files to the currently running instance of entice silently adding them to the filelist.
Your entice configuration database holds various things that entice wants to keep track of between uses. To look at the available values try.
$ edb_gtk_ed ~/.e/apps/entice/config.db
$ edb_gtk_ed ~/.e/apps/entice/config.db
If you downloaded a theme called winter.eet copy it to your user theme directory.
$ cp winter.eet ~/.e/apps/entice/themes/
-
entice Group : Edje Parts
Entice: the main entice edje, fills the entire window
-
entice.image.current.filename.full:(TEXT) the full path to the file currently displayed
-
entice.image.current.filename.short:(TEXT) the filename currently displayed
-
entice.image.current.filesize:(TEXT) the size of the file currently displayed
-
entice.image.current.dimensions:(TEXT) Entice sets this string to be a string "w x h" where w is the width of the image and h is the height of the image.
-
entice.image.current.height:(TEXT) the height of the image currently displayed
-
entice.image.current.width:(TEXT) the width of the image currently displayed
-
entice.image:(RECT) When the image is actually loaded by entice, it looks for this region in the theme. If it exists, the image is swallowed here. If you want dragability, do not confine this part.
-
entice.scroller:(RECT) When the image displayed is larger than the area theme is giving it, a scroller window can appear. Clicking in this window moves the viewport on displayed image so the clicked area is "centered"
-
entice.preview:(RECT) Thumbnails have the ability to request themselves to be "previewed". This region swallows a copy of the thumbnail that requested previewing.
-
entice.thumbnail.area:(RECT) Entice contains a filelist, and the themer is allowed to create a region that that will contain a list of thumbnails.
-
entice.thumb Group : Edje Parts
entice.thumb:All the thumbnails take on this look
-
entice.thumb:(RECT) the decorations for thumbnails
-
entice Group : Edje Signals
Entice: The themer can emit signals to ask for state changes in entice. This includes things like telling Entice to "load the next image" or "delete this image from the filelist".
-
entice,image,current,delete:("") deletes the currently displayed image from the filelist, AND from disk
-
entice,image,current,remove:("") deletes the currently displayed image from the filelist
-
entice,image,current,save:("") save the currently modified image to disk
-
entice,image,next:("") load the next image in the filelist
-
entice,image,prev:("") load the previous image in the filelist
-
entice,image,current,zoom,reset:("") sets the image's zoom scale back to 1:1
-
entice,image,current,zoom,fit:("") fit the image in the specified area
-
entice,image,current,zoom,in:("") Zoom in on the image
-
entice,image,current,zoom,out:("") Zoom out on the image
-
entice,image,current,zoom,in,focused:("") Zoom in on the image, focused on the current mouse x,y(NOT IMPLEMENTED)
-
entice,image,current,zoom,out,focused:("") Zoom out on the image, focused on the current mouse x,y(NOT IMPLEMENTED)
-
entice,image,current,rotate,right:("") Rotates the current image 90 degrees clockwise
-
entice,image,current,rotate,left:("") Rotates the current image 90 degrees counter-clockwise
-
entice,image,current,flip,horizontal:("") Flip the current image horizontally
-
entice,image,current,flip,vertical:("") Flip the current image vertically
-
entice,image,current,scroll,start,east:("") start a timer to pan the image viewport image "East"
-
entice,image,current,scroll,start,west:("") start a timer to pan the image viewport image "West"
-
entice,image,current,scroll,start,south:("") start a timer to pan the image viewport image "South"
-
entice,image,current,scroll,start,north:("") start a timer to pan the image viewport image "North"
-
entice,image,current,scroll,stop:("") stops all image scrolling timers
-
entice,image,current,edit:("") try to edit the image with the config opt for editor
-
entice,thumbnail,scroll,start,next:("") start scrolling to see additional elements in in the thumbnail containers
-
entice,thumbnail,scroll,start,prev:("") start scrolling to see images before those currently displayed in the container
-
entice,thumbnail,scroll,stop:("") stops any thumbnail scrolling timers that are currently running.
-
entice,fullscreen:("") Tell Entice to takeover the entire screen and resize itself borderless.
-
entice,quit:("") Tell Entice it's time to exit
-
entice,image,fit,window:("") Not Impelemented
-
entice.thumb Group : Edje Signals
entice.thumb:All the thumbnails take on this look
-
entice,thumb,preview:("") Send this thumbnail to the previewer.
-
entice,thumb,load:("") Load this thumbnail as the current image.
-
entice,thumb,previewing:("") This thumbnail was selected in Entice.
-
entice,thumb,:("") This thumbnail was de-selected in Entice.
-
entice,thumb,delete:("") Delete this thumbnail from entice's filelist and from disk.
-
entice,thumb,remove:("") Remove this thumbnail from entice's filelist.
-
entice,thumb,loaded:("") This thumbnail is now the current image entice is viewing.
-
entice,thumb,unloaded:("") This thumbnail is no longer the current image entice is viewing.
-
entice Group : Entice Signals
Entice:Signals your theme should trap that Entice will emit
-
entice,image,display:("") When a new image is displayed.
-
entice,image,display,before:("") Right before the current image is freed, this is emitted. This is useful for intercepting image display.
-
entice,image,modified:("") When the image in memory is no longer consistent with the image on disk
-
entice,preview,show:("") When we have a new image in previewer.
-
entice,preview,show,before:("") When we have a new image coming into the previewer, this is emitted right before the old preview is replaced with the new.
-
entice,image,current,edit,sent:("") When we have successfully requested the file to be loaded in the editor.
Entice relies on a lot of libraries most notably
- Edb (library)
- Eet (library)
- Imlib2 (library)
- Imlib2_loaders (library)
- Evas (library)
- Ecore (library)
- Embryo (library)
- Edje (library)
- Epeg (library)
- Epsilon (library)
- Esmart (library)
The following instructions assume you've checked out the e17 directory from cvs.
$ cvs -d:pserver:anonymous@cvs.enlightenment.sf.net:/cvsroot/enligtenment login
$ cvs -d:pserver:anonymous@cvs.enlightenment.sf.net:/cvsroot/enligtenment \
co e17/libs/edb e17/libs/eet e17/libs/imlib2 e17/libs/imlib2_loaders \
e17/libs/evas e17/libs/ecore e17/libs/edje e17/libs/epeg e17/libs/epsilon \
e17/libs/esmart e17/apps/entice
That should fetch all the libraries you'll need to run entice.
-
You need Edb from cvs
$ cd e17/libs/edb; ./autogen.sh; make; sudo make install
-
You need Eet from cvs
$ cd e17/libs/eet; ./autogen.sh; make; sudo make install
-
You need Imlib2 > 1.1.0
$ cd e17/libs/imlib2; ./autogen.sh; make; sudo make install
-
You need imlib2_loaders
$ cd e17/libs/imlib2_loaders; ./autogen.sh; make; sudo make install
-
You need Evas from cvs
$ cd e17/libs/evas; ./autogen.sh; make; sudo make install
-
You need Ecore from cvs
$ cd e17/libs/ecore; ./autogen.sh; make; sudo make install
-
You need Embryo from cvs
$ cd e17/libs/embryo; ./autogen.sh; make; sudo make install
-
You need Edje from cvs
$ cd e17/libs/edje; ./autogen.sh; make; sudo make install
-
You need Epeg from cvs
$ cd e17/libs/epeg; ./autogen.sh; make; sudo make install
-
You need Epsilon from cvs
$ cd e17/libs/epsilon; ./autogen.sh; make; sudo make install
-
You need Esmart from cvs
$ cd e17/libs/esmart; ./autogen.sh; make; sudo make install
-
You need entice from cvs
$ cd e17/apps/entice; ./autogen.sh; make; sudo make install
- Todo:
-
Theme walkthrough
-
URL(curl/wget) loading
-
dragable for container scroll offset
-
gallery support
-
(esmart/ewl) file dialog
-
XDND support
-
file change notification(reload main image, not just thumbnail)
-
migrate to ecore_config