Back to index

texmacs  1.0.7.15
Public Member Functions | Public Attributes | Friends
composite_box_rep Struct Reference

#include <composite.hpp>

Inheritance diagram for composite_box_rep:
Inheritance graph
[legend]
Collaboration diagram for composite_box_rep:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 composite_box_rep (path ip)
 composite_box_rep (path ip, array< box > bs)
 composite_box_rep (path ip, array< box > bs, bool init_sx_sy)
 composite_box_rep (path ip, array< box > bs, array< SI > x, array< SI > y)
 ~composite_box_rep ()
void insert (box b, SI x, SI y)
void position ()
void left_justify ()
void finalize ()
int subnr ()
box subbox (int i)
void display (renderer ren)
virtual int find_child (SI x, SI y, SI delta, bool force)
virtual path find_box_path (SI x, SI y, SI delta, bool force)
virtual path find_lip ()
virtual path find_rip ()
virtual path find_box_path (path p, bool &found)
virtual path find_tree_path (path bp)
virtual cursor find_cursor (path bp)
virtual selection find_selection (path lbp, path rbp)
virtual gr_selections graphical_select (SI x, SI y, SI dist)
virtual gr_selections graphical_select (SI x1, SI y1, SI x2, SI y2)
virtual tree action (tree t, SI x, SI y, SI delta)
virtual void loci (SI x, SI y, SI delta, list< string > &ids, rectangles &rs)
virtual bool access_allowed ()
virtual void collect_page_numbers (hashmap< string, tree > &h, tree page)
virtual path find_tag (string name)
virtual box transform (frame fr)
void relocate (path p, bool force=false)
virtual operator tree ()=0
virtual void pre_display (renderer &ren)
virtual void post_display (renderer &ren)
virtual void clear_incomplete (rectangles &rs, SI pixel, int i, int i1, int i2)
virtual void position_at (SI x, SI y, rectangles &change_log)
virtual int reindex (int i, int item, int n)
void redraw (renderer ren, path p, rectangles &l)
void redraw (renderer ren, path p, rectangles &l, SI x, SI y)
SI w ()
SI h ()
SIsx (int i)
SIsy (int i)
SI sx1 (int i)
SI sy1 (int i)
SI sx2 (int i)
SI sy2 (int i)
SI sx3 (int i)
SI sy3 (int i)
SI sx4 (int i)
SI sy4 (int i)
bool test_in (SI x, SI y)
bool accessible ()
bool decoration ()
SI distance (int i, SI x, SI y, SI delta)
bool in_rectangle (SI x1, SI y1, SI x2, SI y2)
bool contains_rectangle (SI x1, SI y1, SI x2, SI y2)
virtual path find_left_box_path ()
virtual path find_right_box_path ()
path find_tree_path (SI x, SI y, SI delta)
cursor find_check_cursor (path p)
selection find_check_selection (path lp, path rp)
virtual double left_slope ()
virtual double right_slope ()
virtual SI left_correction ()
virtual SI right_correction ()
virtual SI lsub_correction ()
virtual SI lsup_correction ()
virtual SI rsub_correction ()
virtual SI rsup_correction ()
virtual SI sub_lo_base (int level)
virtual SI sub_hi_lim (int level)
virtual SI sup_lo_lim (int level)
virtual SI sup_lo_base (int level)
virtual SI sup_hi_lim (int level)
virtual frame get_frame ()
virtual grid get_grid ()
virtual void get_limits (point &lim1, point &lim2)
frame find_frame (path bp, bool last=false)
grid find_grid (path bp)
void find_limits (path bp, point &lim1, point &lim2)
virtual SI graphical_distance (SI x, SI y)
virtual int get_type ()
virtual tree get_info (tree in)
virtual int get_leaf_left_pos ()
virtual int get_leaf_right_pos ()
virtual string get_leaf_string ()
virtual font get_leaf_font ()
virtual color get_leaf_color ()
virtual language get_leaf_language ()
virtual tree get_leaf_tree ()
virtual lazy get_leaf_lazy ()
virtual SI get_leaf_offset (string search)
virtual int anim_length ()
virtual bool anim_started ()
virtual bool anim_finished ()
virtual void anim_start_at (time_t at)
virtual void anim_finish_now ()
virtual time_t anim_next_update ()
void anim_check_invalid (bool &flag, time_t &at, rectangles &rs)
virtual void anim_get_invalid (bool &flag, time_t &at, rectangles &rs)

Public Attributes

array< boxbs
path lip
path rip
SI x1
SI y1
SI x2
SI y2
SI x3
SI y3
SI x4
SI y4
path ip
int ref_count

Friends

struct page_box_rep
struct lazy_paragraph_rep
class phrase_box_rep
class remember_box_rep
void make_eps (url dest, box b, int dpi=600)

Detailed Description

Definition at line 21 of file composite.hpp.


Constructor & Destructor Documentation

Definition at line 19 of file composite_boxes.cpp.

: box_rep (ip) { }

Definition at line 21 of file composite_boxes.cpp.

                                                          : box_rep (ip) {
  bs= B;
  position ();
}

Here is the call graph for this function:

composite_box_rep::composite_box_rep ( path  ip,
array< box bs,
bool  init_sx_sy 
)

Definition at line 26 of file composite_boxes.cpp.

                                         :
    box_rep (ip)
{
  bs= B;
  if (init_sx_sy) {
    int i, n= N(bs);
    for (i=0; i<n; i++) {
      sx(i)= 0;
      sy(i)= 0;
    }
  }
  position ();
}

Here is the call graph for this function:

composite_box_rep::composite_box_rep ( path  ip,
array< box bs,
array< SI x,
array< SI y 
)

Definition at line 41 of file composite_boxes.cpp.

                                                  :
    box_rep (ip)
{
  bs= B;
  int i, n= subnr();
  for (i=0; i<n; i++) {
    sx(i)= x[i];
    sy(i)= y[i];
  }
  position ();
}

Here is the call graph for this function:

Definition at line 54 of file composite_boxes.cpp.

{}

