Hi all,

Long tome without talking with you; so busy with my new work :(:

I want to share my purpose of implementation for new pan calendar view using
Clutter. Maybe the visual design will not give much information; so I'll
write how I think new implementation will work.
I would try to implement , if possible, a little bit independent from
Geeqie; maybe such a embeded widget; so any other program could use it.
By the way; i'm using for sure filedata class and options from Geeqie; and I
would like to use Exif module too; to get Exif information from pics.
As we previously discussed with Vladimir; I'll use ClutterTexture instead
Image or ThumbLoader ; as well no pancache data will be used at this time
because of time limitations . Sorry :(.

Ok: here's how I think it should work:

- We have a main stage ( maybe an embedded one to a GTK widget ); which is
called from Geeqie; passing a Filedata.
- PAN_THUMBAIL_SIZE information could be obtained from Geeqie main program.
- Main Stage will have a list of Cells. Cell is a concept that has worked
well in my work . It's a container ; which has a list of children and has a
parent. ( for example; I'll have a GList of Cells with the concept of 'year'
; whose have a list of childs with the concept 'month'; and so on.  This can
be directly implemented with clutter, using CONTAINERS and a new concept in
clutter 1.0 called
clutter_actor_group<http://www.openismus.com/documents/cluttermm_tutorial/1.0/docs/tutorial/html/sec-containers.html#figure-actor-containers>;
which allows to propagate changes in clutter containers parents to their
childs.
- Then we have items. Items can be different classes; Image, thumbnails or
'Other'. Other primary will refer to a file that is not an image ( but I
will like to do it in a way anyone could extend Item subclasses). Images are
mainly ClutterTexture; which it would be great to add access to Exif
information ( maybe extending ClutterTexture to someting like
clutterTextureExif; we'll See...).
- Associated to 'Item' class I would like to implement a Heuristic Class. As
I discussed previous emails; I think that we should look for some kind of
'heuristics' to put 'relevance' in pics viewving; when there is a draw
between sort criteria selected by user; mainly when we don't exif
information. For instant; if 1000 images were copied in a directory at same
time; 'relevance' could be higher in those ones which user acess more times
( timesClicked ) . If later we allow to have ' Categories ' ; we can also
have a look in which ones user access more; and then show first thumbnails
corresponding to that category in thumbnail preview.
There just some ideas ; you can tell me what do you think about it; or if it
is just a very bad idea :) .
- I will also implement a method Show(). It will be make the image visible .
For Image class; it will be mainly a call to Show_actor() method. Images
should have already loaded ClutterTexture using path string! .Clutter
documentation says that "no memory is used when an actor is not shown". So I
think we can pass over PanCache ( at this time!) ; and limited it to only
Show() actors which are inside the area of user visualisation; and Hide()
the other ones. Having Actors in containers in a way of
Year-Month-Days-hours ; for example; will be a good guideline to know when
we have to show or hide actors.
- Navigation will work as previously we talked about it:

   - keys '+' and '.' will show more or less thumbnails in the selected
   year/month/day.
   - Enter key pressed in a selected 'Cell' ; will navigate to its child
   cell. ( month->day ; for example). Del key ( <--- ) will be a good one to
   navigate backwards.
   - Others keys will be used to show full screen image; and similar
   functionality that offers geeqie.
   - Basic image manipulation will be implemented using clutter methods.

- Finally , I would like to talk about Object Orientated programming.
Do you think it would be a great idea to work in this way with Geeqie from
now ?
Clutter is now offering C++ support programing (
clutermm)<http://www.openismus.com/documents/cluttermm_tutorial/1.0/docs/tutorial/html/sec-cluttermm.html>.
; allowing static classes, handling exceptions, etc.
It will also allow to implement many methods with worrying over which item
are we using it.

for ( int i = 0 ; i < list.size() ; i++)
{
   (Item* )list[i]->Show();
}

It's just strange for me to work with a so complex program as it is Geeqie
in plain C instead object orientation programming;using so many structs{} .
Is there any reason to continue using plain C; or it will be a good idea to
implement new pan calendar view in C++?


Well; it's lot of information. If you like to add any comments; please do it
now; because I have to start implementation early because my project
deadline is in December. I would like to start implementation next week.

Thank you very much for reading ;)
Óscar.



-
------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Geeqie-devel mailing list
Geeqie-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geeqie-devel

Reply via email to