File: cursor.ps

package info (click to toggle)
ruby-rghost 0.9.9-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,188 kB
  • sloc: ruby: 3,374; makefile: 6; sh: 1
file content (106 lines) | stat: -rwxr-xr-x 2,517 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/p{ pstack} def
/current_page 1 def
/current_vp 1 def

%vp = virtual_page
/new_vp? false def
/has_vp? false def 
/start_vp{
  /has_vp? true def 
  /current_vp 1 def
  %/vp_params [ [20 cm 1 cm ] [10 cm 1 cm ] [7 cm  1 cm ] ] def 
  /vp_count vp_params length def 
  /source_limit_left limit_left def
  /source_limit_right limit_right def
}def

/first_vp_page{
  vp_params 0 get aload pop %pop
  limit_left add
  /limit_right exch  def  
  /new_vp? true def
  default_point
  %before_virtual_page_create vp_callback
} def
/vp_proc{

has_vp? { start_vp  before_virtual_page_create vp_callback first_vp_page } if 

} def
/new_page_defaults{
  /current_page inc
  /current_row limit_top row row_height mul sub def
  current_page count_pages eq { last_page } if
  new_current_row_point
  default_point 
  before_page_create callback
  odd_or_even callback
  before_virtual_page_create vp_callback
} def

/X{  currentpoint pop } def
/Y{ currentpoint exch pop} def
/nrdp{ next_row  default_point } def
/next_page{
  has_vp?{ (ok has virtual page\n) print 
    /row 1 def
    current_vp vp_count lt {
      default_point
      after_virtual_page_create vp_callback
    
      vp_params current_vp get 
      /current_vp inc 
      aload pop limit_right exch add /limit_left exch def
      limit_left add  /limit_right exch def
      /current_row limit_top row row_height mul sub def
      new_current_row_point
      default_point 
      before_virtual_page_create vp_callback
      /new_vp? true def
    }{
      after_page_create callback
      /current_vp 1 def
      /limit_left source_limit_left def
      showpage 
      new_page_defaults
      has_vp? {first_vp_page} if
    } ifelse
    
    new_current_row_point
    default_point 
  }{
    /row 1 def
    /new_page? true def
      /current_vp 1 def
      after_page_create callback
      showpage
      /new_page? true def
      new_page_defaults
      has_vp? {first_vp_page} if
  }ifelse
} def


/default_point { limit_left  current_row  moveto} def
/new_current_row_point{ 	/current_row limit_top row row_height row_padding add mul sub def }def

/next_row{
  row rows_per_page lt current_row limit_bottom ge and {	/row inc
			new_current_row_point
	}{ next_page }ifelse
} def

/jump_rows{
	%dup 1 le { {	next_row 	}repeat} if
 {  next_row  }repeat 
} def
/jump_rows{
  %dup 1 le { { next_row  }repeat} if
 dup 0 ge {{  next_row  }repeat
 }{  neg { /row dec  } repeat new_current_row_point } ifelse
} def

/goto_row{
  /row exch def
		new_current_row_point
} def