summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-clockarrows.sty
blob: 1259505a55cc88673bd74e2e1d076d06bfd48b93 (plain)
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
%%
%% This is file `tikz-timing-clockarrows.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% tikz-timing.dtx  (with options: `lib,lib-clockarrows')
%% 
%% Copyright (C) 2009-2011 by Martin Scharrer <martin@scharrer-online.de>
%% 
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% 
%%    http://www.latex-project.org/lppl.txt
%% 
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
%% 
%% This work has the LPPL maintenance status `maintained'.
%% 
%% The Current Maintainer of this work is Martin Scharrer.
%% 
%% This work consists of the files tikz-timing.dtx, tikz-timing.ins
%% and the derived file tikz-timing.sty.
%% 
\RequirePackage{svn-prov}[2009/05/03]
\ProvidesPackageSVN[tikz-timing-clockarrows]
  {$Id: tikz-timing.dtx 2038 2011-01-09 20:44:26Z martin $}
  [v0.7d
   TikZ-Timing Library for
   timing clock arrows]
\GetFileInfoSVN*%
\RequirePackage{tikz-timing}[\filedate]%
\DefineFileInfoSVN
\tikztiming@iftrans{CC}%
  {\let\tikztiming@trans@C@normal@C\tikztiming@trans@CC}%
  {\PackageError{\@currname}{No 'CC' transition defined by the main tikz-timing
  package.}{}}%

\tikztimingdef{CC}{%
  \code{\setcounter{tikztimingtrans}{-\value{tikztimingtrans}}}
  [timing/c/save]
  \newdraw
  [\style,timing/c/restore,>=\noexpand\tikztiming@c@arrow@tip,timing/c/arrow@style]
  -- ++(\slope*\noexpand\tikztiming@c@arrow@pos,\value{tikztimingtrans}*\height*\noexpand\tikztiming@c@arrow@pos)
  ; \draw [timing/restore,timing/c/restore] (timing@save) ++(0,0) [\style]
  -- ++(\slope,\value{tikztimingtrans}*\height)
  -- ++($ (#1,0) - (\slope,0) $)
}
\let\tikztiming@trans@C@arrow@C\tikztiming@trans@CC

\tikzset{timing/c/.cd,
  rising arrows/.code={%
    \def\tikztiming@trans@CC{\tikztiming@trans@C@arrow@C}%
    \def\tikztiming@clockarrow@style{\ifnum1=\c@tikztimingtrans\tikzset{->,timing/c/arrow}\fi}%
  },%
  falling arrows/.code={%
    \def\tikztiming@trans@CC{\tikztiming@trans@C@arrow@C}%
    \def\tikztiming@clockarrow@style{\ifnum-1=\c@tikztimingtrans\tikzset{->,timing/c/arrow}\fi}%
  },%
  dual arrows/.code={%
    \def\tikztiming@trans@CC{\tikztiming@trans@C@arrow@C}%
    \def\tikztiming@clockarrow@style{\tikzset{->,timing/c/arrow}}%
  },%
  no arrows/.code={%
    \def\tikztiming@trans@CC{\tikztiming@trans@C@normal@C}%
    \def\tikztiming@clockarrow@style{}%
  },%
  arrow@style/.code={\tikztiming@clockarrow@style},%
  arrow/.style={},%
  arrow pos/.store in=\tikztiming@c@arrow@pos,
  arrow tip/.store in=\tikztiming@c@arrow@tip,
  save/.code={%
    \global\let\tikztiming@clockarrow@savedstyle\tikztiming@clockarrow@style
    \global\let\tikztiming@trans@saved@CC\tikztiming@trans@CC
    \global\let\tikztiming@c@arrow@savedpos\tikztiming@c@arrow@pos
    \global\let\tikztiming@c@arrow@savedtip\tikztiming@c@arrow@tip
  },
  restore/.code={%
    \let\tikztiming@clockarrow@style\tikztiming@clockarrow@savedstyle
    \let\tikztiming@trans@CC\tikztiming@trans@saved@CC
    \let\tikztiming@c@arrow@pos\tikztiming@c@arrow@savedpos
    \let\tikztiming@c@arrow@tip\tikztiming@c@arrow@savedtip
  },
}
\tikzset{timing/c/.cd,
  no arrows,
  arrow pos=0.95,
  arrow tip=to,
}

\RequirePackage{pgfopts}
\ProcessPgfOptions{/tikz/timing/c}
\endinput
%%
%% End of file `tikz-timing-clockarrows.sty'.