On Wed, 13 Jun 2012 19:07:16 +0200 Vincent Torri <vincent.to...@gmail.com> said:

> On Wed, Jun 13, 2012 at 12:31 PM, Carsten Haitzler <ras...@rasterman.com>
> wrote:
> > On Wed, 13 Jun 2012 10:55:52 +0900 Carsten Haitzler (The Rasterman)
> > <ras...@rasterman.com> said:
> >
> > here are some notes in email on what textgrid in evas needs to be like (may
> > miss some things but it gives the general direction) - missong const's for
> > getters that dont change obj etc:
> >
> > typedef enum
> > {
> >                                                            
> > EVAS_PALETTE_NONE,
> > EVAS_PALETTE_STANDARD, EVAS_PALETTE_EXTENDED,
> >   EVAS_PALETTE_LAST
> > } Evas_Palette;
> >
> > typedef enum
> > {
> >   EVAS_FONT_STYLE_NORMAL = (1 << 0),
> >   EVAS_FONT_STYLE_BOLD   = (1 << 1),
> >   EVAS_FONT_STYLE_ITALIC = (1 << 2)
> > ) Evas_Font_Style;
> >
> > typedef struct _Evas_Text_Cell
> > {
> >   int            glyph;
> >   unsigned char  fg, bg;
> >   unsigned short bold          : 1;
> >   unsigned short italic        : 1;
> >   unsigned short underline     : 1;
> >   unsigned short strikethrough : 1;
> >   unsigned short fg_extended   : 1;
> >   unsigned short bg_extended   : 1;
> > } Evas_Text_Cell;
> >
> > EAPI Evas_Object *
> > evas_object_textgrid_add(Evas *e);
> > EAPI void
> > evas_object_textgrid_size_set(Evas_Object *o, int w, int h);
> > EAPI void
> > evas_object_textgrid_size_get(Evas_Object *o, int *w, int *h);
> > EAPI void
> > evas_object_textgrid_palett_set(Evas_Object *o, Evas_Palette pal, int n,
> > int r, int g, int b, int a);
> 
> about the palette, do I store it as a buffer of 256 colors ? Or as a
> pojnter (Palette * + realloc, or an Eina_Array) ?

store each palette as an eina_array of "colors" (color being struct { unsigned
char r, g, b, a; };) expand as need when n exceeds current array size.