Member Function Documentation

Reimplemented in graphics_group_box_rep, stack_box_rep, and concat_box_rep.

Definition at line 153 of file composite_boxes.cpp.

                                   {
  return true;
}

Here is the caller graph for this function:

bool box_rep::accessible ( ) [inline, inherited]

Definition at line 313 of file boxes.hpp.

{ return is_accessible (find_lip ()); }

Here is the call graph for this function:

Here is the caller graph for this function:

tree composite_box_rep::action ( tree  t,
SI  x,
SI  y,
SI  delta 
) [virtual]

Reimplemented from box_rep.

Reimplemented in action_box_rep, scrollbar_box_rep, and concat_box_rep.

Definition at line 116 of file composite_boxes.cpp.

                                                       {
  int m= find_child (x, y, delta, true);
  if (m == -1) return "";
  else return bs[m]->action (t, x- sx(m), y- sy(m),
                          delta + get_delta (x, x1, x2));
}

Here is the call graph for this function:

void box_rep::anim_check_invalid ( bool &  flag,
time_t at,
rectangles rs 
) [inherited]

Definition at line 716 of file boxes.cpp.

                                                                   {
  time_t now= texmacs_time ();
  time_t finish_at= anim_next_update ();
  if (finish_at - now < 0) finish_at= now;
  if (flag && at - now < 0) at= now;
  if (!flag || finish_at - (at - 3) < 0) {
    flag= true;
    at  = finish_at;
    rs  = rectangle (x1, y1, x2, y2);
  }
  else if (finish_at - (at + 3) <= 0) {
    rs << rectangle (x1, y1, x2, y2);
    if (finish_at - at < 0)
      at= finish_at;
  }
}

Here is the call graph for this function:

Here is the caller graph for this function:

void box_rep::anim_finish_now ( ) [virtual, inherited]

Reimplemented in sound_box_rep, anim_effect_box_rep, anim_repeat_box_rep, anim_compose_box_rep, modifier_box_rep, and anim_constant_box_rep.

Definition at line 703 of file boxes.cpp.

                          {
  int i, n= subnr ();
  for (i=0; i<n; i++)
    subbox (i)->anim_finish_now ();
}

Here is the call graph for this function:

bool box_rep::anim_finished ( ) [virtual, inherited]

Reimplemented in sound_box_rep, anim_effect_box_rep, anim_repeat_box_rep, anim_compose_box_rep, modifier_box_rep, and anim_constant_box_rep.

Definition at line 688 of file boxes.cpp.

                        {
  int i, n= subnr ();
  for (i=0; i<n; i++)
    if (!subbox (i)->anim_finished ()) return false;
  return true;
}

Here is the call graph for this function:

void box_rep::anim_get_invalid ( bool &  flag,
time_t at,
rectangles rs 
) [virtual, inherited]

Reimplemented in anim_effect_box_rep, anim_repeat_box_rep, anim_compose_box_rep, modifier_box_rep, and anim_constant_box_rep.

Definition at line 734 of file boxes.cpp.

                                                                 {
  int i, n= subnr ();
  for (i=0; i<n; i++) {
    bool   flag2= false;
    time_t at2= at;
    rectangles rs2;
    subbox (i)->anim_get_invalid (flag2, at2, rs2);
    if (flag2) {
      rs2= translate (rs2, sx (i), sy (i));
      if (at2 - (at-3) < 0) rs= rs2;
      else rs << rs2;
      flag= true;
      if (at2 - at < 0) at= at2;
    }
  }
}

Here is the call graph for this function:

int box_rep::anim_length ( ) [virtual, inherited]

Reimplemented in sound_box_rep, anim_effect_box_rep, anim_repeat_box_rep, anim_compose_box_rep, modifier_box_rep, and anim_constant_box_rep.

Definition at line 669 of file boxes.cpp.

                      {
  int i, n= subnr (), len=0;
  for (i=0; i<n; i++) {
    int slen= subbox (i)->anim_length ();
    if (slen == -1) return -1;
    if (slen > len) len= slen;
  }
  return len;
}

Here is the call graph for this function:

time_t box_rep::anim_next_update ( ) [virtual, inherited]

Reimplemented in anim_effect_box_rep, anim_compose_box_rep, and anim_constant_box_rep.

Definition at line 710 of file boxes.cpp.

                           {
  FAILED ("invalid situation");
  return texmacs_time ();
}

Here is the call graph for this function:

Here is the caller graph for this function:

void box_rep::anim_start_at ( time_t  at) [virtual, inherited]

Reimplemented in sound_box_rep, anim_effect_box_rep, anim_repeat_box_rep, anim_compose_box_rep, modifier_box_rep, and anim_constant_box_rep.

Definition at line 696 of file boxes.cpp.

                                 {
  int i, n= subnr ();
  for (i=0; i<n; i++)
    subbox (i)->anim_start_at (at);
}

Here is the call graph for this function:

bool box_rep::anim_started ( ) [virtual, inherited]

Reimplemented in sound_box_rep, anim_effect_box_rep, anim_repeat_box_rep, anim_compose_box_rep, modifier_box_rep, and anim_constant_box_rep.

Definition at line 680 of file boxes.cpp.

                       {
  int i, n= subnr ();
  for (i=0; i<n; i++)
    if (!subbox (i)->anim_started ()) return false;
  return true;
}

Here is the call graph for this function:

void box_rep::clear_incomplete ( rectangles rs,
SI  pixel,
int  i,
int  i1,
int  i2 
) [virtual, inherited]

Reimplemented in page_box_rep, stack_box_rep, and concat_box_rep.

Definition at line 541 of file boxes.cpp.

                                                                          {
  (void) rs; (void) pixel; (void) i; (void) i1; (void) i2;
}

Here is the caller graph for this function:

void composite_box_rep::collect_page_numbers ( hashmap< string, tree > &  h,
tree  page 
) [virtual]

Reimplemented from box_rep.

Reimplemented in tag_box_rep, and page_box_rep.

