source: trunk/Documentation/Developer/PluginHowTo/HowToDeveloper.tex @ 1243

Last change on this file since 1243 was 1243, checked in by Patrick Vacek, 12 years ago

HowTo: finished second round of thorough editing. Changed up some images, made countless small and not-so-small changes.

Several issues remain unresolved:

  • Developer guidlines != wiki
  • Should we be using American or British English?
  • Figures with German text should probably be anglicized
  • CrypTool vs. CrypTool 2 vs. CrypTool 2.0
  • Abstract claims 115 plugins; I count 90
  • Chapter 1 recommends only VS 2008 Pro but Chapter 2 suddenly speaks of C# Express
  • Copying code from output is difficult due to line numbers and strange extra spaces
  • Watermark can be selected in output
  • Section 2.6.2 contradicts itself in terms of multilingual support / internationalization / localization
  • #region and #endregion should be blue, 'in' should only be in certain cases
  • Custom storage plugin loading does not work.
  • Download/manage plugin buttons do not work.
  • Signed plugins are never explained (Section 2.12.3)
  • The post-build event commands in 2.12.4 have extra spaces around the highlighting in the output
  • Where do you save the workflow image?
File size: 7.5 KB
Line 
1\documentclass[11pt, a4paper, titlepage]{scrreprt}
2
3\usepackage[latin1]{inputenc}
4\usepackage[english]{babel}
5\usepackage{graphicx}
6\usepackage{booktabs}
7\usepackage{geometry}
8\usepackage{setspace}
9\usepackage{fancyhdr}
10\usepackage{url}
11\usepackage{wrapfig}
12\usepackage[usenames,dvipsnames]{color}
13\usepackage{colortbl}
14\usepackage{eso-pic}
15\usepackage{listings}
16\usepackage{fix-cm}
17\usepackage{textcomp}
18\usepackage[T1]{fontenc}
19
20
21%\usepackage[automark]{scrpage2}
22%\usepackage[absolute]{textpos}
23
24\lstset{language=[Sharp]C, % base language is C and dialect is Sharp (C#)
25captionpos=b, % descriptions are underneath
26frame=lines, % above und underneath the code listing are horizontal lines
27basicstyle=\ttfamily, % font
28keywordstyle=\color{blue}, % Color for keywords like public, void, object, etc.
29commentstyle=\color{ForestGreen}, % Color for comments
30stringstyle=\color{BrickRed}, % Color for strings
31numbers=left, % line numbers to the left of the code
32numberstyle=\tiny, % small line numbers
33numbersep=5pt,
34tabsize=2,
35breaklines=true, % Wordwrap activated
36showstringspaces=false,
37morestring=[b]', % counts single quote pairs as strings (and thus also colors them red)
38upquote=true, % changes smart single quotes to straight ' marks
39% emph defines certain colors for specific words
40% emph={double,bool,int,unsigned,char,true,false,void},emphstyle=\color{blue},
41emph={Assert,Test}, emphstyle=\color{BrickRed},
42emph={[2]double,bool,int,unsigned,char,true,false,void,using,\#define,\#ifdef,\#endif,\#region,\#endregion},
43emphstyle={[2]\color{blue}}
44}
45
46\geometry{a4paper, portrait, left=2cm, right=2cm, top=2cm, bottom=2cm, includefoot}
47
48%\pagestyle{headings}
49%\pagestyle{scrheadings}
50\pagestyle{fancy} % self-made page style
51\fancyhf{} % clear all header and footer fields
52\fancyhead[L]{\leftmark} % left header
53\fancyhead[C]{\AddToShipoutPicture*{\BackgroundHeaderPic}} % center header
54%\fancyhead[R]{\rightmark} % right header --> Removed because it overflows on the leftmark if the text is too long
55
56\fancyfoot[C]{\thepage\AddToShipoutPicture*{\BackgroundFooterPic}} % center footer
57%\fancyfoot[EL,OR]{\thepage} % page number
58%\fancyfoot[ER,OL]{\includegraphics[height=0.3cm]{figures/ct_logo}}
59
60\renewcommand{\headrulewidth}{2pt} % upper separator
61\renewcommand{\footrulewidth}{2pt} % lower separator
62
63\newlength{\headbgwidth}
64\setlength{\headbgwidth}{\headwidth}
65%\addtolength{\headbgwidth}{0.3mm}
66%\addtolength{\headwidth}{\marginparwidth}
67
68
69\renewcommand{\headrule}{{\color{orange}\hrule width\headwidth height\headrulewidth \vskip-\headrulewidth}}
70\renewcommand{\footrule}{{\color{orange}\vskip-\footruleskip\vskip-\footrulewidth\hrule width\headwidth height\footrulewidth\vskip\footruleskip}}
71
72
73\makeatletter
74\newcommand\BackgroundHeaderPic{
75%\AddToShipoutPicture{%
76    \setlength{\@tempdimb}{1.87cm}%
77    \setlength{\@tempdimc}{28.4cm}%
78    \setlength{\unitlength}{1pt}%
79    \put(\strip@pt\@tempdimb,\strip@pt\@tempdimc){
80        \includegraphics[width=\headbgwidth, height=\headheight]{figures/ct_page_header}%
81    }
82}
83
84\newcommand\BackgroundFooterPic{
85%\AddToShipoutPicture{%
86    \setlength{\@tempdimb}{1.87cm}%
87    \setlength{\@tempdimc}{1.8cm}%
88    \setlength{\unitlength}{1pt}%
89    \put(\strip@pt\@tempdimb,\strip@pt\@tempdimc){
90        \includegraphics[width=\headbgwidth, height=0.7cm]{figures/ct_page_footer_pure}%
91    }
92}
93
94\newcommand\WaterMarkPic{%
95    \setlength{\@tempdimb}{1.85cm}%
96    \setlength{\@tempdimc}{2.7cm}%
97    \setlength{\unitlength}{1pt}%
98    \put(\strip@pt\@tempdimb,\strip@pt\@tempdimc){
99            \includegraphics[width=0.6\textwidth]{figures/ct_logo_watermark}%
100    }
101}
102\makeatother
103
104% finetune the gaps between figure and text in the subfigure environment (basically close the gap as much as possible)
105%\renewcommand{\subfigtopskip}{0pt}
106%\renewcommand{\subfigbottomskip}{0pt}
107
108% some color definitions for the pdf statements below
109\definecolor{mygrey}{rgb}{0.45,0.45,0.45}
110\definecolor{mydarkgrey}{rgb}{0.2,0.2,0.2}
111\definecolor{red}{rgb}{1.0,0.33,0.33}
112\definecolor{orange}{rgb}{1.00,0.73,0.33}
113\definecolor{yellow}{rgb}{0.95,0.92,0.}
114\definecolor{lightgreen}{rgb}{0.3,0.95,0.46}
115\definecolor{titleblue}{rgb}{0.03,0.10,0.46}
116
117
118\input{frontpage}
119
120
121\title{Plugin Developer Manual}
122\subtitle{How to build your own plugins for CrypTool 2.0}
123\author{S.\ Przybylski, A.\ Wacker, M.\ Wander, F.\ Enkler and P.\ Vacek}
124\email{\{przybylski$|$wacker$|$wander$|$enkler$|$vacek\}@cryptool.org}
125\version{0.5}
126\date{\today}
127
128% Metadata and configuration of the pdf output:
129% Do not forget to enter the correct title, author, subject und keywords
130
131% For screen viewing it is nice to have references marked in a slightly different
132% color than the rest of the text, since they will be hyperlinks to the
133% referenced objects.
134\usepackage[pdftex,
135             pdftitle={\@title},
136             colorlinks,
137             linkcolor={mydarkgrey},
138             citecolor={mygrey},
139             urlcolor={blue},
140             plainpages={false},
141             bookmarksnumbered={true},
142             bookmarksopenlevel={3},
143             pdfauthor={\@author},
144             pdfsubject={\@subtitle},
145             pdfkeywords={CrypTool,Cryptography,eLearning,Cryptanalysis},
146             pdfstartview={Fit}]{hyperref}
147
148%\usepackage{pdfsync}
149
150% To avoid nasty mistakes like having comments directly in the textflow
151% the following \todo macro was defined. With that you can enter
152% \todo{What I still have to do here}
153% inside of your text and a marker will appear at the page's margin with the
154% text "What I still have to do here".
155% The first line activates this feature. If you comment it out and uncomment
156% the second line below there will be no error messages and no todos will be shown
157% anymore. So - even if you have forgotten to delete one of them - they will not appear
158% in the final printout.
159\newcommand{\todo}[1]{\marginpar{\textcolor{red}{ToDo:} #1}}
160
161
162
163%\AtBeginDocument{\markboth{\@author}{\@title}}
164\begin{document}
165        \maketitle
166
167        \begin{abstract}
168CrypTool 2 is the modern successor of the well-known e-learning platform for cryptography and cryptanalysis \htmladdnormallink{CrypTool 1}{http://www.cryptool.org/}, which is used worldwide for educational purposes at schools and universities as well as in companies and agencies.
169
170Since the first launch of CrypTool 1 in 1999 the art of software development has changed dramatically. The CrypTool 2 team began working in 2008 to develop a completely new e-learning application, embracing the newest trends in both didactics and software architecture to delight the end-user with an entirely new experience.\\
171
172To reach these goals, CrypTool 2 is built using the following:
173
174\begin{itemize}
175        \item .NET (a modern software framework from Microsoft with solutions to common programming problems)
176        \item C\# (a modern object-oriented programming language, comparable to Java)
177    \item WPF (a modern purely vector-based graphical subsystem for rendering user interfaces in Windows-based applications)
178    \item Visual Studio 2008 (a development environment)
179        \item Subversion (a source code and documentation version management system)
180\end{itemize}
181
182This document is intended for plugin developers who want to contribute new visual or mathematical functionality to CrypTool 2. As of January 2010, the program consists of about 7000 lines of C\# code in the core application and about 250,000 lines of C\# code in 115 plugins.
183
184For further information, please visit the CrypTool 2 website at  \htmladdnormallink{http://www.cryptool2.vs.uni-due.de}{http://www.cryptool2.vs.uni-due.de}.
185    \end{abstract}
186
187        \tableofcontents
188    \listoffigures
189
190    \AddToShipoutPicture{\WaterMarkPic}
191
192        \include{part1}
193        \include{part2}
194
195\end{document}
Note: See TracBrowser for help on using the repository browser.