> Vincent
> 
> > EAPI void
> > evas_object_textgrid_palett_get(Evas_Object *o, Evas_Palette pal, int n, int
> > *r, int *g, int *b, int *a);
> > EAPI void
> > evas_object_textgrid_cellrow_set(Evas_Object *o, int y, Evas_Text_Cell
> > *row); EAPI Evas_Text_Cell *
> > evas_object_textgrid_cellrow_get(Evas_Object *o, int y);
> > EAPI void
> > evas_object_textgrid_update_add(Evas_Object *o, int x, int y, int w, int h);
> > EAPI void
> > evas_object_textgrid_font_source_set(Evas_Object *o, const char *font);
> > EAPI const char *
> > evas_object_textgrid_font_source_get(Evas_Object *o);
> > EAPI void
> > evas_object_textgrid_font_set(Evas_Object *o, const char *font,
> > Evas_Font_Size size);
> > EAPI void
> > evas_object_textgrid_font_get(Evas_Object *o, const char **font,
> > Evas_Font_Size *size);
> > EAPI void
> > evas_object_textgrid_cell_size_get(Evas_Object *o, int *w, int *h);
> > EAPI Evas_Font_Style
> > evas_object_textgrid_supported_font_styles_get(Evas_Object *o);
> > EAPI void
> > evas_object_textgrid_supported_font_styles_set(Evas_Object *o,
> > Evas_Font_Style fstyles);
> >
> >
> >> On Wed, 13 Jun 2012 10:13:43 +0900 Sanjeev BA <eflel...@gmail.com> said:
> >>
> >> performance isn't something i'm worried about right now because i KNOW its
> >> horrible. it's an array of NxM (eg 80x24 or more if u resize it to be
> >> biggeR) text OBJECTs and rect objects. so thats by default at its normal
> >> size about 2000 text objects and 2000 rect objects. the plan is to have an
> >> evas textgrid object take all of this over as a single object. terminology
> >> exists as a test case for textgrid. it exists to provide real world
> >> input :)
> >>
> >> i'm going to have to expand the object count by another 4000 objects to
> >> handle strikethrough and underline. again - it's dumb as nuts in the way
> >> it does this because i'm expecting textgrid to fix it all in one foul
> >> swoop :)
> >>
> >> in the meantime i want to at least make it look decent and add the basics
> >> like font selector (works now, doesn't save though), theme selector,
> >> background selector, other options settings, handle visual bell, and some
> >> other bits and pieces, as well as in general improve its terminal
> >> emulation handling, usability (selections need work, but are usable) etc.
> >> and i know i don't have time to do all of the needed things for it, but
> >> i've put together a first cut of an efl terminal emulator that is usable.
> >> if you think something is missing
> >> - pitch in and help. :) the code is in fact surprisingly small and easy to
> >> follow. right now i need to split off the options stuff as its polluting
> >> the main.c file :)
> >>
> >> here's a short list of things i think we can do in the short to medium
> >> term to make it a first-class terminal:
> >>
> >> * evas textgrid needs creating and to be used
> >> * underline and strikethrough need supporting at termio level
> >> * blink and blink2 attributes need to be supported
> >> * improve terminal emulation handling (i know it doesn't handle gfx chars
> >> and it definitely has an incomplete escape handling core - many are
> >> commented out and unhandled)
> >> * copy & paste support for clipboard not just primary (like xterm)
> >> * dnd text (to/from terminal)
> >> * ecore-imf support
> >> * handle multibyte displays better (does handle utf8 only atm and then
> >> maybe not according to convention)
> >> * general input mode handling improvements (keypad, other key
> >> input, mousereporting etc.)
> >> * save of config after options changes (option checkbox for temporary local
> >> only changes)
> >> * selection of themes
> >> * selection of background "wallpapers" (and support them at all - doesn't
> >> right now - should support regular images, animated gifs,  and edje files)
> >> * transparency support (theme needs to be told to go into tranpsarency mode
> >> and then window alpha enabled)
> >> * visual bell reporting (signals to theme)
> >> * scrollbar (elm scroller that mirrors the term smart size/position -
> >> gives us fingerscroll - layer on top of term smart, stick invisible rect
> >> inside to track for scrolling etc.)
> >> * selection mode mirrors entry style for touch displays (handle on_hold
> >> flags, etc.)
> >> * selection off edge scrolls in that direction (as per selection mode too
> >> if it gets NEAR an edge)
> >> * selection should become single edje object so it can be styled nicely
> >> * selection should have handles on the start/end so u can drag and change
> >> its size once there
> >> * improve selection text extraction logic
> >> * font selector should include font previews in the list - preferably ONLY
> >> be a list of previews
> >> * options widgets should be deleted once they are hidden. they stay in
> >> memory at the moment
> >> * clicking with ANY mouse button while options is up outside of options
> >> should dismiss it.
> >>
> >> things in future to make it totally kick-butt:
> >>
> >> * "tabs" (multiple terminals inside a window) with a nice selector that
> >> looks like e17's wallpaper2 selector a bit :)
> >> * track child process stats like cwd etc. and when launching a new "tab" or
> >> shell use the last child process cwd to put the shell inot
> >> * track mem and iowait and cpu stats for child procs and their children and
> >> display them as little overlays in the terminal so u know if your "grep
> >> -r /" is cpu or io bound and what is eating up all your cpu cycles or
> >> causing a tonne of hdd interrupts etc. - send results of these stats to
> >> theme with messages much like cpufreq, battery etc. do in e17 so theme can
> >> display as bars, dials or anything it likes (text, led's etc. too).
> >> * tiling layout within 1 window to lay out multiple terms in a flexible
> >> split/merge column/row grid setup
> >> * remember tile layouts and be able to restore them and at least as much of
> >> child processes as the term can manage reasonably reliably
> >> * split it out into a library - maybe just as part of elementary and make a
> >> terminal widget where you can specify your own read/write funcs for the
> >> term fd etc. so u can make a custom bit of code that uses the terminal
> >> widget as if it were stdin/out but just as loopback within the app (ie
> >> don't exec process - just create pty and offer read/write to/from it)
> >> * start supporting some of the crazy escape codes that let you inline
> >> images into terminals or just create our own extensions and then start
> >> making replacement "std command" wrappers/replacements that are prepended
> >> to $PATH that  can do the right thing when u do "ls" - i see a list of
> >> files and if some are images or documents - u see thumbnails too. if u cat
> >> a jpeg.. u see it. if u cat a url  or html file.. up comes an inline web
> >> browser, provide nicer visual "progessbars" and modified tools like wget
> >> that use these escapes etc.
> >>
> >> > Works for me.
> >> >
> >> > For a first version - it is awesome.
> >> >
> >> > However - I notice some delay in most application when compared to
> >> > gnome-terminal.
> >> >
> >> >
> >> > On Wed, Jun 13, 2012 at 8:42 AM, Carsten Haitzler
> >> > <ras...@rasterman.com>wrote:
> >> >
> >> > > On Tue, 12 Jun 2012 18:59:12 -0300 Leandro Pereira
> >> > > <lean...@profusion.mobi
> >> > > >
> >> > > said:
> >> > >
> >> > > > Raster,
> >> > > >
> >> > > > On 06/12/2012 12:58 PM, Carsten Haitzler (The Rasterman) wrote:
> >> > > > > On Tue, 12 Jun 2012 11:46:07 -0300 Leandro Pereira <
> >> > > lean...@profusion.mobi>
> >> > > > > said:
> >> > > > >
> >> > > > >> On Tue, Jun 12, 2012 at 12:10 PM, Enlightenment SVN
> >> > > > >> <no-re...@enlightenment.org> wrote:
> >> > > > >>> Log:
> >> > > > >>> finally a terminal emulator for efl! sure - uses a lot of text
> >> > > > >>>    objects. need evas textgrid obj and more, but this marks a
> >> > > > >>> first "usable" state for terminology. more needs doing like
> >> > > > >>> underline
> >> > > and
> >> > > > >>>    strikethrough support, blink support, visual bell, config
> >> > > > >>> panel
> >> > > etc.
> >> > > > >>
> >> > > > >> Up-to-date EFL here, and Terminology looks like this, regardless
> >> > > > >> of
> >> > > the
> >> > > > >> font being used: http://i.imgur.com/5qJ0s.png
> >> > > > >>
> >> > > > >> (Arch Linux x86 here, BTW.)
> >> > > > >
> >> > > > > i'm wondering if your freetype has a bitmap font handling issue?
> >> > > > >
> >> > > >
> >> > > > I don't know -- selecting a TTF font works, and some other bitmap
> >> > > > fonts are kind of working (like 'cursor.pcf', although the kerning
> >> > > > seems random, it is readable). I'm using the default version that
> >> > > > comes with the distribution. Any particular test I could perform
> >> > > > besides terminology to see if this is a freetype problem or an evas
> >> > > > bug?
> >> > >
> >> > > ftview the pcf files? (ftview - tool comes with freetype)
> >> > >
> >> > > > My text editor (joe) has different output from xterm, vte, and rxvt;
> >> > > > I
> >> > >
> >> > > what you have there is a font issue in evas. why - i don't know. it
> >> > > seesm to
> >> > > have gotten some font size metrics, only then to not have any bitmap
> >> > > data for
> >> > > the font. it works on all my boxes with the default configured font.
> >> > > other pcf's only work *IF* u set the size right too. i need to fix
> >> > > this in evas. (ie
> >> > > when loading a bitmap font, size is ignored and bitmap font file's
> >> > > size is used - there is logic to handle this case in evas - ie if font
> >> > > only supplies 1
> >> > > or a few sizes, pick the closest to the size u requested, but it seems
> >> > > to not
> >> > > work).
> >> > >
> >> > > > don't know who is right. It is certainly usable, but I'm not sure
> >> > > > who is correctly handling the escape sequences. I can provide
> >> > > > screenshots later if you want, comparing xterm, rxvt, vte, and
> >> > > > terminology. Is this perhaps related to $TERM being different and
> >> > > > the editor adapting itself to whatever it knows it works on that
> >> > > > particular terminal?
> >> > >
> >> > > TERM is set to xterm in terminology. it pretends to be xterm.
> >> > >
> >> > > > Also, it doesn't seem to work properly with a keyboard layout with
> >> > > > deadkeys. I need to press the spacebar to get a "'" (or some other
> >> > > > letter, like "a" to get an "á") which is very useful on a shell.
> >> > > > Right now, pressing "'" on my US-Intl keyboard gives me an acute
> >> > > > accent (tick? back-backtick?) instead, which is wrong.
> >> > >
> >> > > it's key handling is REALLY simple. no input method handling at all.
> >> > > not surprising here.
> >> > >
> >> > > > Another thing: it crashed here after a few minutes. No debug symbols
> >> > > > and no core file so it shouldn't help much, but maybe this might
> >> > > > shed some light:
> >> > >
> >> > > would need valgrind for this. :)
> >> > >
> >> > > > *** glibc detected *** ./terminology: free(): invalid pointer:
> >> > > > 0x09141568 ***
> >> > > > ======= Backtrace: =========
> >> > > > /lib/libc.so.6(+0x72632)[0xb7120632]
> >> > > > /home/leandro/dev/e/lib/libeina.so.1(eina_array_flush+0x75)
> >> > > > [0xb72ed405]
> >> > > >
> >> > > /home/leandro/dev/e/lib/libevas.so.1(evas_render_idle_flush+0xfa)
> >> > > [0xb73db55a]
> >> > > > /home/leandro/dev/e/lib/libecore_evas.so.1(+0xa215)[0xb7587215]
> >> > > > /home/leandro/dev/e/lib/libecore.so.1(_ecore_timer_expired_call+0xd6)
> >> > > > [0xb734ed36] /home/leandro/dev/e/lib/libecore.so.1
> >> > > > (_ecore_timer_expired_timers_call+0x24)
> >> > > > [0xb734eef4] /home/leandro/dev/e/lib/libecore.so.1(+0xe97b)
> >> > > > [0xb734b97b]
> >> > > /home/leandro/dev/e/lib/libecore.so.1(ecore_main_loop_begin+0x3f)
> >> > > > [0xb734c0af] /home/leandro/dev/e/lib/libelementary.so.1(elm_run+0x14)
> >> > > > [0xb76ab604] ./terminology[0x804bbee] ./terminology[0x804aa99]
> >> > > > /lib/libc.so.6(__libc_start_main+0xf5)[0xb70c73d5]
> >> > > > ./terminology[0x804aac1]
> >> > > >
> >> > > >
> >> > > > Anyway, the terminal is progressing nicely. I might use it if it
> >> > > > proves to be as reliable as rxvt or vte-based terminals.
> >> > > >
> >> > > >
> >> > > >      Leandro
> >> > > >
> >> > >
> >> > >
> >> > > --
> >> > > ------------- Codito, ergo sum - "I code, therefore I am"
> >> > > -------------- The Rasterman (Carsten Haitzler)    ras...@rasterman.com
> >> > >
> >> > >
> >> > >
> >> > > ------------------------------------------------------------------------------
> >> > > Live Security Virtual Conference
> >> > > Exclusive live event will cover all the ways today's security and
> >> > > threat landscape has changed and how IT managers can respond.
> >> > > Discussions will include endpoint security, mobile security and the
> >> > > latest in malware threats.
> >> > > http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> >> > > _______________________________________________ enlightenment-devel
> >> > > mailing list enlightenment-devel@lists.sourceforge.net
> >> > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >> > >
> >> > ------------------------------------------------------------------------------
> >> > Live Security Virtual Conference
> >> > Exclusive live event will cover all the ways today's security and
> >> > threat landscape has changed and how IT managers can respond. Discussions
> >> > will include endpoint security, mobile security and the latest in malware
> >> > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> >> > _______________________________________________
> >> > enlightenment-devel mailing list
> >> > enlightenment-devel@lists.sourceforge.net
> >> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >> >
> >>
> >>
> >> --
> >> ------------- Codito, ergo sum - "I code, therefore I am" --------------
> >> The Rasterman (Carsten Haitzler)    ras...@rasterman.com
> >>
> >>
> >> ------------------------------------------------------------------------------
> >> Live Security Virtual Conference
> >> Exclusive live event will cover all the ways today's security and
> >> threat landscape has changed and how IT managers can respond. Discussions
> >> will include endpoint security, mobile security and the latest in malware
> >> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> >> _______________________________________________
> >> enlightenment-devel mailing list
> >> enlightenment-devel@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >
> >
> > --
> > ------------- Codito, ergo sum - "I code, therefore I am" --------------
> > The Rasterman (Carsten Haitzler)    ras...@rasterman.com
> >
> >
> > ------------------------------------------------------------------------------
> > Live Security Virtual Conference
> > Exclusive live event will cover all the ways today's security and
> > threat landscape has changed and how IT managers can respond. Discussions
> > will include endpoint security, mobile security and the latest in malware
> > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> > _______________________________________________
> > enlightenment-devel mailing list
> > enlightenment-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and 
> threat landscape has changed and how IT managers can respond. Discussions 
> will include endpoint security, mobile security and the latest in malware 
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to