Definition at line 136 of file composite_boxes.cpp.

                                                                           {
  int i, n= N(bs);
  for (i=0; i<n; i++)
    bs[i]->collect_page_numbers (h, page);
}

Here is the call graph for this function:

bool box_rep::contains_rectangle ( SI  x1,
SI  y1,
SI  x2,
SI  y2 
) [inherited]

Definition at line 81 of file boxes.cpp.

                                                       {
  return x1<=X1 && y1<=Y1 && x2>=X2 && y2>=Y2;
}

Here is the caller graph for this function:

bool box_rep::decoration ( ) [inline, inherited]

Definition at line 314 of file boxes.hpp.

{ return is_decoration (find_lip ()); }

Here is the call graph for this function:

Here is the caller graph for this function:

void composite_box_rep::display ( renderer  ren) [virtual]

Implements box_rep.

Reimplemented in phrase_box_rep, highlight_box_rep, remember_box_rep, page_box_rep, and stack_box_rep.

Definition at line 101 of file composite_boxes.cpp.

                                        {
  (void) ren;
}
SI box_rep::distance ( int  i,
SI  x,
SI  y,
SI  delta 
) [inherited]

Definition at line 61 of file boxes.cpp.

                                              {
  box b= subbox (i);
  x -= sx(i);
  y -= sy(i);
  int dx, dy;
  if (x <=  b->x1) dx = b->x1- x- (delta<0? 1:0);
  else if (x >=  b->x2) dx = x- b->x2+ (delta<0? 0:1);
  else dx = 0;
  if (y <  b->y1) dy = b->y1- y;
  else if (y >= b->y2) dy = y- b->y2;
  else dy = 0;
  return dx+dy;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Reimplemented in side_box_rep, dummy_script_box_rep, lim_box_rep, stack_box_rep, and concat_box_rep.

Definition at line 175 of file composite_boxes.cpp.

                             {
  int i, n= subnr ();
  lip= descend (ip, 0);
  rip= descend (ip, 1);
  for (i=0; i<n; i++) {
    path l= bs[i]->find_lip ();
    path r= bs[i]->find_rip ();
    /*
    cout << "  i  = " << i << "\n";
    cout << "  l  = " << l << "\n";
    cout << "  r  = " << r << "\n";
    */
    if (is_accessible (l) && is_accessible (r)) {
      if (is_decoration (lip) || path_less (reverse (l), reverse (lip)))
       lip= l;
      if (is_decoration (rip) || path_less (reverse (rip), reverse (r)))
       rip= r;
    }
  }
  /*
  cout << ((tree) (*((box_rep*) this))) << " " << ip << "\n";
  cout << "  lip= " << lip << "\n";
  cout << "  rip= " << rip << "\n";
  */
}

Here is the call graph for this function:

Here is the caller graph for this function:

path composite_box_rep::find_box_path ( SI  x,
SI  y,
SI  delta,
bool  force 
) [virtual]

Reimplemented from box_rep.

Reimplemented in macro_box_rep, and concat_box_rep.

Definition at line 215 of file composite_boxes.cpp.

                                                                  {
  int m= find_child (x, y, delta, force);
  if (m==-1) return box_rep::find_box_path (x, y, delta, force);
  else {
    SI xx= x- sx(m), yy= y- sy(m);
    SI dd= delta + get_delta (xx, bs[m]->x1, bs[m]->x2);
    return path (m, bs[m]->find_box_path (xx, yy, dd, force));
  }
}

Here is the call graph for this function:

Here is the caller graph for this function:

path composite_box_rep::find_box_path ( path  p,
bool &  found 
) [virtual]

Reimplemented from box_rep.

Reimplemented in macro_box_rep, side_box_rep, dummy_script_box_rep, and lim_box_rep.

Definition at line 236 of file composite_boxes.cpp.

                                                     {
  // cout << "Find box path " << box (this) << ", " << p
  //      << "; " << reverse (ip)
  //      << ", " << reverse (find_lip ())
  //      << " -- " << reverse (find_rip ()) << "\n";
  int n= subnr();
  // cout << "Search cursor " << p << " among " << n
  //      << " at " << box (this) << " " << reverse (ip) << "\n";
  if (n == 0) return box_rep::find_box_path (p, found);

  int start= n>>1, acc= start, step= (start+1)>>1;
  while (step > 0) {
    path sr= bs[acc]->find_rip ();
    while (!is_accessible (sr)) {
      acc--;
      if (acc<0) break;
      sr= bs[acc]->find_rip ();
    }
    if (acc<0) {
      start= 0;
      break;
    }
    if (path_less (reverse (sr), p)) {
      int old_start= start, old_acc= acc;
      start= min (n-1, start+ step);
      acc  = start;
      while ((acc > old_start) &&
            (!is_accessible (bs[acc]->find_rip ()))) acc--;
      if (acc == old_start) acc= old_acc;
    }
    else {
      start= max (0, start- step);
      acc  = min (acc, start);
    }
    if (step <= 1) break;
    step= (step+1)>>1;
  }

  path bp;
  bool flag= false;
  int i= start;
  found= false;
  while (true) {
    path sl= bs[i]->find_lip ();
    path sr= bs[i]->find_rip ();
    // cout << "  " << i << ":\t" << reverse(sl) <<", "<< reverse(sr) << "\n";
    if (is_accessible (sl) && is_accessible (sr) &&
       path_less_eq (reverse (sl), p) && path_less_eq (p, reverse (sr)))
      {
       flag= true;
       bp= path (i, bs[i]->find_box_path (p, found));
       if (found) return bp;
      }
    i++;
    if (i==n) i=0;
    if (i==start) break;
  }

  if (is_accessible (ip) && (path_up (p) == reverse (ip)) && access_allowed ())
    return box_rep::find_box_path (p, found);
  if (flag) return bp;
  if (start > 0) {
    path sl= bs[start-1]->find_rip ();
    path sr= bs[start  ]->find_lip ();
    if (is_accessible (sl) && is_accessible (sr) &&
       path_less_eq (reverse (sl), p) && path_less_eq (p, reverse (sr)))
      {
       int c1= N (common (reverse (sl), p));
       int c2= N (common (reverse (sr), p));
       int i = (c1 >= c2? start-1: start);
       return path (i, bs[i]->find_box_path (p, found));
      }
  }
  return box_rep::find_box_path (p, flag);
}

Here is the call graph for this function:

Definition at line 163 of file boxes.cpp.

                                  {
  bool found;
  path bp= find_box_path (p, found);
  cursor cu= find_cursor (bp);
  cu->valid= found;
  return cu;
}

Here is the call graph for this function:

selection box_rep::find_check_selection ( path  lp,
path  rp 
) [inherited]

Definition at line 172 of file boxes.cpp.

                                               {
  bool lfound= false, rfound= false;
  path lbp= find_box_path (lp, lfound);
  path rbp= find_box_path (rp, rfound);
  selection sel= find_selection (lbp, rbp);
  sel->valid= lfound && rfound;
  return sel;
}

Here is the call graph for this function:

int composite_box_rep::find_child ( SI  x,
SI  y,
SI  delta,
bool  force 
) [virtual]

Reimplemented in macro_box_rep, wide_box_rep, side_box_rep, tree_box_rep, neg_box_rep, page_box_rep, sqrt_box_rep, concrete_composite_box_rep, concat_box_rep, frac_box_rep, graphics_box_rep, stack_box_rep, scatter_box_rep, and change_box_rep.

Definition at line 202 of file composite_boxes.cpp.

                                                               {
  if (outside (x, delta, x1, x2) && (is_accessible (ip) || force)) return -1;
  int i, n= subnr(), d= MAX_SI, m= -1;
  for (i=0; i<n; i++)
    if (distance (i, x, y, delta)< d)
      if (bs[i]->accessible () || force) {
       d= distance (i, x, y, delta);
       m= i;
      }
  return m;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Reimplemented from box_rep.

Reimplemented in macro_box_rep, side_box_rep, concat_box_rep, and stack_box_rep.

Definition at line 319 of file composite_boxes.cpp.

                                       {
  if (is_atom (bp)) return box_rep::find_cursor (bp);
  else {
    int i= bp->item;
    cursor cu= bs[i]->find_cursor (bp->next);
    cu->delta -= get_delta (cu->ox, bs[i]->x1, bs[i]->x2);
    cu->ox    += sx(i);
    cu->oy    += sy(i);
    return cu;
  }
}

Here is the call graph for this function:

frame box_rep::find_frame ( path  bp,
bool  last = false 
) [inherited]

Definition at line 286 of file boxes.cpp.

                                       {
  SI    x= 0;
  SI    y= 0;
  box   b= this;
  frame f= get_frame ();
  while (!is_nil (bp)) {
    x += b->sx (bp->item);
    y += b->sy (bp->item);
    b  = b->subbox (bp->item);
    bp = bp->next;
    frame g= b->get_frame ();
    if (!is_nil (g)) {
      if (last)
       f= g;
      else
       f= scaling (1.0, point (x, y)) * g;
    }
  }
  return f;
}

Here is the call graph for this function:

grid box_rep::find_grid ( path  bp) [inherited]

Definition at line 308 of file boxes.cpp.

                           {
  box   b= this;
  grid g= get_grid ();
  while (!is_nil (bp)) {
    b  = b->subbox (bp->item);
    bp = bp->next;
    grid g2= b->get_grid ();
    if (!is_nil (g2)) g= g2;
  }
  return g;
}

Here is the call graph for this function:

path box_rep::find_left_box_path ( ) [virtual, inherited]

Reimplemented in side_box_rep, page_box_rep, modifier_box_rep, scatter_box_rep, and change_box_rep.

Definition at line 108 of file boxes.cpp.

                             {
  return path (0);
}

Here is the caller graph for this function:

void box_rep::find_limits ( path  bp,
point lim1,
point lim2 
) [inherited]

Definition at line 321 of file boxes.cpp.

                                                       {
  box b= this;
  get_limits (lim1, lim2);
  while (!is_nil (bp)) {
    point slim1, slim2;
    b  = b->subbox (bp->item);
    bp = bp->next;
    b->get_limits (slim1, slim2);
    if (slim1 != point ()) {
      lim1= slim1;
      lim2= slim2;
    }
  }
}

Here is the call graph for this function:

Reimplemented from box_rep.

Reimplemented in macro_box_rep, and graphics_group_box_rep.

Definition at line 226 of file composite_boxes.cpp.

                             {
  return lip;
}
path box_rep::find_right_box_path ( ) [virtual, inherited]

Reimplemented in side_box_rep, shorter_box_rep, page_box_rep, marker_box_rep, text_box_rep, modifier_box_rep, change_box_rep, and scatter_box_rep.

Definition at line 113 of file boxes.cpp.

                              {
  return path (1);
}

Here is the caller graph for this function:

Reimplemented from box_rep.

Reimplemented in macro_box_rep, and graphics_group_box_rep.

Definition at line 231 of file composite_boxes.cpp.

                             {
  return rip;
}

Here is the caller graph for this function:

selection composite_box_rep::find_selection ( path  lbp,
path  rbp 
) [virtual]

Reimplemented from box_rep.

Reimplemented in macro_box_rep, side_box_rep, clip_box_rep, concat_box_rep, stack_box_rep, and scatter_box_rep.

Definition at line 332 of file composite_boxes.cpp.

                                                     {
  if ((!is_atom (lbp)) && (!is_atom (rbp)) && (lbp->item == rbp->item)) {
    int i= lbp->item;
    selection sel= bs[i]->find_selection (lbp->next, rbp->next);
    return selection (translate (sel->rs, sx(i), sy(i)), sel->start, sel->end);
  }
  else return box_rep::find_selection (lbp, rbp);
}

Here is the call graph for this function:

Reimplemented from box_rep.

Reimplemented in tag_box_rep.

Definition at line 143 of file composite_boxes.cpp.

                                        {
  int i, n= N(bs);
  for (i=0; i<n; i++) {
    path p= bs[i]->find_tag (name);
    if (!is_nil (p)) return p;
  }
  return path ();
}

Here is the call graph for this function:

Reimplemented from box_rep.

Reimplemented in macro_box_rep, side_box_rep, dummy_script_box_rep, lim_box_rep, concat_box_rep, and stack_box_rep.

Definition at line 313 of file composite_boxes.cpp.

                                          {
  if (is_atom (bp)) return box_rep::find_tree_path (bp);
  return bs[bp->item]->find_tree_path (bp->next);
}

Here is the call graph for this function:

Here is the caller graph for this function:

path box_rep::find_tree_path ( SI  x,
SI  y,
SI  delta 
) [inherited]

Definition at line 155 of file boxes.cpp.

                                             {
  path bp= find_box_path (x, y, delta, false);
  //cout << "Find " << x << ", " << y << "; " << delta;
  //cout << " -> " << bp << "\n";
  return find_tree_path (bp);
}

Here is the call graph for this function:

frame box_rep::get_frame ( ) [virtual, inherited]

Reimplemented in graphics_box_rep.

Definition at line 271 of file boxes.cpp.

                    {
  return frame ();
}

Here is the caller graph for this function:

grid box_rep::get_grid ( ) [virtual, inherited]

Reimplemented in graphics_box_rep.

Definition at line 276 of file boxes.cpp.

                   {
  return grid ();
}

Here is the caller graph for this function:

tree box_rep::get_info ( tree  in) [virtual, inherited]

Reimplemented in clip_box_rep.

Definition at line 391 of file boxes.cpp.

                          {
  (void) in;
  return "";
}
color box_rep::get_leaf_color ( ) [virtual, inherited]

Reimplemented in macro_box_rep, shorter_box_rep, and text_box_rep.

Definition at line 425 of file boxes.cpp.

                         {
  cerr << "\nTeXmacs] the box is " << box (this) << "\n";
  FAILED ("this box is not textual");
  return 0;
}
font box_rep::get_leaf_font ( ) [virtual, inherited]

Reimplemented in macro_box_rep, shorter_box_rep, and text_box_rep.

Definition at line 418 of file boxes.cpp.

                        {
  cerr << "\nTeXmacs] the box is " << box (this) << "\n";
  FAILED ("this box is not textual");
  return font ();
}
language box_rep::get_leaf_language ( ) [virtual, inherited]

Definition at line 432 of file boxes.cpp.

                            {
  cerr << "\nTeXmacs] the box is " << box (this) << "\n";
  FAILED ("this box is not textual");
  return language ();
}
lazy box_rep::get_leaf_lazy ( ) [virtual, inherited]

Reimplemented in control_lazy_box_rep.

Definition at line 446 of file boxes.cpp.

                        {
  cerr << "\nTeXmacs] the box is " << box (this) << "\n";
  FAILED ("no lazy attached to this box");
  return lazy ();
}
int box_rep::get_leaf_left_pos ( ) [virtual, inherited]

Reimplemented in shorter_box_rep, and text_box_rep.

Definition at line 397 of file boxes.cpp.

                            {
  cerr << "\nTeXmacs] the box is " << box (this) << "\n";
  FAILED ("this box is not textual");
  return 0;
}
SI box_rep::get_leaf_offset ( string  search) [virtual, inherited]

Reimplemented in macro_box_rep, shorter_box_rep, change_box_rep, text_box_rep, and concat_box_rep.

Definition at line 453 of file boxes.cpp.

                                       {
  (void) search;
  return w();
}

Here is the call graph for this function:

int box_rep::get_leaf_right_pos ( ) [virtual, inherited]

Reimplemented in shorter_box_rep, and text_box_rep.

Definition at line 404 of file boxes.cpp.

                             {
  cerr << "\nTeXmacs] the box is " << box (this) << "\n";
  FAILED ("this box is not textual");
  return 0;
}
string box_rep::get_leaf_string ( ) [virtual, inherited]

Reimplemented in macro_box_rep, shorter_box_rep, and text_box_rep.

Definition at line 411 of file boxes.cpp.

                          {
  cerr << "\nTeXmacs] the box is " << box (this) << "\n";
  FAILED ("this box is not textual");
  return "";
}
tree box_rep::get_leaf_tree ( ) [virtual, inherited]

Reimplemented in control_tree_box_rep.

Definition at line 439 of file boxes.cpp.

                        {
  cerr << "\nTeXmacs] the box is " << box (this) << "\n";
  FAILED ("no tree attached to this box");
  return "";
}
void box_rep::get_limits ( point lim1,
point lim2 
) [virtual, inherited]

Reimplemented in graphics_box_rep.

Definition at line 281 of file boxes.cpp.

                                             {
  lim1= point (); lim2= point ();
}

Here is the caller graph for this function:

int box_rep::get_type ( ) [virtual, inherited]

Reimplemented in clip_box_rep, shift_box_rep, move_box_rep, and stack_box_rep.

Definition at line 386 of file boxes.cpp.

                   {
  return STD_BOX;
}
SI box_rep::graphical_distance ( SI  x,
SI  y 
) [virtual, inherited]

Reimplemented in curve_box_rep, and point_box_rep.

Definition at line 337 of file boxes.cpp.

                                       {
  SI dx, dy;
  if (x <=  x1) dx= x1 - x;
  else if (x >=  x2) dx= x - x2;
  else dx= 0;
  if (y <  y1) dy= y1 - y;
  else if (y >= y2) dy= y - y2;
  else dy= 0;
  return (SI) norm (point (dx, dy));
}

Here is the call graph for this function:

Here is the caller graph for this function:

gr_selections composite_box_rep::graphical_select ( SI  x,
SI  y,
SI  dist 
) [virtual]

Reimplemented from box_rep.

Reimplemented in text_at_box_rep, graphics_group_box_rep, change_box_rep, concat_box_rep, and graphics_box_rep.

Definition at line 342 of file composite_boxes.cpp.

                                                        {
  gr_selections res;
  if (graphical_distance (x, y) <= dist) {
    int i, n= subnr();
    for (i=n-1; i>=0; i--)
      res << bs[i]->graphical_select (x- sx(i), y- sy(i), dist);
  }
  return res;
}

Here is the call graph for this function:

Here is the caller graph for this function:

gr_selections composite_box_rep::graphical_select ( SI  x1,
SI  y1,
SI  x2,
SI  y2 
) [virtual]

Reimplemented from box_rep.

Reimplemented in graphics_group_box_rep, change_box_rep, concat_box_rep, stack_box_rep, and graphics_box_rep.

Definition at line 353 of file composite_boxes.cpp.

                                                               {
  gr_selections res;
  if (contains_rectangle (x1, y1, x2, y2)) {
    int i, n= subnr();
    for (i=n-1; i>=0; i--)
      res << bs[i]->graphical_select (x1- sx(i), y1- sy(i),
                                  x2- sx(i), y2- sy(i));
  }
  return res;
}

Here is the call graph for this function:

SI box_rep::h ( ) [inline, inherited]

Definition at line 265 of file boxes.hpp.

{ return y2-y1; }

Here is the caller graph for this function:

bool box_rep::in_rectangle ( SI  x1,
SI  y1,
SI  x2,
SI  y2 
) [inherited]

Definition at line 76 of file boxes.cpp.

                                                 {
  return x1>=X1 && y1>=Y1 && x2<=X2 && y2<=Y2;
}

Here is the caller graph for this function:

void composite_box_rep::insert ( box  b,
SI  x,
SI  y 
)

Definition at line 57 of file composite_boxes.cpp.

                                            {
  int n= N(bs);
  bs << b;
  sx(n)= x;
  sy(n)= y;
}

Here is the call graph for this function:

Here is the caller graph for this function:

SI box_rep::left_correction ( ) [virtual, inherited]

Reimplemented in macro_box_rep, wide_box_rep, side_box_rep, modifier_box_rep, change_box_rep, text_box_rep, and concat_box_rep.

Definition at line 29 of file boxes.cpp.

{ return (SI) (-min (0, y1) * left_slope ()); }

Here is the call graph for this function:

Definition at line 89 of file composite_boxes.cpp.

                                 {
  int i, n= subnr();
  SI d= x1;
  x1-=d; x2-=d; x3-=d; x4-=d;
  for (i=0; i<n; i++) sx(i) -= d;
}

Here is the call graph for this function:

Here is the caller graph for this function:

double box_rep::left_slope ( ) [virtual, inherited]

Reimplemented in macro_box_rep, wide_box_rep, side_box_rep, modifier_box_rep, change_box_rep, text_box_rep, and concat_box_rep.

Definition at line 27 of file boxes.cpp.

{ return 0.0; }

Here is the caller graph for this function:

void composite_box_rep::loci ( SI  x,
SI  y,
SI  delta,
list< string > &  ids,
rectangles rs 
) [virtual]

Reimplemented from box_rep.

Reimplemented in locus_box_rep, and concat_box_rep.

Definition at line 124 of file composite_boxes.cpp.

{
  int m= find_child (x, y, delta, true);
  if (m == -1) box_rep::loci (x, y, delta, ids, rs);
  else {
    bs[m]->loci (x- sx(m), y- sy(m), delta + get_delta (x, x1, x2), ids, rs);
    rs= translate (rs, sx(m), sy(m));
  }
}

Here is the call graph for this function:

SI box_rep::lsub_correction ( ) [virtual, inherited]

Reimplemented in macro_box_rep, wide_box_rep, side_box_rep, modifier_box_rep, change_box_rep, text_box_rep, and concat_box_rep.

Definition at line 31 of file boxes.cpp.

{ return 0; }
SI box_rep::lsup_correction ( ) [virtual, inherited]

Reimplemented in macro_box_rep, wide_box_rep, side_box_rep, modifier_box_rep, change_box_rep, text_box_rep, and concat_box_rep.

Definition at line 32 of file boxes.cpp.

{ return 0; }
virtual box_rep::operator tree ( ) [pure virtual, inherited]

Definition at line 65 of file composite_boxes.cpp.

                             {
  int i, n= subnr();
  if (n == 0) {
    x1= y1= x3= y3= 0;
    x2= y2= x4= y4= 0;
    FAILED ("empty composite box");
  }
  else {
    x1= y1= x3= y3= MAX_SI;
    x2= y2= x4= y4= -MAX_SI;
    for (i=0; i<n; i++) {
      x1= min (x1, sx1(i));
      y1= min (y1, sy1(i));
      x2= max (x2, sx2(i));
      y2= max (y2, sy2(i));
      x3= min (x3, sx3(i));
      y3= min (y3, sy3(i));
      x4= max (x4, sx4(i));
      y4= max (y4, sy4(i));
    }
  }
}

Here is the call graph for this function:

Here is the caller graph for this function:

void box_rep::position_at ( SI  x,
SI  y,
rectangles change_log 
) [virtual, inherited]

Definition at line 769 of file boxes.cpp.

                                                        {
  int i, n= subnr ();
  x += x0; y += y0;
  for (i=0; i<n; i++) subbox (i)->position_at (x, y, change_log);
}

Here is the call graph for this function:

void box_rep::post_display ( renderer ren) [virtual, inherited]

Reimplemented in locus_box_rep, highlight_box_rep, anim_effect_box_rep, cell_box_rep, clip_box_rep, flag_box_rep, and graphics_box_rep.

Definition at line 551 of file boxes.cpp.

                                    {
  (void) ren;
}

Here is the caller graph for this function:

void box_rep::pre_display ( renderer ren) [virtual, inherited]

Reimplemented in sound_box_rep, highlight_box_rep, anim_effect_box_rep, anim_repeat_box_rep, cell_box_rep, clip_box_rep, anim_compose_box_rep, anim_constant_box_rep, flag_box_rep, and graphics_box_rep.

Definition at line 546 of file boxes.cpp.

                                   {
  (void) ren;
}

Here is the caller graph for this function:

void box_rep::redraw ( renderer  ren,
path  p,
rectangles l 
) [inherited]

Definition at line 489 of file boxes.cpp.

                                                    {
  if (((nr_painted&15) == 15) && ren->interrupted (true)) return;
  ren->move_origin (x0, y0);
  SI delta= ren->pixel; // adjust visibility to compensate truncation
  if (ren->is_visible (x3- delta, y3- delta, x4+ delta, y4+ delta)) {
    rectangles ll;
    l= rectangles();
    pre_display (ren);

    int i, item=-1, n=subnr (), i1= n, i2= -1;
    if (!is_nil(p)) i1= i2= item= p->item;
    for (i=0; i<n; i++) {
      int k= reindex (i, item, n-1);
      if (is_nil(p)) subbox (k)->redraw (ren, path (), ll);
      else if (i!=0) {
       if (k > item) subbox(k)->redraw (ren, path (0), ll);
       else subbox(k)->redraw (ren, path (subbox(k)->subnr()-1), ll);
      }
      else subbox(k)->redraw (ren, p->next, ll);
      if (!is_nil(ll)) {
       i1= min (i1, k);
       i2= max (i2, k);
       l = ll * l;
       ll= rectangles ();
      }
    }

    if (((nr_painted&15) == 15) && ren->interrupted ()) {
      l= translate (l, -ren->ox, -ren->oy);
      clear_incomplete (l, ren->pixel, item, i1, i2);
      l= translate (l, ren->ox, ren->oy);
    }
    else {
      l= rectangle (x3+ ren->ox, y3+ ren->oy, x4+ ren->ox, y4+ ren->oy);
      display (ren);
      if (nr_painted < 15) ren->apply_shadow (x1, y1, x2, y2);
      nr_painted++;
    }

    post_display (ren);
  }
  ren->move_origin (-x0, -y0);
}

Here is the call graph for this function:

Here is the caller graph for this function:

void box_rep::redraw ( renderer  ren,
path  p,
rectangles l,
SI  x,
SI  y 
) [inherited]

Definition at line 534 of file boxes.cpp.

                                                                {
  ren->move_origin (x, y);
  redraw (ren, p, l);
  ren->move_origin (-x, -y);
}

Here is the call graph for this function:

int box_rep::reindex ( int  i,
int  item,
int  n 
) [virtual, inherited]

Reimplemented in graphics_group_box_rep, grid_box_rep, graphics_box_rep, and superpose_box_rep.

Definition at line 475 of file boxes.cpp.

                                        {
  if (item<0) item=0;
  if (item>n) item=n;
  if (i==0) return item;
  if ((i <= (item<<1)) && (i <= ((n-item)<<1))) {
    int d=(i+1)>>1;
    if (((i+1)&1)==0) return item-d;
    else return item+d;
  }
  if (i > (item<<1)) return i;
  return n-i;
}

Here is the caller graph for this function:

void box_rep::relocate ( path  p,
bool  force = false 
) [inherited]

Definition at line 182 of file boxes.cpp.

                                          {
  if (!force)
    if (is_nil (ip) || (ip->item >= 0) || (ip == new_ip)) return;
  ip= new_ip;
  int i, n= subnr ();
  for (i=0; i<n; i++) subbox (i)->relocate (ip, force);
}

Here is the call graph for this function:

SI box_rep::right_correction ( ) [virtual, inherited]

Reimplemented in macro_box_rep, wide_box_rep, side_box_rep, modifier_box_rep, change_box_rep, text_box_rep, and concat_box_rep.

Definition at line 30 of file boxes.cpp.

{ return (SI) (max (0, y2) * right_slope ()); }

Here is the call graph for this function:

double box_rep::right_slope ( ) [virtual, inherited]

Reimplemented in macro_box_rep, wide_box_rep, side_box_rep, modifier_box_rep, change_box_rep, text_box_rep, and concat_box_rep.

Definition at line 28 of file boxes.cpp.

{ return 0.0; }

Here is the caller graph for this function:

SI box_rep::rsub_correction ( ) [virtual, inherited]

Reimplemented in macro_box_rep, wide_box_rep, side_box_rep, modifier_box_rep, change_box_rep, text_box_rep, and concat_box_rep.

Definition at line 33 of file boxes.cpp.

{ return 0; }
SI box_rep::rsup_correction ( ) [virtual, inherited]

Reimplemented in macro_box_rep, wide_box_rep, side_box_rep, modifier_box_rep, change_box_rep, text_box_rep, and concat_box_rep.

Definition at line 34 of file boxes.cpp.

{ return 0; }
SI box_rep::sub_hi_lim ( int  level) [virtual, inherited]

Reimplemented in macro_box_rep, wide_box_rep, marker_box_rep, modifier_box_rep, change_box_rep, text_box_rep, and concat_box_rep.

Definition at line 36 of file boxes.cpp.

{ (void) level; return y1 + ((y2-y1)/3); }

Here is the caller graph for this function:

SI box_rep::sub_lo_base ( int  level) [virtual, inherited]

Reimplemented in macro_box_rep, wide_box_rep, marker_box_rep, modifier_box_rep, change_box_rep, text_box_rep, and concat_box_rep.

Definition at line 35 of file boxes.cpp.

{ (void) level; return y1; }

Here is the caller graph for this function:

box composite_box_rep::subbox ( int  i) [virtual]

Reimplemented from box_rep.

Definition at line 111 of file composite_boxes.cpp.

                                {
  return bs[i];
}

Here is the caller graph for this function:

int composite_box_rep::subnr ( ) [virtual]

Reimplemented from box_rep.

Definition at line 106 of file composite_boxes.cpp.

                          {
  return N(bs);
}

Here is the call graph for this function:

Here is the caller graph for this function:

SI box_rep::sup_hi_lim ( int  level) [virtual, inherited]

Reimplemented in wide_box_rep, marker_box_rep, change_box_rep, modifier_box_rep, text_box_rep, and concat_box_rep.

Definition at line 39 of file boxes.cpp.

{ (void) level; return y2; }

Here is the caller graph for this function:

SI box_rep::sup_lo_base ( int  level) [virtual, inherited]

Reimplemented in macro_box_rep, wide_box_rep, marker_box_rep, change_box_rep, modifier_box_rep, text_box_rep, and concat_box_rep.

Definition at line 38 of file boxes.cpp.

{ (void) level; return y2 - ((y2-y1)/3); }

Here is the caller graph for this function:

SI box_rep::sup_lo_lim ( int  level) [virtual, inherited]

Reimplemented in wide_box_rep, marker_box_rep, change_box_rep, modifier_box_rep, text_box_rep, and concat_box_rep.

Definition at line 37 of file boxes.cpp.

{ (void) level; return (y1 + y2) >> 1; }

Here is the caller graph for this function:

SI & box_rep::sx ( int  i) [inline, inherited]

Definition at line 266 of file boxes.hpp.

{ return subbox(i)->x0; }

Here is the call graph for this function:

Here is the caller graph for this function:

SI box_rep::sx1 ( int  i) [inline, inherited]

Definition at line 268 of file boxes.hpp.

{ box b= subbox(i); return b->x0+ b->x1; }

Here is the call graph for this function:

Here is the caller graph for this function:

SI box_rep::sx2 ( int  i) [inline, inherited]

Definition at line 270 of file boxes.hpp.

{ box b= subbox(i); return b->x0+ b->x2; }

Here is the call graph for this function:

Here is the caller graph for this function:

SI box_rep::sx3 ( int  i) [inline, inherited]

Definition at line 272 of file boxes.hpp.

{ box b= subbox(i); return b->x0+ b->x3; }

Here is the call graph for this function:

Here is the caller graph for this function:

SI box_rep::sx4 ( int  i) [inline, inherited]

Definition at line 274 of file boxes.hpp.

{ box b= subbox(i); return b->x0+ b->x4; }

Here is the call graph for this function:

Here is the caller graph for this function:

SI & box_rep::sy ( int  i) [inline, inherited]

Definition at line 267 of file boxes.hpp.

{ return subbox(i)->y0; }

Here is the call graph for this function:

Here is the caller graph for this function:

SI box_rep::sy1 ( int  i) [inline, inherited]

Definition at line 269 of file boxes.hpp.

{ box b= subbox(i); return b->y0+ b->y1; }

Here is the call graph for this function:

Here is the caller graph for this function:

SI box_rep::sy2 ( int  i) [inline, inherited]

Definition at line 271 of file boxes.hpp.

{ box b= subbox(i); return b->y0+ b->y2; }

Here is the call graph for this function:

Here is the caller graph for this function:

SI box_rep::sy3 ( int  i) [inline, inherited]

Definition at line 273 of file boxes.hpp.

{ box b= subbox(i); return b->y0+ b->y3; }

Here is the call graph for this function:

Here is the caller graph for this function:

SI box_rep::sy4 ( int  i) [inline, inherited]

Definition at line 275 of file boxes.hpp.

{ box b= subbox(i); return b->y0+ b->y4; }

Here is the call graph for this function:

Here is the caller graph for this function:

bool box_rep::test_in ( SI  x,
SI  y 
) [inline, inherited]

Definition at line 262 of file boxes.hpp.

                                        {
  return (x>=x1) && (x<x2) && (y>=y1) && (y<y2); }

Reimplemented from box_rep.

Reimplemented in concat_box_rep.

Definition at line 158 of file composite_boxes.cpp.

                                      {
  int i;
  array<box> bs;
  for (i= 0; i<subnr(); i++) {
    if (!is_nil (subbox (i))) {
      box sb= subbox (i)->transform (fr);
      if (!is_nil (sb)) bs << sb;
    }
  }
  return N (bs)==0?box ():composite_box (ip, bs);
}

Here is the call graph for this function:

SI box_rep::w ( ) [inline, inherited]

Definition at line 264 of file boxes.hpp.

{ return x2-x1; }

Here is the caller graph for this function:


Friends And Related Function Documentation

friend struct lazy_paragraph_rep [friend, inherited]

Definition at line 250 of file boxes.hpp.

void make_eps ( url  dest,
box  b,
int  dpi = 600 
) [friend, inherited]

Definition at line 828 of file boxes.cpp.

                                    {
  double inch= ((double) dpi * PIXEL);
  double cm  = inch / 2.54;
  SI w= b->x4 - b->x3;
  SI h= b->y4 - b->y3;
  b->x0= -b->x3;
  b->y0= -b->y4;
  renderer ren= printer (name, dpi, 1, "user", false, w/cm, h/cm);
  ren->set_color (black);
  ren->set_background (white);
  rectangles rs;
  b->redraw (ren, path (0), rs);
  tm_delete (ren);
}
friend struct page_box_rep [friend, inherited]

Definition at line 249 of file boxes.hpp.

friend class phrase_box_rep [friend, inherited]

Definition at line 251 of file boxes.hpp.

friend class remember_box_rep [friend, inherited]

Definition at line 252 of file boxes.hpp.


Member Data Documentation

Definition at line 22 of file composite.hpp.

path box_rep::ip [inherited]

Definition at line 127 of file boxes.hpp.

Definition at line 23 of file composite.hpp.

int abstract_struct::ref_count [inherited]

Definition at line 142 of file basic.hpp.

Definition at line 23 of file composite.hpp.

SI box_rep::x1 [inherited]

Definition at line 122 of file boxes.hpp.

SI box_rep::x2 [inherited]

Definition at line 123 of file boxes.hpp.

SI box_rep::x3 [inherited]

Definition at line 124 of file boxes.hpp.

SI box_rep::x4 [inherited]

Definition at line 125 of file boxes.hpp.

SI box_rep::y1 [inherited]

Definition at line 122 of file boxes.hpp.

SI box_rep::y2 [inherited]

Definition at line 123 of file boxes.hpp.

SI box_rep::y3 [inherited]

Definition at line 124 of file boxes.hpp.

SI box_rep::y4 [inherited]

Definition at line 125 of file boxes.hpp.


The documentation for this struct was generated from the following files: