Ich habe jetzt etwas rumgespielt und habe folgendes erstellt:
\documentclass{article}
\usepackage{pgf}
\usepackage{tikz}
\makeatletter
\pgfdeclareshape{computer}{%
% inherit anchors
\inheritsavedanchors[from=rectangle]
\inheritanchorborder[from=rectangle]
\inheritanchor[from=rectangle]{center}
\inheritanchor[from=rectangle]{north}
\inheritanchor[from=rectangle]{south}
\inheritanchor[from=rectangle]{west}
\inheritanchor[from=rectangle]{east}
\backgroundpath{
%%% DRAW OUTLINE OF SHAPE %%%
% store lower left in xa/ya and upper right in xb/yb
\southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
\northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
% move to point xb/yb (north east)
\pgfpathmoveto{\pgfpoint{\pgf@xb}{\pgf@yb}}
% draw a line between upper right (xb,yb) and upper left (xa,yb)
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{.2\pgf@ya}}
\pgfpathlineto{\pgfpoint{.3\pgf@xa}{.2\pgf@ya}}
\pgfpathlineto{\pgfpoint{.3\pgf@xa}{.5\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{.5\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{.5\pgf@ya}}
\pgfpathlineto{\pgfpoint{.3\pgf@xb}{.5\pgf@ya}}
\pgfpathlineto{\pgfpoint{.3\pgf@xb}{.2\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{.2\pgf@ya}}
\pgfpathclose
%%% DRAW SCREEN %%%
\color{black}
\pgfpathmoveto{\pgfpoint{.85\pgf@xb}{.85\pgf@yb}}
\pgfpathlineto{\pgfpoint{.85\pgf@xa}{.85\pgf@yb}}
\pgfpathlineto{\pgfpoint{.85\pgf@xa}{.05\pgf@ya}}
\pgfpathlineto{\pgfpoint{.85\pgf@xb}{.05\pgf@ya}}
\pgfpathclose
%%% DRAW UPPER RECTANGLE OF CASE %%%
\pgfpathmoveto{\pgfpoint{\pgf@xa}{.5\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{.65\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{.65\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{.5\pgf@ya}}
\pgfpathclose
%%% DRAW LEFT TRIANGLE %%%
\color{gray}
\pgfpathmoveto{\pgfpoint{\pgf@xa}{.65\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfpoint{.5\pgf@xa}{\pgf@ya}}
\pgfpathclose
%%% DRAW RIGHT TRIANGLE %%%
\color{gray}
\pgfpathmoveto{\pgfpoint{\pgf@xb}{.65\pgf@ya}}
\pgfpathlineto{\pgfpoint{.5\pgf@xb}{\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
\pgfpathclose
}
}
\makeatother
\tikzset{
shape example/.style={
color=black!30,
draw,
fill=yellow!30,
line width=.1cm,
inner xsep=2.5cm,
inner ysep=2.5cm
}
}
\begin{document}
\begin{tikzpicture}
\node[shape example, computer, name=s] at (0,0) {};
\foreach \anchor/\placement in {north/above, west/left, center/above, east/right, south/below}
\draw[shift=(s.\anchor)] plot[mark=x] coordinates{(0,0)} node[\placement] {\scriptsize\texttt{(s.\anchor)}};
\end{tikzpicture}
\end{document}
Das Ergebnis sieht wie folgt aus:
![alt text][1]
Nun habe ich aber noch das Problem mit dem Einfärben bzw. mit dem Shading des Screens. Ich habe versucht mit `\pgfusepath{fill}` die Flächen zu füllen, aber da ist gleich das ganze Shape eingefärbt worden. Dann habe ich versucht die Paths die ich füllen möchte ![Shape in ein Scope zu packen, was aber nicht geklappt hat.
Nun zur konkreten Frage: wie kann ich die Flächen (Screen und Triangles) noch einfärben?
Tikz][1]
[1]: http://texwelt.de/wissen/upfiles/Step5.png