flayer.h - sam - An updated version of the sam text editor.
 (HTM) git clone git://vernunftzentrum.de/sam.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) LICENSE
       ---
       flayer.h (1428B)
       ---
            1 /* Copyright (c) 1998 Lucent Technologies - All rights reserved. */
            2 #undef None
            3 typedef enum Vis{
            4     None=0,
            5     Some,
            6     All
            7 }Vis;
            8 
            9 enum{
           10     Clicktime=1000      /* one second */
           11 };
           12 
           13 typedef struct Flayer Flayer;
           14 
           15 /* note that we track background color, but not foreground
           16  * all layers have the same foreground color
           17  */
           18 struct Flayer
           19 {
           20     uint64_t bg;
           21     Frame       f;
           22     int64_t        origin; /* offset of first char in flayer */
           23     int64_t        p0, p1;
           24     int64_t        click;  /* time at which selection click occurred, in HZ */
           25     wchar_t        *(*textfn)(Flayer*, int64_t, uint64_t*);
           26     int     user0;
           27     void        *user1;
           28     Rectangle   entire;
           29     Rectangle   scroll;
           30     Vis     visible;
           31 };
           32 
           33 void    flborder(Flayer*, bool);
           34 void    flclose(Flayer*);
           35 void    fldelete(Flayer*, int64_t, int64_t);
           36 void    flfp0p1(Flayer*, uint64_t*, uint64_t*);
           37 void    flinit(Flayer*, Rectangle, XftFont*, uint64_t bg);
           38 void    flinsert(Flayer*, wchar_t*, wchar_t*, int64_t);
           39 void    flnew(Flayer*, wchar_t *(*fn)(Flayer*, int64_t, uint64_t*), int, void*);
           40 int flprepare(Flayer*);
           41 Rectangle flrect(Flayer*, Rectangle);
           42 void    flrefresh(Flayer*, Rectangle, int);
           43 void    flreshape(Rectangle);
           44 bool flselect(Flayer*);
           45 void    flsetselect(Flayer*, int64_t, int64_t);
           46 void    flstart(Rectangle);
           47 void    flupfront(Flayer*);
           48 Flayer  *flwhich(Point);
           49 
           50 #define FLMARGIN    4
           51 #define FLSCROLLWID 12
           52 #define FLGAP       4